:root{--amber:#ffb65c;--amber-dim:#c98a3c;--ink:#0b0a09;--paper:#efe3cc;--red:#d8433a}*{box-sizing:border-box}html,body{height:100%;color:var(--paper);-webkit-user-select:none;user-select:none;touch-action:none;-webkit-touch-callout:none;overscroll-behavior:none;background:#050505;margin:0;font-family:Oswald,Arial Narrow,sans-serif;overflow:hidden}#gl{cursor:crosshair;touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}#loading{z-index:20;background:radial-gradient(at 50% 40%,#2a1d10 0%,#0d0907 55%,#030303 100%);flex-direction:column;justify-content:center;align-items:center;gap:28px;display:flex;position:fixed;inset:0}#loading .title{text-align:center}#loading .gta{letter-spacing:.32em;text-transform:uppercase;color:var(--amber-dim);font-family:Oswald;font-size:22px;font-weight:700}#loading .city{color:var(--amber);text-shadow:0 0 30px #ffaa4673,0 4px #3b2208;font-family:Playfair Display,serif;font-size:clamp(44px,8vw,96px);font-style:italic;line-height:1.05}#loading .tag{letter-spacing:.2em;color:#a78e6c;text-transform:uppercase;margin-top:10px;font-size:15px}#loading .bar{background:#2a2118;width:min(420px,80vw);height:4px}#bar-fill{background:var(--amber);width:0;height:100%;box-shadow:0 0 12px var(--amber);transition:width .2s}#load-status{color:#8d7a60;letter-spacing:.08em;font-size:14px}#start{letter-spacing:.25em;text-transform:uppercase;color:var(--amber);border:2px solid var(--amber);cursor:pointer;background:0 0;padding:12px 46px;font-family:Oswald;font-size:22px}#start:hover{background:var(--amber);color:var(--ink)}#start-buttons{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}#new-game{letter-spacing:.2em;text-transform:uppercase;color:#a78e6c;cursor:pointer;background:0 0;border:1px solid #5a4a36;padding:12px 26px;font-family:Oswald;font-size:16px}#new-game:hover{color:var(--amber);border-color:var(--amber)}#save-info{color:#8d7a60;letter-spacing:.06em;min-height:18px;font-size:14px}#loading .touch-note{display:none}body.touch #loading .touch-note{display:inline}#loading .controls{text-align:center;color:#7f6d55;letter-spacing:.03em;max-width:640px;padding:0 16px;font-size:13px;line-height:1.7}#loading .controls b{color:#b89a70;font-weight:600}#hud{pointer-events:none;z-index:5;text-shadow:0 2px #000,0 0 8px #000c;position:fixed;inset:0}#topright{text-align:right;position:absolute;top:18px;right:24px}#money{color:#9fd48a;letter-spacing:.02em;font-size:40px;font-weight:700;line-height:1}#wanted{color:var(--amber);letter-spacing:2px;min-height:36px;margin-top:4px;font-size:30px}#wanted .off{color:#ffffff1f}#wanted.flash{animation:.5s steps(2,end) infinite flash}@keyframes flash{50%{opacity:.35}}#health{margin-top:2px;font-size:20px}#hp{color:#e46a5d}#armor{color:#8fb7e8;margin-left:10px}#weapon{color:#d9c7a6;letter-spacing:.06em;margin-top:4px;font-size:18px}#pager{border-left:3px solid var(--amber);min-width:360px;max-width:70vw;color:var(--paper);letter-spacing:.02em;opacity:0;background:#0c0a08c7;padding:8px 18px;font-size:18px;transition:opacity .3s;position:absolute;top:18px;left:50%;transform:translate(-50%)}#pager.show{opacity:1}#pager .from{color:var(--amber);letter-spacing:.15em;text-transform:uppercase;font-size:13px;display:block}#mission-timer{color:var(--amber);font-size:30px;position:absolute;top:92px;left:50%;transform:translate(-50%)}#bigtext{text-align:center;opacity:0;width:100%;color:var(--amber);font-family:Playfair Display,serif;font-size:clamp(40px,7vw,86px);font-style:italic;transition:opacity .4s;position:absolute;top:38%}#bigtext.show{opacity:1}#bigtext.red{color:var(--red)}#place{position:absolute;bottom:26px;left:260px}#area{color:var(--amber);opacity:0;font-family:Playfair Display,serif;font-size:30px;font-style:italic;transition:opacity .8s}#area.show{opacity:1}#street{color:#cdb996;letter-spacing:.05em;font-size:18px}#clock{color:#cdb996;letter-spacing:.1em;font-size:22px;position:absolute;top:18px;left:24px}#radio{color:var(--amber);opacity:0;white-space:nowrap;font-family:Playfair Display,serif;font-size:26px;font-style:italic;transition:opacity .5s;position:absolute;top:64px;left:50%;transform:translate(-50%)}#radio.show{opacity:1}#radar{border-radius:50%;width:220px;height:220px;position:absolute;bottom:20px;left:20px;box-shadow:0 0 0 3px #14100ce6,0 0 0 5px #ffb65c59,0 6px 24px #000000b3}#hint{color:#e6d5b5;opacity:0;background:#0c0a0899;padding:4px 14px;font-size:17px;transition:opacity .3s;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}#hint.show{opacity:1}#bigmap{z-index:10;background:#050505f0;position:fixed;inset:0}#bigmap canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}#bigmap canvas:active{cursor:grabbing}#bigmap button{width:44px;height:44px;color:var(--amber);cursor:pointer;background:#0c0a08d9;border:1px solid #ffb65c73;font:600 22px/1 Oswald,sans-serif}#bigmap button:hover{background:#281e12e6}#bigmap .map-close{position:absolute;top:18px;left:22px}#bigmap .map-btns{flex-direction:column;gap:8px;display:flex;position:absolute;bottom:56px;right:22px}#bigmap .legend{white-space:nowrap;color:#a38c6a;letter-spacing:.1em;pointer-events:none;background:#080604d1;padding:4px 14px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}#bridges-list{border-left:3px solid var(--amber);color:#cdb996;background:#0c0a08cc;min-width:280px;padding:10px 16px;font-size:15px;line-height:1.6;position:absolute;top:18px;right:22px}#bridges-list .t{color:var(--amber);letter-spacing:.15em;text-transform:uppercase;font-size:13px}#bridges-list .row{justify-content:space-between;gap:18px;display:flex}#bridges-list .up{color:#e46a5d}#bridges-list .held{color:#ffb65c}#bridges-list .ok{color:#9fd48a}#touch{z-index:8;pointer-events:none;position:fixed;inset:0}#touch button,#stick-zone{pointer-events:auto}#stick-zone{touch-action:none;width:46%;height:72%;position:absolute;bottom:0;left:0}#stick-base{opacity:0;background:#0c0a0840;border:2px solid #ffb65c59;border-radius:50%;width:124px;height:124px;margin:-62px 0 0 -62px;transition:opacity .15s;position:absolute}#stick-base.on{opacity:1}#stick-knob{background:#ffb65c73;border:2px solid #ffb65ccc;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%}#touch-buttons{right:calc(14px + env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));grid-template:".horn radio"62px". .alt"62px".car fire"92px/62px 62px 92px;gap:8px;display:grid;position:absolute}.tb{letter-spacing:.06em;text-transform:uppercase;color:var(--paper);touch-action:none;-webkit-tap-highlight-color:transparent;background:#0c0a088c;border:2px solid #ffb65c73;border-radius:50%;padding:0;font-family:Oswald;font-size:12px}.tb[data-id=fire]{background:#3c0c0a80;border-color:#e46a5dcc;grid-area:fire;font-size:15px}.tb[data-id=car]{grid-area:car}.tb[data-id=brake],.tb[data-id=weapon]{grid-area:alt}.tb[data-id=horn]{grid-area:horn}.tb[data-id=radio]{grid-area:radio}.tb.down{color:var(--ink);background:#ffb65c73}#touch.in-car .only-foot,#touch.on-foot .only-car{display:none}#touch-top{top:calc(12px + env(safe-area-inset-top));gap:10px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.tb.small{border-radius:6px;padding:6px 12px;font-size:12px}body.touch #radar{width:124px;height:124px;top:150px;bottom:auto;left:12px}body.touch #place{top:282px;bottom:auto;left:16px}body.touch #clock{font-size:18px;top:14px;left:16px}body.touch #hint{bottom:170px}body.touch #area{font-size:22px}body.touch #street{font-size:14px}body.touch #pager{width:min(92vw,520px);min-width:0;font-size:15px;top:52px}body.touch #radio{font-size:20px;top:104px}body.touch #topright{top:12px;right:14px}body.touch #money{font-size:26px}body.touch #wanted{min-height:24px;font-size:20px}body.touch #health,body.touch #weapon{font-size:15px}body.touch #bridges-list{min-width:0;font-size:13px;top:auto;bottom:60px;right:10px}#pause{z-index:15;color:var(--amber);background:#0009;flex-direction:column;justify-content:center;align-items:center;font-family:Playfair Display,serif;font-size:64px;font-style:italic;display:flex;position:fixed;inset:0}#pause small{letter-spacing:.2em;color:#a38c6a;font-family:Oswald;font-size:16px;font-style:normal}#pause .tp,body.touch #pause .kb{display:none}body.touch #pause .tp{display:inline}@media (width<=700px){#radar{width:150px;height:150px}#place{bottom:185px;left:20px}#money{font-size:30px}}
