:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--hud:#ffffffeb;--shadow:0 0 4px #000000e6}*{box-sizing:border-box}html,body{height:100%;color:var(--hud);background:#0b0e14;margin:0;font-family:Segoe UI,system-ui,sans-serif;overflow:hidden}#view{width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}.hud{pointer-events:none;text-shadow:var(--shadow);position:fixed;inset:0}.hud select{pointer-events:auto}.top-left{flex-direction:column;gap:6px;display:flex;position:absolute;top:12px;left:12px}.top-right{text-align:right;position:absolute;top:12px;right:16px}.bottom-left{align-items:flex-end;gap:10px;display:flex;position:absolute;bottom:12px;left:12px}.bottom-right{text-align:right;position:absolute;bottom:16px;right:16px}.stats{opacity:.8;white-space:pre;font:12px/1.3 ui-monospace,Consolas,monospace}.stars{letter-spacing:2px;color:#ffd84a;font-size:28px}.stars .off{color:#ffffff40}.wanted-note{text-transform:uppercase;letter-spacing:2px;color:#ffb3b3;min-height:16px;font-size:13px}#minimap{background:#1c2230;border:2px solid #ffffff80;border-radius:50%;width:220px;height:220px}.bars{flex-direction:column;gap:4px;width:200px;margin-bottom:4px;display:flex}.bar{background:#0000008c;border-radius:3px;height:10px;overflow:hidden}.fill{width:100%;height:100%;transition:width .12s linear}.fill.health{background:#5fd36b}.fill.armour{background:#7fb2ff;width:0}.weapon{font-size:18px;font-weight:600}.speed{opacity:.85;margin-top:4px;font-size:14px}.prompt{background:#00000073;border-radius:4px;padding:6px 12px;font-size:16px;position:absolute;bottom:18%;left:50%;transform:translate(-50%)}.prompt:empty{display:none}.crosshair{border:2px solid #ffffffe6;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute;top:50%;left:50%;box-shadow:0 0 2px #000}.arrest{background:#0000008c;border-radius:3px;width:220px;height:8px;margin-left:-110px;position:absolute;top:58%;left:50%;overflow:hidden}#arrest-fill{background:#ff5a5a;width:0;height:100%}.attribution{opacity:.7;white-space:nowrap;font-size:11px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.screen{pointer-events:none;background:#0000008c;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#screen-title{letter-spacing:6px;text-transform:uppercase;text-shadow:0 0 16px #000;font-size:64px;font-weight:800}#screen-sub{opacity:.9;margin-top:10px;font-size:20px}.loading{isolation:isolate;overscroll-behavior:contain;background:#182331;justify-content:center;align-items:flex-start;padding:clamp(20px,5vh,64px) clamp(16px,4vw,72px);display:flex;position:fixed;inset:0;overflow-y:auto}.loading:before,.loading:after{content:"";z-index:-1;pointer-events:none;position:fixed;inset:0}.loading:before{background:url(/Helsinki-rides/assets/senate-square-start-C3c2do1Y.jpg) 62%/cover no-repeat}.loading:after{background:linear-gradient(#07101cb3,#07101c1f 35%,#07101c73),linear-gradient(90deg,#07101c73,#0000 75%)}.loading-box{text-align:left;flex-shrink:0;grid-template-columns:minmax(0,560px) minmax(0,390px);justify-content:space-between;align-items:end;gap:clamp(24px,7vw,120px);width:min(1200px,100%);margin-block:auto;display:grid}.loading-main,.loading-credits{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#091421db;border:1px solid #c7dcef33;border-radius:20px;box-shadow:0 20px 80px #00000040}.loading-main{padding:clamp(24px,3vw,40px)}.loading-topline{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.loading-eyebrow{letter-spacing:.16em;color:#b3d7fa;margin:0;font-size:11px;font-weight:700;line-height:1.5}.loading-topline .language-choice{justify-content:flex-start;margin:0}.loading-topline .language-choice button{min-height:36px;padding:6px 9px;font-size:12px}.loading-topline .language-flag{width:21px;height:14px}#loading-title{letter-spacing:-.04em;color:#fff;margin:28px 0 18px;font-size:clamp(38px,4.5vw,62px);font-weight:750;line-height:1.06}.loading-intro{color:#e2eaf3;max-width:36ch;margin:0;font-size:clamp(16px,1.6vw,19px);line-height:1.55}.loading-progress{margin-top:28px}#loading-text{color:#d6e4f3;overflow-wrap:anywhere;min-height:1.5em;margin-bottom:10px;font-size:14px;line-height:1.5}.loading-bar{background:#344456;border-radius:4px;height:5px;overflow:hidden}#loading-fill{background:#98ceff;width:0;height:100%;transition:width .15s linear}.play-button{color:#102237;width:100%;min-height:52px;font:inherit;cursor:pointer;background:#b8ddff;border:1px solid #b8ddff;border-radius:9px;justify-content:center;align-items:center;gap:18px;margin-top:22px;padding:12px 18px;font-size:16px;font-weight:700;display:flex}.play-button:after{content:"→";font-size:22px;line-height:1}.play-button:hover:not(:disabled){background:#d9edff;border-color:#d9edff}.play-button:disabled{color:#d0dce7;cursor:wait;background:#344456;border-color:#62788d}.play-button:focus-visible{outline-offset:4px;outline:3px solid #fff}#loading-hint{color:#c3cfdd;margin-top:22px;font-size:12px;line-height:1.75}.graphics{color:#d6e4f3;cursor:default;flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;font-size:12px;display:inline-flex}.graphics select{font:inherit;color:#ecf2fc;cursor:pointer;background:#22344a;border:1px solid #617387;border-radius:5px;min-height:34px;padding:5px 9px}.graphics select:focus-visible{outline-offset:2px;outline:2px solid #a9d1ff}.language-choice{cursor:default;flex-wrap:wrap;justify-content:center;gap:8px;margin:-4px 0 20px;display:flex}.language-choice button{min-height:40px;font:inherit;color:#ecf2fc;cursor:pointer;background:#22293a;border:1px solid #57637b;border-radius:5px;justify-content:center;align-items:center;gap:8px;padding:7px 13px;font-size:14px;line-height:1.3;display:inline-flex}.language-choice button[aria-pressed=true]{background:#304a6e;border-color:#a9d1ff;box-shadow:inset 0 0 0 1px #a9d1ff}.language-choice button:focus-visible{outline-offset:3px;outline:2px solid #fff}.language-flag{border:1px solid #7c89a0;width:25px;height:16px;display:block}.loading-credits{text-align:left;color:#d0dbe7;cursor:default;overflow-wrap:anywhere;margin:0;padding:26px;font-size:12px;line-height:1.55}.loading-credits h2{color:#f3f7fc;margin:0 0 18px;font-size:16px;font-weight:650}.loading-credits ul{margin:0;padding-left:20px}.loading-credits li+li{margin-top:10px}.loading-credits p{margin:14px 0 0}.loading-credits strong{color:#ecf2fc}.loading-credits a{color:#a9d1ff;text-underline-offset:.16em;cursor:pointer}.loading-credits a:hover{color:#d7eaff}.loading-credits a:focus-visible{outline-offset:3px;border-radius:2px;outline:2px solid #a9d1ff}@media (max-width:920px){.loading-box{grid-template-columns:minmax(0,600px);justify-content:center;gap:20px}.loading:before{background-position:72%}.loading-credits{padding:24px}}@media (max-width:540px){.loading{padding:16px 12px}.loading-main{padding:24px}.loading-main,.loading-credits{border-radius:14px}.loading-topline{flex-direction:column;align-items:flex-start;gap:12px}#loading-title{margin-top:24px}.loading-credits{padding:22px}}@media (prefers-reduced-motion:reduce){#loading-fill{transition:none}}.touch-controls{--touch-scale:1;--touch-button:clamp(48px, calc(8.5vmin * var(--touch-scale)), 72px);z-index:5;pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}.touch-controls [hidden]{display:none!important}.touch-look{pointer-events:auto;touch-action:none;position:absolute;inset:0 0 0 42%}.touch-stick{width:calc(var(--touch-button) * 2.5);height:calc(var(--touch-button) * 2.5);left:max(20px, env(safe-area-inset-left));bottom:max(20px, env(safe-area-inset-bottom));pointer-events:auto;touch-action:none;background:#17233366;border:2px solid #edf5ff88;border-radius:50%;place-items:center;display:grid;position:absolute}.touch-stick:after{content:"";pointer-events:none;border:1px dashed #fff7;border-radius:50%;position:absolute;inset:22%}.touch-stick-guide{text-align:center;pointer-events:none;text-shadow:0 1px 3px #000;width:90%;font-size:10px;position:absolute;bottom:10%}.touch-stick-knob{pointer-events:none;background:#d9e8faaa;border:2px solid #fff9;border-radius:50%;width:38%;height:38%}.touch-actions{right:max(16px, env(safe-area-inset-right));bottom:max(18px, env(safe-area-inset-bottom));grid-template-columns:repeat(3, var(--touch-button));grid-template-rows:repeat(3, var(--touch-button));pointer-events:none;gap:8px;display:grid;position:absolute}.touch-button{color:#fff;text-shadow:0 1px 3px #000;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;background:#142233ad;border:1px solid #dcecff99;border-radius:15px;min-width:44px;min-height:44px;padding:4px 1px;font:600 clamp(10px,1.7vmin,13px)/1.15 system-ui,sans-serif}.touch-button.pressed,.touch-button[aria-pressed=true]{background:#467fa9d9;border-color:#fff}.touch-button:focus-visible{outline-offset:2px;outline:3px solid #a9d1ff}.touch-fire{font-size:clamp(12px, calc(var(--touch-button) * .25), 15px);white-space:nowrap;background:#773f32ad;border-radius:22px;grid-area:2/3/4}.touch-aim{grid-area:1/3}.touch-jump{grid-area:3/2}.touch-reload{grid-area:2/2}.touch-holster{grid-area:1/2}.touch-interact{grid-area:2/1}.touch-recover{grid-area:1/1}.touch-accelerate{grid-area:2/3/4}.touch-brake{grid-area:2/2/4}.touch-handbrake{grid-area:1/3}.touch-horn{grid-area:1/2}.touch-mirrored .touch-look{inset:0 42% 0 0}.touch-mirrored .touch-stick{left:auto;right:max(20px, env(safe-area-inset-right))}.touch-mirrored .touch-actions{right:auto;left:max(16px, env(safe-area-inset-left))}.touch-preferences{color:#d6e4f3;margin-top:16px;font-size:13px}.touch-preferences summary{cursor:pointer;align-items:center;gap:10px;min-height:44px;display:flex}.touch-preferences summary:before{content:"+";font-size:18px}.touch-preferences[open] summary:before{content:"−"}.touch-preferences label{justify-content:space-between;align-items:center;gap:12px;min-height:44px;margin-block:6px;display:flex}.touch-preferences select{color:#fff;min-height:44px;font:inherit;background:#22344a;border:1px solid #617387;border-radius:5px;padding:5px}.touch-preferences input[type=range]{accent-color:#b8ddff;width:min(46%,180px);min-height:44px}.touch-preferences input[type=checkbox]{accent-color:#b8ddff;width:24px;height:24px}.touch-preferences p{font-size:12px;line-height:1.6}body.touch-layout #view{touch-action:none}body.touch-layout .top-left{top:max(8px, env(safe-area-inset-top));left:max(8px, env(safe-area-inset-left));max-width:min(42vw, calc(50vw - 60px - max(8px, env(safe-area-inset-left))))}body.touch-layout #dropin{max-width:100%;min-height:44px;font-size:12px}body.touch-layout .stats{display:none}body.touch-layout .top-right{top:max(8px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right))}body.touch-layout .stars{font-size:22px}body.touch-layout .wanted-note{letter-spacing:1px;font-size:10px}body.touch-layout .bottom-left{top:calc(max(8px, env(safe-area-inset-top)) + 52px);bottom:auto;left:max(8px, env(safe-area-inset-left));flex-direction:column;align-items:flex-start;gap:4px}body.touch-layout #minimap{border-width:1px;width:clamp(70px,18vmin,112px);height:clamp(70px,18vmin,112px)}body.touch-layout .bars{gap:3px;width:clamp(70px,18vmin,112px)}body.touch-layout .bar{height:5px}body.touch-layout .bottom-right{top:62px;bottom:auto;right:max(12px, env(safe-area-inset-right))}body.touch-layout .weapon{font-size:13px}body.touch-layout .speed{font-size:12px}body.touch-layout .prompt{bottom:max(8px, env(safe-area-inset-bottom));text-align:center;max-width:35vw;font-size:11px}body.touch-layout .attribution{white-space:nowrap;text-overflow:ellipsis;text-align:center;max-width:42vw;bottom:max(2px, env(safe-area-inset-bottom));font-size:8px;overflow:hidden}body.touch-layout #screen-title{font-size:clamp(32px,9vw,64px)}body.touch-layout #screen-sub{text-align:center;padding-inline:16px;font-size:15px}@media (max-height:430px){.touch-controls{--touch-button:clamp(48px, calc(12vmin * var(--touch-scale)), 58px)}.touch-actions{gap:6px}.touch-stick{width:calc(var(--touch-button) * 2.4);height:calc(var(--touch-button) * 2.4)}}@media (orientation:portrait){.touch-controls{--touch-button:clamp(48px, calc(11vmin * var(--touch-scale)), 60px)}.touch-actions{right:max(8px, env(safe-area-inset-right));gap:5px}.touch-stick{left:max(8px, env(safe-area-inset-left));width:calc(var(--touch-button) * 2.45);height:calc(var(--touch-button) * 2.45)}.touch-mirrored .touch-stick{left:auto;right:max(8px, env(safe-area-inset-right))}.touch-mirrored .touch-actions{right:auto;left:max(8px, env(safe-area-inset-left))}}.session-toolbar{z-index:15;top:max(10px, env(safe-area-inset-top));position:fixed;left:50%;transform:translate(-50%)}.session-toolbar button,.session-panel button,.session-panel select{font:inherit;color:#edf4ff;cursor:pointer;background:#172b40;border:1px solid #9bb8d2;border-radius:10px;min-height:48px;padding:10px 16px}.session-toolbar button{background:#091624bf;min-width:64px}.session-panel{z-index:40;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));overscroll-behavior:contain;background:#040a12d1;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.session-box{background:#101f30;border:1px solid #536e88;border-radius:16px;flex-direction:column;gap:14px;width:min(520px,100%);max-height:100%;padding:22px;display:flex;overflow-y:auto}.session-box h2,.session-box p{margin:0}.session-box p{color:#c6d9e9;line-height:1.5}.session-box button:focus-visible,.session-box select:focus-visible,.session-toolbar button:focus-visible{outline-offset:3px;outline:3px solid #fff}.session-preferences,.session-preferences label{flex-direction:column;gap:10px;display:flex}.session-preferences{border-top:1px solid #536e88;padding-top:14px}.session-credits{overflow-wrap:anywhere;border-top:1px solid #536e88;padding-top:10px;font-size:12px;line-height:1.6}.session-credits summary{cursor:pointer;align-items:center;min-height:44px;font-size:14px;display:flex}.session-credits p{margin-bottom:12px}.session-credits a{color:#b8ddff}#resume-button{color:#102237;background:#b8ddff;font-weight:700}@media (max-height:430px){.session-box{gap:10px;padding:14px}.session-toolbar button{min-height:44px;padding:6px 12px}}
