.al{--ground:#f6f3ec;--ground-2:#eee9dd;--surface:#fffdf8;--surface-2:#faf7f0;--ink:#12100d;--ink-soft:#4d463b;--ink-faint:#6f6658;--line:#e0d9c8;--line-strong:#c4b99f;--brass:#7d5510;--brass-bg:#f7ecd3;--brass-edge:#c08a34;--teal:#3b5643;--teal-bg:#e4ece6;--teal-edge:#57735e;--clay:#96371f;--clay-bg:#f8e7e1;--clay-edge:#b4472f;--violet:#544684;--violet-bg:#eceaf4;--violet-edge:#544684;--sky:#185d8e;--sky-bg:#e4eef6;--sky-edge:#1d6fa8;--moss:#4a651c;--moss-bg:#eaf0dc;--moss-edge:#5f7a2e;--plum:#7d3a61;--plum-bg:#f4e6ee;--plum-edge:#8a3f6b;--beacon:#2f5a63;--beacon-bg:#e2ecee;--subj-brass:var(--brass);--subj-brass-bg:var(--brass-bg);--subj-violet:var(--violet);--subj-violet-bg:var(--violet-bg);--subj-sky:var(--sky);--subj-sky-bg:var(--sky-bg);--subj-moss:var(--moss);--subj-moss-bg:var(--moss-bg);--subj-plum:var(--plum);--subj-plum-bg:var(--plum-bg);--focus:#7d5510;--shadow:rgba(18,16,13,.18);--r:10px;--r-s:6px;--r-l:18px;--font-body:var(--font-inter),ui-sans-serif,system-ui,sans-serif;--font-display:var(--font-fraunces),Georgia,serif;--font-util:var(--font-plex-mono),ui-monospace,monospace;min-height:100vh;&[data-theme=dark]{color-scheme:dark;--ground:#12100d;--ground-2:#1c1914;--surface:#1c1914;--surface-2:#262119;--ink:#f6f3ec;--ink-soft:#c9c1b0;--ink-faint:#a0977f;--line:#332d22;--line-strong:#4f4636;--brass:#dba658;--brass-bg:#2e2412;--brass-edge:#8a6426;--teal:#a3c2ab;--teal-bg:#1b2a20;--teal-edge:#57735e;--clay:#eb9079;--clay-bg:#33190f;--clay-edge:#b4472f;--violet:#aea2e4;--violet-bg:#221f38;--violet-edge:#6a5ca3;--sky:#84bbe8;--sky-bg:#14242f;--sky-edge:#2b7fb8;--moss:#b7cf7c;--moss-bg:#222a12;--moss-edge:#5f7a2e;--plum:#dfa5c6;--plum-bg:#2f1a26;--plum-edge:#8a3f6b;--beacon:#9cc3cb;--beacon-bg:#16272b;--focus:#dba658;--shadow:rgba(0,0,0,.5)}&[data-contrast=high]{--ground:#ffffff;--ground-2:#f2f2f2;--surface:#ffffff;--surface-2:#ffffff;--ink:#000000;--line:var(--ink-soft);--line-strong:var(--ink);--ink-soft:var(--ink);--ink-faint:var(--ink)}&[data-theme=dark][data-contrast=high]{--ground:#000000;--ground-2:#0d0d0d;--surface:#000000;--surface-2:#0d0d0d;--ink:#ffffff}&[data-font=hyper]{--font-body:var(--font-hyperlegible),var(--font-inter),sans-serif;--font-display:var(--font-hyperlegible),var(--font-inter),sans-serif;letter-spacing:.012em}&[data-year="7"]{--yr:var(--moss);--yr-bg:var(--moss-bg);--yr-edge:var(--moss-edge);--yr-round:20px;--yr-disp:600}&[data-year="8"]{--yr:var(--violet);--yr-bg:var(--violet-bg);--yr-edge:var(--violet-edge);--yr-round:18px;--yr-disp:600}&[data-year="9"]{--yr:var(--brass);--yr-bg:var(--brass-bg);--yr-edge:var(--brass-edge);--yr-round:15px;--yr-disp:600}&[data-year="10"]{--yr:var(--plum);--yr-bg:var(--plum-bg);--yr-edge:var(--plum-edge);--yr-round:12px;--yr-disp:500}&[data-year="11"]{--yr:var(--ink);--yr-bg:var(--ground-2);--yr-edge:var(--line-strong);--yr-round:10px;--yr-disp:500}*,:after,:before{box-sizing:border-box}&{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-body);font-weight:400;line-height:1.6;-webkit-text-size-adjust:100%}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.15;text-wrap:balance;margin:0}p{margin:0}button{font:inherit;color:inherit}:where(a){color:var(--teal)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.btn{--bc:var(--surface);--be:var(--line-strong);--bt:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:.5em;background:var(--bc);color:var(--bt);border:solid var(--be);border-width:1.5px 1.5px 4px;border-radius:var(--r);padding:.62em 1.05em;cursor:pointer;font-weight:600;font-size:.98rem;text-align:center;transition:transform .09s ease,border-bottom-width .09s ease,background .15s ease}.btn:hover{background:var(--surface-2)}.btn:active:not(:disabled){transform:translateY(2px);border-bottom-width:2px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{--bc:var(--brass-bg);--be:var(--brass-edge);--bt:var(--brass)}.btn.go{--bc:var(--teal-bg);--be:var(--teal-edge);--bt:var(--teal)}.btn.solid{--bc:var(--ink);--be:#000;--bt:var(--ground)}.btn.sm{padding:.4em .7em;font-size:.85rem;border-bottom-width:3px}.btn{white-space:nowrap}.btn svg{width:1.05em;height:1.05em;flex:0 0 auto}.btn.wide{width:100%}&[data-motion=calm] .btn:active{transform:none;border-bottom-width:4px}.app{display:flex;min-height:100vh;flex-direction:column}.topbar{flex-wrap:wrap;padding:.6rem clamp(.7rem,2.5vw,1.4rem);background:var(--surface);border-bottom:1.5px solid var(--line);position:sticky;top:0;z-index:40}.brand,.topbar{display:flex;align-items:center;gap:.6rem}.brand{margin-right:auto;min-width:0}.mark{width:34px;height:34px;flex:0 0 34px;border-radius:9px;background:var(--ink);display:grid;place-items:center}.mark svg{width:20px;height:20px}.brand b{font-family:var(--font-display);font-size:1.05rem;font-weight:600;letter-spacing:-.01em;display:block;line-height:1.1}.brand span{font-size:.68rem;letter-spacing:.09em;color:var(--ink-faint)}.brand span,.chip{font-family:var(--font-util);text-transform:uppercase}.chip{font-size:.72rem;letter-spacing:.06em;padding:.3em .6em;border-radius:99px;border:1.5px solid var(--line-strong);background:var(--surface-2);color:var(--ink-soft);display:inline-flex;align-items:center;gap:.35em;white-space:nowrap}.chip.on{background:var(--teal-bg);border-color:var(--teal-edge);color:var(--teal)}.chip.warn{background:var(--brass-bg);border-color:var(--brass-edge);color:var(--brass)}.body{display:flex;flex:1;min-height:0;align-items:flex-start}.spine{width:210px;flex:0 0 210px;padding:1.1rem .8rem;position:sticky;top:60px;align-self:flex-start;max-height:calc(100vh - 60px);overflow:auto}.spine h2{font-family:var(--font-util);font-size:.7rem;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;margin-bottom:.7rem;padding-left:.2rem}.spine-list{position:relative;display:flex;flex-direction:column;gap:.3rem}.spine-list:before{content:"";position:absolute;left:19px;top:14px;bottom:14px;width:2px;background:var(--line);border-radius:2px}.yr{position:relative;display:flex;align-items:center;gap:.7rem;width:100%;background:none;border:none;padding:.45rem .5rem;border-radius:var(--r);cursor:pointer;text-align:left}.yr:hover{background:var(--ground-2)}.yr .dot{position:relative;z-index:1;width:38px;height:38px;flex:0 0 38px;border-radius:11px;border:solid var(--line-strong);border-width:1.5px 1.5px 3px;background:var(--surface);display:grid;place-items:center;font-family:var(--font-display);font-weight:600;font-size:1.05rem;line-height:1}.yr[aria-current=true] .dot{background:var(--ink);color:var(--ground);border-color:var(--ink)}.yr[aria-current=true]{background:var(--ground-2)}.yr .lab{min-width:0}.yr .lab b{display:block;font-size:.94rem;font-weight:600;font-family:var(--font-body)}.yr .lab span{display:block;font-family:var(--font-util);font-size:.68rem;color:var(--ink-faint);letter-spacing:.03em}.main{flex:1;min-width:0;padding:1.2rem clamp(.8rem,2.6vw,1.8rem) 4rem;max-width:1080px}.pagehead{margin-bottom:1.2rem}.eyebrow{font-family:var(--font-util);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--brass);font-weight:700}.pagehead h1{font-size:clamp(1.5rem,3.4vw,2.1rem);margin:.25rem 0 .4rem;letter-spacing:-.015em}.pagehead p{color:var(--ink-soft);max-width:62ch;font-size:.97rem}.grid{display:grid;gap:.85rem}.g2{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.g3{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.card{background:var(--surface);border:solid var(--line);border-width:1.5px 1.5px 4px;border-radius:var(--r-l);padding:1rem}.card.pad-s{padding:.8rem}button.card{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;transition:transform .09s ease,border-bottom-width .09s ease,background .15s}button.card:hover{background:var(--surface-2);border-color:var(--line-strong)}button.card:active{transform:translateY(2px);border-bottom-width:2px}&[data-motion=calm] button.card:active{transform:none;border-bottom-width:4px}.subj-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.55rem}.sicon{width:32px;height:32px;flex:0 0 32px;border-radius:9px;display:grid;place-items:center}.sicon svg{width:18px;height:18px}.topic-t{font-family:var(--font-display);font-weight:700;font-size:1.02rem;line-height:1.25;margin-bottom:.3rem}.topic-m{font-size:.85rem;color:var(--ink-soft);line-height:1.45}.meter{height:8px;background:var(--ground-2);border-radius:99px;overflow:hidden;margin-top:.7rem;border:1px solid var(--line)}.meter i{display:block;height:100%;background:var(--teal);border-radius:99px;transition:width .5s ease}.meter.brass i{background:var(--brass)}.mrow{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;font-family:var(--font-util);font-size:.72rem;color:var(--ink-faint);letter-spacing:.04em;margin-top:.4rem;text-transform:uppercase}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:.7rem;margin-bottom:1.2rem}.stat{background:var(--surface);border:solid var(--line);border-width:1.5px 1.5px 4px;border-radius:var(--r);padding:.7rem .8rem}.stat b{display:block;font-family:var(--font-display);font-size:1.7rem;font-weight:600;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.stat span{font-family:var(--font-util);font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint);display:block;margin-top:.3rem}.stage{position:fixed;inset:0;background:var(--ground);z-index:100;display:flex;flex-direction:column;overflow:auto}.stage-top{display:flex;align-items:center;gap:.7rem;padding:.7rem clamp(.7rem,2.5vw,1.4rem);border-bottom:1.5px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:5;flex-wrap:wrap}.stage-title{font-family:var(--font-display);font-weight:700;font-size:1rem;margin-right:auto;min-width:0}.stage-title span{display:block;font-family:var(--font-util);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:400}.stage-body{flex:1;padding:1.2rem clamp(.8rem,3vw,1.6rem) 3rem;max-width:820px;width:100%;margin:0 auto}.prog{height:10px;background:var(--ground-2);border:1px solid var(--line);border-radius:99px;overflow:hidden;margin-bottom:1.1rem}.prog i{display:block;height:100%;background:var(--brass);transition:width .35s ease}.qcard{background:var(--surface);border:solid var(--line);border-width:1.5px 1.5px 4px;border-radius:var(--r-l);padding:clamp(1rem,3vw,1.5rem)}.qtext{font-family:var(--font-display);font-size:clamp(1.1rem,2.6vw,1.4rem);font-weight:700;line-height:1.35;margin-bottom:1rem;text-wrap:balance}.opts{display:grid;gap:.6rem}.opt{display:flex;align-items:flex-start;gap:.7rem;width:100%;text-align:left;background:var(--surface-2);border:solid var(--line-strong);border-width:1.5px 1.5px 4px;border-radius:var(--r);padding:.75rem .85rem;cursor:pointer;font-size:1rem;line-height:1.45;transition:transform .09s ease,border-bottom-width .09s,background .15s}.opt:hover:not(:disabled){background:var(--ground-2)}.opt:active:not(:disabled){transform:translateY(2px);border-bottom-width:2px}&[data-motion=calm] .opt:active{transform:none;border-bottom-width:4px}.opt .key{font-family:var(--font-util);font-weight:700;width:26px;height:26px;flex:0 0 26px;border-radius:7px;background:var(--ground-2);display:grid;place-items:center;font-size:.85rem;border:1px solid var(--line)}.opt.right{background:var(--teal-bg);color:var(--teal)}.opt.right,.opt.right .key{border-color:var(--teal-edge)}.opt.right .key{background:var(--teal);color:#fff}.opt.wrong{background:var(--clay-bg);color:var(--clay)}.opt.wrong,.opt.wrong .key{border-color:var(--clay-edge)}.opt.wrong .key{background:var(--clay);color:#fff}.opt.right,.opt.wrong{animation:optReveal .28s ease both}.opt.right .key,.opt.wrong .key{animation:keyPop .32s cubic-bezier(.2,1.4,.4,1) .05s both}&[data-motion=calm] .opt.right,&[data-motion=calm] .opt.right .key,&[data-motion=calm] .opt.wrong,&[data-motion=calm] .opt.wrong .key{animation:none}.opt:disabled{cursor:default}.feedback{margin-top:1rem;border-radius:var(--r);padding:.85rem 1rem;border:1.5px solid;display:flex;gap:.7rem;align-items:flex-start}.feedback.ok{background:var(--teal-bg);border-color:var(--teal-edge);color:var(--teal)}.feedback.no{background:var(--clay-bg);border-color:var(--clay-edge);color:var(--clay)}.feedback b{display:block;font-family:var(--font-display);font-size:1rem;margin-bottom:.15rem}.feedback p{font-size:.92rem;line-height:1.5;color:var(--ink)}.fb-ico{width:24px;height:24px;flex:0 0 24px}.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}.tile{background:var(--surface);border:solid var(--line-strong);border-width:1.5px 1.5px 4px;border-radius:var(--r);padding:.75rem .7rem;cursor:pointer;font-size:.95rem;line-height:1.35;min-height:74px;display:flex;align-items:center;justify-content:center;text-align:center;transition:transform .09s ease,border-bottom-width .09s,background .15s,opacity .3s}.tile:hover:not(:disabled){background:var(--surface-2)}.tile:active:not(:disabled){transform:translateY(2px);border-bottom-width:2px}&[data-motion=calm] .tile:active{transform:none;border-bottom-width:4px}.tile.sel{background:var(--brass-bg);border-color:var(--brass-edge);color:var(--brass)}.tile.done{opacity:.28;pointer-events:none;background:var(--teal-bg);border-color:var(--teal-edge);color:var(--teal)}.tile.miss{background:var(--clay-bg);border-color:var(--clay-edge);color:var(--clay)}.tile.face{background:var(--ink);color:var(--ground);border-color:var(--ink)}.tile.face span{font-family:var(--font-display);font-size:1.3rem;opacity:.6}.pop{animation:pop .24s ease}&[data-motion=calm] .pop{animation:none}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.buckets{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.7rem;margin-top:1rem}.bucket{background:var(--surface);border:2px dashed var(--line-strong);border-radius:var(--r-l);padding:.8rem;min-height:120px}.bucket h4{font-family:var(--font-display);font-size:.95rem;margin-bottom:.55rem}.bucket.active{border-color:var(--brass);background:var(--brass-bg)}.bucket ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.bucket li{background:var(--teal-bg);border:1px solid var(--teal-edge);color:var(--teal);border-radius:var(--r-s);padding:.35rem .5rem;font-size:.87rem}.bucket li.bad{background:var(--clay-bg);border-color:var(--clay-edge);color:var(--clay)}.pool{flex-wrap:wrap;margin-top:.8rem}.olist,.pool{display:flex;gap:.5rem}.olist{flex-direction:column;margin-top:.9rem}.oitem{display:flex;align-items:center;gap:.7rem;background:var(--surface);border:solid var(--line-strong);border-width:1.5px 1.5px 4px;border-radius:var(--r);padding:.6rem .75rem;font-size:.95rem}.oitem .num{font-family:var(--font-display);font-weight:600;width:26px;height:26px;flex:0 0 26px;border-radius:7px;background:var(--ink);color:var(--ground);display:grid;place-items:center;font-size:.85rem}.oitem .txt{flex:1;min-width:0}.oitem.right{background:var(--teal-bg);border-color:var(--teal-edge)}.oitem.wrong{background:var(--clay-bg);border-color:var(--clay-edge)}.result{text-align:center;padding:1.5rem 1rem}.result .big{font-family:var(--font-display);font-size:clamp(2.4rem,9vw,3.6rem);font-weight:600;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.result h2{font-size:1.4rem;margin:.7rem 0 .4rem}.result p{color:var(--ink-soft);max-width:46ch;margin:0 auto 1.3rem}.ring{width:132px;height:132px;margin:0 auto 1rem;position:relative}.ring svg{transform:rotate(-90deg)}.ring .val{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-display);font-weight:600;font-size:1.9rem;font-variant-numeric:tabular-nums}.tbl-wrap{overflow-x:auto;border:1.5px solid var(--line);border-radius:var(--r-l);background:var(--surface)}table{border-collapse:collapse;width:100%;min-width:660px;font-size:.88rem}td,th{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--line);vertical-align:top}th{font-family:var(--font-util);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);background:var(--surface-2);position:sticky;top:0}tbody tr:last-child td{border-bottom:none}td.num{font-variant-numeric:tabular-nums;white-space:nowrap}.drawer{position:fixed;inset:0;background:rgba(10,18,22,.5);z-index:200;display:flex;justify-content:flex-end}.drawer-inner{background:var(--surface);width:min(420px,100%);height:100%;overflow:auto;padding:1.1rem;border-left:1.5px solid var(--line)}.drawer h3{font-size:1.2rem;margin-bottom:.2rem}.field{margin-top:1.1rem}.field>label{letter-spacing:.09em;font-weight:700;margin-bottom:.45rem}.segs{display:flex;gap:.4rem;flex-wrap:wrap}.seg{flex:1;min-width:64px;padding:.5rem .4rem;border:solid var(--line-strong);border-width:1.5px 1.5px 3px;background:var(--surface-2);border-radius:var(--r-s);cursor:pointer;font-size:.85rem;font-weight:600;text-align:center}.seg[aria-pressed=true]{background:var(--ink);color:var(--ground);border-color:var(--ink)}.hint{font-size:.82rem;color:var(--ink-faint);margin-top:.4rem}.tabs{display:flex;gap:.4rem;margin-bottom:1.1rem;flex-wrap:wrap;border-bottom:1.5px solid var(--line);padding-bottom:.6rem}.tab{padding:.45rem .8rem;border-radius:99px;border:1.5px solid var(--line-strong);background:var(--surface);cursor:pointer;font-size:.88rem;font-weight:600}.tab[aria-selected=true]{background:var(--ink);color:var(--ground);border-color:var(--ink)}.note{background:var(--brass-bg);border:1.5px solid var(--brass-edge);border-left-width:5px;border-radius:var(--r);padding:.8rem 1rem;font-size:.9rem;line-height:1.55;color:var(--ink);max-width:70ch}.note b{color:var(--brass)}.src{font-size:.82rem;color:var(--ink-soft);line-height:1.6}.src a{color:var(--teal)}.sub-tag{font-family:var(--font-util);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700}.empty{text-align:center;padding:2.5rem 1rem;color:var(--ink-faint)}.toolbar{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem;align-items:center}@media (max-width:860px){.body{flex-direction:column}.spine{position:relative;top:auto;width:100%;flex:none;max-height:none;padding:.7rem;border-bottom:1.5px solid var(--line);background:var(--surface)}.spine h2{display:none}.spine-list{flex-direction:row;overflow-x:auto;gap:.5rem;padding-bottom:.2rem}.spine-list:before{display:none}.spine:after{content:"";position:absolute;top:.7rem;bottom:.9rem;right:0;width:32px;background:linear-gradient(to right,transparent,var(--surface));pointer-events:none}.yr{width:auto;flex:0 0 auto}.yr .lab span{display:none}.main{padding-top:1rem}}@media print{.btn,.spine,.tabs,.topbar{display:none!important}.main{max-width:none}}.view-enter{animation:viewIn .32s cubic-bezier(.16,1,.3,1) both}&[data-motion=calm] .view-enter{animation:none}.streak-pulse{animation:flamePulse .7s ease}&[data-motion=calm] .streak-pulse{animation:none}.count{font-variant-numeric:tabular-nums}.flip-card{background:none;border:none;padding:0;perspective:900px;cursor:pointer;min-height:74px}.flip-card:disabled{cursor:default}.flip-inner{position:relative;width:100%;height:100%;min-height:74px;transition:transform .45s cubic-bezier(.2,.7,.3,1.1);transform-style:preserve-3d}.flip-card.open .flip-inner{transform:rotateY(180deg)}.flip-card.miss .flip-inner{animation:cardShake .4s ease}&[data-motion=calm] .flip-inner{transition:none}&[data-motion=calm] .flip-card.miss .flip-inner{animation:none}.flip-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--r);border:solid var(--line-strong);border-width:1.5px 1.5px 4px;display:flex;align-items:center;justify-content:center;padding:.7rem;text-align:center;font-size:.95rem;line-height:1.35}.flip-front{background:var(--ink);color:var(--ground);font-family:var(--font-display);font-size:1.4rem;font-weight:600}.flip-back{background:var(--surface);color:var(--ink);transform:rotateY(180deg)}.flip-card.done .flip-back{background:var(--teal-bg);border-color:var(--teal-edge);color:var(--teal)}.drag-chip{cursor:grab}.drag-chip:active{cursor:grabbing}.drag-chip.dragging{opacity:.35}.bucket.dragover{border-style:solid;border-color:var(--brass);background:var(--brass-bg);transform:scale(1.015)}.bucket{transition:transform .15s ease,background .15s ease,border-color .15s ease}&[data-motion=calm] .bucket{transition:none}.drop-hint{font-family:var(--font-util);font-size:.68rem;color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;margin-top:.3rem;display:block}#confetti-layer{position:fixed;inset:0;pointer-events:none;z-index:500;overflow:hidden}.confetto{position:absolute;top:-16px;width:9px;height:14px;border-radius:2px;will-change:transform,opacity;animation:confettiFall linear forwards}#levelup,.mdl{position:fixed;inset:0;background:rgba(10,18,22,.55);z-index:400;display:flex;align-items:center;justify-content:center;padding:1rem}.mdl-card{background:var(--surface);border:solid var(--line);border-width:1.5px 1.5px 5px;border-radius:var(--r-l);padding:1.5rem 1.4rem;max-width:440px;width:100%}.mdl-card h2{font-family:var(--font-display);font-size:1.3rem;margin-bottom:.45rem}.mdl-card .mdl-body{color:var(--ink-soft);font-size:.95rem;line-height:1.55;margin-bottom:1rem}.mdl-lab{display:block;font-weight:600;font-size:.92rem;margin-bottom:.35rem}.mdl-in{width:100%;padding:.65rem;border:1.5px solid var(--line-strong);border-radius:var(--r-s);background:var(--surface-2);color:var(--ink);font:inherit}textarea.mdl-in{min-height:8rem;resize:vertical;font-family:var(--font-util);font-size:.85rem}.mdl-err{color:var(--clay);font-size:.88rem;margin-top:.4rem;min-height:1.2em}.mdl-row{display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap;margin-top:1rem}.btn.danger{--bc:var(--clay-bg);--be:var(--clay-edge);--bt:var(--clay)}.levelup-card{background:var(--surface);border:solid var(--line);border-width:1.5px 1.5px 5px;border-radius:var(--r-l);padding:2rem 1.6rem;max-width:360px;width:100%;text-align:center;animation:levelPop .5s cubic-bezier(.2,1.4,.4,1) both}&[data-motion=calm] .levelup-card{animation:none}.levelup-badge{width:86px;height:86px;margin:0 auto 1rem;border-radius:50%;background:var(--brass-bg);border:2px solid var(--brass-edge);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:2rem;color:var(--brass)}&[data-motion=calm] .levelup-badge{animation:none}&:not([data-motion=calm]) .levelup-badge{animation:levelSpin 1.1s cubic-bezier(.2,1,.3,1) .1s both}.levelup-badge.subj{background:var(--teal-bg);border-color:var(--teal-edge);color:var(--teal)}.levelup-badge.subj svg{width:40px;height:40px}.badge-earned-list{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;max-width:520px;margin:0 auto 1.2rem}.badge-earned{display:inline-flex;align-items:center;gap:.5rem;background:var(--brass-bg);border:1.5px solid var(--brass-edge);border-radius:99px;padding:.4rem .9rem .4rem .5rem;font-size:.86rem;font-weight:600;color:var(--brass);animation:badgeIn .4s cubic-bezier(.2,1.4,.4,1) both}.badge-earned:nth-child(2){animation-delay:.08s}.badge-earned:nth-child(3){animation-delay:.16s}.badge-earned .bico{width:22px;height:22px;flex:0 0 22px;border-radius:50%;background:var(--brass);color:#fff;display:grid;place-items:center}.badge-earned .bico svg{width:13px;height:13px}&[data-motion=calm] .badge-earned{animation:none}.lesson-fb{margin-top:1.4rem;padding:.9rem 1rem;border:1.5px solid var(--line);border-radius:var(--r);background:var(--surface-2);display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.lesson-fb p{font-size:.86rem;color:var(--ink-soft);margin-right:auto}.fb-btn{width:44px;height:44px;flex:0 0 44px;border-radius:var(--r);border:solid var(--line-strong);border-width:1.5px 1.5px 3px;background:var(--surface);cursor:pointer;display:grid;place-items:center;transition:transform .09s ease,border-bottom-width .09s,background .15s}.fb-btn:hover{background:var(--ground-2)}.fb-btn:active{transform:translateY(1px);border-bottom-width:1px}.fb-btn svg{width:19px;height:19px}.fb-btn.up.on{background:var(--teal-bg);border-color:var(--teal-edge);color:var(--teal)}.fb-btn.down.on{background:var(--clay-bg);border-color:var(--clay-edge);color:var(--clay)}&[data-motion=calm] .fb-btn{transition:none}&[data-motion=calm] .fb-btn:active{transform:none;border-bottom-width:3px}.lesson-fb-thanks{animation:fbThanks .3s ease both;color:var(--teal);font-weight:600;font-size:.9rem;display:flex;align-items:center;gap:.4rem}&[data-motion=calm] .lesson-fb-thanks{animation:none}.lesson-fb-detail{width:100%;margin-top:.3rem}.lesson-fb-detail textarea{width:100%;box-sizing:border-box;font:inherit;font-size:.9rem;padding:.6rem .7rem;border:1.5px solid var(--line-strong);border-radius:var(--r-s);background:var(--ground);color:var(--ink);resize:vertical;min-height:64px}.usp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.85rem}.usp-card{background:var(--surface);border:solid var(--line);border-width:1.5px 1.5px 4px;border-radius:var(--r-l);padding:1.1rem;transition:transform .18s ease,border-color .18s ease}.usp-card:hover{transform:translateY(-3px);border-color:var(--line-strong)}&[data-motion=calm] .usp-card{transition:none}&[data-motion=calm] .usp-card:hover{transform:none}.usp-num{font-weight:600;font-size:1.6rem;color:var(--brass);line-height:1}.usp-card h4,.usp-num{font-family:var(--font-display)}.usp-card h4{font-size:1.02rem;margin:.5rem 0 .35rem}.usp-card p{font-size:.87rem;color:var(--ink-soft);line-height:1.5}.btn,.card,.exq,.opt{position:relative;overflow:hidden}.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.55);transform:scale(0);animation:rippleGo .55s ease-out forwards;pointer-events:none}&:not([data-theme=light]) .ripple,&[data-theme=dark] .ripple{background:rgba(255,255,255,.18)}&[data-motion=calm] .ripple{display:none}.field{margin-bottom:1rem}.field>label{display:block;font-family:var(--font-util);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.4rem}.segbar{display:flex;flex-wrap:wrap;gap:.4rem}.segbar .seg{flex:0 0 auto;white-space:nowrap}.hint{font-size:.84rem;color:var(--ink-soft);margin-top:.45rem;line-height:1.5;max-width:66ch}.exam-wrap{display:grid;grid-template-columns:1fr 200px;gap:1.2rem;align-items:start}.exam-qhead{justify-content:space-between;gap:.6rem;margin-bottom:.7rem}.exam-nav,.exam-qhead{display:flex;align-items:center;flex-wrap:wrap}.exam-nav{gap:.5rem;margin-top:1.1rem}.opt.picked{border-color:var(--teal);background:var(--teal-bg);color:var(--teal)}.opt.picked .key{background:var(--teal);color:var(--ground);border-color:var(--teal)}.exam-grid-wrap{background:var(--surface);border:solid var(--line);border-width:1.5px 1.5px 4px;border-radius:var(--r-l);padding:.9rem;position:sticky;top:1rem}.exam-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem}.exq{aspect-ratio:1;border:1.5px solid var(--line-strong);border-radius:8px;background:var(--ground-2);color:var(--ink-soft);font-family:var(--font-util);font-size:.78rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:transform .12s ease}.exq:hover{transform:scale(1.08)}&[data-motion=calm] .exq{transition:none}&[data-motion=calm] .exq:hover{transform:none}.exq.done{background:var(--teal-bg);border-color:var(--teal-edge);color:var(--teal)}.exq.flag{box-shadow:inset 0 -3px 0 var(--brass)}.exq.cur{outline:2.5px solid var(--ink);outline-offset:1px}.exam-result{max-width:none}.exam-h{font-family:var(--font-display);font-size:1.08rem;margin:1.6rem 0 .5rem}.acc-list{margin:0 0 .4rem 1.1rem;padding:0}.acc-list li{font-size:.9rem;color:var(--ink-soft);line-height:1.6;margin-bottom:.2rem}@media (max-width:820px){.exam-wrap{grid-template-columns:1fr}.exam-grid-wrap{position:static;order:-1}.exam-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:.4rem}.exq{aspect-ratio:auto;min-height:44px}}@media print{.exam-grid-wrap,.exam-nav,.toolbar{display:none!important}.exam-result table{font-size:.72rem}}.wr-box{width:100%;box-sizing:border-box;font-family:var(--font-body);font-size:1rem;line-height:1.6;padding:.9rem;border:1.5px solid var(--line-strong);border-radius:var(--r);background:var(--ground);color:var(--ink);resize:vertical;min-height:160px}.wr-box:focus{outline:2.5px solid var(--teal);outline-offset:1px}.wr-answer{background:var(--ground-2);border:1.5px solid var(--line);border-radius:var(--r);padding:.9rem;font-size:.95rem;line-height:1.6;white-space:pre-wrap}.wr-criteria{display:flex;flex-direction:column;gap:.5rem}.wr-crit{display:flex;align-items:flex-start;gap:.7rem;text-align:left;background:var(--surface);border:solid var(--line-strong);border-width:1.5px 1.5px 3px;border-radius:var(--r);padding:.7rem .9rem;font-size:.92rem;line-height:1.45;cursor:pointer;color:var(--ink)}.wr-crit.on{background:var(--teal-bg);border-color:var(--teal-edge);color:var(--teal)}.wr-check{width:22px;height:22px;flex:0 0 auto;border-radius:6px;border:1.5px solid var(--line-strong);display:flex;align-items:center;justify-content:center;margin-top:.05rem}.wr-crit.on .wr-check{background:var(--teal);border-color:var(--teal)}.wr-crit.on .wr-check svg{width:14px;height:14px;stroke:var(--ground)}.pagehead .eyebrow{color:var(--yr,var(--brass))}.pagehead h1{font-weight:var(--yr-disp,800)}.pagehead{position:relative;padding-left:1rem}.pagehead:before{content:"";position:absolute;left:0;top:.15rem;bottom:.35rem;width:4px;border-radius:4px;background:var(--yr,var(--brass))}.yr[aria-current=true] .dot{background:var(--yr,var(--ink))}.card{border-radius:var(--yr-round,var(--r-l))}.stage-title span{color:var(--yr,var(--ink-faint))}&[data-year="7"] .sicon,&[data-year="8"] .sicon{border-radius:14px}&[data-year="10"] .sicon,&[data-year="11"] .sicon{border-radius:9px}&[data-year="11"] .pagehead h1{letter-spacing:-.01em}.banner{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;padding:.5rem clamp(.7rem,2.5vw,1.4rem);background:var(--brass-bg);border-bottom:1.5px solid var(--brass-edge);font-size:.86rem;color:var(--ink)}.banner a,.banner b{color:var(--brass)}.banner a{font-weight:600}.loading{padding:3rem 1rem;text-align:center;color:var(--ink-faint);font-family:var(--font-util);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.toast{position:fixed;left:50%;bottom:1.4rem;transform:translateX(-50%);background:var(--ink);color:var(--ground);padding:.6rem 1rem;border-radius:99px;font-size:.9rem;z-index:600;box-shadow:0 8px 30px var(--shadow)}.audio-row{display:flex;align-items:center;gap:.6rem;margin-top:.6rem}.audio-row input[type=range]{flex:1;accent-color:var(--brass-edge)}button.card{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}button.card>.topic-m{flex:1 0 auto}@media (max-width:860px){.body{align-items:stretch}.main{width:100%;max-width:100%}}.feedback p b{display:inline;font-family:inherit;font-size:inherit;margin:0}input.txt{width:100%;padding:.6rem;border:1.5px solid var(--line-strong);border-radius:var(--r-s);background:var(--surface-2);color:var(--ink);font:inherit}}@keyframes optReveal{0%{transform:scale(.97)}55%{transform:scale(1.015)}to{transform:scale(1)}}@keyframes keyPop{0%{transform:scale(.6)}70%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.045)}to{transform:scale(1)}}@keyframes viewIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes flamePulse{0%{transform:scale(1)}30%{transform:scale(1.22)}55%{transform:scale(.96)}to{transform:scale(1)}}@keyframes cardShake{0%,to{transform:rotateY(180deg) translateX(0)}25%{transform:rotateY(180deg) translateX(-5px)}75%{transform:rotateY(180deg) translateX(5px)}}@keyframes confettiFall{0%{transform:translateY(0) rotate(0deg);opacity:1}85%{opacity:1}to{transform:translateY(112vh) rotate(540deg);opacity:0}}@keyframes levelPop{0%{opacity:0;transform:scale(.7) translateY(10px)}70%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes levelSpin{0%{transform:rotate(-20deg) scale(.6);opacity:0}60%{transform:rotate(8deg) scale(1.08)}to{transform:rotate(0) scale(1);opacity:1}}@keyframes badgeIn{0%{opacity:0;transform:scale(.7) translateY(6px)}70%{opacity:1}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes fbThanks{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes rippleGo{to{transform:scale(2.6);opacity:0}}.al{--pop-brass:#f0b548;--pop-violet:#7d6bd1;--pop-sky:#3d9be0;--pop-moss:#8fb53a;--pop-plum:#c45f97;background-image:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--ink) 9%,transparent) 1.2px,transparent 0);background-size:24px 24px;&[data-year="7"]{--yr-pop:var(--pop-moss)}&[data-year="8"]{--yr-pop:var(--pop-violet)}&[data-year="9"]{--yr-pop:var(--pop-brass)}&[data-year="10"]{--yr-pop:var(--pop-plum)}&[data-year="11"]{--yr-pop:var(--pop-sky)}.hero{position:relative;overflow:hidden;border-radius:26px;padding:clamp(1.1rem,3vw,1.7rem);margin-bottom:1.1rem;background:linear-gradient(135deg,var(--yr-bg) 0,var(--surface) 55%,color-mix(in srgb,var(--yr-pop) 22%,var(--surface)) 100%);border:solid var(--yr-edge);border-width:1.5px 1.5px 5px}.hero:after,.hero:before{content:"";position:absolute;border-radius:50%;pointer-events:none;opacity:.5}.hero:before{width:190px;height:190px;right:-50px;top:-70px;background:var(--yr-pop);filter:blur(2px);opacity:.28;animation:bob 7s ease-in-out infinite}.hero:after{width:90px;height:90px;right:120px;bottom:-40px;background:var(--pop-brass);opacity:.3;animation:bob 9s ease-in-out infinite reverse}.hero>*{position:relative;z-index:1}.hero .hello{font-family:var(--font-util);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--yr)}.hero h1{font-size:clamp(1.6rem,4vw,2.4rem);margin:.3rem 0 .45rem;letter-spacing:-.02em;max-width:18ch}.hero p{color:var(--ink-soft);max-width:54ch;font-size:.97rem}.hero-row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-top:1rem}.wave{display:inline-block;transform-origin:70% 70%;animation:wave 2.4s ease-in-out 1}.xp{margin-top:1.1rem;max-width:460px}.xp-top{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;font-family:var(--font-util);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.35rem}.xp-top b{font-family:var(--font-display);font-size:1.05rem;letter-spacing:0;text-transform:none;color:var(--ink)}.xp-bar{height:16px;border-radius:99px;background:var(--surface);border:1.5px solid var(--line-strong)}.xp-bar,.xp-bar i{overflow:hidden;position:relative}.xp-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--brass-edge),var(--pop-brass));transition:width .8s cubic-bezier(.2,1,.3,1);min-width:10px}.xp-bar i:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-100%);animation:shine 2.8s ease-in-out infinite}.pill{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border-radius:99px;font-weight:600;font-size:.86rem;border:1.5px solid var(--line-strong);background:var(--surface)}.pill svg{width:1.05em;height:1.05em}.pill.fire{background:var(--brass-bg);border-color:var(--brass-edge);color:var(--brass)}.pill.fire.lit svg{animation:flicker 1.3s ease-in-out infinite;transform-origin:50% 90%}.pill.lvl{background:var(--violet-bg);border-color:var(--violet-edge);color:var(--violet)}.pill.star{background:var(--sky-bg);border-color:var(--sky-edge);color:var(--sky)}.missions{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));margin-bottom:1.5rem}.mission{--c:var(--brass);--cb:var(--brass-bg);--cp:var(--pop-brass);position:relative;overflow:hidden;text-align:left;cursor:pointer;font:inherit;color:inherit;width:100%;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;border-radius:22px;padding:1rem 1rem 1.05rem;background:var(--cb);border:solid var(--c);border-width:1.5px 1.5px 5px;transition:transform .16s cubic-bezier(.2,1.4,.4,1),box-shadow .16s ease}.mission:hover:not(:disabled){transform:translateY(-4px) rotate(-.6deg);box-shadow:0 14px 30px var(--shadow)}.mission:active:not(:disabled){transform:translateY(1px);border-bottom-width:2px}.mission:disabled{opacity:.55;cursor:progress}.mission .blob{position:absolute;right:-26px;top:-26px;width:96px;height:96px;border-radius:50%;background:var(--cp);opacity:.3}.mission .emoji{font-size:1.9rem;line-height:1;position:relative}.mission b{display:block;font-family:var(--font-display);font-size:1.12rem;line-height:1.2;margin-top:.55rem;position:relative}.mission .tag{font-family:var(--font-util);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--c);margin-top:.2rem;position:relative}.mission p{font-size:.85rem;color:var(--ink-soft);line-height:1.45;margin-top:.45rem;position:relative}.mission.brass{--c:var(--brass);--cb:var(--brass-bg);--cp:var(--pop-brass)}.mission.plum{--c:var(--plum);--cb:var(--plum-bg);--cp:var(--pop-plum)}.mission.violet{--c:var(--violet);--cb:var(--violet-bg);--cp:var(--pop-violet)}.mission.sky{--c:var(--sky);--cb:var(--sky-bg);--cp:var(--pop-sky)}.mission.moss{--c:var(--moss);--cb:var(--moss-bg);--cp:var(--pop-moss)}.mission .ready{position:absolute;top:.8rem;right:.8rem;width:12px;height:12px;border-radius:50%;background:var(--c);animation:ping 1.8s ease-out infinite}h2.section{font-size:1.2rem;margin:0 0 .75rem;display:flex;align-items:center;gap:.5rem}h2.section:after{content:"";flex:1;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--line-strong),transparent)}button.card{transition:transform .16s cubic-bezier(.2,1.4,.4,1),box-shadow .16s ease,border-color .15s ease,background .15s}button.card:hover{transform:translateY(-4px);box-shadow:0 14px 30px var(--shadow)}button.card.subj{border-top:6px solid var(--c);padding-top:.85rem}button.card.subj .sicon{width:46px;height:46px;flex:0 0 46px;border-radius:15px;background:var(--c)!important;color:var(--surface)!important;transition:transform .2s cubic-bezier(.2,1.6,.4,1)}button.card.subj .sicon svg{width:24px;height:24px}button.card.subj:hover .sicon{transform:rotate(-8deg) scale(1.08)}button.card.subj .topic-t{font-size:1.12rem}.meter{height:10px}.meter i{background:linear-gradient(90deg,var(--teal-edge),var(--pop-moss))}.done-tick{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--teal-edge);color:var(--surface);flex:0 0 22px}.done-tick svg{width:13px;height:13px}.grid>*{animation:rise .42s cubic-bezier(.2,1,.3,1) both}.grid>:nth-child(2){animation-delay:.04s}.grid>:nth-child(3){animation-delay:.08s}.grid>:nth-child(4){animation-delay:.12s}.grid>:nth-child(5){animation-delay:.16s}.grid>:nth-child(6){animation-delay:.2s}.grid>:nth-child(n+7){animation-delay:.24s}.missions>*{animation:rise .42s cubic-bezier(.2,1,.3,1) both}.missions>:nth-child(2){animation-delay:.05s}.missions>:nth-child(3){animation-delay:.1s}.missions>:nth-child(4){animation-delay:.15s}.game-card{position:relative;overflow:hidden}.game-card .gicon{font-size:2rem;line-height:1;display:inline-block;transition:transform .2s cubic-bezier(.2,1.6,.4,1)}.game-card:hover .gicon{transform:scale(1.2) rotate(-6deg)}.tutor-card{background:linear-gradient(120deg,var(--beacon-bg),var(--surface));border-color:var(--beacon);display:flex;gap:.9rem;align-items:center;flex-direction:row!important;margin-bottom:.9rem}.tutor-card .gicon{font-size:2.2rem}.tutor-card .tag{color:var(--beacon);font-family:var(--font-util);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700}.todo{background:var(--surface);border:solid var(--line);border-width:1.5px 1.5px 4px;border-radius:22px;padding:.4rem;margin-bottom:1.5rem}.todo-item{display:flex;align-items:center;gap:.8rem;width:100%;text-align:left;background:none;border:none;border-radius:16px;padding:.7rem .8rem;cursor:pointer;font:inherit;color:inherit}.todo-item:hover{background:var(--ground-2)}.todo-item+.todo-item{border-top:1px dashed var(--line)}.todo-box{width:26px;height:26px;flex:0 0 26px;border-radius:9px;border:2px solid var(--line-strong);display:grid;place-items:center}.todo-item.done .todo-box{background:var(--teal-edge);border-color:var(--teal-edge);color:var(--surface)}.todo-item.done .todo-box svg{width:15px;height:15px;animation:pop .3s ease}.todo-item.done .todo-t{text-decoration:line-through;color:var(--ink-faint)}.todo-t{font-weight:600;line-height:1.3}.todo-m{font-size:.82rem}.todo-due,.todo-m{color:var(--ink-soft)}.todo-due{margin-left:auto;font-family:var(--font-util);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;padding:.25rem .55rem;border-radius:99px;border:1.5px solid var(--line-strong)}.todo-due.soon{background:var(--brass-bg);border-color:var(--brass-edge);color:var(--brass)}.prog{height:14px}.prog i{background:repeating-linear-gradient(-45deg,var(--brass-edge) 0 12px,var(--pop-brass) 12px 24px);background-size:34px 100%;animation:stripes 1.1s linear infinite;border-radius:99px}.opt{transition:transform .12s ease,border-bottom-width .09s,background .15s,padding-left .15s ease}.opt:hover:not(:disabled){padding-left:1.15rem}.combo{display:inline-flex;align-items:center;gap:.35rem;padding:.3em .7em;border-radius:99px;font-weight:700;font-size:.82rem;background:linear-gradient(90deg,var(--pop-brass),var(--pop-plum));color:#1b1407;animation:pop .35s cubic-bezier(.2,1.6,.4,1)}.xp-float{position:absolute;right:1.2rem;top:.4rem;font-family:var(--font-display);font-weight:600;font-size:1.25rem;color:var(--teal);pointer-events:none;animation:floatUp 1s ease-out forwards}.qcard{position:relative}.stars{display:flex;justify-content:center;gap:.4rem;margin:.2rem 0 .6rem}.stars span{font-size:2.3rem;line-height:1;filter:grayscale(1);opacity:.25}.stars span.on{filter:none;opacity:1;animation:starIn .5s cubic-bezier(.2,1.6,.4,1) both}.stars span.on:nth-child(2){animation-delay:.18s}.stars span.on:nth-child(3){animation-delay:.36s}.tutor-bubble{display:flex;gap:.8rem;align-items:flex-start;margin-bottom:1rem}.tutor-face{width:44px;height:44px;flex:0 0 44px;border-radius:50%;background:var(--beacon);color:var(--surface);display:grid;place-items:center;font-size:1.3rem}.tutor-say{background:var(--beacon-bg);border:1.5px solid var(--beacon);border-radius:4px 18px 18px 18px;padding:.8rem 1rem;line-height:1.55;max-width:60ch}.tutor-say b{color:var(--beacon)}.steps{display:flex;gap:.35rem;margin-bottom:1.1rem}.steps i{flex:1;height:8px;border-radius:99px;background:var(--ground-2);border:1px solid var(--line)}.steps i.on{background:var(--beacon);border-color:var(--beacon)}.kw{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.6rem}.kw div{background:var(--surface);border:solid var(--line-strong);border-width:1.5px 1.5px 3px;border-radius:14px;padding:.65rem .8rem}.kw b{display:block;font-family:var(--font-display);font-size:1.02rem}.kw span{font-size:.88rem;color:var(--ink-soft)}.hint{line-height:1.5}select.txt{width:100%;padding:.6rem;border:1.5px solid var(--line-strong);border-radius:var(--r-s);background:var(--surface-2);color:var(--ink);font:inherit}&[dir=rtl] .pagehead{padding-left:0;padding-right:1rem}&[dir=rtl] .pagehead:before{left:auto;right:0}&[dir=rtl] .brand,&[dir=rtl] .stage-title{margin-right:0;margin-left:auto}&[dir=rtl] .todo-due{margin-left:0;margin-right:auto}&[dir=rtl] .mission,&[dir=rtl] .opt,&[dir=rtl] .todo-item,&[dir=rtl] button.card{text-align:right}&[data-motion=calm]{background-image:none;.hero:after,.hero:before,.mission .blob,.mission .ready{display:none}.game-card:hover .gicon,.mission:hover:not(:disabled),button.card.subj:hover .sicon,button.card:hover{transform:none;box-shadow:none}.opt:hover:not(:disabled){padding-left:.85rem}.prog i{animation:none;background:var(--brass-edge)}.xp-bar i:after{display:none}}@media (prefers-reduced-motion:reduce){.mission:hover:not(:disabled),button.card:hover{transform:none}.hero:after,.hero:before{animation:none}}}@keyframes bob{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(14px) scale(1.06)}}@keyframes wave{0%,to{transform:rotate(0)}15%{transform:rotate(16deg)}30%{transform:rotate(-8deg)}45%{transform:rotate(14deg)}60%{transform:rotate(-4deg)}75%{transform:rotate(8deg)}}@keyframes shine{0%{transform:translateX(-100%)}60%,to{transform:translateX(100%)}}@keyframes flicker{0%,to{transform:scale(1) rotate(-2deg)}50%{transform:scale(1.14) rotate(3deg)}}@keyframes ping{0%{box-shadow:0 0 0 0 color-mix(in srgb,currentColor 45%,transparent)}to{box-shadow:0 0 0 12px transparent}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes stripes{to{background-position:34px 0}}@keyframes floatUp{0%{opacity:0;transform:translateY(8px) scale(.9)}20%{opacity:1}to{opacity:0;transform:translateY(-34px) scale(1.1)}}@keyframes starIn{0%{transform:scale(0) rotate(-40deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}