html,body{margin:0;padding:0;overflow:hidden;background:#000;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;color:#e8eef2}#app canvas{display:block;touch-action:none}html,body{width:100%;height:100%;overscroll-behavior:none}button{-webkit-tap-highlight-color:transparent}.help-close{float:right;padding:10px 14px;background:#233644;color:#fff;border:1px solid #7893a4;border-radius:8px;cursor:pointer}.touch-help{display:none}#mobile-controls[hidden],#mobile-controls [hidden]{display:none!important}#mobile-controls{position:fixed;inset:0;z-index:20;pointer-events:none;font-family:system-ui,sans-serif;--touch-bottom:max(14px,env(safe-area-inset-bottom));--touch-left:max(14px,env(safe-area-inset-left));--touch-right:max(14px,env(safe-area-inset-right))}#mobile-controls button{min-width:48px;min-height:46px;padding:9px 12px;border:1px solid #afced969;border-radius:12px;background:#142936e8;color:#f1f7fb;font:600 12px/1.2 system-ui,sans-serif;touch-action:none;user-select:none;-webkit-user-select:none;pointer-events:auto;box-shadow:0 3px 12px #0003}#mobile-controls button:active,#mobile-controls button.held{background:#e4bb78;border-color:#ffe0ad;color:#14232d}#mobile-controls button:focus-visible{outline:2px solid #ffd166;outline-offset:2px}.touch-toolbar{position:absolute;top:max(10px,env(safe-area-inset-top));left:var(--touch-left);right:var(--touch-right);display:flex;justify-content:center;gap:6px}.touch-mode-label{position:absolute;top:calc(max(10px,env(safe-area-inset-top)) + 53px);left:var(--touch-left);font-size:10px;font-weight:700;letter-spacing:1.4px;text-shadow:0 2px 3px #000}.touch-stick{position:absolute;left:var(--touch-left);bottom:var(--touch-bottom);width:132px;height:132px;border-radius:50%;background:#10293680;border:1px solid #c7e9fa80;box-shadow:inset 0 0 25px #a5d5e41a;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}.touch-knob{position:absolute;width:50px;height:50px;left:calc(50% - 25px);top:calc(50% - 25px);border-radius:50%;background:#c4e1ec80;border:1px solid #def4ff;box-sizing:border-box;pointer-events:none}.touch-stick-label{position:absolute;top:-22px;left:0;width:100%;text-align:center;font-size:10px;font-weight:700;letter-spacing:1px;color:#def4ff;text-shadow:0 1px 3px #000}.touch-primary{position:absolute;bottom:var(--touch-bottom);right:var(--touch-right);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:190px}#mobile-controls .touch-primary button{min-height:58px;padding:10px 5px}.touch-panel{position:absolute;top:calc(max(10px,env(safe-area-inset-top)) + 76px);right:var(--touch-right);width:min(340px,calc(100vw - 28px));max-height:calc(100dvh - 245px - env(safe-area-inset-top) - env(safe-area-inset-bottom));box-sizing:border-box;overflow:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px;border:1px solid #587789;background:#0c1b26f5;border-radius:14px;pointer-events:auto;overscroll-behavior:contain}#mobile-controls .touch-panel button{padding:8px 5px;font-size:11px;touch-action:pan-y}#mobile-controls .touch-panel button[data-key=Comma],#mobile-controls .touch-panel button[data-key=Period],#mobile-controls .touch-panel button[data-key=KeyB],#mobile-controls .touch-panel button[data-key=KeyO],#mobile-controls .touch-panel button[data-key=KeyY]{touch-action:none}#mobile-controls.captured{visibility:hidden}.touch-mode .performance-stats,.touch-mode .lil-gui.lil-root,.touch-mode #status-line{display:none}.touch-mode #hint{top:calc(max(10px,env(safe-area-inset-top)) + 71px);bottom:auto;width:calc(100% - 30px);font:10px system-ui,sans-serif;text-align:center}.touch-mode #telemetry{top:100px;max-width:calc(100vw - 40px);max-height:40dvh;overflow:auto;font-size:10px}.touch-mode #flash{top:30%;padding:0 20px;box-sizing:border-box;font-size:16px}.touch-mode [data-testid=vehicle-hud]{left:50%!important;bottom:calc(max(14px,env(safe-area-inset-bottom)) + 163px)!important;transform:translate(-50%)!important;width:max-content;max-width:calc(100vw - 36px)!important;padding:6px 10px!important;font-size:10px!important;line-height:1.4!important;text-align:center!important;opacity:1!important}.touch-mode .overlay{width:calc(100vw - 24px);max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));box-sizing:border-box;padding:14px;z-index:120}.touch-mode .overlay td:first-child{white-space:normal}.touch-mode .touch-help{display:block;clear:both;font:14px/1.5 system-ui,sans-serif}.touch-mode .garage{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:16px}.touch-mode .garage button{min-height:44px}.touch-mode .garage input{font-size:16px}.touch-mode .garage .garage-paints button{width:44px;height:44px}.touch-mode .garage footer{display:none}.touch-mode .garage-grid{max-height:35dvh}@media(max-width:374px){.touch-stick{width:112px;height:112px}.touch-primary{width:170px;gap:6px}#mobile-controls button{padding:8px;font-size:11px}}@media(orientation:landscape)and (max-height:550px){.touch-stick{width:116px;height:116px}.touch-primary{width:205px}.touch-mode [data-testid=vehicle-hud]{bottom:max(12px,env(safe-area-inset-bottom))!important;max-width:calc(100vw - 380px)!important}.touch-mode #hint{display:none}.touch-panel{right:calc(var(--touch-right) + 215px);width:min(340px,calc(100vw - 365px));max-height:calc(100dvh - 100px - env(safe-area-inset-top));grid-template-columns:repeat(2,minmax(0,1fr))}.touch-mode .garage-grid{min-height:90px}}#hud{position:fixed;inset:0;pointer-events:none;font-size:12px;text-shadow:0 1px 2px #000}#status-line{position:absolute;left:8px;bottom:8px;opacity:.85}#telemetry{position:absolute;right:8px;top:8px;min-width:220px;background:#080c108c;padding:8px 10px;border-radius:6px;white-space:pre;line-height:1.35}#telemetry.hidden{display:none}#flash{position:absolute;top:22%;width:100%;text-align:center;font-size:20px;font-weight:700;color:#ffd166;opacity:0;transition:opacity .3s}#flash.show{opacity:1}#crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:18px;opacity:.6}#hint{position:absolute;left:50%;bottom:40px;transform:translate(-50%);opacity:.8;font-size:14px}.overlay{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:#080c10e0;border:1px solid #334;border-radius:8px;padding:16px 22px;font-size:12px;line-height:1.5;max-height:86vh;overflow:auto;pointer-events:auto;z-index:10}.overlay h2{margin:0 0 8px;font-size:15px}.overlay table{border-collapse:collapse}.overlay td{padding:1px 12px 1px 0;vertical-align:top}.overlay td:first-child{color:#ffd166;white-space:nowrap}.overlay.hidden{display:none}.spawn-item{display:block;width:100%;text-align:left;margin:3px 0;padding:5px 8px;background:#1b2530;color:#e8eef2;border:1px solid #2c3a48;border-radius:4px;font-family:inherit;cursor:pointer}.spawn-item:hover{background:#28394a}.gauge-bar{display:inline-block;height:6px;background:#4cc9f0;vertical-align:middle}.garage{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(850px,calc(100vw - 64px));max-height:calc(100vh - 64px);box-sizing:border-box;overflow:auto;padding:28px;z-index:110;background:#101921f5;border:1px solid #4c606e;box-shadow:0 30px 100px #0009;border-radius:18px;font-family:system-ui,sans-serif}.garage.hidden{display:none}.garage header{display:flex;align-items:center;justify-content:space-between;gap:20px}.garage header small{color:#e3b46d;font-size:10px;font-weight:700;letter-spacing:2px}.garage h2{margin:8px 0 22px;font-size:30px;letter-spacing:-1px}.garage button{cursor:pointer;font:inherit;color:#dce7ef;background:#1d2a35;border:1px solid #3d5160;border-radius:8px;padding:8px 12px}.garage button:focus-visible,.garage input:focus-visible{outline:2px solid #f4c37c;outline-offset:3px}.garage input{box-sizing:border-box;width:100%;padding:14px 16px;background:#0b1219;color:#f1f7fb;border:1px solid #425565;border-radius:8px;font:inherit;margin-bottom:18px}.garage-categories{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.garage-categories button{border-color:transparent;font-size:12px}.garage-categories button[aria-pressed=true]{background:#e6b877;color:#17222b;font-weight:700}.garage>span{color:#94a9ba;font-size:11px}.garage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 20px;max-height:36vh;min-height:130px;overflow:auto;padding:4px}.garage .garage-card{position:relative;text-align:left;padding:17px 15px 17px 54px;min-height:86px;background:#192630}.garage-card strong{display:block;font-size:15px}.garage-card small{display:block;color:#a3b9c8;font-size:11px;margin-top:6px;line-height:1.4}.garage .garage-card:hover,.garage .garage-card.selected{background:#263b48;border-color:#dbb579}.garage-swatch{position:absolute;left:16px;top:20px;width:24px;height:42px;border-radius:7px;box-shadow:inset 0 1px 5px #fff5,inset 0 -3px 6px #0005}.garage-paints{display:flex;align-items:center;flex-wrap:wrap;gap:10px;border-top:1px solid #344653;padding-top:18px}.garage .garage-paints button{padding:0;width:30px;height:30px;border-radius:50%;background:var(--paint);border:3px solid #101921;box-shadow:0 0 0 1px #617483}.garage .garage-paints button[aria-pressed=true]{box-shadow:0 0 0 3px #efc68c}.garage footer{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;color:#8299a9;font-size:10px;margin-top:20px}.garage-empty{color:#9fb1c0;font-size:13px;grid-column:1/-1}@media(max-width:600px){.garage{width:calc(100vw - 20px);padding:18px;max-height:calc(100vh - 20px)}.garage h2{font-size:22px}.garage-grid{grid-template-columns:1fr;max-height:38vh}.garage header{align-items:start}.garage header button{font-size:10px;white-space:nowrap}}
