:root{color:#f5f7fa;font-synthesis:none;text-rendering:optimizelegibility;background:#171b24;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}canvas{width:100%;height:100%;display:block}button,input{font:inherit}button{color:#f5f7fa;cursor:pointer;background:#303947;border:1px solid #ffffff38;border-radius:7px}button:hover:not(:disabled){background:#3a4656;border-color:#ffd166b8}button:focus-visible,input:focus-visible{outline-offset:2px;outline:2px solid #ffd166}button:disabled,input:disabled{cursor:wait;opacity:.62}.room-menu{background:radial-gradient(circle at 50% 15%,#58b4d133,#0000 34%),linear-gradient(155deg,#202735,#13171f 65%);place-items:center;width:100%;height:100%;padding:24px;display:grid}.room-menu-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c0f15c2;border:1px solid #ffffff24;border-radius:14px;width:min(420px,100%);padding:34px;box-shadow:0 24px 70px #00000052}.room-menu h1{color:#ffd166;letter-spacing:-.07em;text-align:center;margin:0;font:900 clamp(34px,10vw,48px)/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.room-menu-subtitle{color:#aeb8c5;letter-spacing:.08em;text-align:center;margin:10px 0 28px;font:700 11px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.room-menu label{color:#d8dee7;gap:7px;font-size:13px;font-weight:700;display:grid}.room-menu input{color:#fff;background:#191f29;border:1px solid #ffffff2e;border-radius:7px;width:100%;padding:11px 12px}.room-menu button{letter-spacing:.04em;width:100%;margin-top:11px;padding:12px;font-weight:800}.room-menu .primary-room-button{color:#202631;background:#ffd166;margin-top:18px}.room-divider{color:#7e8998;text-align:center;margin:20px 0;font:700 10px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:block}.room-error{color:#ff9c9c;text-align:center;min-height:20px;margin:14px 0 0;font-size:12px}.room-privacy{color:#7e8998;text-align:center;margin:14px 0 0;font-size:10px;line-height:1.45}.room-status-panel{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:4;background:#0c0f15d1;border:1px solid #ffffff29;border-radius:9px;width:235px;padding:12px;font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;position:fixed;top:14px;right:14px;box-shadow:0 8px 24px #0000002e}.room-status-panel strong,.room-peer-count,.room-connection{display:block}.room-status-panel strong,.room-connection[data-status=connecting]{color:#ffd166}.room-connection[data-status=connected]{color:#86e3a0}.room-connection[data-status=connection-issue],.room-connection[data-status=left]{color:#ff9c9c}.room-player-list{border-block:1px solid #ffffff1f;gap:3px;margin:9px 0;padding:8px 0 8px 18px;display:grid}.room-player-list li[data-team=red]::marker{color:#e45b64}.room-player-list li[data-team=blue]::marker{color:#58b4d1}.room-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.room-actions button{padding:7px 5px;font-size:10px}.room-feedback{color:#aeb8c5;min-height:0;margin:7px 0 0;font-size:9px}.match-hud{text-align:center;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:2;background:#0c0f15c7;border:1px solid #ffffff26;border-radius:10px;width:min(520px,100vw - 32px);padding:10px 14px 12px;position:fixed;top:14px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000002e}.match-hud[data-mode=network-transport] .objective-progress{display:none}.match-hud[data-mode=network-transport] .progress-value{color:#ffd166}.match-timer,.objective-status{min-width:110px;font:700 18px/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:inline-block}.objective-status[data-activity=red-pushing]{color:#f0787f}.objective-status[data-activity=blue-pushing]{color:#78adf0}.objective-status[data-activity=contested]{color:#ffd166}.objective-progress{grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;margin-top:8px;display:grid}.team-label{font:700 11px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.team-label.red{color:#f0787f}.team-label.blue{color:#78adf0}.progress-track{background:linear-gradient(90deg,#b8444d,#d9dee5 50%,#3975bd);border-radius:999px;height:8px;position:relative}.progress-marker{background:#ffd166;border:3px solid #252b35;border-radius:50%;width:18px;height:18px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #ffffffbf}.progress-value,.dev-objective-hint{color:#aeb8c5;margin-top:7px;font:10px/1.3 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:block}.match-announcement{color:#fff;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:3;background:#0c0f15d1;border-radius:12px;flex-direction:column;align-items:center;gap:18px;min-width:280px;padding:22px;font:800 34px/1.1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:none;position:fixed;top:50vh;left:50%;transform:translate(-50%,-50%)}.match-announcement[data-phase=countdown],.match-announcement[data-phase=finished]{display:flex}.match-announcement[data-phase=countdown] .restart-button{display:none}.restart-button{color:#202631;cursor:pointer;background:#ffd166;border:1px solid #ffffff3d;border-radius:7px;padding:9px 14px;font:700 13px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.debug-overlay{color:#eef2f5;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:4;background:#0c0f15c7;border:1px solid #ffffff29;border-radius:8px;min-width:196px;padding:11px 13px;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;position:fixed;top:14px;left:14px;box-shadow:0 8px 24px #0000002e}@media (width<=720px){.debug-overlay{max-height:calc(100vh - 146px);top:122px;bottom:auto;overflow:hidden}.match-timer,.objective-status{min-width:96px;font-size:15px}.room-status-panel{width:min(235px,100vw - 24px);top:auto;bottom:12px;right:12px}.debug-overlay{max-width:calc(100vw - 24px)}.room-menu-card{padding:26px 22px}}.debug-overlay strong{color:#ffd166;font-weight:700}.controls-hint{color:#aeb8c5;border-top:1px solid #ffffff24;margin-top:7px;padding-top:7px}.fatal-error{color:#ff8c8c;margin:2rem}
