:root{--ink: #2a2420;--cream: #fff6d5;--green: #1b998b;--gold: #ffd166;--red: #e63946;--pad: max(10px, env(safe-area-inset-left))}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#b5b47a;color:var(--cream);font-family:Arial Rounded MT Bold,Trebuchet MS,system-ui,sans-serif;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;overscroll-behavior:none}#app,#game{position:fixed;inset:0}#game canvas{display:block}#ui{position:fixed;inset:0;pointer-events:none}#ui>*{pointer-events:auto}.title{position:absolute;inset:0;display:grid;place-items:center;padding:16px;background:repeating-linear-gradient(135deg,rgba(0,0,0,.06) 0 18px,transparent 18px 36px),linear-gradient(160deg,#009b3a 0% 38%,#fed100 38% 62%,#111 62%);transition:opacity .35s;overflow-y:auto}.title.gone{opacity:0;pointer-events:none}.title-card{position:relative;width:min(460px,100%);background:var(--cream);color:var(--ink);border:5px solid var(--ink);border-radius:22px;box-shadow:8px 10px 0 var(--ink);padding:22px 20px 16px;text-align:center;overflow:hidden}.title-sun{position:absolute;top:-70px;right:-60px;width:170px;height:170px;border-radius:50%;background:var(--gold);border:5px solid var(--ink)}.title h1{position:relative;margin:0;font-family:Impact,Arial Black,sans-serif;font-size:clamp(64px,20vw,104px);letter-spacing:4px;line-height:.95;color:#fff;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;text-shadow:5px 6px 0 var(--red);transform:rotate(-3deg)}.title h2{position:relative;margin:6px 0 0;font-size:20px;text-transform:uppercase;letter-spacing:1px}.title-tag{margin:6px 0 14px;font-size:14px;opacity:.8}.title-start{font:inherit;font-family:Impact,Arial Black,sans-serif;font-size:28px;letter-spacing:1px;width:100%;padding:14px 10px;color:#fff;background:var(--green);border:4px solid var(--ink);border-radius:14px;box-shadow:0 6px 0 var(--ink);cursor:pointer}.title-start:active:not(:disabled){transform:translateY(4px);box-shadow:0 2px 0 var(--ink)}.title-start:disabled{background:#8a8a8a;font-size:20px}.title-status{min-height:1em;margin:8px 0 0;color:var(--red);font-size:13px}.title-tip{margin:6px 0 10px;padding:8px 10px;border:2px dashed var(--ink);border-radius:10px;font-size:14px;font-style:italic}.title-keys,.title-attrib,.title-wutliss{margin:6px 0 0;font-size:11.5px;opacity:.75}.title-attrib a{color:inherit}.title-legal{margin:4px 0 0;font-size:12px;opacity:.8}.title-legal a,.title-legal button{font:inherit;color:inherit;background:none;border:0;padding:4px 2px;text-decoration:underline;cursor:pointer}.title.has-consent{padding-bottom:132px}.consent-bar{position:fixed;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:5;width:min(460px,calc(100% - 32px));display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--cream);color:var(--ink);border:3px solid var(--ink);border-radius:14px;box-shadow:4px 5px 0 var(--ink);font-size:13px;line-height:1.35}.consent-bar p{margin:0;flex:1}.consent-btns{display:flex;flex-direction:column;gap:6px}.consent-btns button{font:inherit;font-weight:700;padding:7px 12px;border:2px solid var(--ink);border-radius:10px;cursor:pointer;white-space:nowrap}.consent-ok{background:var(--green);color:#fff}.consent-no{background:transparent;color:var(--ink)}.credits{position:absolute;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:#14100c99}.credits-card{position:relative;width:min(440px,100%);max-height:100%;overflow-y:auto;padding:20px 20px 14px;background:var(--cream);color:var(--ink);border:5px solid var(--ink);border-radius:18px;box-shadow:6px 8px 0 var(--ink)}.credits-card h2{margin:0;font-family:Impact,Arial Black,sans-serif;font-weight:400;font-size:32px}.credits-tag{margin:2px 0 12px;font-style:italic;font-size:14px}.credits-card dl{margin:0;font-size:14px}.credits-card dt{margin-top:8px;font-weight:700}.credits-card dd{margin:0}.credits-card a{color:var(--green)}.credits-legal{margin:16px 0 0;font-size:14px}.credits-close{position:absolute;top:10px;right:10px;width:40px;height:40px;font-size:18px;color:var(--ink);background:var(--gold);border:3px solid var(--ink);border-radius:50%;cursor:pointer}.hud{position:absolute;inset:0;pointer-events:none;--panel: rgba(42, 36, 32, .84);--top: max(10px, env(safe-area-inset-top));--right: max(10px, env(safe-area-inset-right))}.hud button{pointer-events:auto}.hud-left{position:absolute;top:var(--top);left:var(--pad);width:calc(100% - 172px - var(--pad));max-width:300px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.hud-loc{max-width:100%;padding:6px 11px 7px;background:var(--panel);border:3px solid var(--ink);border-radius:12px;box-shadow:3px 4px #00000059}.hud-road{font-family:Impact,Arial Black,sans-serif;font-size:18px;letter-spacing:.4px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-district{font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-stats{width:100%;padding:5px 10px 8px;background:var(--panel);border:3px solid var(--ink);border-radius:12px;box-shadow:3px 4px #00000059}.hud-cash{font-family:Impact,Arial Black,sans-serif;font-size:26px;line-height:1.05;color:#9be564;-webkit-text-stroke:1px var(--ink);text-shadow:2px 2px 0 var(--ink)}.hud-cash.tick{transform-origin:left center;animation:cash-tick .35s ease-out}@keyframes cash-tick{30%{transform:scale(1.15) rotate(-3deg);color:#fff}}.hud-meter{margin-top:4px}.hud-meter-top{display:flex;gap:6px;align-items:baseline;font-size:11px;line-height:1.15}.hud-meter-top b{font-family:Impact,Arial Black,sans-serif;font-weight:400;letter-spacing:1px;color:var(--gold)}.hud-meter-top em{font-style:normal;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hud-bar{height:9px;margin-top:2px;border:2px solid var(--ink);border-radius:6px;background:#57504a;overflow:hidden}.hud-bar i{display:block;height:100%;width:100%;background:#9be564;transition:width .25s}.hud-gas[data-level=low] .hud-bar i{background:var(--gold)}.hud-gas[data-level=pray] .hud-bar i{background:var(--red)}.hud-gas[data-level=pray] em{color:#ff8a8a;font-weight:700;animation:blink .8s steps(2,start) infinite}.hud-hp .hud-bar i{background:#6cc4ff}.hud-hp[data-state="1"] .hud-bar i{background:#9be564}.hud-hp[data-state="2"] .hud-bar i{background:var(--gold)}.hud-hp[data-state="3"] .hud-bar i,.hud-hp[data-state="4"] .hud-bar i{background:var(--red)}.hud-hp[data-state="4"] em{color:#ffd0a0;animation:wobble .9s ease-in-out infinite;display:inline-block}@keyframes blink{to{opacity:.35}}@keyframes wobble{25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}}.hud-cabin{--bump: 8px;position:relative;display:flex;align-items:center;gap:8px;padding:5px 9px;background:var(--cream);color:var(--ink);border:3px solid var(--ink);border-radius:14px;box-shadow:3px 4px #00000059;font-size:10.5px;max-width:100%}.cab-status>span{opacity:.75;font-style:italic;line-height:1.1}.cab-seats{display:flex;flex-direction:column;gap:3px;flex:none}.cab-row{display:flex;gap:3px}.seat{width:14px;height:12px;border-radius:4px 4px 2px 2px;background:#c9b79a;border:2px solid var(--ink);position:relative}.seat.driver i{position:absolute;left:1px;top:-5px;width:9px;height:9px;border-radius:50%;background:#7a4a2a;border:2px solid var(--ink)}.hud-cabin.bump .cab-seats{animation:cab-bump .45s cubic-bezier(.3,1.6,.5,1)}.hud-cabin.bump{animation:cab-shake .35s ease-out}@keyframes cab-bump{25%{transform:translateY(calc(var(--bump) * -1)) rotate(-4deg)}55%{transform:translateY(calc(var(--bump) * .3)) rotate(2deg)}}@keyframes cab-shake{20%{transform:translate(-3px) rotate(-2deg)}50%{transform:translate(3px) rotate(1.5deg)}}.hud-cabin{align-items:flex-start}.cab-status{min-width:0;flex:1}.cab-status span[hidden]{display:none}.cab-list{display:flex;flex-direction:column;gap:3px}.cab-p{pointer-events:auto;display:grid;grid-template-columns:10px 1fr;grid-template-rows:auto 4px;column-gap:5px;align-items:center;width:100%;min-width:0;padding:2px 5px 3px 4px;font:inherit;text-align:left;color:var(--ink);background:#2a242012;border:2px solid transparent;border-radius:8px;cursor:pointer}.cab-p.target{background:#fff;border-color:var(--ring)}.cab-p .dot{width:10px;height:10px;border-radius:50%;background:var(--ring);border:2px solid var(--ink);grid-row:1 / span 2}.cab-p-txt{min-width:0;line-height:1.1}.cab-p-txt b,.cab-p-txt small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cab-p-txt b{font-family:Impact,Arial Black,sans-serif;font-weight:400;font-size:12.5px;letter-spacing:.2px}.cab-p-txt small{font-size:9.5px;opacity:.8}.cab-p .face{font-style:normal;font-weight:700}.cab-p[data-mood=angry] .face{color:var(--red)}.cab-p.urgent .info{color:var(--red);font-weight:700;animation:blink .6s steps(2,start) infinite}.cab-p .pbar{grid-column:2;height:4px;border-radius:2px;background:#2a242033;overflow:hidden}.cab-p .pbar i{display:block;height:100%;background:var(--ring);transition:width .3s}.seat .head{position:absolute;left:0;top:-6px;width:10px;height:10px;border-radius:50%;border:2px solid var(--ink);box-shadow:0 0 0 1.5px var(--ink)}.seat .head.kid{left:2px;top:-3px;width:7px;height:7px}.seat .cargo{position:absolute;inset:-3px 0 1px;border:2px solid var(--ink);border-radius:3px}.seat .cargo.bags{background:repeating-linear-gradient(45deg,#2f8f4e 0 3px,#f2c14e 3px 6px)}.seat .cargo.fridge{inset:-6px -2px 0;background:#f4f4f0}.hud-speech{position:relative;max-width:100%;padding:5px 9px 6px;background:#fff;color:var(--ink);border:3px solid var(--ink);border-radius:12px;box-shadow:3px 4px #00000059;line-height:1.15;opacity:0;transform:scale(.85);transform-origin:20px 0;transition:opacity .18s,transform .18s}.hud-speech:before{content:"";position:absolute;left:16px;top:-10px;border:8px solid transparent;border-bottom-color:var(--ink);border-top:0}.hud-speech.show{opacity:1;transform:scale(1)}.sp-who{display:block;font-family:Impact,Arial Black,sans-serif;font-size:10px;letter-spacing:.6px;text-transform:uppercase;-webkit-text-stroke:.3px var(--ink)}.sp-pat{display:block;font-size:14px}.sp-en{display:block;margin-top:2px;font-size:10.5px;opacity:.7}.sp-en[hidden]{display:none}.hud-btns{display:flex;gap:5px}.hud-subs{font:inherit;font-size:12px;padding:5px 7px;color:var(--ink);background:var(--cream);border:3px solid var(--ink);border-radius:10px;cursor:pointer}.hud-subs.off{opacity:.6}.hud-right{position:absolute;top:var(--top);right:var(--right);display:flex;flex-direction:column;align-items:flex-end;gap:6px}.hud-mapcol{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.hud-minimap{width:140px;height:140px;border-radius:50%;border:4px solid var(--ink);box-shadow:3px 4px #00000059;background:#6e8a4e}.hud-cam{font:inherit;font-size:12px;padding:5px 10px;color:var(--ink);background:var(--cream);border:3px solid var(--ink);border-radius:10px;cursor:pointer}.hud-bossy{display:grid;grid-template-columns:50px auto;column-gap:6px;align-items:center;width:150px;padding:5px 8px 6px 5px;background:var(--panel);border:3px solid var(--ink);border-radius:12px;box-shadow:3px 4px #00000059}.bossy-face{width:50px;height:50px}.bossy-face svg{width:100%;height:100%;overflow:visible}.hud-bossy[data-mood="3"] .bossy-face{animation:wobble .5s ease-in-out infinite}.hud-bossy[data-mood="4"] .bossy-face{animation:bossy-rage .18s linear infinite}.hud-bossy[data-mood="4"]{border-color:#7a0d0d;background:#6e1212e0}@keyframes bossy-rage{25%{transform:translate(-1px,1px) rotate(-3deg)}75%{transform:translate(1px,-1px) rotate(3deg)}}.steam{animation:steam .6s ease-out infinite}@keyframes steam{to{transform:translateY(-4px);opacity:.4}}.bossy-txt{display:flex;flex-direction:column;line-height:1.05;min-width:0}.bossy-txt small{white-space:nowrap;font-size:9px;letter-spacing:1px;color:var(--gold)}.bossy-target{font-family:Impact,Arial Black,sans-serif;font-weight:400;font-size:20px;color:#fff}.hud-clock{margin-top:2px;font-family:Impact,Arial Black,sans-serif;font-size:14px;color:var(--cream)}.hud-clock.late{color:#ff8a8a}.hud-clockbar{height:5px;margin-top:2px;border-radius:3px;background:#57504a;overflow:hidden}.hud-clockbar i{display:block;height:100%;width:0;background:var(--gold)}.bossy-line{grid-column:1 / -1;margin-top:3px;font-size:10px;text-align:center;color:#fff;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-toast{position:absolute;left:50%;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 222px);width:max-content;max-width:calc(100% - 24px);text-align:center;transform:translate(-50%) scale(.8);padding:7px 14px;background:var(--cream);color:var(--ink);border:3px solid var(--ink);border-radius:12px;box-shadow:3px 4px #00000059;font-family:Impact,Arial Black,sans-serif;font-size:17px;opacity:0;transition:opacity .2s,transform .2s}.hud-toast.show{opacity:1;transform:translate(-50%) scale(1)}.hud-speed{position:absolute;left:50%;transform:translate(-50%);bottom:calc(max(12px,env(safe-area-inset-bottom)) + 176px);display:flex;align-items:baseline;gap:4px;padding:4px 12px;background:#2a2420bf;border-radius:12px;font-family:Impact,Arial Black,sans-serif}.hud-speed b{font-size:26px;font-weight:400;min-width:2.2ch;text-align:right}.hud-speed small{font-size:12px;opacity:.8}.hud-speed.bush b{color:#9be564}.hud-fps{display:none;position:absolute;bottom:4px;left:50%;transform:translate(-50%);font-size:11px;color:#000}.hud-done{position:absolute;inset:0;display:grid;place-items:center;padding:16px;background:#14100c99;pointer-events:auto;z-index:5}.hud-done[hidden]{display:none}.done-card{width:min(360px,100%);background:var(--cream);color:var(--ink);border:5px solid var(--ink);border-radius:20px;box-shadow:8px 10px 0 var(--ink);padding:16px 18px;text-align:center;animation:done-in .4s cubic-bezier(.3,1.6,.5,1)}@keyframes done-in{0%{transform:scale(.6) rotate(-6deg);opacity:0}}.done-card h2{margin:0;font-family:Impact,Arial Black,sans-serif;font-size:40px;letter-spacing:2px;color:#fff;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:4px 4px 0 var(--red)}.done-face{width:76px;height:76px;margin:6px auto}.done-row{display:flex;justify-content:space-between;padding:4px 6px;border-bottom:2px dashed rgba(42,36,32,.3);font-size:16px}.done-row b{font-family:Impact,Arial Black,sans-serif;font-weight:400;font-size:22px}.done-card.short .done-row:first-of-type b{color:var(--red)}.done-card.ok .done-row:first-of-type b{color:var(--green)}.done-card p{margin:10px 0 12px;font-style:italic}.done-again{font:inherit;font-family:Impact,Arial Black,sans-serif;font-size:24px;width:100%;padding:10px;color:#fff;background:var(--green);border:4px solid var(--ink);border-radius:14px;box-shadow:0 6px 0 var(--ink);cursor:pointer}.done-again:active{transform:translateY(4px);box-shadow:0 2px 0 var(--ink)}.touch-controls{position:absolute;inset:auto 0 0;height:0;pointer-events:none}.touch-controls>*{pointer-events:auto;touch-action:none}.tc-steer{position:absolute;left:var(--pad);bottom:max(14px,env(safe-area-inset-bottom));width:min(44vw,240px);height:96px;border-radius:48px;background:#2a242073;border:3px solid rgba(255,246,213,.55);display:grid;place-items:center}.tc-steer span{position:absolute;bottom:6px;font-size:10px;letter-spacing:2px;opacity:.6}.tc-knob{width:64px;height:64px;border-radius:50%;background:var(--cream);border:4px solid var(--ink);transition:transform .05s}.tc-btn{position:absolute;display:grid;place-items:center;text-align:center;white-space:pre-line;font-family:Impact,Arial Black,sans-serif;color:#fff;border:4px solid var(--ink);border-radius:18px;box-shadow:0 5px 0 var(--ink);-webkit-tap-highlight-color:transparent}.tc-btn.down{transform:translateY(3px);box-shadow:0 2px 0 var(--ink);filter:brightness(1.15)}.tc-gas{right:max(12px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));width:82px;height:120px;background:var(--green);font-size:20px}.tc-brake{right:calc(max(12px,env(safe-area-inset-right)) + 94px);bottom:max(14px,env(safe-area-inset-bottom));width:76px;height:82px;background:var(--red);font-size:17px}.tc-hb{right:calc(max(12px,env(safe-area-inset-right)) + 94px);bottom:calc(max(14px,env(safe-area-inset-bottom)) + 96px);width:76px;height:56px;background:#555;font-size:12px;line-height:1.05}.tc-horn{right:max(12px,env(safe-area-inset-right));bottom:calc(max(14px,env(safe-area-inset-bottom)) + 134px);width:82px;height:52px;background:var(--gold);color:var(--ink);font-size:17px}@media(hover:hover)and (pointer:fine){.touch-controls{display:none}.hud-speed{bottom:20px}.hud-toast{bottom:70px}}@media(orientation:landscape)and (max-height:500px){.hud-minimap{width:110px;height:110px}.hud-speed{bottom:12px}.hud-toast{bottom:60px}.hud-right{flex-direction:row-reverse;align-items:flex-start}.hud-left{width:calc(100% - 340px - var(--pad));max-width:280px}.cab-status>span{display:none}.hud-speech{max-width:280px}}@media(max-width:360px)and (orientation:portrait){.hud-left{width:calc(100% - 160px - var(--pad))}.hud-minimap{width:128px;height:128px}.hud-bossy{width:138px}}.toasts{position:fixed;top:max(64px,calc(env(safe-area-inset-top) + 56px));left:50%;z-index:60;display:flex;flex-direction:column;align-items:center;gap:8px;width:min(380px,calc(100% - 24px));transform:translate(-50%);pointer-events:none}#ui>.toasts{pointer-events:none}.toast,.toast-note{position:relative;pointer-events:none;color:#2a2420;background:#fff6d5;border:4px solid #2a2420;border-radius:14px;box-shadow:4px 5px #2a2420;font-family:Arial Rounded MT Bold,Trebuchet MS,system-ui,sans-serif}.toast{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;animation:toast-in .42s cubic-bezier(.2,1.6,.4,1) both}.toast.toast-out{animation:toast-out .3s ease-in forwards}.toast-bronze{border-color:#8a4f1d}.toast-silver{border-color:#6e747b}.toast-gold{background:#ffd166}.toast-legendary{background:linear-gradient(135deg,#c9a7ff,#ffd166,#8ee3d6)}.toast-icon{font-size:34px;line-height:1}.toast-text{display:flex;flex:1;flex-direction:column;min-width:0}.toast-text b{font-family:Impact,Arial Black,sans-serif;font-size:18px;letter-spacing:.5px}.toast-text span{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.toast-stamp{padding:1px 6px;font-family:Impact,Arial Black,sans-serif;font-size:11px;letter-spacing:1px;color:#e63946;border:2px solid #e63946;border-radius:4px;transform:rotate(-12deg);animation:toast-stamp .35s .2s cubic-bezier(.3,1.8,.5,1) both}.toast-confetti{position:absolute;top:50%;left:50%;pointer-events:none}.toast-confetti i{position:absolute;width:8px;height:12px;border:1px solid #2a2420;border-radius:2px;opacity:0;animation:toast-confetti 1.1s var(--d, 0s) ease-out forwards}.toast-note{display:flex;align-items:center;gap:8px;padding:8px 10px;font-size:13px;animation:toast-in .3s ease-out both}.toast-note span{flex:1}.toast-note button{pointer-events:auto;min-width:32px;min-height:32px;font:inherit;font-weight:700;background:#ffd166;border:2px solid #2a2420;border-radius:50%;cursor:pointer}.toast-note.toast-out{animation:toast-out .3s ease-in forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(-24px) scale(.6) rotate(-4deg)}}@keyframes toast-out{to{opacity:0;transform:translateY(-16px) scale(.9)}}@keyframes toast-stamp{0%{opacity:0;transform:rotate(-12deg) scale(2.4)}}@keyframes toast-confetti{0%{opacity:1;transform:translate(0) rotate(0)}to{opacity:0;transform:translate(var(--x),calc(var(--y) + 120px)) rotate(var(--r))}}@media(prefers-reduced-motion:reduce){.toast,.toast-note,.toast-stamp{animation-duration:.01s}.toast-confetti{display:none}}.title-row{display:flex;gap:8px;margin-top:10px}.title-row button{flex:1;min-height:44px;padding:8px 6px;font-family:Impact,Arial Black,sans-serif;font-size:17px;letter-spacing:.5px;color:#2a2420;background:#ffd166;border:4px solid #2a2420;border-radius:12px;box-shadow:0 4px #2a2420;cursor:pointer}.title-row button:active{transform:translateY(3px);box-shadow:0 1px #2a2420}
