*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--accent: #10d9ff;--accent2: #ff2438;--turbo: #ffcc00;--bg: #080c10;--glass: rgba(6, 12, 20, .72);--border: rgba(16, 217, 255, .18);--text: #d0eaf5;--dim: rgba(255,255,255,.45);--font-hud: ui-monospace, "Cascadia Mono", "Consolas", monospace;--font-ui: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--r: 8px;--rL: 14px}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg);font-family:var(--font-ui);color:var(--text);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none}#app{position:relative;width:100vw;height:100vh;overflow:hidden}#game{position:absolute;top:0;right:0;bottom:0;left:0;width:100%!important;height:100%!important;display:block;touch-action:none}#speedLines{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity .15s ease;background:repeating-conic-gradient(from 0deg at 50% 50%,rgba(255,255,255,.06) 0deg 1deg,transparent 1deg 6deg);mix-blend-mode:screen;z-index:2}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}.hud>*{pointer-events:auto}.topbar{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:10px 18px;background:linear-gradient(to bottom,rgba(0,0,0,.55) 0%,transparent 100%);pointer-events:none}.brand{font-family:var(--font-hud);letter-spacing:.12em;line-height:1}.brand strong{font-size:1.25rem;font-weight:900;color:var(--accent);text-shadow:0 0 14px var(--accent)}.brand span{font-size:.7rem;font-weight:400;color:var(--dim);display:block;letter-spacing:.25em;margin-top:1px}.telemetry{display:flex;gap:14px;font-family:var(--font-hud);font-size:.68rem;font-weight:600;letter-spacing:.1em;color:#fff9}.telemetry span{padding:3px 8px;background:#0000004d;border-radius:4px}.speedo{position:absolute;bottom:28px;right:28px;width:244px;background:linear-gradient(145deg,#0e181feb,#060c11db),radial-gradient(circle at 16% 0%,rgba(16,217,255,.16),transparent 44%);border:1px solid rgba(180,235,255,.16);border-radius:8px;padding:13px 14px 12px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 18px 46px #0000006b,0 0 24px #10d9ff1a,inset 0 1px #ffffff14;overflow:hidden}.speedo:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--accent),transparent 58%,var(--accent2));opacity:.85}.speedo:after{content:"";position:absolute;right:-34px;top:-44px;width:118px;height:118px;border-radius:50%;border:1px solid rgba(255,255,255,.08);background:radial-gradient(circle,rgba(255,255,255,.06),transparent 62%);pointer-events:none}.speedo-inner{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:2px 0 10px;position:relative;z-index:1}.speedo-inner strong{font-family:var(--font-hud);font-size:3.8rem;font-weight:900;color:#fff;line-height:.9;letter-spacing:0;font-variant-numeric:tabular-nums;text-shadow:0 0 22px rgba(255,255,255,.28)}.unit{font-family:var(--font-hud);font-size:.64rem;font-weight:900;color:#d2ebf494;letter-spacing:.06em;align-self:flex-end;padding-bottom:8px;white-space:nowrap}.rpm-readout{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 6px;font-family:var(--font-hud);position:relative;z-index:1}.rpm-readout span{font-size:.56rem;font-weight:900;letter-spacing:.16em;color:#d2ebf480}.rpm-readout strong{font-size:1.08rem;font-weight:900;color:#ff3154;letter-spacing:.04em;font-variant-numeric:tabular-nums;text-shadow:0 0 12px rgba(255,36,56,.48)}.rpm-readout strong.redline{color:#ff1d45;text-shadow:0 0 14px rgba(255,36,56,.9)}.rpm-bar{height:8px;background:#ffffff1a;border-radius:2px;overflow:hidden;margin-bottom:12px;position:relative;z-index:1}.rpm-bar i{display:block;height:100%;background:linear-gradient(90deg,#55f3ff,#9ee6c9 32%,#ff9b22 62%,#ff2448);border-radius:2px;transition:width .05s linear;box-shadow:0 0 10px #ff24486b;width:0%}.instrument-row{display:flex;justify-content:space-between;align-items:center;gap:12px;position:relative;z-index:1}.gear-badge{font-family:var(--font-hud);font-size:1.9rem;font-weight:900;color:var(--accent);text-shadow:0 0 16px rgba(16,217,255,.85);min-width:52px;height:38px;display:inline-flex;align-items:center;justify-content:center;background:#10d9ff14;border:1px solid rgba(16,217,255,.18);border-radius:6px;text-align:center}.turbo-gauge{--turbo-needle: -118deg;--turbo-arc: 260deg;--turbo-glow: rgba(255, 36, 72, .2);width:128px;aspect-ratio:1;border-radius:50%;padding:7px;background:radial-gradient(circle at 32% 20%,rgba(255,255,255,.9),transparent 8%),radial-gradient(circle at 70% 82%,rgba(0,0,0,.34),transparent 18%),linear-gradient(145deg,#f9fbfc,#aeb7bc 20%,#3a4147 46%,#f0f4f6 74%,#727b82);box-shadow:0 9px 24px #00000061,0 0 18px var(--turbo-glow),inset 0 1px 2px #ffffffd1,inset 0 -2px 4px #00000080;flex:0 0 auto}.turbo-face{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 50%,#05070a 0 18%,transparent 19%),conic-gradient(from -130deg,var(--accent) 0deg,#ffcc00 var(--turbo-arc),rgba(255,255,255,.16) var(--turbo-arc),rgba(255,255,255,.16) 260deg,transparent 260deg),repeating-conic-gradient(from -130deg,rgba(255,255,255,.9) 0deg 2deg,transparent 2deg 13deg),radial-gradient(circle at 50% 48%,#030407 0,#030407 59%,#151b21 60%,#151b21);border:2px solid rgba(0,0,0,.86);box-shadow:inset 0 0 18px #000000f2,inset 0 0 2px #ffffffa6}.turbo-face:before{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border-radius:50%;border:1px solid rgba(255,255,255,.52);border-bottom-color:#ffffff1f;opacity:.88}.turbo-face:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:50%;background:radial-gradient(circle at 50% 50%,transparent 0 22%,rgba(255,255,255,.08) 23%,transparent 31%),linear-gradient(145deg,rgba(255,255,255,.2),transparent 24%,transparent 68%,rgba(255,255,255,.08));pointer-events:none;z-index:6}.turbo-label,.turbo-unit,.turbo-title,.turbo-value{position:absolute;font-family:var(--font-hud);font-weight:900;color:#f8fbff;line-height:1;text-shadow:0 0 6px rgba(255,255,255,.72);pointer-events:none}.turbo-label{font-size:.62rem;color:#ffffffc2;text-shadow:none}.turbo-label-min{left:16px;bottom:31px}.turbo-label-mid{left:50%;top:12px;transform:translate(-50%)}.turbo-label-max{right:11px;bottom:31px}.turbo-unit{left:50%;bottom:18px;transform:translate(-50%);font-size:.46rem;letter-spacing:.14em;color:#ffffff85;text-shadow:none}.turbo-title{left:50%;top:27px;transform:translate(-50%);font-size:.5rem;letter-spacing:.16em;color:#ffffffa3;text-shadow:none}.turbo-value{left:50%;top:40px;transform:translate(-50%);font-size:1rem;color:var(--accent);letter-spacing:0;text-shadow:0 0 10px rgba(16,217,255,.9);z-index:7}.turbo-needle{position:absolute;left:50%;top:50%;width:38%;height:5px;border-radius:999px;background:linear-gradient(90deg,#ff1637,#ff263f 72%,#ff5d68);box-shadow:0 0 8px #ff2438db;transform-origin:8% 50%;transform:rotate(var(--turbo-needle)) translate(-8%);transition:transform .1s cubic-bezier(.2,.8,.24,1);z-index:4}.turbo-hub{position:absolute;left:50%;top:50%;width:20px;height:20px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 38% 32%,rgba(255,255,255,.3),transparent 22%),linear-gradient(145deg,#1a2028,#030406);border:2px solid rgba(0,0,0,.9);box-shadow:0 0 9px #000000e6;z-index:5}.turbo-gauge.low .turbo-value{color:#ff4058;text-shadow:0 0 8px rgba(255,36,56,.9)}.turbo-gauge.boosting{--turbo-glow: rgba(255, 204, 0, .34)}.turbo-gauge.boosting .turbo-face{box-shadow:inset 0 0 18px #000000f2,inset 0 0 2px #ffffffa6,0 0 16px #ffcc0042}.turbo-gauge.boosting .turbo-value{color:var(--turbo);text-shadow:0 0 10px rgba(255,204,0,.9)}.turbo-gauge.boosting .turbo-needle{box-shadow:0 0 12px #ff2438f2,0 0 18px #ffcc006b}.race-info{position:absolute;bottom:28px;left:28px;display:flex;flex-direction:column;gap:6px;background:var(--glass);border:1px solid var(--border);border-radius:var(--rL);padding:12px 16px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);min-width:140px;box-shadow:0 0 32px #10d9ff14}.ri-item{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.ri-item span{font-family:var(--font-hud);font-size:.6rem;color:var(--dim);letter-spacing:.12em}.ri-item strong{font-family:var(--font-hud);font-size:.95rem;font-weight:700;color:#fff}#combo.hot{color:var(--turbo);text-shadow:0 0 10px var(--turbo)}#heat.warm{color:#ffb347;text-shadow:0 0 9px rgba(255,179,71,.7)}#heat.hot{color:var(--accent2);text-shadow:0 0 12px rgba(255,36,56,.85)}.arcade-toast{position:absolute;left:50%;top:18%;transform:translate(-50%,-10px) scale(.96);font-family:var(--font-hud);font-size:clamp(1.3rem,3vw,2.4rem);font-weight:900;letter-spacing:.08em;color:#fff;text-shadow:0 0 10px rgba(16,217,255,.95),0 0 26px rgba(255,36,56,.6);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.arcade-toast.show{opacity:1;transform:translate(-50%) scale(1)}.mobile-controls{position:absolute;inset:auto 0 0;z-index:12;display:none;pointer-events:none;padding:0 max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.touch-cluster,.touch-utility{pointer-events:auto}.touch-steer{position:absolute;left:max(14px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(2,74px);gap:10px}.touch-actions{position:absolute;right:max(14px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));display:grid;grid-template-columns:68px 68px;grid-template-rows:54px 54px;gap:10px;align-items:end}.touch-utility{position:absolute;top:max(58px,env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;gap:8px}.touch-btn,.touch-chip{border:1px solid rgba(16,217,255,.3);background:#050a1194;color:#e8fbff;font-family:var(--font-hud);font-weight:900;letter-spacing:.06em;box-shadow:inset 0 1px #ffffff14,0 0 18px #00000047;touch-action:none;-webkit-tap-highlight-color:transparent}.touch-btn{height:64px;border-radius:8px;font-size:.78rem}.touch-btn-main{height:74px;grid-row:span 2;color:#061116;background:linear-gradient(180deg,#20f1fff2,#10d9ff9e);border-color:#ffffff73}.touch-btn-mid{height:54px;font-size:.62rem}.touch-btn-small{height:66px}.touch-chip{min-width:64px;height:34px;border-radius:6px;padding:0 10px;color:#ffffffc7;font-size:.58rem}.touch-btn.pressed,.touch-btn:active,.touch-chip:active{transform:translateY(1px) scale(.98);border-color:#ffcc00b8;box-shadow:0 0 18px #ffcc0047,inset 0 0 18px #ffcc0029}.progress-bar{display:flex;flex-direction:column;gap:4px;margin-top:2px}.progress-bar span{font-family:var(--font-hud);font-size:.58rem;color:var(--dim);letter-spacing:.1em}.progress-bar em{display:block;height:5px;background:#ffffff14;border-radius:3px;overflow:hidden}.progress-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#0af);border-radius:3px;box-shadow:0 0 6px var(--accent);transition:width .2s ease}.garage{position:absolute;top:60px;right:0;width:300px;max-height:calc(100vh - 80px);overflow-y:auto;background:#050a11e6;border:1px solid var(--border);border-right:none;border-radius:var(--rL) 0 0 var(--rL);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:-8px 0 40px #0009;padding:0 0 16px;transition:transform .35s cubic-bezier(.4,0,.2,1)}.garage.closed{transform:translate(100%)}.garage::-webkit-scrollbar{width:4px}.garage::-webkit-scrollbar-track{background:transparent}.garage::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.garage>header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border);background:#10d9ff0a;position:sticky;top:0;z-index:1}.garage>header strong{font-family:var(--font-hud);font-size:.82rem;letter-spacing:.08em;color:var(--accent)}#garageToggle{font-family:var(--font-hud);font-size:.65rem;font-weight:700;letter-spacing:.1em;background:#10d9ff1f;border:1px solid var(--border);color:var(--accent);padding:5px 12px;border-radius:5px;cursor:pointer;transition:background .2s,box-shadow .2s}#garageToggle:hover{background:#10d9ff38;box-shadow:0 0 12px #10d9ff4d}.garage-shortcut{position:absolute;top:72px;right:12px;font-family:var(--font-hud);font-size:.6rem;letter-spacing:.1em;background:var(--glass);border:1px solid var(--border);color:var(--dim);padding:6px 10px;border-radius:6px;cursor:pointer}.tabs{display:flex;border-bottom:1px solid var(--border);padding:8px 12px 0;gap:4px}.tab{font-family:var(--font-hud);font-size:.62rem;letter-spacing:.1em;font-weight:700;background:transparent;border:1px solid transparent;border-bottom:none;color:var(--dim);padding:7px 10px 6px;border-radius:5px 5px 0 0;cursor:pointer;transition:color .2s,border-color .2s,background .2s}.tab.active{color:var(--accent);border-color:var(--border);background:#10d9ff12;border-bottom-color:transparent}.tab:hover:not(.active){color:var(--text)}.tab-pane{display:none;padding:12px 16px}.tab-pane.active{display:flex;flex-direction:column;gap:10px}.garage label{display:flex;flex-direction:column;gap:4px;font-family:var(--font-ui);font-size:.82rem;font-weight:600;color:var(--dim);letter-spacing:.04em}.garage label.check{flex-direction:row;align-items:center;gap:8px;cursor:pointer}.garage select,.garage input[type=range]{width:100%;background:#ffffff0d;border:1px solid var(--border);color:var(--text);border-radius:5px;padding:6px 10px;font-family:var(--font-ui);font-size:.82rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;outline:none;transition:border-color .2s}.garage select:hover,.garage input[type=range]:hover{border-color:var(--accent)}.garage input[type=range]{padding:0;height:5px;background:linear-gradient(to right,var(--accent) 0%,rgba(255,255,255,.12) 0%);border-radius:3px;margin-top:4px}.garage input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:#ffffff0f;border:1px solid var(--border);border-radius:3px;cursor:pointer;position:relative;flex-shrink:0}.garage input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.garage input[type=checkbox]:checked:after{content:"✓";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:#000;font-weight:900}.control-hint{background:#ffffff08;border:1px solid var(--border);border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.control-hint p{font-size:.75rem;color:var(--dim)}.control-hint p::first-child{color:var(--text)}.btn-danger{margin:8px 16px 0;width:calc(100% - 32px);padding:10px;font-family:var(--font-hud);font-size:.75rem;letter-spacing:.1em;font-weight:700;background:#ff24381f;border:1px solid rgba(255,36,56,.35);color:var(--accent2);border-radius:7px;cursor:pointer;transition:background .2s,box-shadow .2s}.btn-danger:hover{background:#ff243838;box-shadow:0 0 14px #ff24384d}.prompt{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#04080ec7;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:opacity .5s ease;z-index:20}.prompt.hidden{opacity:0;pointer-events:none}.prompt-inner{text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}.prompt-inner strong{font-family:var(--font-hud);font-size:4rem;font-weight:900;letter-spacing:.12em;color:var(--accent);text-shadow:0 0 40px var(--accent),0 0 80px rgba(16,217,255,.4);animation:glowPulse 2.5s ease-in-out infinite}.prompt-inner p{font-family:var(--font-hud);font-size:.95rem;font-weight:600;letter-spacing:.18em;color:#ffffffd9;animation:blink 1.4s step-end infinite}.prompt-sub{font-size:.65rem!important;color:var(--dim)!important;animation:none!important;letter-spacing:.08em!important;max-width:480px;line-height:1.6}.hud.damage-flash:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#ff001e2e;pointer-events:none;animation:flashOut .35s ease forwards}@keyframes glowPulse{0%,to{text-shadow:0 0 30px var(--accent),0 0 60px rgba(16,217,255,.35)}50%{text-shadow:0 0 60px var(--accent),0 0 120px rgba(16,217,255,.5)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}@keyframes flashOut{0%{opacity:1}to{opacity:0}}body.turbo-active .speedo{box-shadow:0 0 40px #ffcc0059,0 0 80px #ffcc0026;border-color:#ffcc0059}body.turbo-active .turbo-gauge{animation:turboPulse .4s ease-in-out infinite alternate}@keyframes turboPulse{0%{box-shadow:none}to{box-shadow:0 9px 24px #00000061,0 0 18px var(--turbo)}}body.driving .prompt{opacity:0;pointer-events:none}.brand,.telemetry,.speedo,.race-info,.garage,.prompt{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}@media (max-width: 640px){.topbar{padding:max(8px,env(safe-area-inset-top)) 10px 0}.brand strong{font-size:.95rem}.brand span{font-size:.56rem}.telemetry{gap:5px;font-size:.52rem}.telemetry span{padding:2px 5px}.speedo{width:154px;bottom:calc(max(18px,env(safe-area-inset-bottom)) + 104px);right:max(10px,env(safe-area-inset-right));padding:10px 11px 9px;border-radius:8px}.speedo-inner{margin-bottom:7px;gap:6px}.speedo-inner strong{font-size:2.35rem}.unit{font-size:.48rem;padding-bottom:5px}.rpm-readout{margin-bottom:4px}.rpm-readout span{font-size:.46rem}.rpm-readout strong{font-size:.74rem}.rpm-bar{height:6px;margin-bottom:8px}.instrument-row{gap:7px}.gear-badge{font-size:1.18rem;min-width:32px;height:28px;border-radius:5px}.turbo-gauge{width:74px;padding:5px}.turbo-label{font-size:.38rem}.turbo-label-min{left:9px;bottom:18px}.turbo-label-mid{top:7px}.turbo-label-max{right:6px;bottom:18px}.turbo-unit{bottom:10px;font-size:.28rem;letter-spacing:.08em}.turbo-title{top:16px;font-size:.3rem;letter-spacing:.1em}.turbo-value{top:23px;font-size:.56rem}.turbo-needle{height:4px}.turbo-hub{width:13px;height:13px;border-width:1px}.race-info{bottom:calc(max(18px,env(safe-area-inset-bottom)) + 96px);left:max(10px,env(safe-area-inset-left));min-width:112px;padding:7px 9px;gap:4px;border-radius:8px}.ri-item span{font-size:.48rem}.ri-item strong{font-size:.72rem}.progress-bar span{font-size:.48rem}.garage{top:max(44px,env(safe-area-inset-top));width:min(92vw,330px);max-height:calc(100dvh - max(58px,env(safe-area-inset-top)))}.tabs{overflow-x:auto}.tab{font-size:.56rem;padding:7px 8px 6px}.prompt-inner{padding:0 22px}.prompt-inner strong{font-size:2.15rem}.prompt-inner p{font-size:.75rem}.prompt-sub{font-size:.56rem!important;max-width:310px}.arcade-toast{top:13%;font-size:1.2rem}.mobile-controls{display:block}}@media (hover: none) and (pointer: coarse){.mobile-controls{display:block}}@media (min-width: 641px) and (max-width: 1180px) and (hover: none) and (pointer: coarse){.speedo{bottom:calc(max(22px,env(safe-area-inset-bottom)) + 120px);right:max(22px,env(safe-area-inset-right))}.race-info{bottom:calc(max(22px,env(safe-area-inset-bottom)) + 118px);left:max(22px,env(safe-area-inset-left))}.touch-steer{grid-template-columns:repeat(2,92px);gap:14px}.touch-actions{grid-template-columns:82px 82px;grid-template-rows:64px 64px;gap:14px}.touch-btn{height:78px}.touch-btn-main{height:92px}.touch-btn-mid{height:64px}.touch-chip{min-width:78px;height:38px}}@media (max-height: 480px) and (orientation: landscape){.topbar{padding-top:max(5px,env(safe-area-inset-top))}.speedo{width:138px;bottom:max(10px,env(safe-area-inset-bottom))}.speedo-inner strong{font-size:2rem}.rpm-readout strong{font-size:.68rem}.gear-badge{min-width:30px;height:26px;font-size:1.05rem}.turbo-gauge{width:66px;padding:4px}.turbo-label{font-size:.34rem}.turbo-label-min{left:8px;bottom:16px}.turbo-label-mid{top:6px}.turbo-label-max{right:5px;bottom:16px}.turbo-unit{font-size:.26rem;bottom:9px}.turbo-title{font-size:.28rem;top:14px}.turbo-value{font-size:.5rem;top:21px}.race-info{bottom:max(10px,env(safe-area-inset-bottom));max-width:112px}.race-info .ri-item:nth-of-type(3),.race-info .ri-item:nth-of-type(5),.race-info .ri-item:nth-of-type(6),.progress-bar{display:none}.touch-steer{grid-template-columns:repeat(2,68px);bottom:max(12px,env(safe-area-inset-bottom))}.touch-actions{grid-template-columns:62px 62px;grid-template-rows:48px 48px;bottom:max(12px,env(safe-area-inset-bottom))}.touch-btn{height:58px;font-size:.64rem}.touch-btn-mid{height:48px;font-size:.52rem}.touch-btn-main{height:64px}.touch-utility{top:max(38px,env(safe-area-inset-top))}}
