@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:italic;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-italic-BEAWuiTz.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Devanagari Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-devanagari-devanagari-wght-normal-DWI_L5Cu.woff2)format("woff2-variations");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Noto Sans Devanagari Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-devanagari-latin-ext-wght-normal-CLkupaxV.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Devanagari Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/noto-sans-devanagari-latin-wght-normal-Bxfr4UJH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lavender:#ece8ff;--powder:#e6eeff;--mint:#e3f5ec;--blush:#fce7ee;--butter:#fff4d4;--peach:#ffeadd;--periwinkle:#e8eaff;--paper:#f3f4f9;--ink:#171a2f;--ink-2:#474b66;--ink-3:#686c88;--surface:#fff;--surface-2:#f6f6fb;--surface-3:#eeeff7;--line:#e6e7f0;--line-2:#d6d8e6;--force:#c8456b;--force-soft:#fce7ee;--disp:#2b66c4;--disp-soft:#e4edff;--work:#5b3fd0;--work-soft:#ece8ff;--work-tile:#d9d0fb;--dist:#8a5a00;--dist-soft:#fff4d4;--vel:#0d7a64;--vel-soft:#dcf3ec;--acc:#b4531c;--acc-soft:#ffeadd;--ok:#1d6f47;--ok-soft:#e3f5ec;--ok-line:#8fd0ad;--bad:#b2413a;--bad-soft:#fde6e2;--hint:#7a5300;--hint-soft:#fff4d4;--hint-line:#ebcd78;--accent:#4338ca;--accent-strong:#3730a3;--accent-soft:#ecebff;--accent-ring:#4338ca2e;--focus:#4f46e5;--font-display:"Bricolage Grotesque Variable", "Bricolage Grotesque", "Figtree Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:"Figtree Variable", "Figtree", "Noto Sans Devanagari Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-deva:"Noto Sans Devanagari Variable", "Figtree Variable", system-ui, sans-serif;--text-xs:.8125rem;--text-s:.9375rem;--text-m:1.0625rem;--text-l:1.25rem;--text-xl:1.625rem;--text-2xl:2.125rem;--r-xs:8px;--r-s:12px;--r-m:16px;--r-l:22px;--r-xl:30px;--r-pill:999px;--shadow-1:0 1px 2px #171a2f0d, 0 1px 1px #171a2f08;--shadow-2:0 1px 2px #171a2f0a, 0 12px 32px -18px #171a2f38;--shadow-3:0 28px 70px -28px #171a2f61, 0 6px 16px #171a2f0f;--shadow-accent:0 12px 26px -12px #4338cabf;--ease:cubic-bezier(.22, 1, .36, 1);--t-fast:.14s;--t-med:.26s;--topbar-h:76px}@media (prefers-reduced-motion:reduce){:root{--t-fast:0s;--t-med:0s}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-body);font-size:var(--text-m);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;line-height:1.6}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:700;line-height:1.15}p{text-wrap:pretty;margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}strong{font-weight:750}::selection{background:#d9d4ff}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;border-radius:var(--r-s);background:var(--ink);color:#fff;transition:top var(--t-fast);padding:8px 14px;text-decoration:none;position:absolute;top:-48px;left:12px}.skip-link:focus{top:12px}[lang=hi]{font-family:var(--font-deva)}.q-force{color:var(--force)}.q-disp{color:var(--disp)}.q-work{color:var(--work)}.q-dist{color:var(--dist)}.q-vel{color:var(--vel)}.q-acc{color:var(--acc)}.q-time{color:var(--ink-2)}.num{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.app{flex-direction:column;min-height:100dvh;display:flex}@media (width>=960px){.app{height:100dvh;overflow:hidden}}.brand-mark{flex-shrink:0;display:block}.brand-chapter-sep{background:var(--ink-3);border-radius:50%;flex-shrink:0;width:3px;height:3px}.menu-btn{width:46px;height:46px;color:var(--ink);transition:background var(--t-fast);background:0 0;border:0;border-radius:14px;flex-shrink:0;place-items:center;margin-right:-4px;display:grid}.menu-btn:hover{background:var(--surface-3)}.menu-btn:active{background:var(--line)}.stepper{border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);padding:5px}.stepper ol{align-items:center;gap:6px;margin:0;padding:0;list-style:none;display:flex;position:relative}.stepper li{align-items:center;display:flex;position:relative}.stepper li+li:before{content:"";background:var(--line-2);border-radius:2px;width:8px;height:2px;margin-right:6px}.step{width:38px;height:38px;color:var(--ink-2);font-weight:700;font-size:var(--text-s);font-variant-numeric:tabular-nums;transition:background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.step:hover{background:var(--surface-3);color:var(--ink)}.step[data-state=current]{background:var(--accent);color:#fff;box-shadow:0 0 0 4px var(--accent-ring), 0 6px 14px -6px #4338cacc}.step[data-state=complete]{background:var(--ok-soft);color:var(--ok)}.step[data-state=complete]:hover{background:#d3efdf}.step[data-complete] svg{animation:tick-pop .42s var(--ease) both}@keyframes tick-pop{0%{opacity:0;transform:scale(.4)rotate(-12deg)}}.workspace{flex:1;grid-template-columns:minmax(400px,37fr) minmax(0,63fr);gap:20px;min-height:0;padding:0 20px 20px;display:grid}@media (width>=1440px){.app[data-tutor=open] .workspace{grid-template-columns:minmax(360px,33fr) minmax(0,50fr) minmax(330px,370px)}}.read,.exp,.tutor{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-2);min-width:0;min-height:0}.read{flex-direction:column;display:flex;overflow:hidden}.read-scroll{scrollbar-gutter:stable;flex:1;padding:36px 40px;font-size:1.125rem;line-height:1.65;position:relative;overflow-y:auto}.read-head{flex-direction:column;display:flex}.scene-count{font-size:var(--text-xs);letter-spacing:.07em;text-transform:uppercase;color:var(--accent);align-items:center;gap:12px;font-weight:750;display:flex}.scene-progress{border-radius:var(--r-pill);background:var(--accent-soft);flex:0 0 72px;height:5px;position:relative;overflow:hidden}.scene-progress>span{width:var(--progress,0%);border-radius:inherit;background:var(--accent);transition:width var(--t-med) var(--ease);position:absolute;inset:0 auto 0 0}.read-head h1{letter-spacing:-.035em;margin:14px 0;font-size:clamp(2.05rem,1.25rem + 1.55vw,2.85rem);font-weight:750;line-height:1.04}.read-head h1:focus,.read-head h1:focus-visible{outline:none}.lead{color:#33374f;font-size:1.22rem;line-height:1.6}.lead strong{color:var(--ink)}.goal{border-radius:var(--r-l);background:var(--surface);transition:background var(--t-med), border-color var(--t-med);border:1.5px dashed #c9c5fb;margin-top:22px;padding:14px 18px}.goal[data-complete]{background:var(--ok-soft);border:1.5px solid var(--ok-line);animation:fade-up .36s var(--ease) both}.goal-head{font-size:var(--text-xs);letter-spacing:.07em;text-transform:uppercase;color:var(--accent);align-items:center;gap:8px;font-weight:800;display:flex}.goal[data-complete] .goal-head{color:var(--ok)}.goal-icon{background:var(--accent-soft);border-radius:9px;place-items:center;width:28px;height:28px;display:grid}.goal[data-complete] .goal-icon{background:#c9ecd7}.goal-list{flex-direction:column;gap:8px;margin:10px 0 0;padding:0;font-size:1rem;font-weight:600;line-height:1.4;list-style:none;display:flex}.goal-list li{align-items:flex-start;gap:10px;display:flex}.goal-check{border:2px solid var(--line-2);background:var(--surface);color:#fff;width:22px;height:22px;transition:background var(--t-fast), border-color var(--t-fast);border-radius:7px;flex-shrink:0;place-items:center;margin-top:0;display:grid}.goal-list li[data-done] .goal-check{border-color:var(--ok);background:var(--ok)}.goal-list li[data-done] .goal-check svg{animation:tick-pop .42s var(--ease) both}.goal-list li[data-done]>span:nth-child(2){color:var(--ink-2)}.goal-count{border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-strong);font-size:var(--text-xs);white-space:nowrap;flex-shrink:0;margin-left:auto;padding:2px 10px;font-weight:750}.goal-foot{font-size:var(--text-xs);color:var(--ink-2);margin-top:10px}.goal-tick{vertical-align:-3px;background:var(--ok-soft);width:17px;height:17px;color:var(--ok);border-radius:50%;place-items:center;display:inline-grid}.read-foot .btn-primary[data-ready]{background:var(--accent);box-shadow:var(--shadow-accent)}.read-foot .btn-primary[data-ready]:hover:not(:disabled){background:var(--accent-strong)}.blocks{flex-direction:column;gap:18px;margin-top:28px;display:flex}.para{max-width:62ch}.block-heading{margin-top:8px;margin-bottom:-6px;font-size:1.3rem}.list{margin:0;padding-left:22px}.list li+li{margin-top:4px}.list li::marker{color:var(--ink-3)}.observe{border-radius:var(--r-l);background:var(--powder);color:#1d2b63;align-items:center;gap:14px;padding:12px 18px 12px 12px;line-height:1.5;display:flex}.observe svg{box-sizing:content-box;background:var(--surface);color:var(--disp);border-radius:13px;flex-shrink:0;padding:10px;box-shadow:0 1px 2px #1d2b6314}.live{color:var(--ink);animation:fade-up .3s var(--ease) both;padding:2px 0 2px 22px;position:relative}.live:before{content:"";background:var(--work);width:9px;height:9px;box-shadow:0 0 0 4px var(--work-soft);border-radius:50%;position:absolute;top:.62em;left:4px}.takeaway{border-radius:var(--r-l);background:var(--butter);animation:fade-up .36s var(--ease) both;flex-direction:column;gap:4px;padding:18px 22px 20px;display:flex}.takeaway-label{font-size:var(--text-xs);letter-spacing:.07em;text-transform:uppercase;color:var(--hint);align-items:center;gap:8px;margin-bottom:2px;font-weight:800;display:flex}.takeaway-label svg{box-sizing:content-box;background:#ffe6a0;border-radius:10px;padding:6px}.takeaway-line{color:#3f2e05;font-size:1.15rem;font-weight:550}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}}.formula{border-radius:var(--r-l);background:var(--surface-2);border:1px solid var(--line);margin:0;padding:22px 24px}.formula-main{font-family:var(--font-display);letter-spacing:-.02em;justify-content:center;align-items:baseline;gap:18px;font-size:clamp(2.6rem,2rem + 1.6vw,3.4rem);font-style:italic;font-weight:750;line-height:1.15;display:flex}.formula-main[data-long]{gap:12px;font-size:clamp(2rem,1.6rem + 1.2vw,2.7rem)}.formula-main[data-long=xl]{flex-wrap:wrap;gap:4px 8px;font-size:clamp(1.15rem,.85rem + .8vw,1.55rem)}.formula-op{color:var(--ink-3);font-style:normal;font-weight:400}.formula-num{color:var(--ink-2);font-style:normal;font-weight:600}.formula-terms{border-top:1px dashed var(--line-2);flex-direction:column;gap:8px;margin:16px 0 0;padding:14px 0 0;font-size:1.05rem;list-style:none;display:flex}.formula-terms li{grid-template-columns:30px 1fr auto;align-items:baseline;gap:10px;display:grid}.formula-sym{font-family:var(--font-display);font-size:1.35rem;font-style:italic;font-weight:750}.formula-unit{color:var(--ink-2);font-size:var(--text-s);font-weight:700}.checkpoint{border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow-2);padding:20px 22px}.checkpoint-q{font-size:1.15rem;font-weight:750;line-height:1.4}.checkpoint-options{grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:10px;margin-top:14px;display:grid}.checkpoint-opt{border-radius:var(--r-m);border:1.5px solid var(--line-2);background:var(--surface);min-height:54px;transition:border-color var(--t-fast), background var(--t-fast), transform var(--t-fast);padding:10px 16px;font-size:1rem;font-weight:700;line-height:1.3}.checkpoint-opt:hover{background:#fafaff;border-color:#a9a4e8}.checkpoint-opt:active{transform:scale(.98)}.checkpoint-opt[data-result=right]{border-color:var(--ok-line);background:var(--ok-soft);color:#14523a}.checkpoint-opt[data-result=try]{border-color:var(--hint-line);background:var(--butter);color:#5c3f00}.checkpoint-feedback{animation:fade-up .3s var(--ease) both;align-items:flex-start;gap:10px;margin-top:14px;font-size:1rem;line-height:1.5;display:flex}.checkpoint-feedback svg{box-sizing:content-box;background:var(--hint-soft);color:var(--hint);border-radius:50%;flex-shrink:0;margin-top:0;padding:4px}.checkpoint-feedback[data-correct=true] svg{background:var(--ok-soft);color:var(--ok)}.more{border-radius:var(--r-l);background:var(--surface-2);margin-top:30px}.more summary{border-radius:var(--r-l);min-height:56px;color:var(--ink);cursor:pointer;transition:background var(--t-fast);justify-content:space-between;align-items:center;gap:8px;padding:0 20px;font-size:1rem;font-weight:750;list-style:none;display:flex}.more summary:hover{background:var(--surface-3)}.more summary::-webkit-details-marker{display:none}.more summary svg{color:var(--ink-2);transition:transform var(--t-med) var(--ease)}.more[open] summary svg{transform:rotate(180deg)}.more-body{flex-direction:column;gap:20px;padding:6px 20px 22px;font-size:1rem;display:flex}.more-body .checkpoint{box-shadow:none;padding:16px 18px}.more-sub{color:var(--ink-2);font-weight:750;font-size:var(--text-s);align-items:center;gap:6px;display:flex}.think{border-radius:var(--r-m);background:var(--surface);border:1px solid var(--line);padding:14px 16px}.think-prompt{font-weight:700}.think-answer{margin-top:8px}.source-note{font-size:var(--text-xs);color:var(--ink-2);margin-top:4px}.misconception{flex-direction:column;gap:8px;display:flex}.myth,.fact{align-items:flex-start;gap:8px;display:flex}.myth{color:var(--ink-2);-webkit-text-decoration:line-through #b2413a80;text-decoration:line-through #b2413a80}.myth svg{color:var(--bad);flex-shrink:0;margin-top:5px}.fact svg{color:var(--ok);flex-shrink:0;margin-top:5px}.textbook{border-radius:var(--r-m);background:var(--surface);border:1px solid var(--line);padding:16px 18px}.textbook-quote{border-radius:var(--r-s);color:#3f2e05;background:#fff8e6;margin:8px 0;padding:10px 14px;font-style:italic}.textbook-tag{font-style:normal;font-size:var(--text-xs);color:var(--ink-2)}.sources{font-size:var(--text-xs);color:var(--ink-2);line-height:1.55}.calc-big{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.5rem;font-weight:650}.insight{border-radius:var(--r-m);background:var(--butter);animation:fade-up .3s var(--ease) both;gap:10px;padding:14px 16px;display:flex}.insight svg{color:var(--hint);flex-shrink:0;margin-top:5px}.hint-line{color:var(--ink-2);font-size:1rem}.muted{color:var(--ink-2)}.small,.small-text{font-size:var(--text-s)}.challenges{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.challenges li{border-radius:var(--r-m);background:var(--surface-2);align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.challenges li svg{color:var(--ink-3);flex-shrink:0;margin-top:5px}.challenges li[data-met]{background:var(--ok-soft)}.challenges li[data-met] svg{color:var(--ok)}.challenges li[data-met] span{color:#14523a}.solution{flex-direction:column;gap:12px;display:flex}.steps{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.steps:empty{display:none}.steps li{border-radius:var(--r-m);animation:fade-up .3s var(--ease) both;border:1px solid #0000;grid-template-columns:32px 1fr;align-items:start;gap:12px;padding:12px 14px;display:grid}.steps li[data-current]{background:var(--powder);border-color:#d3e0ff}.steps li:focus{outline:none}.steps li:focus-visible{outline:3px solid var(--focus)}.step-num{background:var(--disp);color:#fff;width:32px;height:32px;font-weight:750;font-size:var(--text-s);border-radius:50%;place-items:center;display:grid}.step-title{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);font-weight:750;line-height:32px}.step-body{font-size:1.2rem}.live-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.practice{border-radius:var(--r-l);border:1px solid var(--line-2);flex-direction:column;gap:12px;padding:18px 20px;display:flex}.feedback-inline{border-radius:var(--r-m);background:var(--butter);animation:fade-up .3s var(--ease) both;align-items:flex-start;gap:8px;padding:12px 14px;font-size:1rem;display:flex}.feedback-inline[data-correct=true]{background:var(--ok-soft)}.feedback-inline svg{flex-shrink:0;margin-top:4px}.recap{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.recap li{border-radius:var(--r-m);background:var(--surface-2);flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:12px 16px;display:flex}.recap li[data-review]{background:var(--butter)}.recap-link{font-size:var(--text-s)}.read-foot{border-top:1px solid var(--line);background:#ffffffeb;align-items:center;gap:10px;padding:14px 18px;display:flex}.read-foot .btn{border-radius:var(--r-m);min-height:50px}.read-foot .btn-primary{background:var(--ink);min-width:128px;box-shadow:none;margin-left:auto;padding:0 18px 0 24px}.read-foot .btn-primary:hover:not(:disabled){background:#2b2f4c}.read-foot .btn-primary svg{transition:transform var(--t-fast) var(--ease)}.read-foot .btn-primary:hover svg{transform:translate(3px)}.btn.jump-exp,.icon-btn.jump-read{display:none}.btn{border-radius:var(--r-pill);white-space:nowrap;min-height:46px;transition:background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:1rem;font-weight:700;line-height:1.1;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4}.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-primary:disabled{box-shadow:none}.btn-ghost{background:var(--surface);border-color:var(--line-2);color:var(--ink)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);border-color:#c4c6d8}.btn-tutor{background:var(--ink);color:#fff}.btn-tutor:hover{background:#2b2f4c}.btn-tutor[aria-expanded=true]{background:var(--accent)}.btn-small{min-height:42px;font-size:var(--text-s);padding:0 16px}.btn-icon{width:46px;padding:0}.btn-hold{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;min-width:168px;min-height:58px;box-shadow:var(--shadow-accent), inset 0 -3px 0 #00000029;padding:0 28px;font-size:1.1rem;font-weight:750;position:relative}.btn-hold:active:not(:disabled),.btn-hold[data-holding]{background:var(--accent-strong);transform:translateY(2px)scale(.97);box-shadow:0 4px 10px -6px #4338cacc,inset 0 2px #0000002e}.btn-hold[data-holding]:after{content:"";border-radius:inherit;pointer-events:none;border:3px solid #6366f173;animation:1s ease-out infinite hold-ring;position:absolute;inset:-6px}@keyframes hold-ring{0%{opacity:1;transform:scale(.96)}to{opacity:0;transform:scale(1.12)}}.icon-btn{border:1px solid var(--line-2);background:var(--surface);width:38px;height:38px;color:var(--ink);transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-med) var(--ease);border-radius:12px;flex-shrink:0;place-items:center;display:inline-grid}.icon-btn-lg{border-radius:15px;width:46px;height:46px}.icon-btn:hover:not(:disabled){background:var(--surface-2);border-color:#c4c6d8}.icon-btn:disabled{opacity:.35}.exp-dock .icon-btn-lg{border-radius:50%;width:52px;height:52px}.exp-dock .icon-btn-lg[aria-label=Reset]:hover:not(:disabled){transform:rotate(-45deg)}.link-btn{color:var(--accent-strong);text-underline-offset:4px;text-align:left;transition:text-decoration-color var(--t-fast);background:0 0;border:0;align-items:center;gap:5px;padding:2px 0;font-size:1rem;font-weight:700;-webkit-text-decoration:underline #3730a359;text-decoration:underline #3730a359;text-decoration-thickness:1.5px;display:inline-flex}.link-btn:hover{text-decoration-color:currentColor}.segmented{background:var(--surface-3);border-radius:17px;gap:4px;padding:5px;display:inline-flex}.segmented-opt{min-height:44px;color:var(--ink-2);transition:background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);background:0 0;border:0;border-radius:13px;align-items:center;gap:8px;padding:0 18px 0 14px;font-size:1rem;font-weight:700;display:inline-flex}.segmented-opt:hover{color:var(--ink)}.segmented-opt[aria-checked=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #171a2f14,0 6px 14px -8px #171a2f59}.qslider{--q:var(--accent);--q-soft:var(--accent-soft);border-radius:var(--r-l);background:var(--surface-2);flex:1;min-width:200px;padding:12px 16px 8px}.qslider[data-q=force]{--q:var(--force);--q-soft:var(--force-soft)}.qslider[data-q=disp]{--q:var(--disp);--q-soft:var(--disp-soft)}.qslider[data-q=dist]{--q:var(--dist);--q-soft:var(--dist-soft)}.qslider[data-q=vel]{--q:var(--vel);--q-soft:var(--vel-soft)}.qslider[data-q=acc]{--q:var(--acc);--q-soft:var(--acc-soft)}.qslider[data-q=time]{--q:var(--ink-2);--q-soft:var(--surface-3)}.qslider[data-disabled]{opacity:.55}.qslider-top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.qslider-label{font-weight:700;font-size:var(--text-s);color:var(--ink-2)}.qslider-symbol{font-family:var(--font-display);color:var(--q);font-style:italic;font-weight:750}.qslider-value{font-family:var(--font-display);letter-spacing:-.01em;color:var(--q);font-size:1.45rem;font-weight:700}.qslider input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:34px;margin:0}.qslider input[type=range]:disabled{cursor:not-allowed}.qslider input[type=range]::-webkit-slider-runnable-track{border-radius:var(--r-pill);background:linear-gradient(to right, var(--q) 0 var(--pct), #fff var(--pct) 100%);height:8px;box-shadow:inset 0 0 0 1px var(--line-2)}.qslider input[type=range]::-moz-range-track{border-radius:var(--r-pill);height:8px;box-shadow:inset 0 0 0 1px var(--line-2);background:#fff}.qslider input[type=range]::-moz-range-progress{border-radius:var(--r-pill);background:var(--q);height:8px}.qslider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:4px solid var(--q);width:26px;height:26px;transition:transform var(--t-fast);background:#fff;border-radius:50%;margin-top:-9px;box-shadow:0 4px 10px -3px #171a2f59}.qslider input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12)}.qslider input[type=range]::-moz-range-thumb{border:4px solid var(--q);background:#fff;border-radius:50%;width:18px;height:18px}.qslider input[type=range]:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.unit{opacity:.85;letter-spacing:0;font-size:.72em;font-weight:650}.readouts{grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:10px;display:grid}.readout{--q:var(--ink);--q-bg:var(--surface-2);border-radius:var(--r-l);background:var(--q-bg);flex-direction:column;gap:2px;min-width:0;padding:12px 16px 14px;display:flex}.readout[data-q=force]{--q:var(--force)}.readout[data-q=disp]{--q:var(--disp)}.readout[data-q=work]{--q:var(--work);--q-bg:var(--work-soft)}.readout[data-q=dist]{--q:var(--dist)}.readout[data-q=vel]{--q:var(--vel)}.readout[data-q=acc]{--q:var(--acc)}.readout[data-q=time]{--q:var(--ink-2)}.dock-row>.readout{flex:220px}.readout-label{font-size:var(--text-xs);color:var(--ink-2);font-weight:700}.readout-value{font-family:var(--font-display);letter-spacing:-.02em;color:var(--q);font-size:1.85rem;font-weight:700;line-height:1.15}.readout[data-big] .readout-value{font-size:2.2rem}.readout-note{font-size:var(--text-xs);color:var(--ink-2)}.exp{flex-direction:column;display:flex;position:relative;overflow:hidden}.exp:focus{outline:none}.exp[data-expanded]{z-index:60;box-shadow:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) max(12px, env(safe-area-inset-bottom)) env(safe-area-inset-left);border:0;border-radius:0;animation:.2s ease-out exp-expand;position:fixed;inset:0}@keyframes exp-expand{0%{opacity:0;transform:scale(.985)}}.exp[data-expanded]>*{width:100%;max-width:1680px;margin-inline:auto}.exp[data-expanded] .jump-read{display:none}.exp[data-expanded] .exp-stage{aspect-ratio:auto;flex:auto;min-height:0;max-height:none}.exp-expand[aria-label^=Exit]{background:var(--ink);border-color:var(--ink);color:#fff}.exp-expand[aria-label^=Exit]:hover:not(:disabled){background:#2b2f4d;border-color:#2b2f4d}body[data-exp-expanded] .tutor{z-index:70;width:min(390px,100vw - 40px);box-shadow:var(--shadow-3);position:fixed;top:20px;bottom:20px;right:20px}@media (prefers-reduced-motion:reduce){.exp[data-expanded]{animation:none}}.exp-head{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 12px 22px;display:flex}.exp-title{align-items:center;gap:12px;min-width:0;display:flex}.exp-title>div{min-width:0}.exp-badge{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:11px;flex-shrink:0;place-items:center;display:grid}.exp-kicker{font-size:var(--text-xs);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-weight:750;line-height:1.2;display:block}.exp-title h2{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:1.12rem;font-weight:700;line-height:1.25;overflow:hidden}.exp-corner{flex-shrink:0;align-items:center;gap:8px;display:flex}.about{position:relative}.about-btn[aria-expanded=true]{background:var(--accent-soft);color:var(--accent-strong);border-color:#c9c5fb}.about-card{z-index:10;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);width:min(340px,82vw);box-shadow:var(--shadow-3);font-size:var(--text-s);animation:fade-up .22s var(--ease) both;padding:16px 18px;line-height:1.5;position:absolute;top:46px;right:0}.about-card[hidden]{display:none}.about-title{margin-bottom:6px;font-weight:750}.about-card ul{margin:0;padding-left:18px}.about-card li+li{margin-top:6px}.exp-stage{isolation:isolate;background:#ece9fb;border-radius:22px;flex:1;min-height:240px;margin:0 12px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #171a2f0d}.exp-stage[data-scene=outdoor]{background:#dfe6ff}.exp-stage[data-scene=grid]{background:#fbfaff}.exp-stage[data-scene=lab]{background:#f3f0fc}.scene-svg{-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block;position:absolute;inset:0}.svg-label{font-family:var(--font-body);paint-order:stroke;stroke:#ffffffeb;stroke-width:5px;stroke-linejoin:round;font-weight:700}.scene-svg text{font-family:var(--font-body)}.graph-svg{width:100%;height:100%;font-family:var(--font-body);display:block}.graph-stage{flex-direction:column;display:flex}.graph-stage-strip{border-bottom:1px solid var(--line);flex:0 0 32%;min-height:112px;max-height:190px;position:relative}.graph-stage-plot{flex:1;min-height:170px;padding:6px 8px 2px}.graph-figure{border-radius:var(--r-m);background:var(--surface-2);height:230px;margin:2px 0 16px;padding:6px}.drag-handle{cursor:grab;touch-action:none}.drag-handle:active{cursor:grabbing}.flag[data-active] path{filter:drop-shadow(0 2px 3px #171a2f40)}.emph{animation:emph 1.6s var(--ease) infinite}@keyframes emph{50%{opacity:.45}}.pulse-outline{animation:1.2s linear infinite dash}@keyframes dash{to{stroke-dashoffset:-24px}}.pop-in{animation:pop .42s var(--ease) both;transform-box:fill-box;transform-origin:50%}@keyframes pop{0%{opacity:0;transform:scale(.85)}}.sweat{animation:1.2s ease-in-out infinite sweat}@keyframes sweat{50%{opacity:.6;transform:translateY(4px)}}.strain-lines{animation:.5s linear infinite emph}.tile{fill:#f1eefc;transition:fill .22s var(--ease)}.tile[data-filled]{fill:var(--work-tile);stroke:#a998f0;stroke-width:1.5px}.tile-outline{transition:all .22s var(--ease)}.joule-scene text{font-variant-numeric:tabular-nums}.joule-tile{fill:#efedf9;transform-box:fill-box;transform-origin:50%;transition:fill .26s var(--ease), transform .36s var(--ease);transform:scale(.82)}.joule-tile[data-filled]{fill:#cfc3fb;transform:scale(1)}.joule-area{transition:x .3s var(--ease), y .3s var(--ease), width .3s var(--ease), height .3s var(--ease);filter:drop-shadow(0 4px 10px #5b3fd02e)}.joule-crate,.joule-handle{transition:transform .3s var(--ease)}.joule-handle{pointer-events:none}.joule-hit{cursor:crosshair;touch-action:none}.joule-total{transform-box:fill-box;transform-origin:0;animation:pop .36s var(--ease) both}.joule-fade{animation:fade-up .24s var(--ease) both}.exp-dock{flex-direction:column;flex-shrink:0;gap:14px;padding:16px 20px 20px;display:flex}.dock-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 18px;display:flex}.dock-row-start{justify-content:flex-start}.dock-row-sliders{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;display:grid}.dock-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.readouts-inline{flex:300px}.gap-table{border-collapse:separate;border-spacing:4px;font-size:var(--text-s);flex:320px}.gap-table th{color:var(--ink-2);text-align:left;padding:2px 6px;font-weight:700}.gap-table thead th{font-size:var(--text-xs);text-align:center}.gap-table thead th:first-child{text-align:left}.gap-table td{border-radius:var(--r-xs);background:var(--surface-2);text-align:center;min-width:44px;padding:6px 4px;font-weight:700}.gap-table tr[data-racer=car] td{color:var(--force)}.gap-table tr[data-racer=auto] td{color:var(--dist)}.readout-direction{align-items:center;font-size:1.3rem;display:inline-flex}.dock-row-three{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.dock-given{font-size:var(--text-m);color:var(--ink-2);margin:0;font-weight:600}.readings-table td[data-plotted]{background:var(--disp-soft);color:var(--disp)}.calc-list{font-size:var(--text-m);flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.calc-list li{border-radius:var(--r-m);background:var(--surface-2);padding:10px 14px}.trial-chips{flex-wrap:wrap;flex:1;gap:8px;margin:0;padding:0;list-style:none;display:flex}.trial-chips li{border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--line);font-size:var(--text-s);animation:pop .32s var(--ease) both;padding:6px 12px}.trial-chips li strong{color:var(--work)}.save-progress{font-size:var(--text-s);color:var(--ink-2);margin:-4px 0 0;font-weight:600}.exp[data-kind=assessment] .quiz,.exp[data-kind=assessment] .summary{flex:1;overflow-y:auto}.quiz{flex-direction:column;gap:22px;padding:10px 32px 28px;display:flex}.quiz-progress{align-items:center;gap:8px;display:flex}.quiz-dot{border:1.5px solid var(--line-2);width:32px;height:32px;font-size:var(--text-xs);color:var(--ink-2);border-radius:50%;place-items:center;font-weight:750;display:grid}.quiz-dot[data-state=current]{border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:0 0 0 4px var(--accent-ring)}.quiz-dot[data-state=solved]{background:var(--ok-soft);border-color:var(--ok-line);color:var(--ok)}.quiz-dot[data-state=tried]{background:var(--butter);border-color:var(--hint-line)}.qcard{flex-direction:column;gap:16px;width:100%;max-width:700px;display:flex}.qcard-prompt{font-family:var(--font-display);letter-spacing:-.015em;font-size:1.45rem;font-weight:650;line-height:1.35}.qcard-prompt:focus{outline:none}.options{border:0;flex-direction:column;gap:10px;min-width:0;margin:0;padding:0;display:flex}.option{border-radius:var(--r-l);border:1.5px solid var(--line-2);background:var(--surface);cursor:pointer;transition:border-color var(--t-fast), background var(--t-fast);align-items:flex-start;gap:12px;padding:15px 18px;font-size:1.05rem;display:flex;position:relative}.option:hover{background:#fafaff;border-color:#a9a4e8}.option input{opacity:0;width:1px;height:1px;position:absolute}.option:focus-within{outline:3px solid var(--focus);outline-offset:2px}.option-mark{border:2px solid var(--line-2);background:var(--surface);width:20px;height:20px;transition:all var(--t-fast);border-radius:50%;flex-shrink:0;margin-top:4px}.option-check .option-mark{border-radius:6px}.option[data-selected]{border-color:var(--accent);background:#f6f5ff}.option[data-selected] .option-mark{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 3px #fff}.option[data-state=right]{border-color:var(--ok-line);background:var(--ok-soft)}.option[data-state=wrong]{background:var(--bad-soft);border-color:#e7a8a0}.option-note{font-size:var(--text-s);margin-top:6px;display:block}.option-note svg{vertical-align:-2px}fieldset:disabled .option{cursor:default}.numeric{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.numeric-label{font-weight:750;font-family:var(--font-display);font-size:1.3rem;font-style:italic}.numeric-input{border-radius:var(--r-m);border:1.5px solid var(--line-2);background:var(--surface);width:130px;height:50px;padding:0 14px;font-size:1.2rem;font-weight:700}.numeric-unit{border-radius:var(--r-m);border:1.5px solid var(--line-2);background:var(--surface);height:50px;padding:0 12px;font-size:1rem;font-weight:700}.numeric-input:focus-visible,.numeric-unit:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.form-error{color:var(--bad);font-weight:700;font-size:var(--text-s)}.qcard-hint{border-radius:var(--r-m);background:var(--butter);align-items:flex-start;gap:8px;padding:12px 16px;display:flex}.qcard-hint svg{color:var(--hint);flex-shrink:0;margin-top:4px}.feedback{border-radius:var(--r-l);background:var(--butter);animation:fade-up .3s var(--ease) both;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px;display:flex}.feedback:focus{outline:none}.feedback[data-correct=true]{background:var(--ok-soft)}.feedback-title{align-items:center;gap:6px;font-weight:750;display:flex}.feedback[data-correct=true] .feedback-title{color:var(--ok)}.feedback[data-correct=false] .feedback-title{color:#7a4300}.qcard-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.summary{flex-direction:column;gap:14px;padding:10px 32px 28px;display:flex}.summary-hero{border-radius:var(--r-l);background:var(--butter);align-items:flex-start;gap:16px;padding:22px 24px;display:flex}.summary-hero svg{color:#a0700c;flex-shrink:0}.summary-hero h3{margin-bottom:4px;font-size:1.55rem}.summary-hero h3:focus{outline:none}.summary-sub{margin-top:6px;font-size:1.05rem}.summary-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.summary-list li{border-radius:var(--r-m);background:var(--butter);flex-wrap:wrap;align-items:flex-start;gap:8px;padding:12px 16px;display:flex}.summary-list li[data-strong]{background:var(--ok-soft)}.summary-list li[data-strong] svg{color:var(--ok);flex-shrink:0;margin-top:5px}.summary-list li>span:first-of-type{flex:1;min-width:200px}.summary-links{flex-wrap:wrap;gap:10px;display:flex}.tutor{animation:fade-up .28s var(--ease) both;flex-direction:column;display:flex;overflow:hidden}.tutor-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:16px 16px 14px;display:flex}.tutor-avatar{background:var(--ink);color:#fff;border-radius:13px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.tutor-titles{flex:1;min-width:0}.tutor-titles h2{font-size:1.15rem}.tutor-mode{font-size:var(--text-xs);color:var(--ink-2);font-weight:700}.tutor-mode[data-live]{color:var(--ok)}.tutor-lang{border-radius:var(--r-s);border:1px solid var(--line-2);background:var(--surface);max-width:116px;height:38px;font-size:var(--text-s);padding:0 8px;font-weight:700}.tutor-log{background:var(--surface-2);flex-direction:column;flex:1;gap:12px;min-height:120px;padding:18px 16px;display:flex;overflow-y:auto}.msg{animation:fade-up .24s var(--ease) both;align-items:flex-end;gap:8px;display:flex}.msg[data-role=user]{justify-content:flex-end}.msg-src{background:var(--surface);border:1px solid var(--line);width:26px;height:26px;color:var(--accent-strong);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.msg-body{background:var(--surface);border:1px solid var(--line);white-space:pre-wrap;border-radius:18px 18px 18px 6px;max-width:85%;padding:11px 15px;font-size:1rem;line-height:1.5}.msg[data-role=user] .msg-body{background:var(--accent);color:#fff;border-color:#0000;border-radius:18px 18px 6px}.msg-note{font-size:var(--text-xs);color:var(--ink-2);margin-top:4px}.msg-options{white-space:normal;flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.typing{color:var(--ink-2);font-style:italic}.tutor-actions{flex-wrap:wrap;gap:6px;padding:12px 16px 4px;display:flex}.chip-btn{border-radius:var(--r-pill);border:1px solid var(--line-2);background:var(--surface);min-height:36px;color:var(--ink);transition:border-color var(--t-fast), background var(--t-fast);padding:0 14px;font-size:.9rem;font-weight:700}.chip-btn:hover{background:#f6f5ff;border-color:#a9a4e8}.chip-btn-strong{background:var(--butter);border-color:var(--hint-line)}.tutor-input{align-items:flex-end;gap:8px;padding:10px 16px 16px;display:flex}.tutor-input textarea{resize:none;border-radius:var(--r-m);border:1.5px solid var(--line-2);background:var(--surface);flex:1;min-width:0;padding:11px 14px;font-size:1rem;line-height:1.4}.tutor-input textarea:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.tutor-input .btn-icon{box-shadow:none;border-radius:50%}@media (width<=1439px){.tutor{z-index:40;right:20px;top:calc(var(--topbar-h) + 4px);width:min(390px,100vw - 40px);box-shadow:var(--shadow-3);position:fixed;bottom:20px}}.kicker{font-size:var(--text-xs);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);margin:0;font-weight:750}.drawer{background:var(--surface);width:min(440px,92vw);height:100dvh;max-height:100dvh;color:var(--ink);box-shadow:var(--shadow-3);border:0;border-radius:0;margin:0 auto 0 0;padding:0}.drawer[open]{animation:slide-in .3s var(--ease)}@keyframes slide-in{0%{opacity:0;transform:translate(-28px)}}.drawer::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#171a2f52}.drawer-inner{flex-direction:column;height:100%;display:flex}.badge{border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink-2);white-space:nowrap;align-items:center;gap:4px;padding:3px 9px;font-size:.75rem;font-weight:700;display:inline-flex}.badge-ok{background:var(--surface);color:var(--ok)}@media (width<=1180px) and (width>=960px){.workspace{grid-template-columns:minmax(350px,42fr) minmax(0,58fr);gap:16px;padding:0 16px 16px}.read-scroll{padding:28px}.stepper li+li:before{width:4px;margin-right:4px}.stepper ol{gap:4px}.step{width:34px;height:34px}}@media (width>=960px) and (height<=760px){.read-scroll{padding-top:26px}.exp-head{padding-top:10px;padding-bottom:8px}.exp-dock{gap:10px;padding-top:12px;padding-bottom:14px}.readout{padding:8px 14px 10px}.readout-value{font-size:1.5rem}}@media (width<=959px){.stepper{flex:1 0 100%;order:3;padding:4px}.stepper ol{justify-content:space-between;gap:2px}.stepper li{flex:1;justify-content:flex-end}.stepper li:first-child{flex:none}.stepper li+li:before{flex:1;width:auto;margin:0 4px}.step{width:34px;height:34px}.workspace{grid-template-columns:minmax(0,1fr);gap:14px;padding:14px 12px 18px}.read{overflow:visible}.read-scroll{padding:28px 24px 26px;overflow:visible}.read-foot{z-index:10;border-radius:0 0 var(--r-xl) var(--r-xl);-webkit-backdrop-filter:blur(8px);position:sticky;bottom:0;box-shadow:0 -10px 24px -18px #171a2f73}.btn.jump-exp,.icon-btn.jump-read{display:inline-flex}.exp{scroll-margin-top:126px}.exp-stage{aspect-ratio:15/8;flex:none;min-height:200px}.exp-stage[data-scene=grid]{aspect-ratio:20/11}.exp[data-kind=relationship] .exp-stage{aspect-ratio:4/3}.exp-stage[data-scene=lab]{aspect-ratio:2}.exp[data-kind=assessment] .quiz{overflow:visible}.tutor{z-index:40;width:auto;height:min(78dvh,640px);box-shadow:var(--shadow-3);position:fixed;inset:auto 8px 8px}#scene-title{scroll-margin-top:136px}}@media (width<=640px){.hide-sm{display:none!important}.read-scroll{padding:24px 20px 22px}.read-head h1{font-size:2.05rem}.lead{font-size:1.12rem}.exp-head{padding:12px 12px 10px 16px}.exp-badge{display:none}.exp-stage{border-radius:18px;margin:0 8px}.exp-dock{padding:14px 14px 16px}.readout-value{font-size:1.5rem}.qslider{min-width:0}.dock-row-sliders{grid-template-columns:minmax(0,1fr)}.exp[data-kind=lift] .exp-stage{aspect-ratio:4/3}.exp[data-kind=relationship] .exp-stage{aspect-ratio:1/1.3;min-height:400px}.quiz,.summary{padding:8px 16px 20px}.qcard-prompt{font-size:1.25rem}}@media (width<=420px){.hide-xs{display:none!important}.stepper li+li:before{margin:0 2px}.step{width:30px;height:30px;font-size:var(--text-xs)}.btn{padding:0 16px}.btn-hold{flex:1;min-width:0}.read-foot{gap:8px;padding:12px}.read-foot .btn{padding:0 14px}.read-foot .btn-primary{min-width:0;padding:0 14px 0 18px}.dock-actions{flex:1}.segmented{width:100%}.segmented-opt{flex:1;justify-content:center}}.force-control{flex-direction:column;gap:8px;min-width:0;display:flex}.force-control .segmented{align-self:flex-start}.exp-dock .challenges li{font-size:var(--text-s);padding:8px 12px}.everyday-ask{flex-direction:column;gap:10px;display:flex}.everyday-title{font-size:1rem;line-height:1.45}.everyday-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.everyday-ask .checkpoint-feedback{margin-top:0}.dock-row>.readouts{flex:320px}@media (width>=960px){.exp-dock{overscroll-behavior:contain;scrollbar-gutter:stable;background:linear-gradient(var(--surface) 30%, #fff0) top / 100% 28px no-repeat local, linear-gradient(#fff0, var(--surface) 70%) bottom / 100% 28px no-repeat local, radial-gradient(farthest-side at 50% 0, #171a2f24, transparent) top / 100% 10px no-repeat scroll, radial-gradient(farthest-side at 50% 100%, #171a2f24, transparent) bottom / 100% 10px no-repeat scroll;flex:0 auto;min-height:0;overflow-y:auto}}.load-results{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.load-results li{border:1.5px dashed var(--line,#d8d5ea);font-size:var(--text-s,.92rem);color:var(--ink-2);border-radius:999px;align-items:baseline;gap:8px;padding:6px 12px;display:inline-flex}.load-results li[data-done]{background:var(--vel-soft);color:var(--ink);border-style:solid;border-color:#0000}.fma-table{border-collapse:collapse;width:100%;font-size:var(--text-s)}.fma-table th{text-align:left;color:var(--ink-2);border-bottom:1.5px solid var(--line-2);padding:6px 8px;font-weight:700}.fma-table td{border-bottom:1px solid var(--line);padding:6px 8px;font-weight:650}.fma-table tr[data-target] td{background:var(--ok-soft)}.reaction-choices{gap:8px;display:grid}.reaction-choices .checkpoint-opt{text-align:left;min-height:46px}.force-sort{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.force-sort li{border-radius:var(--r-m);background:var(--surface-2,#f6f5fb);border-left:5px solid var(--pair);grid-template-columns:auto 1fr;align-items:center;gap:6px 10px;padding:10px 12px;display:grid}.force-sort-num{border:2.5px solid var(--pair);width:26px;height:26px;color:var(--pair);border-radius:50%;place-items:center;font-size:.85rem;font-weight:800;display:grid}.force-sort-label{font-weight:600;line-height:1.35}.force-sort-choices{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.force-sort-choices .checkpoint-opt{justify-content:center;align-items:center;gap:6px;min-height:40px;padding:6px 10px;font-size:.92rem;display:inline-flex}@media (width>=1200px){.force-sort li{grid-template-columns:auto 1fr minmax(300px,auto)}.force-sort-choices{grid-column:auto}}.sort-why{font-size:var(--text-s);color:var(--ink-2);align-items:flex-start;gap:6px;margin-top:4px;font-weight:500;display:flex}.sort-why[data-correct=true]{color:#14523a}.sort-why svg{flex:none;margin-top:3px}.cond-row{flex-wrap:wrap;gap:8px;margin:0;display:flex}.cond-chip{font-size:var(--text-s);background:var(--ok-soft);color:#14523a;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-weight:700;display:inline-flex}.cond-chip[data-ok=false]{color:#8a2340;background:#fde8ec}.joule-scale{gap:8px;margin:0;padding:0;list-style:none;display:grid}.joule-scale li{font-size:var(--text-s);grid-template-columns:1fr auto;align-items:center;gap:4px 12px;display:grid}.joule-scale .bar{background:var(--work);opacity:.75;border-radius:4px;grid-column:1/-1;min-width:6px;height:8px}.real-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.real-choices .checkpoint-opt{text-align:center}.solution-card{color:#29283a;background:#fff;border:2px solid #d9d4ee;border-radius:14px;padding:10px 12px 8px}.solution-card[data-place=stage]{z-index:1;width:232px;position:absolute;top:14px;right:14px}.solution-card[data-place=dock]{display:none}@media (width<=959px){.solution-card[data-place=stage]{display:none}.solution-card[data-place=dock]{display:block}}.solution-card-title{color:#3d3a6e;margin:0 0 6px;font-size:.95rem;font-weight:800}.solution-card ol{gap:2px;margin:0;padding:0;list-style:none;display:grid}.solution-card li{opacity:.4;border-radius:10px;align-items:center;gap:10px;padding:3px 6px;display:flex}.solution-card li[data-shown]{opacity:1}.solution-card li[data-current]{background:#efeafd}.solution-card-num{color:#fff;background:#c9c3dc;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:.75rem;font-weight:800;display:grid}.solution-card li[data-shown] .solution-card-num{background:#6a4bc9}.solution-card-step{color:#6b6884;font-size:.72rem;font-weight:700;display:block}.solution-card-line{font-size:.98rem;font-weight:700;display:block}:root{--sidebar-w:288px;--deoxy:#3b6fd4;--deoxy-soft:#e3ebfb;--oxy:#d23a3a;--oxy-soft:#fbe4e3;--bio-stage:#f6f4fb}.app[data-layout=sidebar]{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);transition:grid-template-columns .24s var(--ease,ease);display:grid}@media (width>=1100px){.app[data-layout=sidebar][data-sidebar=collapsed]{grid-template-columns:0 minmax(0,1fr)}}.app[data-layout=sidebar]>.sidebar{transition:opacity .18s,visibility linear;overflow:hidden}.app[data-layout=sidebar][data-sidebar=collapsed]>.sidebar{opacity:0;visibility:hidden;border-right-width:0;transition:opacity .18s,visibility 0s linear .24s}.app[data-layout=sidebar]>.sidebar>*{min-width:var(--sidebar-w)}.side-collapse-btn{color:var(--ink-2);background:0 0;border-color:#0000;margin-left:auto}.side-collapse-btn:hover:not(:disabled){background:var(--surface-3);border-color:#0000}.side-drawer .side-collapse-btn{display:none}@media (prefers-reduced-motion:reduce){.app[data-layout=sidebar],.app[data-layout=sidebar]>.sidebar{transition:none}}.app-main{flex-direction:column;min-width:0;min-height:0;display:flex}@media (width>=960px){.app[data-layout=sidebar] .app-main{height:100dvh;overflow:hidden}.app[data-layout=sidebar] .workspace{grid-template-columns:clamp(400px,40%,560px) minmax(0,1fr);padding:0 20px 20px}.app[data-layout=sidebar] .read-scroll{padding-inline:32px}}@media (width>=1820px){.app[data-layout=sidebar][data-tutor=open] .workspace{grid-template-columns:clamp(400px,32%,520px) minmax(0,1fr) minmax(330px,360px)}}@media (width<=1819px){.app[data-layout=sidebar] .tutor{z-index:40;width:min(390px,100vw - 40px);box-shadow:var(--shadow-3);position:fixed;top:84px;bottom:20px;right:20px}}@media (width<=1099px){.app[data-layout=sidebar]{grid-template-columns:minmax(0,1fr)}.app[data-layout=sidebar]>.sidebar{display:none}}@media (width>=1100px){.side-menu-btn{display:none!important}}@media (width<=1099px){.side-expand-btn{display:none!important}}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;height:100dvh;min-height:0;display:flex;position:sticky;top:0}.side-head{border-bottom:1px solid var(--line);flex-direction:column;gap:14px;padding:18px 18px 16px;display:flex}.side-brand{align-items:center;gap:10px;display:flex}.side-brand-name{font-family:var(--font-display);flex:1;margin:0;font-size:1.15rem;font-weight:700;line-height:1.1}.subject-select{position:relative}.subject-btn{border:1px solid var(--line-2);border-radius:var(--r-s);background:var(--surface-2);width:100%;color:var(--ink);text-align:left;grid-template-columns:1fr auto;grid-template-areas:"name chevron""note chevron";align-items:center;column-gap:8px;padding:9px 12px;display:grid}.subject-btn:hover{border-color:#b8b4e6}.subject-value{grid-area:name;font-weight:750}.subject-label{font-size:var(--text-xs);color:var(--ink-3);grid-area:note;font-weight:650}.subject-btn svg{grid-area:chevron}.subject-menu{z-index:30;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-s);box-shadow:var(--shadow-3);margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0}.subject-opt{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:9px;grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;padding:8px 10px;font-weight:700;display:grid}.subject-opt:hover:not(:disabled){background:var(--surface-3)}.subject-opt:disabled{color:var(--ink-3)}.subject-opt svg{color:var(--accent);grid-area:1/2/span 2}.subject-note{font-size:var(--text-xs);color:var(--ink-3);grid-column:1;font-weight:500}.side-progress-row{font-size:var(--text-xs);color:var(--ink-2);justify-content:space-between;font-weight:700;display:flex}.side-progress-bar{background:var(--surface-3);border-radius:99px;height:6px;margin:6px 0;overflow:hidden}.side-progress-bar span{border-radius:inherit;background:var(--accent);height:100%;transition:width var(--t-med) var(--ease);display:block}.side-progress-note{font-size:var(--text-xs);color:var(--ink-3);margin:0}.side-scroll{scrollbar-gutter:stable;flex:1;padding:6px 10px 24px;overflow-y:auto}.side-course{margin-top:14px}.side-course-title{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin:0 8px 6px;font-size:.72rem;font-weight:800}.side-chapters{margin:0;padding:0;list-style:none}.side-chapter-btn{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:26px 1fr auto;align-items:center;gap:6px;padding:7px 8px;font-size:.92rem;line-height:1.3;display:grid}.side-n{color:var(--ink-3);font-size:.76rem;font-weight:700}.side-chapter[data-state=locked] .side-chapter-btn{color:var(--ink-3);cursor:default}.side-chapter[data-state=locked] .side-chapter-btn:hover{background:var(--surface-2)}.side-group{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);margin:14px 10px 4px;font-size:.7rem;font-weight:800}.side-chapter[data-state=locked] .side-chapter-btn{padding-block:4px;font-size:.86rem}.side-chapter[data-state=locked] .side-n{opacity:.6}.side-chapter[data-state=open] .side-chapter-btn,.side-chapter[data-state=active] .side-chapter-btn{font-weight:750}.side-chapter[data-state=open] .side-chapter-btn:hover{background:var(--accent-soft)}.side-chapter[data-state=active]>.side-chapter-btn{background:var(--accent-soft);color:var(--accent-strong);box-shadow:inset 3px 0 0 var(--accent)}.side-chapter[data-state=active] .side-n,.side-chapter[data-state=open] .side-n{color:var(--accent)}.chapter-progress{background:var(--surface);min-width:34px;color:var(--accent-strong);text-align:center;border:1px solid #cfcbf3;border-radius:99px;padding:2px 7px;font-size:.72rem;font-weight:800}.side-soon{min-height:0;margin:0}.side-soon-pop{background:var(--ink);color:#fff;font-size:var(--text-xs);animation:fade-up .2s var(--ease);border-radius:9px;margin:6px 8px 0;padding:7px 10px;font-weight:700;display:block}.module-list{border-left:2px solid #e2dff7;margin:4px 0 10px 18px;padding:0 0 0 10px;list-style:none}.module-link{width:100%;color:var(--ink-2);text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:24px 1fr auto;align-items:center;gap:6px;padding:5px 8px;font-size:.86rem;line-height:1.3;display:grid}.module-link:hover{background:var(--surface-2);color:var(--ink)}.module-link[aria-current=step]{background:var(--surface-3);color:var(--ink);font-weight:750}.module-n{background:var(--surface-3);width:22px;height:22px;color:var(--ink-3);border-radius:7px;place-items:center;font-size:.7rem;font-weight:800;display:grid}.module-link[data-done] .module-n{background:var(--ok-soft);color:var(--ok)}.module-link[aria-current=step] .module-n{background:var(--accent);color:#fff}.module-locked{color:#9a9db5;cursor:default;grid-template-columns:24px 1fr auto;align-items:center;gap:6px;padding:5px 8px;font-size:.86rem;line-height:1.3;display:grid}.module-count{color:var(--ink-3);font-size:.7rem;font-weight:750}.side-foot{border-top:1px solid var(--line);color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 10px;padding:10px 18px 12px;font-size:.74rem;display:flex}.side-foot p{margin:0}.side-reset{align-items:center;gap:4px;font-size:.74rem;display:inline-flex}.module-upcoming-head{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:8px 8px 2px;font-size:.7rem;font-weight:800}.module-upcoming .module-n{background:0 0;border:0}.module-upcoming{color:var(--ink-3);grid-template-columns:24px 1fr;align-items:center;gap:6px;padding:4px 8px;font-size:.86rem;display:grid}.side-drawer{width:min(var(--sidebar-w), 88vw)}.side-drawer .drawer-inner{position:relative}.side-drawer-close{z-index:2;position:absolute;top:14px;right:10px}.lesson-header{flex-shrink:0;align-items:center;gap:16px;min-height:72px;padding:10px 24px;display:flex}.lesson-header-text{flex:1;min-width:0}.lesson-crumb{font-size:var(--text-xs);color:var(--ink-3);align-items:center;gap:8px;margin:0;font-weight:700;display:flex}.lesson-module{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:1.25rem;font-weight:650;overflow:hidden}.lesson-actions{align-items:center;gap:10px;display:flex}.lesson-header .stepper{flex-shrink:0}@media (width>=960px) and (width<=1280px){.lesson-crumb>span:last-child,.lesson-crumb .brand-chapter-sep{display:none}}@media (width<=959px){.lesson-header{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#f3f4f9eb;flex-wrap:wrap;row-gap:10px;padding:10px 14px;position:sticky;top:0}.lesson-module{font-size:1.05rem}}.objectives{border-radius:var(--r-s);background:var(--surface-2);border:1px solid var(--line);margin-top:16px;padding:12px 16px;font-size:.98rem;line-height:1.5}.objectives-title{font-family:inherit;line-height:1.4;font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 4px;font-weight:800}.objectives ul{margin:0;padding-left:1.1em}.kcheck{border-radius:var(--r-m);background:linear-gradient(#faf9ff,#fff);border:1px solid #dcd8f6;margin-top:8px;padding:16px}.kcheck-kicker{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);align-items:center;gap:6px;margin:0 0 6px;font-weight:800;display:flex}.kcheck-kicker .badge{text-transform:none;letter-spacing:0;margin-left:auto}.kcheck .qcard{box-shadow:none;background:0 0;border:0;padding:0}.qcard[data-compact] .qcard-prompt{font-size:1.02rem}.qcard[data-compact] .option{font-size:.95rem}.qcard-done{font-size:var(--text-s);color:var(--ok);align-items:center;gap:6px;margin:0 0 8px;font-weight:650;display:flex}.ar{gap:8px;margin:0 0 12px;display:grid}.ar div{border-radius:var(--r-s);background:var(--surface-2);border:1px solid var(--line);padding:10px 12px}.ar dt{font-size:var(--text-xs);color:var(--accent);font-weight:800}.ar dd{margin:2px 0 0}.ar-letter{color:var(--ink-2);font-weight:800}.order-q{gap:6px;display:grid}.order-end{font-size:var(--text-s);color:var(--ink-3);margin:0;font-weight:700}.order-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.order-list li{border:1px solid var(--line-2);border-radius:var(--r-s);background:var(--surface);grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:6px 6px 6px 10px;display:grid}.order-list li[data-state=right]{border-color:var(--ok-line);background:var(--ok-soft)}.order-list li[data-state=wrong]{background:var(--bad-soft);border-color:#efb4ac}.order-n{color:var(--ink-3);font-weight:800;font-size:var(--text-s)}.order-label{font-weight:650}.order-moves{gap:4px;display:flex}.order-moves .icon-btn{width:34px;height:34px}.label-q{gap:10px;display:grid}.label-picks{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.label-picks li{align-items:center;gap:8px;display:flex}.label-picks li[data-state=right] svg{color:var(--ok)}.label-picks li[data-state=wrong] svg{color:var(--bad)}.label-n{border:2px solid var(--ink);border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-weight:800;display:grid}.label-picks select{border:1px solid var(--line-2);background:var(--surface);min-width:0;min-height:40px;font:inherit;border-radius:10px;flex:1;padding:0 10px;font-size:.95rem}.steps-q{gap:8px;display:grid}.steps-done{font-size:var(--text-s);color:var(--ok);gap:6px;margin:0;font-weight:650;display:flex}.steps-prompt{margin-bottom:8px;font-weight:750}.explain-box{border-radius:var(--r-s);background:#f3f1ff;border:1px solid #d9d3fb;margin-top:10px;padding:12px 14px}.explain-title{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 4px;font-weight:800}.explain-box p:last-child{margin-bottom:0}.exp-stage[data-scene=bio]{background:var(--bio-stage)}.ill{flex-direction:column;width:100%;height:100%;min-height:0;display:flex;position:relative}.ill-svg{width:100%;height:100%;min-height:0;font-family:var(--font-body);touch-action:pan-y;-webkit-user-select:none;user-select:none;flex:1;display:block}.ill[data-zoomed] .ill-svg{touch-action:none;cursor:grab}.ill[data-zoomed] .ill-svg:active{cursor:grabbing}.ill-layer{transition:opacity .35s}.ill-veil{fill:var(--stage-bg,var(--bio-stage));opacity:.45;pointer-events:none}.ill-overlay{pointer-events:none}.ill-leader{stroke:#23263f}.ill-leader-halo{stroke:#ffffffd9}.ill-label-text{fill:#23263f;paint-order:stroke;stroke:var(--stage-bg,var(--bio-stage));stroke-linejoin:round;font-weight:700}.ill-label-note{fill:#5d6079;font-weight:500}.ill-label[data-state] .ill-leader{stroke:var(--accent-strong)}.ill-label[data-state] .ill-label-text{fill:var(--accent-strong);font-weight:800}.ill-svg[data-clickable] .ill-label-text{cursor:pointer}.ill-hotspot{outline:none}.ill-svg[data-clickable] .ill-hotspot{cursor:pointer}.ill-hit{fill:#0000}.ill-pin{fill:#fff;stroke:var(--accent);transition:r .15s}.ill-hotspot:hover .ill-pin,.ill-hotspot:focus-visible .ill-pin{fill:var(--accent-soft);stroke:var(--accent-strong)}.ill-hotspot[data-state=hot] .ill-pin{fill:#ffd84d;stroke:#23263f}.ill-hotspot[data-state=selected] .ill-pin{fill:var(--accent);stroke:#fff}.ill-hotspot:focus-visible .ill-hit{fill:#4338ca24;stroke:var(--focus)}.ill-pin-ring{fill:none;stroke:var(--accent);opacity:.7;transform-box:fill-box;transform-origin:50%;animation:1.6s ease-out infinite ill-ring}@keyframes ill-ring{0%{opacity:.9;transform:scale(.7)}to{opacity:0;transform:scale(1.9)}}.ill-marker circle{fill:#fff;stroke:#23263f}.ill-marker[data-state=right] circle{fill:#e3f5ec;stroke:#1d6f47}.ill-marker[data-state=wrong] circle{fill:#fde6e2;stroke:#b2413a}.ill-marker text{fill:#23263f;font-weight:800}.ill-tools{border:1px solid var(--line);box-shadow:var(--shadow-1);background:#ffffffeb;border-radius:12px;gap:4px;padding:4px;display:flex;position:absolute;bottom:10px;right:10px}.ill-tools .tool-btn{width:34px;height:34px}.ill-tools .tool-btn:disabled{opacity:.35;cursor:default}.ill-credit{color:var(--ink-3);background:#ffffffd9;border-radius:6px;margin:0;padding:2px 8px;font-size:.7rem;position:absolute;bottom:8px;left:10px}.ill-credit a{color:inherit}.ill-note{fill:#5d6079;paint-order:stroke;stroke:var(--bio-stage);stroke-linejoin:round;font-weight:750}.ill-badge-bg{fill:#1f2340;opacity:.88}.ill-badge{fill:#fff;font-weight:750}.ill-callout{fill:#1f2340;paint-order:stroke;stroke:var(--bio-stage);stroke-linejoin:round;font-weight:750}@media (prefers-reduced-motion:reduce){.ill-layer{transition:none}.ill-pin-ring{opacity:.6;animation:none}}.tool-btn{width:38px;height:38px;color:var(--ink);background:0 0;border:0;border-radius:10px;place-items:center;display:grid}.tool-btn:hover:not(:disabled){background:var(--surface-3)}.subject-switch{background:var(--accent-soft);color:var(--accent-strong);font-size:var(--text-xs);border:1px solid #cfcbf3;border-radius:99px;align-items:center;gap:6px;margin-top:10px;padding:6px 12px;font-weight:750;display:inline-flex}.subject-switch-new{background:var(--accent);color:#fff;border-radius:99px;padding:1px 6px;font-size:.68rem}.tutor-focus{font-size:var(--text-xs);color:var(--ink-3);margin:0;padding:8px 16px 0}@media (width<=959px){.exp-stage[data-scene=bio]{aspect-ratio:1;max-height:78vh}.exp-stage.section-stage{aspect-ratio:auto;max-height:none}.section-stage .section-figure .ill{flex:none;height:clamp(240px,70vw,420px)}.section-stage .section-figure[data-tall] .ill{height:clamp(320px,108vw,640px)}}.app[data-layout=sidebar] .read-head h1{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;font-size:clamp(1.6rem,2vw,2.05rem);line-height:1.12}@media (width<=959px){.lesson-crumb{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.lesson-crumb>span:first-child,.lesson-crumb .brand-chapter-sep{display:none}}.section-guide{grid-template-columns:minmax(0,1fr);gap:14px;margin:4px 0 18px;display:grid}.mode-switch{background:var(--surface-3);border:1px solid var(--line);border-radius:999px;justify-self:start;padding:3px;display:inline-flex}.mode-switch button{min-height:36px;color:var(--ink-2);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:0 16px;font-size:.92rem;font-weight:650;display:inline-flex}.mode-switch button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}.mode-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.narrator{background:var(--surface);border:1px solid var(--line);min-width:0;box-shadow:var(--shadow-1);border-radius:18px;grid-template-columns:minmax(0,1fr);gap:10px;padding:14px 14px 12px;display:grid}.narrator-kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:0;font-size:.78rem;font-weight:700}.narrator-text{min-height:4.8em;color:var(--ink);animation:narrator-in .35s var(--ease,ease) both;margin:0;font-size:1.06rem;line-height:1.55}@keyframes narrator-in{0%{opacity:0;transform:translateY(4px)}}.narrator-timer{background:var(--surface-3);border-radius:3px;height:3px;overflow:hidden}.narrator-timer span{background:var(--oxy);transform-origin:0;height:100%;display:block}.beat-dots{flex-wrap:wrap;gap:0;margin:0;padding:0;list-style:none;display:flex}.beat-dot{cursor:pointer;background:0 0;border:0;width:22px;height:26px;position:relative}.beat-dot:after{content:"";background:var(--line-2);border-radius:50%;transition:transform .2s,background .2s;position:absolute;inset:9px 7px}.beat-dot[data-state=seen]:after{background:#e7a7a7}.beat-dot[data-state=current]:after{background:var(--oxy);transform:scale(1.35)}.beat-dot:focus-visible{outline:2px solid var(--accent);border-radius:8px}.narrator-controls{align-items:center;gap:6px;display:flex}.narrator-controls .btn{white-space:nowrap;flex:1;justify-content:center;min-width:0;padding-inline:10px}.narrator-end{color:var(--ink-2);margin:2px 0 0;font-size:.92rem}.teacher{background:linear-gradient(180deg, var(--lavender) 0, var(--surface) 92px);border:1px solid var(--line);min-width:0;box-shadow:var(--shadow-1);border-radius:18px;grid-template-columns:minmax(0,1fr);gap:12px;padding:14px 14px 12px;display:grid}.teacher-head{align-items:center;gap:12px;display:flex}.teacher-avatar{width:48px;height:48px;box-shadow:0 0 0 3px var(--surface), 0 2px 8px #171a2f26;border-radius:50%;flex-shrink:0;position:relative}.teacher-avatar svg{border-radius:50%;width:100%;height:100%;display:block}.teacher-avatar:after{content:"";border:2px solid var(--accent);opacity:0;border-radius:50%;position:absolute;inset:-6px}.teacher-avatar[data-speaking]:after{animation:teacher-ring 1.6s var(--ease) infinite}.teacher-avatar[data-speaking] .teacher-mouth{transform-origin:24px 29.8px;animation:.32s ease-in-out infinite alternate teacher-talk}@keyframes teacher-ring{0%{opacity:.55;transform:scale(.94)}to{opacity:0;transform:scale(1.12)}}@keyframes teacher-talk{to{transform:scaleY(2.2)}}@media (prefers-reduced-motion:reduce){.teacher-avatar[data-speaking]:after,.teacher-avatar[data-speaking] .teacher-mouth{animation:none}.teacher-avatar[data-speaking]:after{opacity:.6}}.teacher-who{flex:1;min-width:0}.teacher-name{font-family:var(--font-display);color:var(--ink);margin:0;font-size:1.12rem;font-weight:700;line-height:1.2}.teacher-status{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin:1px 0 0;font-size:.82rem;font-weight:650}.teacher[data-state=waiting] .teacher-status,.teacher-strip[data-state=waiting] .teacher-status{color:var(--hint)}.teacher-voice[aria-pressed=false]{color:var(--ink-3)}.teacher-speed{position:relative}.teacher-speed-btn{font-variant-numeric:tabular-nums;width:auto;min-width:46px;padding:0 8px;font-size:.86rem;font-weight:700}.teacher-speed-btn[data-changed]{color:var(--accent);border-color:var(--accent);background:var(--lavender)}.teacher-speed-menu{z-index:30;background:var(--surface);border:1px solid var(--line);min-width:132px;box-shadow:var(--shadow-3);animation:narrator-in .15s var(--ease,ease) both;border-radius:12px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.teacher-speed-menu button{min-height:36px;font:inherit;font-variant-numeric:tabular-nums;color:var(--ink);text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:0 10px;font-size:.92rem;display:flex}.teacher-speed-normal{color:var(--ink-3);margin-left:2px;font-weight:500}.teacher-speed-menu button svg{visibility:hidden;color:var(--accent)}.teacher-speed-menu button[aria-checked=true]{font-weight:700}.teacher-speed-menu button[aria-checked=true] svg{visibility:visible}.teacher-speed-menu button:hover,.teacher-speed-menu button:focus-visible{background:var(--surface-2);outline:none}.teacher-intro{gap:12px;display:grid}.teacher-intro p{color:var(--ink-2);margin:0;font-size:1.02rem;line-height:1.5}.teacher-intro .btn{justify-self:start}.teacher-caption{min-height:4.65em;color:var(--ink);animation:narrator-in .35s var(--ease,ease) both;margin:0;font-size:1.12rem;line-height:1.55}.teacher-task{background:var(--hint-soft);border-left:4px solid var(--hint-line);border-radius:12px;justify-items:start;gap:8px;padding:10px 12px;display:grid}.teacher-task[data-done]{background:var(--ok-soft);border-left-color:var(--ok-line)}.teacher-task[data-done] .narrator-task svg{color:var(--ok)}.teacher-progress{gap:3px;display:flex}.teacher-progress span{background:var(--surface-3);border-radius:4px;flex:1;height:4px;overflow:hidden}.teacher-progress span[data-state=said]{background:var(--accent);opacity:.55}.teacher-progress i{background:var(--accent);transform-origin:0;height:100%;transition:transform .12s linear;display:block}.teacher-line{margin:-4px 0 0}.explore-list{gap:10px;display:grid}.explore-prompt{margin:0;line-height:1.5}.explore-chips{flex-wrap:wrap;gap:8px;display:flex}.explore-chip{border:1px solid var(--line-2);background:var(--surface);min-height:38px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:0 14px;font-size:.93rem;font-weight:600}.explore-chip[data-seen]{background:var(--oxy-soft);border-color:#e3b1b1}.explore-chip[aria-pressed=true]{border-color:var(--oxy);background:var(--oxy);color:#fff}.explore-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.exp-stage.section-stage{--stage-bg:var(--bio-stage);background:var(--stage-bg);flex-direction:column;display:flex}.exp-stage.section-stage[data-backdrop=water]{--stage-bg:#e7f2f8;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='180' viewBox='0 0 220 180'%3E%3Cg fill='none' stroke='%23bcd9e8' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M18 34q8-4 16 0t16 0'/%3E%3Cpath d='M132 22q8-4 16 0t16 0'/%3E%3Cpath d='M86 96q8-4 16 0t16 0'/%3E%3Cpath d='M170 128q8-4 16 0t16 0'/%3E%3Cpath d='M28 150q8-4 16 0t16 0'/%3E%3C/g%3E%3C/svg%3E") 0 0/220px 180px,radial-gradient(at 50% 42%,#eef7fb 0%,#e7f2f8 55%,#ddedf5 100%)}.section-diagram{flex:1;min-height:0;display:flex;position:relative}.section-figure{flex-direction:column;flex:1;min-width:0;min-height:0;padding:10px 10px 8px;display:flex}.section-figure .ill{flex:1;min-height:220px}.fig-legend{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px 16px;padding:6px 8px 2px;font-size:.84rem;display:flex}.fig-legend .key{align-items:center;gap:6px;display:inline-flex}.key-dot,.key-swatch,.key-line{flex-shrink:0;display:inline-block}.key-dot{border-radius:50%;width:9px;height:9px}.key-swatch{border:1px solid #0000001f;border-radius:4px;width:14px;height:14px}.key-line{border-radius:3px;width:22px;height:6px}.key-o2{background:#d23a3a}.key-nutrient{background:#e0a816}.key-co2{background:#7a5aa8}.key-ok{background:#f3c0cb}.key-low{background:#c3cde0}.key-oxy{background:var(--oxy)}.key-deoxy{background:var(--deoxy)}.fig-readout{font-variant-numeric:tabular-nums;color:var(--ink);margin-left:auto}.fig-caption{fill:var(--ink-2);font-weight:600}.blend-multiply{mix-blend-mode:multiply}.tint-ok{fill:#ef7f98}.tint-low{fill:#8a9fc6}.dot-o2{fill:#d23a3a;stroke:#fff;stroke-width:1px}.dot-flow{fill:#f6c4ca;stroke:#9b2232}.dot-water{fill:#5e9fc7;opacity:.75}.dot-nutrient{fill:#e0a816}.dot-co2{fill:#7a5aa8}.dot-sinus{fill:#d49a14;stroke:#fff;stroke-width:1.1px}.dot-vessel-open{fill:#f6d6df;stroke:#6b2a3e;stroke-width:1.2px}.dot-vessel-closed{fill:#ffd9da;stroke:#8e1c24;stroke-width:1.2px}.key-sinus{background:#d49a14}.key-in-vessel{background:#c8323a}.vessel-cut{fill:var(--bio-stage);stroke:#7f1c22;stroke-width:1.5px;stroke-dasharray:3 2}.blood-puddle{fill:#c0272f;opacity:.75}.dot-spill{fill:#d23a3a}.dot-blood{stroke:#ffffffd9;stroke-width:1.2px}.heart-squeeze{fill:#7d1a20;fill-opacity:.18;stroke:#5c1217}.circuit-glow path{stroke:#f5c542;stroke-opacity:.3}.circuit-veil path,.circuit-veil rect{stroke:var(--stage-bg,var(--bio-stage));stroke-opacity:.74}.circuit-veil .fill{fill:var(--stage-bg,var(--bio-stage));fill-opacity:.66;stroke-width:6px}.tracer-ring{fill:#fff4c2;fill-opacity:.55;stroke:#f0a500;stroke-width:3px}.tracer-halo{fill:#ffd84a;fill-opacity:.22}.pass-badge circle{fill:#fff;stroke:#c9c3dc;stroke-width:2px}.pass-badge text{fill:var(--ink-3);font-weight:800}.pass-badge[data-on] circle{fill:#ffcb2f;stroke:#fff;stroke-width:2.6px;filter:drop-shadow(0 1px 2px #3c280059)}.pass-badge[data-on] text{fill:#3d2a00}.mix-readout{align-items:center;gap:6px;display:inline-flex}.mix-bar{background:var(--deoxy);border-radius:999px;width:64px;height:8px;display:inline-block;overflow:hidden}.mix-bar>span{background:var(--oxy);height:100%;transition:width .4s;display:block}.join-ring{fill:none;stroke:#ffcb2f;stroke-width:3px;stroke-dasharray:4 3}.hearts-caption{fill:var(--ink);font-weight:700}.animal-tabs{border-radius:18px;flex-wrap:wrap;max-width:100%}.animal-tabs button{padding:0 11px}.stage-tabs{flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px 0;display:flex}.tabs{background:#171a2f0f;border-radius:999px;gap:2px;padding:3px;display:inline-flex}.tabs button{min-height:30px;color:var(--ink-2);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:5px;padding:0 14px;font-size:.86rem;font-weight:650;display:inline-flex}.tabs button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}.tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.stage-toolbar-actions{gap:6px;margin-left:auto;display:inline-flex}.focus-bar{background:#fff8e1;border:1px solid #f3dfa0;border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 12px 10px;padding:8px 10px 8px 14px;display:flex}.focus-bar-kicker{color:var(--ink-2);background:#171a2f12;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:700}.focus-bar-text{flex:1;align-items:flex-start;gap:8px;min-width:12em;margin:0;font-size:.98rem;font-weight:600;line-height:1.4;display:flex}.focus-bar-text svg{color:var(--accent);flex-shrink:0;margin-top:2px}.focus-bar-text svg.ok{color:var(--ok)}.focus-bar-check{margin-left:auto}.teacher-strip{background:linear-gradient(90deg, var(--lavender), var(--surface) 360px);border:1px solid var(--line);box-shadow:var(--shadow-1);border-radius:16px;grid-template-columns:auto auto minmax(0,1fr) auto auto;grid-template-areas:"avatar who text controls settings""avatar progress progress progress progress";align-items:center;gap:8px 14px;margin:0 12px 10px;padding:10px 12px;display:grid}.teacher-strip:has(.teacher-strip-extra){grid-template-columns:auto auto minmax(0,1fr) auto auto auto;grid-template-areas:"avatar who text controls settings extra""avatar progress progress progress progress progress"}.teacher-strip .teacher-avatar{grid-area:avatar;align-self:start;width:44px;height:44px}.teacher-strip .teacher-who{border-right:1px solid var(--line);flex:none;grid-area:who;padding-right:14px}.teacher-strip .teacher-name{font-size:1rem}.teacher-strip .teacher-status{white-space:nowrap;font-size:.72rem}.teacher-strip-text{grid-area:text;min-width:0}.teacher-strip-line{color:var(--ink);animation:narrator-in .35s var(--ease,ease) both;margin:0;font-size:1.02rem;line-height:1.45}.teacher-strip-task{background:var(--hint-soft);border-left:4px solid var(--hint-line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:6px 8px 6px 12px;display:flex}.teacher-strip-task .narrator-task{flex:1;min-width:12em;font-size:1rem}.task-slot:empty{display:none}.task-slot .fig-controls{gap:8px}.task-slot .choice-row,.task-slot .choice-row[data-target]{box-shadow:none;border:0;padding:0}.task-slot .choice-q{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.teacher-strip-task .task-slot{flex:0 auto}.task-slot .ctl-slider{max-width:100%}.task-slot .ctl-slider span{white-space:nowrap}.task-slot .ctl-slider input{flex:auto;min-width:80px}.teacher-strip-goals{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:8px 12px;font-size:.92rem;line-height:1.45}.teacher-strip-goals ul{margin:0;padding-left:1.1em}.teacher-strip-more{grid-column:1/-1}.teacher-goals-btn[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--lavender)}.teacher-strip-foot{display:contents}.teacher-strip-controls,.teacher-strip-settings{align-items:center;gap:6px;display:flex}.teacher-strip-controls{grid-area:controls}.teacher-strip-settings{grid-area:settings}.teacher-strip .teacher-main{background:var(--accent);border-color:var(--accent);color:#fff}.teacher-strip .teacher-main:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff;filter:brightness(1.1)}.teacher-strip .teacher-progress{grid-area:progress}.teacher-strip .teacher-progress span{height:3px}.teacher-strip-extra{grid-area:extra}@media (width<=720px){:is(.teacher-strip,.teacher-strip:has(.teacher-strip-extra)){background:linear-gradient(180deg, var(--lavender), var(--surface) 64px);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"avatar who settings""text text text""foot foot foot""extra extra extra";gap:8px 10px;margin:0 8px 8px;padding:8px 10px}.teacher-strip .teacher-avatar{align-self:center;width:38px;height:38px}.teacher-strip .teacher-who{border-right:0;padding-right:0}.teacher-strip .teacher-name{font-size:.95rem}.teacher-strip .teacher-who{min-width:0}.teacher-strip .teacher-status{letter-spacing:.02em;text-overflow:ellipsis;margin:0;overflow:hidden}.teacher-strip-foot{grid-area:foot;align-items:center;gap:12px;display:flex}.teacher-strip-foot .teacher-progress{flex:1}.teacher-strip-controls,.teacher-strip-settings{gap:4px}.teacher-strip-controls .icon-btn,.teacher-strip-settings .icon-btn{width:36px;height:36px}.teacher-strip-settings .teacher-speed-btn{width:auto;min-width:42px;padding:0 6px}.teacher-strip-line{font-size:.98rem;line-height:1.4}.teacher-strip-task{flex-wrap:nowrap;padding:6px 6px 6px 10px}.teacher-strip-task:has(.task-slot:not(:empty)){flex-wrap:wrap;row-gap:6px}:is(.teacher-strip-task:has(.task-slot .ctl-slider,.task-slot .choice-row) .narrator-task,.teacher-strip-task:has(.task-slot .ctl-slider,.task-slot .choice-row) .task-slot){flex-basis:100%}.teacher-strip-task .task-slot .ctl-slider{width:100%}.teacher-strip-task .task-slot .ctl-pill,.teacher-strip-task .task-slot .ctl-slider{min-height:34px;font-size:.86rem}.teacher-strip-task .task-slot .ctl-pill{padding-inline:12px}.teacher-strip-task .task-slot .choice-hint{font-size:.82rem}.teacher-strip-task .narrator-task{min-width:0;font-size:.95rem}.teacher-strip-task .btn{flex-shrink:0;padding-inline:10px}.teacher-strip-goals{font-size:.88rem;line-height:1.4}.teacher-strip:has(.teacher-strip-extra){grid-template-areas:"avatar who settings""text text text""foot foot extra"}.teacher-strip:has(.teacher-strip-extra) .teacher-progress{display:none}.teacher-strip-extra{justify-self:end}}@media (width<=400px){.teacher-strip-extra .btn{padding-inline:12px}.teacher-strip-extra .btn svg:last-child{display:none}}.exp[data-expanded] .section-stage .section-figure .ill{flex:auto;height:auto;min-height:200px}.narrator-task{color:var(--ink);align-items:flex-start;gap:8px;margin:0;font-size:1.06rem;font-weight:650;line-height:1.45;display:flex}.narrator-task svg{color:var(--accent);flex-shrink:0;margin-top:3px}.narrator[data-task=done] .narrator-task{color:var(--ink-3);font-size:.92rem;font-weight:600}.narrator[data-task=done] .narrator-task svg{color:var(--ok)}.narrator[data-task] .narrator-text{background:#fff8e1;border-left:4px solid #f2c94c;border-radius:12px;min-height:0;padding:10px 12px}.narrator-all-done{min-height:44px;color:var(--ok);flex:1;justify-content:center;align-items:center;gap:6px;font-weight:700;display:inline-flex}.beat-dot:disabled{cursor:default;opacity:.5}.fig-dock{flex-wrap:wrap;align-items:center;gap:8px 16px;padding:8px 4px 2px;display:flex}.fig-dock .fig-legend{gap:4px 12px;margin-left:auto;padding:0;font-size:.8rem}.fig-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ctl-pill{border:1px solid var(--line-2);background:var(--surface);min-height:36px;box-shadow:var(--shadow-1);color:var(--ink);font:inherit;white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:0 14px 0 12px;font-size:.88rem;font-weight:650;transition:background .15s,border-color .15s;display:inline-flex}.ctl-pill:hover{border-color:#b8b4e6}.ctl-pill[aria-pressed=true]{color:#155d3b;background:#ecf8f1;border-color:#9fd3b6}.ctl-pill:focus-visible,.ctl-slider input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ctl-pill .beating{color:var(--oxy);animation:.9s ease-in-out infinite heartbeat}@keyframes heartbeat{0%,40%,to{transform:scale(1)}15%{transform:scale(1.25)}}.ctl-note{background:var(--surface-3);color:var(--ink-3);border-radius:999px;padding:1px 7px;font-size:.76rem;font-weight:650}.ctl-slider{border:1px solid var(--line-2);background:var(--surface);min-height:36px;box-shadow:var(--shadow-1);border-radius:999px;align-items:center;gap:10px;padding:0 14px;font-size:.88rem;font-weight:650;display:inline-flex}.ctl-slider input{width:clamp(100px,14vw,180px);accent-color:var(--accent)}.ctl-slider output{min-width:4.2em;color:var(--ink-2);font-weight:600}.ctl-pill[data-target],.ctl-slider[data-target]{border-color:var(--accent);animation:1.6s ease-in-out infinite ctl-invite;box-shadow:0 0 0 4px #5b3fd024}@keyframes ctl-invite{50%{box-shadow:0 0 0 7px #5b3fd00f}}.choice-row{border:1px solid #0000;border-radius:999px;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:4px 6px 4px 12px;display:inline-flex}.choice-row[data-target]{border-color:var(--accent);box-shadow:0 0 0 4px #5b3fd01f}.choice-q{color:var(--ink-2);font-size:.86rem;font-weight:700}.choice-hint{color:#b42318;flex-basis:100%;margin:2px 4px 0;font-size:.86rem;font-weight:600}.sort-board{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);border-radius:16px;margin:8px 4px 0;padding:10px}.sort-board[data-target]{border-color:#c9c3f5;box-shadow:0 0 0 4px #5b3fd01a}.sort-head{color:var(--ink-3);justify-content:space-between;align-items:center;gap:8px;margin:0 2px 8px;font-size:.8rem;font-weight:650;display:flex}.sort-count{background:var(--surface-3);color:var(--ink-2);border-radius:999px;padding:1px 8px}.sort-tray{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.sort-lanes{grid-template-columns:1fr 1fr;gap:8px;display:grid}.sort-lane{border:1.5px dashed var(--line-2);border-radius:12px;flex-direction:column;gap:6px;min-height:72px;padding:6px 8px 8px;transition:border-color .15s,background .15s;display:flex}.sort-lane[data-kind=open]{background:#fdf8ea}.sort-lane[data-kind=closed]{background:#fdf1f1}.sort-lane[data-ready]{border-color:var(--accent);cursor:pointer}.sort-lane-head{font:inherit;text-align:left;color:var(--ink);background:0 0;border:0;align-items:baseline;gap:6px;padding:0;font-size:.82rem;display:flex}.sort-lane-head:disabled{cursor:inherit;color:var(--ink)}.sort-lane-head span{color:var(--ink-3);font-size:.76rem}.sort-lane[data-kind=open] .sort-lane-head strong{color:#8a5a00}.sort-lane[data-kind=closed] .sort-lane-head strong{color:#9b1c24}.sort-lane[data-kind=incomplete]{background:#f5f0fb}.sort-lane[data-kind=complete]{background:#fdf1f1}.sort-lane[data-kind=incomplete] .sort-lane-head strong{color:#6b3fa0}.sort-lane[data-kind=complete] .sort-lane-head strong{color:#9b1c24}.sort-lane-head:focus-visible{outline:2px solid var(--accent);border-radius:6px}.sort-lane-chips{flex-wrap:wrap;gap:6px;display:flex}.sort-chip{border:1px solid var(--line-2);background:var(--surface);min-height:32px;box-shadow:var(--shadow-1);color:var(--ink);font:inherit;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:5px;padding:0 11px 0 8px;font-size:.84rem;font-weight:650;display:inline-flex}.sort-chip[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 3px #5b3fd02e}.sort-chip[data-dragging]{z-index:10;cursor:grabbing;box-shadow:var(--shadow-3);position:relative}.sort-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sort-grip{color:var(--ink-3)}.sort-tag{align-items:center;gap:3px;font-size:.74rem;font-weight:600;display:inline-flex}.sort-chip[data-state=right]{background:#ecf8f1;border-color:#9fd3b6}.sort-chip[data-state=right] .sort-tag{color:var(--ok)}.sort-chip[data-state=wrong]{background:#fff1ef;border-color:#f0b4ae;animation:.35s chip-nope}.sort-chip[data-state=wrong] .sort-tag{color:#b42318}@keyframes chip-nope{25%{transform:translate(-3px)}75%{transform:translate(3px)}}@media (prefers-reduced-motion:reduce){.ctl-pill .beating,.sort-chip[data-state=wrong]{animation:none}}.readout-bar{vertical-align:middle;background:#d9deea;border-radius:3px;width:64px;height:6px;margin-left:8px;display:inline-block;overflow:hidden}.readout-bar span{background:#e0607a;height:100%;transition:width .3s;display:block}.goal-compact{align-items:center;gap:10px;margin-top:16px;padding:9px 14px;display:flex}.goal-compact .goal-list{flex-flow:wrap;gap:6px 16px;margin:0;font-size:.92rem}.goal-compact .goal-list li{align-items:center;gap:7px}.goal-count-inline{color:var(--ink-3)}@media (prefers-reduced-motion:reduce){.ctl-pill[data-target],.ctl-slider[data-target]{animation:none}}.ill-card{z-index:6;position:absolute}.ill-card[data-place=below]{margin:8px 4px 0;position:static}.part-callout{background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow-3);border-left:4px solid #ffd84d;border-radius:14px;padding:12px 14px 10px;animation:.18s ease-out both callout-in;position:relative}@keyframes callout-in{0%{opacity:0;transform:translateY(4px)scale(.98)}}.ill-card[data-side] .part-callout:before{content:"";top:calc(var(--tail,30px) - 8px);background:var(--surface);border:1px solid var(--line-2);width:14px;height:14px;position:absolute;transform:rotate(45deg)}.ill-card[data-side=right] .part-callout:before{background:#ffd84d;border-color:#ffd84d;border-top-style:none;border-top-width:0;border-right-style:none;border-right-width:0;left:-9px}.ill-card[data-side=left] .part-callout:before{border-bottom:0;border-left:0;right:-8px}.ill-card[data-side=left] .part-callout{border-left-width:1px;border-right:4px solid #ffd84d}.part-callout header{justify-content:space-between;align-items:start;gap:8px;display:flex}.part-callout h3{font-family:var(--font-display);margin:0;font-size:1rem;line-height:1.3}.part-callout .icon-btn{border-color:#0000;width:30px;height:30px;margin:-4px -6px 0 0}.part-callout p{color:var(--ink-2);margin:6px 0 4px;font-size:.92rem;line-height:1.5}.part-callout .part-callout-more{color:var(--ink-3);margin-top:0}.part-callout-actions{flex-wrap:wrap;gap:4px;margin-left:-8px;display:flex}.part-callout-actions .btn{min-height:32px;font-size:.84rem}.showing-chip{z-index:5;border:1px solid var(--line-2);max-width:calc(100% - 24px);min-height:34px;box-shadow:var(--shadow-2);color:var(--ink);font:inherit;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:#fffffff2;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:.86rem;font-weight:650;display:inline-flex;position:absolute;top:10px;left:50%;overflow:hidden;transform:translate(-50%)}.showing-chip-label{color:var(--ink-3);font-weight:600}.showing-chip:hover{border-color:#b8b4e6}.showing-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pin-hint{z-index:4;color:#fff;white-space:nowrap;pointer-events:none;background:#23263f;border-radius:999px;align-items:center;gap:6px;margin:0;padding:6px 12px;font-size:.84rem;font-weight:600;animation:.3s ease-out .6s both callout-in;display:inline-flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}.section-diagram[data-inviting] .ill-hotspot .ill-pin{transform-box:fill-box;transform-origin:50%;animation:1.8s ease-in-out infinite pin-invite}@keyframes pin-invite{0%,to{transform:scale(1)}50%{transform:scale(1.35)}}.narrator-held{color:var(--ink-2);margin:0;font-size:.88rem}@media (prefers-reduced-motion:reduce){.part-callout,.pin-hint,.section-diagram[data-inviting] .ill-hotspot .ill-pin{animation:none}}.diagram-placeholder{text-align:center;color:var(--ink-3);border:2px dashed #c9c3df;border-radius:18px;flex:1;place-content:center;justify-items:center;gap:4px;margin:14px;padding:24px;display:grid}.diagram-placeholder p{margin:0}.diagram-placeholder-title{font-family:var(--font-display);color:var(--ink);font-size:1.15rem;font-weight:650}.diagram-placeholder-asset{font-size:.82rem}@media (prefers-reduced-motion:reduce){.narrator-text{animation:none}}.ill-pointer polyline{stroke:#ffc43d8c}.ill-pointer-halo{fill:#ffc43d47;animation:1.1s ease-in-out infinite alternate pointer-pulse}.ill-pointer-dot{fill:#ffc43d;stroke:#fff;stroke-width:2px;vector-effect:non-scaling-stroke}@keyframes pointer-pulse{to{opacity:.45}}.overview-btn{z-index:5;border:1px solid var(--line-2);min-height:34px;box-shadow:var(--shadow-2);color:var(--ink);font:inherit;cursor:pointer;background:#fffffff2;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:.86rem;font-weight:650;display:inline-flex;position:absolute;top:10px;right:10px}.overview-btn:hover{border-color:var(--accent)}.overview-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}:is(.read-scroll:has(.teacher) .lead,.read-scroll:has(.teacher) .goal){display:none}.read-scroll:has(.teacher) .read-head{margin-bottom:14px}.read-scroll:has(.teacher) .blocks{gap:18px}.exp-stage-only,.exp-kicker-step{display:none}@media (width<=959px){body:has(.workspace .teacher){overflow:hidden}.app-main:has(.workspace .teacher)>.lesson-header{display:none}.workspace:has(.teacher) .read-scroll{display:none}.workspace:has(.teacher) .exp .exp-expand{display:none}.workspace:has(.teacher) .exp .jump-read{display:none}.workspace:has(.teacher) .exp-kicker-default{display:none}.workspace:has(.teacher) .exp-badge{display:none}.workspace:has(.teacher) .read-foot .jump-exp{display:none}.workspace:has(.teacher) .exp-stage-only{display:inline-grid}.workspace:has(.teacher) .exp-kicker-step{display:block}.workspace:has(.teacher){--stage-foot:var(--read-foot-h,78px)}.workspace:has(.teacher) .read{box-shadow:none;background:0 0;border:0}.workspace:has(.teacher) .exp:not([data-expanded]){z-index:50;inset:0 0 var(--stage-foot) 0;box-shadow:none;padding-top:env(safe-area-inset-top);border:0;border-radius:0;position:fixed}.workspace:has(.teacher) .exp:not([data-expanded]) .exp-head{padding:8px 10px}.workspace:has(.teacher) .exp-title{gap:10px}.workspace:has(.teacher) .exp:not([data-expanded]) .exp-stage{aspect-ratio:auto;flex:auto;min-height:0;max-height:none;margin:0 8px 8px}.workspace:has(.teacher) .section-stage .section-figure{padding:6px 8px 4px}.workspace:has(.teacher) .section-stage .section-figure .ill{flex:auto;height:auto;min-height:110px}.workspace:has(.teacher) .section-stage .section-figure[data-tall] .ill{flex:auto;height:auto;min-height:110px}.workspace:has(.teacher) .fig-legend{font-size:.76rem}.workspace:has(.teacher) .section-figure:has(.sort-board)>:not(.sort-board){display:none}.workspace:has(.teacher) .section-figure:has(.sort-board) .sort-board{flex:auto;min-height:0;margin:0;overflow-y:auto}.workspace:has(.teacher) .read-foot{z-index:51;padding:10px 12px max(10px, env(safe-area-inset-bottom));border-radius:0;position:fixed;bottom:0;left:0;right:0}.workspace:has(.teacher) .read-foot .btn{min-height:46px}.workspace:has(.teacher) .tutor{z-index:70}}@media (width<=720px){.section-stage .fig-dock{gap:6px 10px;padding:6px 2px 0}.section-stage .fig-controls{gap:6px}.section-stage .ctl-pill,.section-stage .ctl-slider{min-height:34px;font-size:.86rem}.section-stage .ctl-slider{gap:8px;padding:0 12px}.section-stage .ctl-slider input{width:96px}.section-stage .ctl-slider output{min-width:0}.section-stage .fig-legend{white-space:nowrap;gap:2px 10px;padding:4px 4px 0;font-size:.72rem}.section-stage .fig-legend .key{gap:4px}.section-stage .readout-bar{width:36px;margin-left:6px}.sort-lanes{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px}.sort-lane{padding:6px}.sort-chip{flex-wrap:wrap;row-gap:0;max-width:100%;padding:2px 9px 2px 7px;font-size:.86rem}}@media (width<=420px){.section-stage .readout-bar{display:none}}.check-sheet{z-index:65;inset:0 0 var(--read-foot-h,78px) 0;flex-direction:column;justify-content:flex-end;display:flex;position:fixed}.check-sheet-backdrop{background:#171a2f52;animation:.2s ease-out both sheet-fade;position:absolute;inset:0}.check-sheet-panel{background:var(--surface);max-height:calc(100% - 56px);box-shadow:var(--shadow-3);animation:sheet-up .28s var(--ease,ease-out) both;border-radius:20px;margin:0 8px 8px;padding:4px;position:relative;overflow-y:auto}.check-sheet-panel .kcheck{border:0;margin:0}.check-sheet-close{z-index:1;position:absolute;top:10px;right:10px}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)}}@keyframes sheet-fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.check-sheet-backdrop,.check-sheet-panel{animation:none}}
