:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-canvas:#0a0e11;--color-panel-solid:#11181d;--color-panel:#0d1418d1;--color-panel-soft:#0d1418a3;--color-panel-pressed:#ecba43eb;--color-border:#edf4f029;--color-border-strong:#edf4f047;--color-text:#f3f7f5;--color-text-secondary:#b9c4c0;--color-text-muted:#7f908b;--color-jade:#38c893;--color-jade-dark:#0b5f46;--color-amber:#ecba43;--color-amber-soft:#ffd979;--color-danger:#ff6b5f;--color-focus:#7cc7ff;--font-ui:-apple-system, BlinkMacSystemFont, "Noto Sans HK", "PingFang HK", "Microsoft JhengHei", system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--text-2xs:.6875rem;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--radius-sm:.5rem;--radius-md:.875rem;--radius-lg:1.25rem;--hit:76px;--panel-blur:14px;--shadow-panel:0 12px 32px #0000003d;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px)}*,:before,:after{box-sizing:border-box}html,body{width:100%;height:100%;background:var(--color-canvas);height:100dvh;color:var(--color-text);font-family:var(--font-ui);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}button{font:inherit}button:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}[hidden]{display:none!important}#viewport{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}.noscript-message{z-index:100;color:var(--color-text);background:var(--color-panel-solid);margin:0;padding:1rem;position:fixed;inset:1rem}#boot{z-index:30;padding:max(var(--space-5), var(--safe-t)) max(var(--space-5), var(--safe-r)) max(var(--space-5), var(--safe-b)) max(var(--space-5), var(--safe-l));background:radial-gradient(circle at 50% 42%, #1c52423d, transparent 38%), linear-gradient(145deg, #0d1417 0%, var(--color-canvas) 64%);opacity:1;place-items:center;transition:opacity .32s,visibility .32s step-end;display:grid;position:fixed;inset:0;overflow:hidden}#boot:before,#boot:after{content:"";pointer-events:none;position:absolute}#boot:before{background:linear-gradient(90deg,#0000 49.7%,#ecba432e 50%,#0000 50.3%);border-left:1px solid #ffffff14;border-right:1px solid #ffffff14;width:min(62vw,44rem);height:70vh;bottom:-22vh;left:50%;transform:perspective(28rem)rotateX(66deg)translate(-50%)}#boot:after{opacity:.18;background-image:linear-gradient(#ffffff08 1px,#0000 1px);background-size:100% 4px;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 76%);mask-image:linear-gradient(#000,#0000 76%)}#boot.is-done{visibility:hidden;opacity:0;pointer-events:none}#boot[data-state=error],#boot[data-state=context-lost]{background:radial-gradient(circle at 50% 42%, #932e2738, transparent 40%), var(--color-canvas)}.boot-inner{z-index:1;text-align:center;width:min(100%,25rem);position:relative}.boot-brand{width:3.25rem;height:3.25rem;margin:0 auto var(--space-4);color:var(--color-jade);font-size:var(--text-sm);letter-spacing:.08em;background:#38c89317;border:1px solid #38c8937a;border-radius:50%;place-items:center;font-weight:800;display:grid;box-shadow:0 0 0 8px #38c8930a}.boot-kicker{margin:0 0 var(--space-2);color:var(--color-text-muted);font-size:var(--text-2xs);letter-spacing:.18em;font-weight:700}.boot-inner h1{color:var(--color-text);letter-spacing:-.045em;margin:0;font-size:clamp(2rem,7vw,3.25rem);font-weight:750;line-height:1}.boot-inner h1 span{color:var(--color-jade)}.boot-route{justify-content:center;align-items:center;gap:var(--space-3);margin:var(--space-4) 0 var(--space-5);color:var(--color-amber-soft);font-size:var(--text-sm);letter-spacing:.14em;display:flex}.boot-route i{background:var(--color-jade);width:1.75rem;height:1px}.boot-progress{background:#ffffff1a;border-radius:999px;height:4px;position:relative;overflow:hidden}.boot-progress i{border-radius:inherit;background:linear-gradient(90deg, var(--color-jade), var(--color-amber));width:0;height:100%;transition:width .22s;display:block;box-shadow:0 0 12px #38c89370}#boot[data-state=error] .boot-progress i,#boot[data-state=context-lost] .boot-progress i{background:var(--color-danger);box-shadow:0 0 12px #ff6b5f66}.boot-msg{min-height:1.25rem;margin:var(--space-3) 0 0;color:var(--color-text-secondary);font-size:var(--text-xs)}.boot-retry{min-height:44px;margin:var(--space-4) 0 0;border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;background:#ff6b5f24;border:1px solid #ff6b5f70;padding:.7rem 1.1rem}.boot-controls{margin:var(--space-5) 0 0;color:var(--color-text-muted);font-size:var(--text-2xs)}.hud{top:max(var(--space-3), var(--safe-t));left:max(var(--space-3), var(--safe-l));z-index:10;width:min(19rem, calc(100vw - 1.5rem - var(--safe-l) - var(--safe-r)));gap:var(--space-2);pointer-events:none;-webkit-user-select:none;user-select:none;display:grid;position:fixed}.hud-panel,.hud-diag,.hud-alert{border:1px solid var(--color-border);background:var(--color-panel);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(var(--panel-blur)) saturate(1.2)}.hud-primary{align-items:end;gap:var(--space-3);border-radius:var(--radius-md);grid-template-columns:1fr auto;padding:.8rem .85rem .7rem;display:grid}.hud-speed-wrap{min-width:0}.hud-kicker{margin-bottom:var(--space-1);color:var(--color-text-muted);letter-spacing:.14em;text-transform:uppercase;font-size:.625rem;font-weight:750;display:block}.hud-speed{font-variant-numeric:tabular-nums;align-items:flex-end;gap:.35rem;display:flex}.hud-speed output{color:var(--color-text);letter-spacing:-.06em;font-size:clamp(2.25rem,7vh,3.65rem);font-weight:720;line-height:.82}.hud-speed small{color:var(--color-text-secondary);letter-spacing:.08em;text-transform:uppercase;padding-bottom:.18rem;font-size:.625rem;font-weight:700}.hud-limit{border:3px solid var(--color-danger);width:2.65rem;height:2.65rem;color:var(--color-text);font-size:var(--text-sm);font-variant-numeric:tabular-nums;background:#ffffff0f;border-radius:50%;place-items:center;font-weight:800;display:grid}.hud-meter{background:#ffffff1a;border-radius:99px;grid-column:1/-1;height:3px;overflow:hidden}.hud-meter i{border-radius:inherit;background:linear-gradient(90deg, var(--color-jade), var(--color-amber));width:0;height:100%;transition:width .1s linear,background-color .1s linear;display:block}.hud-primary.is-over .hud-speed output{color:#ff9c91}.hud-primary.is-over .hud-meter i{background:var(--color-danger)}.hud-context{align-items:stretch;gap:var(--space-2);min-width:0;display:flex}.hud-street{border:1px solid #38c89347;border-left:3px solid var(--color-jade);border-radius:var(--radius-sm);background:linear-gradient(90deg, #0b5f46bd, var(--color-panel));min-width:0;box-shadow:var(--shadow-panel);flex:1;padding:.55rem .7rem .58rem;overflow:hidden}.hud-street strong{color:var(--color-text);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:680;line-height:1.2;display:block;overflow:hidden}.hud-status{gap:var(--space-1);display:flex}.hud-chip,.hud-diag-toggle{min-height:2.6rem;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);background:var(--color-panel);letter-spacing:.03em;white-space:nowrap;place-items:center;font-size:.625rem;font-weight:700;line-height:1.1;display:grid}.hud-diag-toggle{pointer-events:auto;cursor:pointer}.hud-diag-toggle[aria-expanded=true]{color:var(--color-amber-soft);border-color:#ecba438f}.hud-diag{max-width:min(94vw,34rem);max-height:min(52vh,25rem);padding:var(--space-3);border-radius:var(--radius-sm);color:#d6e3df;font-family:var(--font-mono);white-space:pre;pointer-events:auto;-webkit-user-select:text;user-select:text;margin:0;font-size:.625rem;line-height:1.5;overflow:auto}.hud-alert{top:max(var(--space-3), var(--safe-t));z-index:12;border-radius:var(--radius-sm);min-width:min(22rem,100vw - 2rem);color:var(--color-text);text-align:center;font-size:var(--text-xs);border-color:#ff6b5f6b;padding:.65rem .9rem;font-weight:700;transition:opacity .16s,transform .16s;position:fixed;left:50%;transform:translate(-50%)}.hud-alert[hidden]{opacity:0;visibility:hidden;transform:translate(-50%,-.75rem);display:block!important}.hud-live{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.dpad{z-index:20;align-items:end;gap:var(--space-3);padding:0 max(var(--space-3), var(--safe-r)) calc(var(--space-3) + var(--safe-b)) max(var(--space-3), var(--safe-l));pointer-events:none;-webkit-user-select:none;user-select:none;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);display:grid;position:fixed;inset:auto 0 0}.control-zone{gap:var(--space-2);pointer-events:none;display:grid}.control-steer{grid-template-columns:repeat(2, var(--hit));justify-self:start}.control-pedals{grid-template-columns:var(--hit);justify-self:end}.control-caption{color:#f3f7f5a3;letter-spacing:.12em;text-align:center;text-shadow:0 1px 3px #000c;grid-column:1/-1;margin:0 0 -.1rem;font-size:.625rem;font-weight:750}.dpad-btn,.cam-btn{pointer-events:auto;border:1px solid var(--color-border-strong);color:var(--color-text);background:var(--color-panel);-webkit-backdrop-filter:blur(var(--panel-blur)) saturate(1.1);touch-action:none;cursor:pointer;transition:transform 80ms,background-color 80ms,border-color 80ms;box-shadow:0 8px 24px #00000047,inset 0 1px #ffffff0d}.dpad-btn{width:var(--hit);height:var(--hit);border-radius:var(--radius-lg);align-content:center;place-items:center;gap:.2rem;padding:0;display:grid}.control-icon{font-size:1.45rem;font-weight:650;line-height:1}.control-label{color:var(--color-text-secondary);letter-spacing:.04em;font-size:.625rem;font-weight:750}.control-key{color:var(--color-text-muted);font-family:var(--font-mono);font-size:.55rem;display:none}.dpad-btn.is-held,.dpad-btn[aria-pressed=true]{border-color:var(--color-amber-soft);color:#111614;background:var(--color-panel-pressed);transform:translateY(2px)scale(.97);box-shadow:0 4px 12px #0000003d}.dpad-btn.is-held .control-label,.dpad-btn[aria-pressed=true] .control-label,.dpad-btn.is-held .control-key,.dpad-btn[aria-pressed=true] .control-key{color:#263027}.dpad-up{min-height:calc(var(--hit) + 12px);border-color:#38c89361}.dpad-down{border-color:#ff6b5f4d}.cam-btn{min-width:64px;min-height:64px;padding:0 var(--space-3);font-size:var(--text-xs);border-radius:999px;place-self:end center;margin-bottom:.05rem;font-weight:700}.cam-btn[aria-pressed=true]{color:#d7fff0;background:#0b5f46d1;border-color:#38c89394}.attribution{top:max(var(--space-3), var(--safe-t));right:max(var(--space-3), var(--safe-r));z-index:9;color:#eef4f1b8;text-align:right;text-shadow:0 1px 3px #000000e0;pointer-events:none;max-width:min(42vw,34rem);font-size:.5625rem;line-height:1.38;position:fixed}.attribution-en{opacity:.72;margin-top:.1rem;font-size:.5rem;display:block}@media (hover:hover) and (pointer:fine){:root{--hit:64px}.control-key{display:block}.dpad-btn:hover,.cam-btn:hover,.hud-diag-toggle:hover{background-color:#182126e6;border-color:#ecba438a}}@media (max-width:720px){.hud{width:min(16.5rem, calc(72vw - var(--safe-l)))}.attribution{max-width:34vw}.attribution-en,.hud-chip{display:none}}@media (orientation:portrait) and (max-width:560px){:root{--hit:70px}.hud-primary{padding:.7rem}.hud-status{display:none}.attribution{top:auto;right:max(var(--space-3), var(--safe-r));bottom:calc(var(--safe-b) + var(--hit) * 2 + 2.7rem);max-width:50vw}.control-steer{grid-template-columns:repeat(2, var(--hit))}.boot-controls{display:none}}@media (max-height:480px){:root{--hit:64px}.hud-primary{grid-template-columns:1fr auto;padding:.55rem .65rem}.hud-speed output{font-size:2.15rem}.hud-context{max-width:14rem}.control-pedals{grid-template-columns:repeat(2, var(--hit))}.control-caption{display:none}.attribution{top:auto;bottom:calc(var(--safe-b) + var(--hit) + 1.25rem);max-width:min(44vw,25rem)}.attribution-en{display:none}}@media (prefers-reduced-transparency:reduce){.hud-panel,.hud-diag,.hud-alert,.hud-chip,.hud-diag-toggle,.dpad-btn,.cam-btn{background:var(--color-panel-solid);-webkit-backdrop-filter:none}}@media (prefers-contrast:more){:root{--color-panel:#070b0ef0;--color-border:#ffffff6b;--color-border-strong:#ffffffa3;--color-text-secondary:#e4ebe8}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (forced-colors:active){.hud-panel,.hud-diag,.hud-alert,.hud-street,.hud-chip,.hud-diag-toggle,.dpad-btn,.cam-btn{color:canvastext;forced-color-adjust:auto;background:canvas;border:1px solid canvastext}.hud-meter i,.boot-progress i{background:highlight}}
