:root{color-scheme:dark;--ui-background: #101216;--ui-surface: #191d24;--ui-border: #343a45;--ui-text: #edf0f5;--ui-muted: #a0a9b8;--ui-accent: #56dcf5;--ui-font: "Segoe UI", Arial, sans-serif;--arcade-font: Impact, Haettenschweiler, "Arial Narrow", "Nimbus Sans Narrow", sans-serif;--ui-motion: .18s ease}*{padding:0;margin:0}body{margin:0;background:var(--ui-background);color:var(--ui-text);font-family:var(--ui-font);overflow:hidden;display:flex;justify-content:center;align-items:center}.game-stage{position:fixed;top:0;left:0;width:100%;height:100%}body:has(.side-panel.open) .game-stage{width:calc(100% - min(75vw,640px))}.game-stage>canvas{display:block}.pause-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;padding:.4em .9em;font:bold clamp(2rem,8vw,5rem) / 1 system-ui,sans-serif;letter-spacing:.15em;color:#fff;background:#000a;border-radius:.2em;pointer-events:none}.pause-overlay[hidden]{display:none}body:has(.game-menu.big){min-height:100vh;min-height:100svh;background-image:radial-gradient(ellipse at 25% 40%,#56dcf509,transparent 50%),radial-gradient(ellipse at 75% 65%,#b99bfa09,transparent 50%)}canvas{max-width:100%}.game-menu{z-index:999;display:flex;align-items:stretch;position:absolute;top:0;left:50%;width:min(520px,calc(100% - 32px));box-sizing:border-box;padding:0 4px 4px;border:1px solid #343a4540;border-top:0;border-radius:0 0 12px 12px;background:#191d2420;box-shadow:none;list-style:none;transform:translate(-50%,-12px);opacity:.32;transition:transform var(--ui-motion),opacity var(--ui-motion),background-color var(--ui-motion),border-color var(--ui-motion),box-shadow var(--ui-motion)}.game-menu:not(.big):hover,.game-menu:not(.big):focus-within{transform:translate(-50%);opacity:1;border-color:var(--ui-border);background:var(--ui-surface);box-shadow:0 6px 16px #0003}.game-menu li{flex:1;min-width:0}.game-menu li+li{border-left:1px solid #343a4540;transition:border-color var(--ui-motion)}.game-menu:not(.big):hover li+li,.game-menu:not(.big):focus-within li+li{border-left-color:var(--ui-border)}.game-menu a{--game-accent: var(--ui-accent);--game-tint: 86, 220, 245;display:flex;align-items:center;justify-content:center;position:relative;min-height:40px;box-sizing:border-box;padding:10px 12px;border-radius:7px;color:var(--game-accent);font:700 15px / 1 var(--arcade-font);letter-spacing:.06em;text-decoration:none;text-transform:uppercase;-webkit-tap-highlight-color:transparent;transition:background-color var(--ui-motion),border-color var(--ui-motion),box-shadow var(--ui-motion),transform var(--ui-motion)}.game-menu a[href="?game=circuit"]{--game-accent: #f5d576;--game-tint: 245, 213, 118}.game-menu a[href="?game=cave"]{--game-accent: #b99bfa;--game-tint: 185, 155, 250}.game-menu a[href="?game=climb"]{--game-accent: #ff8d86;--game-tint: 255, 141, 134}.game-menu a:hover,.game-menu a:focus-visible{background-color:rgba(var(--game-tint),.1);box-shadow:inset 0 -2px var(--game-accent)}.game-menu a:focus-visible{outline:2px solid var(--game-accent);outline-offset:-3px}.game-menu.big{position:fixed;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;top:50%;width:min(840px,calc(100% - 64px));padding:0;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;transform:translate(-50%,-50%);opacity:1}.game-menu.big li+li{border:0}.game-menu.big a{justify-content:flex-start;align-items:flex-end;min-height:clamp(140px,24svh,200px);padding:28px 32px;border:1px solid #626d7b;border-left:10px solid var(--game-accent);border-radius:12px;background:linear-gradient(135deg,rgba(var(--game-tint),.045),transparent 70%),linear-gradient(135deg,#1e232b,#13171c);box-shadow:-12px 8px 48px rgba(var(--game-tint),.06),0 12px 28px #0003;font-size:clamp(32px,4vw,48px);letter-spacing:.025em}.game-menu.big a:hover,.game-menu.big a:focus-visible{border-color:var(--game-accent);background-color:rgba(var(--game-tint),.08);box-shadow:0 0 32px rgba(var(--game-tint),.13),0 16px 32px #0005;transform:translateY(-4px)}.game-menu.big a:focus-visible{outline-offset:5px}.game-menu.big a:active{transform:translateY(-1px)}@media (max-width: 560px){.game-menu{width:calc(100% - 24px)}.game-menu a{min-height:44px;padding-inline:6px;font-size:13px}.game-menu.big{grid-template-columns:1fr;gap:12px;width:calc(100% - 48px)}.game-menu.big a{min-height:clamp(84px,15svh,112px);padding:20px 24px;border-left-width:6px;font-size:34px}}@media (max-height: 520px){.game-menu.big{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:min(720px,calc(100% - 40px))}.game-menu.big a{min-height:clamp(72px,30svh,140px);padding:16px 20px;border-left-width:6px;font-size:clamp(26px,4vw,36px)}}.side-panel{position:fixed;top:0;right:0;height:100%;width:240px;z-index:999;transform:translate(100%);box-sizing:border-box;border-left:1px solid var(--ui-border);transition:transform .24s ease;background:#161a21f5;color:var(--ui-text)}.side-panel.open{transform:translate(0);box-shadow:-16px 0 48px #0005}.side-panel-toggle{position:absolute;left:-2.4em;top:50%;transform:translateY(-50%);width:2.4em;height:4.5em;border:1px solid var(--ui-border);border-right:0;border-radius:.6em 0 0 .6em;background:#191d24f5;color:var(--ui-accent);font-size:1.1em;cursor:pointer;transition:background-color var(--ui-motion),color var(--ui-motion)}.side-panel-toggle:hover{background:#28313d;color:#fff}.side-panel-toggle:focus-visible,.follow-keys button:focus-visible,.seed-controls button:focus-visible{outline:2px solid var(--ui-accent);outline-offset:3px}.side-panel-content{display:flex;flex-direction:column;gap:.6em;height:100%;box-sizing:border-box;padding:1em;overflow-y:auto}.group-panel{display:flex;flex-direction:column;gap:.5em}.group-panel-divider{border:0;border-top:1px solid var(--ui-border);margin:.15em 0}.group-panel-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:.4em}.group-panel-btn{min-height:28px;border:1px solid var(--ui-border);border-radius:.4em;padding:.25em .2em;font:600 .68rem / 1.2 var(--ui-font);letter-spacing:.03em;text-transform:uppercase;color:var(--ui-text);background:#222832;cursor:pointer;transition:background-color var(--ui-motion),border-color var(--ui-motion)}.group-panel-btn:hover:not(:disabled){border-color:#687587;background:#303a48}.group-panel-btn:disabled{opacity:.4;cursor:not-allowed}.group-panel-btn:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}.group-panel-btn-danger{border-color:#7a3a3f;background:#3a2226;color:#ff9d9d}.group-panel-btn-danger:hover:not(:disabled){border-color:#ff7070;background:#55292e}.group-panel-readouts{display:grid;gap:.25em}.group-panel-row{display:flex;justify-content:space-between;align-items:baseline;font:.72rem var(--ui-font);color:#ffffffbf}.group-panel-row[hidden],.group-panel-value[hidden],.group-panel-select[hidden]{display:none}.group-panel-name{text-transform:uppercase;letter-spacing:.06em;color:#ffffff8c}.group-panel-value{font-family:ui-monospace,Cascadia Mono,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;color:var(--ui-accent)}.group-panel-loss-row{align-items:center}.group-panel-loss{flex:1;height:44px;margin-inline:.6em;border:1px solid var(--ui-border);border-radius:.35em;background:#1b202a}.group-panel-select{max-width:60%;min-height:24px;padding:.1em .3em;border:1px solid var(--ui-border);border-radius:.35em;font:.72rem var(--ui-font);color:var(--ui-text);background:#222832;cursor:pointer}.group-panel-select:hover{border-color:#687587}.group-panel-select:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}.neural-canvas{background:#949494;border:2px solid var(--network-color, #c4c4c4);box-sizing:border-box}.follow-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:.4em}.follow-keys span{grid-column:1 / -1;font:700 .7em Arial,sans-serif;text-transform:uppercase;letter-spacing:.1em;color:#fff9}.follow-keys button{min-height:32px;border:2px solid transparent;border-radius:.4em;padding:.25em 0;font:700 .8em Arial,sans-serif;color:#fff;background:rgba(255,255,255,.15);cursor:pointer}.follow-keys button:hover{background:rgba(255,255,255,.3)}.follow-keys button.follow-all,.follow-keys button.follow-all:hover,.follow-keys button.follow-all.dead,.follow-keys button.follow-all.running{background:#fff;border-color:#fff;color:#000}.follow-keys button.dead{background:transparent;border-color:var(--btn-color, hsl(180, 100%, 45%));color:var(--btn-color, hsl(180, 100%, 45%))}.follow-keys button.running{background:var(--btn-color, hsl(180, 100%, 45%));border-color:var(--btn-color, hsl(180, 100%, 45%));color:var(--btn-text, #000)}.follow-keys button.active{outline:2px solid #fff;outline-offset:1px}.side-panel-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6em;flex:0 1 30%;min-height:0;overflow:hidden}.side-panel-about{min-height:0;overflow-y:auto;padding:.5em .7em;border-radius:.4em;background:#ffffff05;font:.72em Arial,sans-serif;line-height:1.5;color:#ffffffd9}.side-panel-legend{min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.15em;padding:.5em .7em;border-radius:.4em;background:#ffffff05;font:.72em Arial,sans-serif;color:#ffffffd9}.side-panel-legend .legend-title{font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#fff9}.side-panel-frames{position:absolute;right:10px;bottom:10px;z-index:10;padding:.25em .6em;border-radius:.4em;background:#10141a99;font:.72em/1.2 ui-monospace,Cascadia Mono,Menlo,Consolas,monospace;color:var(--ui-accent);font-variant-numeric:tabular-nums;letter-spacing:.04em}.side-panel-section{display:flex;flex-direction:column;gap:.4em}.side-panel-section-toggle{align-self:flex-start;border:0;background:none;padding:0;font:700 .7em Arial,sans-serif;text-transform:uppercase;letter-spacing:.1em;color:#fff9;cursor:pointer}.side-panel-section-toggle:hover{color:#fff}.side-panel-section-toggle:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}.seed-controls{display:flex;align-items:center;gap:.35em;margin-left:auto;color:#fff;font:700 .8em Arial,sans-serif}.seed-controls button{width:1.8em;height:1.8em;border:0;border-radius:.25em;color:#111;background:#c4c4c4;font:inherit;cursor:pointer}.seed-controls button:hover{background:#fff}.seed-controls .boost-button:hover,.seed-controls .boost-button:active{background:#ffe47a}.seed-value{min-width:3em;text-align:center;font-family:monospace}.seed-controls.standalone{position:absolute;top:12px;left:12px;margin-left:0;z-index:500}.top-right-hud{position:absolute;top:24px;right:24px;z-index:500;display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 48px)}.top-right-hud .timing-board,.top-right-hud .track-score-board{position:relative!important;inset:auto!important;max-height:none}.track-score-board{position:absolute;top:24px;right:24px;z-index:500;min-width:264px;max-height:calc(100vh - 48px);overflow-y:auto;padding:.45em .7em;border-radius:.45em;background:rgba(17,21,15,.82);color:#ffffffd1;font:12px monospace}.track-score-title{margin-bottom:.35em;color:#ffffff8c;font-size:.85em;letter-spacing:.1em;text-transform:uppercase}.track-score-row{display:grid;grid-template-columns:minmax(0,1fr) 5ch 5ch 7ch 6ch;width:100%;gap:.75em;line-height:1.35;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.track-score-row>span{min-width:0;overflow:hidden;text-align:right;text-overflow:ellipsis}.track-score-headings{color:#ffffff8c;font-size:.85em;text-transform:uppercase}.track-score-rows{margin-top:.15em}.score-board-left{top:24px;left:24px;right:auto;min-width:200px}.score-board-cars{margin-bottom:.3em;font-weight:700}.score-board-row{line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.race-end-countdown{position:absolute;top:50%;left:50%;z-index:1000;transform:translate(-50%,-50%);color:#ff4545;font:bold clamp(1.5rem,6vw,3.5rem) monospace;text-align:center;text-shadow:0 0 12px rgba(255,69,69,.7);pointer-events:none}.race-end-countdown[hidden]{display:none}.human-celebration{position:absolute;top:50%;left:50%;z-index:1000;transform:translate(-50%,-50%) scale(.9);padding:.65em 1em;border:2px solid #ffe47a;border-radius:.45em;background:rgba(17,21,15,.92);color:#ffe47a;font:bold clamp(1.1rem,4vw,2.2rem) monospace;text-align:center;text-shadow:0 0 12px rgba(255,228,122,.55);pointer-events:none;animation:human-celebration-pulse 1.2s ease-in-out infinite alternate}.human-celebration[hidden]{display:none}.human-celebration:not(.visible){animation:none}@keyframes human-celebration-pulse{0%{transform:translate(-50%,-50%) scale(.96)}to{transform:translate(-50%,-50%) scale(1.04)}}.timing-board{position:absolute;left:24px;bottom:132px;z-index:500;min-width:300px;padding:.45em .7em;border-radius:.45em;background:rgba(17,21,15,.82);color:#ffffffd1;font:12px monospace}.timing-board-title{display:flex;align-items:center;gap:.75em;margin-bottom:.35em;color:#ffffff8c;font-size:.85em;letter-spacing:.1em;text-transform:uppercase}.timing-board-row{line-height:1.35;white-space:nowrap}@media (max-width: 560px){.top-right-hud{top:8px;right:8px;left:8px;align-items:flex-end}.top-right-hud .timing-board{min-width:0}.track-score-board{min-width:264px}.score-board-left{top:8px;left:8px;min-width:170px}}.cave-position{position:absolute;top:14px;right:18px;z-index:2;color:#dfb;font-family:monospace;text-align:right;text-shadow:0 2px 6px #000;pointer-events:none}.cave-position-label{font-size:11px;letter-spacing:2px}.cave-position-value{font-size:clamp(52px,6vw,88px);font-weight:800;line-height:1}.cave-position-total{font-size:20px;opacity:.7}.steer-overlay{--hud-color: #c4c4c4;position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:flex-start;align-items:flex-end;gap:12px;padding:12px 24px;z-index:500;opacity:1;transition:opacity .15s ease}.steer-overlay.hidden{opacity:0}.control-indicators{display:flex;flex-direction:column;align-items:center;gap:4px}.control-axis{width:110px;height:110px}.readout{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.combo-indicator{font-family:monospace;font-size:22px;font-weight:800;line-height:1;color:var(--hud-color)}.laps,.frame-count{font-family:monospace;font-size:14px;color:var(--hud-color);opacity:.7}.timing-deltas{display:flex;flex-direction:column;gap:1px;margin-top:2px;font-family:monospace;font-size:12px;color:var(--hud-color);opacity:.72}.timing-line{display:flex;gap:.45em;align-items:baseline}.timing-label{min-width:4.5em;color:var(--hud-color);opacity:.5;text-transform:uppercase}.timing-value{min-width:4ch;text-align:right}.timing-delta{min-width:5ch;text-align:left}.speedo{display:flex;align-items:baseline;padding-bottom:10px}.speedo-value{font-family:monospace;font-size:28px;font-weight:700;color:var(--hud-color);opacity:.9}.speedo-unit{font-family:monospace;font-size:12px;color:var(--hud-color);opacity:.55;margin-left:6px}.gate-gauge{align-self:center;position:relative;width:8px;height:110px;margin-bottom:0;overflow:hidden;background:rgba(255,255,255,.18);border:1px solid var(--hud-color);border-radius:5px}.gate-gauge-fill{position:absolute;right:0;bottom:0;left:0;width:100%;height:100%;background:var(--hud-color);border-radius:inherit;transition:height .1s linear}.brain-stats{align-self:flex-end;max-width:48vw;display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-bottom:10px;font-family:monospace;font-size:14px;color:var(--hud-color);opacity:.75}.brain-stats.hidden{visibility:hidden}.climb-progress{position:absolute;top:18px;right:24px;z-index:500;min-width:86px;color:#fff;text-align:right;text-shadow:0 1px 3px rgba(0,0,0,.55);pointer-events:none}.climb-progress-label{font:11px monospace;letter-spacing:.12em;opacity:.75;text-transform:uppercase}.climb-platform-value{font:800 clamp(42px,6vw,78px) / .9 monospace}@media (max-width: 760px){.climb-progress{top:12px;right:12px}.steer-overlay{gap:12px;padding-left:12px;padding-right:12px}}@media (prefers-reduced-motion: reduce){.game-menu,.game-menu li,.game-menu a,.side-panel,.side-panel-toggle{transition:none}.game-menu.big a:hover,.game-menu.big a:focus-visible,.game-menu.big a:active{transform:none}.toast{transition:none}}.toast-stack{position:fixed;left:50%;bottom:20px;z-index:2000;display:flex;flex-direction:column;gap:8px;width:max-content;max-width:min(440px,calc(100vw - 24px));transform:translate(-50%);pointer-events:none}.toast{--toast-accent: #56dcf5;box-sizing:border-box;padding:.7em 1em;border:1px solid #343a45;border-left:4px solid var(--toast-accent);border-radius:.5em;background:rgba(17,21,24,.94);color:var(--ui-text);font:13px monospace;box-shadow:0 8px 24px #0007;opacity:0;transform:translateY(12px);transition:opacity var(--ui-motion),transform var(--ui-motion);pointer-events:auto;cursor:pointer}.toast.visible{opacity:1;transform:translateY(0)}.toast[data-tone=success]{--toast-accent: #70e08a}.toast[data-tone=error]{--toast-accent: #ff7070}@media (max-width: 560px){.toast-stack{left:0;right:0;bottom:0;width:auto;max-width:none;transform:none}.toast{border-radius:0;border-left:0;border-bottom:0;border-top:3px solid var(--toast-accent)}}
