:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:oklch(98.5% .007 198);--stage:oklch(94.5% .012 198);--surface-sunken:oklch(96.5% .008 198);--surface:oklch(99.5% .003 198);--surface-raised:oklch(99.9% .002 198);--surface-overlay:oklch(99.5% .003 198/.93);--surface-overlay-strong:oklch(99.5% .003 198/.97);--rule:oklch(88% .012 198);--rule-strong:oklch(73.5% .045 194);--ink:oklch(19% .028 198);--ink-soft:oklch(30% .026 198);--ink-muted:oklch(39.5% .024 198);--ink-dim:oklch(46.5% .025 198);--ink-faint:oklch(52.5% .022 198);--ink-ghost:oklch(70% .018 198);--fill-1:color-mix(in oklch, var(--ink) 4%, transparent);--fill-2:color-mix(in oklch, var(--ink) 7%, transparent);--fill-3:color-mix(in oklch, var(--ink) 11%, transparent);--shade:oklch(55% .02 198/.09);--scrim:oklch(35% .02 198/.42);--shadow-sm:0 1px 2px oklch(45% .03 198/.06), 0 8px 24px oklch(45% .03 198/.07);--shadow-md:0 1px 3px oklch(45% .03 198/.07), 0 14px 40px oklch(45% .03 198/.1);--shadow-lg:0 2px 6px oklch(45% .03 198/.08), 0 28px 70px oklch(45% .03 198/.14);--glow-accent:none;--text-flash:none;--accent:oklch(50% .125 194);--accent-hi:oklch(43% .12 194);--accent-2:oklch(52% .13 224);--accent-tint:color-mix(in oklch, var(--accent) 12%, transparent);--on-accent:oklch(99% .012 194);--good:oklch(50% .135 160);--on-good:oklch(99% .012 160);--warn:oklch(45.5% .12 55);--warn-vivid:oklch(72% .165 60);--on-warn:oklch(20% .04 68);--gold:oklch(50% .11 78);--gold-vivid:oklch(80% .155 86);--on-gold:oklch(21% .04 86);--danger:oklch(50% .185 28);--danger-vivid:oklch(58% .2 28);--on-danger:oklch(99% .015 28);--versus:oklch(46% .175 295);--versus-hi:oklch(39% .165 295);--on-versus:oklch(99% .012 295);--stage-grid-major:oklch(85.5% .018 198);--stage-grid-minor:oklch(90.5% .012 198);--stage-sky:oklch(97% .02 230);--stage-bounce:oklch(80% .015 198);--stage-key:oklch(100% 0 0);--skin:oklch(72% .07 55);--eye:oklch(30% .02 240);--hair:oklch(50% .09 50);--hair-emissive:oklch(23% .06 50);--hair-target:oklch(62% .11 224);--hair-target-emissive:oklch(55% .09 224);--robot-base:oklch(62% .028 240);--robot-link:oklch(72% .035 240);--robot-joint:oklch(64% .11 194);--robot-joint-active:oklch(72% .165 60);--robot-tool:oklch(58% .2 28);--robot-blade:oklch(64% .02 240);--node-reachable:oklch(52% .13 224);--node-planned:oklch(80% .155 86);--node-blocked:oklch(58% .2 28);--node-bounds:oklch(60% .035 224);--block-grid:oklch(88.5% .014 198);--block-motion:oklch(60% .1 194);--block-logic:oklch(55% .15 295);--block-loop:oklch(66% .13 60);--font-display:"EB Garamond", Inter, "SF Pro Display", "Segoe UI", ui-sans-serif, system-ui, sans-serif;--font-ui:Inter, "SF Pro Display", "Segoe UI", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", ui-monospace, monospace;--track-display:-.025em;--track-tight:-.01em;--track-normal:0;--track-caps:.08em;--r-sm:8px;--r-md:10px;--r-lg:12px;--r-xl:16px;--r-pill:999px;--panel:var(--surface-overlay);--panel-strong:var(--surface);--panel-border:var(--rule);--panel-border-strong:var(--rule-strong);--muted:var(--ink-dim);--muted-strong:var(--ink-muted);--cyan:var(--accent);--cyan-soft:var(--accent-tint);--orange:var(--warn);--green:var(--good);--violet:var(--versus);--topbar-height:58px;--inspector-width:328px;--dock-top:15px;--control-height:88px;--font-micro:.7rem;--font-xs:.75rem;--font-sm:.8125rem;--font-md:.875rem;color:var(--ink);background:var(--ground);font-family:var(--font-ui);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}@media (prefers-color-scheme:dark){:root:not([data-theme]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:oklch(16.5% .024 198)}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:oklch(16.5% .024 198);--stage:oklch(19.5% .028 198);--surface-sunken:oklch(18.5% .026 198);--surface:oklch(21.5% .03 198);--surface-raised:oklch(24.5% .03 198);--surface-overlay:oklch(20.5% .03 198/.93);--surface-overlay-strong:oklch(20.5% .03 198/.97);--rule:oklch(32.5% .03 198);--rule-strong:oklch(43.5% .048 194);--ink:oklch(95.5% .012 198);--ink-soft:oklch(88.5% .016 198);--ink-muted:oklch(76% .026 198);--ink-dim:oklch(65% .032 198);--ink-faint:oklch(60.5% .034 198);--ink-ghost:oklch(43% .034 198);--fill-1:color-mix(in oklch, var(--ink) 3%, transparent);--fill-2:color-mix(in oklch, var(--ink) 6%, transparent);--fill-3:color-mix(in oklch, var(--ink) 10%, transparent);--shade:oklch(10% .015 198/.3);--scrim:oklch(8% .015 198/.82);--shadow-sm:0 10px 32px oklch(3% .01 198/.3);--shadow-md:0 15px 44px oklch(3% .01 198/.46);--shadow-lg:0 30px 80px oklch(3% .01 198/.6);--glow-accent:0 0 24px color-mix(in oklch, var(--accent) 24%, transparent);--text-flash:0 0 22px color-mix(in oklch, var(--accent) 50%, transparent);--accent:oklch(80% .125 194);--accent-hi:oklch(86% .115 194);--accent-2:oklch(72% .115 224);--on-accent:oklch(18.5% .028 194);--good:oklch(79% .145 160);--on-good:oklch(19.5% .04 160);--warn:oklch(80% .14 68);--warn-vivid:oklch(80% .145 68);--on-warn:oklch(20% .04 68);--gold:oklch(87% .145 86);--gold-vivid:oklch(87% .145 86);--on-gold:oklch(21% .04 86);--danger:oklch(70% .165 28);--danger-vivid:oklch(70% .165 28);--on-danger:oklch(17.5% .045 28);--versus:oklch(67% .18 295);--versus-hi:oklch(74.5% .145 295);--on-versus:oklch(18.5% .05 295);--stage-grid-major:oklch(36% .035 198);--stage-grid-minor:oklch(26.5% .03 198);--stage-sky:oklch(90% .05 230);--stage-bounce:oklch(21% .02 198);--stage-key:oklch(97.5% .012 250);--skin:oklch(75% .06 55);--eye:oklch(25% .02 240);--hair:oklch(52% .085 50);--hair-emissive:oklch(20% .055 50);--hair-target:oklch(78% .1 224);--hair-target-emissive:oklch(60% .09 224);--robot-base:oklch(33% .032 240);--robot-link:oklch(58% .04 240);--robot-joint:oklch(72% .115 194);--robot-joint-active:oklch(80% .145 68);--robot-tool:oklch(70% .165 28);--robot-blade:oklch(77% .025 245);--node-reachable:oklch(72% .115 224);--node-planned:oklch(87% .145 86);--node-blocked:oklch(70% .165 28);--node-bounds:oklch(75% .04 224);--block-grid:oklch(31% .03 198);--block-motion:oklch(62% .105 194);--block-logic:oklch(58% .155 295);--block-loop:oklch(68% .135 60);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--track-display:-.02em}:root{--panel:var(--surface-overlay);--panel-strong:var(--surface);--panel-border:var(--rule);--panel-border-strong:var(--rule-strong);--muted:var(--ink-dim);--muted-strong:var(--ink-muted);--cyan:var(--accent);--cyan-soft:color-mix(in oklch, var(--accent) 13%, transparent)}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;min-height:100%;margin:0;overflow:hidden}body{background:var(--ground)}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.phase-kicker{color:var(--cyan);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-xs);letter-spacing:.17em;margin:0;font-weight:700}.bootstrap-screen{text-align:center;background:radial-gradient(circle at 50% 35%, color-mix(in oklch, var(--accent) 18%, transparent), transparent 36%), var(--ground);place-content:center;justify-items:center;gap:.65rem;min-height:100dvh;padding:2rem;display:grid}.bootstrap-screen h1{letter-spacing:-.055em;margin:0;font-size:clamp(2.4rem,6vw,4.4rem)}.bootstrap-screen>p:last-of-type{color:var(--muted-strong);margin:0}.bootstrap-screen>button{border:1px solid var(--panel-border-strong);background:var(--cyan-soft);cursor:pointer;border-radius:8px;align-items:center;gap:.45rem;margin-top:.5rem;padding:.65rem .9rem;display:inline-flex}.practice-choice__modes{flex-wrap:wrap;justify-content:center;gap:.6rem;margin:.4rem 0 .2rem;display:flex}.practice-choice>p{max-width:46ch}.practice-endless{align-items:center;gap:.6rem;margin-top:.6rem;display:flex}.practice-endless button{border:1px solid var(--panel-border-strong);background:var(--cyan-soft);cursor:pointer;border-radius:8px;align-items:center;gap:.45rem;padding:.65rem .9rem;display:inline-flex}.practice-endless__go{color:var(--accent);font-weight:600;border-color:var(--accent)!important}.practice-endless__countdown{color:var(--muted-strong);font-size:var(--font-sm);margin:0}.practice-endless__countdown strong{color:var(--accent);font-variant-numeric:tabular-nums}.practice-endless__runs{color:var(--muted);font-size:var(--font-sm);margin:0}.spin{color:var(--cyan);animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.workbench{background:var(--ground);width:100%;height:100dvh;overflow:hidden}.topbar{z-index:20;width:100%;height:var(--topbar-height);border-bottom:1px solid var(--panel-border);background:var(--surface-overlay-strong);box-shadow:0 10px 32px var(--shadow-sm);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);grid-template-columns:1fr auto 1fr;align-items:center;padding:0 14px 0 16px;display:grid;position:relative}.brand-lockup,.topbar-actions,.challenge-crumb{align-items:center;display:flex}.brand-lockup{gap:.65rem}.brand-mark{border:1px solid color-mix(in oklch, var(--accent) 30%, transparent);width:32px;height:32px;color:var(--cyan);background:var(--cyan-soft);border-radius:7px;place-items:center;display:grid}.brand-lockup h1{letter-spacing:-.02em;margin:0;font-size:1rem;font-weight:740}.challenge-crumb span{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.13em;font-weight:700}.challenge-crumb{color:var(--ink-dim);gap:.55rem}.challenge-crumb strong{color:var(--ink-soft);font-size:var(--font-sm);font-weight:600}.topbar-actions{justify-self:end;gap:7px}.topbar-actions button,.panel-header button{border:1px solid var(--panel-border);width:32px;height:32px;color:var(--muted-strong);background:var(--fill-1);cursor:pointer;border-radius:6px;place-items:center;padding:0;display:grid}.topbar-actions button:hover,.panel-header button:hover{color:var(--ink);border-color:var(--panel-border-strong)}.local-badge{border:1px solid color-mix(in oklch, var(--accent) 16%, transparent);height:28px;color:var(--cyan);background:color-mix(in oklch, var(--accent) 7%, transparent);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.12em;border-radius:999px;align-items:center;gap:6px;padding:0 9px;font-weight:700;display:flex}.local-badge i{background:var(--good);width:6px;height:6px;box-shadow:0 0 0 3px color-mix(in oklch, var(--good) 12%, transparent);border-radius:50%}.stage{width:100%;height:calc(100vh - var(--topbar-height));height:calc(100dvh - var(--topbar-height));position:relative;overflow:hidden}.simulator-canvas{background:var(--stage);position:absolute;inset:0}.simulator-canvas canvas{background:var(--stage);display:block}.scene-status-overlay{z-index:6;color:var(--ink);text-align:center;background:radial-gradient(circle at 50% 45%, color-mix(in oklch, var(--accent) 18%, transparent), transparent 32%), var(--stage);place-content:center;justify-items:center;gap:8px;padding:24px;display:grid;position:absolute;inset:0}.scene-status-overlay>svg{color:var(--orange)}.scene-status-overlay strong{font-size:1rem}.scene-status-overlay span{max-width:420px;color:var(--muted-strong);font-size:var(--font-sm);line-height:1.55}.scene-status-overlay button{border:1px solid var(--panel-border-strong);height:36px;color:var(--cyan);background:var(--cyan-soft);font-size:var(--font-sm);cursor:pointer;border-radius:6px;align-items:center;gap:7px;margin-top:4px;padding:0 12px;display:inline-flex}.webgl-fallback{min-height:100%;color:var(--ink);text-align:center;place-content:center;gap:.5rem;padding:2rem;display:grid}.webgl-fallback span{color:var(--muted)}.side-panel{z-index:8;border:1px solid var(--panel-border);background:var(--panel);box-shadow:0 22px 60px var(--shadow-md);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:10px;flex-direction:column;transition:transform .22s,opacity .18s;display:flex;position:absolute;top:12px;bottom:56px;overflow:hidden}.side-panel--left{width:min(420px,100vw - 48px);left:12px}.side-panel--right{right:12px;top:calc(var(--dock-top) + var(--control-height) + 12px);width:var(--inspector-width)}.stage:has(.control-button--submit) .side-panel--right{top:calc(var(--dock-top) + var(--control-height) + 52px)}.side-panel--left.is-closed{visibility:hidden;opacity:0;pointer-events:none;transform:translate(calc(-100% - 18px))}.side-panel--right.is-closed{visibility:hidden;opacity:0;pointer-events:none;transform:translate(calc(100% + 18px))}.panel-header{border-bottom:1px solid var(--panel-border);background:var(--fill-1);flex:0 0 50px;justify-content:space-between;align-items:center;padding:0 10px 0 14px;display:flex}.panel-header>div{gap:2px;display:grid}.panel-header span,.section-heading,.panel-footer{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.13em;font-weight:700}.panel-header strong{color:var(--ink-soft);font-size:var(--font-sm)}.panel-header button{width:28px;height:28px}.panel-footer{border-top:1px solid var(--panel-border);background:var(--surface-sunken);flex:0 0 30px;justify-content:space-between;align-items:center;padding:0 12px;display:flex}.panel-footer span{align-items:center;gap:5px;display:inline-flex}.blockly-editor{background:var(--surface);flex:1;min-height:0;position:relative}.blockly-editor__surface{position:absolute;inset:0}.blockly-editor__lock{z-index:100;color:var(--ink-muted);background:color-mix(in oklch, var(--ground) 32%, transparent);font-size:var(--font-sm);text-align:center;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);cursor:not-allowed;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0 16px;display:flex;position:absolute;inset:0}.blockly-editor__lock span{color:var(--orange);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.15em;font-weight:800}.blocklySvg{background:var(--surface)!important}.blocklyToolbox{border-right:1px solid var(--panel-border)!important;background:var(--surface-sunken)!important}.blocklyToolboxCategory{border-radius:5px;height:34px!important;margin:4px 6px!important}.blocklyToolboxCategoryLabel{font-family:var(--font-ui)!important;font-size:14px!important}.blocklyFlyoutBackground{fill:var(--surface-raised)!important;fill-opacity:.97!important}.blocklyScrollbarHandle{fill:var(--ink-ghost)!important}.blocklyGridPattern line{stroke:var(--stage-grid-major)}.inspector{scrollbar-color:var(--ink-ghost) transparent;scrollbar-width:thin;flex:1;min-height:0;overflow:hidden auto}.inspector-section{border-bottom:1px solid var(--panel-border);padding:14px}.section-heading{justify-content:space-between;align-items:center;margin-bottom:11px;display:flex}.challenge-card h2{color:var(--ink);letter-spacing:-.025em;margin:0 0 6px;font-size:1rem}.challenge-card>p{color:var(--ink-dim);font-size:var(--font-sm);margin:0 0 12px;line-height:1.55}.status-pill{color:var(--ink-muted);background:var(--fill-2);letter-spacing:.06em;border-radius:4px;padding:3px 6px}.status-pill--running,.status-pill--completed{color:var(--good);background:color-mix(in oklch, var(--good) 10%, transparent)}.status-pill--paused{color:var(--orange);background:color-mix(in oklch, var(--warn) 12%, transparent)}.status-pill--error{color:var(--danger);background:color-mix(in oklch, var(--danger) 12%, transparent)}.target-toggle{border:1px solid var(--panel-border);width:100%;height:34px;color:var(--ink-muted);background:var(--fill-1);font-size:var(--font-sm);cursor:pointer;border-radius:6px;align-items:center;gap:7px;padding:0 9px;display:flex}.target-toggle span{color:var(--ink-faint);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);margin-left:auto}.target-toggle.is-active{color:var(--cyan);border-color:color-mix(in oklch, var(--accent) 24%, transparent);background:var(--cyan-soft)}.target-toggle.is-active span{color:var(--cyan)}.joint-list{gap:4px;display:grid}.servo-angle-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;display:grid}.servo-angle-cell{border:1px solid color-mix(in oklch, var(--accent) 16%, transparent);background:var(--cyan-soft);text-align:center;border-radius:5px;gap:2px;min-width:0;padding:7px 2px;display:grid}.servo-angle-cell strong,.servo-angle-cell output{color:var(--cyan);font-family:SFMono-Regular,Consolas,monospace}.servo-angle-cell strong{font-size:var(--font-micro)}.servo-angle-cell output{font-size:var(--font-xs)}.servo-angle-cell small{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:.58rem;overflow:hidden}.servo-angle-cell.is-active{border-color:color-mix(in oklch, var(--warn) 48%, transparent);background:color-mix(in oklch, var(--warn) 12%, transparent)}.servo-angle-cell.is-active strong,.servo-angle-cell.is-active output{color:var(--orange)}.joint-row{background:var(--fill-1);border:1px solid #0000;border-radius:5px;justify-content:space-between;align-items:center;min-height:41px;padding:5px 8px;display:flex}.joint-row.is-active{border-color:color-mix(in oklch, var(--warn) 24%, transparent);background:color-mix(in oklch, var(--warn) 7%, transparent)}.joint-row>div{display:grid}.joint-row strong{color:var(--ink-soft);font-size:var(--font-xs);font-weight:600}.joint-row small{color:var(--ink-faint);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro)}.joint-row output{color:var(--ink);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-sm)}.coordinate-readout{border-top:1px dashed var(--panel-border);justify-content:space-between;align-items:center;margin-top:8px;padding-top:10px;display:flex}.coordinate-readout>span{color:var(--ink-faint);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.1em}.coordinate-readout>div{gap:9px;display:flex}.coordinate-readout>div span{color:var(--ink-muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-xs)}.coordinate-readout small{color:var(--cyan);font-size:var(--font-micro);margin-right:3px}.metric-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.metric-card{border:1px solid var(--panel-border);background:var(--fill-1);border-radius:6px;align-content:center;min-height:50px;padding:7px 9px;display:grid}.metric-card span,.duration-row span{color:var(--ink-dim);font-size:var(--font-xs)}.metric-card strong{color:var(--ink);margin-top:1px;font-family:SFMono-Regular,Consolas,monospace;font-size:1rem}.duration-row{justify-content:space-between;align-items:center;margin-top:8px;padding:7px 2px 0;display:flex}.duration-row strong{color:var(--cyan);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-sm)}.result-section{border-bottom:0}.final-score{align-items:baseline;margin:2px 0 12px;display:flex}.final-score>span{color:var(--ink-dim);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.1em;margin-right:auto}.final-score strong{color:var(--cyan);letter-spacing:-.06em;font-size:2rem;line-height:1}.final-score small{color:var(--ink-faint);font-size:var(--font-micro);margin-left:4px}.score-bars{gap:8px;display:grid}.score-row>div:first-child{color:var(--ink-dim);font-size:var(--font-xs);justify-content:space-between;margin-bottom:4px;display:flex}.score-row strong{color:var(--ink-soft);font-family:SFMono-Regular,Consolas,monospace}.score-track{background:var(--fill-3);border-radius:99px;height:3px;overflow:hidden}.score-track span{border-radius:inherit;background:linear-gradient(90deg, color-mix(in oklch, var(--accent) 60%, var(--surface)), var(--cyan));height:100%;display:block}.result-placeholder{border:1px dashed var(--panel-border);color:var(--ink-dim);background:var(--fill-1);font-size:var(--font-xs);text-align:center;border-radius:6px;padding:13px;line-height:1.55}.control-dock{z-index:12;top:var(--dock-top);width:var(--inspector-width);border:1px solid var(--panel-border-strong);background:var(--surface-overlay);box-shadow:0 15px 44px var(--shadow-md);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:10px;grid-template-columns:repeat(4,1fr);align-items:center;gap:4px;padding:5px;display:grid;position:absolute;right:12px}.control-dock__divider{display:none}.control-button--submit{grid-column:span 2}.control-dock:not(:has(.control-button--submit))>.control-button:nth-last-child(-n+3){grid-column:span 2}.control-dock .control-button{white-space:nowrap;justify-content:center;min-width:0;padding:0 6px}.control-button{height:36px;color:var(--ink-muted);font-size:var(--font-sm);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:0 11px;font-weight:600;display:inline-flex}.control-button:hover:not(:disabled){color:var(--ink);background:var(--fill-2)}.control-button--primary{color:var(--on-accent);background:var(--cyan)}.control-button--primary:hover:not(:disabled){color:var(--on-accent);background:var(--accent-hi)}.control-button--quiet{color:var(--ink-dim)}.control-button:disabled{opacity:.32;cursor:not-allowed}.log-drawer{z-index:11;width:min(330px,100vw - 28px);position:absolute;bottom:15px;left:14px}.log-drawer__summary{border:1px solid var(--panel-border);width:100%;height:34px;color:var(--ink-dim);background:var(--surface-overlay);text-align:left;cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:7px;grid-template-columns:auto auto 1fr auto;align-items:center;gap:7px;padding:0 9px;display:grid}.log-drawer__summary>span,.log-drawer__summary>small{font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.1em;font-weight:700}.log-drawer__summary>span{color:var(--ink-muted)}.log-drawer__summary p{font-size:var(--font-xs);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.log-drawer__body{border:1px solid var(--panel-border);background:var(--surface-overlay-strong);width:min(560px,100vw - 28px);height:210px;box-shadow:0 18px 50px var(--shadow-md);border-radius:9px;position:absolute;bottom:42px;left:0;overflow:hidden}.log-drawer__title{border-bottom:1px solid var(--panel-border);height:36px;color:var(--ink-dim);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);justify-content:space-between;align-items:center;padding:0 9px 0 12px;display:flex}.log-drawer__title button{width:24px;height:24px;color:var(--ink-dim);cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid}.log-drawer ol{height:calc(100% - 36px);margin:0;padding:7px 10px 12px;list-style:none;overflow-y:auto}.log-drawer li{color:var(--ink-muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-xs);grid-template-columns:46px 1fr;gap:8px;padding:4px 2px;line-height:1.35;display:grid}.log-drawer li time{color:var(--ink-faint)}.log-drawer li[data-type=collision] span{color:var(--orange)}.log-drawer li[data-type=score] span{color:var(--cyan)}.log-drawer li[data-type=error] span{color:var(--danger)}.edge-tab{z-index:7;border:1px solid var(--panel-border);color:var(--ink-dim);background:var(--surface-overlay);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.08em;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:6px;padding:7px 8px;display:flex;position:absolute;top:50%}.edge-tab--left{border-left:0;border-radius:0 6px 6px 0;left:0;transform:translateY(-50%)}.edge-tab--right{border-right:0;border-radius:6px 0 0 6px;right:0;transform:translateY(-50%)}.error-banner{z-index:14;max-width:min(620px, calc(100vw - var(--inspector-width) * 2 - 60px));border:1px solid color-mix(in oklch, var(--danger) 36%, transparent);color:color-mix(in oklch, var(--danger) 55%, var(--ink));background:color-mix(in oklch, var(--danger) 16%, var(--surface));box-shadow:0 12px 35px var(--shadow-md);font-size:var(--font-sm);border-radius:7px;grid-template-columns:auto minmax(160px,1fr) auto;align-items:center;gap:10px;padding:9px 10px 9px 12px;display:grid;position:absolute;top:14px;left:50%;transform:translate(-50%)}.error-banner strong{color:var(--danger);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.1em}.error-banner button{width:24px;height:24px;color:color-mix(in oklch, var(--danger) 60%, var(--ink-muted));cursor:pointer;background:0 0;border:0;padding:0}.stage-readout{z-index:5;pointer-events:none;justify-items:end;display:grid;position:absolute;bottom:20px;right:354px}.stage-readout span{color:var(--ink-faint);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.12em}.stage-readout strong{color:var(--ink-dim);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-xs);font-weight:500}@media (width<=1250px){.side-panel--left{width:390px}:root{--inspector-width:302px}.stage-readout{display:none}.log-drawer{width:270px}}@media (width<=980px){.challenge-crumb{display:none}.topbar{grid-template-columns:1fr auto}.side-panel--right{visibility:hidden;opacity:0;pointer-events:none}.control-button{padding:0 8px}.log-drawer{display:none}}@media (height<=720px){:root{--dock-top:10px}.side-panel{bottom:52px}.side-panel--left{top:8px}.panel-header{flex-basis:44px}.inspector-section{padding:10px 12px}.joint-row{min-height:34px}.challenge-card>p{display:none}.log-drawer{bottom:10px}}.home,.menu-screen{background:var(--ground);flex-direction:column;justify-content:safe center;align-items:center;gap:clamp(16px,3vh,30px);width:100%;min-height:100dvh;max-height:100dvh;padding:clamp(20px,4vh,44px) 20px;display:flex;position:relative;overflow-y:auto}.home__aura,.menu-screen__aura{z-index:0;background:radial-gradient(ellipse 60% 45% at 50% 0%, color-mix(in oklch, var(--accent) 16%, transparent), transparent 70%), radial-gradient(ellipse 50% 40% at 15% 100%, color-mix(in oklch, var(--versus) 12%, transparent), transparent 70%), radial-gradient(ellipse 45% 35% at 90% 85%, color-mix(in oklch, var(--warn) 10%, transparent), transparent 70%);pointer-events:none;position:absolute;inset:0}.home>*,.menu-screen>*{z-index:1;position:relative}.home__head,.menu-screen__head{text-align:center;justify-items:center;gap:8px;display:grid}.brand-mark--large{width:52px;height:52px;box-shadow:0 0 44px color-mix(in oklch, var(--accent) 24%, transparent);border-radius:13px;margin-bottom:6px}.home__head h1,.menu-screen__head h1{letter-spacing:-.045em;background:linear-gradient(180deg, var(--ink), var(--ink-muted));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2.3rem,5.5vw,3.6rem);font-weight:800}.home__tagline,.menu-screen__lede{max-width:46ch;color:var(--muted-strong);font-size:var(--font-md);margin:0;line-height:1.6}.phase-kicker{align-items:center;gap:6px;display:inline-flex}.home__modes{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;width:min(1180px,100%);display:grid}.mode-card{border:1px solid var(--panel-border);background:linear-gradient(160deg, var(--fill-2), var(--fill-1)), var(--panel-strong);text-align:left;cursor:pointer;border-radius:14px;justify-items:start;gap:9px;padding:22px 20px 18px;transition:transform .16s,border-color .16s,box-shadow .16s;display:grid}.mode-card:hover{border-color:var(--panel-border-strong);box-shadow:0 18px 44px var(--shadow-md);transform:translateY(-3px)}.mode-card__icon{width:42px;height:42px;color:var(--cyan);background:var(--cyan-soft);border-radius:11px;place-items:center;display:grid}.mode-card--versus .mode-card__icon{color:var(--violet);background:color-mix(in oklch, var(--versus) 14%, transparent)}.mode-card strong{color:var(--ink);letter-spacing:-.02em;font-size:1.25rem}.mode-card__body{color:var(--muted-strong);font-size:var(--font-sm);line-height:1.55}.mode-card__go{color:var(--cyan);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-xs);letter-spacing:.1em;margin-top:3px;font-weight:700}.mode-card--versus .mode-card__go{color:var(--violet)}.home__foot{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.name-field{border:1px solid var(--panel-border);background:var(--fill-1);border-radius:9px;align-items:center;gap:9px;height:38px;padding:0 6px 0 12px;display:flex}.name-field span{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.13em;font-weight:700}.name-field input,.name-field select,.code-input{width:148px;height:30px;color:var(--ink);background:var(--fill-2);font-size:var(--font-sm);border:1px solid #0000;border-radius:6px;padding:0 9px}.name-field select{width:170px}.home__foot .theme-toggle{border:1px solid var(--panel-border);width:38px;height:38px;color:var(--muted-strong);background:var(--fill-1);cursor:pointer;border-radius:999px;place-items:center;padding:0;display:grid}.home__foot .theme-toggle:hover{color:var(--ink);border-color:var(--panel-border-strong)}.link-chip{border:1px solid var(--panel-border);height:38px;color:var(--muted-strong);background:var(--fill-1);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.11em;border-radius:999px;align-items:center;gap:7px;padding:0 13px;font-weight:700;display:inline-flex}.link-chip--online{color:var(--green);border-color:color-mix(in oklch, var(--good) 28%, transparent);background:color-mix(in oklch, var(--good) 7%, transparent)}.menu-screen__back{position:absolute;top:18px;left:18px}.ghost-button{border:1px solid var(--panel-border);height:32px;color:var(--muted-strong);background:var(--fill-1);font-size:var(--font-xs);cursor:pointer;border-radius:7px;align-items:center;gap:6px;padding:0 11px;display:inline-flex}.ghost-button:hover{color:var(--ink);border-color:var(--panel-border-strong)}.menu-screen__columns{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;width:min(860px,100%);display:grid}.menu-screen__columns:has(.format-cards){grid-template-columns:minmax(0,1.45fr) minmax(260px,1fr);width:min(980px,100%)}@media (width<=820px){.menu-screen__columns:has(.format-cards){grid-template-columns:1fr}}.menu-card{border:1px solid var(--panel-border);background:var(--panel-strong);border-radius:12px;align-content:start;gap:10px;padding:18px;display:grid}.menu-card h2{color:var(--ink);letter-spacing:-.015em;align-items:center;gap:8px;margin:0;font-size:1rem;display:flex}.menu-card h2 em{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-xs);margin-left:auto;font-style:normal}.menu-card>p{color:var(--muted);font-size:var(--font-sm);margin:0;line-height:1.5}.menu-card form{gap:9px;display:grid}.menu-card__foot{color:var(--ink-faint);font-size:var(--font-xs);align-items:center;gap:6px;margin:0;line-height:1.5;display:flex}.code-input{letter-spacing:.22em;text-align:center;text-transform:uppercase;width:100%;height:44px;font-family:SFMono-Regular,Consolas,monospace;font-size:1.1rem}.segmented{border:1px solid var(--panel-border);background:var(--fill-1);border-radius:8px;padding:3px;display:flex}.segmented>span{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;flex:none;align-items:center;padding:0 11px 0 8px;font-weight:700;display:inline-flex}.segmented button{height:30px;color:var(--muted-strong);font-size:var(--font-xs);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:1}.segmented button.is-active{color:var(--on-accent);background:var(--cyan);font-weight:700}.cutter-grid-summary{gap:8px;margin:12px 0 0;display:grid}.backend-replay-notice{z-index:82;border:1px solid color-mix(in oklch, var(--gold) 44%, transparent);background:var(--surface-overlay);max-width:min(420px,100vw - 48px);color:var(--gold);text-align:center;pointer-events:none;border-radius:7px;padding:8px 12px;font-size:12px;position:absolute;bottom:86px;left:50%;transform:translate(-50%)}.planning-progress{z-index:6;border:1px solid var(--rule-strong);background:var(--surface-overlay);max-width:min(92vw,42rem);color:var(--ink-soft);letter-spacing:.02em;border-radius:.45rem;padding:.55rem .85rem;font-size:.78rem;position:absolute;bottom:5.25rem;left:50%;transform:translate(-50%)}.cutter-grid-summary div{grid-template-columns:72px minmax(0,1fr);gap:8px;display:grid}.cutter-grid-summary dt{color:var(--muted);font-size:var(--font-xs)}.cutter-grid-summary dd{color:var(--muted-strong);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-xs);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.cutter-grid-motion-diagnostics{border-top:1px solid var(--rule);margin-top:12px;padding-top:10px}.cutter-grid-motion-diagnostics summary{cursor:pointer;color:var(--muted-strong);font-size:var(--font-xs);letter-spacing:.04em}.cutter-grid-motion-joints{color:var(--muted);gap:5px;margin-top:10px;font-family:SFMono-Regular,Consolas,monospace;font-size:.68rem;display:grid}.cutter-grid-motion-joints div{grid-template-columns:minmax(74px,1fr) repeat(4,auto);gap:6px;display:grid}.cutter-grid-motion-joints strong{color:var(--muted-strong);font-family:inherit;font-weight:600}.cutter-grid-legend{color:var(--muted);font-size:var(--font-xs);grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin-top:12px;display:grid}.cutter-grid-legend span{align-items:center;gap:6px;display:flex}.cutter-grid-legend i{border-radius:50%;width:8px;height:8px}.cutter-grid-legend .is-reachable,.cutter-grid-legend .is-executed{background:var(--accent-2)}.cutter-grid-legend .is-blocked{background:var(--danger-vivid)}.cutter-grid-legend .is-planned{background:var(--gold-vivid)}.programming-mode-switch{flex:none;margin:10px 12px 0}.programming-mode-switch button:disabled{cursor:not-allowed;opacity:.46}.cutter-grid-lessons__head{margin-top:58px}.lesson-row--cutter-grid .lesson-row__index{color:var(--on-accent);background:var(--cyan)}.tutorial-track-list{margin-top:18px}.cutter-grid-lesson-card{gap:8px;display:grid}.cutter-grid-lesson-card h2,.cutter-grid-lesson-card p{margin:0}.cutter-grid-lesson-card__lesson-name{letter-spacing:.08em;text-transform:uppercase;font-family:SFMono-Regular,Consolas,monospace;font-weight:700;color:var(--muted)!important;font-size:var(--font-micro)!important}.lesson-section-kind{border:1px solid color-mix(in oklch, var(--accent) 24%, transparent);width:fit-content;color:var(--cyan);background:color-mix(in oklch, var(--accent) 7%, transparent);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.08em;border-radius:5px;align-items:center;gap:5px;padding:4px 7px;font-weight:700;display:inline-flex}.lesson-section-back{height:36px;padding:0 10px}.servo-checkpoint-actions{align-items:center;gap:9px;margin-left:auto;display:flex}.big-button{border:1px solid var(--panel-border-strong);height:44px;color:var(--ink);background:var(--fill-2);font-size:var(--font-md);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:650;transition:transform .13s,background .13s;display:inline-flex}.big-button:hover:not(:disabled){background:var(--fill-3);transform:translateY(-1px)}.big-button--primary{color:var(--on-accent);background:linear-gradient(180deg, var(--accent-hi), var(--cyan));box-shadow:0 10px 28px color-mix(in oklch, var(--accent) 24%, transparent);border-color:#0000}.big-button--primary:hover:not(:disabled){background:linear-gradient(180deg, var(--accent-hi), var(--accent))}.big-button--wide{width:min(420px,100%)}.big-button:disabled{opacity:.4;cursor:not-allowed}.connection-note{border:1px solid var(--panel-border);background:var(--fill-1);border-radius:10px;align-items:flex-start;gap:11px;width:min(860px,100%);padding:12px 14px;display:flex}.connection-note--practice{border-color:color-mix(in oklch, var(--warn) 24%, transparent);background:color-mix(in oklch, var(--warn) 7%, transparent);color:var(--orange)}.connection-note--online{border-color:color-mix(in oklch, var(--good) 24%, transparent);background:color-mix(in oklch, var(--good) 7%, transparent);color:var(--green)}.connection-note>svg{flex:none;margin-top:2px}.connection-note div{gap:3px;display:grid}.connection-note strong{font-size:var(--font-sm)}.connection-note span{color:var(--muted-strong);font-size:var(--font-xs);line-height:1.55}.room-code{border:1px solid var(--panel-border-strong);background:var(--cyan-soft);border-radius:12px;align-items:center;gap:12px;padding:10px 10px 10px 18px;display:flex}.room-code>span{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.14em;font-weight:700}.room-code strong{color:var(--cyan);letter-spacing:.16em;font-family:SFMono-Regular,Consolas,monospace;font-size:1.6rem}.room-code button{border:1px solid var(--panel-border);width:32px;height:32px;color:var(--muted-strong);background:var(--shade);cursor:pointer;border-radius:7px;place-items:center;display:grid}.menu-screen__hint{max-width:46ch;color:var(--ink-faint);font-size:var(--font-xs);text-align:center;margin:0;line-height:1.5}.menu-screen__privacy-note{max-width:70ch;color:var(--ink-dim);font-size:var(--font-xs);text-align:center;margin:-6px auto 0}.roster{gap:5px;margin:0;padding:0;list-style:none;display:grid}.roster__crew{border:1px dashed var(--panel-border-strong);width:26px;height:26px;color:var(--muted);cursor:pointer;font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);background:0 0;border-radius:8px;flex:none;place-items:center;margin-left:auto;padding:0;font-weight:700;display:grid}.roster__crew.is-set{color:var(--on-gold);background:var(--gold);border-style:solid}.roster__row{background:var(--fill-1);color:var(--ink-soft);font-size:var(--font-sm);border:1px solid #0000;border-radius:8px;align-items:center;gap:9px;padding:7px 9px;display:flex}.roster__avatar{width:26px;height:26px;color:var(--cyan);background:var(--cyan-soft);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);border-radius:8px;flex:none;place-items:center;font-weight:700;display:grid}.tag{font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.08em;border-radius:5px;align-items:center;gap:4px;padding:2px 6px;font-weight:700;display:inline-flex}.tag--you{color:var(--cyan);background:var(--cyan-soft);margin-left:auto}.tag--bot{color:var(--orange);background:color-mix(in oklch, var(--warn) 12%, transparent)}.tag--you+.tag--bot{margin-left:0}.roster__row .tag--bot:only-of-type{margin-left:auto}.roster__local-time{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);align-items:center;gap:4px;margin-left:auto;display:inline-flex}.tag+.roster__local-time{margin-left:0}.rule-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.rule-list li{color:var(--cyan);gap:10px;display:flex}.rule-list li>svg{flex:none;margin-top:2px}.rule-list div{gap:2px;display:grid}.rule-list strong{color:var(--ink-soft);font-size:var(--font-sm)}.rule-list span{color:var(--muted);font-size:var(--font-xs);line-height:1.5}.hud{z-index:13;pointer-events:none;justify-items:center;gap:8px;display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%)}:is(.stage:has(.error-banner) .hud,.stage:has(.error-banner) .tutorial){top:66px}.hud__timer{border:1px solid var(--panel-border-strong);background:var(--surface-overlay);width:178px;box-shadow:0 14px 40px var(--shadow-md);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:12px;justify-items:center;gap:2px;padding:9px 16px 11px;display:grid;position:relative}.hud__timer>span{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.16em;font-weight:700}.hud__timer strong{color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-family:SFMono-Regular,Consolas,monospace;font-size:2rem;font-weight:700;line-height:1.05}.hud__timer-track{background:var(--fill-3);border-radius:99px;width:100%;height:3px;margin-top:5px;overflow:hidden}.hud__timer-track i{background:var(--cyan);transform-origin:0;height:100%;transition:transform .12s linear;display:block}.hud__timer--warning{border-color:color-mix(in oklch, var(--warn) 40%, transparent)}.hud__timer--warning strong{color:var(--orange)}.hud__timer--warning .hud__timer-track i{background:var(--orange)}.hud__timer--critical{border-color:color-mix(in oklch, var(--danger) 55%, transparent);animation:.9s ease-in-out infinite pulse-danger}.hud__timer--critical strong{color:var(--danger)}.hud__timer--critical .hud__timer-track i{background:var(--danger)}.hud__timer--closed strong,.hud__timer--closed>span{color:var(--muted)}@keyframes pulse-danger{0%,to{box-shadow:0 14px 40px var(--shadow-md)}50%{box-shadow:0 14px 40px var(--shadow-md), 0 0 0 5px color-mix(in oklch, var(--danger) 16%, transparent)}}.hud__fold{width:20px;height:20px;color:var(--muted);cursor:pointer;pointer-events:auto;background:0 0;border:0;border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;top:3px;right:3px}.hud__fold:hover{background:var(--fill-1);color:var(--ink)}.hud__roster{flex-wrap:wrap;justify-content:center;gap:5px;margin:0;padding:0;list-style:none;display:flex}.hud__player{border:1px solid var(--panel-border);color:var(--muted-strong);background:var(--surface-overlay);font-size:var(--font-xs);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;align-items:center;gap:6px;padding:4px 9px 4px 4px;display:flex}.hud__player .roster__avatar{border-radius:999px;width:20px;height:20px}.hud__player em{text-overflow:ellipsis;white-space:nowrap;max-width:96px;font-style:normal;overflow:hidden}.hud__player small{color:var(--muted);align-items:center;gap:2px;font-family:SFMono-Regular,Consolas,monospace;font-size:.58rem;display:inline-flex}.hud__player.is-you{border-color:var(--panel-border-strong);color:var(--ink)}.hud__player.is-submitted{border-color:color-mix(in oklch, var(--good) 32%, transparent);color:var(--green)}.hud__player.is-submitted .roster__avatar{color:var(--green);background:color-mix(in oklch, var(--good) 12%, transparent)}.hud__secrecy{color:var(--ink-muted);background:var(--surface-overlay);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.06em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;align-items:center;gap:5px;margin:0;padding:3px 9px;display:flex}.hud__ack{max-width:380px;font-size:var(--font-xs);text-align:center;border-radius:8px;padding:7px 12px;line-height:1.45;animation:.22s pop-in}.hud__ack.is-accepted{color:var(--green);border:1px solid color-mix(in oklch, var(--good) 32%, transparent);background:color-mix(in oklch, var(--good) 14%, var(--surface-overlay-strong))}.hud__ack.is-refused{color:color-mix(in oklch, var(--danger) 55%, var(--ink));border:1px solid color-mix(in oklch, var(--danger) 36%, transparent);background:color-mix(in oklch, var(--danger) 16%, var(--surface))}@keyframes pop-in{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:none}}.local-badge--live{color:var(--violet);border-color:color-mix(in oklch, var(--versus) 30%, transparent);background:color-mix(in oklch, var(--versus) 8%, transparent)}.local-badge--live i{background:var(--violet);box-shadow:0 0 0 3px color-mix(in oklch, var(--versus) 14%, transparent)}.control-button--accent{color:var(--orange)}.control-button--accent:hover:not(:disabled){color:var(--warn);background:color-mix(in oklch, var(--warn) 12%, transparent)}.control-button--submit{color:var(--on-versus);background:linear-gradient(180deg, var(--versus-hi), var(--violet));font-weight:700}.control-button--submit:hover:not(:disabled){color:var(--on-versus);background:linear-gradient(180deg, color-mix(in oklch, var(--versus-hi) 75%, var(--ink)), var(--versus-hi))}.round-flash{z-index:18;background:radial-gradient(circle at 50% 50%, color-mix(in oklch, var(--ground) 78%, transparent), color-mix(in oklch, var(--ground) 34%, transparent));pointer-events:none;place-content:center;justify-items:center;gap:4px;animation:1.4s forwards flash-out;display:grid;position:absolute;inset:0}.round-flash strong{color:var(--cyan);letter-spacing:-.06em;text-shadow:0 0 60px color-mix(in oklch, var(--accent) 50%, transparent);font-size:clamp(3.5rem,12vw,7rem);font-weight:800}.round-countdown__count{color:var(--cyan);font-variant-numeric:tabular-nums;letter-spacing:-.06em;text-shadow:0 0 60px color-mix(in oklch, var(--accent) 50%, transparent);font-size:clamp(4rem,16vw,9rem);font-weight:800;line-height:1}.round-flash span{color:var(--ink-muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-sm);letter-spacing:.12em}@keyframes flash-out{0%{opacity:0;transform:scale(1.08)}16%{opacity:1;transform:scale(1)}74%{opacity:1}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}.scoreboard{z-index:22;background:var(--scrim);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);place-content:center;padding:24px;animation:.26s pop-in;display:grid;position:absolute;inset:0}.scoreboard__panel{border:1px solid var(--panel-border-strong);background:var(--panel-strong);width:min(640px,100vw - 40px);max-height:calc(100dvh - 60px);box-shadow:0 30px 80px var(--shadow-lg);border-radius:16px;gap:14px;padding:22px;display:grid;overflow-y:auto}.scoreboard__head{color:var(--gold);grid-template-columns:auto 1fr;align-items:center;gap:12px;display:grid}.scoreboard__head h2{color:var(--ink);letter-spacing:-.03em;margin:2px 0 0;font-size:1.5rem}.scoreboard__metric{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.1em;text-transform:uppercase;grid-column:1/-1}.scoreboard__rows{gap:6px;margin:0;padding:0;list-style:none;display:grid}.scoreboard__row{background:var(--fill-1);border:1px solid #0000;border-radius:9px;grid-template-columns:30px 30px minmax(90px,1fr) minmax(60px,1.3fr) 58px;align-items:center;gap:10px;padding:9px 11px;animation:.32s backwards row-in;display:grid}@keyframes row-in{0%{opacity:0;transform:translate(-14px)}to{opacity:1;transform:none}}.scoreboard__row.is-winner{border-color:color-mix(in oklch, var(--gold-vivid) 32%, transparent);background:linear-gradient(90deg, color-mix(in oklch, var(--gold-vivid) 12%, transparent), color-mix(in oklch, var(--gold-vivid) 3%, transparent))}.scoreboard__row.is-you{border-color:var(--panel-border-strong)}.scoreboard__rank{color:var(--muted-strong);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-sm);place-items:center;font-weight:700;display:grid}.scoreboard__row.is-winner .scoreboard__rank{color:var(--gold)}.scoreboard__who{gap:1px;min-width:0;display:grid}.scoreboard__who strong{color:var(--ink);font-size:var(--font-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scoreboard__who small{color:var(--ink-faint);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro)}.scoreboard__bar{background:var(--fill-3);border-radius:99px;height:5px;overflow:hidden}.scoreboard__bar i{border-radius:inherit;background:linear-gradient(90deg, color-mix(in oklch, var(--accent) 60%, var(--surface)), var(--cyan));height:100%;transition:width .62s cubic-bezier(.16,1,.3,1);display:block}.scoreboard__row.is-winner .scoreboard__bar i{background:linear-gradient(90deg, color-mix(in oklch, var(--gold-vivid) 60%, var(--surface)), var(--gold))}.scoreboard__row output{color:var(--ink);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-md);text-align:right;font-variant-numeric:tabular-nums}.scoreboard__yours{color:var(--muted-strong);font-size:var(--font-sm);margin:0;line-height:1.5}.scoreboard__yours strong{color:var(--cyan)}.endgame-edge{z-index:11;pointer-events:none;box-shadow:inset 0 0 0 3px color-mix(in oklch, var(--danger) 55%, transparent), inset 0 0 70px color-mix(in oklch, var(--danger) 16%, transparent);animation:1.6s ease-in-out infinite endgame-breathe;position:fixed;inset:0}@keyframes endgame-breathe{0%,to{opacity:.55}50%{opacity:1}}.hud.is-endgame .hud__player:not(.is-submitted){border-color:color-mix(in oklch, var(--danger) 50%, transparent);animation:1.1s ease-in-out infinite endgame-breathe}.control-button--submit.is-urgent:not(:disabled){border-color:var(--danger);color:var(--on-danger);background:var(--danger);animation:1.1s ease-in-out infinite endgame-breathe}@media (prefers-reduced-motion:reduce){.endgame-edge,.hud.is-endgame .hud__player:not(.is-submitted),.control-button--submit.is-urgent:not(:disabled){animation:none}}.scoreboard__mark{font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.04em;border-radius:4px;padding:1px 5px;font-style:normal;font-weight:700}.scoreboard__mark.is-best{color:var(--on-good);background:var(--green)}.scoreboard__mark.is-streak{color:var(--gold);border:1px solid color-mix(in oklch, var(--gold-vivid) 40%, transparent)}.scoreboard__margin{font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:6px;display:flex;color:var(--muted)!important}.scoreboard__photo{color:var(--on-gold);background:var(--gold);letter-spacing:.06em;text-transform:uppercase;border-radius:4px;padding:1px 5px;font-style:normal;font-weight:700}.scoreboard__buzzer{color:var(--danger);font-style:normal}.scoreboard__coop{border:1px solid var(--panel-border-strong);border-radius:9px;grid-template-columns:auto 1fr;align-items:center;gap:4px 9px;margin:0;padding:10px 13px;display:grid}.scoreboard__coop.is-cleared{border-color:color-mix(in oklch, var(--good) 40%, transparent);background:color-mix(in oklch, var(--good) 10%, transparent);color:var(--green)}.scoreboard__coop.is-missed{border-color:color-mix(in oklch, var(--gold-vivid) 32%, transparent);background:color-mix(in oklch, var(--gold-vivid) 7%, transparent);color:var(--gold)}.scoreboard__coop strong{font-size:var(--font-md)}.scoreboard__coop small{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);font-variant-numeric:tabular-nums;grid-column:2}.scoreboard__loop{border:1px solid color-mix(in oklch, var(--versus) 32%, transparent);background:color-mix(in oklch, var(--versus) 8%, transparent);color:var(--violet);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);font-variant-numeric:tabular-nums;border-radius:9px;align-items:center;gap:10px;margin:0;padding:8px 12px;display:flex}.scoreboard__loop button{border:1px solid color-mix(in oklch, var(--versus) 40%, transparent);color:var(--violet);font:inherit;cursor:pointer;background:0 0;border-radius:6px;margin-left:auto;padding:4px 9px}.scoreboard__loop button:hover{border-color:var(--violet);background:color-mix(in oklch, var(--versus) 14%, transparent)}.format-cards{gap:7px;display:grid}.format-card{border:1px solid var(--panel-border);background:var(--fill-1);color:var(--muted-strong);cursor:pointer;text-align:left;border-radius:10px;grid-template-columns:76px 1fr;align-items:center;gap:4px 13px;padding:10px 13px;display:grid}.format-card strong,.format-card span{grid-column:2}.format-card:hover{border-color:var(--panel-border-strong)}.format-card.is-active{border-color:var(--cyan);background:var(--cyan-soft)}.format-card strong{color:var(--ink);font-size:var(--font-md);font-weight:650}.format-card.is-active strong{color:var(--cyan)}.format-card span{color:var(--muted);font-size:var(--font-xs);line-height:1.45}.format-diagram{grid-row:span 2;width:76px;height:auto}.format-diagram rect,.format-diagram line{fill:var(--ink-faint);stroke:var(--ink-faint)}.format-diagram .is-counted{fill:var(--gold);stroke:var(--gold)}.format-diagram__bar-line{fill:none;stroke:var(--cyan)}.hud__relay{border:1px solid color-mix(in oklch, var(--versus) 36%, transparent);background:color-mix(in oklch, var(--versus) 10%, transparent);color:var(--violet);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);font-variant-numeric:tabular-nums;text-align:center;border-radius:7px;margin:0;padding:5px 9px}.hud__relay.is-due{border-color:var(--danger);color:var(--danger);animation:.9s ease-in-out infinite endgame-breathe}@media (prefers-reduced-motion:reduce){.hud__relay.is-due{animation:none}}.lobby__scope{color:var(--gold);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);margin:12px 0 0;line-height:1.5}.lobby__target{margin-top:6px}.lobby__waiting{border:1px dashed var(--panel-border-strong);color:var(--muted-strong);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-sm);letter-spacing:.08em;text-transform:uppercase;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;margin:0;padding:.75rem 1rem;display:inline-flex}.scoreboard__aside{border:1px solid var(--panel-border);background:var(--fill-1);border-radius:9px;gap:5px;padding:9px 11px;display:grid}.scoreboard__aside h3{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.1em;text-transform:uppercase;flex-wrap:wrap;align-items:baseline;gap:6px;margin:0;font-weight:700;display:flex}.scoreboard__aside h3 em{color:var(--muted);letter-spacing:.02em;text-transform:none;font-style:normal;font-weight:400}.scoreboard__aside ol{gap:3px;margin:0;padding:0;list-style:none;display:grid}.scoreboard__aside li{color:var(--ink-soft);font-size:var(--font-sm);align-items:baseline;gap:8px;display:flex}.scoreboard__aside li.is-you strong{color:var(--cyan)}.scoreboard__aside li>span{width:16px;color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);flex:none}.scoreboard__aside li>small{color:var(--muted);font-size:var(--font-micro)}.scoreboard__aside li>output{color:var(--gold);font-variant-numeric:tabular-nums;margin-left:auto;font-family:SFMono-Regular,Consolas,monospace}.champion h1{color:var(--gold)}.champion__stats{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-sm);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:10px;margin:0;display:flex}.champion__stats strong{color:var(--gold);font-size:var(--font-md)}.champion__podium{border:1px solid var(--panel-border);background:var(--fill-1);text-align:left;border-radius:10px;gap:4px;width:min(420px,100%);margin:.4rem 0 0;padding:10px 12px;list-style:none;display:grid}.champion__podium li{color:var(--ink-soft);font-size:var(--font-sm);align-items:center;gap:8px;display:flex}.champion__podium li.is-you strong{color:var(--cyan)}.champion__podium li>span:first-child{width:16px;color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);flex:none}.champion__podium li>small{color:var(--muted);font-size:var(--font-micro)}.champion__podium li>output{color:var(--gold);font-variant-numeric:tabular-nums;margin-left:auto;font-family:SFMono-Regular,Consolas,monospace}.champion__crew{color:var(--muted-strong);font-size:var(--font-sm);align-items:center;gap:8px;margin:0;display:inline-flex}.champion__actions{flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:.6rem;display:flex}.scoreboard__disclaimer{border:1px solid color-mix(in oklch, var(--warn) 24%, transparent);color:var(--orange);background:color-mix(in oklch, var(--warn) 7%, transparent);font-size:var(--font-xs);border-radius:8px;align-items:flex-start;gap:7px;margin:0;padding:9px 11px;line-height:1.5;display:flex}.scoreboard__actions{flex-wrap:wrap;gap:9px;display:flex}.scoreboard__actions .big-button{flex:1;min-width:150px}.error-banner--static{width:min(860px,100%);position:static;transform:none}@media (prefers-reduced-motion:reduce){.mode-card,.big-button,.scoreboard__bar i,.hud__timer-track i{transition:none}.hud__timer--critical,.scoreboard,.scoreboard__row,.hud__ack{animation:none}.round-flash{display:none}}@media (width<=980px){.hud__roster,.hud__secrecy{display:none}.hud__timer{width:148px}.scoreboard__row{grid-template-columns:26px 26px minmax(80px,1fr) 52px}.scoreboard__bar{display:none}}.home__notice{max-width:62ch;color:var(--ink-faint);font-size:var(--font-xs);text-align:center;margin:0;line-height:1.6}.home__privacy{justify-items:center;gap:7px;max-width:720px;display:grid}.research-choice{color:var(--muted-strong);font-size:var(--font-xs);text-align:center;align-items:center;gap:9px;margin:0;display:flex}.research-choice strong{color:var(--cyan);font-family:SFMono-Regular,Consolas,monospace}.research-choice__hint{max-width:70ch;color:var(--ink-faint);font-size:var(--font-micro);text-align:center;margin:0}.consent-backdrop{z-index:100;background:var(--scrim);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);place-items:end center;padding:18px;display:grid;position:fixed;inset:0}.research-entry{background:radial-gradient(circle at 50% 15%, color-mix(in oklch, var(--accent) 14%, transparent), transparent 34%), var(--background);min-height:100dvh}.research-entry--declined{place-items:center;padding:24px;display:grid}.research-exit{border:1px solid var(--panel-border-strong);background:var(--panel);text-align:center;border-radius:14px;justify-items:center;gap:12px;width:min(560px,100%);padding:32px;display:grid}.research-exit>svg{color:var(--cyan)}.research-exit h1,.research-exit p{margin:0}.research-exit>p:not(.phase-kicker){max-width:48ch;color:var(--muted-strong);line-height:1.6}.research-exit>div{flex-wrap:wrap;justify-content:center;gap:9px;margin-top:5px;display:flex}.consent-dialog{border:1px solid var(--panel-border-strong);background:var(--surface);width:min(760px,100vw - 36px);max-height:calc(100dvh - 36px);box-shadow:0 24px 80px var(--shadow-lg);border-radius:14px;gap:10px;padding:20px;display:grid;overflow:auto}.consent-dialog__locale{color:var(--muted);font:600 .68rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;justify-content:flex-end;align-items:center;gap:.65rem;margin-bottom:.75rem;display:flex}.consent-dialog__locale select{border:1px solid var(--panel-border);background:var(--panel-strong);max-width:12rem;color:inherit;border-radius:.45rem;padding:.45rem .6rem;font-size:.75rem;font-weight:500}.consent-dialog h2,.consent-dialog p{margin:0}.consent-dialog>p:not(.phase-kicker){color:var(--muted-strong);line-height:1.55}.consent-dialog__details{gap:7px;display:grid}.consent-dialog__details article,.consent-dialog__details label{border:1px solid var(--panel-border);color:var(--cyan);background:var(--fill-1);border-radius:9px;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.consent-dialog__details strong{color:var(--ink)}.consent-dialog__details p{color:var(--muted);font-size:var(--font-xs);margin-top:3px;line-height:1.45}.consent-dialog__details article>span{color:var(--green);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);font-weight:700}.consent-dialog__details input{width:18px;height:18px;accent-color:var(--cyan)}.consent-dialog__never{font-size:var(--font-xs);align-items:center;gap:6px;padding:5px 2px;display:flex;color:var(--green)!important}.consent-dialog__actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.rule-list__caveat{color:var(--orange)}.mode-card--tutorial .mode-card__icon{color:var(--gold);background:color-mix(in oklch, var(--gold-vivid) 14%, transparent)}.mode-card--tutorial .mode-card__go{color:var(--gold)}.tutorial{z-index:13;border:1px solid var(--panel-border-strong);background:var(--surface-overlay-strong);width:min(520px,100vw - 24px);max-height:calc(100dvh - 108px);box-shadow:0 18px 48px var(--shadow-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);overscroll-behavior:contain;border-radius:12px;gap:8px;padding:14px 16px 13px;display:grid;position:absolute;top:12px;left:50%;overflow-y:auto;transform:translate(-50%)}.tutorial.is-collapsed{width:auto;max-height:none;padding:8px 10px 8px 8px;overflow:visible}.tutorial__head{align-items:center;gap:9px;display:flex}.tutorial__badge{color:var(--gold);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.14em;align-items:center;gap:5px;font-weight:700;display:inline-flex}.tutorial__progress{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);font-variant-numeric:tabular-nums;margin-left:auto}.tutorial__head button{border:1px solid var(--panel-border);width:26px;height:26px;color:var(--muted-strong);cursor:pointer;background:0 0;border-radius:6px;place-items:center;padding:0;display:grid}.tutorial__steps{align-items:center;gap:4px;display:flex}.tutorial__step{background:var(--fill-3);border:none;border-radius:99px;flex:1;min-width:0;height:3px;padding:0;transition:background .2s,height .12s}button.tutorial__step{cursor:pointer;height:7px;margin:-2px 0}button.tutorial__step:hover{background:var(--green)}.tutorial__step.is-done{background:color-mix(in oklch, var(--good) 75%, transparent)}.tutorial__step.is-current{background:var(--gold);height:5px}.tutorial__steps-count{color:var(--green);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.04em;flex:none;align-items:center;gap:3px;margin-left:4px;font-weight:700;display:inline-flex}.tutorial h2{color:var(--ink);letter-spacing:-.02em;margin:2px 0 0;font-size:1.02rem}.tutorial>p{color:var(--muted-strong);font-size:var(--font-sm);margin:0;line-height:1.6}.tutorial__hint{border:1px solid color-mix(in oklch, var(--gold-vivid) 24%, transparent);color:var(--gold);background:color-mix(in oklch, var(--gold-vivid) 7%, transparent);font-size:var(--font-xs);border-radius:8px;align-items:flex-start;gap:7px;padding:8px 10px;line-height:1.5;animation:.2s pop-in;display:flex}.tutorial__foot{align-items:center;gap:10px;margin-top:2px;display:flex}.tutorial__state{color:var(--muted);font-size:var(--font-xs);align-items:center;gap:6px;display:inline-flex}.tutorial__state.is-done{color:var(--green)}.tutorial__dot{border:1px solid var(--muted);border-radius:50%;width:7px;height:7px}.tutorial__next{height:36px;font-size:var(--font-sm);margin-left:auto;padding:0 14px}@media (height<=780px){.tutorial>p{font-size:var(--font-xs)}}.mode-card--lessons .mode-card__icon{color:var(--green);background:color-mix(in oklch, var(--good) 12%, transparent)}.mode-card--lessons .mode-card__go{color:var(--green)}.lesson-list{gap:7px;width:min(720px,100%);margin:0;padding:0;list-style:none;display:grid}.lesson-row{border:1px solid var(--panel-border);background:var(--panel-strong);text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:13px;width:100%;padding:12px 14px;transition:border-color .14s,transform .14s;display:flex}.lesson-row:hover{border-color:var(--panel-border-strong);transform:translate(2px)}.lesson-row:disabled{opacity:.55;cursor:not-allowed}.lesson-row:disabled:hover{border-color:var(--panel-border);transform:none}.lesson-row.is-done{border-color:color-mix(in oklch, var(--good) 28%, transparent)}.lesson-row__index{width:28px;height:28px;color:var(--muted-strong);background:var(--fill-2);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-sm);border-radius:8px;flex:none;place-items:center;font-weight:700;display:grid}.lesson-row.is-done .lesson-row__index{color:var(--green);background:color-mix(in oklch, var(--good) 12%, transparent)}.lesson-row__text{gap:2px;min-width:0;display:grid}.lesson-row__text strong{color:var(--ink);font-size:var(--font-md)}.lesson-row__text small{color:var(--muted);font-size:var(--font-xs);line-height:1.45}.lesson-row__meta{color:var(--ink-faint);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);white-space:nowrap;align-items:center;gap:5px;margin-left:auto;display:inline-flex}.tutorial.is-solved{border-color:color-mix(in oklch, var(--good) 40%, transparent)}.lesson-quiz,.lesson-practical{border:1px solid var(--panel-border);background:var(--shade);border-radius:9px;gap:8px;margin-top:12px;padding:11px;display:grid}.lesson-goal-recap{border:1px solid var(--panel-border);border-left:2px solid var(--gold);background:color-mix(in oklch, var(--gold-vivid) 6%, transparent);border-radius:8px;gap:3px;margin-top:2px;padding:8px 10px;line-height:1.5;display:grid;color:var(--muted-strong)!important;font-size:var(--font-xs)!important}.lesson-goal-pending{border:1px dashed var(--panel-border);border-radius:8px;margin-top:2px;padding:8px 10px;font-style:italic;line-height:1.5;color:var(--muted)!important;font-size:var(--font-xs)!important}.lesson-goal-recap strong{color:var(--gold);font-size:var(--font-micro);letter-spacing:.08em;text-transform:uppercase}.lesson-goal-recap code{color:var(--gold);word-break:break-word}.lesson-run-vs-test{color:var(--muted);font-size:var(--font-micro);line-height:1.5}.lesson-drill-goal{border:1px solid var(--panel-border);background:var(--shade);border-radius:9px;gap:4px;margin-top:10px;padding:9px 11px;display:grid}.lesson-drill-goal strong{color:var(--ink);font-size:var(--font-xs);letter-spacing:.04em;text-transform:uppercase}.lesson-drill-goal code{color:var(--accent);font-size:var(--font-sm);word-break:break-word}.lesson-drill-hint{color:var(--text-muted,var(--ink-dim));font-size:var(--font-xs);margin-top:10px}.lesson-quiz{min-width:0}.lesson-quiz legend{color:var(--ink);font-size:var(--font-sm);align-items:flex-start;gap:6px;padding:0 4px;font-weight:700;line-height:1.45;display:flex}.lesson-quiz label{color:var(--muted-strong);cursor:pointer;font-size:var(--font-xs);border:1px solid #0000;border-radius:7px;align-items:flex-start;gap:8px;padding:7px 8px;line-height:1.4;display:flex}.lesson-quiz label.is-selected{border-color:color-mix(in oklch, var(--accent) 30%, transparent);background:color-mix(in oklch, var(--accent) 8%, transparent)}.lesson-quiz input{accent-color:var(--cyan);margin-top:2px}.lesson-quiz__actions{color:var(--gold);font-size:var(--font-micro);align-items:center;gap:9px;display:flex}.lesson-practical strong{color:var(--ink);font-size:var(--font-xs)}.lesson-practical p{color:var(--muted);font-size:var(--font-xs);margin:0;line-height:1.45}.tutorial__hint--good{color:var(--green);border-color:color-mix(in oklch, var(--good) 28%, transparent);background:color-mix(in oklch, var(--good) 7%, transparent)}.tutorial>p>svg{vertical-align:-2px;color:var(--gold);margin-right:5px}.host-choice{gap:5px;display:grid}.host-choice span{color:var(--muted);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.13em;font-weight:700}.host-choice select{border:1px solid var(--panel-border);height:34px;color:var(--ink);background:var(--fill-2);font-size:var(--font-sm);border-radius:7px;padding:0 8px}.arm-dock{z-index:12;border:1px solid var(--panel-border-strong);background:var(--surface-overlay);width:288px;box-shadow:0 15px 44px var(--shadow-md);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:10px;position:absolute;bottom:15px;right:15px;overflow:hidden}.arm-dock__toggle{width:100%;height:38px;color:var(--ink-muted);font-size:var(--font-xs);letter-spacing:.06em;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0 11px;font-weight:700;display:flex}.arm-dock__toggle:hover{color:var(--ink)}.arm-dock__chevron--up{transform:rotate(180deg)}.arm-dock__toggle svg:last-child{margin-left:auto}.arm-dock__led{background:var(--ink-ghost);border-radius:50%;width:7px;height:7px}.arm-dock__led--ok{background:var(--green);box-shadow:0 0 0 3px color-mix(in oklch, var(--good) 16%, transparent)}.arm-dock__led--failed{background:var(--danger)}.arm-dock__led--checking{background:var(--orange)}.arm-dock__body{border-top:1px solid var(--panel-border);flex-direction:column;gap:8px;padding:4px 11px 11px;display:flex}.arm-dock__field{flex-direction:column;gap:4px;padding-top:7px;display:flex}.arm-dock__field span{color:var(--ink-dim);font-size:var(--font-xs);letter-spacing:.06em;font-weight:700}.arm-dock__field input{border:1px solid var(--panel-border);height:32px;color:var(--ink);background:var(--fill-2);font-family:var(--font-mono,monospace);font-size:var(--font-sm);border-radius:6px;padding:0 9px}.arm-dock__field input:focus{border-color:var(--cyan);outline:none}.arm-dock__row{gap:4px;display:flex}.arm-dock__row .control-button{height:30px;font-size:var(--font-xs);padding:0 9px}.arm-dock__status{color:var(--ink-dim);font-size:var(--font-xs);align-items:flex-start;gap:5px;margin:0;line-height:1.45;display:flex}.arm-dock__status--ok{color:var(--green)}.arm-dock__status--warn{color:var(--orange)}.arm-dock__status--error{color:var(--danger)}.arm-dock__status svg{flex-shrink:0;margin-top:1px}@media (width<=1160px){.tutorial,.hud{top:calc(var(--dock-top) + var(--control-height) + 12px)}.tutorial{max-height:calc(100dvh - 211px)}:is(.stage:has(.error-banner) .hud,.stage:has(.error-banner) .tutorial){top:calc(var(--dock-top) + var(--control-height) + 66px)}}@media (width<=980px){.stage{flex-direction:column;gap:8px;padding:8px;display:flex}.hud,.error-banner,.backend-replay-notice,.planning-progress{order:0;width:auto;max-width:none;position:static;transform:none}.error-banner{grid-template-columns:minmax(0,1fr) auto;max-height:30dvh;overflow-y:auto}.error-banner strong{grid-area:1/1}.error-banner button{grid-area:1/2}.error-banner span{grid-column:1/-1}.tutorial{flex:0 auto;order:1;width:auto;min-height:96px;max-height:45dvh;position:static;transform:none}.tutorial.is-collapsed{flex:none;width:auto;min-height:0}.side-panel{flex:auto;order:2;width:auto;min-height:0;transition:none;position:static;transform:none}.side-panel--right{visibility:visible;opacity:1;pointer-events:auto}.side-panel--left.is-closed,.side-panel--right.is-closed,.edge-tab{display:none}.control-dock{flex:none;order:3;width:auto;margin-top:auto;position:static}.arm-dock{flex:none;order:4;width:auto;position:static}.scoreboard{padding:12px}.scoreboard__panel{width:min(640px,100vw - 24px);max-height:calc(100dvh - 84px);padding:16px}}@media (width<=760px){:root{--topbar-height:48px}.topbar{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:0 8px}.brand-lockup{gap:8px;min-width:0}.brand-lockup h1{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.9rem;overflow:hidden}.local-badge{display:none}.brand-mark{width:28px;height:28px}.topbar-actions{gap:5px}.topbar-actions button{width:40px;height:40px}.control-dock .control-button{height:40px}.panel-header button,.tutorial__head button,.error-banner button{flex:none;width:40px;height:40px}.name-field,.name-field input,.name-field select,.code-input{height:44px;font-size:16px}}@media (width<=560px){.lesson-row{flex-wrap:wrap;row-gap:6px}.lesson-row__meta{flex:1 0 100%;margin-left:41px}}@media (width<=980px) and (height<=520px){.tutorial{min-height:0;max-height:34dvh}.control-dock{grid-template-columns:repeat(6,1fr)}.control-dock:not(:has(.control-button--submit))>.control-button:nth-last-child(-n+3){grid-column:auto}.control-dock .control-button{height:34px}}
