*{box-sizing:border-box} :root{color-scheme:dark;--ink:#18362f;--cream:#f3ebd5;--gold:#d5b66d} body{margin:0;background:#233e32;color:var(--cream);font:14px/1.4 system-ui,-apple-system,sans-serif;overflow:hidden} button,select{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #65e1cd;outline-offset:4px}button:disabled{cursor:wait;opacity:.65}[hidden]{display:none!important}#screen{width:100vw;height:100dvh;overflow:hidden;position:relative;container-type:size}#world3d{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none}#world{display:block;width:100%;height:100%;image-rendering:pixelated;touch-action:none}button{color:inherit;border:1px solid #e2d6a84a;background:#17362fdb;border-radius:5px;padding:9px 14px}button:hover{background:#315447}kbd{font:10px ui-monospace,monospace;border:1px solid #e8e0ba55;border-bottom-width:2px;border-radius:3px;padding:2px 5px;color:#f9edc9;margin:0 2px;white-space:nowrap}.topbar{position:absolute;top:22px;left:82px;right:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;pointer-events:none}.location-label{padding:10px 17px;background:#14352edb;border-left:3px solid var(--gold);box-shadow:0 3px 20px #142f2b44}.location-label span{display:block;font-size:9px;letter-spacing:2px;color:var(--gold);font-weight:700}.location-label strong{display:block;font-size:19px;letter-spacing:.2px;max-width:40vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.location-label small{font-size:10px;color:#cfdbc7}.top-actions{display:flex;gap:7px;pointer-events:auto;font-size:12px}.minimap{position:absolute;left:24px;bottom:53px;width:164px;border:2px solid #e6d4a58a;box-shadow:0 5px 22px #112c2a80;background:#163a30}.minimap canvas{display:block;width:160px;height:160px}.minimap>span{display:block;font-size:6px;letter-spacing:1.1px;text-align:center;padding:6px 0;color:#d7d6ad}.compass{position:absolute;right:7px;top:4px;color:white;font:700 9px monospace;text-shadow:1px 1px #1e3029}.compass span{display:block;text-align:center;font-size:15px}.speed-panel{position:absolute;right:25px;bottom:55px;text-align:right;text-shadow:0 2px 5px #152b26;background:#16352dd9;padding:13px 18px;border-right:3px solid var(--gold);min-width:134px}.speed-panel>span{font-size:8px;letter-spacing:1.7px;color:#d9cc9d}.speed-panel strong{font:600 46px/1.1 ui-monospace,monospace;letter-spacing:-3px}.speed-panel div>span{font-size:10px;margin-left:8px}.speed-panel small{font-size:10px;color:#cad3b9}.keyboard-help{position:absolute;bottom:25px;left:200px;right:200px;display:flex;gap:15px;justify-content:center;color:#eee5c9;font-size:10px;text-shadow:1px 2px 3px #12251f}.keyboard-help span{white-space:nowrap}.action-buttons{position:absolute;right:25px;bottom:190px;display:flex;gap:8px;font-size:11px}.action-buttons #brake-button{display:none}.zoom{position:absolute;left:24px;bottom:247px;display:flex;gap:5px}.zoom button{width:35px;height:30px;padding:0;font-size:19px}.attribution{position:absolute;bottom:5px;right:10px;color:#eee4c9;background:#19372cd9;padding:2px 6px;border-radius:2px;font-size:9px;text-decoration:none;z-index:5}.attribution:hover{text-decoration:underline}#notice{position:absolute;bottom:92px;left:50%;transform:translateX(-50%);background:#123d35ed;border:1px solid #e5d6aa80;border-radius:6px;padding:12px 20px;max-width:55vw;text-align:center;font-size:12px;box-shadow:0 4px 15px #0004}.touch-controls{display:none}#chooser{position:absolute;inset:0;background:linear-gradient(100deg,#0d302bf5 0%,#14372eec 45%,#18352dd8 100%);display:flex;align-items:center;justify-content:center;padding:36px 40px 55px 82px;overflow:auto}.menu-shell{width:min(1050px,100%);display:grid;grid-template-columns:1fr 1.05fr;gap:65px;align-items:center}.eyebrow{font-size:11px;letter-spacing:3.2px;color:#decd97;display:flex;gap:12px;align-items:center;font-weight:700}.live-dot{width:7px;height:7px;background:#e0bf70;border-radius:50%;box-shadow:0 0 0 5px #d8bf7020}h1{font:500 clamp(40px,5vw,72px)/1.04 Georgia,serif;letter-spacing:-2px;margin:26px 0 20px}h1 em{color:#dbbd7a;font-weight:400}.intro>p{color:#bfccba;font-size:15px;line-height:1.8}.map-badge{display:flex;gap:12px;align-items:center;margin-top:40px;color:#e5dfc3;font-size:11px}.map-badge>span{border:1px solid #cbb87b55;font-size:23px;width:39px;height:39px;display:grid;place-items:center;color:#dabd78}.map-badge small{display:block;color:#a6b6a4;font-size:10px;margin-top:4px}.setup{background:#102a2466;border:1px solid #d0cc9c29;border-radius:9px;padding:30px;box-shadow:0 22px 70px #071c2244}.step-label{font-size:9px;letter-spacing:1.6px;color:#d7d2b8;display:block;font-weight:700}.step-label>span{color:#d4b76d;font:10px ui-monospace,monospace;margin-right:10px}select{width:100%;margin-top:12px;background:#f1e8ce;color:#21372b;padding:12px 14px;border:0;border-radius:4px;font-size:16px;font-weight:600}#map-details{font-size:10px;color:#b0c3af;margin:9px 0 26px}fieldset{padding:0;margin:0;border:0;min-width:0}.themes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0 23px}.theme{text-align:left;padding:0 0 12px;background:#1a3b30;border:1px solid #79846966;overflow:hidden;border-radius:5px;transition:border-color .15s}.theme.selected{border:2px solid #d5bc76;padding-bottom:11px;background:#294433}.theme-scene{height:92px;background:#677749;position:relative;overflow:hidden}.theme-scene:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,#15281509 3px 4px);pointer-events:none}.mini-road{position:absolute;width:46px;height:150px;background:#555966;left:20px;top:-20px;transform:rotate(28deg);border:4px solid #c3bd98;box-shadow:0 0 0 8px #8a9272}.modern .mini-road:after{content:'';position:absolute;top:0;bottom:0;left:17px;border-left:2px dashed #dbc17c}.mini-house{position:absolute;right:18px;top:12px;width:56px;height:45px;background:repeating-linear-gradient(0deg,#ae7056 0 3px,#805747 3px 4px);border:3px solid #493f30;box-shadow:5px 6px #b1a48c,12px 14px #152e2544;transform:rotate(10deg)}.mini-house:after{content:'';position:absolute;left:0;right:0;top:18px;border-top:2px solid #e7a974}.mini-tree{position:absolute;right:30px;bottom:8px;width:23px;height:23px;border-radius:50%;background:#5f823f;box-shadow:-5px -3px #4d713b,4px 3px #36572c,8px 8px #1c352b4a}.mini-car{position:absolute;left:32px;top:34px;width:15px;height:30px;background:linear-gradient(#2f4949 0 15%,#21b2a9 15% 30%,#29454a 30% 47%,#26bdb4 47% 68%,#284345 68% 80%,#26bdb4 80%);border:2px solid #163e37;border-radius:3px;transform:rotate(28deg);box-shadow:3px 3px #18362f77}.medieval .mini-road{background:#aa8d5e;border-color:#8f8057;box-shadow:0 0 0 5px #75844f}.medieval .mini-house{background:repeating-linear-gradient(80deg,#a58c54 0 2px,#c3aa6e 2px 4px);border-color:#645231;box-shadow:5px 6px #aa9a73,12px 14px #152e2544}.medieval .mini-house:after{border-color:#6f5933}.mini-horse{position:absolute;left:29px;top:33px;width:13px;height:27px;background:#a7774b;border:2px solid #694c34;border-radius:45%;transform:rotate(28deg);box-shadow:3px 3px #18362f77}.mini-horse:before{content:'';position:absolute;left:0;top:-9px;width:7px;height:13px;border-radius:3px;background:#8a603e}.mini-horse:after{content:'';position:absolute;left:-2px;right:-2px;top:9px;height:8px;background:#2fa99a}.theme-name{display:block;font:500 18px Georgia,serif;margin:11px 11px 5px}.theme small{display:block;font-size:8px;color:#bfd0b8;margin:0 11px}.check{float:right;color:#e1c77b;visibility:hidden;font:14px system-ui}.selected .check{visibility:visible}#start{display:flex;justify-content:space-between;align-items:center;width:100%;background:#e0c384;color:#263b2e;border:0;padding:14px 17px;font-size:14px;font-weight:700;box-shadow:0 3px 0 #917744}#start:hover{background:#efd49a}#start span{font-size:23px;line-height:1}#load-status{font-size:9px;text-align:center;color:#aabda5;margin:12px 0 20px}.menu-controls{display:flex;gap:13px;flex-wrap:wrap;border-top:1px solid #c1d0ac24;padding-top:15px;font-size:8px;color:#acbca5}.menu-controls kbd{font-size:8px}.menu-footer{position:absolute;bottom:24px;left:82px;right:40px;display:flex;justify-content:space-between;font-size:8px;color:#b2c0a7;letter-spacing:1.3px}.menu-footer span:last-child{letter-spacing:0}
@media(max-width:850px){.menu-shell{gap:28px}.setup{padding:22px}.intro>p{font-size:12px}.theme-name{font-size:16px}.theme small{font-size:7px}.keyboard-help{gap:8px;font-size:8px;left:160px;right:150px;flex-wrap:wrap}.minimap{width:124px}.minimap canvas{width:120px;height:120px}.zoom{bottom:207px}.speed-panel{min-width:110px;padding:10px}.speed-panel strong{font-size:36px}.action-buttons{bottom:175px}}
@media(any-pointer:coarse){.touch-controls{display:flex;position:absolute;left:20px;right:20px;bottom:28px;justify-content:space-between;pointer-events:none}.steering,.pedals{display:flex;gap:9px;pointer-events:auto}.touch-controls button{width:60px;height:58px;font-size:20px;touch-action:none;background:#14362fd9;border:1px solid #f4e1ac77}.touch-controls button.active,[data-control].active{background:#a9985b;color:#14362f}.keyboard-help{display:none}.minimap{bottom:108px}.speed-panel{bottom:108px}.zoom{bottom:260px}.action-buttons{bottom:225px}.action-buttons #brake-button{display:block;touch-action:none}}
@media(max-width:600px){#chooser{padding:22px 18px 38px 70px;align-items:flex-start}.menu-shell{grid-template-columns:1fr;gap:17px;max-width:420px}.intro h1{font-size:40px;margin:14px 0 0;letter-spacing:-1px}.intro h1 br{display:none}.intro h1 em{display:block}.eyebrow{font-size:8px;letter-spacing:2px}.intro>p,.map-badge,.menu-footer{display:none}.setup{padding:18px}.theme-scene{height:77px}.themes{gap:8px;margin-bottom:17px}.theme-name{font-size:16px;margin:9px 8px 5px}.theme small{font-size:7px;margin:0 8px}.mini-house{right:10px;width:38px;height:35px}.mini-tree{right:14px;width:18px;height:18px}.mini-road{left:13px}.mini-car,.mini-horse{left:25px}.step-label{font-size:8px;letter-spacing:1px}#map-details{margin-bottom:19px;font-size:9px}.menu-controls{gap:8px;font-size:7px}#load-status{margin-bottom:12px}.topbar{top:16px;left:70px;right:12px;gap:7px;flex-wrap:wrap}.location-label{padding:7px 10px}.location-label strong{font-size:15px;max-width:60vw}.location-label small{font-size:8px}.top-actions{font-size:10px}.top-actions button{padding:7px 9px}.top-actions kbd{display:none}.speed-panel{right:16px;min-width:100px}.minimap{left:16px;width:104px}.minimap canvas{width:100px;height:100px}.minimap>span{font-size:4.5px;letter-spacing:.8px}.zoom{left:16px;bottom:234px}.action-buttons{right:16px;bottom:215px;font-size:10px}.action-buttons kbd{display:none}.touch-controls{left:16px;right:16px}.touch-controls button{width:55px;height:55px}.touch-controls .pedals{gap:6px}.keyboard-help{display:none}#notice{bottom:285px;max-width:70vw;width:max-content;font-size:10px}.attribution{font-size:7px}}
@media(max-height:500px){#chooser{padding:15px 24px 25px 75px;align-items:center}.menu-shell{grid-template-columns:1fr 1.3fr;gap:25px;max-width:900px}.intro h1{font-size:39px}.intro>p,.map-badge,.menu-footer{display:none}.setup{padding:14px}.eyebrow{font-size:8px}.theme-scene{height:47px}.themes{margin:7px 0 12px}.theme{padding-bottom:7px}.theme.selected{padding-bottom:6px}.theme-name{font-size:15px;margin:5px 9px}.theme small{font-size:7px}#map-details{margin:5px 0 12px}select{padding:7px 10px;margin-top:7px;font-size:14px}#start{padding:9px 14px}.menu-controls{padding-top:8px;font-size:7px}#load-status{margin:8px 0;font-size:8px}.topbar{top:12px}.location-label strong{font-size:14px}.minimap{width:92px;bottom:100px}.minimap canvas{width:88px;height:88px}.minimap>span{display:none}.speed-panel{bottom:100px;padding:7px 11px}.speed-panel strong{font-size:30px}.zoom{display:none}.action-buttons{bottom:28px;right:calc(50% - 85px)}.touch-controls button{height:49px;width:54px}#notice{bottom:105px}.keyboard-help{display:none}}
#nav-panel{position:absolute;left:198px;bottom:56px;display:flex;align-items:center;gap:8px;background:#14352ee6;border-left:3px solid #29c7b4;padding:6px 6px 6px 12px;font-size:13px;font-weight:600;box-shadow:0 3px 14px #112c2a66}#nav-panel button{padding:3px 8px;font-size:12px}#map-hint{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);display:flex;align-items:center;gap:14px;background:#14352ef0;border:1px solid #e2d6a84a;border-radius:6px;padding:8px 8px 8px 16px;font-size:12px;max-width:calc(100vw - 32px);box-shadow:0 4px 16px #0005}#map-hint button{white-space:nowrap}#hud.map-open .minimap,#hud.map-open .speed-panel,#hud.map-open .keyboard-help,#hud.map-open .touch-controls,#hud.map-open .action-buttons,#hud.map-open #notice{display:none!important}#hud.map-open #nav-panel{left:82px;bottom:auto;top:128px}
@media(max-width:850px){#nav-panel{left:158px}}
@media(any-pointer:coarse){#nav-panel{bottom:111px}}
@media(max-width:600px){#nav-panel{left:128px;font-size:11px}#map-hint{font-size:10px;bottom:16px}#map-hint span{display:none}}
@media(max-height:500px){#nav-panel{left:124px;bottom:103px}}
#money{align-self:center;background:#14352ee6;border:1px solid #e2d6a84a;border-radius:5px;padding:8px 12px;font-weight:700;color:#f3dc92;white-space:nowrap}
#mission-panel{position:absolute;top:96px;left:50%;transform:translateX(-50%);width:min(520px,calc(100vw - 200px));background:#14352ef0;border-left:3px solid #e8584a;padding:9px 12px;box-shadow:0 4px 16px #0005}.mission-head{display:flex;align-items:center;gap:8px}.mission-head strong{font-size:14px}.mission-head small{color:#cfdbc7;font-size:11px;flex:1}.mission-head button{padding:3px 9px;font-size:11px}#mission-icon{font-size:20px}#mission-text{margin:5px 0 0;font-size:14px;line-height:1.35}
#lights-button[aria-pressed=true]{background:#2c5fb8;border-color:#9cc4ff}
#siren-button[aria-pressed=true]{background:#b8342c;border-color:#ffb0a8}
#gallery{position:absolute;inset:0;background:#0c2a25ee;display:flex;align-items:center;justify-content:center;padding:30px 24px 30px 82px;overflow:auto;z-index:4}.gallery-shell{width:min(980px,100%)}#gallery header{display:flex;align-items:center;gap:16px}#gallery h2{font:500 34px Georgia,serif;margin:0;flex:1}#gallery-money{font-weight:700;color:#f3dc92;font-size:16px}.gallery-intro{color:#bfccba;margin:6px 0 18px}#gallery-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.mission-card{background:#173c33;border:1px solid #d0cc9c33;border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:8px}.mission-card .icon{font-size:34px;line-height:1}.mission-card h3{margin:0;font:500 20px Georgia,serif}.mission-card p{margin:0;color:#c9d6c2;font-size:12px;flex:1}.mission-card small{color:#d9c78f;font-size:11px}.mission-card button{background:#e0c384;color:#263b2e;border:0;font-weight:700}.mission-card button:disabled{background:#6f7d6c;color:#e8e4d0}
@media(max-width:600px){#mission-panel{top:108px;width:calc(100vw - 32px)}#mission-text{font-size:12px}#money{padding:6px 8px;font-size:11px}#gallery{padding:70px 16px 20px}#gallery h2{font-size:26px}}
@media(max-height:500px){#mission-panel{top:62px}#gallery{padding:16px 24px 16px 76px}}

[data-control]{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
