:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--safe-top: max(14px, env(safe-area-inset-top));--safe-right: max(14px, env(safe-area-inset-right));--safe-bottom: max(14px, env(safe-area-inset-bottom));--safe-left: max(14px, env(safe-area-inset-left))}*{box-sizing:border-box}html,body,#game{width:100%;height:100%;margin:0;overflow:hidden;background:#0b1118}body{touch-action:none;user-select:none;-webkit-user-select:none}button,select{font:inherit}#scene{position:absolute;inset:0;width:100%;height:100%;display:block;outline:0}.loading{position:fixed;inset:0;z-index:100;display:grid;place-content:center;justify-items:center;gap:18px;background:radial-gradient(circle at 50% 40%,#253a43,#0a1117 62%);transition:opacity .55s ease,visibility .55s ease}.loading.is-hidden{opacity:0;visibility:hidden}.loading__brand{font-weight:950;font-style:italic;letter-spacing:-.04em;font-size:clamp(38px,8vw,80px)}.loading__brand span{color:#ef3b36}.loading__line{width:min(66vw,420px);height:4px;overflow:hidden;border-radius:99px;background:#ffffff1f}.loading__line i{display:block;width:8%;height:100%;border-radius:inherit;background:#ef3b36;box-shadow:0 0 22px #ef3b36;transition:width .3s ease}.loading p{margin:0;color:#bdc7cc;font-size:13px;letter-spacing:.08em;text-transform:uppercase}.topbar{position:fixed;z-index:10;top:var(--safe-top);left:var(--safe-left);right:var(--safe-right);display:flex;align-items:flex-start;pointer-events:none}.place{display:flex;flex-direction:column;padding:10px 14px;border-left:3px solid #ef3b36;background:linear-gradient(90deg,#071016d9,#0710167a);text-shadow:0 2px 9px #000}.place strong{font-style:italic;font-size:clamp(18px,2.3vw,28px);line-height:1;letter-spacing:.04em}.place span{color:#b8c4c9;font-size:9px;letter-spacing:.22em;margin-top:5px}.camera-pill{margin:4px auto 0;align-items:center;display:flex;gap:8px;padding:7px 12px;border:1px solid #ffffff1f;border-radius:99px;background:#071016b8;backdrop-filter:blur(8px);color:#dbe3e6;font-size:10px;font-weight:800;letter-spacing:.1em}.camera-dot{width:7px;height:7px;border-radius:50%;background:#ef3b36;box-shadow:0 0 9px #ef3b36}.multiplayer-pill{margin:4px 8px 0 0;padding:7px 10px;border:1px solid #ffffff1a;border-radius:99px;background:#071016b8;color:#9ba8ad;font-size:8px;font-weight:900;letter-spacing:.09em;white-space:nowrap}.multiplayer-pill.is-online{border-color:#55d48755;color:#8ff0b5;box-shadow:inset 0 0 12px #55d48710}.icon-button{pointer-events:auto;width:42px;height:42px;border:1px solid #ffffff1e;border-radius:50%;background:#071016b8;color:#fff;cursor:pointer;font-size:18px}.topbar-actions{display:flex;align-items:center;gap:8px;pointer-events:auto}.garage-button{height:42px;padding:0 15px;border:1px solid #ef3b365e;border-radius:21px;background:#160d11cf;color:#fff;cursor:pointer;font-size:9px;font-weight:900;letter-spacing:.12em;box-shadow:inset 0 0 18px #ef3b3610}.garage-button:hover,.garage-button:focus-visible{border-color:#ef3b36;background:#351016e8;outline:none}.telemetry{position:fixed;z-index:9;left:var(--safe-left);bottom:calc(var(--safe-bottom) + 18px);width:150px;padding:13px 15px 11px;border-left:3px solid #ef3b36;background:linear-gradient(90deg,#071016dc,#0710164a);text-shadow:0 2px 7px #000}.speed{display:flex;align-items:flex-end;gap:6px}.speed span{font-variant-numeric:tabular-nums;font-size:43px;font-weight:900;font-style:italic;line-height:.85;letter-spacing:-.08em}.speed small{margin-bottom:3px;color:#b7c1c6;font-size:9px;text-transform:uppercase}.gear{position:absolute;right:9px;top:10px;color:#ef3b36;font-size:18px;font-weight:900}.rpm{height:3px;margin-top:11px;background:#fff2;overflow:hidden;transform:skew(-22deg)}.rpm span{display:block;width:8%;height:100%;background:linear-gradient(90deg,#d9e5e9,#ef3b36);transition:width .1s linear}.street{max-width:128px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-top:8px;color:#d6dfe2;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.turbo-status{margin-top:7px;color:#72d7ff;font-size:8px;font-weight:900;letter-spacing:.08em;text-shadow:0 0 8px #3dc7ff66}.turbo-status.is-active{color:#fff;animation:turbo-pulse .45s ease-in-out infinite alternate}.turbo-status.is-cooldown{color:#8b989d;text-shadow:none}@keyframes turbo-pulse{to{color:#56d8ff;text-shadow:0 0 14px #27c8ff}}#minimap{position:fixed;z-index:8;right:var(--safe-right);bottom:calc(var(--safe-bottom) + 16px);width:164px;height:164px;border:1px solid #ffffff25;border-radius:50%;background:#091319bd;box-shadow:0 10px 35px #0008}.cockpit-gauges{position:fixed;z-index:8;left:50%;bottom:8px;display:flex;gap:12px;opacity:0;transform:translate(-50%,18px);pointer-events:none;transition:.2s ease}.is-fpp .cockpit-gauges{opacity:1;transform:translate(-50%)}.is-fpp .help{display:none}#minimap{cursor:pointer;touch-action:manipulation}#minimap:focus-visible{outline:3px solid #ef3b36;outline-offset:3px}#city-map{width:min(82vw,72dvh,800px);max-height:94dvh;padding:16px;border:1px solid #617580;border-radius:14px;background:#0b1820;color:#e1eaf0;box-shadow:0 20px 80px #000a}#city-map::backdrop{background:#02070bd9}.city-map-header,.city-map-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.city-map-header h2{margin:0;font-size:16px;letter-spacing:.08em}#city-map button{min-width:36px;min-height:34px;border:1px solid #ffffff40;border-radius:6px;background:#22343f;color:#fff;cursor:pointer;font-size:22px}#map-location{margin:8px 0;font-size:12px}#large-map{display:block;width:100%;height:auto;background:#0a171d;border-radius:8px}.city-map-footer{margin:8px 0;font-size:11px}.city-map-footer div{display:flex;gap:6px}.map-player-dot{color:#ff514b}.map-police-dot{color:#51baff}#city-map small{color:#a9bac4;font-size:10px}#garage{width:min(820px,calc(100vw - 28px));max-height:92dvh;overflow-y:auto;padding:22px;border:1px solid #617580;border-radius:16px;background:linear-gradient(145deg,#101f28,#081117);color:#e8f0f3;box-shadow:0 24px 90px #000c}#garage::backdrop{background:#02070be6;backdrop-filter:blur(5px)}.garage-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.garage-header p{margin:0 0 4px;color:#ef3b36;font-size:9px;font-weight:900;letter-spacing:.22em}.garage-header h2{margin:0;font-size:25px;font-style:italic;letter-spacing:.05em}.garage-header button{width:38px;height:38px;border:1px solid #ffffff32;border-radius:50%;background:#ffffff0b;color:#fff;cursor:pointer;font-size:25px}.garage-copy{margin:14px 0 18px;color:#aebdc4;font-size:12px;line-height:1.5}.garage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.garage-vehicle{position:relative;min-height:176px;overflow:hidden;padding:0;border:1px solid #ffffff20;border-radius:12px;background:#0d171d;color:#fff;cursor:pointer;text-align:left;transition:transform .16s ease,border-color .16s ease,background .16s ease}.garage-vehicle:hover,.garage-vehicle:focus-visible{transform:translateY(-2px);border-color:#ffffff68;outline:none}.garage-vehicle.is-selected{border-color:#ef3b36;background:#17171c;box-shadow:inset 0 0 0 1px #ef3b3644,0 9px 30px #0005}.garage-vehicle:disabled{cursor:wait;opacity:.68}.garage-vehicle__preview{display:grid;place-items:center;width:100%;aspect-ratio:16 / 9;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--vehicle-color) 25%,#111a20),#060b0e 72%);border-bottom:1px solid #ffffff18}.garage-vehicle__preview img{display:block;width:100%;height:100%;padding:7px;object-fit:contain!important;object-position:center}.garage-vehicle__preview img[src$=".jpg"]{background:#f5f5f3}.garage-vehicle__body{display:flex;flex-direction:column;gap:4px;padding:13px 14px 15px}.garage-vehicle__body strong{font-size:15px}.garage-vehicle__body small{color:#9fb0b8;font-size:10px}.garage-vehicle__stats{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.garage-vehicle__stats b{padding:5px 7px;border:1px solid #ffffff18;border-radius:5px;background:#ffffff08;color:#e8eef0;font-size:8px;letter-spacing:.05em}.garage-vehicle__body em{margin-top:5px;color:#d8e3e7;font-size:8px;font-style:normal;font-weight:900;letter-spacing:.1em}.garage-vehicle__state{position:absolute;right:10px;top:9px;padding:5px 7px;border-radius:99px;background:#071016db;color:#b7c3c8;font-size:7px;font-weight:900;letter-spacing:.08em}.garage-vehicle.is-selected .garage-vehicle__state{background:#ef3b36;color:#fff}.garage-status{min-height:18px;margin:15px 0 4px;color:#d6e1e5;font-size:11px}#garage>small{color:#82939b;font-size:9px}.cockpit-dial{position:relative;width:94px;height:76px;overflow:hidden;border:4px solid #596066;border-bottom:0;border-radius:54px 54px 8px 8px;background:radial-gradient(circle at 50% 72%,#1b2429,#05090c 72%);box-shadow:inset 0 0 0 2px #090d10,0 3px 15px #0008;text-align:center}.cockpit-dial:before{content:"";position:absolute;inset:8px;border:2px dotted #dbe4e580;border-bottom:0;border-radius:44px 44px 0 0}.cockpit-dial i{position:absolute;left:43px;bottom:12px;width:3px;height:31px;border-radius:2px;background:#ef3b36;box-shadow:0 0 7px #ef3b36;transform:rotate(-118deg);transform-origin:50% 100%;transition:transform .1s linear}.cockpit-dial b{position:absolute;left:0;right:0;bottom:11px;color:#fff;font-size:13px;font-variant-numeric:tabular-nums}.cockpit-dial small{position:absolute;left:0;right:0;bottom:1px;color:#8f9ba0;font-size:6px;font-weight:800;letter-spacing:.08em}.help{position:fixed;z-index:8;left:50%;bottom:calc(var(--safe-bottom) + 14px);display:flex;transform:translate(-50%);gap:16px;padding:8px 12px;border-radius:8px;background:#071016a6;color:#b9c4c8;font-size:9px;letter-spacing:.05em}kbd{display:inline-block;min-width:22px;margin-right:2px;padding:4px 6px;border:1px solid #ffffff2b;border-radius:4px;background:#ffffff0d;color:#fff;font-size:9px;text-align:center;box-shadow:inset 0 -2px #0004}.osm-credit{position:fixed;z-index:8;right:var(--safe-right);bottom:3px;color:#d8e1e4;font-size:9px;text-decoration:none;text-shadow:0 1px 4px #000}.mobile-controls{display:none;position:fixed;inset:0;z-index:20;pointer-events:none}.touch-cluster{position:absolute;bottom:calc(var(--safe-bottom) + 16px);display:flex;gap:12px;pointer-events:auto}.touch-cluster--steer{left:var(--safe-left)}.touch-cluster--drive{right:var(--safe-right)}.touch-button{width:min(20vw,82px);height:min(20vw,82px);border:1px solid #ffffff2b;border-radius:50%;background:#07101680;color:#fff;font-size:27px;backdrop-filter:blur(5px);box-shadow:inset 0 0 25px #ffffff08,0 6px 22px #0005}.touch-button span{display:block;margin-top:1px;font-size:8px;font-weight:900;letter-spacing:.1em}.touch-button--gas{border-color:#55d48766}.touch-button--brake{border-color:#ef3b3666}.touch-button.is-active{transform:scale(.94);background:#ef3b3694;border-color:#fff8}.touch-actions{position:absolute;right:var(--safe-right);top:calc(var(--safe-top) + 58px);display:flex;flex-direction:column;gap:7px;pointer-events:auto}.small-touch{padding:8px 10px;border:1px solid #ffffff22;border-radius:7px;background:#0710169c;color:#dfe7ea;font-size:8px;font-weight:850;letter-spacing:.08em}.turbo-touch{border-color:#4ed8ff80;color:#bcefff}.enter-touch{border-color:#efbd4f80;color:#ffe0a1}.weapon-touch{border-color:#ff824f80;color:#ffd0bc}.weapon-touch.is-active{background:#7b241bdb;border-color:#fff;color:#fff}.fire-touch{border-color:#f44a;background:#5e1118d9;color:#fff}.fire-touch[hidden]{display:none!important}.turbo-touch.is-active{background:#087ba8db;border-color:#fff;color:#fff;box-shadow:0 0 14px #36cfff88}.turbo-touch:disabled{opacity:.52}.is-on-foot .telemetry,.is-on-foot .cockpit-gauges,.is-on-foot [data-action=turbo]{display:none}.crosshair{position:fixed;z-index:12;left:50%;top:50%;display:none;width:24px;height:24px;transform:translate(-50%,-50%);pointer-events:none}.crosshair.is-visible{display:block}.crosshair:before,.crosshair:after,.crosshair i:before,.crosshair i:after{content:"";position:absolute;background:#fff;box-shadow:0 0 3px #000,0 0 6px #000}.crosshair:before,.crosshair:after{left:11px;width:2px;height:7px}.crosshair:before{top:0}.crosshair:after{bottom:0}.crosshair i:before,.crosshair i:after{top:11px;width:7px;height:2px}.crosshair i:before{left:0}.crosshair i:after{right:0}.weapon-hud{position:fixed;z-index:12;right:var(--safe-right);bottom:calc(var(--safe-bottom) + 190px);display:none;min-width:76px;padding:8px 11px;border-right:3px solid #ef3b36;background:#071016cf;color:#fff;font-size:13px;font-weight:900;text-align:right;letter-spacing:.08em}.weapon-hud.is-visible{display:block}.player-health{position:fixed;z-index:12;left:var(--safe-left);bottom:calc(var(--safe-bottom) + 18px);display:none;align-items:center;gap:8px;min-width:190px;padding:9px 11px;border-left:3px solid #55d487;background:#071016d8;color:#dfe9ec;font-size:8px;font-weight:900;letter-spacing:.09em}.is-on-foot .player-health{display:flex}.player-health>i{flex:1;height:8px;overflow:hidden;border-radius:4px;background:#ffffff20}.player-health>i b{display:block;width:100%;height:100%;background:#55d487;transition:width .18s ease,background .18s ease}.player-health>strong{min-width:23px;color:#fff;font-size:11px;text-align:right}.player-health.is-hurt{border-left-color:#f0c14b}.player-health.is-hurt>i b{background:#f0c14b}.player-health.is-critical{border-left-color:#ef3b36}.player-health.is-critical>i b{background:#ef3b36}.crosshair.is-hit{filter:drop-shadow(0 0 5px #ff2f2f)}.crosshair.is-hit:before,.crosshair.is-hit:after,.crosshair.is-hit i:before,.crosshair.is-hit i:after{background:#ff4545}.panel{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;opacity:0;visibility:hidden;background:#03080ca8;backdrop-filter:blur(8px);transition:.2s ease}.panel.is-open{opacity:1;visibility:visible}.panel__card{position:relative;width:min(430px,100%);padding:34px;border:1px solid #ffffff19;border-radius:16px;background:#0c161dde;box-shadow:0 20px 80px #0009}.panel__close{position:absolute;right:13px;top:10px;border:0;background:none;color:#fff;font-size:28px;cursor:pointer}.eyebrow{margin:0 0 5px;color:#ef3b36;font-size:10px;font-weight:900;letter-spacing:.2em}.panel h1{margin:0 0 24px;font-style:italic}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid #ffffff12;font-size:13px}.multiplayer-modes{display:flex;overflow:hidden;border:1px solid #ffffff24;border-radius:7px}.multiplayer-modes button{min-width:72px;padding:8px 10px;border:0;background:#111d24;color:#84939a;cursor:pointer;font-size:9px;font-weight:900;letter-spacing:.08em}.multiplayer-modes button+button{border-left:1px solid #ffffff1d}.multiplayer-modes button.is-active{background:#1d7043;color:#d9ffea;box-shadow:inset 0 0 16px #55d48722}.multiplayer-modes button[data-multiplayer-mode=offline].is-active{background:#4b2528;color:#ffe2e2}select{padding:7px;border:1px solid #ffffff20;border-radius:6px;background:#111d24;color:#fff}.panel__copy{color:#aebbc0;font-size:12px;line-height:1.6}.panel a{color:#d9e2e5;font-size:10px}.message{position:fixed;z-index:30;top:26%;left:50%;transform:translate(-50%,-10px);opacity:0;padding:11px 16px;border-radius:8px;background:#071016d9;color:#fff;font-size:12px;font-weight:800;letter-spacing:.05em;pointer-events:none;transition:.25s ease}.message.is-visible{opacity:1;transform:translate(-50%)}@media(pointer:coarse),(max-width:820px){.mobile-controls{display:block}.help{display:none}.telemetry{bottom:calc(var(--safe-bottom) + min(22vw,92px) + 22px);width:125px;padding:10px 12px}.speed span{font-size:34px}#minimap{width:108px;height:108px;bottom:calc(var(--safe-bottom) + min(22vw,94px) + 18px)}.cockpit-gauges{bottom:calc(var(--safe-bottom) + min(20vw,78px) + 2px);transform:translate(-50%,12px) scale(.8)}.is-fpp .cockpit-gauges{transform:translate(-50%) scale(.8)}.osm-credit{bottom:calc(var(--safe-bottom) + min(21vw,87px) + 2px)}.camera-pill{margin-left:auto;margin-right:8px}.multiplayer-pill{position:fixed;top:calc(var(--safe-top) + 46px);left:var(--safe-left);margin:0}.player-health{bottom:calc(var(--safe-bottom) + min(22vw,94px) + 18px);min-width:148px;padding:7px 9px}.garage-button{display:none}#garage{max-height:90dvh;overflow-y:auto;padding:17px}.garage-grid{grid-template-columns:1fr}.garage-vehicle{min-height:138px}.garage-vehicle__preview{height:auto;aspect-ratio:16 / 9}}@media(orientation:portrait)and (pointer:coarse){.place span{display:none}.touch-cluster{bottom:calc(var(--safe-bottom) + 22px)}.telemetry{bottom:calc(var(--safe-bottom) + min(25vw,94px) + 36px)}#minimap{bottom:calc(var(--safe-bottom) + min(25vw,94px) + 34px)}}
