:root{--bg:#f9fafb;--ink:#1f2937;--ink2:#374151;--mute:#64748b;--line:#e5e7eb;--card:#fff;--blue:#2563eb;--blue-d:#1d4ed8;--blue-t:#dbeafe;--green:#16a34a;--green-t:#dcfce7;--red:#dc2626;--red-t:#fee2e2;--amber:#f59e0b;--felt1:#14532d;--felt2:#166534;--shadow:0 6px 20px #0f172a12}html[data-theme=dark]{--bg:#0f172a;--ink:#f1f5f9;--ink2:#cbd5e1;--mute:#94a3b8;--line:#263449;--card:#1e293b;--blue:#60a5fa;--blue-d:#93c5fd;--blue-t:#1e3a5f;--green:#4ade80;--green-t:#14391f;--red:#f87171;--red-t:#4a1d1d;--shadow:none}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;font-family:Heebo,system-ui,-apple-system,Segoe UI,Arial,sans-serif;font-size:17px;line-height:1.5}button,input{font:inherit;color:inherit}h1{margin:.2em 0 .3em;font-size:1.6rem;line-height:1.25}h2{margin:.1em 0 .4em;font-size:1.2rem}h3{color:var(--ink2);margin:.9em 0 .4em;font-size:1rem}p{margin:.4em 0}.app{max-width:560px;margin:0 auto;padding:16px 16px 96px}.sub{color:var(--mute);margin-top:0}.hint{color:var(--mute);font-size:.88rem}.warn{color:var(--red);font-size:.9rem}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;margin:12px 0;padding:16px}.btn{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:6px;min-height:48px;padding:10px 18px;font-weight:600;display:inline-flex}.tool .btn.primary,.summary .btn.primary,.verdict .btn,.lesson .btn.primary,.card>.btn.primary{width:100%}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.primary:hover{background:var(--blue-d)}.btn.ghost{background:0 0}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible,.link:focus-visible,.opt:focus-visible,.nav button:focus-visible,.seg button:focus-visible,.slot:focus-visible,.rk:focus-visible,.su:focus-visible,input:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.link{color:var(--blue);cursor:pointer;background:0 0;border:0;min-height:44px;padding:8px 0}.link.danger{color:var(--red);margin-top:12px}input{border:1px solid var(--line);background:var(--card);border-radius:12px;width:100%;min-height:48px;margin:6px 0 10px;padding:10px 12px}label{margin-top:10px;font-weight:600;display:block}label.check{align-items:flex-start;gap:10px;margin:14px 0;font-weight:400;display:flex}label.check input{width:24px;min-height:24px;margin:3px 0 0}.row{justify-content:space-between;align-items:center;gap:12px;display:flex}.row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.seg{gap:6px;margin:6px 0 10px;display:flex}.seg.wrap{flex-wrap:wrap}.seg button{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:10px;flex:1;min-width:48px;min-height:44px;padding:8px 6px;font-size:15px}.seg button.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:700}.logo{background:radial-gradient(circle at 30% 30%,var(--felt2),var(--felt1));color:#fff;border:3px solid #d4a73a;border-radius:50%;place-items:center;width:64px;height:64px;margin:0 auto 8px;font-size:2rem;display:grid}.onb{margin-top:20px}.onb h1,.onb .lead{text-align:center}.lead{color:var(--mute)}.hello{justify-content:space-between;align-items:flex-start;display:flex}.streak{background:var(--card);border:1px solid var(--line);border-radius:999px;align-items:center;gap:4px;padding:6px 12px;font-size:1.1rem;display:flex}.stars{letter-spacing:2px;font-size:1.6rem}.stars span{color:var(--line)}.stars span.on{color:var(--amber)}.xp{color:var(--blue);font-weight:700}.hero-card{background:linear-gradient(135deg,var(--blue-t),var(--green-t))}.cost{border-inline-start:5px solid var(--amber)}.nav{background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:5;display:flex;position:fixed;bottom:0;left:0;right:0}.nav button{min-height:60px;color:var(--mute);cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:0;padding:8px 4px;font-size:.8rem;display:flex}.nav button span{font-size:1.4rem}.nav button.on{color:var(--blue);font-weight:700}.unit{text-align:start;cursor:pointer;align-items:center;gap:12px;width:100%;display:flex}.unit .num{background:var(--blue-t);width:40px;height:40px;color:var(--blue);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.unit.done .num{background:var(--green-t);color:var(--green)}.unit .body{flex-direction:column;display:flex}.unit small{color:var(--mute);font-size:.85rem}.unit .best{color:var(--green)}.lesson .points{padding-inline-start:20px}.lesson .points li{margin:10px 0}.tip{background:var(--green-t);border-radius:12px;margin:12px 0;padding:12px}.session{padding-top:4px}.sess-head{justify-content:space-between;align-items:center;display:flex}.sess-title{font-weight:700}.progress{background:var(--line);border-radius:99px;height:8px;margin:6px 0 14px;overflow:hidden}.progress span{background:var(--blue);height:100%;transition:width .25s;display:block}.qmeta{color:var(--mute);justify-content:space-between;align-items:center;display:flex}.chip{background:var(--blue-t);color:var(--blue);border-radius:99px;padding:2px 10px;font-size:.85rem;font-weight:600}.qprompt{margin:.6em 0 .2em;font-size:1.3rem}.qsit{color:var(--mute);margin:.2em 0 .6em}.table-felt{background:radial-gradient(ellipse at center,var(--felt2),var(--felt1));color:#fff;border-radius:18px;flex-direction:column;gap:10px;margin:10px 0;padding:14px;display:flex;box-shadow:inset 0 0 0 3px #ffffff1f}.cardrow-wrap{flex-direction:column;align-items:center;gap:4px;display:flex}.cardrow-label{opacity:.85;font-size:.8rem}.felt-note{text-align:center;opacity:.8;margin:0;font-size:.85rem}.cardrow{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.pcard{background:#fff;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:44px;height:62px;font-weight:700;line-height:1;display:inline-flex;box-shadow:0 2px 5px #00000059}.pcard.sm{width:36px;height:50px;font-size:.85rem}.pcard .r{font-size:1.15rem}.pcard .s{font-size:1.2rem}.pcard.red{color:#c81e1e}.pcard.blk{color:#111827}.pcard.back{background:repeating-linear-gradient(45deg,#1d4ed8,#1d4ed8 4px,#2563eb 4px 8px)}.options{gap:10px;margin:12px 0;display:grid}.opt{border:2px solid var(--line);background:var(--card);text-align:start;cursor:pointer;border-radius:14px;min-height:54px;padding:12px 14px;font-weight:500}.opt:hover:not(:disabled){border-color:var(--blue)}.opt.correct{border-color:var(--green);background:var(--green-t)}.opt.wrong{border-color:var(--red);background:var(--red-t)}.opt.dim{opacity:.55}.verdict{border-radius:14px;margin-top:8px;padding:14px}.verdict.ok{background:var(--green-t)}.verdict.bad{background:var(--red-t)}.verdict .btn{width:100%;margin-top:8px}.summary{text-align:center}.bigscore{color:var(--blue);font-size:3rem;font-weight:800}.bigscore small{color:var(--mute);font-size:1.2rem}.leaks{text-align:start}.wrong-item{border-top:1px solid var(--line);padding:8px 0}.skillrow{grid-template-columns:150px 1fr 40px;align-items:center;gap:8px;margin:8px 0;display:grid}.skillrow small{text-align:end;color:var(--mute)}.bar{background:var(--line);border-radius:99px;height:10px;overflow:hidden}.bar span{height:100%;display:block}.bar .g{background:var(--green)}.bar .y{background:var(--amber)}.bar .r{background:var(--red)}.log{color:var(--ink2);padding-inline-start:18px}.slots{flex-wrap:wrap;gap:8px;margin:6px 0 10px;display:flex}.slot{border:2px dashed var(--line);background:var(--card);cursor:pointer;border-radius:10px;place-items:center;min-width:54px;height:74px;padding:0 4px;display:grid}.slot.active{border-color:var(--blue);border-style:solid}.slot-empty{color:var(--mute);text-align:center;font-size:.72rem}.picker{background:var(--bg);border-radius:12px;margin:8px 0;padding:10px}.ranks{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.rk,.su{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:10px;min-height:48px;font-size:1.1rem;font-weight:700}.rk.on{background:var(--blue);color:#fff;border-color:var(--blue)}.rk:disabled,.su:disabled{opacity:.3;cursor:not-allowed}.suits{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px;display:grid}.su{min-height:56px;font-size:1.7rem}.su.red{color:#c81e1e}.result.good{border-color:var(--green);background:var(--green-t)}.result.bad{border-color:var(--red);background:var(--red-t)}.meter{background:var(--line);border-radius:99px;height:16px;margin:12px 0;position:relative;overflow:visible}.meter .eq{background:var(--blue);border-radius:99px;height:100%;display:block}.meter i{background:var(--ink);border-radius:2px;width:3px;height:26px;position:absolute;top:-5px}.facts{padding-inline-start:18px}.facts li{margin:6px 0}.grid13{direction:ltr;grid-template-columns:repeat(13,1fr);gap:2px;font-size:.62rem;display:grid}.grid13 .g{aspect-ratio:1;background:var(--line);color:var(--mute);border-radius:3px;place-items:center;font-weight:600;display:grid}.grid13.big{gap:3px;font-size:.8rem}.gridbtn{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block;position:relative}.tap{color:var(--blue);margin-top:6px;font-size:.8rem;display:block}.modal{z-index:20;-webkit-overflow-scrolling:touch;background:#0009;padding:10px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-in{background:var(--card);border-radius:16px;width:100%;max-width:560px;margin:auto;padding:12px}@media (height<=480px){.grid13.big{gap:2px;font-size:.62rem}}.spec{word-break:break-word;font-size:.85rem}@media (width>=768px){.app{padding-top:28px}}@media (width<=360px){.skillrow{grid-template-columns:110px 1fr 36px}.pcard{width:40px;height:56px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.seg.wrap button{flex:22%;min-width:0}.rankbox{margin:8px 0}.rankbox .row{justify-content:space-between;margin-bottom:6px;display:flex}.rankbox small{color:var(--muted,#6b7280)}.weekgoal{font-weight:600}.badges{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.badge{text-align:center;border:1px solid var(--line);opacity:.45;filter:grayscale();border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.badge.got{opacity:1;filter:none;background:var(--green-t,#dcfce7)}.badge span{font-size:1.6rem}.badge b{font-size:.85rem}.badge small{font-size:.7rem}.prep{border-inline-start:4px solid var(--blue)}.spark{align-items:flex-end;gap:4px;height:52px;margin:8px 0;display:flex}.spark span{border-radius:3px;flex:1}.spark .w{background:var(--green)}.spark .l{background:var(--red)}.warn{color:var(--red)}.instant{background:var(--blue-t,#dbeafe);border-radius:10px;margin:8px 0;padding:8px 12px}.splash{z-index:999;color:#fff;background:radial-gradient(at 50% 40%,#14532d 0%,#0b2e1b 55%,#06150d 100%);flex-direction:column;justify-content:center;align-items:center;gap:28px;transition:opacity .45s,transform .45s;display:flex;position:fixed;inset:0;overflow:hidden}.splash.out{opacity:0;pointer-events:none;transform:scale(1.04)}.splash-glow{background:radial-gradient(circle,#facc1538,#0000 65%);border-radius:50%;width:520px;height:520px;animation:2.4s ease-in-out infinite pulse;position:absolute}.splash-cards{width:220px;height:130px;position:relative}.pc{color:#111827;transform-origin:50% 140%;opacity:0;background:#fff;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;width:68px;height:96px;margin-left:-34px;animation:.9s cubic-bezier(.2,.9,.3,1.2) forwards fan;display:flex;position:absolute;top:0;left:50%;box-shadow:0 10px 24px #00000073}.pc b{font-size:28px;line-height:1}.pc i{font-size:26px;font-style:normal}.pc.red{color:#dc2626}.c1{--r:-24deg;animation-delay:.15s}.c2{--r:-8deg;animation-delay:.3s}.c3{--r:8deg;animation-delay:.45s}.c4{--r:24deg;animation-delay:.6s}@keyframes fan{0%{opacity:0;transform:translateY(40px)rotate(0)scale(.7)}to{opacity:1;transform:translateY(0) translateX(var(--x,0)) rotate(var(--r)) scale(1)}}.splash-logo{text-align:center;opacity:0;animation:.8s .9s forwards rise}.splash-badge{color:#facc15;background:#052e16;border:3px solid #facc15;border-radius:50%;place-items:center;width:64px;height:64px;margin:0 auto 10px;font-size:30px;display:grid;box-shadow:0 0 28px #facc1573}.splash-logo h1{letter-spacing:.5px;background:linear-gradient(90deg,#fde68a,#facc15,#fde68a) 0 0/200% 100%;color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:2.1rem;animation:2.2s linear infinite shine}.splash-logo p{color:#bbf7d0;opacity:.9;margin:6px 0 0}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes shine{to{background-position:-200% 0}}@keyframes pulse{50%{opacity:.7;transform:scale(1.15)}}.splash-load{text-align:center;width:min(260px,70vw)}.splash-bar{background:#ffffff26;border-radius:99px;height:6px;overflow:hidden}.splash-bar span{background:linear-gradient(90deg,#facc15,#fde68a);border-radius:99px;width:0;height:100%;animation:2.2s ease-out forwards load;display:block}@keyframes load{to{width:100%}}.splash-load small{color:#d1fae5;min-height:1.2em;margin-top:8px;font-size:.85rem;display:block}@media (prefers-reduced-motion:reduce){.splash *{animation-duration:10ms!important;animation-delay:0s!important}}.splash-chips{pointer-events:none;position:absolute;inset:0}.splash .chip{width:46px;height:46px;box-shadow:0 6px 14px #00000073,inset 0 0 0 4px var(--cc);background:var(--cc);opacity:0;animation:1.5s cubic-bezier(.2,.8,.3,1) forwards fly;animation-delay:calc(var(--i)*90ms + .1s);border:5px dashed #ffffffd9;border-radius:50%;margin:-23px;position:absolute;top:45%;left:50%}.splash .chip.c0{--cc:#dc2626}.splash .chip.c1{--cc:#2563eb}.splash .chip.c2{--cc:#16a34a}.splash .chip.c3{--cc:#111827}.splash .chip:nth-child(odd){--sx:-60vw}.splash .chip:nth-child(2n){--sx:60vw}.splash .chip:nth-child(3n){--sy:-40vh}.splash .chip:nth-child(3n+1){--sy:40vh}.splash .chip:nth-child(3n+2){--sy:-10vh}@keyframes fly{0%{opacity:0;transform:translate(var(--sx,0),var(--sy,0)) rotate(0) scale(.6)}15%{opacity:1}70%{opacity:1;transform:translate(calc(var(--i)*14px - 50px),calc(var(--i)*-4px + 330px)) rotate(540deg) scale(1)}to{opacity:1;transform:translate(calc(var(--i)*14px - 50px),calc(var(--i)*-4px + 330px)) rotate(560deg) scale(1)}}.splash-badge{width:96px;height:96px;font-size:48px}.splash-logo h1{font-size:2.8rem}.splash-cards{margin-bottom:-6px}.splash-logo{z-index:2;position:relative}.splash-chips{z-index:1}:root{--bg:#f4f1ea;--ink:#16211b;--ink2:#2c3a32;--mute:#5f6b63;--line:#e0dbcd;--card:#fffdf8;--blue:#14532d;--blue-d:#0f3d22;--blue-t:#e3efe6;--green:#15803d;--green-t:#dcefe0;--gold:#d4a017;--gold-t:#fbf1cf;--shadow:0 1px 0 #14281c0a,0 8px 24px -12px #14281c40}html[data-theme=dark]{--bg:#07140d;--ink:#f3efe3;--ink2:#d5d0bf;--mute:#9aa79d;--line:#1f3326;--card:#0e2217;--blue:#e2b93b;--blue-d:#f0cc62;--blue-t:#173225;--green:#4ade80;--green-t:#12301d;--gold:#e2b93b;--gold-t:#2a2410;--shadow:0 10px 30px -14px #000000b3}body{font-feature-settings:"tnum";letter-spacing:.005em}h1,h2{letter-spacing:-.01em;font-weight:800}.ico{vertical-align:-4px;flex:none}.btn.primary{color:#fffdf8;background:linear-gradient(#1b6a3a,#14532d);border-color:#0f3d22;box-shadow:0 6px 14px -8px #0f3d22cc,inset 0 1px #ffffff2e}.btn.primary:active{transform:translateY(1px)}html[data-theme=dark] .btn.primary{color:#1a1405;background:linear-gradient(#f0cc62,#d4a017);border-color:#a67c0a}.hero-card{color:#fffdf8;background:radial-gradient(at 70% 0,#1d6b3d 0%,#14532d 45%,#0b2e1b 100%);border:0;position:relative;overflow:hidden}.hero-card:after{content:"♠";opacity:.07;font-size:120px;line-height:1;position:absolute;bottom:-34px;left:-14px}.hero-card .hint,.hero-card small,.hero-card .weekgoal{color:#cfe6d6}.hero-card .xp{color:#facc15}.hero-card .bar{background:#ffffff2e}.hero-card .bar span{background:linear-gradient(90deg,#facc15,#fde68a)}.stars .on{color:#facc15}.streak{background:var(--gold-t);border-color:var(--gold);color:#7a5a00}.nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav button.on{color:var(--blue)}.opt.correct{background:var(--green-t);border-color:var(--green)}.badge.got{background:var(--gold-t);border-color:var(--gold);color:#6b4e00}.chip{background:var(--blue-t);color:var(--blue)}.tip{background:var(--gold-t);border:1px solid var(--gold);border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.card.prep{border-inline-start:4px solid var(--gold)}html[data-theme=dark] .chip,html[data-theme=dark] .link{color:var(--gold)}html[data-theme=dark] .seg button.on{color:#1a1405}.chart .seg.wrap{grid-template-columns:repeat(auto-fit,minmax(52px,1fr));display:grid}.chart .seg.wrap button{flex:none}@media (prefers-reduced-motion:reduce){.confetti{display:none}}.celebrate{text-align:center;color:#3b2f05;background:linear-gradient(#fff8dc,#fdf0b8);border:1px solid #d4a017;border-radius:14px;margin:10px 0;padding:12px}.celebrate b{font-size:1.15rem}.btn.wa{color:#fff;background:#16a34a;border-color:#15803d;width:100%;font-weight:700;text-decoration:none}.review{background:var(--blue-t);border-radius:10px;padding:8px 10px;font-size:.92rem}.install .link{margin-top:6px;display:block}.gets{margin:6px 0 12px;padding:0 18px;line-height:1.7}.gets li::marker{color:var(--gold)}.confetti{pointer-events:none;z-index:30;position:fixed;inset:0;overflow:hidden}.confetti i{opacity:0;border-radius:2px;width:9px;height:14px;animation:2.2s ease-in forwards fall;position:absolute;top:-16px}@keyframes fall{0%{opacity:1;transform:translateY(0)rotate(0)}85%{opacity:1}to{opacity:0;transform:translateY(105vh)rotate(620deg)}}.summary{margin-top:6vh}.celebrate{animation:.5s cubic-bezier(.2,.9,.3,1.3) pop}@keyframes pop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:none}}.grid13{gap:2px;font-size:.7rem}.grid13 .g{color:var(--ink2);font-weight:700}.grid13 .g.gsu{background:#e4dcc6}.grid13 .g.gof{background:#d7d0bd}.grid13 .g.pair{background:#d0c8b0}.grid13 .g.on{background:var(--green);color:#fff}html[data-theme=dark] .grid13 .g.gsu{background:#1b3a29}html[data-theme=dark] .grid13 .g.gof{background:#15301f}html[data-theme=dark] .grid13 .g.pair{background:#244633}html[data-theme=dark] .grid13 .g{color:#cfe3d5}html[data-theme=dark] .grid13 .g.on{color:#06150d}@media (height<=480px){.grid13.big{font-size:.62rem}}.ranks{gap:4px}.rk{min-height:52px}.splash-load{z-index:3;position:relative}.splash-cards{z-index:2}.c1{--r:-26deg;--x:-62px}.c2{--r:-9deg;--x:-21px}.c3{--r:9deg;--x:21px}.c4{--r:26deg;--x:62px}.splash-cards{width:260px}@media (height<=480px){.splash{gap:12px}.splash-cards{height:100px;margin-top:6px;transform:scale(.7)}.splash-badge{width:60px;height:60px;margin-bottom:4px;font-size:30px}.splash-logo h1{font-size:2rem}.splash-load{margin-bottom:6px}}.grid13{grid-template-columns:repeat(13,minmax(0,1fr));font-size:.64rem}.grid13 .g{letter-spacing:-.02em;min-width:0;overflow:hidden}.grid13.big{font-size:.8rem}@media (height<=480px){.grid13.big{font-size:.62rem}}.btn:disabled{opacity:1;background:var(--line);border-color:var(--line);color:var(--mute);cursor:not-allowed;box-shadow:none}.btn.primary:disabled{color:#5f6b63;background:#c9d4cb;border-color:#c9d4cb}html[data-theme=dark] .btn:disabled,html[data-theme=dark] .btn.primary:disabled{color:#7f8f84;background:#1f3326;border-color:#1f3326}html[data-theme=dark] .su:not(.red){color:#ece7d6}html[data-theme=dark] .su.red{color:#fb7185}html[data-theme=dark] .rk:disabled,html[data-theme=dark] .su:disabled{opacity:.4}html[data-theme=dark] .celebrate{color:#fde68a;background:linear-gradient(#3d3208,#2b2306);border-color:#d4a017}html[data-theme=dark] .grid13 .g.on{color:#06150d;background:#4ade80}:root{--serif:"Frank Ruhl Libre","Heebo",Georgia,serif;--felt-noise:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .55 0'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>")}h1,h2,.bigscore,.splash-logo h1{font-family:var(--serif)}h1{letter-spacing:0;font-weight:900}h2{font-weight:700}html[data-theme=dark] body{background:radial-gradient(120% 60% at 50% -10%,#14402a 0%,#0a1d13 45%,#050f09 100%) fixed,#050f09;position:relative}html[data-theme=dark] body:before{content:"";pointer-events:none;background-image:var(--felt-noise);opacity:.055;mix-blend-mode:screen;z-index:0;position:fixed;inset:0}html[data-theme=dark] #root{z-index:1;position:relative}html[data-theme=dark] body:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(#0000 55%,#00000073 100%);position:fixed;inset:0}html[data-theme=dark] .card{background:linear-gradient(#ffffff0b,#fff0 38%),#0c2016;border:1px solid #e2b93b38;box-shadow:0 14px 30px -16px #000000e6,inset 0 1px #ffffff0f}html[data-theme=dark] .card h2{align-items:center;gap:8px;display:flex}html[data-theme=dark] .card h2:before{content:"";background:linear-gradient(#f0cc62,#a67c0a);border-radius:2px;flex:none;width:3px;height:1em}html[data-theme=dark] .hero-card{background:radial-gradient(at 70% 0,#1f6e41 0%,#14532d 42%,#0a2a19 100%);border:1px solid #e2b93b8c;box-shadow:0 18px 36px -18px #000000f2,inset 0 0 0 5px #0000002e,inset 0 0 0 6px #e2b93b59}.hero-card h2:before{display:none}.table-felt{background:var(--felt-noise),radial-gradient(ellipse at center,#1d6b3d 0%,#14532d 55%,#0b3320 100%);background-blend-mode:soft-light,normal;border-radius:26px;margin:16px 6px;position:relative;box-shadow:inset 0 0 0 2px #e2b93b8c,inset 0 12px 30px #00000059,0 0 0 7px #2b1b10,0 0 0 8px #6b4a2a,0 16px 30px -10px #000c}html[data-theme=dark] .btn.primary{color:#1b1404;text-shadow:0 1px #ffffff59;background:linear-gradient(#f7da7a 0%,#e2b93b 48%,#b98a14 100%);border:1px solid #8a6508;font-weight:800;box-shadow:0 10px 20px -10px #e2b93b8c,inset 0 1px #ffffff8c,inset 0 -2px #0000002e}html[data-theme=dark] .btn{border-color:#e2b93b4d}.unit .num{color:#f0cc62;font-family:var(--serif);background:radial-gradient(circle,#1a3a28 55%,#0d2418 100%);border:2px dashed #e2b93bcc;font-size:1.05rem;font-weight:900;box-shadow:0 0 0 3px #0d2418,0 0 0 4px #e2b93b59,0 4px 8px #00000080}.unit.done .num{color:#fff;background:radial-gradient(circle,#15803d 55%,#0f5d2c 100%);border-color:#fde68a}.streak{color:#f0cc62;background:#1a3a28;border:2px dashed #e2b93bd9;box-shadow:0 0 0 2px #0d2418,0 6px 12px -4px #000000b3}html[data-theme=dark] .nav{-webkit-backdrop-filter:blur(14px);background:#06120be0;border-top:1px solid #e2b93b4d;box-shadow:0 -10px 30px -12px #000c}html[data-theme=dark] .nav button.on{color:#f0cc62;position:relative}html[data-theme=dark] .nav button.on:before{content:"";background:linear-gradient(90deg,#a67c0a,#f7da7a,#a67c0a);border-radius:0 0 4px 4px;height:3px;position:absolute;top:-1px;left:30%;right:30%}html[data-theme=dark] .opt{background:linear-gradient(#ffffff0d,#fff0),#0d2418;border:1.5px solid #e2b93b33;box-shadow:0 6px 12px -8px #000000e6}html[data-theme=dark] .opt:hover:not(:disabled){border-color:#e2b93b}html[data-theme=dark] .opt.correct{background:#12391f;border-color:#4ade80;box-shadow:0 0 0 1px #4ade80,0 0 22px -6px #4ade808c}html[data-theme=dark] .opt.wrong{background:#431818;border-color:#f87171}.pcard{box-shadow:0 8px 14px -6px #000000b3,inset 0 0 0 1px #0000000f}.bigscore{font-size:4rem;font-weight:900}.sub,.hint{letter-spacing:.01em}html[data-theme=dark] .progress span,html[data-theme=dark] .bar span:not(.g):not(.y):not(.r){background:linear-gradient(90deg,#a67c0a,#f7da7a)}html[data-theme=dark] .badge.got{background:linear-gradient(#3d3208,#241d06);border-color:#e2b93b;box-shadow:0 0 18px -6px #e2b93b99}.logo{font-family:var(--serif)}.splash.sp2{background:linear-gradient(#0000009e,#0000 38% 62%,#000000b3),url(../img/room.jpg) 50% 72%/cover,#030a06;justify-content:flex-start;align-items:center;gap:0;padding-top:max(13vh,60px)}.splash.sp2 .splash-logo{opacity:0;animation:.9s .3s forwards rise}.splash.sp2 .sp-rule{background:linear-gradient(90deg,#0000,#e2b93b,#0000);width:64px;height:1px;margin:0 auto 18px;display:block}.splash.sp2 .splash-logo h1{font-family:var(--serif);background:linear-gradient(#fbe38b,#d9ac2e 55%,#9c740f);color:#0000;text-shadow:none;filter:drop-shadow(0 2px 10px #0009);-webkit-background-clip:text;background-clip:text;font-size:3rem;font-weight:900;line-height:1.05}.splash.sp2 .splash-logo p{color:#e9dfc2;letter-spacing:.08em;opacity:1;margin-top:12px;font-size:1rem;font-weight:300}.splash.sp2 .splash-load{width:min(240px,66vw);position:absolute;bottom:max(7vh,36px);left:50%;transform:translate(-50%)}.splash.sp2 .splash-bar{background:#e2b93b33;height:2px}.splash.sp2 .splash-bar span{background:linear-gradient(90deg,#a67c0a,#f7da7a)}.splash.sp2 .splash-load small{color:#cdbb86;letter-spacing:.14em;font-size:.78rem}@media (height<=480px){.splash.sp2{background-position:50% 85%;padding-top:7vh}.splash.sp2 .splash-logo h1{font-size:2.1rem}.splash.sp2 .splash-logo p{margin-top:6px}.splash.sp2 .splash-load{bottom:12px}}html[data-theme=dark] body{background:linear-gradient(#020a0659,#020a06b8),url(../img/felt.jpg) top/cover fixed,#050f09}html[data-theme=dark] body:before{opacity:.03}html[data-theme=dark] .card{-webkit-backdrop-filter:blur(6px);background:linear-gradient(#ffffff0d,#fff0 40%),#06160ec7}.emblem{border-radius:50%;width:96px;height:96px;margin:0 auto 10px;display:block;box-shadow:0 0 0 2px #e2b93b66,0 12px 30px -10px #000,0 0 40px #e2b93b2e}@media (height<=480px){.splash.sp2{background:linear-gradient(270deg,#000000d9 0%,#0000008c 45%,#0000001a 100%),url(../img/room.jpg) 50% 78%/cover,#030a06;align-items:flex-end;padding:16vh 7vw 0 0}.splash.sp2 .splash-logo{text-align:right}.splash.sp2 .splash-load{bottom:20px;left:auto;right:7vw;transform:none}.splash.sp2{align-items:flex-start}.splash.sp2 .sp-rule{margin:0 0 12px}.splash.sp2 .splash-load{left:auto;right:7vw}}.empty{color:var(--ink2);border:1px dashed #e2b93b59;border-radius:12px;margin:8px 0 12px;padding:10px 12px;font-size:.92rem}.pro-chip{letter-spacing:.06em;color:#1b1404;vertical-align:middle;background:linear-gradient(#f7da7a,#c99a1c);border-radius:999px;margin-inline-start:8px;padding:2px 8px;font-size:.7rem;font-style:normal;font-weight:800}.unit:has(.pro-chip) .num{opacity:.7}.pw{z-index:60;background:#000000b8;justify-content:center;align-items:flex-end}.pw-box{text-align:center;background:linear-gradient(#ffffff0f,#fff0 40%),#0b2016;border:1px solid #e2b93b80;border-radius:22px 22px 0 0;width:100%;max-width:520px;margin:auto 0 0;padding:26px 20px 22px;animation:.35s both rise;position:relative;box-shadow:0 -20px 50px -10px #000}.pw-crown{color:#f0cc62;border:1.5px solid #e2b93b;border-radius:50%;place-items:center;width:56px;height:56px;margin:0 auto 8px;font-size:28px;display:grid;box-shadow:0 0 0 4px #00000059,0 0 30px #e2b93b40}.pw-box h2{color:#f0cc62;margin:4px 0;font-size:1.5rem}.pw-sub{color:var(--ink2);margin:0 0 12px}.pw-x{color:var(--mute);cursor:pointer;background:0 0;border:0;min-width:44px;min-height:44px;font-size:1.2rem;position:absolute;top:10px;left:12px}.pw-list{text-align:start;gap:8px;margin:0 0 14px;padding:0;list-style:none;display:grid}.pw-list li{color:var(--ink);padding-inline-start:26px;position:relative}.pw-list li:before{content:"✓";color:#4ade80;font-weight:800;position:absolute;inset-inline-start:0}.pw-plans{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.pw-plan{color:var(--ink);cursor:pointer;background:#00000040;border:2px solid #e2b93b40;border-radius:14px;flex-direction:column;gap:2px;min-height:64px;padding:16px 8px 12px;display:flex;position:relative}.pw-plan.on{border-color:#e2b93b;box-shadow:0 0 0 1px #e2b93b,0 0 22px -8px #e2b93b99}.pw-plan em{color:#06150d;white-space:nowrap;background:#4ade80;border-radius:999px;padding:2px 8px;font-size:.7rem;font-style:normal;font-weight:800;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.pw-plan b{font-size:1rem}.pw-plan span{color:var(--ink2);font-size:.9rem}.pw-beta{color:var(--mute);margin:8px 0 4px;font-size:.8rem}.pro-card{border-color:#e2b93b80!important}.pro-nudge{background:#e2b93b14;border:1px solid #e2b93b80;border-radius:14px;gap:10px;margin:12px 0;padding:14px;display:grid}.confirm-box{background:#7f1d1d33;border:1px solid #f8717180;border-radius:12px;margin-top:8px;padding:12px}.skillrow.locked{filter:blur(5px);opacity:.55;pointer-events:none;-webkit-user-select:none;user-select:none}.leak-sum{margin-top:0}.confirm-box{flex-direction:column;gap:8px;display:flex}.confirm-box .btn,.confirm-box .link{width:100%}@media (height<=480px){.pw-box{padding:12px 16px}.pw-crown,.pw-list{display:none}.pw-box h2{font-size:1.2rem}.pw-sub{margin-bottom:8px;font-size:.9rem}.pw-plans{margin-bottom:8px}.pw-plan{min-height:52px;padding:12px 8px 8px}.pw-beta{margin:4px 0}}.pw-crown{width:auto;height:auto;box-shadow:none;filter:drop-shadow(0 10px 18px #e2b93b59);border:0;border-radius:0;margin:-4px auto 6px;font-size:0}.pw-crown .gold-chip{animation:.6s cubic-bezier(.2,1.4,.4,1) both chipin;display:block}@keyframes chipin{0%{opacity:0;transform:translateY(-14px)rotate(-120deg)scale(.7)}to{opacity:1;transform:none}}.nudge-row{text-align:start;align-items:center;gap:12px;display:flex}.nudge-row .gold-chip{flex:none}@media (height<=480px){.pw-crown{display:block!important}.pw-crown .gold-chip{width:44px;height:44px}}@media (prefers-reduced-motion:reduce){.pw-crown .gold-chip{animation:none}}.planflow{flex-direction:column;gap:14px;display:flex}.planflow .dots{justify-content:center;gap:6px;display:flex}.planflow .dots i{background:var(--line,#3a3a3a);opacity:.5;border-radius:2px;width:22px;height:4px}.planflow .dots i.on,.planflow .dots i.done{background:var(--brass,#c9a24a);opacity:1}.timeline{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.timeline li{align-items:flex-start;gap:12px;display:flex}.timeline .dot{border:2px solid var(--brass,#c9a24a);border-radius:50%;flex:0 0 32px;place-items:center;height:32px;font-weight:700;display:grid}.timeline li.done .dot{background:var(--brass,#c9a24a);color:#1a1405}.timeline b{display:block}.timeline small{opacity:.75;display:block}.pace{flex-direction:column;gap:10px;display:flex}.pace .opt{text-align:start;border:2px solid var(--line,#3a3a3a);color:inherit;background:0 0;border-radius:14px;flex-direction:column;gap:2px;min-height:44px;padding:14px;display:flex}.pace .opt.on{border-color:var(--brass,#c9a24a);background:#c9a24a1f}.pace .opt small{opacity:.75}.countdown{font-variant-numeric:tabular-nums;color:var(--brass,#c9a24a);font-size:1.25em}.goal .opens,.path .opens{margin:.2em 0}.path small.opens{display:block}.aha{border:1px solid var(--brass,#c9a24a);margin-top:12px}.aha h3{color:var(--brass,#c9a24a);margin:0 0 6px}.planflow{min-height:calc(100dvh - 40px)}@media (orientation:landscape){.planflow{min-height:0}.planflow .btn.primary{margin-top:8px}}.gl{font:inherit;color:inherit;cursor:pointer;border:0;border-bottom:1.5px dotted var(--brass,#c9a24a);min-height:0;line-height:inherit;background:0 0;margin:0;padding:0;display:inline}.gl-sheet{z-index:60;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.gl-panel{background:var(--card);border:1px solid var(--line);width:100%;max-width:560px;max-height:82dvh;padding:14px 16px calc(14px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;flex-direction:column;display:flex}.gl-head{justify-content:space-between;align-items:center;display:flex}.gl-head h2{margin:0}.gl-list{margin-top:8px;overflow:auto}.gl-item{border-bottom:1px solid var(--line);border-radius:10px;padding:10px 8px}.gl-item p{margin:.25em 0}.gl-item small{opacity:.75}.gl-item.on{border:1px solid var(--brass,#c9a24a);background:#c9a24a24}.gl-item .en{opacity:.6;font-size:.85em;font-weight:400}@media (orientation:landscape){.gl-panel{max-height:94dvh}}.gl-item .en{margin-inline-start:.6em;display:inline-block}.remind-ask .link{align-items:center;min-height:44px;display:inline-flex}.unit.locked{opacity:.95;cursor:default}.unit.locked .btn{margin-top:8px}.cert{text-align:center;border:2px solid var(--brass,#c9a24a);margin-top:12px}.cert h2{color:var(--brass,#c9a24a);margin:.3em 0;font-family:Frank Ruhl Libre,serif}.unit.stage-row:disabled{opacity:.55}.unit.stage-row .num{font-size:20px}.stage-msg{text-align:center;margin:.4em 0;font-size:1.15em;font-weight:700}.stage-msg.win{color:var(--brass,#c9a24a)}.lockbox{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.btn.locked{opacity:.7;border:1.5px dashed var(--brass,#c9a24a);width:100%;color:var(--ink2);cursor:default;background:0 0}.bigtimer-label{opacity:.75;margin:6px 0 0;font-size:.9em}.countdown.big{letter-spacing:.04em;text-shadow:0 0 18px #c9a24a59;margin:0 0 6px;font-family:Frank Ruhl Libre,serif;font-size:2.6rem;line-height:1.1}.link.tiny{color:var(--mute);opacity:.8;background:0 0;border:0;min-height:40px;padding:6px 12px;font-size:.8rem;text-decoration:underline}.goal .opens{margin:.2em 0}.softscore{text-align:center;margin:.6em 0;font-size:1.2em;font-weight:600}.remind-ask .link{gap:6px}.slogan{color:var(--brass,#c9a24a);text-align:center;margin:.2em 0 .4em;font-family:Frank Ruhl Libre,serif;font-size:1.55rem;font-weight:700;line-height:1.25}.timepick{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.timepick h3{margin:0 0 8px}.timepick input[type=time]{min-height:44px;margin:0 8px}.hint.basis{opacity:.8;margin:-6px 0 12px}.menu{border:1px solid var(--line);background:var(--card);border-radius:16px;flex-direction:column;margin-top:4px;display:flex;overflow:hidden}.menu button{border:0;border-bottom:1px solid var(--line);width:100%;min-height:56px;color:inherit;font:inherit;text-align:right;cursor:pointer;background:0 0;align-items:center;gap:14px;padding:12px 16px;font-weight:600;display:flex}.menu button:last-child{border-bottom:0}.menu .mi{width:36px;height:36px;color:var(--gold,#e2b93b);background:#e2b93b1f;border-radius:10px;flex:none;place-items:center;display:grid}html:not([data-theme=dark]) .menu .mi{color:#14532d;background:#14532d1a}.menu .ml{flex:1}.menu .mc{opacity:.5;font-size:22px;line-height:1}.menu button:active{background:#e2b93b14}.menu button:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}.home .card>.btn{width:100%}.menu .ml small{margin-top:2px;font-size:.8em;font-weight:400;display:block}.countdown.days{direction:rtl}.progress-screen .sect{opacity:.85;margin:22px 4px 6px;font-size:1.05rem}.howto{margin-top:10px}.howto summary{cursor:pointer;color:var(--gold,#e2b93b);align-items:center;min-height:44px;display:flex}.need18{text-align:center;margin:-4px 0 0}.planflow{justify-content:center;min-height:calc(100dvh - 120px)}.planflow .btn.primary{margin-top:10px}html,body,#root{min-height:100dvh}html[data-theme=dark]{background:#050f09}.toolbtns{gap:10px;margin:10px 0;display:flex}.toolbtns .btn{flex:1}.runbar{bottom:calc(76px + env(safe-area-inset-bottom));z-index:5;background:linear-gradient(180deg,transparent,var(--bg) 35%);padding:10px 0 4px;position:sticky}.runbar .hint{text-align:center;margin:0 0 6px}.runbar .btn{width:100%}.toolbtns .btn{min-height:44px;padding:8px 6px;font-size:.95rem}.runbar{background:var(--bg);box-shadow:0 -10px 14px -6px var(--bg);margin:0 -16px;padding:10px 16px 6px}html[data-theme=dark] .runbar{background:#06120bf5;box-shadow:0 -12px 14px -6px #06120bf5}@media (orientation:landscape){.runbar{box-shadow:none;margin:0;padding:8px 0;position:static;background:0 0!important}}
