.reading .intro{color:var(--dim);max-width:60ch;font-size:16px;line-height:1.55;margin:0 0 18px}.reading .topbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.reading .pick{display:flex;align-items:center;gap:8px}.reading .pick label{font-family:var(--util);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}.reading select{font:inherit;font-size:15px;font-weight:600;padding:9px 12px;border-radius:11px;border:2px solid var(--edge-2);background:#fff;color:var(--ink);cursor:pointer}.reading .scores{display:flex;gap:10px;margin-left:auto;flex-wrap:wrap}.chip{background:#fff;border:1.5px solid var(--edge-2);border-radius:12px;padding:8px 13px;text-align:center;min-width:74px}.chip .k{font-family:var(--util);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}.chip .v{font-size:22px;font-weight:800;line-height:1.1}.chip.best .v{color:var(--gold)}.chip.last .v{color:var(--accent)}.card{background:var(--card);border:1px solid var(--edge);border-radius:var(--round);padding:22px 22px 24px;box-shadow:0 10px 26px -20px #33302a80}.timerbar{display:flex;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap}.clock{font-family:var(--util);font-size:34px;font-weight:700;letter-spacing:.02em;min-width:96px;transition:color .3s}.clock.go{color:var(--leaf)}.clock.done{color:var(--gold)}.startbtn{background:var(--accent);color:#fff;border:none;border-radius:14px;padding:15px 30px;font:inherit;font-size:18px;font-weight:800;cursor:pointer;transition:.14s}.startbtn:hover{filter:brightness(1.05);transform:translateY(-1px)}.startbtn.stop{background:var(--clay)}.startbtn.again{background:var(--ink)}.count-live{font-family:var(--util);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.count-live b{color:var(--ink);font-size:18px}.story{font-family:var(--display);font-size:clamp(20px,4.2vw,26px);line-height:1.85;letter-spacing:.005em}.story .w{border-radius:5px;padding:1px 2px;cursor:pointer;transition:background .12s}.story.armed .w:hover{background:#f6ecd6}.story .w.read{background:var(--read);box-shadow:inset 0 -2px 0 var(--readedge)}.story .w.cursor{background:var(--accent);color:#fff}.hint{color:var(--dim);font-size:14px;margin-top:16px;min-height:20px}.result{margin-top:18px;padding:18px;border-radius:16px;text-align:center}.result.show{animation:pop .35s cubic-bezier(.34,1.56,.64,1) both}@keyframes pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}.result .big{font-family:var(--display);font-size:clamp(32px,8vw,52px);line-height:1;margin:0}.result .msg{font-size:18px;font-weight:600;margin:8px 0 0}.result.win{background:#eef8f0;border:2px solid var(--ok)}.result.win .big{color:var(--ok)}.result.win .msg{color:#2c8a52}.result.good{background:#fdf6e6;border:2px solid var(--gold)}.result.good .big{color:#b7871a}.result.good .msg{color:#9a7418}.history{margin-top:22px}.history h3{font-family:var(--util);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin:0 0 12px;font-weight:700}.week{display:flex;gap:10px;align-items:flex-end;padding-top:20px}.daybar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;cursor:pointer;position:relative;background:none;border:none;padding:0}.daybar .num{font-size:15px;font-weight:800;margin-bottom:6px;color:var(--ink)}.daybar .num.blank{color:var(--edge-2);font-weight:600}.daybar .fill{width:100%;max-width:48px;border-radius:9px 9px 4px 4px;background:var(--clay);transition:height .55s cubic-bezier(.34,1.4,.64,1)}.daybar .fill.best{background:var(--gold)}.daybar .fill.empty{background:var(--edge)}.daybar .dl{font-family:var(--util);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--dim);margin-top:9px}.daybar.selected .dl{color:var(--accent-ink)}.daybar.selected .fill{box-shadow:0 0 0 2px var(--accent)}.daybar.today .dl{color:var(--accent-ink)}.daybar.today .dl:after{content:"";display:block;height:3px;width:60%;margin:4px auto 0;background:var(--accent);border-radius:99px}.memo{margin-top:12px;font-size:13px;color:var(--dim)}details.grown{margin-top:40px;border-top:1px solid var(--edge);padding-top:18px}details.grown summary{cursor:pointer;font-family:var(--util);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);list-style:none}details.grown summary::-webkit-details-marker{display:none}details.grown summary:before{content:"+ ";color:var(--accent)}details.grown[open] summary:before{content:"– "}details.grown .body{max-width:70ch;color:var(--dim);font-size:15px;line-height:1.65}details.grown h3{font-family:var(--display);color:var(--ink);font-weight:400;font-size:20px;margin:20px 0 6px}@media (prefers-reduced-motion: reduce){.result.show{animation:none}.daybar .fill{transition:none}}@media (max-width: 560px){.reading .scores{margin-left:0;width:100%}.chip{flex:1}}.numbers{--hund: #5b8def;--ten: #e08a3c;--one: #57ad78;--gator: #7a67c9;--n-ok: #42a86b;--amber: #dd9a3a}.numbers .intro{color:var(--dim);max-width:56ch;font-size:16px;line-height:1.55;margin:0 0 16px}.numbers .card{background:var(--card);border:1px solid var(--edge);border-radius:var(--round);padding:22px 20px;box-shadow:0 10px 26px -20px #2b354080;margin-top:16px}.numbers nav{display:flex;gap:9px}.numbers nav button{flex:1;background:transparent;color:var(--dim);border:2px solid var(--edge);border-radius:14px;padding:14px 10px;font:inherit;font-size:16px;font-weight:700;cursor:pointer;transition:.16s}.numbers nav button:hover{border-color:var(--edge-2);color:var(--ink)}.numbers nav button[aria-selected=true]{background:var(--accent);color:#fff;border-color:var(--accent)}.numbers .panel{animation:n-fade .3s ease both}@keyframes n-fade{0%{opacity:0}to{opacity:1}}.numbers .bignum{font-family:var(--display);font-size:clamp(56px,15vw,110px);line-height:1;text-align:center;letter-spacing:.02em}.numbers .expanded{text-align:center;font-size:clamp(16px,3.4vw,22px);color:var(--dim);margin-top:6px;min-height:28px}.numbers .expanded b.h{color:var(--hund)}.numbers .expanded b.t{color:var(--ten)}.numbers .expanded b.o{color:var(--one)}.numbers .blocks{display:flex;justify-content:center;gap:22px;align-items:flex-end;min-height:150px;margin:20px 0 6px;flex-wrap:wrap}.numbers .col{display:flex;flex-direction:column;align-items:center;gap:10px}.numbers .pile{display:flex;flex-wrap:wrap-reverse;gap:4px;justify-content:center;align-items:flex-end;max-width:150px;min-height:96px}.numbers .plabel{font-family:var(--util);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}.numbers .pcount{font-weight:800;font-size:20px}.numbers .h-blk{width:34px;height:34px;border-radius:4px;background:var(--hund);background-image:linear-gradient(rgba(255,255,255,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.35) 1px,transparent 1px);background-size:11.3px 11.3px}.numbers .t-blk{width:10px;height:34px;border-radius:3px;background:var(--ten);background-image:linear-gradient(rgba(255,255,255,.4) 1px,transparent 1px);background-size:100% 3.4px}.numbers .o-blk{width:10px;height:10px;border-radius:2px;background:var(--one)}.numbers .steppers{display:flex;justify-content:center;gap:14px;margin-top:16px;flex-wrap:wrap}.numbers .stepper{display:flex;flex-direction:column;align-items:center;gap:8px}.numbers .stepper .lab{font-family:var(--util);font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700}.numbers .stepper .lab.h{color:var(--hund)}.numbers .stepper .lab.t{color:var(--ten)}.numbers .stepper .lab.o{color:var(--one)}.numbers .stepper .row{display:flex;align-items:center;gap:8px}.numbers .sbtn{width:46px;height:46px;border-radius:12px;border:2px solid var(--edge-2);background:#fff;font-size:24px;font-weight:800;cursor:pointer;color:var(--ink);transition:.12s;line-height:1}.numbers .sbtn:hover{border-color:var(--ink);transform:translateY(-1px)}.numbers .sbtn:active{transform:scale(.94)}.numbers .sval{min-width:30px;text-align:center;font-size:26px;font-weight:800}.numbers .surprise{display:block;margin:20px auto 0;background:var(--accent);color:#fff;border:none;border-radius:13px;padding:13px 24px;font:inherit;font-size:16px;font-weight:700;cursor:pointer}.numbers .surprise:hover{filter:brightness(1.05)}.numbers .roundhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.numbers .roundhead .prog{font-family:var(--util);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.numbers .scores{display:flex;gap:10px;margin-left:auto;flex-wrap:wrap}.numbers .chip{background:#fff;border:1.5px solid var(--edge-2);border-radius:12px;padding:8px 13px;text-align:center;min-width:74px}.numbers .chip .k{font-family:var(--util);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}.numbers .chip .v{font-size:22px;font-weight:800;line-height:1.1}.numbers .chip.best .v{color:var(--gold)}.numbers .cmp{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-bottom:8px}.numbers .side{text-align:center}.numbers .side .n{font-family:var(--display);font-size:clamp(40px,11vw,80px);line-height:1}.numbers .side .mini{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;align-items:flex-end;min-height:80px;margin-top:8px;max-width:180px;margin-inline:auto}.numbers .mid{font-family:var(--display);font-size:clamp(38px,10vw,72px);color:var(--gator);min-width:56px;text-align:center}.numbers .mid.empty{color:var(--edge-2)}.numbers .cmpchoices{display:flex;gap:12px;justify-content:center;margin-top:20px}.numbers .cbtn{width:88px;height:74px;border-radius:16px;border:2px solid var(--edge-2);background:#fff;font-family:var(--display);font-size:40px;cursor:pointer;color:var(--ink);transition:.14s;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.numbers .cbtn small{font-family:var(--body);font-size:11px;font-weight:700;color:var(--dim)}.numbers .cbtn:hover:not(:disabled){border-color:var(--ink);transform:translateY(-2px)}.numbers .cbtn:disabled{cursor:default}.numbers .cbtn.correct{background:var(--n-ok);border-color:var(--n-ok);color:#fff}.numbers .cbtn.correct small{color:#ffffffd9}.numbers .cbtn.nudge{background:#fdf3e2;border-color:var(--amber);animation:n-wiggle .3s ease}.numbers .cbtn.fade{opacity:.4}@keyframes n-wiggle{0%,to{transform:none}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.numbers .cfb{text-align:center;margin-top:16px;min-height:26px;font-size:17px;font-weight:600}.numbers .cfb.ok{color:#2c8a52}.numbers .cfb.try{color:#a9781f}.numbers .cnext{display:block;margin:14px auto 0;background:var(--ink);color:#fff;border:none;border-radius:13px;padding:13px 26px;font:inherit;font-size:16px;font-weight:700;cursor:pointer}.numbers .streak{text-align:center;font-family:var(--util);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-top:14px}.numbers .roundresult{margin-top:18px;padding:18px;border-radius:16px;text-align:center;animation:n-pop .35s cubic-bezier(.34,1.56,.64,1) both}@keyframes n-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}.numbers .roundresult.win{background:#eef8f0;border:2px solid var(--n-ok)}.numbers .roundresult.good{background:#fdf6e6;border:2px solid var(--amber)}.numbers .roundresult .big{font-family:var(--display);font-size:clamp(30px,7vw,46px);line-height:1;margin:0}.numbers .roundresult.win .big{color:var(--n-ok)}.numbers .roundresult.good .big{color:#b7871a}.numbers .roundresult .msg{font-size:17px;font-weight:600;margin:8px 0 0}.numbers .pvchart{display:flex;flex-direction:column;align-items:center;gap:6px;margin:6px auto 2px}.numbers .pvrow{display:flex;align-items:flex-end;gap:2px}.numbers .pvcell{width:clamp(30px,8.5vw,46px);height:clamp(42px,11vw,60px);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:clamp(26px,7vw,40px);font-weight:700;color:var(--ink);background:#fff;border:2px solid var(--edge-2);border-radius:8px}.numbers .pvcell.blank{background:transparent;border-color:transparent}.numbers .pvcell.decide{background:var(--gold);border-color:var(--gold);color:#fff}.numbers .pvcomma{align-self:flex-end;font-family:var(--display);font-size:clamp(26px,7vw,40px);font-weight:700;color:var(--dim);padding:0 1px 6px}.numbers .pvnote{font-size:14px;font-weight:600;color:var(--accent-ink);margin-top:4px}.numbers .history{margin-top:22px}.numbers .history h3{font-family:var(--util);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin:0 0 12px;font-weight:700}.numbers .rchart{display:flex;gap:8px;align-items:flex-end;padding-top:20px;min-height:40px}.numbers .rbar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.numbers .rbar .rnum{font-size:15px;font-weight:800;margin-bottom:6px;color:var(--ink)}.numbers .rbar .rfill{width:100%;max-width:40px;border-radius:9px 9px 4px 4px;background:var(--accent);transition:height .55s cubic-bezier(.34,1.4,.64,1)}.numbers .rbar .rfill.best{background:var(--gold)}.numbers .rbar .rlabel{font-family:var(--util);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin-top:9px}.numbers .emptynote{color:var(--dim);font-size:14px}.numbers .memo{margin-top:12px;font-size:13px;color:var(--dim)}.numbers details.grown{margin-top:40px;border-top:1px solid var(--edge);padding-top:18px}.numbers details.grown summary{cursor:pointer;font-family:var(--util);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);list-style:none}.numbers details.grown summary::-webkit-details-marker{display:none}.numbers details.grown summary:before{content:"+ ";color:var(--accent)}.numbers details.grown[open] summary:before{content:"– "}.numbers details.grown .body{max-width:70ch;color:var(--dim);font-size:15px;line-height:1.65}.numbers details.grown h3{font-family:var(--display);color:var(--ink);font-weight:400;font-size:20px;margin:20px 0 6px}@media (prefers-reduced-motion: reduce){.numbers .panel,.numbers .cbtn.nudge,.numbers .roundresult{animation:none}.numbers .rbar .rfill{transition:none}}.matching{--m-ok: #3fa96b;--m-nudge: #d99a3c}.matching .intro{color:var(--dim);max-width:60ch;font-size:16px;line-height:1.55;margin:0 0 16px}.matching .card{background:var(--surface);border:1px solid var(--edge);border-radius:18px;padding:24px 22px;box-shadow:0 12px 30px -20px #14172666;margin-top:8px}.matching .roundhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.matching .roundhead .prog{font-family:var(--util);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.matching .scores{display:flex;gap:10px;margin-left:auto}.matching .chip{background:#fff;border:1.5px solid var(--edge-2);border-radius:12px;padding:8px 13px;text-align:center;min-width:74px}.matching .chip .k{font-family:var(--util);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}.matching .chip .v{font-size:22px;font-weight:800;line-height:1.1}.matching .chip.best .v{color:var(--gold)}.matching .pips{display:flex;gap:7px;margin:4px 0 14px}.matching .pip{width:15px;height:15px;border-radius:50%;border:2px solid var(--edge-2);background:transparent;transition:.25s}.matching .pip.good{background:var(--m-ok);border-color:var(--m-ok)}.matching .pip.now{border-color:var(--accent);transform:scale(1.18)}.matching .qlabel{font-family:var(--util);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}.matching .def{font-family:var(--display);font-size:clamp(22px,4vw,30px);line-height:1.3;margin:10px 0 4px}.matching .def .emoji{font-size:1.2em;margin-right:.35em}.matching .wordbox{display:flex;flex-wrap:wrap;gap:11px;margin-top:22px}.matching .word{background:#fff;border:2px solid var(--edge-2);border-radius:12px;padding:14px 20px;font:inherit;font-size:18px;font-weight:700;cursor:pointer;transition:.15s;color:var(--ink)}.matching .word:hover:not(:disabled){border-color:var(--accent);transform:translateY(-2px)}.matching .word:disabled{cursor:default}.matching .word.correct{background:var(--m-ok);border-color:var(--m-ok);color:#fff}.matching .word.nudge{background:#fff4e0;border-color:var(--m-nudge);color:#9a6a1c;animation:m-wiggle .3s ease}.matching .word.dim{opacity:.4}@keyframes m-wiggle{0%,to{transform:none}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.matching .feedback{margin-top:20px;min-height:64px}.matching .feedback .line{font-size:17px;line-height:1.55;margin:0}.matching .feedback .line.ok{color:#2c8a52;font-weight:600}.matching .feedback .line.try{color:#b07a26}.matching .feedback .ex{color:var(--dim);font-size:15px;margin:8px 0 0}.matching .next{margin-top:16px;background:var(--accent);color:#fff;border:none;border-radius:12px;padding:14px 24px;font:inherit;font-size:16px;font-weight:700;cursor:pointer;transition:.15s;display:none}.matching .next.show{display:inline-block}.matching .next:hover{filter:brightness(1.05)}.matching .roundresult{margin-top:8px;padding:18px;border-radius:16px;text-align:center;animation:m-pop .35s cubic-bezier(.34,1.56,.64,1) both}@keyframes m-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}.matching .roundresult.win{background:#eef8f0;border:2px solid var(--m-ok)}.matching .roundresult.good{background:#fdf6e6;border:2px solid var(--m-nudge)}.matching .roundresult .big{font-family:var(--display);font-size:clamp(30px,7vw,46px);line-height:1;margin:0}.matching .roundresult.win .big{color:var(--m-ok)}.matching .roundresult.good .big{color:#b7871a}.matching .roundresult .msg{font-size:17px;font-weight:600;margin:8px 0 0}.matching .history{margin-top:22px}.matching .history h3{font-family:var(--util);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin:0 0 12px;font-weight:700}.matching .rchart{display:flex;gap:8px;align-items:flex-end;padding-top:20px;min-height:40px}.matching .rbar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.matching .rbar .rnum{font-size:15px;font-weight:800;margin-bottom:6px;color:var(--ink)}.matching .rbar .rfill{width:100%;max-width:40px;border-radius:9px 9px 4px 4px;background:var(--accent);transition:height .55s cubic-bezier(.34,1.4,.64,1)}.matching .rbar .rfill.best{background:var(--gold)}.matching .rbar .rlabel{font-family:var(--util);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin-top:9px}.matching .emptynote{color:var(--dim);font-size:14px}.matching .memo{margin-top:12px;font-size:13px;color:var(--dim)}@media (prefers-reduced-motion: reduce){.matching .word.nudge,.matching .roundresult{animation:none}.matching .rbar .rfill{transition:none}}.grammar{--g-ok: #42a86b;--g-amber: #dd9a3a}.grammar .intro{color:var(--dim);max-width:60ch;font-size:16px;line-height:1.55;margin:0 0 16px}.grammar .card{background:var(--surface);border:1px solid var(--edge);border-radius:22px;padding:24px 22px;box-shadow:0 12px 30px -22px #b03e6e80;margin-top:8px}.grammar .teach h2{font-family:var(--display);font-weight:400;font-size:26px;margin:0 0 10px;color:var(--accent-ink)}.grammar .teach p{font-size:18px;line-height:1.6;margin:8px 0}.grammar .startbtn{display:block;margin:20px auto 0;background:var(--accent);color:#fff;border:none;border-radius:16px;padding:16px 34px;font:inherit;font-size:19px;font-weight:800;cursor:pointer;box-shadow:0 8px 0 var(--accent-ink);transition:transform .1s}.grammar .startbtn:active{transform:translateY(5px);box-shadow:0 3px 0 var(--accent-ink)}.grammar .roundhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.grammar .roundhead .prog{font-family:var(--util);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.grammar .scores{display:flex;gap:10px;margin-left:auto}.grammar .chip{background:#fff;border:1.5px solid var(--edge-2);border-radius:12px;padding:8px 13px;text-align:center;min-width:74px}.grammar .chip .k{font-family:var(--util);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}.grammar .chip .v{font-size:22px;font-weight:800;line-height:1.1}.grammar .chip.best .v{color:var(--gold)}.grammar .pips{display:flex;gap:7px;margin:4px 0 12px}.grammar .pip{width:15px;height:15px;border-radius:50%;border:2px solid var(--edge-2);transition:.25s}.grammar .pip.good{background:var(--g-ok);border-color:var(--g-ok)}.grammar .pip.now{border-color:var(--accent);transform:scale(1.18)}.grammar .prompt{text-align:center;padding:6px 0}.grammar .prompt .phrase{font-family:var(--display);font-size:clamp(26px,6vw,40px);line-height:1.25;margin:6px 0 10px}.grammar .spk{background:#fbeaf0;border:2px solid var(--edge-2);border-radius:14px;padding:9px 16px;font:inherit;font-size:16px;font-weight:700;color:var(--accent-ink);cursor:pointer}.grammar .ask{color:var(--dim);font-size:16px;margin:14px 0 0}.grammar .choices{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.grammar .choice{background:#fff;border:3px solid var(--edge-2);border-radius:18px;padding:20px 12px;font:inherit;font-size:19px;font-weight:800;color:var(--ink);cursor:pointer;transition:transform .12s;box-shadow:0 7px #b03e6e1a}.grammar .choice .big{font-size:34px;display:block;margin-bottom:4px}.grammar .choice:active{transform:scale(.96)}.grammar .choice:disabled{cursor:default}.grammar .choice.right{background:var(--g-ok);border-color:var(--g-ok);color:#fff}.grammar .choice.wrong{background:#fdf3e2;border-color:var(--g-amber)}.grammar .fb{text-align:center;margin-top:16px;min-height:48px;font-size:17px;font-weight:600;line-height:1.5}.grammar .fb.ok{color:#2c8a52}.grammar .fb.try{color:#a9781f}.grammar .next{margin:14px auto 0;background:var(--accent);color:#fff;border:none;border-radius:14px;padding:13px 28px;font:inherit;font-size:16px;font-weight:800;cursor:pointer;display:none}.grammar .next.show{display:block}.grammar .roundresult{margin-top:8px;padding:18px;border-radius:16px;text-align:center;animation:g-pop .35s cubic-bezier(.34,1.56,.64,1) both}@keyframes g-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}.grammar .roundresult.win{background:#eef8f0;border:2px solid var(--g-ok)}.grammar .roundresult.good{background:#fdf6e6;border:2px solid var(--g-amber)}.grammar .roundresult .big{font-family:var(--display);font-size:clamp(30px,7vw,46px);line-height:1;margin:0}.grammar .roundresult.win .big{color:var(--g-ok)}.grammar .roundresult.good .big{color:#b7871a}.grammar .roundresult .msg{font-size:17px;font-weight:600;margin:8px 0 0}.grammar .history{margin-top:22px}.grammar .history h3{font-family:var(--util);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin:0 0 12px;font-weight:700}.grammar .rchart{display:flex;gap:8px;align-items:flex-end;padding-top:20px;min-height:40px}.grammar .rbar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.grammar .rbar .rnum{font-size:15px;font-weight:800;margin-bottom:6px;color:var(--ink)}.grammar .rbar .rfill{width:100%;max-width:40px;border-radius:9px 9px 4px 4px;background:var(--accent);transition:height .55s cubic-bezier(.34,1.4,.64,1)}.grammar .rbar .rfill.best{background:var(--gold)}.grammar .rbar .rlabel{font-family:var(--util);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin-top:9px}.grammar .emptynote{color:var(--dim);font-size:14px}.grammar .memo{margin-top:12px;font-size:13px;color:var(--dim)}@media (prefers-reduced-motion: reduce){.grammar .roundresult{animation:none}.grammar .rbar .rfill{transition:none}}.geo{--geo-grass: #bfe3c4;--geo-road: #efe2c8;--geo-ok: #42a86b;--geo-amber: #dd9a3a}.geo .intro{color:var(--dim);max-width:60ch;font-size:16px;line-height:1.55;margin:0 0 16px}.geo .card{background:var(--surface);border:1px solid var(--edge);border-radius:22px;padding:20px 18px;box-shadow:0 12px 30px -22px #b03e6e80;margin-top:8px}.geo .roundhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.geo .roundhead .prog{font-family:var(--util);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.geo .scores{display:flex;gap:10px;margin-left:auto}.geo .chip{background:#fff;border:1.5px solid var(--edge-2);border-radius:12px;padding:8px 13px;text-align:center;min-width:74px}.geo .chip .k{font-family:var(--util);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}.geo .chip .v{font-size:22px;font-weight:800;line-height:1.1}.geo .chip.best .v{color:var(--gold)}.geo .actrow{display:flex;gap:10px;margin:4px 0;flex-wrap:wrap}.geo .actrow button{flex:1;min-width:120px;background:#fff;border:2px solid var(--edge-2);border-radius:14px;padding:12px;font:inherit;font-size:15px;font-weight:800;color:var(--accent-ink);cursor:pointer}.geo .actrow button[aria-selected=true]{background:var(--accent);color:#fff;border-color:var(--accent)}.geo .prompt{text-align:center;margin:14px 0 4px}.geo .prompt .q{font-family:var(--display);font-size:clamp(20px,5vw,28px);line-height:1.3}.geo .spk{background:#fbeaf0;border:2px solid var(--edge-2);border-radius:12px;padding:8px 14px;font:inherit;font-size:15px;font-weight:700;color:var(--accent-ink);cursor:pointer;margin-top:8px}.geo .mapwrap{position:relative;background:var(--geo-grass);border:4px solid var(--edge-2);border-radius:22px;aspect-ratio:1 / 1;max-width:460px;margin:12px auto;overflow:hidden}.geo .road{position:absolute;background:var(--geo-road)}.geo .road.h{left:6%;right:6%;top:46%;height:8%;border-radius:6px}.geo .road.v{top:6%;bottom:6%;left:46%;width:8%;border-radius:6px}.geo .spot{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;background:#fff;border:3px solid var(--edge-2);border-radius:16px;padding:6px 4px 4px;width:76px;cursor:pointer;transition:transform .12s;box-shadow:0 4px 10px -4px #0000004d}.geo .spot .ic{font-size:30px;line-height:1}.geo .spot .nm{font-size:11px;font-weight:800;color:var(--ink);margin-top:1px;text-align:center}.geo .spot:active{transform:translate(-50%,-50%) scale(.93)}.geo .spot:disabled{cursor:default}.geo .spot.right{border-color:var(--geo-ok);background:#eaf7ee}.geo .spot.wrong{border-color:var(--geo-amber);background:#fdf3e2}.geo .compass{position:absolute;top:8px;right:8px;width:62px;height:62px;background:#ffffffe6;border:2px solid var(--edge-2);border-radius:50%;font-size:11px;font-weight:800;color:var(--accent-ink)}.geo .compass span{position:absolute;left:50%;transform:translate(-50%)}.geo .compass .n{top:3px}.geo .compass .s{bottom:3px}.geo .compass .e{top:50%;right:5px;left:auto;transform:translateY(-50%)}.geo .compass .w{top:50%;left:5px;transform:translateY(-50%)}.geo .compass .rose{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--accent)}.geo .dirpad{display:grid;grid-template-columns:repeat(3,64px);grid-template-rows:repeat(3,64px);gap:8px;justify-content:center;margin:14px auto 0}.geo .dirbtn{border:3px solid var(--edge-2);background:#fff;border-radius:14px;font:inherit;font-size:16px;font-weight:800;color:var(--accent-ink);cursor:pointer}.geo .dirbtn:active{transform:scale(.93)}.geo .dirbtn:disabled{cursor:default}.geo .dirbtn.right{background:var(--geo-ok);border-color:var(--geo-ok);color:#fff}.geo .dirbtn.wrong{background:#fdf3e2;border-color:var(--geo-amber)}.geo .dn{grid-column:2;grid-row:1}.geo .ds{grid-column:2;grid-row:3}.geo .de{grid-column:3;grid-row:2}.geo .dw{grid-column:1;grid-row:2}.geo .dc{grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:center;font-size:22px}.geo .fb{text-align:center;margin-top:14px;min-height:26px;font-size:17px;font-weight:600}.geo .fb.ok{color:#2c8a52}.geo .fb.try{color:#a9781f}.geo .next{margin:12px auto 0;background:var(--accent);color:#fff;border:none;border-radius:14px;padding:12px 26px;font:inherit;font-size:16px;font-weight:800;cursor:pointer;display:none}.geo .next.show{display:block}.geo .roundresult{margin-top:12px;padding:18px;border-radius:16px;text-align:center;animation:geo-pop .35s cubic-bezier(.34,1.56,.64,1) both}@keyframes geo-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}.geo .roundresult.win{background:#eef8f0;border:2px solid var(--geo-ok)}.geo .roundresult.good{background:#fdf6e6;border:2px solid var(--geo-amber)}.geo .roundresult .big{font-family:var(--display);font-size:clamp(30px,7vw,46px);line-height:1;margin:0}.geo .roundresult.win .big{color:var(--geo-ok)}.geo .roundresult.good .big{color:#b7871a}.geo .roundresult .msg{font-size:17px;font-weight:600;margin:8px 0 0}.geo .history{margin-top:22px}.geo .history h3{font-family:var(--util);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin:0 0 12px;font-weight:700}.geo .rchart{display:flex;gap:8px;align-items:flex-end;padding-top:20px;min-height:40px}.geo .rbar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.geo .rbar .rnum{font-size:15px;font-weight:800;margin-bottom:6px;color:var(--ink)}.geo .rbar .rfill{width:100%;max-width:40px;border-radius:9px 9px 4px 4px;background:var(--accent);transition:height .55s cubic-bezier(.34,1.4,.64,1)}.geo .rbar .rfill.best{background:var(--gold)}.geo .rbar .rlabel{font-family:var(--util);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin-top:9px}.geo .emptynote{color:var(--dim);font-size:14px}.geo .memo{margin-top:12px;font-size:13px;color:var(--dim)}@media (prefers-reduced-motion: reduce){.geo .roundresult{animation:none}.geo .rbar .rfill,.geo .spot,.geo .dirbtn{transition:none}}.jax{--j-p: var(--accent);--j-p-ink: var(--accent-ink);--j-p-shadow: #2c5aa0;--j-star: var(--pop);--j-orange: var(--secondary);--j-navy: #23305e;--j-edge: #cdddf6;--j-ok: #3fa96b;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;color:var(--j-navy)}.jax .screen{animation:j-fade .25s ease both}@keyframes j-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.jax .gate{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:66vh;gap:10px}.jax .gate .mascot-svg{width:150px;height:150px}.jax .gate h1{font-family:var(--display);font-weight:400;font-size:clamp(28px,7vw,46px);margin:6px 0 0}.jax .gate p{color:var(--j-p-ink);font-size:18px;margin:0}.jax .playbtn{margin-top:18px;background:var(--j-p);color:#fff;border:none;border-radius:26px;padding:22px 46px;font-family:var(--body);font-size:28px;font-weight:800;cursor:pointer;box-shadow:0 10px 0 var(--j-p-shadow);transition:transform .1s}.jax .playbtn:active{transform:translateY(6px);box-shadow:0 4px 0 var(--j-p-shadow)}.jax .bar{display:flex;align-items:center;gap:10px;margin-bottom:6px}.jax .iconbtn{width:58px;height:58px;border-radius:18px;border:3px solid var(--j-edge);background:#fff;font-size:26px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .1s}.jax .iconbtn:active{transform:scale(.9)}.jax .bar .spacer{flex:1}.jax .stars{display:flex;gap:4px;font-size:24px;min-height:30px}.jax .hi{display:flex;align-items:center;justify-content:center;margin:4px 0 8px}.jax .hi .mascot-svg{width:120px;height:120px}.jax .modegrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px}.jax .mode{border:none;border-radius:28px;padding:34px 16px;cursor:pointer;color:#fff;font-family:var(--display);font-size:clamp(34px,9vw,56px);font-weight:400;box-shadow:0 10px #0000002e;transition:transform .1s;letter-spacing:.02em}.jax .mode:active{transform:translateY(6px);box-shadow:0 4px #0000002e}.jax .mode small{display:block;font-family:var(--body);font-size:16px;font-weight:700;opacity:.95;margin-top:6px}.jax .mode.abc{background:var(--j-p)}.jax .mode.num{background:var(--j-navy)}.jax .actgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:10px}.jax .act{border:3px solid var(--j-edge);border-radius:24px;padding:26px 14px;cursor:pointer;background:#fff;color:var(--j-navy);font-family:var(--body);font-size:22px;font-weight:800;box-shadow:0 8px #0000000f;transition:transform .1s}.jax .act:active{transform:translateY(5px);box-shadow:0 3px #0000000f}.jax .act .big{font-size:52px;display:block;margin-bottom:6px}.jax .see{text-align:center;padding:8px 0}.jax .see .card{background:#fff;border:4px solid var(--j-edge);border-radius:30px;padding:22px 16px;margin:8px auto;max-width:420px}.jax .see .letter{font-family:var(--display);font-size:clamp(120px,34vw,190px);line-height:1;color:var(--j-p)}.jax .see .pic{font-size:clamp(70px,20vw,110px);line-height:1}.jax .see .word{font-size:24px;font-weight:800;color:var(--j-p-ink);margin-top:2px}.jax .nav{display:flex;gap:14px;justify-content:center;margin-top:14px}.jax .navbtn{background:var(--j-p);color:#fff;border:none;border-radius:22px;padding:18px 30px;font-size:22px;font-weight:800;cursor:pointer;box-shadow:0 7px 0 var(--j-p-shadow);transition:transform .1s}.jax .navbtn:active{transform:translateY(5px);box-shadow:0 3px 0 var(--j-p-shadow)}.jax .navbtn.ghost{background:#fff;color:var(--j-p-ink);border:3px solid var(--j-edge);box-shadow:0 7px #0000000f}.jax .ask{text-align:center;margin:6px 0 12px}.jax .ask .say{display:inline-flex;align-items:center;gap:10px;background:#fff;border:3px solid var(--j-edge);border-radius:20px;padding:12px 20px;font-size:22px;font-weight:800;cursor:pointer}.jax .ask .say .spk{font-size:26px}.jax .countrow{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:460px;margin:0 auto 14px;font-size:clamp(40px,11vw,64px)}.jax .tiles{display:grid;gap:14px;justify-content:center;grid-auto-flow:column}.jax .tile{background:#fff;border:4px solid var(--j-edge);border-radius:26px;width:clamp(88px,26vw,130px);height:clamp(88px,26vw,130px);font-family:var(--display);font-size:clamp(52px,15vw,84px);color:var(--j-navy);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .12s;box-shadow:0 8px #00000012}.jax .tile:active{transform:scale(.94)}.jax .tile.right{background:var(--j-ok);border-color:var(--j-ok);color:#fff;animation:j-pop .4s}.jax .tile.wrong{background:#fff4e0;border-color:var(--j-orange)}.jax .tile.bounce{animation:j-bounce .6s}@keyframes j-pop{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes j-bounce{0%,to{transform:translateY(0)}30%{transform:translateY(-16px)}60%{transform:translateY(0)}}.jax-cheer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;align-items:center;justify-content:center;z-index:50}.jax-cheer .mas{width:180px;height:180px}.jax-cheer .mas svg{width:100%;height:100%}.jax-cheer.show .mas{animation:j-cheerpop 1.4s ease}@keyframes j-cheerpop{0%{opacity:0;transform:translateY(30px) scale(.7)}20%{opacity:1;transform:translateY(-10px) scale(1.1)}40%{transform:translateY(0) scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-20px)}}.jax-spark{position:fixed;font-size:34px;pointer-events:none;z-index:49;animation:j-spark 1s ease forwards}@keyframes j-spark{0%{opacity:1;transform:translate(0) scale(.6)}to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1.3)}}.jax .done{text-align:center;padding:20px}.jax .done .big{font-family:var(--display);font-size:clamp(30px,8vw,48px)}.jax .done .row{display:flex;gap:12px;justify-content:center;margin-top:16px;flex-wrap:wrap}@media (prefers-reduced-motion: reduce){.jax .screen,.jax .tile.right,.jax .tile.bounce,.jax-cheer.show .mas,.jax-spark{animation:none!important}}:root{--bg: #fbf6ee;--card: #ffffff;--ink: #33302a;--dim: #8a8073;--edge: #ece3d3;--edge-2: #dcceb6;--leaf: #5b9d6b;--clay: #cf7a4c;--gold: #e0a72e;--plum: #9a6db0;--read: #f6ecd6;--readedge: #e0a72e;--ok: #42a86b;--round: 20px;--accent: #e0a72e;--accent-ink: #9a7418;--tint: #fbf6ee;--display: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--body: "Avenir Next", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", sans-serif;--util: ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased}body{min-height:100vh;min-height:100dvh;background-image:radial-gradient(760px 460px at 84% -8%,#fff 0%,transparent 60%)}#root{min-height:100vh;min-height:100dvh}.wrap{max-width:820px;margin:0 auto;padding:22px 16px 70px}a{color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}button{font-family:inherit}.landing header{text-align:center;margin:18px 0 26px}.landing .eyebrow{font-family:var(--util);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim)}.landing h1{font-family:var(--display);font-weight:400;font-size:clamp(30px,7vw,52px);line-height:1;margin:10px 0 4px}.kidgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media (max-width: 560px){.kidgrid{grid-template-columns:1fr}}.kidcard{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-decoration:none;background:var(--bg);border:2px solid var(--edge);border-top:8px solid var(--accent);border-radius:var(--round);padding:28px 18px 24px;min-height:180px;box-shadow:0 10px 26px -20px #33302a80;transition:transform .14s,box-shadow .14s,border-color .14s}.kidcard:hover{transform:translateY(-3px);box-shadow:0 16px 30px -20px #33302a8c}.kidcard .emoji{font-size:46px;line-height:1}.kidcard .name{font-family:var(--display);font-size:30px;color:var(--accent-ink)}.kidspace-page{background:var(--bg);min-height:100vh;min-height:100dvh}.kidhead{display:flex;align-items:center;gap:14px;margin:8px 0 20px}.backlink{font-family:var(--util);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);text-decoration:none;padding:8px 12px;border:2px solid var(--edge-2);border-radius:11px;background:#fff}.kidhead .who{display:flex;align-items:center;gap:10px;margin-left:2px}.kidhead .who .emoji{font-size:30px}.kidhead h1{font-family:var(--display);font-weight:400;font-size:clamp(28px,6vw,44px);margin:0;color:var(--accent-ink)}.weekbar{display:flex;align-items:center;gap:10px;margin:4px 0 20px;flex-wrap:wrap}.weekbar label{font-family:var(--util);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}.weekbar select{font:inherit;font-size:15px;font-weight:600;padding:9px 12px;border-radius:11px;border:2px solid var(--edge-2);background:#fff;color:var(--ink);cursor:pointer}.weekbar .current-tag{font-family:var(--util);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--accent);padding:4px 8px;border-radius:999px}.drilllist{display:grid;gap:14px}.drilltile{display:flex;align-items:center;gap:16px;width:100%;text-align:left;text-decoration:none;background:var(--surface);border:2px solid var(--edge);border-radius:var(--round);padding:20px 22px;color:var(--ink);cursor:pointer;box-shadow:0 10px 26px -22px #33302a80;transition:transform .14s,border-color .14s}.drilltile.live:hover{transform:translateY(-2px);border-color:var(--accent)}.drilltile .icon{font-size:34px;line-height:1}.drilltile .mid{display:flex;flex-direction:column;gap:2px}.drilltile .label{font-family:var(--display);font-size:24px;display:block}.drilltile .desc{color:var(--dim);font-size:14px;margin-top:2px}.drilltile .go{margin-left:auto;font-family:var(--util);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink);font-weight:700}.drilltile.soon{opacity:.6;cursor:default}.drilltile.soon .go{color:var(--dim)}.notice{margin:0 0 16px;padding:12px 14px;border-radius:12px;border:1.5px solid var(--edge-2);background:#fdf6e6;color:var(--accent-ink);font-size:14px;line-height:1.5}[data-theme=saylar]{--bg: #fdeef5;--accent: #d9548b;--accent-ink: #a83368;--secondary: #b9a7e0;--pop: #f4a9b6;--surface: #fffafc}[data-theme=emery]{--bg: #e9f5ea;--accent: #3aa05f;--accent-ink: #246e40;--secondary: #e0a86a;--pop: #f4a9b6;--surface: #ffffff}[data-theme=jax]{--bg: #eaf1fb;--accent: #3f7bd6;--accent-ink: #2c5aa0;--secondary: #f2802e;--pop: #ffd23f;--surface: #ffffff}.mascot svg{width:100%;height:auto;display:block}.mascot .idle{animation:mascot-bob 3s ease-in-out infinite}@keyframes mascot-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.mascot.yay .idle{animation:mascot-jump .5s ease}@keyframes mascot-jump{0%{transform:translateY(0)}30%{transform:translateY(-22px) rotate(-4deg)}55%{transform:translateY(0) rotate(3deg)}to{transform:translateY(0)}}.mascot .eyes-happy,.mascot.yay .eyes-open{display:none}.mascot.yay .eyes-happy{display:block}@media (prefers-reduced-motion: reduce){.mascot .idle,.mascot.yay .idle{animation:none}}.mascot-row{display:flex;gap:8px;align-items:flex-end;justify-content:center}.kidcard .mascot{flex:0 0 auto;width:clamp(78px,30%,118px)}.kidhead .mascot-row{justify-content:flex-start}.kidhead .mascot{flex:0 0 auto;width:56px}
