:root{--radius:12px;--radius-sm:8px;--gap:16px;--ease:cubic-bezier(.2, .8, .2, 1);--t-fast:.16s;--t-med:.38s;--t-slow:.7s}html[data-speed=fast]{--t-med:.2s;--t-slow:.33s}html[data-speed=slow]{--t-med:.6s;--t-slow:1.1s}html[data-motion=reduced]{--t-fast:1ms;--t-med:1ms;--t-slow:1ms}html[data-theme=lab]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#2c2e34;--bg-deep:#222327;--surface:#33353f;--surface-2:#363944;--surface-3:#3b3e48;--line:#414550;--line-strong:#5a5f6d;--text:#e2e2e3;--text-dim:#aeb2bb;--text-faint:#7f8490;--x:#76cce0;--o:#f39660;--x-soft:#76cce024;--o-soft:#f3966024;--x-strong:#9fe1f0;--o-strong:#ffb487;--accent:#b39df3;--accent-soft:#b39df329;--energy:#e7c664;--good:#9ed072;--bad:#fc5d7c;--empty:#7f8490;--slice-none:#6f7484;--board-bg:#26282e;--grid:#5b6070;--shadow:0 10px 30px #00000059;--shadow-sm:0 2px 10px #00000040;--glow-x:drop-shadow(0 0 6px #76cce08c);--glow-o:drop-shadow(0 0 6px #f396608c);--phase-s:72%;--phase-l:64%;--font-ui:"Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:"JetBrains Mono Variable", "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--font-mono:"JetBrains Mono Variable", "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--font-size:15px;--heading-transform:none;--page-bg:radial-gradient(1200px 600px at 80% -10%, #b39df31a, transparent 60%), radial-gradient(900px 500px at -10% 110%, #76cce014, transparent 60%), linear-gradient(#ffffff06 1px, transparent 1px) 0 0 / 28px 28px, linear-gradient(90deg, #ffffff06 1px, transparent 1px) 0 0 / 28px 28px, var(--bg)}html[data-theme=academia]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#efe6d2;--bg-deep:#e4d8bd;--surface:#f8f2e4;--surface-2:#f3ebd9;--surface-3:#ebe0c8;--line:#d6c6a4;--line-strong:#b8a47e;--text:#2d231a;--text-dim:#5b4c3c;--text-faint:#8a7a64;--x:#1f4e79;--o:#a4412c;--x-soft:#1f4e791a;--o-soft:#a4412c1a;--x-strong:#143a5c;--o-strong:#85321f;--accent:#6b4a8e;--accent-soft:#6b4a8e1f;--energy:#9a7424;--good:#4b7536;--bad:#9b2226;--empty:#9d8d73;--slice-none:#cdbd98;--board-bg:#f6efdf;--grid:#3b2f25;--shadow:0 10px 28px #4c371a29;--shadow-sm:0 2px 8px #4c371a1f;--glow-x:none;--glow-o:none;--phase-s:55%;--phase-l:40%;--font-ui:"EB Garamond Variable", "EB Garamond", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-display:"EB Garamond Variable", "EB Garamond", "Iowan Old Style", Palatino, Georgia, serif;--font-mono:"JetBrains Mono Variable", ui-monospace, Menlo, Consolas, monospace;--font-size:17px;--page-bg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.35  0 0 0 0 0.25  0 0 0 0 0.12  0 0 0 0.09 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E"), radial-gradient(1000px 700px at 50% 0%, #fffaebb3, transparent 70%), radial-gradient(1400px 900px at 50% 120%, #a0783c1f, transparent 70%), var(--bg)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{min-height:100vh;background:var(--page-bg);min-height:100dvh;color:var(--text);font-family:var(--font-ui);font-size:var(--font-size);-webkit-font-smoothing:antialiased;transition:background-color var(--t-med), color var(--t-med);background-attachment:fixed;margin:0;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0 0 .5em;font-weight:650;line-height:1.2}html[data-theme=academia] h1,html[data-theme=academia] h2,html[data-theme=academia] h3{letter-spacing:0;font-weight:600}h2{font-size:1.45rem}h3{font-size:1.1rem}h4{color:var(--text-dim);margin-top:1.2em;font-size:.95rem}p{margin:0 0 .75em}a{color:var(--accent);text-underline-offset:3px}a:hover{color:var(--text)}code,kbd,pre{font-family:var(--font-mono);font-size:.86em}kbd{border:1px solid var(--line-strong);background:var(--surface-2);color:var(--text-dim);border-bottom-width:2px;border-radius:5px;margin-left:.25em;padding:0 .4em;font-size:.75em;line-height:1.6;display:inline-block}pre.math{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);white-space:pre;padding:10px 12px;overflow-x:auto}.muted{color:var(--text-dim)}.dim{color:var(--text-faint)}.small{font-size:.86em}.good{color:var(--good)}.warn-text{color:var(--energy)}.row{align-items:center;display:flex}.row.gap,.gap{flex-wrap:wrap;gap:8px}.icon{vertical-align:-.2em;flex:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.btn{border:1px solid var(--line-strong);background:var(--surface-2);min-height:38px;color:var(--text);font:inherit;cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);-webkit-tap-highlight-color:transparent;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-weight:560;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3);border-color:var(--text-faint)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--bg-deep);box-shadow:0 4px 16px var(--accent-soft)}html[data-theme=academia] .btn.primary{color:#fbf6ea}.btn.primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}.btn.ghost{color:var(--text-dim);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:var(--line)}.btn.small{border-radius:8px;min-height:30px;padding:4px 10px;font-size:.88em}.btn.big{min-height:46px;padding:11px 20px;font-size:1.02em}.btn.danger{border-color:var(--bad);color:var(--bad)}.btn kbd{margin-left:4px}.btn.primary kbd{color:inherit;opacity:.7;background:0 0;border-color:currentColor}.icon-btn{width:38px;height:38px;color:var(--text-dim);cursor:pointer;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:1px solid #0000;border-radius:10px;place-items:center;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn:disabled{opacity:.35;cursor:default}.chip{border:1px solid var(--line);background:var(--surface-2);color:var(--text-dim);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:.92em;display:inline-flex}.chip.on{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.badge{background:var(--accent-soft);color:var(--accent);vertical-align:.1em;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:.74rem;font-weight:600;display:inline-block}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px 16px}fieldset.card{min-width:0;margin:0}legend{font-family:var(--font-display);color:var(--text-dim);padding:0 6px;font-weight:650}input[type=text],input[type=search],textarea,select{border:1px solid var(--line-strong);background:var(--bg-deep);width:100%;color:var(--text);font:inherit;border-radius:9px;padding:8px 11px}html[data-theme=academia] input[type=text],html[data-theme=academia] textarea{background:#fffaf0}input[type=range]{accent-color:var(--accent);width:100%}.toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:6px 0;display:flex}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle .switch{background:var(--surface-3);border:1px solid var(--line-strong);width:36px;height:20px;transition:background var(--t-fast);border-radius:999px;flex:none;position:relative}.toggle .switch:after{content:"";background:var(--text-dim);width:14px;height:14px;transition:transform var(--t-fast), background var(--t-fast);border-radius:50%;position:absolute;top:2px;left:2px}.toggle input:checked+.switch{background:var(--accent-soft);border-color:var(--accent)}.toggle input:checked+.switch:after{background:var(--accent);transform:translate(16px)}.toggle input:focus-visible+.switch{outline:2px solid var(--accent);outline-offset:2px}.segmented{border:1px solid var(--line-strong);border-radius:10px;flex-wrap:wrap;display:inline-flex;overflow:hidden}.segmented button{border:0;border-right:1px solid var(--line);color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;padding:6px 12px;font-size:.9em}.segmented button:last-child{border-right:0}.segmented button.on{background:var(--accent-soft);color:var(--text);font-weight:600}.range-row,.text-row,.setting-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:6px 0;display:flex}.range-row input{max-width:220px}.text-row input{max-width:260px}.term{border-bottom:1.5px dotted var(--accent);cursor:help;color:inherit}.term:hover{color:var(--accent)}.term-card{z-index:950;border:1px solid var(--line-strong);background:var(--surface);width:min(340px,100vw - 16px);box-shadow:var(--shadow);animation:pop-in var(--t-fast) var(--ease);border-radius:14px;gap:6px;padding:12px 14px;font-size:.92rem;display:grid;position:fixed}.term-card p{margin:0}.term-card-head{color:var(--accent);justify-content:space-between;align-items:center;gap:8px;display:flex}.term-card-head .icon-btn{width:30px;height:30px;margin:-6px -8px -6px 0}.term-short{font-weight:600}.term-math{font-family:var(--font-mono);background:var(--surface-2);border-radius:8px;justify-self:start;padding:4px 8px;font-size:.85rem}.tooltip{z-index:1000;background:var(--text);max-width:min(320px,90vw);color:var(--bg);pointer-events:none;opacity:0;box-shadow:var(--shadow);font-size:.84rem;line-height:1.4;font-family:var(--font-ui);border-radius:9px;padding:7px 10px;transition:opacity .12s,transform .12s;position:absolute;transform:translateY(4px)}.tooltip.show{opacity:1;transform:none}.toasts{z-index:900;left:50%;bottom:max(16px, env(safe-area-inset-bottom));pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;transform:translate(-50%)}.toast{background:var(--surface-3);border:1px solid var(--line-strong);box-shadow:var(--shadow);animation:toast-in var(--t-med) var(--ease);border-radius:999px;padding:9px 16px;font-size:.92rem}.toast-good{border-color:var(--good)}.toast-bad{border-color:var(--bad)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}.modal-backdrop{z-index:800;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in var(--t-fast);background:#0a0a0e8c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line-strong);width:min(600px,100%);max-height:calc(100dvh - 32px);box-shadow:var(--shadow);animation:pop-in var(--t-med) var(--ease);border-radius:16px;padding:18px 20px;overflow-y:auto}.modal-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.modal-head h2{align-items:center;gap:8px;margin:0;display:flex}.modal section{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.modal section h3{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;font-size:.95rem}html[data-theme=academia] .modal section h3{text-transform:none;letter-spacing:.04em;font-size:1.05rem;font-variant-caps:small-caps}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)translateY(8px)}}.dots{vertical-align:middle;gap:3px;margin-right:6px;display:inline-flex}.dots i{background:currentColor;border-radius:50%;width:5px;height:5px;animation:1s infinite dot}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes dot{0%,80%,to{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:none}}html[data-motion=reduced] *,html[data-motion=reduced] :before,html[data-motion=reduced] :after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.app-header{z-index:100;height:58px;padding:0 max(14px, env(safe-area-inset-left));background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);align-items:center;gap:12px;display:flex;position:sticky;top:0}.brand{color:var(--text);align-items:center;gap:9px;text-decoration:none;display:flex}.brand-name{font-family:var(--font-display);white-space:nowrap;font-size:1.12rem;font-weight:700}html[data-theme=academia] .brand-name{font-size:1.3rem;font-style:italic}.brand .ket{color:var(--accent)}.brand-mark svg{display:block}.bm-x{stroke:var(--x);stroke-width:7px;stroke-linecap:round;fill:none}.bm-o{stroke:var(--o);stroke-width:6px;fill:none}.bm-x.ghost,.bm-o.ghost{opacity:.4}.main-nav{gap:4px;margin:0 auto;display:flex}.main-nav a{color:var(--text-dim);border-radius:10px;align-items:center;gap:6px;padding:7px 13px;font-weight:560;text-decoration:none;display:flex}.main-nav a:hover{color:var(--text);background:var(--surface-2)}.main-nav a.on{color:var(--text);background:var(--accent-soft)}.header-tools{gap:2px;display:flex}main{padding:18px max(14px, env(safe-area-inset-left)) 60px}.screen{max-width:1480px;animation:fade-in var(--t-med);margin:0 auto}.screen-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.screen-head h2{flex-wrap:wrap;align-items:center;gap:10px;margin:0;display:flex}.game-layout{grid-template-columns:310px minmax(380px,1fr) 370px;grid-template-areas:"controls main side";align-items:start;gap:18px;display:grid}.game-layout.has-coach{grid-template-rows:auto 1fr;grid-template-areas:"coach main side""controls main side"}.gl-coach{grid-area:coach;min-width:0}.gl-main{flex-direction:column;grid-area:main;align-items:center;gap:12px;min-width:0;display:flex}.gl-controls{flex-direction:column;grid-area:controls;gap:12px;min-width:0;display:flex}.gl-side{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0;box-shadow:var(--shadow-sm);flex-direction:column;grid-area:side;max-height:calc(100dvh - 92px);display:flex;position:sticky;top:74px;overflow:hidden}.gl-main>*{width:100%;max-width:640px}.board-area{aspect-ratio:1;width:min(100%,100dvh - 300px,620px);min-width:280px;position:relative}@media (min-width:821px) and (min-height:640px){.gl-main{position:sticky;top:70px}.board-area{width:min(100%,100dvh - 330px,620px)}.lesson-screen .gl-coach{z-index:55;position:sticky;top:70px}}@media (max-width:1260px){.game-layout{grid-template-columns:minmax(340px,1fr) 360px;grid-template-areas:"main controls""main side"}.game-layout.has-coach{grid-template-rows:auto auto 1fr;grid-template-areas:"main coach""main controls""main side"}.gl-side{max-height:none;position:static}}@media (max-width:820px){main{padding:10px 10px 50px}.game-layout,.game-layout.has-coach{grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-template-areas:"coach""main""controls""side";gap:12px}.game-layout:not(.has-coach){grid-template-areas:"main""controls""side"}.board-area{width:100%;min-width:0}.gl-controls .tools{z-index:90;padding:6px max(8px, env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:4px;position:fixed;bottom:0;left:0;right:0}.gl-controls .tool{padding:6px 2px 5px;font-size:.78rem}main{--dock-tools:0px;--dock-move:0px;--dock-coach:0px}main:has(.gl-controls .tools){--dock-tools:66px}main:has(.move-bar){--dock-move:100px}main:has(.lesson-screen){--dock-coach:min(40vh, 300px)}:is(main:has(.gl-controls .tools),main:has(.move-bar),main:has(.lesson-screen)){padding-bottom:calc(var(--dock-tools) + var(--dock-move) + var(--dock-coach) + 30px + env(safe-area-inset-bottom))}body:has(.gl-controls .tools) .toasts{bottom:calc(84px + env(safe-area-inset-bottom))}.move-bar{left:8px;right:8px;bottom:calc(var(--dock-tools) + 6px + env(safe-area-inset-bottom));z-index:91;position:fixed}.lesson-screen .gl-coach{left:8px;right:8px;bottom:calc(var(--dock-tools) + var(--dock-move) + 8px + env(safe-area-inset-bottom));z-index:95;position:fixed}.lesson-screen .coach-card{max-height:var(--dock-coach);padding:10px 14px 12px;overflow-y:auto}.lesson-screen .coach-card p{font-size:.95rem}.gl-side{max-height:none;position:static}.main-nav a span{display:none}.main-nav a{padding:8px 10px}.app-header{gap:6px;height:52px}.brand-name{font-size:1rem}}@media (max-width:420px){.brand-name{display:none}}.tabs{border-bottom:1px solid var(--line);flex:none;gap:2px;padding:6px 6px 0;display:flex;overflow-x:auto}.tabs.big{border-bottom:1px solid var(--line);margin-bottom:16px;padding:0}.tab{color:var(--text-dim);font-size:.9rem;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:8px 9px 9px;font-weight:560;display:flex}.tab:hover{color:var(--text)}.tab.on{color:var(--text);border-bottom-color:var(--accent)}.tab-badge{background:var(--accent);min-width:18px;color:var(--bg-deep);border-radius:999px;padding:0 5px;font-size:.72rem;font-weight:700}.tab-body{min-height:0;padding:12px 14px 16px;overflow-y:auto}.tabs.many .tab:not(.on)>span:not(.tab-badge){display:none}.board-wrap{width:100%;height:100%;position:relative}.board{-webkit-user-select:none;user-select:none;touch-action:manipulation;width:100%;height:100%;display:block;overflow:visible}.board-bg{fill:var(--board-bg);stroke:var(--line);stroke-width:1.5px}html[data-theme=lab] .board-bg{filter:drop-shadow(0 12px 28px #00000059)}html[data-theme=academia] .board-bg{stroke:var(--line-strong);filter:drop-shadow(0 8px 18px #4c371a24)}.grid line{stroke:var(--grid);stroke-width:3px;stroke-linecap:round}html[data-theme=lab] .grid line{stroke-width:2px;opacity:.9}html[data-theme=academia] .grid line{stroke-width:3.4px;filter:url(#ink);opacity:.88}.cell-bg{fill:#0000;stroke:#0000;stroke-width:2px;transition:fill var(--t-fast), stroke var(--t-fast)}.board.can-act .cell-bg.hover{fill:var(--surface-2)}html[data-theme=academia] .board.can-act .cell-bg.hover{fill:#6b4a8e12}.cell-bg.selected{fill:var(--accent-soft);stroke:var(--accent);stroke-dasharray:6 5;animation:1.2s linear infinite march}.cell-bg.changed{stroke:var(--accent);stroke-opacity:.55;stroke-dasharray:3 5}.cell-bg.last{fill:var(--surface-2)}html[data-theme=academia] .cell-bg.last{fill:#9a742414}.cell-bg.lesson-hl{stroke:var(--energy);stroke-width:3px;animation:lesson-pulse 1.4s var(--ease) infinite}@keyframes march{to{stroke-dashoffset:-22px}}@keyframes lesson-pulse{50%{stroke-opacity:.25}}.cell-hit{fill:#0000;cursor:pointer;outline:none}.board:not(.can-act) .cell-hit{cursor:default}.cell-hit:focus-visible{stroke:var(--accent);stroke-width:3px}.cell-num{fill:var(--text-dim);font-size:12px;font-weight:600;font-family:var(--font-mono);pointer-events:none}.slot{transition:transform var(--t-med) var(--ease), opacity var(--t-med) var(--ease);pointer-events:none}.glyph{transition:stroke-width var(--t-med)}.glyph-x{stroke:var(--x)}.glyph-o{stroke:var(--o)}html[data-theme=lab] .slot-x{filter:var(--glow-x)}html[data-theme=lab] .slot-o{filter:var(--glow-o)}html[data-theme=academia] .glyph{filter:url(#ink-glyph)}.slot.ghost .glyph{stroke-dasharray:5 4.5;animation:2.2s linear infinite ghost-flow}.slot.ghost{animation:3.2s ease-in-out infinite ghost-breathe}html[data-theme=academia] .slot.ghost .glyph{stroke-dasharray:2.5 3.5}@keyframes ghost-flow{to{stroke-dashoffset:-19px}}@keyframes ghost-breathe{50%{filter:brightness(1.25)saturate(1.1)}}.ring{transition:opacity var(--t-med);pointer-events:none}.ring-track{fill:none;stroke:var(--line);stroke-width:4.5px;opacity:.35}.ring-seg{fill:none;stroke-width:4.5px;stroke-linecap:butt;transition:stroke-dasharray var(--t-med) var(--ease), stroke-dashoffset var(--t-med) var(--ease)}.ring-x{stroke:var(--x)}.ring-o{stroke:var(--o)}.ring-e{stroke:var(--empty);opacity:.45}.pct{font-size:12.5px;font-weight:700;font-family:var(--font-mono);pointer-events:none;paint-order:stroke;stroke:var(--board-bg);stroke-width:4px}.pct-x{fill:var(--x)}.pct-o{fill:var(--o)}.odds{stroke-linecap:round;pointer-events:stroke;transition:opacity var(--t-med), stroke-width var(--t-med)}.odds-x{stroke:var(--x)}.odds-o{stroke:var(--o)}.link{transition:opacity var(--t-med)}.link-path{fill:none;stroke-width:2.6px;stroke-linecap:round;pointer-events:none}.link-tether.tok-x .link-path{stroke:var(--x);stroke-dasharray:2 7;animation:1.4s linear infinite flow}.link-tether.tok-o .link-path{stroke:var(--o);stroke-dasharray:2 7;animation:1.4s linear infinite flow}.link-swap .link-path{stroke:var(--accent);stroke-dasharray:10 6;stroke-width:3px;animation:1.1s linear infinite flow}.link-mixed .link-path{stroke:var(--text-faint);stroke-dasharray:3 5}@keyframes flow{to{stroke-dashoffset:-18px}}.link-badge{cursor:help}.link-badge circle{fill:var(--surface);stroke-width:2px}.link-tether.tok-x .link-badge circle{stroke:var(--x)}.link-tether.tok-o .link-badge circle{stroke:var(--o)}.link-swap .link-badge circle{stroke:var(--accent)}.link-mixed .link-badge circle{stroke:var(--text-faint)}.link-badge text{fill:var(--text);pointer-events:none;font-size:12px;font-weight:800}.link-badge:hover circle{fill:var(--surface-3)}.sel-arrow{fill:none;stroke-width:3.5px;stroke-dasharray:8 6;pointer-events:none;animation:.9s linear infinite march}.sel-split{stroke:var(--text-dim)}.sel-link{stroke:var(--accent)}.sel-merge{stroke:var(--energy)}.arrowhead{fill:var(--text-dim)}.win-line{stroke-width:11px;stroke-linecap:round;stroke-dasharray:400;stroke-dashoffset:400px;animation:draw-line .9s var(--ease) forwards;opacity:.9;pointer-events:none}.win-x{stroke:var(--x)}.win-o{stroke:var(--o)}html[data-theme=lab] .win-x{filter:var(--glow-x)}html[data-theme=lab] .win-o{filter:var(--glow-o)}@keyframes draw-line{to{stroke-dashoffset:0}}.board.is-preview .board-bg{stroke:var(--accent);stroke-dasharray:10 7;stroke-width:2px}.board.is-peek .board-bg{stroke:var(--energy);stroke-width:2.5px}.board-chip{letter-spacing:.05em;text-transform:uppercase;pointer-events:none;white-space:nowrap;box-shadow:var(--shadow-sm);border-radius:999px;padding:2px 11px;font-size:.76rem;font-weight:700;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.chip-preview{background:var(--accent);color:var(--bg-deep)}.chip-peek{background:var(--energy);color:var(--bg-deep)}.board-chip.pinned{pointer-events:auto;cursor:pointer;border:0;font-family:inherit}html[data-theme=academia] .chip-preview,html[data-theme=academia] .chip-peek{color:#fbf6ea}.board-tip{z-index:20;background:var(--text);color:var(--bg);pointer-events:none;white-space:nowrap;box-shadow:var(--shadow);font-size:.8rem;line-height:1.35;font-family:var(--font-ui);border-radius:9px;padding:7px 10px;position:absolute;transform:translate(-50%,-100%)}.board-tip strong{display:block}.board-tip.below{transform:translate(-50%)}.flash{z-index:30;background:var(--surface-3);border:1px solid var(--line-strong);max-width:92%;box-shadow:var(--shadow);text-align:center;animation:toast-in var(--t-fast) var(--ease);border-radius:12px;padding:8px 14px;font-size:.9rem;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.flash.bad{border-color:var(--bad)}.mini-board{display:block}.mini-bg{fill:var(--board-bg);stroke:var(--line);stroke-width:2px}.mini-grid{stroke:var(--grid);stroke-width:2.5px;opacity:.55;fill:none}.mini-x{stroke:var(--x);stroke-width:5px;stroke-linecap:round;fill:none}.mini-o{stroke:var(--o);stroke-width:4.5px;fill:none}.mini-hl .mini-x,.mini-hl .mini-o{stroke-width:7px}.mini-hl{filter:drop-shadow(0 0 3px var(--energy))}.board.compact .cell-num{display:none}.players{grid-template-columns:1fr 1fr;gap:10px;display:grid}.player{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);transition:border-color var(--t-med), box-shadow var(--t-med), background var(--t-med);align-items:center;gap:10px;min-width:0;padding:8px 12px;display:flex}.player-text{flex:1;min-width:0}.player-name{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-weight:650;display:flex;overflow:hidden}.player-status{color:var(--text-dim);align-items:center;min-height:1.2em;font-size:.8rem;display:flex}.you{background:var(--surface-3);color:var(--text-dim);border-radius:99px;padding:0 6px;font-size:.68rem;font-weight:600}.player-x.active{border-color:var(--x);box-shadow:0 0 0 3px var(--x-soft), var(--shadow-sm)}.player-o.active{border-color:var(--o);box-shadow:0 0 0 3px var(--o-soft), var(--shadow-sm)}.player.winner{background:var(--accent-soft);border-color:var(--accent)}.token-mark{flex:none}.mark-x path{stroke:var(--x)}.mark-o circle{stroke:var(--o)}.quanta{flex:none;gap:1px;display:inline-flex}.quanta.compact{border:1px solid var(--line);color:var(--text-dim);font-family:var(--font-mono);border-radius:99px;align-items:center;gap:2px;padding:1px 7px 1px 4px;font-size:.85rem;font-weight:700}.quanta.compact.has{color:var(--energy);border-color:color-mix(in srgb, var(--energy) 45%, var(--line))}.pip{color:var(--line-strong);display:inline-grid}.pip.full{color:var(--energy)}html[data-theme=lab] .pip.full{filter:drop-shadow(0 0 3px #e7c66499)}.tools{grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:6px;display:grid}.tool{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text-dim);font:inherit;cursor:pointer;transition:all var(--t-fast);flex-direction:column;align-items:center;gap:3px;padding:9px 4px 7px;font-size:.84rem;font-weight:600;display:flex;position:relative}.tool:hover:not(:disabled){color:var(--text);border-color:var(--line-strong)}.tool.on{color:var(--text);border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent-soft)}.tool:disabled{opacity:.4;cursor:not-allowed}.tool-split.on{border-color:var(--x)}.tool-link.on,.tool-merge.on{border-color:var(--accent)}.tool-observe.on{border-color:var(--energy)}.tool-cost{color:var(--energy);align-items:center;font-size:.7rem;display:flex;position:absolute;top:4px;right:5px}@media (min-width:821px){.move-bar{display:none!important}}.move-bar{border:1px solid var(--line-strong);background:var(--surface);box-shadow:var(--shadow);border-radius:14px;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:8px 10px;display:flex}.move-bar-text{color:var(--text-dim);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;flex:100%;font-size:.86rem;line-height:1.3;display:-webkit-box;overflow:hidden}.move-bar-text.warn{color:var(--text)}.move-bar-text.warn .icon{color:var(--energy);vertical-align:-2px}.move-bar .btn.primary{margin-left:auto}.move-bar-knob{align-items:center;gap:2px;font-size:.9rem;display:flex}.preview-card{transition:border-color var(--t-fast)}.preview-card.tone-good{border-color:color-mix(in srgb, var(--good) 60%, var(--line))}.preview-card.tone-bad{border-color:color-mix(in srgb, var(--bad) 60%, var(--line))}.preview-card.waiting{color:var(--text-dim);align-items:center;gap:6px;display:flex}.preview-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.preview-head .concept{color:var(--text-dim);font-size:.82rem}.preview-head .cost{color:var(--energy);align-items:center;gap:2px;margin-left:auto;font-size:.8rem;display:flex}.instructions{color:var(--text-dim);margin:0}.why-not{border-left:3px solid var(--bad);background:color-mix(in srgb, var(--bad) 8%, transparent);border-radius:0 8px 8px 0;margin:8px 0 0;padding:7px 10px;font-size:.9rem}.headline{margin-bottom:6px;font-weight:620}.details{color:var(--text-dim);margin:0 0 6px;padding-left:18px;font-size:.9rem}.details li{margin-bottom:3px}.warning{background:color-mix(in srgb, var(--energy) 12%, transparent);border-radius:8px;align-items:flex-start;gap:6px;margin:6px 0 0;padding:6px 9px;font-size:.88rem;display:flex}.warning .icon{color:var(--energy);margin-top:2px}.preview-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.odds-list{gap:5px;margin:8px 0;display:grid}.odds-row{grid-template-columns:52px 1fr 42px;align-items:center;gap:8px;font-size:.9rem;display:grid}.odds-track{background:var(--surface-3);border-radius:99px;height:10px;overflow:hidden}.odds-fill{background:var(--empty);border-radius:99px;height:100%;display:block}.odds-row.is-x .odds-fill{background:var(--x)}.odds-row.is-o .odds-fill{background:var(--o)}.odds-p{text-align:right;font-family:var(--font-mono);font-size:.85rem}.merge-lab{gap:10px;margin:8px 0;display:grid}.knob-row{align-items:center;gap:6px;display:flex}.knob{flex:none}.knob-face{fill:var(--surface-2);stroke:var(--line-strong);stroke-width:2px}.knob-tick{cursor:pointer}.knob-tick circle{fill:var(--surface-3);stroke:var(--line-strong)}.knob-tick text{fill:var(--text-dim);font-size:10px;font-weight:600;font-family:var(--font-mono);pointer-events:none}.knob-tick.on circle{fill:var(--energy);stroke:var(--energy)}.knob-tick.on text{fill:var(--bg-deep);font-weight:700}.knob-hand{transition:transform var(--t-med) var(--ease)}.knob-hand line{stroke:var(--energy);stroke-width:4px;stroke-linecap:round}.knob-hand circle{fill:var(--energy)}.knob-label{margin-left:6px;font-size:.9rem}.fringe{margin:0}.fringe svg{display:block}.fringe .axis{stroke:var(--line-strong);stroke-width:1px}.fringe .grid-v{stroke:var(--line);stroke-dasharray:2 3}.axis-label{fill:var(--text-dim);font-size:9.5px;font-family:var(--font-mono)}.fringe-a,.fringe-b{fill:none;stroke-width:2.4px}.fringe-a.is-x,.fringe-b.is-x{stroke:var(--x)}.fringe-a.is-o,.fringe-b.is-o{stroke:var(--o)}.fringe-b{stroke-dasharray:5 4;opacity:.75}.fringe-dot{fill:var(--surface);stroke:var(--text-dim);stroke-width:1.5px}.fringe-dot.on{fill:var(--energy);stroke:var(--energy)}.fringe figcaption{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.swatch{border-top:2.4px solid var(--text-dim);width:18px;height:0;display:inline-block}.swatch.dashed{border-top-style:dashed}.arrow-sums{gap:6px;display:grid}.arrow-sum-row{flex-wrap:wrap;gap:8px;display:flex}.arrow-sum{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:6px;display:flex}.arrow-sum .unit{fill:none;stroke:var(--line);stroke-dasharray:2 3}.arrow-sum .axis{stroke:var(--line)}.arrow-sum .arr{stroke-width:3px;stroke-linecap:round}.arrow-sum .arr-0{stroke:var(--x)}.arrow-sum .arr-1{stroke:var(--accent)}.arrow-sum .arr-2{stroke:var(--o)}.arrow-sum .ah{fill:var(--text-dim)}.arrow-sum .resultant{stroke:var(--energy);stroke-width:3px;stroke-dasharray:4 3}.arrow-sum .zero{fill:var(--bad)}.arrow-sum.cancelled{border-color:color-mix(in srgb, var(--bad) 50%, var(--line))}.forecast{gap:4px;display:grid}.forecast-label{color:var(--text-dim);align-items:center;gap:5px;font-size:.8rem;display:flex}.forecast-bar{background:var(--surface-3);border:1px solid var(--line);border-radius:99px;height:18px;display:flex;overflow:hidden}.fseg{min-width:3px;color:var(--bg-deep);transition:flex-grow var(--t-med) var(--ease);place-items:center;font-size:.7rem;font-weight:700;display:grid}.fx{background:var(--x)}.fo{background:var(--o)}.ft{background:var(--accent)}.fn{background:repeating-linear-gradient(45deg, var(--surface-3), var(--surface-3) 5px, var(--surface-2) 5px, var(--surface-2) 10px);color:var(--text-dim)}html[data-theme=academia] .fseg{color:#fbf6ea}html[data-theme=academia] .fn{color:var(--text-dim)}.forecast-legend{color:var(--text-dim);flex-wrap:wrap;gap:12px;font-size:.78rem;display:flex}.forecast-legend .lx{color:var(--x)}.forecast-legend .lo{color:var(--o)}.forecast-legend .lt{color:var(--accent)}.time-banner{background:color-mix(in srgb, var(--energy) 14%, var(--surface));border:1px solid var(--energy);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:7px 12px;font-size:.9rem;display:flex}.game-actions{flex-wrap:wrap;gap:6px;display:flex}.mv-head p{margin:4px 0 10px}.mv-head .mv-note{background:var(--accent-soft);color:var(--text);border-radius:8px;margin:6px 0 4px;padding:6px 9px}.mv-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;display:grid}.uv-card{border:1px solid var(--line);background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer;transition:transform var(--t-fast), border-color var(--t-fast), opacity var(--t-med);animation:pop-in var(--t-med) var(--ease);border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:7px 6px 6px;display:flex;position:relative}.uv-card:hover{border-color:var(--energy);transform:translateY(-2px)}.uv-card.pinned{border-color:var(--energy);box-shadow:0 0 0 2px color-mix(in srgb, var(--energy) 35%, transparent)}.uv-card.vanished{opacity:.38;filter:grayscale(.9);cursor:default}.uv-card.vanished .mini-board{opacity:.6}.uv-bar{background:var(--surface-3);border-radius:99px;width:100%;height:5px;overflow:hidden}.uv-bar span{background:var(--accent);height:100%;transition:width var(--t-med) var(--ease);border-radius:99px;display:block}.uv-meta{font-size:.78rem;font-family:var(--font-mono);align-items:center;gap:5px;display:flex}.uv-delta{border-radius:4px;padding:0 4px;font-size:.7rem;font-weight:700}.d-new{background:var(--accent-soft);color:var(--accent)}.d-up{color:var(--good)}.d-down{color:var(--bad)}.uv-verdict{text-transform:uppercase;letter-spacing:.03em;border-radius:4px;padding:0 4px;font-size:.6rem;font-weight:700;position:absolute;top:3px;right:3px}.vx{background:var(--x);color:var(--bg-deep)}.vo{background:var(--o);color:var(--bg-deep)}.vt{background:var(--accent);color:var(--bg-deep)}.vgone{background:var(--surface-3);color:var(--text-dim)}html[data-theme=academia] .vx,html[data-theme=academia] .vo,html[data-theme=academia] .vt{color:#fbf6ea}.phase-dial circle{fill:var(--surface-3);stroke:var(--line-strong);stroke-width:1px}.phase-dial line{stroke-width:2.4px;stroke-linecap:round}.hist-controls{align-items:center;gap:4px;margin-bottom:8px;display:flex}.hist-pos{text-align:center;color:var(--text-dim);font-size:.85rem;font-family:var(--font-mono);flex:1}.hist-list{gap:3px;max-height:52vh;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.hist-item{cursor:pointer;border-radius:8px;align-items:flex-start;gap:8px;padding:6px 8px;font-size:.88rem;display:flex}.hist-item:hover{background:var(--surface-2)}.hist-item.on{background:var(--accent-soft)}.hist-n{text-align:right;width:20px;color:var(--text-faint);font-family:var(--font-mono);flex:none;margin-top:2px;font-size:.78rem}.hist-text{flex-direction:column;gap:2px;min-width:0;display:flex}.notation{color:var(--text-dim);margin-left:6px}.hist-ev{color:var(--text-dim);align-items:flex-start;gap:4px;font-size:.8rem;display:flex}.ev-collapse{color:var(--energy)}.ev-end{color:var(--accent);font-weight:600}.physics h4:first-child{margin-top:0}.ket-list{font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--line);border-radius:10px;gap:2px;padding:8px 10px;font-size:.8rem;display:grid}.psi{color:var(--accent);font-weight:700}.ket-row{border-radius:6px;grid-template-columns:12px minmax(64px,auto) 1fr 18px 40px;align-items:center;gap:6px;padding:1px 4px;display:grid}.ket-row:hover{background:var(--surface-3)}.ket-amp{color:var(--energy);text-align:right;white-space:nowrap}.ket{white-space:pre}.ket-p{text-align:right;color:var(--text-dim)}.phasor{max-width:260px;margin:0 auto;display:block}.phasor .unit{fill:none;stroke:var(--line-strong)}.phasor .unit.half{stroke-dasharray:3 3;stroke:var(--line)}.phasor .axis{stroke:var(--line)}.phasor-arrow{stroke-width:2.6px;stroke-linecap:round}.qutrit-table{border-collapse:collapse;width:100%;font-size:.82rem;font-family:var(--font-mono)}.qutrit-table th,.qutrit-table td{text-align:right;border-bottom:1px solid var(--line);padding:3px 6px}.qutrit-table th:first-child,.qutrit-table td:first-child{text-align:left}.qutrit-table .tx{color:var(--x)}.qutrit-table .to{color:var(--o)}.qutrit-table tr.uncertain td{background:var(--accent-soft)}.hints{gap:8px;display:grid}.hint-btn{justify-self:start}.hint-list{gap:6px;display:grid}.hint-card{text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;transition:border-color var(--t-fast), transform var(--t-fast);border-radius:10px;gap:3px;padding:9px 11px;display:grid}.hint-card:hover{border-color:var(--energy);transform:translate(2px)}.hint-tag{text-transform:uppercase;letter-spacing:.05em;background:var(--surface-3);color:var(--text-dim);border-radius:99px;justify-self:start;padding:1px 7px;font-size:.68rem;font-weight:700}.tag-win{background:var(--good);color:var(--bg-deep)}.tag-block{background:var(--o-soft);color:var(--o)}.tag-threat,.tag-fork{background:var(--x-soft);color:var(--x)}.tag-gamble{background:color-mix(in srgb, var(--energy) 20%, transparent);color:var(--energy)}.tag-steer,.tag-entangle{background:var(--accent-soft);color:var(--accent)}.tag-spread{background:var(--x-soft);color:var(--x)}.hint-move{font-weight:620}.hint-reason{color:var(--text-dim);font-size:.86rem}.hint-score{color:var(--text-faint);font-size:.76rem;font-family:var(--font-mono);align-items:center;gap:8px;display:flex}.hint-meter{background:var(--surface-3);border-radius:99px;flex:none;width:70px;height:6px;overflow:hidden}.hint-meter span{background:var(--good);height:100%;display:block}.coach{border-radius:var(--radius);border:1px dashed var(--accent);background:var(--accent-soft);align-items:flex-start;gap:8px;padding:10px 12px;font-size:.9rem;display:flex}.coach>.icon{color:var(--accent);margin-top:3px}.coach-text{flex:1}.overlay{z-index:40;background:color-mix(in srgb, var(--bg-deep) 55%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in var(--t-med);border-radius:18px;place-items:center;padding:8px;display:grid;position:absolute;inset:0}.overlay-card{text-align:center;background:var(--surface);border:1px solid var(--line-strong);width:min(360px,100%);max-height:100%;box-shadow:var(--shadow);animation:pop-in var(--t-med) var(--ease);border-radius:16px;justify-items:center;gap:8px;padding:14px 16px;display:grid;overflow-y:auto}.overlay-card.wide{width:min(420px,100%)}@media (max-width:820px){.overlay{z-index:120;border-radius:0;padding:12px;position:fixed}.overlay-card{max-height:calc(100dvh - 24px)}.wheel{width:min(230px,62vw)}}.overlay-actions{justify-content:center;gap:8px;display:flex}.overlay-card p{margin:0}.overlay-kicker{font-weight:700;font-family:var(--font-display);align-items:center;gap:6px;display:flex}.overlay-result{font-size:1rem}.overlay-result.row{text-align:left;align-items:center;gap:10px;display:flex}.is-X{color:var(--x)}.is-O{color:var(--o)}.is-empty{color:var(--text-dim)}.born-bar{border:1px solid var(--line-strong);border-radius:10px;width:100%;height:38px;display:flex;position:relative;overflow:visible}.born-seg{transition:opacity var(--t-med), filter var(--t-med);border-right:2px solid var(--surface);place-items:center;font-size:.8rem;font-weight:700;display:grid}.born-seg:first-child{border-radius:9px 0 0 9px}.born-seg:last-child{border-right:0;border-radius:0 9px 9px 0}.seg-X{background:var(--x);color:var(--bg-deep)}.seg-O{background:var(--o);color:var(--bg-deep)}.seg-empty{background:var(--surface-3);color:var(--text-dim)}html[data-theme=academia] .seg-X,html[data-theme=academia] .seg-O{color:#fbf6ea}.born-seg.dropped{opacity:.2;filter:grayscale()}.born-seg.chosen{box-shadow:0 0 0 3px var(--energy) inset}.born-pointer{background:var(--energy);width:3px;transition:left var(--dur,1.3s) cubic-bezier(.3, .9, .3, 1);box-shadow:0 0 8px var(--energy);border-radius:3px;margin-left:-1.5px;position:absolute;top:-8px;bottom:-8px}.wheel-wrap{justify-items:center;gap:6px;display:grid;position:relative}.wheel-pointer{z-index:2;border-left:10px solid #0000;border-right:10px solid #0000;border-top:18px solid var(--energy);filter:drop-shadow(0 2px 3px #00000059);width:0;height:0;margin-left:-10px;position:absolute;top:-4px;left:50%}.wheel{max-width:100%;height:auto;display:block}.wheel-rot{transform-origin:0 0;transition-property:transform;transition-timing-function:cubic-bezier(.12,.7,.14,1)}.slice>path{stroke:var(--surface);stroke-width:1.5px;transition:opacity var(--t-med)}.slice.sl-x>path{fill:var(--x)}.slice.sl-o>path{fill:var(--o)}.slice.sl-t>path{fill:var(--accent)}.slice.sl-n>path{fill:var(--slice-none)}.slice:nth-child(2n)>path{filter:brightness(.9)}.slice.dim{opacity:.25}.slice.chosen>path{stroke:var(--energy);stroke-width:4px}.wheel-hub{fill:var(--surface);stroke:var(--line-strong);stroke-width:2px}.mini-inline .mini-bg{opacity:.92}.wheel-legend{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.wheel-legend .lg:before{content:"";vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:4px;display:inline-block}.lg.sl-x:before{background:var(--x)}.lg.sl-o:before{background:var(--o)}.lg.sl-t:before{background:var(--accent)}.lg.sl-n:before{background:var(--slice-none);border:1px solid var(--line-strong)}.result-banner{border-radius:var(--radius);border:2px solid var(--accent);background:var(--surface);box-shadow:var(--shadow);animation:pop-in var(--t-slow) var(--ease);padding:14px 16px}.result-banner.res-x{border-color:var(--x);background:linear-gradient(135deg, var(--x-soft), var(--surface) 60%)}.result-banner.res-o{border-color:var(--o);background:linear-gradient(135deg, var(--o-soft), var(--surface) 60%)}.result-title{font-family:var(--font-display);align-items:center;gap:8px;font-size:1.35rem;font-weight:700;display:flex}.res-x .result-title{color:var(--x)}.res-o .result-title{color:var(--o)}.result-sub{color:var(--text-dim);margin-top:4px}.result-lines{font-family:var(--font-mono);color:var(--text-faint);margin-top:4px}.result-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.hero{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);align-items:center;gap:32px;padding:18px 0 30px;display:grid}.wordmark{letter-spacing:-.03em;margin:0 0 16px;font-size:clamp(2.6rem,6vw,4.6rem);font-weight:800;line-height:1}html[data-theme=academia] .wordmark{letter-spacing:-.01em;font-style:italic;font-weight:600}.wordmark .q-x{color:var(--x)}.wordmark .q-o{color:var(--o)}.wordmark .ket{color:var(--accent);white-space:nowrap}html[data-theme=lab] .wordmark .q-x{text-shadow:0 0 18px #76cce08c}html[data-theme=lab] .wordmark .q-o{text-shadow:0 0 18px #f396608c}.tagline{color:var(--text-dim);max-width:36em;font-size:1.12rem}html[data-theme=academia] .tagline{font-size:1.25rem}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.demo{justify-items:center;gap:10px;margin:0;display:grid}.demo .board-wrap{aspect-ratio:1;width:min(100%,380px)}.demo figcaption{text-align:center;min-height:3em;color:var(--text-dim);max-width:30em;font-size:.95rem}.mode-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:10px 0 34px;display:grid}.mode-card{text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--t-fast), border-color var(--t-fast);justify-items:start;gap:6px;padding:16px;display:grid}.mode-card:hover{border-color:var(--accent);transform:translateY(-3px)}.mode-card .icon{color:var(--accent)}.mode-card span{color:var(--text-dim);font-size:.92rem}.ladder h2{margin-bottom:14px}.ladder-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;display:grid}.ladder-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);gap:4px;padding:14px;display:grid}.ladder-card.locked{opacity:.75}.ladder-top{align-items:center;gap:8px;display:flex}.ladder-actions{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.lv-num{width:28px;height:28px;font-family:var(--font-mono);background:var(--surface-3);color:var(--text);border-radius:8px;flex:none;place-items:center;font-weight:800;display:inline-grid}.lv0 .lv-num{background:var(--surface-3)}.lv1 .lv-num{background:var(--x-soft);color:var(--x)}.lv2 .lv-num{background:var(--accent-soft);color:var(--accent)}.lv3 .lv-num{background:color-mix(in srgb, var(--energy) 20%, transparent);color:var(--energy)}.level-pill{background:var(--surface-3);color:var(--text-dim);vertical-align:middle;border-radius:99px;padding:1px 9px;font-size:.74rem;font-weight:650;display:inline-block}.level-pill.lv1{background:var(--x-soft);color:var(--x)}.level-pill.lv2{background:var(--accent-soft);color:var(--accent)}.level-pill.lv3{background:color-mix(in srgb, var(--energy) 18%, transparent);color:var(--energy)}.home-foot{text-align:center;margin-top:40px}@media (max-width:820px){.hero{grid-template-columns:1fr;gap:18px;padding-top:6px}.hero-demo{order:-1}.demo .board-wrap{width:min(100%,300px)}}.setup-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;display:grid}.choice-row{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-bottom:10px;display:grid}.choice-row.compact{grid-template-columns:repeat(3,1fr)}.choice{text-align:left;border:1px solid var(--line);background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer;border-radius:10px;justify-items:start;gap:3px;padding:10px 12px;display:grid}.choice .icon{color:var(--text-dim)}.choice.on{border-color:var(--accent);background:var(--accent-soft)}.choice.on .icon{color:var(--accent)}.side-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.level-list{gap:6px;display:grid}.level-choice{border:1px solid var(--line);background:var(--surface-2);color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:9px 11px;display:flex}.level-choice.on{border-color:var(--accent);background:var(--accent-soft)}.lv-text{flex:1;display:grid}.lv-lock{color:var(--text-faint)}.setup-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.lesson-grid{gap:10px;max-width:820px;display:grid}.lesson-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);align-items:center;gap:14px;padding:14px 16px;display:flex}.lesson-card.done{border-color:color-mix(in srgb, var(--good) 45%, var(--line))}.lesson-num{background:var(--accent-soft);width:38px;height:38px;color:var(--accent);font-family:var(--font-mono);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.lesson-body{flex:1;min-width:0}.lesson-body p{margin:2px 0 6px}.lesson-meta{color:var(--text-faint);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.rules{gap:12px;max-width:860px;display:grid}.rules h3{margin-bottom:8px}.rule-table{border-collapse:collapse;width:100%}.rule-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px 6px}.rule-table td:first-child{white-space:nowrap}.rule-table td.lv{color:var(--text-faint);white-space:nowrap;font-size:.85em}.level-summary{gap:6px;margin:0;padding:0;list-style:none;display:grid}.codex-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;margin-bottom:16px;display:grid}.codex-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);padding:14px 16px;scroll-margin-top:90px}.codex-card.hl{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.codex-card h3{color:var(--accent)}.codex-card h4{text-transform:uppercase;letter-spacing:.06em;margin:10px 0 2px;font-size:.78rem}html[data-theme=academia] .codex-card h4{text-transform:none;font-size:.95rem;font-variant-caps:small-caps}.codex-card p{margin-bottom:4px;font-size:.93rem}.codex-short{font-weight:600}.deep{max-width:900px}.coach-card{z-index:60;border-radius:var(--radius);border:2px solid var(--energy);background:var(--surface);box-shadow:var(--shadow), 0 0 0 6px color-mix(in srgb, var(--energy) 12%, transparent);animation:pop-in var(--t-med) var(--ease);padding:12px 16px 14px;position:relative}.coach-card.done{border-color:var(--good)}.coach-top{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.coach-lesson{color:var(--text-dim);align-items:center;gap:5px;font-size:.82rem;display:flex}.coach-count{color:var(--text-faint);font-size:.78rem;font-family:var(--font-mono)}.coach-progress{background:var(--surface-3);border-radius:99px;flex:1;min-width:60px;height:4px;overflow:hidden}.coach-progress span{background:var(--energy);height:100%;transition:width var(--t-med) var(--ease);display:block}.coach-card h3{align-items:center;gap:6px;margin:0 0 4px;display:flex}.coach-card p{margin:0 0 10px;font-size:1rem}.coach-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.coach-actions .skip{margin-left:auto}.coach-busy{color:var(--text-dim);margin:6px 0 4px}.coach-tuck{width:32px;height:32px;margin:-4px -6px -4px 0;display:none}.coach-tuck .icon{transition:transform var(--t-fast)}.coach-card.tucked .coach-tuck .icon{transform:rotate(180deg)}@media (max-width:820px){.coach-tuck{display:inline-grid}.coach-card.tucked>:not(.coach-top){display:none}.coach-card.tucked .coach-top{margin-bottom:0}}.coach-wait{color:var(--energy);font-size:.86rem;font-weight:600;animation:1.6s infinite lesson-pulse}.spotlight{z-index:50;pointer-events:none;box-shadow:0 0 0 3px var(--energy), 0 0 0 9999px #0c0c126b;transition:left var(--t-med) var(--ease), top var(--t-med) var(--ease), width var(--t-med) var(--ease), height var(--t-med) var(--ease);border-radius:14px;position:fixed}html[data-theme=academia] .spotlight{box-shadow:0 0 0 3px var(--energy), 0 0 0 9999px #3c280f47}.online-grid{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:start;gap:14px;display:grid}@media (max-width:820px){.online-grid{grid-template-columns:1fr}}.status-dot{background:var(--text-faint);border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.status-dot.ok{background:var(--good);box-shadow:0 0 8px var(--good)}.status-dot.bad{background:var(--bad)}.status-dot.wait{background:var(--energy);animation:1s infinite lesson-pulse}.lobby-list{gap:8px;display:grid}.lobby-row{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.lobby-row .lobby-name{font-weight:650}.lobby-row .lobby-meta{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:8px;font-size:.82rem;display:flex}.lobby-row .btn{margin-left:auto}.code-input{font-family:var(--font-mono);letter-spacing:.25em;text-transform:uppercase;text-align:center;font-size:1.2rem!important}.room-code{font-family:var(--font-mono);letter-spacing:.18em;color:var(--accent);font-size:1.7rem;font-weight:800}.form-grid{gap:10px;display:grid}.form-grid label{color:var(--text-dim);gap:4px;font-size:.9rem;display:grid}.form-grid label.toggle{color:var(--text);gap:10px;font-size:1em;display:flex}.form-grid label.range-row{display:flex}form.row{flex-wrap:nowrap}form.row .code-input{flex:1;min-width:0}.seats{grid-template-columns:1fr 1fr;gap:10px;margin:10px 0;display:grid}.seat{border:1px dashed var(--line-strong);background:var(--surface-2);border-radius:12px;align-items:center;gap:10px;min-height:64px;padding:12px;display:flex}.seat.filled{border-style:solid}.seat.me{border-color:var(--accent)}.member-list{gap:4px;margin:0;padding:0;font-size:.92rem;list-style:none;display:grid}.member-list li{align-items:center;gap:6px;display:flex}.chat{flex-direction:column;gap:8px;height:100%;min-height:240px;display:flex}.chat-log{flex:1;align-content:start;gap:4px;max-height:46vh;font-size:.9rem;display:grid;overflow-y:auto}.chat-line .who{margin-right:5px;font-weight:650}.chat-line.sys{color:var(--text-faint);font-size:.84rem;font-style:italic}.chat-form{gap:6px;display:flex}.emotes{flex-wrap:wrap;gap:4px;display:flex}.emotes button{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;border-radius:8px;padding:2px 7px;font-size:1rem}.room-banner{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;font-size:.9rem;display:flex}.emote-pop{z-index:300;pointer-events:none;text-align:center;animation:emote 1.8s var(--ease) forwards;text-shadow:0 4px 18px #00000059;font-size:3rem;position:fixed;top:22%;left:50%;transform:translate(-50%)}.emote-pop .small{color:var(--text-dim);text-shadow:none;font-size:.8rem}.seed-note{color:var(--text-dim);align-items:flex-start;gap:6px;font-size:.92rem;display:flex}.text-row.inline{gap:8px;padding:0}.room-pill{border:1px solid var(--good);color:var(--text);white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:4px 10px;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.room-pill:hover{background:var(--surface-2)}@keyframes emote{0%{opacity:0;transform:translate(-50%,10px)scale(.6)}15%{opacity:1;transform:translate(-50%)scale(1.1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-30px)}}
