*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#0d2c38;color:#fff;font-family:Trebuchet MS,Arial,sans-serif}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:none}button:focus-visible{outline:3px solid #ffe487;outline-offset:4px}#game{width:100%;height:100%;position:relative;overflow:hidden;user-select:none;touch-action:none}canvas{display:block;width:100%;height:100%}.hud{position:absolute;inset:max(18px,env(safe-area-inset-top)) 24px auto;display:flex;align-items:center;gap:12px;pointer-events:none}.hud>*{pointer-events:auto}.location,.stats,.round{background:linear-gradient(155deg,#21566beF,#103645ef);border:2px solid #edffffdb;box-shadow:0 3px 0 #062c3e77,0 5px 18px #052c4044}.location{border-radius:17px;padding:12px 22px 11px 14px;display:flex;gap:12px;align-items:center;min-width:220px}.pin{color:#ffd060;font-size:28px;text-shadow:0 3px 0 #a6661a}.location strong{font-size:20px;font-style:italic;letter-spacing:1px}.location small{display:block;margin-top:5px;font-weight:bold;font-size:16px}.location small span{font-size:10px;letter-spacing:1.4px;color:#b7dde1}.route{height:13px;flex:1;max-width:500px;margin:0 auto;background:#0f364bd9;border:2px solid white;border-radius:20px;box-shadow:0 3px 0 #07334577;position:relative}.route span{display:block;width:0%;height:100%;border-radius:20px;background:linear-gradient(#8bfff0,#00bba7)}.route b{position:absolute;right:-7px;top:-15px;font-size:30px;text-shadow:0 2px #123}.stats{border-radius:30px;padding:7px 17px 7px 8px;display:flex;align-items:center;gap:12px}.stats strong{font-size:25px;font-style:italic;min-width:30px}.stats small{font-size:14px;color:#c5e3e7;border-left:1px solid #84aeb5;padding-left:12px}.coin-icon{border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-size:23px;color:#fff3a2;border:2px solid #ffe88b;background:linear-gradient(#ffd449,#e39b16);box-shadow:0 2px 0 #9d650c}.round{width:49px;height:49px;border-radius:50%;font-size:23px;font-weight:bold}.controls{position:absolute;bottom:max(22px,env(safe-area-inset-bottom));left:26px;right:26px;display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none}.controls button{pointer-events:auto}.pedals{display:flex;gap:15px}.pedal{width:91px;height:100px;border-radius:25px;background:linear-gradient(135deg,#173b5388,#102c3a9c);border:2px solid #e9ffffb5;box-shadow:inset 0 1px 12px #ffffff1c,0 4px 0 #153a4877;display:flex;flex-direction:column;align-items:center;justify-content:center}.pedal svg{width:55px;height:55px;fill:#d9edf0;filter:drop-shadow(0 3px 2px #102e38)}.pedal small{font-size:10px;letter-spacing:1.5px;font-weight:bold;color:#d3ecee}.pedal.active{background:#24bbae99;transform:translateY(3px)}#boost{width:124px;height:124px;border-radius:50%;background:radial-gradient(at 35% 20%,#20c6cc,#008896 60%,#075167);border:4px solid #edffff;box-shadow:0 0 0 5px #087f9590,inset 0 0 0 3px #77f9f6,0 8px 18px #00354577;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}#boost b{font-size:29px;line-height:29px;letter-spacing:-8px;margin-right:5px}#boost strong{font-size:19px;font-style:italic;text-shadow:0 2px #034655}.boost-track{width:70px;height:11px;background:#103f52;border:1px solid #a7fffb;border-radius:4px;overflow:hidden}.boost-track i{display:block;height:100%;width:100%;background:linear-gradient(#7dfff3,#00d6d0)}#boost.active{filter:brightness(1.25);transform:scale(.96)}.hint{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:.5px;background:#0d35459c;border:1px solid #ffffff30;border-radius:20px;padding:9px 16px;white-space:nowrap;pointer-events:none}#toast{position:absolute;top:115px;left:50%;transform:translateX(-50%) translateY(-10px);background:#123e4ce8;border:1px solid #d3ffed;border-radius:25px;padding:11px 22px;opacity:0;transition:.2s;pointer-events:none;font-weight:bold;font-size:15px;white-space:nowrap}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(90deg,#092d4288,#092d4222);backdrop-filter:blur(3px)}.overlay[hidden]{display:none}.card{width:min(470px,90vw);padding:35px 38px 26px;background:linear-gradient(145deg,#183e4ff5,#0c2939f5);border:1px solid #cef5ed99;border-radius:27px;box-shadow:0 22px 100px #07263477;text-align:center}.eyebrow{font-size:10px;font-weight:bold;letter-spacing:2.6px;color:#82e6de}h1{font-size:40px;line-height:1.05;letter-spacing:-1.3px;margin:16px 0;color:#fff5d6}p{font-size:15px;line-height:1.6;color:#d3e4e7}.guide{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0;text-align:left;font-size:12px;color:#cee5e8}.guide b{display:inline-block;min-width:60px;color:#ffe2a0}.primary{display:block;width:100%;padding:15px;background:linear-gradient(#ffd574,#f1ae3e);color:#173e47;border:1px solid #ffedb6;border-radius:13px;box-shadow:0 4px 0 #986b27;font-size:18px;font-weight:bold;margin:20px 0 11px;touch-action:manipulation}.primary:hover{filter:brightness(1.08)}.primary:disabled{opacity:.7}.secondary{border:0;background:none;color:#bcebe8;text-decoration:underline;padding:10px}.note{font-size:11px;color:#98bec4;margin-bottom:0}.rotate-note{display:none}@media(max-width:750px){.hud{inset:12px 12px auto;gap:7px}.location{min-width:0;padding:8px 11px;gap:6px;border-radius:13px}.location strong{font-size:13px}.location small{font-size:13px}.location small span{font-size:8px}.pin{font-size:19px}.stats{gap:5px;padding:5px 9px 5px 5px}.stats strong{font-size:19px}.stats small{display:none}.coin-icon{width:27px;height:27px;font-size:18px}.round{width:38px;height:38px;font-size:19px}.route{max-width:180px;height:10px;margin:0 9px}.controls{left:18px;right:20px;bottom:15px}.pedal{width:70px;height:74px;border-radius:19px}.pedal svg{width:43px;height:43px}.pedal small{font-size:8px}#boost{width:94px;height:94px}#boost strong{font-size:15px}#boost b{font-size:23px;line-height:23px}.boost-track{width:54px;height:9px}.hint{display:none}.card{padding:20px 25px}h1{font-size:32px}.card p{font-size:13px}.guide{margin:12px 0}.note{display:none}#toast{top:85px;font-size:12px}}@media(orientation:portrait){.route{display:none}.hud .location{margin-right:auto}.rotate-note{position:absolute;display:block;top:82px;left:0;right:0;text-align:center;font-size:10px;color:#fff;background:#163d4b66;padding:6px;pointer-events:none}.controls{bottom:max(22px,env(safe-area-inset-bottom));left:14px;right:18px}.pedals{gap:8px}.pedal{width:65px;height:81px}.card{width:90vw}#toast{top:115px}}
[hidden]{display:none!important}
.lobby{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(110deg,#082c40ed,#143f50b8);backdrop-filter:blur(5px);padding:28px max(28px,env(safe-area-inset-right)) 20px;touch-action:pan-y}.lobby-shell{max-width:1100px;margin:auto}.lobby-header{display:flex;justify-content:space-between;align-items:center}.brand>span{font-size:9px;letter-spacing:3px;color:#a6d9d7;font-weight:bold}.brand h1{font-size:44px;margin:8px 0 20px;line-height:.95;letter-spacing:-1.5px}.brand em{font-style:italic;color:#ffd47c;font-size:36px;letter-spacing:.5px}.bank{display:flex;align-items:center;gap:10px;background:#123544c4;border:1px solid #a2d6db66;border-radius:22px;padding:12px 18px}.bank strong{font-size:28px}.bank small{color:#abd0d4;letter-spacing:1px;font-size:9px}.menu-tabs{display:flex;gap:8px;border-bottom:1px solid #81b0bc40;margin-bottom:22px;padding-bottom:13px}.menu-tabs button{border:1px solid #b3dbdc55;border-radius:20px;background:#0c2a3c88;padding:10px 22px;font-size:13px;touch-action:manipulation}.menu-tabs button[aria-selected=true]{background:#ffe1a1;color:#183d49;border-color:#fff1d0;font-weight:bold}.menu-tabs #menu-sound{margin-left:auto;border:0;color:#bddee0;background:none}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.section-heading h2{font-size:25px;font-weight:normal;margin:7px 0;color:#fff7df}.campaign-stars{font-size:20px;color:#ffdb85}.trail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.trail-card{padding:0;background:#103548;border:1px solid #8fbfc65e;border-radius:17px;overflow:hidden;text-align:left;touch-action:manipulation;transition:.18s;position:relative}.trail-card:hover:not(:disabled){transform:translateY(-3px);border-color:#ffe3a0}.trail-card.selected{border:2px solid #ffd277;box-shadow:0 0 0 3px #ffd27722}.trail-card:disabled{cursor:default}.trail-card:disabled .trail-art{filter:saturate(.3) brightness(.6)}.trail-art{height:119px;background-size:cover;background-position:center 62%;display:flex;align-items:flex-start;justify-content:space-between;padding:10px}.trail-index{width:27px;height:27px;display:grid;place-items:center;background:#123d50d9;border:1px solid #d5ebe8aa;border-radius:50%;font-size:12px;font-weight:bold}.trail-stars{color:#ffdc76;letter-spacing:2px;background:#10374bba;border-radius:12px;font-size:13px;padding:5px 7px}.trail-content{padding:13px 13px 16px}.trail-content small{font-size:8px;letter-spacing:1.2px;color:#9cc8cc}.trail-content strong{display:block;margin:6px 0;font-size:19px;color:#fff4d7}.trail-content p{font-size:11px;line-height:1.5;margin:4px 0;color:#b3d5d9;min-height:33px}.trail-status{display:block;margin-top:12px;font-size:10px;color:#ffda87}.trip-footer{margin-top:22px;display:flex;align-items:center;gap:20px;padding:17px 20px;background:#0d2d3dc4;border:1px solid #8ac3ca40;border-radius:17px}.trip-footer>div{flex:1}.trip-footer strong{font-size:17px;color:#ffe4ab;display:block;margin-bottom:6px}.trip-footer span{font-size:11px;color:#b1cfd3}.trip-footer .primary{width:auto;min-width:225px;margin:0;font-size:15px;padding:13px 20px}.save-status{font-size:10px;color:#9fc6cc;text-align:center;margin:19px 0 0}.vehicle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.vehicle-card{background:linear-gradient(145deg,#29586b88,#0c2c40d9);border:1px solid #a3d1d466;border-radius:18px;padding:14px 17px}.vehicle-card.selected{border:2px solid #ffdb8e;padding:13px 16px;box-shadow:0 0 0 3px #ffd2771a}.vehicle-preview{width:100%;height:112px;display:block}.vehicle-card small{font-size:8px;letter-spacing:1.6px;color:#a7d5d8}.vehicle-card h3{margin:6px 0;font-size:20px;color:#fff0ce}.vehicle-card p{font-size:11px;line-height:1.5;min-height:34px;margin:7px 0}.buy-car{width:100%;border:1px solid #ffe5b5;border-radius:10px;padding:10px;background:#ffd180;color:#153946;font-weight:bold;font-size:12px;touch-action:manipulation}.buy-car:disabled{opacity:.5;cursor:default}.vehicle-card.selected .buy-car{color:#a6f3dc;background:#174b50;border-color:#72bdae}.upgrade-heading{display:flex;justify-content:space-between;align-items:center;margin-top:23px}.upgrade-heading h3{font-size:18px;color:#ffe2a0;margin:0}.upgrade-heading span,.garage-note{font-size:10px;color:#a8cbd0}.upgrade-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}.upgrade{background:#0a293bb8;border:1px solid #83b9be44;border-radius:13px;padding:14px}.upgrade-top{display:flex;justify-content:space-between;font-size:13px}.tier{color:#ffdc8c;letter-spacing:3px;font-size:11px}.upgrade p{font-size:10px;line-height:1.45;min-height:29px;margin:8px 0;color:#b3d1d5}.upgrade button{border:1px solid #7ec8c5;background:#1b636b;color:#def5ec;border-radius:8px;width:100%;padding:8px;font-size:11px;touch-action:manipulation}.upgrade button:disabled{opacity:.4;cursor:default}.garage-done{width:auto;min-width:230px;margin:20px auto 0;font-size:14px;padding:12px 20px}#game.menu .hud,#game.menu .controls,#game.menu .hint,#game.menu .rotate-note{visibility:hidden}#game.menu #toast{z-index:10;top:15px}.mobile-balance{display:none}@media(max-width:800px){.lobby{padding:19px 18px}.brand h1{font-size:35px}.brand em{font-size:29px}.trail-grid{grid-template-columns:repeat(2,1fr)}.trail-art{height:95px}.trail-content p{min-height:0}.trip-footer{padding:14px}.trip-footer .primary{min-width:190px}.section-heading h2{font-size:22px}.vehicle-grid{gap:9px}.vehicle-card{padding:10px}.vehicle-card.selected{padding:9px}.vehicle-preview{height:90px}.vehicle-card h3{font-size:16px}.vehicle-card p{min-height:49px}.garage-note{display:none}.upgrade-grid{gap:8px}.upgrade{padding:10px}}@media(orientation:portrait){.lobby{padding:21px 14px}.brand>span{font-size:7px;letter-spacing:1.8px}.brand h1{font-size:31px}.brand em{font-size:26px}.bank{padding:8px 11px;gap:7px}.bank strong{font-size:21px}.bank small{display:none}.menu-tabs{gap:6px;margin-bottom:16px}.menu-tabs button{padding:9px 14px;font-size:11px}.menu-tabs #menu-sound{font-size:10px;padding:6px}.section-heading .eyebrow{font-size:8px}.section-heading h2{font-size:21px}.campaign-stars{font-size:16px}.trail-grid{gap:10px}.trail-art{height:90px}.trail-content{padding:10px}.trail-content strong{font-size:17px}.trail-content small{font-size:7px}.trail-content p{font-size:10px;min-height:46px}.trip-footer{flex-direction:column;align-items:stretch;gap:13px;margin-top:16px}.trip-footer .primary{width:100%}.vehicle-grid{grid-template-columns:1fr}.vehicle-card{position:relative;padding:13px 15px 13px 45%}.vehicle-card.selected{padding:12px 14px 12px calc(45% - 1px)}.vehicle-preview{position:absolute;left:6px;top:20px;width:41%;height:100px}.vehicle-card p{min-height:0}.upgrade-heading{display:block}.upgrade-heading span{display:block;margin-top:7px}.upgrade-grid{grid-template-columns:1fr}.upgrade p{min-height:0}.garage-done{width:100%}.save-status{margin-bottom:10px}}
.vehicle-preview{object-fit:contain;height:145px}@media(max-width:800px){.vehicle-preview{height:110px}}@media(orientation:portrait){.vehicle-preview{height:100px}}
#toast{max-width:90vw;white-space:normal;text-align:center}.trip-footer .primary{white-space:normal}
.balance-controls{position:absolute;right:29px;bottom:157px;display:none;gap:10px}.balance-controls button{width:40px;height:38px;border-radius:12px;border:1px solid #d3eeedaa;background:#164d60b8;font-size:23px}.balance-controls button.active{background:#20a8a6}#game.menu .balance-controls{visibility:hidden}@media(max-width:750px),(pointer:coarse){.balance-controls{display:flex;bottom:128px;right:23px}}
.terrain-status{position:absolute;top:108px;left:26px;background:#164959df;border:1px solid #d5ffeccc;border-radius:18px;padding:7px 14px;font-size:11px;font-weight:bold;color:#fff1be;pointer-events:none;letter-spacing:1px}#game.menu .terrain-status{visibility:hidden}#level-number{font-size:11px;letter-spacing:.5px}@media(max-width:750px){.terrain-status{top:76px;left:13px;font-size:9px;padding:5px 9px}#level-number{font-size:9px}}@media(orientation:portrait){.terrain-status{top:115px}}
.pitstop{position:absolute;right:26px;top:110px;padding:9px 13px;border:2px solid #f6dda1;border-radius:17px;background:#154956ec;box-shadow:0 3px 0 #12333f;color:#fff1c5;font-size:11px;font-weight:bold;touch-action:manipulation;z-index:2}#game.menu .pitstop{display:none}@media(max-width:750px){.pitstop{right:13px;top:76px;font-size:9px;padding:6px 9px}}@media(orientation:portrait){.pitstop{top:145px}}
/* A clear, replayable campaign finale, separate from the next-level workshop. */
.overlay.campaign-ending{z-index:20;background:radial-gradient(ellipse at center,#184e63ba,#071f36ed);backdrop-filter:blur(7px)}.campaign-ending .card{position:relative;overflow:hidden;max-width:620px;width:min(620px,92vw);padding:25px 35px 24px;border:3px solid #ffe09a;border-radius:32px;background:radial-gradient(ellipse at 50% 0,#287d80,#123e52 55%,#0d2c40);box-shadow:0 0 0 5px #ae863b55,0 18px 80px #00172599}.campaign-ending h1{color:#fff0b2;margin:8px 0 10px;font-size:39px}.finale-trophy{font-size:76px;line-height:1.2;margin:12px 0 2px;filter:drop-shadow(0 4px 0 #9e6d2b);position:relative;z-index:1}.campaign-ending .eyebrow{color:#8be6dc}.campaign-ending #dialog-copy{font-size:17px;line-height:1.45;margin:12px 0 20px;color:#e8f6e6}.finale-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 17px}.finale-stats>div{background:#082b3c88;border:1px solid #9bcfca66;border-radius:14px;padding:12px 8px}.finale-stats b{display:block;font-size:25px;color:#ffe091}.finale-stats span{display:block;font-size:8px;letter-spacing:1px;color:#acd6d3;margin-top:6px}.campaign-ending #finale-message{font-size:12px;line-height:1.5;margin:0;color:#b9dcda}.campaign-ending #play{margin-top:18px}.campaign-ending .note{display:none}.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;left:calc(var(--i)*6.4%);top:-20px;width:7px;height:13px;border-radius:2px;background:#ffd76e;opacity:0;animation:finaleConfetti 5s calc(var(--i)*-.29s) 2 ease-out}.confetti i:nth-child(3n){background:#65e6d6}.confetti i:nth-child(3n + 1){background:#ffa47c}@keyframes finaleConfetti{0%{opacity:0;transform:translateY(-20px) rotate(0)}12%{opacity:.9}85%{opacity:.65}100%{opacity:0;transform:translateY(720px) rotate(540deg)}}#campaign-finale{cursor:pointer;touch-action:manipulation;font-weight:bold;color:#ffe6a0;border-color:#ffdb85}#campaign-finale:hover{filter:brightness(1.15)}
@media(max-height:700px){.campaign-ending .card{max-height:94dvh;overflow-y:auto;padding:17px 25px}.campaign-ending h1{font-size:30px}.finale-trophy{font-size:52px;margin:6px 0}.campaign-ending #dialog-copy{font-size:14px;margin:9px 0 14px}.finale-stats{gap:8px;margin-bottom:12px}.finale-stats>div{padding:8px}.finale-stats b{font-size:21px}.campaign-ending #play{margin-top:12px}}@media(orientation:portrait){.campaign-ending .card{padding:22px}.campaign-ending h1{font-size:31px}.finale-trophy{font-size:65px}.finale-stats b{font-size:23px}.campaign-ending #dialog-copy{font-size:15px}}@media(prefers-reduced-motion:reduce){.confetti{display:none}}
