html,body{color:#e6edf3;background:#0d1117;height:100%;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}#app,#app canvas.main{width:100%;height:100%;display:block}.hud{-webkit-user-select:none;user-select:none;background:#0d1117c7;border:1px solid #30363d;border-radius:6px;min-width:250px;padding:8px 10px;font-size:12px;line-height:1.45;position:absolute;top:8px;left:8px}.hud .row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.hud input[type=text]{color:#e6edf3;width:110px;font:inherit;background:#161b22;border:1px solid #30363d;border-radius:4px;padding:2px 4px}.hud button{color:#e6edf3;font:inherit;cursor:pointer;background:#21262d;border:1px solid #30363d;border-radius:4px;padding:2px 8px}.hud button:hover{background:#30363d}.hud .help{color:#8b949e;margin-top:6px}.hud label{align-items:center;gap:4px;display:inline-flex}canvas.overlay{background:#0d1117e6;border:1px solid #30363d;border-radius:6px;width:min(62vh,50vw);height:min(62vh,50vw);display:none;position:absolute;top:8px;right:8px}canvas.overlay.visible{display:block}.overlay-legend{color:#8b949e;box-sizing:border-box;width:min(62vh,50vw);font-size:11px;display:none;position:absolute;top:calc(min(62vh,50vw) + 14px);right:8px}.overlay-legend.visible{display:block}.overlay-legend span{white-space:nowrap;margin-right:10px}.overlay-legend i{vertical-align:middle;width:10px;height:3px;margin-right:4px;display:inline-block}.crosshair{pointer-events:none;background:#fff9;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;position:absolute;top:50%;left:50%}.solid-overlay{pointer-events:none;background:#1b1a19;justify-content:center;align-items:flex-end;display:none;position:absolute;inset:0}.solid-overlay canvas{width:100%;height:100%;position:absolute;inset:0}.solid-overlay:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 200px #000000a6}.solid-overlay span{z-index:1;letter-spacing:.08em;text-transform:uppercase;color:#e6edf3;background:#0d111799;border-radius:4px;margin-bottom:24px;padding:4px 10px;font-size:12px;position:relative}.hud select{color:#e6edf3;font:inherit;background:#161b22;border:1px solid #30363d;border-radius:4px}.bench-report{z-index:20;background:#14181eeb;border-radius:6px;flex-direction:column;gap:8px;padding:12px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bench-report textarea{color:#dde;background:#111;width:min(90vw,1100px);height:140px;font:12px monospace}.hud input.volume{accent-color:#8b949e;width:90px}.hud .note{color:#8b949e}.hud.hidden{display:none}.menu{--accent:#f2c14e;z-index:30;color:#f0f3f6;background:linear-gradient(90deg,#080a0ed1 0%,#080a0e8c 38%,#080a0e00 70%);justify-content:flex-start;align-items:center;padding:0 6vw;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;transition:opacity .5s;display:flex;position:absolute;inset:0}.menu.pause{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080a0e8c;justify-content:center}.menu.hidden{opacity:0;pointer-events:none}.menu .panel{flex-direction:column;gap:14px;width:min(460px,88vw);display:flex}.menu .logo{letter-spacing:.14em;text-shadow:0 4px 30px #00000080;margin:0;font-size:clamp(40px,6vw,68px);font-weight:800;line-height:1}.menu .logo span{color:var(--accent)}.menu .tagline{color:#b8c1cc;margin-top:-4px;font-size:15px}.menu .progress{background:#ffffff1f;border-radius:2px;height:4px;overflow:hidden}.menu .progress .bar{background:var(--accent);transform-origin:0;height:100%;transition:transform .3s;transform:scaleX(0)}.menu .progress-text{color:#8f9aa6;letter-spacing:.04em;margin-top:-8px;font-size:12px}.menu.pause .progress,.menu.pause .progress-text,.menu.title.ready .progress,.menu.title.ready .progress-text,.menu .resume{display:none}.menu.pause .resume{color:#111;background:var(--accent);cursor:pointer;border:0;border-radius:8px;padding:12px;font:600 16px system-ui,sans-serif;display:block}.menu .modes{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.menu button.mode{text-align:left;color:#f0f3f6;cursor:pointer;background:#ffffff12;border:1px solid #ffffff24;border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 12px 12px;transition:background .15s,border-color .15s,transform .15s;display:flex;position:relative}.menu button.mode:hover{border-color:var(--accent);background:#f2c14e29;transform:translateY(-2px)}.menu button.mode b{font-size:18px}.menu button.mode small{color:#aeb8c3;font-size:11.5px;line-height:1.3}.menu button.mode kbd{color:#7d8894;font:11px ui-monospace,monospace;position:absolute;top:8px;right:9px}.menu.title:not(.ready) .modes{opacity:.45}.menu.is-busy .modes,.menu.is-busy .resume{opacity:.35;pointer-events:none}.menu .busy{color:var(--accent);font-size:13px;display:none}.menu.is-busy .busy{display:block}.menu .busy:before{content:"";border:2px solid var(--accent);vertical-align:-1px;border-right-color:#0000;border-radius:50%;width:10px;height:10px;margin-right:8px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.menu .settings{background:#00000047;border-radius:10px;flex-direction:column;gap:8px;padding:12px 14px;font-size:13px;display:flex}.menu .settings .row{align-items:center;gap:8px;display:flex}.menu .settings .label{color:#8f9aa6;width:58px}.menu .segmented{border:1px solid #ffffff2e;border-radius:7px;display:inline-flex;overflow:hidden}.menu .segmented button{font:inherit;color:#cdd5dd;cursor:pointer;background:0 0;border:0;padding:4px 12px}.menu .segmented button.active{color:#111;background:var(--accent)}.menu input.volume{accent-color:var(--accent);flex:1}.menu input.seed{color:#f0f3f6;background:#ffffff14;border:1px solid #ffffff29;border-radius:6px;flex:1;min-width:0;padding:4px 8px;font:13px ui-monospace,monospace}.menu button.small{font:inherit;color:#f0f3f6;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff29;border-radius:6px;padding:4px 10px}.menu button.small:hover{border-color:var(--accent)}.menu .switch{flex:none;width:34px;height:19px;position:relative}.menu .switch input{opacity:0;width:0;height:0}.menu .switch span{cursor:pointer;background:#fff3;border-radius:10px;transition:background .15s;position:absolute;inset:0}.menu .switch span:after{content:"";background:#fff;border-radius:50%;width:15px;height:15px;transition:transform .15s;position:absolute;top:2px;left:2px}.menu .switch input:checked+span{background:var(--accent)}.menu .switch input:checked+span:after{transform:translate(15px)}.menu details.controls{color:#b8c1cc;font-size:12.5px}.menu details.controls summary{cursor:pointer;color:#cdd5dd}.menu details.controls .grid{grid-template-columns:auto 1fr;gap:5px 12px;margin-top:8px;display:grid}.menu details.controls b{color:#f0f3f6;font-weight:600}.menu .credits{color:#6f7a86;font-size:11px}.game-hud{pointer-events:none;color:#f0f3f6;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;position:absolute;inset:0}.minimap{border-radius:50%;width:190px;height:190px;position:absolute;bottom:22px;left:22px;overflow:hidden;box-shadow:0 0 0 3px #0a0c10d9,0 0 0 4px #ffffff40,0 6px 24px #00000080}.minimap canvas{width:100%;height:100%;display:block}.minimap .me{filter:drop-shadow(0 0 2px #000000e6);border-bottom:16px solid #fff;border-left:7px solid #0000;border-right:7px solid #0000;width:0;height:0;margin:-9px 0 0 -7px;position:absolute;top:50%;left:50%}.minimap .north{text-align:center;color:#111;background:#f0f3f6;border-radius:3px;width:14px;height:16px;font:700 11px/16px system-ui,sans-serif;position:absolute;top:0;left:0}.speedo{text-align:right;text-shadow:0 2px 10px #000000b3;min-width:150px;position:absolute;bottom:26px;right:28px}.speedo .kmh{font-variant-numeric:tabular-nums;font-size:56px;font-weight:800;line-height:1}.speedo .unit{color:#b8c1cc;margin-left:6px;font-size:14px}.speedo .gear{color:#111;vertical-align:8px;text-shadow:none;background:#f2c14e;border-radius:5px;margin-left:14px;padding:2px 8px;font-size:18px;font-weight:700;display:inline-block}.speedo .revbar{background:#ffffff2e;border-radius:3px;height:5px;margin-top:8px;overflow:hidden}.speedo .rev{transform-origin:0;background:#f0f3f6;height:100%;transition:transform 60ms linear}.speedo .rev.red{background:#ff5a4f}.game-hud .hint{text-align:center;color:#dfe5ea;opacity:0;background:#080a0e99;border-radius:8px;padding:8px 14px;font-size:13px;line-height:1.5;transition:opacity .8s;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.game-hud .hint.on{opacity:1}.game-hud .status{color:#f2c14e;background:#080a0e99;border-radius:6px;padding:6px 12px;font-size:13px;position:absolute;top:22px;left:50%;transform:translate(-50%)}.fatal{text-align:center;color:#f0f3f6;background:#0d1117;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;font-family:system-ui,sans-serif;display:flex;position:absolute;inset:0}.fatal h2{margin:0}.fatal p{color:#b8c1cc;max-width:520px}.game-hud.dim{opacity:.35}.menu label.check{color:#cdd5dd;cursor:pointer;align-items:center;gap:5px;display:inline-flex}.menu label.check input{accent-color:#f2c14e}.menu .settings .spacer{flex:none;width:34px}
