
:root{--bg:#f6f9ff;--s:#fff;--ink:#0b1630;--mut:#5f7196;--ac:#1f5eff;--ac2:#6ea2ff;--ln:#d9e5fb;--bad:#e5484d;--gl:.16;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#04060b;--s:#0a1020;--ink:#eef3ff;--mut:#8b9cc7;--ac:#3b7bff;--ac2:#8fb8ff;--ln:#16213f;--gl:.4}}
:root[data-theme="dark"]{--bg:#04060b;--s:#0a1020;--ink:#eef3ff;--mut:#8b9cc7;--ac:#3b7bff;--ac2:#8fb8ff;--ln:#16213f;--gl:.4}
html{scroll-padding-top:env(safe-area-inset-top,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"SF Arabic","Alexandria",system-ui,sans-serif;min-height:100vh;overflow-x:hidden;transition:background .5s,color .5s}
.sp{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(520px circle at 50% 6%,rgba(59,123,255,var(--gl)),transparent 60%)}
.o{position:fixed;width:80vmax;height:80vmax;border-radius:50%;z-index:0;pointer-events:none;background:radial-gradient(circle,rgba(59,123,255,calc(var(--gl) * .7)),transparent 65%);animation:dr 18s ease-in-out infinite alternate;will-change:transform;bottom:-50vmax;inset-inline-start:-30vmax}
@keyframes dr{to{transform:translate3d(14vmax,-8vmax,0) scale(1.15)}}
#app{position:relative;z-index:1;max-width:560px;margin:0 auto;padding:18px 20px 120px}
.scr{animation:in .7s cubic-bezier(.2,.8,.2,1) both}@keyframes in{from{opacity:0;transform:translate3d(0,22px,0)}}
.hd{font-weight:700;margin:0}.en{font-family:Fraunces,Georgia,serif;font-style:italic;font-weight:500;direction:ltr}
.mut{color:var(--mut);font-size:.9rem}
.lg{width:52px;background:#fff;border-radius:14px;padding:3px;flex:none;box-shadow:0 6px 20px rgba(0,0,0,.18)}.lg img{width:100%;display:block;border-radius:11px}
.lg.big{position:relative;width:96px;margin:30px 0 0}
.h1{font-size:3.1rem;line-height:1.25;margin:26px 0 8px}.h1 span{display:block;overflow:hidden}.h1 b{display:block;font-weight:700;animation:up .9s cubic-bezier(.2,.9,.2,1) both;animation-delay:calc(var(--n)*.12s + .15s)}
.h1 .g{background:linear-gradient(90deg,var(--ac),var(--ac2));-webkit-background-clip:text;background-clip:text;color:transparent}
@keyframes up{from{transform:translateY(110%)}}
.in{width:100%;background:transparent;border:0;border-bottom:1.5px solid var(--ln);color:var(--ink);font:inherit;font-size:1.1rem;padding:16px 2px;margin-top:6px;outline:0;transition:border-color .3s}.in:focus{border-color:var(--ac)}
.tg{position:relative;display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ln);border-radius:14px;padding:4px;margin:22px 0 8px;background:var(--s)}
.tg::before{content:"";position:absolute;inset-block:4px;inset-inline-start:4px;width:calc(50% - 4px);background:var(--ac);border-radius:10px;opacity:0;transition:transform .5s cubic-bezier(.2,1.2,.3,1),opacity .3s}
.tg.a::before{opacity:1}.tg.b::before{opacity:1;transform:translateX(-100%)}
.tg button{position:relative;background:none;border:0;color:var(--ink);font:inherit;font-weight:700;padding:13px;cursor:pointer;transition:color .3s}.tg button.on{color:#fff}
.err{color:var(--bad);min-height:26px;margin:6px 0 0;font-weight:500}
.btn{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;font:inherit;font-weight:700;font-size:1.1rem;border:0;border-radius:14px;padding:17px;color:#fff;background:var(--ac);cursor:pointer;margin-top:14px;transition:transform .2s,box-shadow .3s;box-shadow:0 10px 30px -8px var(--ac)}
.btn::after{content:"";position:absolute;inset-block:0;left:0;width:30%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:translateX(-200%) skewX(-20deg);animation:sw 4s ease-in-out infinite}
@keyframes sw{50%,100%{transform:translateX(500%) skewX(-20deg)}}
.btn:active{transform:scale(.97)}.btn.gh{background:var(--s);color:var(--ink);box-shadow:inset 0 0 0 1px var(--ln)}.btn.gh::after{display:none}
.bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0}
.ib{width:44px;height:44px;border-radius:50%;border:1px solid var(--ln);background:var(--s);color:var(--ink);display:grid;place-items:center;cursor:pointer;flex:none;transition:transform .25s}.ib:active{transform:scale(.88) rotate(-10deg)}.fl svg{transform:scaleX(-1)}
.hero{display:flex;align-items:center;gap:22px;margin:22px 0 8px}
.rw{position:relative;width:132px;height:132px;flex:none}.rw svg{width:100%;height:100%;transform:rotate(-90deg)}.rw circle{fill:none;stroke-width:5}.rb{stroke:var(--ln)}
.rg{stroke:var(--ac);stroke-linecap:round;stroke-dasharray:339.3;stroke-dashoffset:339.3;transition:stroke-dashoffset 1.5s cubic-bezier(.2,.8,.2,1);filter:drop-shadow(0 0 6px var(--ac))}
.rc{position:absolute;inset:0;display:grid;place-items:center;text-align:center;line-height:1}.rc b{font-family:Fraunces,serif;font-size:2.3rem;font-weight:500}.rc small{color:var(--mut);font-size:.75rem}
.stats{display:grid;grid-template-columns:repeat(3,1fr);margin:18px 0 6px;border-block:1px solid var(--ln)}
.stats div{padding:14px 4px;text-align:center}.stats div+div{border-inline-start:1px solid var(--ln)}.stats b{display:block;font-family:Fraunces,serif;font-size:1.7rem;font-weight:500}.stats span{color:var(--mut);font-size:.8rem;display:inline-flex;gap:4px;align-items:center}
.row{width:100%;display:flex;align-items:center;gap:16px;text-align:start;background:none;border:0;border-bottom:1px solid var(--ln);color:var(--ink);font:inherit;padding:18px 2px;cursor:pointer;position:relative;animation:in .7s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--n)*80ms + .3s);transition:padding .3s}
.row:hover,.row.cur{padding-inline-start:12px}
.nu{font-family:Fraunces,serif;font-size:2.2rem;width:54px;color:transparent;-webkit-text-stroke:1px var(--mut)}.row.cur .nu{-webkit-text-stroke:0;color:var(--ac)}.row.done .nu{-webkit-text-stroke:0;color:var(--ink)}
.rt{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.rt b{font-size:1.05rem}.rt em{font-style:normal;color:var(--mut);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs{display:flex;align-items:center;gap:6px;color:var(--mut)}.row.cur .rs{color:#fff;background:var(--ac);width:40px;height:40px;border-radius:50%;justify-content:center;box-shadow:0 0 0 0 var(--ac);animation:pl 2s infinite}.row.done .rs{color:var(--ac)}.row.lock{opacity:.5}
@keyframes pl{70%{box-shadow:0 0 0 14px transparent}100%{box-shadow:0 0 0 0 transparent}}
.seg{display:flex;gap:5px;margin-top:10px}.seg i{flex:1;height:4px;border-radius:4px;background:var(--ln);overflow:hidden;position:relative}.seg i::after{content:"";position:absolute;inset:0;background:var(--ac);transform:scaleX(0);transform-origin:right;transition:transform .6s cubic-bezier(.2,.8,.2,1)}.seg i.on::after{transform:scaleX(1)}.seg i.cu::after{transform:scaleX(.4)}
.big{font-size:clamp(3rem,15vw,4.8rem);line-height:1.1;text-align:center;margin:12vh 0 10px;cursor:pointer;word-break:break-word}
.big span{display:inline-block;animation:lt .9s cubic-bezier(.2,1.2,.3,1) both;animation-delay:calc(var(--j)*45ms)}@keyframes lt{from{opacity:0;transform:translateY(40px) rotate(6deg);filter:blur(8px)}}
.hint{text-align:center;color:var(--mut);animation:bl 2s ease-in-out infinite}@keyframes bl{50%{opacity:.35}}
.sheet{position:fixed;inset-inline:0;bottom:0;margin:auto;max-width:560px;padding:26px 20px calc(24px + env(safe-area-inset-bottom,0px));background:var(--ac);color:#fff;border-radius:28px 28px 0 0;transform:translateY(110%);transition:transform .7s cubic-bezier(.2,.9,.2,1);z-index:5;text-align:center}
.rev .sheet{transform:none}.rev .hint{opacity:0;animation:none}.mn{font-weight:700;font-size:2.4rem}.sheet .btn{background:#fff;color:var(--ac);box-shadow:none}.sheet .btn::after{display:none}
.q{font-size:2.6rem;margin:6px 0 22px;text-align:start}
.op{display:flex;align-items:center;gap:14px;width:100%;text-align:start;padding:16px;margin-bottom:10px;border-radius:14px;border:1px solid var(--ln);background:var(--s);color:var(--ink);font:inherit;font-weight:500;font-size:1.05rem;cursor:pointer;transition:transform .2s,border-color .3s,background .3s;animation:in .6s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--n)*70ms)}
.op b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--bg);font-family:Fraunces,serif;flex:none}.op:hover{border-color:var(--ac)}.op:active{transform:scale(.98)}
.op.ok{background:#16a34a;border-color:#16a34a;color:#fff;animation:pu .4s}.op.no{background:var(--bad);border-color:var(--bad);color:#fff;animation:sk .4s}
@keyframes pu{50%{transform:scale(1.04)}}.shake,.op.no{animation:sk .4s}@keyframes sk{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.rz{position:relative;width:190px;height:190px;margin:34px auto 10px}.rz svg{width:100%;height:100%;transform:rotate(-90deg)}.rz circle{fill:none;stroke-width:4}.rz .rn{position:absolute;inset:0;display:grid;place-items:center;font-family:Fraunces,serif;font-size:3rem}
.cf{position:fixed;top:-4vh;left:var(--l);width:9px;height:15px;background:var(--c);border-radius:2px;pointer-events:none;z-index:9;animation:cf 2s ease-in forwards}@keyframes cf{to{transform:translate3d(var(--x),110vh,0) rotate(720deg);opacity:.3}}
button:focus-visible,.in:focus-visible{outline:2px solid var(--ac);outline-offset:3px}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.nu{display:none}.gl{display:flex;align-items:center;gap:12px;margin:30px 0 14px;color:var(--mut);font-weight:700;font-size:.95rem}.gl::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--ln),transparent)}
.row{gap:14px;padding:12px;margin:0 0 12px;border:1px solid var(--ln);border-radius:22px;background:linear-gradient(135deg,var(--s),transparent);transition:transform .35s cubic-bezier(.2,.9,.3,1),box-shadow .35s,border-color .35s}
.row:hover,.row.cur{padding-inline-start:12px;transform:translateX(-5px)}.row.cur{border-color:var(--ac);box-shadow:0 0 0 1px var(--ac),0 18px 44px -16px var(--ac)}
.bd{width:60px;height:60px;border-radius:19px;display:grid;place-items:center;flex:none;background:var(--ln);color:var(--mut);transition:transform .4s cubic-bezier(.2,1.4,.4,1)}.bd svg{width:27px;height:27px}.row:hover .bd{transform:rotate(-8deg) scale(1.1)}
.row.done .bd,.row.cur .bd{background:linear-gradient(135deg,var(--ac),var(--ac2));color:#fff;box-shadow:0 10px 24px -8px var(--ac)}.row.cur .bd{animation:fb 2.6s ease-in-out infinite}@keyframes fb{50%{transform:translateY(-5px) rotate(-4deg)}}
.row.tst{border-style:dashed;background:linear-gradient(135deg,rgba(59,123,255,.16),transparent)}.row.tst .bd{border-radius:50%;width:66px;height:66px}.row.tst .rt b{font-size:1.2rem;background:linear-gradient(90deg,var(--ac),var(--ac2));-webkit-background-clip:text;background-clip:text;color:transparent}
.rs{margin-inline-start:auto}.stats{border:0;gap:10px}.stats div{background:var(--s);border:1px solid var(--ln);border-radius:18px}.stats div+div{border-inline-start:1px solid var(--ln)}
.hero .hd{background:linear-gradient(100deg,var(--ink) 30%,var(--ac2),var(--ink) 70%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shn 6s linear infinite}@keyframes shn{to{background-position:-250% 0}}
.chain{display:flex;flex-direction:column;align-items:center}.chain .gl{align-self:stretch}
.nd{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:0;color:var(--ink);font:inherit;margin-top:32px;cursor:pointer;max-width:92%;animation:pop .8s cubic-bezier(.2,1.5,.4,1) backwards;animation-delay:calc(var(--n)*90ms + .2s)}
@keyframes pop{from{transform:scale(0);opacity:0}}
.nd::before{content:"";position:absolute;top:-32px;height:32px;width:3px;border-radius:3px;background:var(--ln)}.gl+.nd{margin-top:0}.gl+.nd::before{display:none}
.nd.done::before,.nd.cur::before{background:linear-gradient(var(--ac2),var(--ac));box-shadow:0 0 10px var(--ac)}
.nd .bd{position:relative;width:88px;height:88px;border-radius:50%;display:grid;place-items:center;background:var(--s);border:2px solid var(--ln);color:var(--mut);transition:transform .3s cubic-bezier(.2,1.4,.4,1)}.nd .bd svg{width:36px;height:36px}.nd:active .bd{transform:scale(.9)}
.nd.done .bd,.nd.cur .bd{background:linear-gradient(135deg,var(--ac),var(--ac2));color:#fff;border-color:transparent;box-shadow:0 12px 30px -8px var(--ac)}
.nd.cur .bd{animation:fb 2.6s ease-in-out infinite}.nd.cur .bd::after{content:"";position:absolute;inset:-2px;border-radius:50%;border:2px solid var(--ac2);animation:rp 1.9s ease-out infinite}@keyframes rp{from{transform:scale(1);opacity:.9}to{transform:scale(1.55);opacity:0}}
.nd .bg{position:absolute;bottom:-4px;inset-inline-end:-4px;width:28px;height:28px;border-radius:50%;background:var(--bg);border:2px solid var(--ln);display:grid;place-items:center;color:var(--ac)}.nd .bg svg{width:14px;height:14px}.nd.lock{opacity:.65}.nd.lock .bg{color:var(--mut)}
.nd.tst .bd{width:104px;height:104px;border:2px dashed var(--ac2);background:radial-gradient(circle,rgba(59,123,255,.25),transparent 70%)}.nd.tst .bd svg{width:44px;height:44px}.nd.tst.done .bd,.nd.tst.cur .bd{border:0;background:linear-gradient(135deg,var(--ac),var(--ac2))}
.nd b{font-size:1.05rem}.nd.tst b{font-size:1.3rem;background:linear-gradient(90deg,var(--ac),var(--ac2));-webkit-background-clip:text;background-clip:text;color:transparent}.nd em{font-style:normal;color:var(--mut);font-size:.78rem;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
