:root{color:#e4e7eb;background:#9fd6ff;color-scheme:dark;font-family:var(--font);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--font: Bahnschrift, "Segoe UI", system-ui, Arial, sans-serif;--panel: rgb(22 26 32 / 95%);--line: rgb(214 224 240 / 14%);--line-strong: rgb(214 224 240 / 28%);--text: #e4e7eb;--muted: #8b95a3;--accent: #5d9bd8;--accent-ink: #07131f;--ok: #7fd48a;--danger: #ff6b5e;--warn: #e4b04b;--crosshair: #32fa32;--gold: #f0c35a;--silver: #c3cbd5;--bronze: #d28c55;--bg: #07090c;--display: "Bahnschrift Condensed", Bahnschrift, "Arial Narrow", "Segoe UI", system-ui, sans-serif;--gutter: clamp(16px, 4vw, 56px);--mono: ui-monospace, SFMono-Regular, Consolas, monospace;--radius: 3px;--scroll-thumb: rgb(214 224 240 / 20%);scrollbar-color:var(--scroll-thumb) transparent;scrollbar-width:thin}*{box-sizing:border-box}.lobby,.board-body,.sheet-body,.pause-menu,.console-output{scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:var(--radius);background:var(--scroll-thumb);background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#d6e0f05c;background-clip:content-box}::-webkit-scrollbar-corner{background:transparent}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;overflow:hidden}button,input{font:inherit}button{min-height:38px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff0f;color:var(--text);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;touch-action:manipulation;transition:color .12s ease,border-color .12s ease,background-color .12s ease}button:hover:not(:disabled),button[data-active=true]{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}button.primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}button.primary:hover{background:#7fb2e6;color:var(--accent-ink)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:default}@media(prefers-reduced-motion:reduce){button{transition:none}button:active:not(:disabled){transform:none}}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}[hidden],.hidden{display:none!important}#app{width:100vw;height:100vh;height:100dvh;overflow:hidden}canvas{display:block;width:100%;height:100%;cursor:crosshair}.route-progress{width:min(460px,64vw);text-align:initial}.route-progress-head{display:flex;align-items:baseline;justify-content:space-between;margin:0 8px 6px}.route-progress-label{color:var(--muted);font:700 10px / 1 var(--font);letter-spacing:.18em;text-transform:uppercase}.route-progress-pb{margin-left:10px;color:var(--gold)}.route-progress-value{display:inline-block;transform-origin:right bottom;color:#fff;font:700 20px / 1 var(--display);font-variant-numeric:tabular-nums;letter-spacing:.04em}.route-progress[data-off-course=true] .route-progress-value{color:var(--muted);font-size:14px;text-transform:uppercase}.route-progress[data-off-course=true] .route-progress-track{opacity:.45}.route-progress-track{position:relative;height:12px;background:var(--hud-track);clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%)}.route-progress-fill{position:absolute;inset:0;background:linear-gradient(90deg,rgb(93 155 216 / 55%),var(--accent));clip-path:polygon(0 0,100% 0,calc(100% - 8px) 100%,0 100%);transform:translate(-100%);transition:transform .12s linear}:root[data-ui-quality=high] .route-progress-fill{background:linear-gradient(100deg,transparent 30%,rgb(255 255 255 / 28%) 50%,transparent 70%) 0 0 / 200% 100% no-repeat,linear-gradient(90deg,rgb(93 155 216 / 55%),var(--accent));animation:route-sheen 2.4s linear infinite}.route-progress-fill:after{content:"";position:absolute;inset:0 0 0 auto;width:14px;background:linear-gradient(90deg,transparent,rgb(255 255 255 / 70%));clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%)}.route-progress-tick{position:absolute;top:3px;bottom:3px;width:2px;margin-left:-1px;background:#d6e0f038;transform:skew(-34deg)}.route-progress-tick.passed{background:#ffffffd9}.route-progress-best{position:absolute;top:0;bottom:0;width:3px;margin-left:-1.5px;background:var(--gold);box-shadow:0 0 6px #f0c35ab3;transform:skew(-34deg)}.route-progress.milestone .route-progress-track{animation:route-milestone .7s ease-out}.route-progress.milestone .route-progress-value{animation:route-milestone-value .7s ease-out}@keyframes route-sheen{0%{background-position:200% 0,0 0}to{background-position:-100% 0,0 0}}@keyframes route-milestone{0%{box-shadow:none;background-color:#5d9bd8b3}to{background-color:var(--hud-track)}}@keyframes route-milestone-value{0%{color:var(--accent);transform:scale(1.35)}to{color:#fff;transform:scale(1)}}@media(prefers-reduced-motion:reduce){:root[data-ui-quality=high] .route-progress-fill,.route-progress-fill,.route-progress.milestone .route-progress-track,.route-progress.milestone .route-progress-value{animation:none;transition:none}}.hud-layer{position:fixed;inset:0;pointer-events:none}.hud-layer[data-editing]{z-index:21}.hud-zone{position:absolute;display:flex;flex-direction:column;gap:6px}.hud-zone[data-anchor=top-center]{top:18px;left:50%;translate:-50% 0;align-items:center;text-align:center}.hud-zone[data-anchor=top-right]{top:18px;right:18px;align-items:flex-end;text-align:right}.hud-zone[data-anchor=center],.hud-zone[data-anchor^=bottom]{flex-direction:column-reverse}.hud-zone[data-anchor=center]{bottom:calc(50% + 72px);left:50%;translate:-50% 0;align-items:center;text-align:center}.hud-zone[data-anchor=bottom-left]{bottom:20px;left:18px;align-items:flex-start;text-align:left}.hud-zone[data-anchor=bottom-center]{bottom:20px;left:50%;translate:-50% 0;align-items:center;text-align:center}.hud-zone[data-anchor=bottom-right]{bottom:20px;right:18px;align-items:flex-end;text-align:right}body:has(.replay-controls:not(.hidden,[data-collapsed])) .hud-zone[data-anchor^=bottom]{bottom:200px}body:has(.replay-controls[data-collapsed]:not(.hidden)) .hud-zone[data-anchor^=bottom]{bottom:72px}.hud-layer:not([data-editing]) .hud-item:is([data-off],[data-unavailable]){display:none}.hud-item[data-style=standard]{--hud-plate: rgb(10 12 16 / 62%);--hud-track: rgb(10 12 16 / 62%)}.hud-item[data-style=standard]>.hud-content{text-shadow:0 1px 1px rgb(0 0 0 / 65%),0 2px 6px rgb(0 0 0 / 40%)}.hud-item[data-style=minimal]{--hud-plate: transparent;--hud-track: rgb(214 224 240 / 16%)}.hud-item[data-style=minimal]>.hud-content{opacity:.75;text-shadow:0 1px 2px rgb(0 0 0 / 70%)}.hud-item[data-style=minimal] .run-timer{border-bottom-color:transparent}.hud-item[data-style=minimal] .run-timer:after,.hud-item[data-style=minimal] .speed-unit,.hud-item[data-style=minimal] .speed-accel,.hud-item[data-style=minimal] .route-progress-head{display:none}.hud-item[data-hud=crosshair]{position:fixed;top:50%;left:50%;translate:-50% -50%}.hud-layer[data-editing] .hud-item[data-hud=crosshair]{margin:0;cursor:default}.hud-layer[data-editing] .hud-item[data-hud=crosshair]>.hud-tools{position:absolute;top:calc(100% + 10px);left:50%;translate:-50% 0;white-space:nowrap}.hud-item[data-hud=crosshair][data-style=minimal]>.reticle{width:4px;height:4px;border-radius:50%;background:#fff}.hud-tools,.hud-drop-marker{display:none}.hud-layer[data-editing] .hud-zone{min-width:180px;min-height:52px;margin:-8px;padding:8px;border:1px dashed var(--line-strong);border-radius:var(--radius);background:#d6e0f00a}.hud-layer[data-dragging] .hud-zone{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.hud-layer[data-dragging] .hud-zone[data-target]{border-style:solid;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.hud-layer[data-editing] .hud-item{margin:-4px;padding:4px;border:1px solid transparent;border-radius:var(--radius);pointer-events:auto;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.hud-layer[data-editing] .hud-item:hover{border-color:var(--line-strong);background:#d6e0f00f}.hud-item[data-dragging]{position:relative;z-index:1;border-color:var(--accent);background:#0a0c10b3;cursor:grabbing}.hud-layer[data-editing] .hud-item[data-off]>.hud-content{opacity:.25}.hud-layer[data-editing] .hud-tools{display:inline-flex;align-items:center;gap:4px;margin-bottom:4px}.hud-layer[data-editing] .hud-viewmodel-tools{position:absolute;bottom:24%;left:50%;translate:-50% 0;margin:0;pointer-events:auto}.hud-tools-name{margin-right:2px;color:var(--muted);font:700 10px / 1 var(--font);letter-spacing:.14em;text-transform:uppercase}.hud-tool{display:inline-flex;align-items:center;min-height:22px;padding:0 7px;background:#0a0c10cc;font-size:10px}.hud-tool .icon{width:14px;height:14px}.hud-layer[data-dragging] .hud-drop-marker{position:fixed;display:block;height:2px;margin-top:-1px;background:var(--accent);box-shadow:0 0 6px var(--accent)}.run-timer{min-width:176px;padding:8px 18px 7px;border-bottom:2px solid var(--accent);background:var(--hud-plate);color:#fff;font:700 28px / 1 var(--display);font-variant-numeric:tabular-nums;text-align:center;letter-spacing:.02em}.run-timer:after{content:attr(data-status);display:block;margin-top:8px;color:var(--muted);font:700 10px / 1 var(--font);letter-spacing:.18em;text-transform:uppercase}.run-timer[data-status=finished]{border-bottom-color:var(--ok);color:var(--ok)}.run-timer[data-status=practice]{border-bottom-color:var(--warn)}.run-timer[data-status=practice]:after{color:var(--warn)}.pb-delta,.validity{color:#fff;font:700 13px / 1.2 var(--font);font-variant-numeric:tabular-nums;letter-spacing:.06em;text-transform:uppercase}.speed-meter{position:relative;display:flex;align-items:baseline;justify-content:center;gap:6px;min-width:132px;padding:7px 16px 10px;background:var(--hud-plate)}.speed-value{color:var(--speed-tint, #fff);font:700 28px / 1 var(--display);font-variant-numeric:tabular-nums;letter-spacing:.02em}.speed-unit{color:var(--muted);font:700 10px / 1 var(--font);letter-spacing:.18em;text-transform:uppercase}.speed-accel{position:absolute;inset:auto 0 0;height:3px;background:var(--line)}.speed-accel:before{content:"";position:absolute;left:calc(50% - 1px);bottom:0;width:2px;height:7px;background:var(--line-strong)}.speed-accel-fill{position:absolute;inset:0 0 0 50%;background:var(--speed-tint, #fff);transform:scaleX(0);transform-origin:left center}.pb-delta{color:var(--danger)}.pb-delta[data-ahead=true]{color:var(--ok)}.pb-delta[data-progress=true]{color:var(--gold)}.validity{color:var(--accent)}.validity[data-valid=false]{color:var(--danger)}.reticle{--reticle-edge: rgb(0 0 0 / 85%);width:22px;height:22px;background:linear-gradient(var(--crosshair),var(--crosshair)) 10px 1px / 2px 6px no-repeat,linear-gradient(var(--crosshair),var(--crosshair)) 10px 15px / 2px 6px no-repeat,linear-gradient(var(--crosshair),var(--crosshair)) 1px 10px / 6px 2px no-repeat,linear-gradient(var(--crosshair),var(--crosshair)) 15px 10px / 6px 2px no-repeat,linear-gradient(var(--reticle-edge),var(--reticle-edge)) 9px 0 / 4px 8px no-repeat,linear-gradient(var(--reticle-edge),var(--reticle-edge)) 9px 14px / 4px 8px no-repeat,linear-gradient(var(--reticle-edge),var(--reticle-edge)) 0 9px / 8px 4px no-repeat,linear-gradient(var(--reticle-edge),var(--reticle-edge)) 14px 9px / 8px 4px no-repeat}.debug-hud{position:fixed;left:18px;bottom:18px;width:min(410px,calc(100vw - 36px));padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:#0c0e12db;color:var(--text);font:11px / 1.5 var(--mono);font-variant-numeric:tabular-nums;pointer-events:none}.hud-grid{display:grid;grid-template-columns:minmax(74px,auto) 1fr;gap:3px 12px}.hud-label{color:var(--muted);letter-spacing:.04em}input[type=range]{height:18px;appearance:none;background:transparent}input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:var(--radius);background:var(--line-strong)}input[type=range]::-moz-range-track{height:3px;border-radius:var(--radius);background:var(--line-strong)}input[type=range]::-webkit-slider-thumb{width:9px;height:16px;margin-top:-6.5px;border:0;border-radius:1px;appearance:none;background:var(--accent);transition:box-shadow .12s ease}input[type=range]::-moz-range-thumb{width:9px;height:16px;border:0;border-radius:1px;background:var(--accent)}input[type=range]:hover::-webkit-slider-thumb{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent)}.settings-sync-note[data-status=error]{color:var(--danger)}.animation-lab{position:fixed;z-index:40;top:50%;left:12px;display:grid;gap:8px;width:min(300px,calc(100vw - 24px));padding:10px 12px;transform:translateY(-50%);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel);color:var(--text);font:12px / 1.4 var(--font)}.animation-lab[hidden]{display:none}.animation-lab h2{margin:0;font:700 13px / 1.2 var(--font)}.animation-lab-keys,.animation-lab-now{margin:0;color:var(--muted)}.animation-lab-now,.animation-lab-value{font-variant-numeric:tabular-nums}.animation-lab-states{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 8px;align-items:center}.animation-lab-row{display:flex;gap:6px;align-items:center}.animation-lab-row select,.animation-lab-row input[type=range]{flex:1;min-width:0}.animation-lab select{width:100%;min-width:0}.animation-lab select,.animation-lab button{padding:3px 6px;border:1px solid var(--line-strong);border-radius:var(--radius);background:#ffffff0f;color:inherit;font:inherit}.animation-lab button{cursor:pointer}.animation-lab button.active{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.animation-lab-check{display:flex;flex:1;gap:6px;align-items:center;cursor:pointer}.game-console{position:fixed;z-index:50;inset:0 0 0 auto;display:grid;grid-template-rows:auto auto auto minmax(160px,1fr) auto;width:min(480px,100vw);overflow:hidden auto;border-left:1px solid var(--line-strong);background:#0a0c10f0;color:var(--text);box-shadow:-12px 0 36px #0000006b}.console-stats,.console-view{display:grid;gap:8px;padding:10px 18px;border-bottom:1px solid var(--line)}.perf-graph-canvas{display:block;border-radius:var(--radius)}.console-graph-legend{display:flex;gap:14px;margin-top:-4px;color:var(--muted);font:10px var(--mono)}.console-graph-legend span:before{display:inline-block;width:8px;height:2px;margin-right:5px;vertical-align:middle;background:currentcolor;content:""}.legend-frame:before{color:#8b95a3}.legend-cpu:before{color:#5d9bd8}.legend-gpu:before{color:#7fd48a}.console-stat-grid{display:grid;grid-template-columns:76px minmax(0,1fr) 76px minmax(0,1fr);gap:0 10px;font:11px / 1.5 var(--mono);font-variant-numeric:tabular-nums}.console-scene-grid{grid-template-columns:76px minmax(0,1fr)}.console-stat-label{color:var(--muted);font:700 10px / 1.7 var(--font);letter-spacing:.1em;text-transform:uppercase}.console-stat-value{overflow-wrap:anywhere}.console-section-table{display:grid;grid-template-columns:minmax(0,1fr) repeat(4,auto);gap:0 14px;padding:4px 0;border-block:1px solid var(--line);font:11px / 1.55 var(--mono);font-variant-numeric:tabular-nums;text-align:right}.console-section-table>:nth-child(5n+1){color:var(--muted);text-align:left}.console-section-head{color:var(--muted);font-size:10px}.console-control-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:center}.console-toggles{display:flex;flex-wrap:wrap;gap:4px}.console-toggle{min-height:28px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius);background:#00000047;color:var(--muted);font-size:11px}.console-toggle[aria-pressed=true]{border-color:color-mix(in srgb,var(--accent) 50%,transparent);background:color-mix(in srgb,var(--accent) 24%,transparent);color:#fff}.overdraw-legend{display:grid;grid-template-columns:repeat(5,1fr);overflow:hidden;border-radius:var(--radius);font:700 10px / 20px var(--mono);text-align:center}.overdraw-legend span:nth-child(1){background:#0d4dff;color:#fff}.overdraw-legend span:nth-child(2){background:#1ae633;color:#000}.overdraw-legend span:nth-child(3){background:#ffe61a;color:#000}.overdraw-legend span:nth-child(4){background:#ff260d;color:#fff}.overdraw-legend span:nth-child(5){background:#fff;color:#000}.console-note{margin:0;color:var(--muted);font-size:11px}.console-header{display:flex;align-items:center;gap:16px;min-height:44px;padding:0 14px 0 18px;border-bottom:1px solid var(--line);background:#ffffff08}.console-header h2{margin:0;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.18em}.console-hint{margin-right:auto;color:var(--muted);font-size:11px}.console-perf{display:flex;align-items:center;gap:8px}.console-perf-label{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.12em}.perf-fps,.perf-graph{position:fixed;z-index:40;top:8px;right:8px;padding:4px 8px;border-radius:var(--radius);background:#0a0c10cc;color:var(--text);font:12px / 1.4 var(--mono);pointer-events:none}.perf-graph{padding:4px}.perf-fps.hidden,.perf-graph.hidden{display:none}.perf-graph-canvas+.perf-counters{margin-top:4px;font-size:11px;white-space:pre-line}.console-output{overflow:auto;padding:12px 18px;font:12px / 1.6 var(--mono);overscroll-behavior:contain}.console-entry{display:grid;grid-template-columns:62px 58px minmax(0,1fr);gap:12px;margin:0 -8px;padding:1px 8px;border-radius:var(--radius)}.console-entry:hover{background:#ffffff0a}.console-entry-time{color:color-mix(in srgb,var(--muted) 62%,transparent);font-variant-numeric:tabular-nums}.console-entry-level{color:var(--muted);font-size:10px;font-weight:700;line-height:1.9;letter-spacing:.08em}.console-entry-message{color:var(--text);overflow-wrap:anywhere;white-space:pre-wrap}.console-entry-table .console-entry-message{grid-column:1 / -1;overflow-x:auto;font-size:11px;overflow-wrap:normal;white-space:pre}.console-entry[data-level=debug] .console-entry-message{color:var(--muted)}.console-entry[data-level=warn] .console-entry-level,.console-entry[data-level=warn] .console-entry-message{color:var(--warn)}.console-entry[data-level=error] .console-entry-level,.console-entry[data-level=error] .console-entry-message{color:var(--danger)}.console-entry[data-level=command] .console-entry-level,.console-entry[data-level=command] .console-entry-message{color:var(--accent)}.console-command{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;min-height:46px;padding:0 18px;border-top:1px solid var(--line);background:#ffffff08;color:var(--accent);font:12px var(--mono)}.console-command input{min-width:0;border:0;outline:0;background:transparent;color:var(--text);font:12px var(--mono)}.console-command input::placeholder{color:color-mix(in srgb,var(--muted) 48%,transparent)}.icon{width:18px;height:18px;flex:none;fill:none;stroke:currentcolor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}button.icon-button{display:inline-grid;place-items:center;width:38px;padding:0}button.icon-button.primary{color:var(--accent-ink)}button.text-button{min-height:0;padding:4px 0;border:0;background:transparent;color:var(--accent);font-size:11.5px;letter-spacing:.12em}button.text-button:hover:not(:disabled){border:0;background:transparent;color:#9cc6f0;text-decoration:underline;text-underline-offset:4px}button.text-button.danger{justify-self:start;margin-top:26px;color:var(--danger)}.keycap{display:inline-grid;place-items:center;min-width:24px;height:22px;padding:0 6px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:var(--radius);background:#ffffff0f;color:var(--text);font:700 11px / 1 var(--font);letter-spacing:.04em;text-transform:uppercase}.primary .keycap{border-color:#07131f4d;background:#07131f1a;color:inherit}.segmented{display:inline-flex;flex-wrap:wrap;gap:2px;padding:2px;border:1px solid var(--line);border-radius:var(--radius);background:#00000047}.segmented button{min-height:28px;padding:0 10px;border:0;background:transparent;color:var(--muted);font-size:11px}.segmented button:hover:not(:disabled){border:0;background:#ffffff0f;color:var(--text)}.segmented button[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 24%,transparent);color:#fff}.chip{display:inline-flex;align-items:center;padding:3px 6px;border-radius:2px;background:#ffffff14;color:var(--muted);font:700 9.5px / 1 var(--font);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}.chip[data-status=verified]{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}.chip[data-status=uploading],.chip[data-status=queued],.chip[data-status=verifying]{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.chip[data-status=rejected],.chip[data-status=failed]{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger)}.tier{display:inline-grid;place-items:center;min-width:26px;height:18px;padding:0 5px;border-radius:2px;background:var(--tier, #6fd38a);color:#0a0d08;font:800 10.5px / 1 var(--font);letter-spacing:.06em}.tier[data-tier="2"]{--tier: #a9d95a}.tier[data-tier="3"]{--tier: #e6c64c}.tier[data-tier="4"]{--tier: #ee9b47}.tier[data-tier="5"]{--tier: #ee6a5e}.tier[data-tier="6"]{--tier: #c766e3}.medal{flex:none;display:inline-block;width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff8 0 18%,transparent 45%),var(--medal);box-shadow:0 0 0 1px #00000059;vertical-align:-1px}.medal[data-medal=gold]{--medal: #f2c53d}.medal[data-medal=silver]{--medal: #c3ccd6}.medal[data-medal=bronze]{--medal: #c98447}.map-card-order{position:absolute;top:8px;left:8px;display:grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:2px;background:#080b10d1;color:#fff;font:800 12px / 1 var(--font);font-variant-numeric:tabular-nums}.hero-campaign{color:var(--accent)}.hero-medals dd{display:flex;flex-wrap:wrap;gap:8px 16px}.medal-target{display:inline-flex;align-items:center;gap:7px;color:#ffffff8c}.medal-target[data-earned=true]{color:#fff}.finish-medal{display:flex;align-items:center;gap:6px;margin-bottom:2px;color:var(--text)}.campaign-progress{display:flex;align-items:center;gap:14px;margin-left:auto}.campaign-summary{display:inline-flex;align-items:center;gap:14px;color:var(--muted);font-size:12px}.medal-tally{display:inline-flex;align-items:center;gap:6px;color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}.campaign-bar{display:flex;gap:3px;width:clamp(120px,14vw,216px)}.campaign-pip{flex:1;height:5px;border-radius:1px;background:#ffffff1f}.campaign-pip[data-state=done]{background:var(--accent)}.campaign-pip[data-state=next]{background:color-mix(in srgb,var(--accent) 40%,transparent)}.map-grid.campaign-grid{grid-template-columns:repeat(6,minmax(0,1fr))}@media(max-width:1200px){.map-grid.campaign-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.campaign-card[data-state=done] .map-card-order{display:flex;align-items:center;gap:3px;padding-right:4px}.map-card-order .icon{width:13px;height:13px;stroke-width:3;color:var(--accent)}.campaign-card[data-state=next]:not([aria-pressed=true]){border-color:color-mix(in srgb,var(--accent) 55%,transparent)}.campaign-card[data-state=next] .map-card-order{background:var(--accent);color:var(--accent-ink)}.campaign-card[data-state=next] .map-card-best{color:var(--accent);letter-spacing:.06em;text-transform:uppercase}input.switch{position:relative;width:38px;height:22px;margin:0;border-radius:11px;appearance:none;background:#ffffff24;cursor:pointer;transition:background-color .14s ease}input.switch:before{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#cfd6df;transition:transform .14s ease}input.switch:checked{background:var(--accent)}input.switch:checked:before{transform:translate(16px);background:#fff}select,.name-form input,.number-input,.map-search{min-height:38px;padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--radius);background:#0f1318;color:var(--text);font:inherit;font-size:14px}select{min-height:32px;font-size:12px}.empty-state{margin:0;padding:28px 18px;border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);font-size:13px;line-height:1.5;text-align:center}.empty-state p{margin:0 0 8px}.board-note{margin:12px 0 0;color:var(--muted);font-size:11.5px;line-height:1.5}.form-message{margin:0;color:var(--danger);font-size:12.5px;line-height:1.5}.form-message:empty{display:none}.form-message[data-ok=true]{color:var(--ok)}.profile-privacy{color:#8b96a3;font-size:12.5px}.profile-privacy:hover{color:#c9d2dc}.menu-overlay{position:fixed;z-index:20;inset:0;overflow:hidden}.menu-overlay[data-screen=lobby]{background:var(--bg)}.menu-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.85;animation:backdrop-drift 50s ease-in-out infinite alternate}.menu-overlay[data-screen=lobby]:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgb(7 9 12 / 85%) 0%,rgb(7 9 12 / 55%) 28%,transparent 60%,rgb(7 9 12 / 25%) 100%),linear-gradient(0deg,var(--bg) 0%,rgb(7 9 12 / 50%) 22%,transparent 45%),linear-gradient(180deg,rgb(7 9 12 / 40%) 0%,transparent 15%);pointer-events:none}.menu-overlay[data-screen=pause]{background:linear-gradient(90deg,#05070af0 0,#05070acc 400px,#05070a66)}.menu-content{position:relative;z-index:1;height:100%}@keyframes backdrop-drift{0%{transform:scale(1.03)}to{transform:scale(1.12) translate(-1.5%,-1%)}}.loading-screen{position:fixed;z-index:30;inset:0;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;padding:32px var(--gutter) clamp(28px,7vh,72px);background:radial-gradient(ellipse 70% 60% at 75% 25%,rgb(93 155 216 / 16%),transparent 70%),var(--bg)}.loading-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:loading-drift 30s ease-in-out infinite alternate}.loading-screen:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgb(7 9 12 / 96%) 0%,rgb(7 9 12 / 78%) 30%,rgb(7 9 12 / 20%) 62%,transparent 80%),linear-gradient(90deg,rgb(7 9 12 / 55%) 0%,transparent 55%);pointer-events:none}@keyframes loading-drift{0%{transform:scale(1.04)}to{transform:scale(1.16) translate(-2%,-1.5%)}}.loading-body{position:relative;z-index:1;display:grid;gap:26px;width:min(820px,100%)}.loading-eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:#c6ced8;font:600 13px / 1 var(--font);letter-spacing:.14em;text-transform:uppercase}.loading-eyebrow-label{color:var(--accent)}.loading-title-slot{margin-top:-14px}.loading-title{margin:0;color:#fff;font:700 clamp(52px,9vw,128px) / .84 var(--display);font-stretch:75%;text-transform:uppercase;text-shadow:0 6px 40px rgb(0 0 0 / 55%);overflow-wrap:anywhere}.loading-title .map-prefix{display:block;margin-bottom:.12em;color:var(--accent);font-size:.2em;letter-spacing:.32em}.loading-tip{display:flex;align-items:flex-start;gap:14px;max-width:640px}.loading-tip-label{flex:none;margin-top:2px;padding:4px 7px;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:var(--radius);color:var(--accent);font:700 11px / 1 var(--font);letter-spacing:.2em;text-transform:uppercase}.loading-tip-text{min-height:3.1em;margin:0;color:#dfe4ea;font-size:17px;line-height:1.55;text-shadow:0 1px 12px rgb(0 0 0 / 60%)}.loading-tip-text .keycap{margin:0 2px;vertical-align:1px}.loading-progress{display:grid;gap:10px}.loading-progress-head,.loading-progress-foot{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.loading-progress-head{align-items:flex-end;min-height:37px}.loading-stage{color:#c6ced8;font:600 13px / 1 var(--font);letter-spacing:.14em;text-transform:uppercase}.loading-percent{color:#fff;font:700 46px / .8 var(--display);font-stretch:75%;font-variant-numeric:tabular-nums}.loading-track{position:relative;height:6px;overflow:hidden;border-radius:var(--radius);background:#d6e0f024}.loading-fill{position:absolute;inset:0;background:linear-gradient(90deg,#3f7fbf,var(--accent) 70%,#9cc6f0);transform:scaleX(0);transform-origin:left;transition:transform .25s linear}.loading-track:after{content:"";position:absolute;inset:0;width:35%;background:linear-gradient(90deg,transparent,rgb(255 255 255 / 45%),transparent);transform:translate(-100%);animation:loading-sheen 1.6s linear infinite}.loading-track[data-state=unknown]:after{background:linear-gradient(90deg,transparent,var(--accent),transparent)}@keyframes loading-sheen{to{transform:translate(300%)}}.loading-detail{color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums}button.loading-cancel{flex:none}@media(max-width:680px){.loading-body{gap:20px}.loading-tip{flex-direction:column;gap:8px}.loading-tip-text{font-size:15px}.loading-percent{font-size:36px}.loading-progress-head{min-height:29px}.loading-progress-foot{align-items:center}}@media(prefers-reduced-motion:reduce){.loading-art,.loading-track:after{animation:none}}.lobby{height:100%;overflow-y:auto}.lobby-bar{display:flex;align-items:center;gap:10px;padding:22px var(--gutter) 0}.brand{color:#fff;font:800 18px / 1 var(--font);letter-spacing:.24em}.brand-mark{color:var(--accent)}.brand-version{color:var(--muted, #8b93a1);font:600 11px / 1 var(--font);letter-spacing:.08em;text-transform:uppercase}.bar-spacer{flex:1}.lobby-bar button{border-color:var(--line-strong);background:#0a0c10c7}button.player-chip{display:inline-flex;align-items:center;gap:9px;max-width:min(280px,50vw);padding:0 12px;font-weight:600;letter-spacing:.04em;text-transform:none}.player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--muted)}.status-dot[data-status=authenticated]{background:var(--ok)}.status-dot[data-status=error]{background:var(--danger)}.lobby-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,440px);align-items:end;gap:clamp(24px,4vw,64px);--pinned: 330px;--stage-h: max(420px, calc(100vh - 300px) );position:sticky;top:calc(var(--pinned) - var(--stage-h));z-index:2;height:var(--stage-h);padding:24px var(--gutter) 20px}.lobby-hero{min-width:0;padding-bottom:6px}.hero-eyebrow{display:flex;align-items:center;gap:10px;color:#c6ced8;font:600 13px / 1 var(--font);letter-spacing:.14em;text-transform:uppercase}.hero-title{margin:14px 0 0;color:#fff;font:700 clamp(64px,10vw,152px) / .84 var(--display);font-stretch:75%;letter-spacing:-.005em;text-transform:uppercase;text-shadow:0 6px 40px rgb(0 0 0 / 55%);overflow-wrap:anywhere}.hero-title .map-prefix{display:block;margin-bottom:.12em;color:var(--accent);font-size:.2em;letter-spacing:.32em}.hero-copy{max-width:520px;color:#aeb7c2;font-size:15px;line-height:1.6}.hero-stats{display:flex;gap:40px;margin:28px 0 0}.stat dt{color:var(--muted);font:600 11px / 1 var(--font);letter-spacing:.16em;text-transform:uppercase}.stat dd{margin:9px 0 0;color:#fff;font:700 26px / 1 var(--font);font-variant-numeric:tabular-nums}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:30px}button.play-button{position:relative;display:inline-flex;align-items:center;gap:14px;min-height:64px;padding:0 48px 0 34px;overflow:hidden;border:0;border-radius:0;background:var(--accent);color:var(--accent-ink);font:800 22px / 1 var(--font);letter-spacing:.22em;clip-path:polygon(0 0,100% 0,calc(100% - 18px) 100%,0 100%)}button.play-button .icon{width:22px;height:22px}button.play-button:hover:not(:disabled){border:0;background:#80b7ee;color:var(--accent-ink)}button.play-button:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgb(255 255 255 / 45%) 50%,transparent 65%);transform:translate(-110%)}button.play-button:hover:not(:disabled):after{animation:shine .7s ease}button.play-button:disabled{opacity:.7}@keyframes shine{to{transform:translate(110%)}}button.ghost-button{display:inline-flex;align-items:center;gap:8px;border-color:var(--line-strong);background:#0a0c10bf}.launch-status{max-width:520px;margin:18px 0 0;color:#c6ced8;font-size:14px;line-height:1.5}.launch-status[data-state=error]{color:var(--danger)}.launch-status[data-state=loading]:after{content:"";display:block;width:min(360px,100%);height:2px;margin-top:10px;background:linear-gradient(90deg,transparent,var(--accent),transparent) 0 0 / 40% 100% no-repeat,var(--line);animation:loading-bar 1.1s linear infinite}@keyframes loading-bar{0%{background-position:-60% 0,0 0}to{background-position:160% 0,0 0}}.panel{border:1px solid var(--line);border-top:2px solid var(--accent);border-radius:var(--radius);background:#0b0e13e5;box-shadow:0 24px 80px #00000073}.lobby-board{display:flex;flex-direction:column;min-height:0;max-height:calc(var(--pinned) - 44px)}.board-tabs{display:flex;flex:none;border-bottom:1px solid var(--line)}button.tab{flex:1;min-height:46px;border:0;border-radius:0;background:transparent;color:var(--muted);letter-spacing:.14em;box-shadow:inset 0 -2px 0 transparent}button.tab:hover:not(:disabled){border:0;background:#ffffff08;color:var(--text)}button.tab[aria-selected=true]{background:transparent;color:#fff;box-shadow:inset 0 -2px 0 var(--accent)}.board-body{min-height:0;overflow-y:auto;padding:14px 16px 16px}.board-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.board-foot{display:flex;align-items:center;gap:12px;margin-top:12px}.board-foot>:first-child{flex:1;margin:0}.board-foot .icon-button{width:32px;min-height:32px;border-color:transparent;background:transparent;color:var(--muted)}.record-table{width:100%;border-collapse:collapse;font-size:13px}.record-table th{padding:0 8px 8px;border-bottom:1px solid var(--line);color:var(--muted);font:600 10px / 1 var(--font);letter-spacing:.14em;text-align:left;text-transform:uppercase}.record-table td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}.record-table th.rank{width:40px}.record-table .time{text-align:right}.record-table .actions{width:1%;padding-right:0;text-align:right;white-space:nowrap}span.rank{display:inline-grid;place-items:center;min-width:26px;height:24px;border-radius:var(--radius);background:#ffffff0f;color:var(--muted);font:700 12px / 1 var(--font)}tr[data-rank="1"] span.rank{background:var(--gold);color:#1b1404}tr[data-rank="2"] span.rank{background:var(--silver);color:#14181d}tr[data-rank="3"] span.rank{background:var(--bronze);color:#1d1007}.record-name{display:block;color:#fff;font-weight:600;overflow-wrap:anywhere}tr[data-self=true] td{background:color-mix(in srgb,var(--accent) 12%,transparent)}tr[data-self=true] .record-name:after{content:"You";margin-left:8px;padding:2px 5px;border-radius:2px;background:var(--accent);color:var(--accent-ink);font-size:9px;letter-spacing:.12em;text-transform:uppercase;vertical-align:1px}.record-sub{display:flex;align-items:center;gap:6px;margin-top:4px;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.time .record-sub{justify-content:flex-end}.record-time{color:#fff;font:700 15px / 1 var(--font);font-variant-numeric:tabular-nums}tr[data-rank="1"] .record-time{color:var(--gold)}.record-table .actions .icon-button{width:30px;min-height:30px;border-color:transparent;background:transparent;color:var(--muted)}.record-table tr:hover .actions .icon-button{color:var(--text)}.skeleton{display:grid;gap:8px}.skeleton-row{height:36px;border-radius:var(--radius);background:linear-gradient(90deg,#ffffff0a 0,#ffffff17,#ffffff0a 80%) 0 0 / 300% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-200% 0}}.run-list{display:grid;gap:2px;margin:0;padding:0;list-style:none}.run-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:7px 4px;border-radius:var(--radius)}.run-row:hover{background:#ffffff0a}.run-info{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}.run-time{color:#fff;font:700 15px / 1 var(--font);font-variant-numeric:tabular-nums}.run-row[data-valid=false] .run-time{color:var(--muted)}.run-meta{color:var(--muted);font-size:11.5px}.run-row .icon-button{width:32px;min-height:32px;border-color:transparent;background:transparent;color:var(--muted)}.run-row:hover .icon-button{color:var(--text)}.ghost-toggle{position:relative;display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:var(--radius);color:var(--muted);cursor:pointer}.ghost-toggle input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}.ghost-toggle:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 22%,transparent);color:#fff}.ghost-toggle:has(input:disabled){opacity:.35;cursor:default}.ghost-toggle:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.lobby-maps{min-width:0;padding:0 var(--gutter) 22px}.maps-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}.lobby-tabs{display:flex;gap:26px;margin-right:14px}button.lobby-tab{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0;border:0;border-radius:0;background:transparent;color:var(--muted);font:700 12px / 1 var(--font);letter-spacing:.24em;box-shadow:inset 0 -2px 0 transparent}button.lobby-tab:hover:not(:disabled){border:0;background:transparent;color:var(--text)}button.lobby-tab[aria-selected=true]{color:#fff;box-shadow:inset 0 -2px 0 var(--accent)}.tab-count{color:var(--muted);font-weight:600;letter-spacing:.04em}.maps-note{color:var(--muted);font-size:12px}.map-search{width:min(260px,100%);min-height:32px;margin-left:auto;font-size:12px}.map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:12px;padding:4px 2px 8px}.map-grid>.empty-state{grid-column:1 / -1}.run-maps{display:grid;gap:6px;padding:4px 2px 8px}.run-map{display:grid;grid-template-columns:minmax(0,1fr) 150px 100px minmax(170px,auto) 32px;align-items:center;gap:16px;padding:8px 12px 8px 8px;border:1px solid var(--line);border-radius:var(--radius);background:#0c0f14b8}.run-map[data-selected=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}button.run-map-pick{display:flex;align-items:center;gap:14px;min-width:0;min-height:0;padding:0;border:0;background:transparent;color:var(--text);letter-spacing:0;text-align:left;text-transform:none}button.run-map-pick:hover:not(:disabled){border:0;background:transparent;color:var(--text)}button.run-map-pick:hover:not(:disabled) .run-map-title{color:var(--accent)}.run-map-thumb{flex:none;width:96px;aspect-ratio:16 / 9;overflow:hidden;border-radius:2px;background:repeating-linear-gradient(45deg,rgb(255 255 255 / 4%) 0 6px,transparent 6px 12px)}.run-map-thumb img{display:block;width:100%;height:100%;object-fit:cover}.run-map-name{display:grid;gap:6px;min-width:0}.run-map-title{overflow:hidden;color:#fff;font:700 22px / 1 var(--display);font-stretch:75%;letter-spacing:.02em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.run-map-title .map-prefix{color:#ffffff7f}.run-map-sub,.run-map-count{color:var(--muted);font-size:11.5px}.run-map-best{display:inline-flex;align-items:center;gap:8px}.run-map-board{display:flex;justify-content:flex-end}.run-map .icon-button{width:32px;min-height:32px;border-color:transparent;background:transparent;color:var(--muted)}.run-map:hover .icon-button{color:var(--text)}@media(max-width:700px){.run-map{grid-template-columns:minmax(0,1fr) auto 32px;gap:10px 12px}.run-map-count,.run-map-board:empty{display:none}.run-map-board{grid-column:1 / -1;justify-content:flex-start}.run-map .icon-button{grid-area:1 / 3}button.run-map-pick{gap:10px}.run-map-thumb{width:56px}.run-map-title{font-size:19px}}.sign-in-offer{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-left:auto;color:var(--muted);font-size:12.5px}.board-offer{flex:none;justify-content:space-between;margin:0;padding:10px 16px;border-top:1px solid var(--line)}button.map-card{display:grid;min-height:0;padding:0;overflow:hidden;border:1px solid var(--line);background:#0c0f14b8;color:var(--text);letter-spacing:0;text-align:left;text-transform:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}button.map-card:hover:not(:disabled){transform:translateY(-3px);border-color:var(--line-strong);background:#10141ae0;color:var(--text)}button.map-card[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 12px 32px color-mix(in srgb,var(--accent) 28%,transparent)}.map-thumb{position:relative;display:block;aspect-ratio:16 / 9;overflow:hidden;background:repeating-linear-gradient(45deg,rgb(255 255 255 / 4%) 0 6px,transparent 6px 12px)}.map-thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}button.map-card:hover:not(:disabled) .map-thumb img{transform:scale(1.05)}.map-thumb:after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#000000d1)}.map-card-title{position:absolute;z-index:1;right:12px;bottom:9px;left:12px;overflow:hidden;color:#fff;font:700 22px / 1 var(--display);font-stretch:75%;letter-spacing:.02em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.map-card-title .map-prefix,.prompt-map .map-prefix,.sheet-subtitle .map-prefix{color:#ffffff7f}.map-card-meta{display:flex;align-items:center;gap:8px;min-height:37px;padding:9px 12px 10px;color:var(--muted);font-size:11.5px}.map-card-author{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-card-best{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.pause{display:flex;height:100%}.pause-menu{display:flex;flex-direction:column;justify-content:center;gap:30px;width:min(420px,100%);padding:48px clamp(20px,4vw,56px);overflow-y:auto}.pause-eyebrow{color:var(--accent);font:700 12px / 1 var(--font);letter-spacing:.32em;text-transform:uppercase}.pause-title{margin:12px 0 0;color:#fff;font:700 58px / .9 var(--display);font-stretch:75%;text-transform:uppercase;overflow-wrap:anywhere}.pause-title .map-prefix{display:block;margin-bottom:.2em;color:var(--muted);font-size:.26em;letter-spacing:.3em}.pause-note{margin:16px 0 0;padding:10px 12px;border-left:2px solid var(--warn);background:color-mix(in srgb,var(--warn) 10%,transparent);color:#f1d9a0;font-size:13px;line-height:1.5}.pause-items{display:grid;gap:2px}.pause-keys{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px;color:var(--muted);font-size:12px}.pause-keys-title{grid-column:1 / -1;margin:0 0 3px;color:var(--muted);font:700 11px / 1 var(--font);letter-spacing:.2em;text-transform:uppercase}.pause-key{display:flex;align-items:center;gap:8px;min-width:0}.pause-key-caps{display:inline-flex;flex:none;gap:3px;min-width:51px}.pause-hud-hint{margin:14px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.pause{--rail: 52px}.pause-panel{position:relative;z-index:2;display:flex;flex:none;flex-direction:column;width:clamp(360px,27vw,460px);height:100%;margin-left:auto;border-left:1px solid var(--line);background:#0c0f14f2;box-shadow:-30px 0 80px #00000059}.pause-panel[data-collapsed=true]{width:var(--rail)}.panel-head{display:flex;flex:none;border-bottom:1px solid var(--line)}.panel-tabs{display:flex;flex:1;min-width:0}.pause-panel[data-collapsed=true] :is(.panel-head,.panel-tabs){flex-direction:column;border-bottom:0}button.panel-toggle,button.panel-tab{min-height:48px;border:0;border-radius:0;background:transparent;color:var(--muted)}button.panel-toggle{flex:none;width:var(--rail);border-right:1px solid var(--line)}.pause-panel[data-collapsed=true] button.panel-toggle{border-right:0;border-bottom:1px solid var(--line)}button.panel-tab{flex:1 1 auto;padding:0 8px;font-size:11px;letter-spacing:.12em;white-space:nowrap;box-shadow:inset 0 -2px 0 transparent}button.panel-tab .icon{display:none}:is(button.panel-toggle,button.panel-tab):hover:not(:disabled){border-color:var(--line);background:#ffffff0a;color:var(--text)}button.panel-tab[aria-selected=true]{color:#fff;box-shadow:inset 0 -2px 0 var(--accent)}.pause-panel[data-collapsed=true] button.panel-tab{flex:none;padding:0}.pause-panel[data-collapsed=true] button.panel-tab .icon{display:block;margin:auto}.pause-panel[data-collapsed=true] .panel-tab-label{display:none}.panel-body{flex:1;min-height:0;padding:16px 18px;overflow-y:auto;scrollbar-width:thin;scrollbar-gutter:stable}.panel-links{display:grid;flex:none;padding:2px 18px 16px;border-top:1px solid var(--line);background:#ffffff05}.panel-links .setting-row{padding:10px 0;font-size:13px}button.panel-arrange{justify-content:center;margin-top:12px}.panel-status{margin:0 0 12px;color:var(--muted);font-size:12.5px;line-height:1.5}.panel-lobby .player-row{min-height:46px;padding:6px 6px 6px 12px}.player-text{display:grid;flex:1;gap:3px;min-width:0}.player-text .player-note{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.player-spectate{flex:none;min-height:32px;padding:0 10px;font-size:11px}button.player-moderate{flex:none;width:32px;min-height:32px}button.player-moderate[aria-pressed=true]{color:var(--danger)}.player-row[data-standing=blocked]{opacity:.6}.panel-lobby .player-hint{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px}.quick-maps-search{width:100%;margin:0 0 10px}.quick-maps{display:grid;gap:4px;margin:0;padding:0;list-style:none}button.quick-map{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:0;padding:6px 10px 6px 6px;border-color:transparent;background:#ffffff08;color:var(--text);letter-spacing:0;text-align:left;text-transform:none}button.quick-map:hover:not(:disabled){border-color:var(--line-strong);background:#ffffff0f;color:var(--text)}button.quick-map:hover:not(:disabled) .quick-map-title{color:var(--accent)}button.quick-map:disabled{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent);opacity:1}.quick-map-thumb{width:72px;aspect-ratio:16 / 9;overflow:hidden;border-radius:2px;background:repeating-linear-gradient(45deg,rgb(255 255 255 / 4%) 0 6px,transparent 6px 12px)}.quick-map-thumb img{display:block;width:100%;height:100%;object-fit:cover}.quick-map-name{display:grid;gap:5px;min-width:0}.quick-map-title{overflow:hidden;color:#fff;font:700 17px / 1 var(--display);font-stretch:75%;letter-spacing:.02em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.quick-map-title .map-prefix{color:#ffffff7f}.quick-map-sub{display:flex;align-items:center;gap:6px;min-width:0;color:var(--muted);font-size:11.5px}.quick-map-where{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-map-side{display:grid;justify-items:end;gap:5px}.quick-map-best{display:inline-flex;align-items:center;gap:6px;color:var(--text);font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}.pause>.sheet{right:var(--rail)}button.pause-item{display:flex;align-items:center;gap:14px;min-height:52px;padding:0 14px;border:0;background:transparent;color:#b9c2cd;font:700 16px / 1 var(--font);letter-spacing:.16em;text-align:left}.pause-item-label{flex:1}button.pause-item:hover:not(:disabled),button.pause-item[aria-pressed=true]{border:0;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 22%,transparent),transparent);box-shadow:inset 3px 0 0 var(--accent);color:#fff}button.pause-item:first-child{color:#fff}button.pause-item:first-child .icon{color:var(--accent)}.last-attempt{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff08}.last-attempt span{display:block;color:var(--muted);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.last-attempt strong{display:block;margin-top:4px;color:#fff;font-size:16px;font-variant-numeric:tabular-nums}.sheet{position:absolute;z-index:3;top:0;right:0;bottom:0;display:flex;flex-direction:column;width:min(520px,100vw);border-left:1px solid var(--line);background:#0c0f14f7;box-shadow:-30px 0 80px #00000073;animation:sheet-in .22s cubic-bezier(.2,.8,.2,1)}.sheet-scrim{position:absolute;z-index:2;inset:0;background:#0000007f;animation:fade-in .2s ease-out}.sheet-head{display:flex;align-items:center;gap:14px;padding:20px 20px 16px 24px;border-bottom:1px solid var(--line)}.sheet-head h2{margin:0;color:#fff;font:700 17px / 1 var(--font);letter-spacing:.18em;text-transform:uppercase}.sheet-subtitle{min-width:0;overflow:hidden;color:var(--muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.sheet-head .icon-button{margin-left:auto;border-color:transparent;background:transparent}.sheet-body{flex:1;min-height:0;padding:18px 24px 32px;overflow-y:auto;scrollbar-gutter:stable}.sheet .board-tabs{margin-bottom:4px}.sheet .board-body{padding:14px 0 0;overflow:visible}.sheet-copy{margin:0;color:#aeb7c2;font-size:13.5px;line-height:1.6}@keyframes sheet-in{0%{transform:translate(40px);opacity:0}}@keyframes fade-in{0%{opacity:0}}.settings-tabs{margin-bottom:4px}.settings-list{display:grid}.setting-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 20px;padding:14px 0;border-bottom:1px solid var(--line);color:var(--text);font-size:14px}label.setting-row{cursor:pointer}.setting-label small{display:block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.45}.range-control{display:flex;align-items:center;gap:12px;width:min(250px,50vw)}.range-control input[type=range]{flex:1;min-width:0;cursor:ew-resize}.range-control output{min-width:44px;color:var(--accent);font:600 13px var(--mono);font-variant-numeric:tabular-nums;text-align:right}input.number-input{width:74px;min-height:32px;padding:0 8px;color:var(--accent);font:600 13px var(--mono);text-align:right}.settings-group{margin:26px 0 0;color:var(--muted);font:700 11px / 1 var(--font);letter-spacing:.2em;text-transform:uppercase}.settings-sync-note{margin:14px 0 0;color:var(--muted);font-size:12.5px;line-height:1.5}button.bind-button{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;min-width:64px;min-height:32px;padding:0 4px;border-color:transparent;background:transparent;color:var(--muted);letter-spacing:.04em;text-transform:none}button.bind-button:hover:not(:disabled){border-color:var(--line);background:#ffffff0d}button.bind-button[data-listening=true]{padding:0 10px;border-color:var(--accent);color:var(--accent)}.profile-head{display:flex;align-items:center;gap:16px;margin-bottom:20px}.avatar{display:grid;place-items:center;width:56px;height:56px;flex:none;border-radius:50%;background:linear-gradient(135deg,var(--accent),#24476d);color:#fff;font:800 24px / 1 var(--font)}.profile-name{display:block;color:#fff;font:700 22px / 1.1 var(--font);overflow-wrap:anywhere}.profile-status{display:block;margin-top:6px;color:var(--muted);font-size:12.5px}.profile-card{display:grid;gap:10px;margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff06}.profile-card h3{margin:0;color:#fff;font:700 12.5px / 1.2 var(--font);letter-spacing:.16em;text-transform:uppercase}.card-head{display:flex;align-items:center;justify-content:space-between}.card-head .icon-button{width:32px;min-height:32px;border-color:transparent;background:transparent;color:var(--muted)}.card-actions{display:flex;flex-wrap:wrap;gap:8px}.name-form label{display:grid;gap:6px;color:var(--muted);font-size:12px;letter-spacing:.04em}.name-form{grid-template-columns:minmax(0,1fr) auto;align-items:end}.name-form .form-message{grid-column:1 / -1}.submission-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.submission-list li{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.submission-message{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-prompt{position:fixed;z-index:10;top:58%;left:50%;display:grid;justify-items:center;gap:14px;width:max-content;max-width:calc(100vw - 32px);padding:22px 28px;transform:translate(-50%);border:1px solid var(--line);border-radius:var(--radius);background:#080a0edb;pointer-events:none;text-align:center;animation:prompt-in .24s ease-out}.prompt-map{color:var(--muted);font:600 12px / 1 var(--font);letter-spacing:.24em;text-transform:uppercase}.prompt-title{color:#fff;font:700 36px / 1 var(--display);font-stretch:75%;letter-spacing:.08em;text-transform:uppercase;animation:prompt-pulse 1.8s ease-in-out infinite}.prompt-keys{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 18px}.key-hint{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:12px}.key-hint>span:last-child{margin-left:4px}.prompt-tip{max-width:440px;margin:0;color:#c6ced8;font-size:13px;line-height:1.5}@keyframes prompt-in{0%{opacity:0;transform:translate(-50%,8px)}}@keyframes prompt-pulse{50%{opacity:.6}}.scoreboard{position:fixed;z-index:40;top:50%;left:50%;display:flex;flex-direction:column;width:min(560px,calc(100vw - 32px));max-height:min(640px,calc(100vh - 96px));padding:16px 18px;transform:translate(-50%,-50%);border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:var(--radius);background:#0a0d12f0;box-shadow:0 24px 70px #0000007f;pointer-events:none}.scoreboard.hidden{display:none}.scoreboard-head{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}.scoreboard-head h2{margin:0;font-size:13px;letter-spacing:.16em;text-transform:uppercase}.scoreboard-body{min-height:0;overflow:hidden}.run-complete{--result: var(--accent);position:fixed;z-index:40;bottom:28px;left:50%;display:grid;gap:6px;width:min(440px,calc(100vw - 32px));padding:14px 18px 16px;transform:translate(-50%);border:1px solid var(--line);border-top:3px solid var(--result);border-radius:var(--radius);background:#0a0d12eb;box-shadow:0 24px 70px #0000007f;animation:finish-in .28s cubic-bezier(.2,.9,.25,1.15)}.run-complete[data-result=best]{--result: var(--ok);box-shadow:0 24px 70px #0000007f,0 0 70px color-mix(in srgb,var(--ok) 22%,transparent)}.run-complete[data-result=invalid]{--result: var(--danger)}.finish-head{display:flex;align-items:center;gap:10px}.finish-label{color:var(--result);font:800 12px / 1 var(--font);letter-spacing:.26em;text-transform:uppercase}.finish-where{flex:1;min-width:0;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}button.finish-close{width:28px;min-height:28px;border-color:transparent;background:transparent;color:var(--muted)}.finish-time{color:#fff;font:700 54px / 1 var(--font);font-variant-numeric:tabular-nums;letter-spacing:.01em}.finish-verdict{color:var(--result);font:700 14px / 1.3 var(--font);font-variant-numeric:tabular-nums;letter-spacing:.08em;text-transform:uppercase;white-space:pre-wrap}.run-complete[data-result=slower] .finish-verdict{color:var(--danger)}.finish-detail{margin:0 0 8px;color:var(--muted);font-size:12.5px;line-height:1.5}.finish-actions{display:flex;flex-wrap:wrap;gap:8px}.finish-actions button{display:inline-flex;flex:1;align-items:center;justify-content:center;gap:8px}.finish-offer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);font-size:12.5px}@keyframes finish-in{0%{opacity:0;transform:translate(-50%,16px) scale(.97)}}.toast{position:fixed;z-index:50;bottom:26px;left:50%;width:max-content;max-width:min(600px,calc(100vw - 32px));padding:13px 18px;transform:translate(-50%);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-left:2px solid var(--accent);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:13px;line-height:1.5;box-shadow:0 12px 40px #0000006b;animation:toast-in .16s ease-out}.toast[data-lifted=true]{top:26px;bottom:auto}.toast[data-action=true]{display:flex;align-items:center;gap:16px}.toast[data-action=true] span{flex:1}.toast[data-action=true] button{flex:none;min-height:32px}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.progress-popup{position:fixed;z-index:40;top:22%;left:50%;display:grid;justify-items:center;gap:2px;min-width:200px;padding:14px 28px 16px;border-top:2px solid var(--gold);background:linear-gradient(180deg,#161a20eb,#161a20c7);box-shadow:0 16px 48px #0006;text-align:center;pointer-events:none;translate:-50% 0;animation:progress-popup 2.6s ease-out forwards}.progress-popup-label{color:var(--gold);font:700 12px / 1 var(--font);letter-spacing:.24em;text-transform:uppercase}.progress-popup-value{color:#fff;font:700 56px / 1 var(--display);font-variant-numeric:tabular-nums;letter-spacing:.02em;text-shadow:0 2px 18px rgb(240 195 90 / 45%)}.progress-popup-detail{color:var(--muted);font:600 12px / 1.3 var(--font);letter-spacing:.06em}@keyframes progress-popup{0%{opacity:0;transform:scale(.8)}8%{opacity:1;transform:scale(1.06)}14%{transform:scale(1)}82%{opacity:1;transform:none}to{opacity:0;transform:translateY(-10px)}}@media(prefers-reduced-motion:reduce){.progress-popup{animation-name:progress-popup-fade}@keyframes progress-popup-fade{0%,82%{opacity:1}to{opacity:0}}}.checkpoint-popup{position:fixed;z-index:18;top:13%;left:50%;display:grid;justify-items:center;gap:4px;min-width:180px;padding:10px 22px 12px;border-top:2px solid var(--gold);background:linear-gradient(180deg,#161a20e5,#161a20bd);box-shadow:0 12px 36px #0000005c;text-align:center;pointer-events:none;translate:-50% 0;animation:checkpoint-popup 2.2s ease-out forwards}.checkpoint-popup-label{color:var(--gold);font:700 11px / 1 var(--font);letter-spacing:.22em;text-transform:uppercase}.checkpoint-popup-value{color:#fff;font:700 34px / 1 var(--display);font-variant-numeric:tabular-nums;letter-spacing:.02em}.checkpoint-popup-delta{color:var(--danger);font:700 16px / 1 var(--display);font-variant-numeric:tabular-nums;letter-spacing:.04em}.checkpoint-popup-delta[data-ahead=true]{color:var(--ok)}.checkpoint-popup-detail{color:var(--muted);font:700 10px / 1.3 var(--font);letter-spacing:.14em;text-transform:uppercase}@keyframes checkpoint-popup{0%{opacity:0;transform:translateY(-6px)}8%{opacity:1;transform:none}80%{opacity:1}to{opacity:0}}.checkpoint-hint,.checkpoint-hold{position:fixed;z-index:18;top:62%;left:50%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;width:max-content;max-width:calc(100vw - 32px);padding:9px 14px;border-left:2px solid var(--accent);border-radius:var(--radius);background:#161a20db;box-shadow:0 10px 30px #00000052;color:var(--text);font:600 13px / 1.3 var(--font);pointer-events:none;translate:-50% 0}.checkpoint-hint{animation:checkpoint-hint .2s ease-out}.play-prompt:not(.hidden)~.checkpoint-hint{display:none}.checkpoint-hint[data-kind=back],.checkpoint-hold{border-left-color:var(--warn)}.checkpoint-hold{opacity:0;animation:checkpoint-hold-in .12s ease-out var(--hold-delay) forwards}.checkpoint-hold-label{color:var(--muted)}.checkpoint-hold-track{position:relative;flex-basis:100%;height:4px;overflow:hidden;background:var(--line)}.checkpoint-hold-fill{position:absolute;inset:0;background:var(--warn);transform:scaleX(0);transform-origin:left center;animation:checkpoint-hold-fill var(--hold-fill) linear var(--hold-delay) forwards}@keyframes checkpoint-hint{0%{opacity:0;transform:translateY(6px)}}@keyframes checkpoint-hold-in{to{opacity:1}}@keyframes checkpoint-hold-fill{to{transform:scaleX(1)}}@media(prefers-reduced-motion:reduce){.checkpoint-popup{animation-name:checkpoint-popup-fade}.checkpoint-hint{animation:none}@keyframes checkpoint-popup-fade{0%,80%{opacity:1}to{opacity:0}}}.key-coach{display:grid;justify-items:center;gap:6px}.key-coach-grid{--key-size: 34px;display:grid;grid-template-areas:". w ." "a s d";grid-template-columns:repeat(3,var(--key-size));gap:4px}.key-coach-key[data-key=forward]{grid-area:w}.key-coach-key[data-key=left]{grid-area:a}.key-coach-key[data-key=back]{grid-area:s}.key-coach-key[data-key=right]{grid-area:d}.key-coach-key{--key-tint: rgb(214 224 240);position:relative;display:grid;place-items:center;width:var(--key-size);height:var(--key-size);border:1px solid var(--line);border-bottom-width:2px;border-radius:var(--radius);background:var(--hud-plate);color:#d6e0f06b;font:700 14px / 1 var(--font);letter-spacing:.04em;text-transform:uppercase;isolation:isolate}.key-coach-key:before{content:"";position:absolute;z-index:-1;inset:0;background:var(--key-tint);opacity:0;border-radius:2px;transition:opacity 90ms ease-out}.key-coach-key:not([data-mark=off],[data-mark=hint]){color:#fff}.key-coach-key[data-mark=held]{border-color:var(--line-strong)}.key-coach-key[data-mark=held]:before{opacity:.2}.key-coach-key[data-mark=good]{--key-tint: var(--ok);border-color:var(--ok)}.key-coach-key[data-mark=wrong]{--key-tint: var(--danger);border-color:var(--danger)}.key-coach-key:is([data-mark=good],[data-mark=wrong]):before{opacity:.5}.key-coach-key[data-mark=hint]{border-color:color-mix(in srgb,var(--ok) 60%,transparent);color:var(--ok)}.key-coach-ghost{color:#c5ccd6;font:700 12px / 1.2 var(--font);font-variant-numeric:tabular-nums;letter-spacing:.06em;white-space:nowrap}.key-coach-ghost:empty{display:none}.hud-item[data-style=minimal] .key-coach-grid{--key-size: 26px;gap:3px}.hud-item[data-style=minimal] .key-coach-key{font-size:12px}.hud-item[data-style=minimal] .key-coach-key[data-mark=off]{border-color:#d6e0f01a}.multiplayer-panel{position:fixed;z-index:18;top:14px;left:18px;display:grid;justify-items:start;gap:6px;width:min(420px,calc(100vw - 36px));pointer-events:none}.multiplayer-status{padding:5px 10px;border-radius:var(--radius);background:#080b10b8;color:var(--text);font:600 12px / 1.2 var(--font)}.multiplayer-head{display:flex;align-items:center;gap:6px}.spectators{display:flex;align-items:center;gap:5px;min-width:0;padding:5px 9px 5px 7px;border-radius:var(--radius);background:#080b10b8;color:var(--muted);font:700 12px / 1.2 var(--font)}.spectators .icon{flex:none;width:15px;height:15px}.spectators-names{display:flex;flex-wrap:wrap;gap:2px 8px;min-width:0}.spectator-name{overflow:hidden;color:var(--player);text-overflow:ellipsis;white-space:nowrap}.talkers,.chat-log{display:grid;justify-items:start;gap:4px;margin:0;padding:0;list-style:none}.talkers:empty,.chat-log:empty{display:none}.talker{display:flex;align-items:center;gap:7px;padding:4px 10px 4px 8px;border-left:3px solid var(--player);border-radius:var(--radius);background:#080b10cc;color:var(--text);font:600 13px / 1.2 var(--font)}.talker .icon{flex:none;width:16px;height:16px;color:var(--player)}.talker[data-kind=unheard] .icon,.talker[data-kind=muted] .icon{color:#ff8a7a}.talker-note{color:var(--muted);font-size:12px}.chat-line{max-width:100%;padding:3px 8px;border-radius:var(--radius);background:#080b10a8;color:var(--text);font:500 13px / 1.35 var(--font);overflow-wrap:anywhere;animation:chat-fade 12s forwards}.chat-name{margin-right:6px;color:var(--player);font-weight:700}.chat-log[data-open] .chat-line{animation:none}@keyframes chat-fade{0%,85%{opacity:1}to{opacity:0}}.chat-form{width:100%;pointer-events:auto}.chat-input{width:100%;padding:7px 10px;border:1px solid rgb(255 255 255 / 22%);border-radius:var(--radius);background:#080b10e5;color:var(--text);font:500 14px / 1.2 var(--font);outline:none}.chat-input:focus{border-color:#ffffff73}.scoreboard-players{margin-bottom:14px}.player-list{display:grid;gap:2px;margin:0;padding:0;list-style:none}.player-row{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:var(--radius);background:#ffffff0a;font:600 13px / 1.2 var(--font)}.player-row:before{content:"";flex:none;width:9px;height:9px;border-radius:50%;background:var(--player)}.player-row[data-watched]{background:color-mix(in srgb,var(--player) 18%,transparent)}.player-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-note,.player-hint{color:var(--muted);font-size:12px}.player-hint{margin:8px 0 0}.spectate-bar{position:fixed;z-index:18;bottom:28px;left:50%;display:grid;justify-items:center;gap:10px;padding:12px 18px;transform:translate(-50%);border-top:3px solid var(--player);border-radius:var(--radius);background:#0a0d12db;pointer-events:none}.spectate-who{display:flex;align-items:baseline;gap:12px;white-space:nowrap}.spectate-label{color:var(--muted);font:800 11px / 1 var(--font);letter-spacing:.24em;text-transform:uppercase}.spectate-name{color:var(--player);font:700 20px / 1 var(--font)}.spectate-speed{font:700 16px / 1 var(--font);font-variant-numeric:tabular-nums}.players-badge{display:inline-flex;align-items:center;gap:6px;color:#b8f5c8;font:700 12px / 1 var(--font);letter-spacing:normal;text-transform:none}.players-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 2px #4ade8040}.online-count{margin-left:6px}.map-card-players{position:absolute;top:8px;right:8px;height:24px;padding:0 8px;border-radius:2px;background:#080b10d1}.surf-warning{position:fixed;z-index:19;top:22%;left:50%;display:grid;justify-items:center;gap:6px;width:max-content;max-width:calc(100vw - 32px);padding:12px 22px;border:2px solid #ff8a7f;border-radius:var(--radius);background:#b01e18eb;box-shadow:0 10px 30px #0006;color:#fff;text-align:center;pointer-events:none;translate:-50% 0;animation:surf-warning-in .16s ease-out,surf-warning-pulse .7s ease-in-out .16s infinite alternate}.surf-warning-title{font:700 22px / 1.2 var(--font);letter-spacing:.02em;text-transform:uppercase}.surf-warning-detail{font:600 15px / 1.3 var(--font)}.surf-warning .keycap{min-width:30px;height:28px;margin:0 2px;border-color:#ffffffb3;background:#ffffff2e;color:#fff;font-size:15px;vertical-align:middle}@keyframes surf-warning-in{0%{opacity:0;transform:scale(.9)}}@keyframes surf-warning-pulse{to{transform:scale(1.05)}}@media(prefers-reduced-motion:reduce){.surf-warning{animation:none}}.replay-controls{position:fixed;z-index:15;bottom:20px;left:50%;display:grid;gap:10px;width:min(820px,calc(100vw - 32px));padding:14px 16px;transform:translate(-50%);border:1px solid var(--line);border-radius:var(--radius);background:#0a0d12e0;box-shadow:0 18px 60px #00000070}.replay-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.replay-title{display:flex;align-items:center;gap:10px;min-width:0}.replay-title strong{overflow:hidden;color:#fff;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.replay-header-actions{display:flex;flex-shrink:0;gap:8px}.replay-header-actions>button{display:inline-flex;align-items:center;gap:8px;min-height:32px}.replay-header-actions>.replay-collapse{width:32px;border-color:transparent;background:transparent;color:var(--muted)}.replay-header-actions>.replay-collapse:hover{border-color:transparent;background:#ffffff0f;color:var(--text)}.replay-collapse svg{width:16px;height:16px}.replay-controls>input[type=range]{width:100%}.replay-controls>input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg,var(--accent) var(--progress, 0%),var(--line-strong) var(--progress, 0%))}.replay-buttons{display:flex;align-items:center;gap:10px}.replay-buttons .icon-button.primary{border-color:var(--accent);background:var(--accent)}.replay-time{margin-left:auto;color:var(--text);font:700 12px var(--mono);font-variant-numeric:tabular-nums}.compare-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}.replay-input-card{display:flex;align-items:baseline;gap:12px;min-width:0;padding:7px 10px;border-radius:var(--radius);background:#ffffff0a;color:var(--muted);font:11px / 1.5 var(--mono);white-space:nowrap}.replay-input-card strong{overflow:hidden;flex-shrink:1;min-width:0;color:var(--accent);text-overflow:ellipsis}.replay-input-card span:first-of-type{color:var(--text);font-weight:700}.replay-input-card span:last-of-type{margin-left:auto}:root[data-ui-quality=high] .hud-item[data-style=standard]>.hud-content{text-shadow:none;filter:drop-shadow(0 1px 1px rgb(0 0 0 / 65%)) drop-shadow(0 2px 6px rgb(0 0 0 / 40%))}:root[data-ui-quality=high] .hud-item[data-hud=crosshair][data-style=standard]>.reticle{--reticle-edge: transparent;filter:drop-shadow(0 0 1px #000) drop-shadow(0 0 1px #000)}:root[data-ui-quality=high] .debug-hud{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}:root[data-ui-quality=high] .menu-overlay[data-screen=pause]{-webkit-backdrop-filter:blur(8px) saturate(.85);backdrop-filter:blur(8px) saturate(.85)}:root[data-ui-quality=high] .run-complete,:root[data-ui-quality=high] .replay-controls{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}:root[data-ui-quality=high] .lobby-bar button{background:#0a0c108c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}:root[data-ui-quality=high] button.ghost-button{background:#0a0c107f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}:root[data-ui-quality=high] .panel{background:#0b0e13cc;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}:root[data-ui-quality=high] .play-prompt{background:#080a0ebd;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@media(prefers-reduced-motion:reduce){.menu-backdrop,.sheet,.sheet-scrim,.play-prompt,.prompt-title,.skeleton-row,.run-complete,.toast,.launch-status:after,button.play-button:after{animation:none!important}button.map-card,.map-thumb img{transition:none}}@media(max-width:900px){.lobby-stage{grid-template-columns:minmax(0,1fr);position:static;height:auto;padding-top:40px;background:none}.lobby-board{max-height:none}.map-grid.campaign-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-stats{gap:28px}.pause{flex-direction:column;overflow-y:auto}.pause-menu{flex:none;justify-content:flex-start;width:100%;overflow:visible}.pause-panel{width:auto;height:auto;min-height:75dvh;margin:0;border-top:1px solid var(--line);border-left:0;box-shadow:none}.pause-panel[data-collapsed=true]{width:auto;min-height:0}.pause-panel[data-collapsed=true] :is(.panel-head,.panel-tabs){flex-direction:row}.pause-panel[data-collapsed=true] button.panel-toggle{border-right:1px solid var(--line);border-bottom:0}.pause-panel[data-collapsed=true] button.panel-tab{flex:1 1 auto}.pause>.sheet{right:0}.pause-title{font-size:44px}}@media(max-width:680px){.hud-zone[data-anchor=top-right]{top:96px}.range-control{width:min(200px,46vw)}.game-console{inset:auto 0 0;width:auto;height:min(70vh,640px);border-top:1px solid var(--line-strong);border-left:0}.console-hint{display:none}.console-header h2{margin-right:auto}.console-entry{grid-template-columns:56px minmax(0,1fr);gap:4px 10px}.console-entry-level{line-height:1.6}.console-entry-message{grid-column:1 / -1}}.fail-label{position:fixed;z-index:5;max-width:420px;padding:8px 11px;transform:translate(-50%,-100%);border:1px solid color-mix(in srgb,var(--danger) 55%,transparent);border-radius:var(--radius);background:color-mix(in srgb,var(--panel) 88%,transparent);color:var(--text);font-size:12px;line-height:1.45;white-space:nowrap;pointer-events:none}.fail-head{margin-bottom:3px;color:var(--danger);font-weight:600}.fail-more{opacity:.7}.guide-row{grid-template-columns:minmax(0,1fr)}.guide-actions{display:flex;flex-wrap:wrap;gap:6px}.guide-actions button{min-height:32px;padding:0 10px;font-size:11px}.guide-actions button svg{width:15px;height:15px}.bot-run-status{margin:0;padding:8px 10px;max-height:180px;overflow:auto;border-radius:6px;background:#00000059;font:11px/1.45 ui-monospace,Consolas,monospace;white-space:pre-wrap}.bot-run-status:empty{display:none}button.danger-button{border-color:#ff6b5e73;color:var(--danger)}button.danger-button:hover,button.danger-button:focus-visible{border-color:var(--danger);background:#ff6b5e1f}.touch-controls{position:fixed;z-index:12;inset:0;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}body:has(.menu-overlay:not(.hidden)) .touch-controls,body:has(.replay-controls:not(.hidden)) .touch-controls{display:none}.touch-stick-zone{position:absolute;bottom:0;width:50%;height:calc(100% - 72px)}.touch-stick-zone[data-stick=move]{left:0}.touch-stick-zone[data-stick=look]{right:0}.touch-stick{position:absolute;top:calc(100% - 112px);width:128px;height:128px;margin:-64px 0 0 -64px;border:2px solid rgb(214 224 240 / 30%);border-radius:50%;background:#0a0c1052;pointer-events:none}.touch-stick-zone[data-stick=move] .touch-stick{left:112px}.touch-stick-zone[data-stick=look] .touch-stick{left:calc(100% - 112px)}.touch-stick[data-active]{border-color:color-mix(in srgb,var(--accent) 70%,transparent)}.touch-knob{position:absolute;top:50%;left:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:#e4e7ebb8;box-shadow:0 2px 10px #00000059;will-change:translate}.touch-controls .touch-button{position:absolute;display:grid;place-content:center;justify-items:center;gap:3px;min-height:0;padding:0;border:2px solid rgb(214 224 240 / 30%);border-radius:50%;background:#0a0c1066;color:#fff;font:700 10px / 1 var(--font);letter-spacing:.14em;text-transform:uppercase}.touch-controls .touch-button .icon{width:24px;height:24px}.touch-jump{right:24px;bottom:196px;width:84px;height:84px}.touch-controls .touch-jump .icon{width:28px;height:28px}.touch-controls .touch-jump[data-active]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 45%,transparent)}.touch-controls button.touch-auto-hop{right:34px;bottom:296px;width:64px;height:64px;border-color:#d6e0f04d;background:#0a0c1066;color:var(--muted)}.touch-controls button.touch-auto-hop[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 40%,rgb(10 12 16 / 40%));color:#fff}.touch-system{position:absolute;top:12px;left:12px;display:flex;align-items:center;gap:8px}.touch-controls button.touch-system-button{display:inline-grid;place-items:center;width:44px;min-height:44px;padding:0;border-color:#d6e0f038;background:#0a0c108c;color:#fff}:root[data-touch] .hud-zone:is([data-anchor=bottom-left],[data-anchor=bottom-right]){bottom:380px}:root[data-touch] .route-progress{width:min(460px,40vw)}@media(orientation:portrait){:root[data-touch] .hud-zone[data-anchor=bottom-center]{bottom:220px}:root[data-touch] .route-progress{width:min(460px,76vw)}}:root[data-touch] .debug-hud{top:68px;bottom:auto}:root[data-touch] .run-complete{top:68px;bottom:auto}:root[data-touch] .toast{top:68px;bottom:auto;pointer-events:none}:root[data-touch] .toast[data-action=true]{pointer-events:auto}:root[data-touch] .toast[data-lifted=true]{top:auto;bottom:45%}:root[data-touch] :is(.pause-item,.finish-actions,.replay-header-actions) .keycap{display:none}.replay-controls[data-collapsed]{display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100vw - 32px);padding:8px 10px;overflow:hidden}.replay-controls[data-collapsed] :is(.replay-header,.replay-buttons){display:contents}.replay-controls[data-collapsed] :is(.replay-title strong,.replay-share,.replay-speeds,.compare-inputs),.replay-controls[data-collapsed]>input[type=range]{display:none}.replay-controls[data-collapsed] .replay-buttons .icon-button{order:1}.replay-controls[data-collapsed] .replay-time{order:2;margin-left:0}.replay-controls[data-collapsed] .replay-header-actions{order:3}.replay-controls[data-collapsed]:after{content:"";position:absolute;bottom:0;left:0;width:var(--progress, 0%);height:2px;background:var(--accent)}@media(pointer:coarse){.map-search,.number-input,.name-form input{font-size:16px}}@media(hover:none){button.map-card:hover:not(:disabled),button.map-card:hover:not(:disabled) .map-thumb img{transform:none}}@media(max-width:560px){.lobby-bar{gap:8px;padding-top:16px}.brand-version,.lobby-bar .button-label{display:none}.lobby-tabs{gap:16px;margin-right:0}button.lobby-tab{gap:6px;letter-spacing:.12em;white-space:nowrap}.lobby-stage{padding-top:28px}.hero-title{font-size:clamp(44px,15vw,80px)}.hero-stats{gap:24px;margin-top:20px}.stat dd{font-size:22px}.hero-actions{gap:10px;margin-top:22px}button.play-button{flex:1 0 100%;justify-content:center;min-height:56px}.map-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px}.map-card-title{right:9px;bottom:7px;left:9px;font-size:17px}.map-card-meta{min-height:33px;padding:7px 9px 8px}.map-grid.campaign-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-progress{flex:1 0 100%;margin-left:0}.campaign-bar{flex:1}.map-search{width:100%;margin-left:0}.sheet-head{padding:16px 14px 12px 18px}.sheet-body{padding:14px 18px 28px}.setting-row:has(.segmented){grid-template-columns:minmax(0,1fr)}.pause-menu{gap:20px;padding:28px 20px}.pause-title{font-size:36px}.finish-time{font-size:42px}.replay-controls{grid-template-columns:minmax(0,1fr)}.replay-header,.replay-buttons{flex-wrap:wrap}.replay-header-actions{margin-left:auto}.replay-controls[data-collapsed] .replay-title{display:none}}@media(max-height:520px)and (orientation:landscape){.lobby-stage{padding-top:16px}.hero-title{font-size:clamp(40px,9vw,96px)}.hero-stats{margin-top:16px}.stat dd{font-size:22px}.hero-actions{margin-top:18px}button.play-button{min-height:52px}.pause{flex-direction:row;overflow:hidden}.pause-menu{justify-content:flex-start;width:min(360px,46vw);padding:20px 24px;gap:14px;overflow-y:auto}.pause-panel{flex:1;width:auto;height:100%;min-height:0;margin-left:auto;border-top:0;border-left:1px solid var(--line)}.pause-panel[data-collapsed=true]{flex:none;width:var(--rail)}.pause-panel[data-collapsed=true] :is(.panel-head,.panel-tabs){flex-direction:column}.pause-panel[data-collapsed=true] button.panel-toggle{border-right:0;border-bottom:1px solid var(--line)}.pause-panel[data-collapsed=true] button.panel-tab{flex:none}:is(button.panel-toggle,button.panel-tab){min-height:40px}.panel-body{padding:10px 14px}.panel-links{padding:0 14px 10px}.panel-links .setting-row{padding:6px 0}.pause>.sheet{right:var(--rail)}.pause-title{margin-top:8px;font-size:30px}.pause-note{margin-top:10px;padding:6px 10px;font-size:12px}button.pause-item{min-height:40px;font-size:14px}.sheet{width:min(520px,58vw)}.sheet-head{padding:12px 14px 10px 20px}.sheet-body{padding:12px 20px 24px}.run-complete{gap:4px;padding:10px 14px 12px}.finish-time{font-size:36px}.replay-controls{bottom:10px;gap:8px;padding:10px 12px}}
