:root{color:#dbe7f2;font-synthesis:none;text-rendering:optimizelegibility;--panel:#0a161ff0;--panel-strong:#0b1822;--panel-border:#8db9cf29;--panel-border-strong:#69d7dc42;--muted:#7890a2;--muted-strong:#9cb0bf;--cyan:#53d5da;--cyan-soft:#53d5da21;--orange:#f2a647;--danger:#ef725f;--green:#52d7a6;--violet:#9d7bf5;--gold:#ffce5c;--topbar-height:58px;--control-height:62px;--font-micro:.7rem;--font-xs:.75rem;--font-sm:.8125rem;--font-md:.875rem;background:#081019;font-family:Inter,SF Pro Display,Segoe UI,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;min-height:100%;margin:0;overflow:hidden}body{background:#081019}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%,#287f9733,#0000 36%),#081019;place-content:center;justify-items:center;gap:.65rem;min-height:100vh;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}.spin{color:var(--cyan);animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.workbench{background:#081019;width:100vw;height:100vh;overflow:hidden}.topbar{z-index:20;width:100%;height:var(--topbar-height);border-bottom:1px solid var(--panel-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#071018f5;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 14px 0 16px;display:grid;position:relative;box-shadow:0 10px 32px #00000038}.brand-lockup,.topbar-actions,.challenge-crumb{align-items:center;display:flex}.brand-lockup{gap:.65rem}.brand-mark{width:32px;height:32px;color:var(--cyan);background:var(--cyan-soft);border:1px solid #53d5da47;border-radius:7px;place-items:center;display:grid}.brand-lockup h1{letter-spacing:-.02em;margin:0;font-size:1rem;font-weight:740}.brand-lockup span,.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:#758b9b;gap:.55rem}.challenge-crumb strong{color:#c7d6e1;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);cursor:pointer;background:#ffffff06;border-radius:6px;place-items:center;padding:0;display:grid}.topbar-actions button:hover,.panel-header button:hover{color:#e6f1f8;border-color:var(--panel-border-strong)}.local-badge{height:28px;color:var(--cyan);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.12em;background:#53d5da0f;border:1px solid #53d5da2e;border-radius:999px;align-items:center;gap:6px;padding:0 9px;font-weight:700;display:flex}.local-badge i{background:#52d7a6;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #52d7a61f}.stage{width:100%;height:calc(100vh - var(--topbar-height));position:relative;overflow:hidden}.simulator-canvas{background:#0a141d;position:absolute;inset:0}.simulator-canvas canvas{background:#0a141d;display:block}.scene-status-overlay{z-index:6;color:#dce8ef;text-align:center;background:radial-gradient(circle at 50% 45%,#2b677833,#0000 32%),#0a141d;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{color:#dae5ee;text-align:center;place-content:center;gap:.5rem;min-height:100%;padding:2rem;display:grid}.webgl-fallback span{color:var(--muted)}.side-panel{z-index:8;top:12px;bottom:calc(var(--control-height) + 38px);border:1px solid var(--panel-border);background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:10px;flex-direction:column;transition:transform .22s,opacity .18s;display:flex;position:absolute;overflow:hidden;box-shadow:0 22px 60px #00000057}.side-panel--left{width:min(420px,100vw - 48px);left:12px}.side-panel--right{width:328px;right:12px}.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:#ffffff05;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:#cfdae2;font-size:var(--font-sm)}.panel-header button{width:28px;height:28px}.panel-footer{border-top:1px solid var(--panel-border);background:#09141d;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:#0b1821;flex:1;min-height:0;position:relative}.blockly-editor__surface{position:absolute;inset:0}.blockly-editor__lock{z-index:4;color:#a9bac7;font-size:var(--font-sm);text-align:center;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);cursor:not-allowed;background:#050d1447;place-content:center;gap:4px;display:grid;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:#0b1821!important}.blocklyToolbox{border-right:1px solid var(--panel-border)!important;background:#09141d!important}.blocklyToolboxCategory{border-radius:5px;height:34px!important;margin:4px 6px!important}.blocklyToolboxCategoryLabel{font-family:Segoe UI,sans-serif!important;font-size:14px!important}.blocklyFlyoutBackground{fill:#0e202b!important;fill-opacity:.97!important}.blocklyScrollbarHandle{fill:#36515f!important}.inspector{scrollbar-color:#304755 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:#e3ecf2;letter-spacing:-.025em;margin:0 0 6px;font-size:1rem}.challenge-card>p{color:#879cab;font-size:var(--font-sm);margin:0 0 12px;line-height:1.55}.status-pill{color:#9ab0bf;letter-spacing:.06em;background:#9ab0bf17;border-radius:4px;padding:3px 6px}.status-pill--running,.status-pill--completed{color:#52d7a6;background:#52d7a61a}.status-pill--paused{color:var(--orange);background:#f2a6471a}.status-pill--error{color:var(--danger);background:#ef725f1a}.target-toggle{border:1px solid var(--panel-border);color:#91a4b2;width:100%;height:34px;font-size:var(--font-sm);cursor:pointer;background:#ffffff05;border-radius:6px;align-items:center;gap:7px;padding:0 9px;display:flex}.target-toggle span{color:#657c8c;font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);margin-left:auto}.target-toggle.is-active{color:var(--cyan);background:var(--cyan-soft);border-color:#53d5da40}.target-toggle.is-active span{color:var(--cyan)}.joint-list{gap:4px;display:grid}.joint-row{background:#ffffff05;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{background:#f2a64712;border-color:#f2a64738}.joint-row>div{display:grid}.joint-row strong{color:#bfcdd6;font-size:var(--font-xs);font-weight:600}.joint-row small{color:#657b8b;font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro)}.joint-row output{color:#e4edf2;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:#687f8e;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:#a9bbc7;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:#ffffff05;border-radius:6px;align-content:center;min-height:50px;padding:7px 9px;display:grid}.metric-card span,.duration-row span{color:#728897;font-size:var(--font-xs)}.metric-card strong{color:#dce7ed;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:#748998;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:#627887;font-size:var(--font-micro);margin-left:4px}.score-bars{gap:8px;display:grid}.score-row>div:first-child{color:#8398a7;font-size:var(--font-xs);justify-content:space-between;margin-bottom:4px;display:flex}.score-row strong{color:#c9d7df;font-family:SFMono-Regular,Consolas,monospace}.score-track{background:#ffffff12;border-radius:99px;height:3px;overflow:hidden}.score-track span{border-radius:inherit;background:linear-gradient(90deg, #268e9c, var(--cyan));height:100%;display:block}.result-placeholder{border:1px dashed var(--panel-border);color:#728897;font-size:var(--font-xs);text-align:center;background:#ffffff03;border-radius:6px;padding:13px;line-height:1.55}.control-dock{z-index:12;border:1px solid var(--panel-border-strong);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#08121af0;border-radius:10px;align-items:center;gap:4px;height:48px;padding:5px;display:flex;position:absolute;bottom:15px;left:50%;transform:translate(-50%);box-shadow:0 15px 44px #0000006b}.control-button{color:#aabac5;height:36px;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:#e6f0f5;background:#ffffff0d}.control-button--primary{color:#061315;background:var(--cyan)}.control-button--primary:hover:not(:disabled){color:#061315;background:#71e3e6}.control-button--quiet{color:#8095a4}.control-button:disabled{opacity:.32;cursor:not-allowed}.control-dock__divider{background:var(--panel-border);width:1px;height:22px;margin:0 2px}.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);color:#778d9c;text-align:left;cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#08121ae6;border-radius:7px;grid-template-columns:auto auto 1fr auto;align-items:center;gap:7px;width:100%;height:34px;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:#9eb0bc}.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:#08121af7;border-radius:9px;width:min(560px,100vw - 28px);height:210px;position:absolute;bottom:42px;left:0;overflow:hidden;box-shadow:0 18px 50px #0000006b}.log-drawer__title{border-bottom:1px solid var(--panel-border);color:#8fa2af;height:36px;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{color:#7f93a1;cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;width:24px;height:24px;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:#98aab6;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:#536b7a}.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:#8197a6;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);background:#08121ae6;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;color:#e7b4ab;max-width:min(620px,100vw - 32px);font-size:var(--font-sm);background:#291314f0;border:1px solid #ef725f59;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%);box-shadow:0 12px 35px #00000052}.error-banner strong{color:var(--danger);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.1em}.error-banner button{color:#b88780;cursor:pointer;background:0 0;border:0;width:24px;height:24px;padding:0}.stage-readout{z-index:5;pointer-events:none;justify-items:end;display:grid;position:absolute;bottom:74px;right:354px}.stage-readout span{color:#526b79;font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.12em}.stage-readout strong{color:#8197a5;font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-xs);font-weight:500}@media (width<=1250px){.side-panel--left{width:390px}.side-panel--right{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){.side-panel{top:8px;bottom:76px}.panel-header{flex-basis:44px}.inspector-section{padding:10px 12px}.joint-row{min-height:34px}.challenge-card>p{display:none}.control-dock,.log-drawer{bottom:10px}}.home,.menu-screen{background:#070f17;flex-direction:column;justify-content:center;align-items:center;gap:clamp(16px,3vh,30px);width:100vw;min-height:100vh;max-height:100vh;padding:clamp(20px,4vh,44px) 20px;display:flex;position:relative;overflow-y:auto}.home__aura,.menu-screen__aura{z-index:0;pointer-events:none;background:radial-gradient(60% 45% at 50% 0,#53d5da29,#0000 70%),radial-gradient(50% 40% at 15% 100%,#9d7bf51f,#0000 70%),radial-gradient(45% 35% at 90% 85%,#f2a64714,#0000 70%);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{border-radius:13px;width:52px;height:52px;margin-bottom:6px;box-shadow:0 0 44px #53d5da38}.home__head h1,.menu-screen__head h1{letter-spacing:-.045em;background:linear-gradient(#f2f9fd,#8fb6c8);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(1060px,100%);display:grid}.mode-card{border:1px solid var(--panel-border);background:linear-gradient(160deg, #ffffff0d, #ffffff03), 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);transform:translateY(-3px);box-shadow:0 18px 44px #0000006b}.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:#9d7bf524}.mode-card strong{color:#e9f2f7;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:#ffffff05;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,.code-input{color:#e6f0f6;width:148px;height:30px;font-size:var(--font-sm);background:#ffffff0a;border:1px solid #0000;border-radius:6px;padding:0 9px}.link-chip{border:1px solid var(--panel-border);height:38px;color:var(--muted-strong);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.11em;background:#ffffff05;border-radius:999px;align-items:center;gap:7px;padding:0 13px;font-weight:700;display:inline-flex}.link-chip--online{color:var(--green);background:#52d7a612;border-color:#52d7a647}.menu-screen__back{position:absolute;top:18px;left:18px}.ghost-button{border:1px solid var(--panel-border);height:32px;color:var(--muted-strong);font-size:var(--font-xs);cursor:pointer;background:#ffffff05;border-radius:7px;align-items:center;gap:6px;padding:0 11px;display:inline-flex}.ghost-button:hover{color:#e6f1f8;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-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:#e2ecf2;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:#64798a;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:#ffffff05;border-radius:8px;padding:3px;display: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:#071417;background:var(--cyan);font-weight:700}.big-button{border:1px solid var(--panel-border-strong);color:#dceaf1;height:44px;font-size:var(--font-md);cursor:pointer;background:#ffffff0a;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:#ffffff14;transform:translateY(-1px)}.big-button--primary{color:#05161a;background:linear-gradient(180deg, #6ee3e6, var(--cyan));border-color:#0000;box-shadow:0 10px 28px #53d5da38}.big-button--primary:hover:not(:disabled){background:linear-gradient(#85ecef,#5ee0e4)}.big-button--wide{width:min(420px,100%)}.big-button:disabled{opacity:.4;cursor:not-allowed}.connection-note{border:1px solid var(--panel-border);background:#ffffff05;border-radius:10px;align-items:flex-start;gap:11px;width:min(860px,100%);padding:12px 14px;display:flex}.connection-note--practice{color:var(--orange);background:#f2a6470f;border-color:#f2a6473d}.connection-note--online{color:var(--green);background:#52d7a60f;border-color:#52d7a63d}.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);cursor:pointer;background:#0003;border-radius:7px;place-items:center;display:grid}.menu-screen__hint{color:#62778a;max-width:46ch;font-size:var(--font-xs);text-align:center;margin:0;line-height:1.5}.roster{gap:5px;margin:0;padding:0;list-style:none;display:grid}.roster__row{color:#cbd8e0;font-size:var(--font-sm);background:#ffffff06;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:#f2a6471a}.tag--you+.tag--bot{margin-left:0}.roster__row .tag--bot:only-of-type{margin-left:auto}.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:#d3dfe7;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);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#071018ed;border-radius:12px;justify-items:center;gap:2px;width:178px;padding:9px 16px 11px;display:grid;box-shadow:0 14px 40px #00000073}.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:#eaf4f9;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:#ffffff17;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:#f2a64766}.hud__timer--warning strong{color:var(--orange)}.hud__timer--warning .hud__timer-track i{background:var(--orange)}.hud__timer--critical{border-color:#ef725f8c;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 #00000073}50%{box-shadow:0 14px 40px #00000073,0 0 0 5px #ef725f24}}.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);font-size:var(--font-xs);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#071018e6;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.is-you{border-color:var(--panel-border-strong);color:#dcebf2}.hud__player.is-submitted{color:var(--green);border-color:#52d7a659}.hud__player.is-submitted .roster__avatar{color:var(--green);background:#52d7a61f}.hud__secrecy{color:#8ba1b1;font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);letter-spacing:.06em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#071018d1;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);background:#09221cf2;border:1px solid #52d7a652}.hud__ack.is-refused{color:#e7b4ab;background:#291314f2;border:1px solid #ef725f5c}@keyframes pop-in{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:none}}.local-badge--live{color:var(--violet);background:#9d7bf514;border-color:#9d7bf54d}.local-badge--live i{background:var(--violet);box-shadow:0 0 0 3px #9d7bf524}.control-button--accent{color:var(--orange)}.control-button--accent:hover:not(:disabled){color:#ffc069;background:#f2a6471a}.control-button--submit{color:#120a24;background:linear-gradient(180deg, #b197f7, var(--violet));font-weight:700}.control-button--submit:hover:not(:disabled){color:#120a24;background:linear-gradient(#c0a9f9,#a888f7)}.round-flash{z-index:18;pointer-events:none;background:radial-gradient(circle,#060e15b8,#060e154d);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 #53d5da80;font-size:clamp(3.5rem,12vw,7rem);font-weight:800}.round-flash span{color:#a6bdcb;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;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#040a10d1;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);border-radius:16px;gap:14px;width:min(640px,100vw - 40px);max-height:calc(100vh - 60px);padding:22px;display:grid;overflow-y:auto;box-shadow:0 30px 80px #0009}.scoreboard__head{color:var(--gold);grid-template-columns:auto 1fr;align-items:center;gap:12px;display:grid}.scoreboard__head h2{color:#eef5f9;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:#ffffff06;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{background:linear-gradient(90deg,#ffce5c1c,#ffce5c05);border-color:#ffce5c57}.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:#dfeaf1;font-size:var(--font-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scoreboard__who small{color:#62778a;font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro)}.scoreboard__bar{background:#ffffff12;border-radius:99px;height:5px;overflow:hidden}.scoreboard__bar i{border-radius:inherit;background:linear-gradient(90deg, #268e9c, 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, #c99a2c, var(--gold))}.scoreboard__row output{color:#e7f1f6;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)}.scoreboard__disclaimer{color:var(--orange);font-size:var(--font-xs);background:#f2a6470f;border:1px solid #f2a64738;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{color:#61798a;max-width:62ch;font-size:var(--font-xs);text-align:center;margin:0;line-height:1.6}.rule-list__caveat{color:var(--orange)}.mode-card--tutorial .mode-card__icon{color:var(--gold);background:#ffce5c21}.mode-card--tutorial .mode-card__go{color:var(--gold)}.tutorial{z-index:13;border:1px solid var(--panel-border-strong);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#071018f2;border-radius:12px;gap:8px;width:min(520px,100vw - 24px);padding:14px 16px 13px;display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 18px 48px #00000080}.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{gap:4px;display:flex}.tutorial__steps i{background:#ffffff17;border-radius:99px;flex:1;height:3px;transition:background .2s}.tutorial__steps i.is-reached{background:var(--gold)}.tutorial h2{color:#eaf2f7;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{color:var(--gold);font-size:var(--font-xs);background:#ffce5c0f;border:1px solid #ffce5c3d;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:#52d7a621}.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.is-done{border-color:#52d7a64d}.lesson-row__index{width:28px;height:28px;color:var(--muted-strong);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-sm);background:#ffffff0a;border-radius:8px;flex:none;place-items:center;font-weight:700;display:grid}.lesson-row.is-done .lesson-row__index{color:var(--green);background:#52d7a61f}.lesson-row__text{gap:2px;min-width:0;display:grid}.lesson-row__text strong{color:#e2ecf2;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:#61798a;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:#52d7a666}.tutorial__hint--good{color:var(--green);background:#52d7a612;border-color:#52d7a647}.tutorial>p>svg{vertical-align:-2px;color:var(--gold);margin-right:5px}.lesson-answer{border:1px solid var(--panel-border);color:var(--cyan);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--font-micro);background:#00000040;border-radius:6px;margin-left:auto;padding:5px 9px}
