:root{--ui-bg:#1010129e;--ui-border:#ffffff1f;--ui-text:#eeece8;--ui-muted:#a8a6a1;--accent:#f0a93b;--font:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ui-text);font-family:var(--font);-webkit-user-select:none;user-select:none;background:#000;margin:0;font-size:14px;overflow:hidden}#app,#app canvas{width:100%;height:100%;display:block;position:fixed;inset:0}.layer{pointer-events:none;position:fixed;inset:0}.hidden{display:none!important}.muted{color:var(--ui-muted)}kbd{text-align:center;border:1px solid #ffffff4d;border-radius:4px;min-width:20px;margin:0 1px;padding:0 5px;font-family:inherit;font-size:12px;display:inline-block}#fade{opacity:0;pointer-events:none;z-index:50;background:#000;justify-content:center;align-items:center;transition:opacity .45s;display:flex;position:fixed;inset:0}#fade.on{opacity:1}.loading{color:var(--ui-muted);letter-spacing:.02em}#flash{opacity:0;pointer-events:none;z-index:40;background:#fff;position:fixed;inset:0}#flash.fire{animation:.35s ease-out flash}@keyframes flash{0%{opacity:.9}to{opacity:0}}.toast{background:var(--ui-bg);border:1px solid var(--ui-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;pointer-events:none;z-index:45;border-radius:8px;padding:8px 14px;transition:opacity .3s,transform .3s;position:fixed;top:20px;left:50%;transform:translate(-50%,-8px)}.toast.show{opacity:1;transform:translate(-50%)}.start-prompt{background:var(--ui-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:center;pointer-events:auto;border:1px solid #5dff8a;border-radius:10px;padding:12px 16px;position:fixed;top:32%;left:50%;transform:translate(-50%);box-shadow:0 0 18px #5dff8a40}.start-title{font-size:18px;font-weight:700}.start-sub{margin:2px 0 10px}.start-actions{justify-content:center;gap:8px;display:flex}.start-go{border-color:#5dff8a}@media (height<=500px){.start-prompt{padding:8px 12px;top:auto;bottom:92px}.start-title{font-size:15px}.start-sub{margin-bottom:6px}}.select-title{letter-spacing:.02em;font-size:22px;font-weight:600;position:absolute;top:28px;left:32px}.select-sub{color:var(--ui-muted);position:absolute;top:58px;left:32px}.select-bottom{text-align:center;position:absolute;bottom:30px;left:0;right:0}.select-name{margin-bottom:14px;font-size:26px;font-weight:600}.select-help{color:var(--ui-muted);margin-top:14px}.regions{pointer-events:auto;gap:8px;display:inline-flex}.chip{background:var(--ui-bg);color:var(--ui-text);font:inherit;cursor:pointer;text-align:left;border:1px solid #ffffff24;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 14px;font-weight:600;display:flex}.chip:hover{background:#28282ccc}.chip.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.chip-sub{color:var(--ui-muted);font-size:12px;font-weight:400}.onboarding{background:var(--ui-bg);border:1px solid var(--ui-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:12px;padding:12px 16px;line-height:1.9;transition:opacity 1s;position:absolute;top:20px;left:20px}.onboarding.gone{opacity:0}.hud-info{text-shadow:0 1px 4px #0009;line-height:1.6;position:absolute;bottom:22px;left:22px}.speedo{text-align:right;text-shadow:0 1px 6px #00000080;position:absolute;bottom:20px;right:26px}.speed{font-variant-numeric:tabular-nums;font-size:46px;font-weight:300}.gear{border:1px solid var(--ui-border);vertical-align:14px;color:var(--ui-muted);border-radius:6px;margin-right:10px;padding:0 7px;font-size:18px;font-weight:600;display:inline-block}.gear.reverse{border-color:var(--accent);color:var(--accent)}.unit{color:var(--ui-muted);margin-left:6px}.odo{color:var(--ui-muted);font-variant-numeric:tabular-nums}.autopilot{border:1px solid var(--accent);color:var(--accent);border-radius:20px;margin-bottom:4px;padding:2px 10px;font-size:12px;display:inline-block}.pause{background:#00000059;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pause-box{background:var(--ui-bg);border:1px solid var(--ui-border);text-align:center;border-radius:12px;padding:18px 26px;line-height:1.8}.pause-title{font-size:16px;font-weight:600}.thumb{background:var(--ui-bg);border:1px solid var(--ui-border);color:var(--ui-muted);text-align:center;opacity:0;pointer-events:auto;border-radius:10px;padding:6px;font-size:12px;text-decoration:none;transition:opacity .3s,transform .3s;position:absolute;top:74px;right:20px;transform:translateY(-8px)}.thumb:not(.show){pointer-events:none}.thumb.show{opacity:1;transform:none}.thumb img{border-radius:6px;width:240px;margin-bottom:4px;display:block}.modes,.tracks{margin-top:8px}.select-bottom .regions{width:fit-content;margin-left:auto;margin-right:auto;display:flex}.select-bottom .regions.hidden{display:none}.drive-buttons{pointer-events:auto;gap:8px;display:flex;position:absolute;top:20px;right:20px}.hud-btn,.hud-seg button{border:1px solid var(--ui-border);background:var(--ui-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--ui-text);font:inherit;cursor:pointer;border-radius:10px;padding:8px 12px}.hud-btn:hover,.hud-seg button:hover{background:#28282ccc}.hud-seg{gap:4px;display:flex}.hud-seg button.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.drift{text-align:center;text-shadow:0 1px 6px #0009;position:absolute;top:64px;left:50%;transform:translate(-50%)}.drift-now{font-variant-numeric:tabular-nums;opacity:.35;font-size:30px;font-weight:600;transition:opacity .2s}.drift-now.live{opacity:1;color:var(--accent)}.drift-mult{margin-left:8px;font-size:18px}.drive-btn{pointer-events:auto;border-color:var(--accent);margin-top:14px;padding:10px 28px;font-weight:600}.pause{pointer-events:auto}.pause-actions{justify-content:center;gap:8px;margin-top:10px;display:flex}.notice{background:var(--ui-bg);border:1px solid var(--ui-border);text-align:center;z-index:60;pointer-events:auto;border-radius:12px;max-width:min(420px,100% - 32px);padding:16px 20px;line-height:1.6;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.hud-btn:focus-visible,.hud-seg button:focus-visible,.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bare .hud,.bare .drive-buttons,.bare .drift{display:none}.minimap{background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:12px;width:170px;height:170px;position:absolute;bottom:96px;left:20px}.bare .minimap{display:none}body,#app canvas{touch-action:none;-webkit-user-select:none;-webkit-touch-callout:none}.touch-only{display:none}body.touch .touch-only{display:block}body.touch .keys-only,body.touch .onboarding{display:none}.touch-controls{pointer-events:none;position:absolute;inset:0}.touch-steer{pointer-events:auto;width:50%;position:absolute;top:25%;bottom:0;left:0}.touch-steer span{color:#ffffff73;white-space:nowrap;font-size:12px;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.touch-steer-knob{opacity:.5;background:#ffffff14;border:2px solid #ffffff59;border-radius:50%;width:64px;height:64px;position:absolute;top:60%;left:30%;transform:translate(-50%,-50%)}.touch-steer.active .touch-steer-knob{opacity:1;border-color:var(--accent)}.touch-pedals{right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));pointer-events:auto;align-items:flex-end;gap:10px;display:flex;position:absolute}.touch-btn,.touch-small{border:1px solid var(--ui-border);background:var(--ui-bg);color:var(--ui-text);font:inherit;touch-action:none;border-radius:14px;font-weight:600}.touch-btn{width:76px;height:76px;font-size:13px}.touch-gas{border-color:#78dc7880;height:120px}.touch-brake{border-color:#f05a5080;height:92px}.touch-btn.down{border-color:var(--accent);background:#f0a93b73}.touch-top{left:calc(12px + env(safe-area-inset-left,0px));pointer-events:auto;gap:6px;display:flex;position:absolute;top:12px}.touch-small{padding:8px 10px;font-size:12px}body.touch .speedo{text-align:center;bottom:10px;left:50%;right:auto;transform:translate(-50%)}body.touch .speed{font-size:34px}body.touch .hud-info{font-size:12px;line-height:1.4;top:52px;bottom:auto;left:14px}body.touch .minimap{width:120px;height:120px;top:112px;bottom:auto}body.touch .drive-buttons{gap:4px;font-size:12px;top:10px;right:10px}body.touch .hud-btn,body.touch .hud-seg button{padding:7px 9px}body.touch #btn-car-name,.bare .touch-top,.rotate{display:none}@media (orientation:portrait) and (pointer:coarse){.rotate{z-index:80;text-align:center;color:var(--ui-text);background:#0b0b0d;justify-content:center;align-items:center;padding:24px;font-size:18px;display:flex;position:fixed;inset:0}}@media (width<=900px){.regions{flex-wrap:wrap;justify-content:center;max-width:96vw}.chip{padding:6px 10px}.chip-sub{display:none}.select-name{margin-bottom:8px;font-size:20px}.select-bottom{bottom:12px}}.select-records{color:var(--accent);font-size:13px;position:absolute;top:82px;left:32px}@media (width<=900px){.select-records{font-size:12px;top:76px;left:16px;right:16px}}.mission-hud{text-align:center;text-shadow:0 1px 6px #000000b3;min-width:220px;position:absolute;top:14px;left:50%;transform:translate(-50%)}.mission-title{font-weight:600}.mission-value{color:var(--accent);font-variant-numeric:tabular-nums;font-size:26px;font-weight:600}.mission-count{color:var(--accent);font-size:64px;font-weight:700}body.mission-on .drift{top:110px}.mission-panel{pointer-events:auto;z-index:30;background:#00000073;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.mission-box{border:1px solid var(--ui-border);background:#101012e6;border-radius:14px;flex-direction:column;gap:12px;width:min(640px,100% - 32px);max-height:calc(100% - 32px);padding:18px 22px;display:flex;overflow-y:auto}.mission-row{border-top:1px solid var(--ui-border);justify-content:space-between;align-items:center;gap:14px;padding-top:10px;display:flex}.mission-row .muted{font-size:13px;line-height:1.4}.mission-name{font-weight:600}.mission-targets{color:var(--ui-muted);margin-top:4px;font-size:12px}.medal{border-radius:10px;margin-left:6px;padding:1px 8px;font-size:12px}.medal.m0{display:none}.m1{color:#d99a5b;border:1px solid #d99a5b}.m2{color:#d6dde6;border:1px solid #d6dde6}.m3{color:#f5cf4b;border:1px solid #f5cf4b}.mission-actions{justify-content:center;gap:8px;display:flex}.result{text-align:center;align-items:center}.mission-medal{border:none;font-size:34px;font-weight:700}.mission-medal.m0{color:var(--ui-muted)}.mission-score{font-variant-numeric:tabular-nums;font-size:24px}
