@import url('data:text/css,');
:root{font-family:Arial,Helvetica,sans-serif;color:#f8fbff;background:#0b1420;font-synthesis:none;color-scheme:dark;--gold:#ffda5a;--navy:#101e32}*{box-sizing:border-box}body{margin:0;height:100dvh;overflow:hidden;display:flex;justify-content:center;align-items:center;background:radial-gradient(ellipse at 50% 45%,#25445c 0,#122433 35%,#0b1420 75%);user-select:none;-webkit-user-select:none}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;color:inherit;border:0}button:focus-visible,canvas:focus-visible{outline:3px solid #8bdeff;outline-offset:3px}button:active{transform:translateY(2px)}[hidden]{display:none!important}#game{position:relative;width:min(100vw,480px);height:100dvh;max-height:1000px;overflow:hidden;background:#33414c;isolation:isolate;touch-action:none;box-shadow:0 0 90px #0009}#road{display:block;width:100%;height:100%;touch-action:none;outline:none}#vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 60px #0e172440}#impact{position:absolute;inset:0;pointer-events:none;border:7px solid #ff5b48;opacity:0;z-index:4;transition:opacity .15s}#impact.flash{opacity:.55}.screen{position:absolute;inset:0;display:flex;flex-direction:column;padding:20px 22px max(20px,env(safe-area-inset-bottom));z-index:5}.menu-top{display:flex;align-items:center;justify-content:space-between}.world-brand{font-size:12px;letter-spacing:2.2px;font-weight:800;color:#ffe391}.icon-button{width:43px;height:43px;border-radius:13px;background:#14263de8;box-shadow:inset 0 0 0 1px #ffffff26;font-size:21px;display:grid;place-items:center;flex-shrink:0}.icon-button svg,.small-mute svg{width:21px;height:21px}#menu{background:linear-gradient(#0b1928ea 0,#0b192859 29%,#0b192800 39%,#0b192805 48%,#0b1928ed 71%,#0b1928 100%)}.title-lockup{text-align:center;margin-top:7px;filter:drop-shadow(0 5px 1px #081424)}.title-dacat{font-size:clamp(62px,18vw,87px);line-height:1;letter-spacing:-6px;font-weight:1000;font-style:italic;color:#ffd64a;text-shadow:0 3px #b96b1d,2px 0 #101e32,-2px 0 #101e32}.title-lockup h1{font-size:clamp(25px,7vw,35px);font-weight:950;font-style:italic;letter-spacing:-1px;line-height:1;margin:8px 0 12px}.flag{color:#c0dcff;font-style:normal;font-size:.85em}.flag:first-child{display:inline-block;transform:rotate(-15deg)}.flag:last-child{display:inline-block;transform:rotate(15deg)}.title-lockup p{font-size:10px;letter-spacing:3px;font-weight:800;color:#dbebf2;margin:0}.route-label{align-self:center;margin-top:19px;background:#0b2034ce;padding:8px 13px;border:1px solid #ffffff25;border-radius:30px;font-size:9px;letter-spacing:1.8px;font-weight:700}.live-dot{display:inline-block;width:6px;height:6px;background:#8af0ac;box-shadow:0 0 9px #86f5a8;border-radius:50%;margin-right:5px}.menu-bottom{margin-top:auto}.garage-heading{display:flex;justify-content:space-between;font-size:9px;font-weight:800;letter-spacing:1.7px;color:#b4c6d5;margin-bottom:10px}.garage{display:flex;gap:7px;margin-bottom:16px}.garage-card{width:33.333%;min-width:0;border:1px solid #637c9755;border-radius:13px;background:linear-gradient(150deg,#23354b,#112134);height:144px;padding:10px 5px 7px;text-align:center;position:relative;overflow:hidden}.garage-card.active{border:1px solid #f1d16c;background:linear-gradient(160deg,#4c4530,#192a36);box-shadow:0 0 20px #f6cf4510}.garage-card.locked{filter:saturate(.7)}.garage-card small{font-size:8px;font-weight:800;letter-spacing:1px;color:#bed2e1}.garage-card canvas{width:100%;height:83px;display:block}.garage-card b{font-size:10px;display:block;line-height:1.05;margin-top:1px}.garage-card .status{font-size:8px;color:#aac1d5;display:block;margin-top:5px}.garage-card.active .status{color:#ffdc66}.primary{display:flex;align-items:center;justify-content:center;gap:24px;width:100%;min-height:56px;background:linear-gradient(#ffe889,#ffcb3e);border:1px solid #fff1b4;border-radius:13px;color:#15202b;box-shadow:0 4px 0 #a97322,0 8px 25px #0005;font-weight:900;letter-spacing:1px;font-size:15px}.primary span{font-size:24px;font-weight:400}.secondary{width:100%;background:#20364f;border:1px solid #adc7de44;border-radius:12px;min-height:48px;font-size:12px;font-weight:700;letter-spacing:1px}.text-button{background:none;color:#cfdeed;display:block;width:100%;min-height:44px;font-size:11px;letter-spacing:1.5px;font-weight:700;margin-top:5px}.rules{display:flex;justify-content:space-between;align-items:center;margin-top:19px;font-size:9px;font-weight:800;color:#bbccdb;letter-spacing:.2px}.coin-dot,.fud-dot{font-style:normal;width:16px;height:16px;display:inline-grid;place-items:center;border-radius:50%;background:#f7c54b;color:#653d0b;margin-right:3px}.fud-dot{background:#ed5a51;color:#fff}.menu-foot{text-align:center;font-size:8px;letter-spacing:1.6px;color:#839bb0;margin:14px 0 0}#hud{position:absolute;top:0;left:0;right:0;z-index:3;padding:max(16px,env(safe-area-inset-top)) 17px 26px;background:linear-gradient(#0d1c2afa,#0d1c2acd 75%,transparent)}.hud-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.race-label{width:115px}.race-label small,.score small{display:block;font-size:8px;letter-spacing:1.3px;font-weight:800;color:#b5c9d8;margin-bottom:6px}.race-label b{font-size:16px}.race-label em,.score em{font-style:normal;font-size:11px;color:#b2c6d7}.score{text-align:center;padding:0 10px}.score small{color:#ffdb71}.score b{font-size:27px;line-height:1;color:#ffe078;font-variant-numeric:tabular-nums}.score.pop{animation:pop .18s}.progress{height:5px;border-radius:5px;background:#8aacc24a;overflow:hidden;margin-top:16px}.progress>div{height:100%;width:0;background:linear-gradient(90deg,#edb936,#fff1a1);border-radius:5px}.progress-caption{display:flex;justify-content:space-between;margin-top:7px;font-size:8px;font-weight:800;letter-spacing:1px;color:#d4e2ea}#tutorial{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);width:90%;z-index:3;text-align:center;pointer-events:none;background:linear-gradient(transparent,#102333dd);padding:12px;border-radius:16px}#tutorial b{display:block;font-size:12px;letter-spacing:1px}#tutorial small{font-size:10px;color:#d2e1e9;display:block;margin-top:7px}.finger{display:block;font-size:40px;margin-bottom:8px;animation:swipe 1.2s ease-in-out infinite}#toast{position:absolute;top:20%;left:50%;transform:translate(-50%,8px);color:#fff;background:#0e2331dc;border:1px solid #ffffff30;border-radius:22px;padding:10px 18px;font-size:12px;letter-spacing:1px;font-weight:800;opacity:0;pointer-events:none;z-index:3;transition:.2s;white-space:nowrap}#toast.show{opacity:1;transform:translate(-50%,0)}#speed-label{position:absolute;bottom:65px;right:10px;display:flex;flex-direction:column;text-align:center;text-shadow:0 2px 4px #0009}#speed-label b{font-size:22px;font-style:italic}#speed-label span{font-size:7px;letter-spacing:1px}#race-footer{position:absolute;bottom:0;left:0;right:0;padding:10px 14px max(10px,env(safe-area-inset-bottom));background:linear-gradient(transparent,#091d2ace);display:flex;justify-content:space-between;align-items:center;pointer-events:none}#race-footer span{font-size:8px;letter-spacing:2px;font-weight:800;opacity:.8}.small-mute{pointer-events:auto;background:#14263dcc;border:1px solid #ffffff22;border-radius:11px;width:40px;height:40px;display:grid;place-items:center}.result-screen{background:radial-gradient(ellipse at 50% 37%,#645b2eef,#152a3cf9 60%,#0a182afa);align-items:center;justify-content:center;text-align:center;overflow:hidden}.result-content{position:relative;width:100%;z-index:2;display:flex;flex-direction:column;align-items:center}.eyebrow{font-size:10px;letter-spacing:3px;font-weight:800;color:#ffdc71;margin-bottom:13px}h2{font-size:35px;font-style:italic;font-weight:950;letter-spacing:-1px;line-height:1.04;margin:0 0 10px}.result-screen p{color:#c6d9e5;font-size:12px;line-height:1.6;margin:0}.result-car{width:200px;height:235px;margin:8px 0;filter:drop-shadow(0 15px 14px #0006)}.car-reveal-name{font-size:23px;font-weight:900;font-style:italic;margin-bottom:8px}.result-meta{font-size:10px;letter-spacing:2px;color:#ffd974;margin-bottom:26px}.result-screen .primary{max-width:330px}.result-screen .secondary{max-width:330px;margin-top:16px}.result-screen .world-brand{margin-top:22px;font-size:9px;opacity:.7}.champion h2{font-size:39px;color:#ffe183;text-shadow:0 3px #966e2b}.champion .result-car{height:190px;margin:4px 0}.champion .trophy{font-size:45px;margin-bottom:7px}.total-box{border-top:1px solid #e4c77944;border-bottom:1px solid #e4c77944;padding:12px 35px;margin:4px 0 12px}.total-box small{display:block;letter-spacing:2px;font-size:9px;color:#eedbab}.total-box b{display:block;font-size:36px;color:#ffe78e;font-variant-numeric:tabular-nums}.champion .result-meta{font-size:9px;margin-bottom:20px}.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;width:6px;height:13px;top:-20px;animation:fall linear infinite}.lose-screen{background:radial-gradient(ellipse at 50% 35%,#543838,#132437 65%,#0c1725)}.lose-screen h2{color:#ffb19e}.lose-screen .result-car{height:185px}.race-score-box{font-weight:900;font-size:35px;color:#ffe189;margin:10px 0 20px}.race-score-box small{display:block;font-size:10px;color:#b4c8da;letter-spacing:2px;margin-bottom:8px}.pause-screen{background:#081729df;backdrop-filter:blur(9px);justify-content:center;align-items:center}.pause-panel{width:100%;text-align:center}.pause-panel p{font-size:13px;color:#abc5d7;margin-bottom:28px}.pause-panel .secondary{margin-top:17px}.pause-rules{font-size:9px;letter-spacing:1px;margin-top:30px;color:#91adc4}.desktop-caption,.desktop-right{display:none}@media(min-width:950px){#game{height:calc(100dvh - 40px);border:1px solid #7897ad44;border-radius:24px}.desktop-caption{display:block;position:absolute;left:max(35px,calc(50% - 580px));top:26%;width:230px}.brand-mark{font-size:35px;color:#fdd15f;display:block;margin-bottom:12px}.desktop-caption>b{font-size:11px;letter-spacing:2px;color:#f5db8a;display:block;margin-bottom:32px}.desktop-caption>span:not(.brand-mark){font-weight:900;font-size:24px;line-height:1.2;letter-spacing:-.5px;color:#cedde7}.desktop-caption p{font-size:14px;line-height:1.7;color:#819dad}.desktop-instruction{margin-top:60px;color:#9fb7c6;font-size:9px;letter-spacing:2px}.desktop-instruction small{display:block;margin-top:8px;color:#698594;font-size:10px;letter-spacing:0}.desktop-right{display:flex;position:absolute;left:calc(50% + 320px);top:26%;height:420px;flex-direction:column;align-items:center;gap:35px}.desktop-right>span{font-size:48px;font-weight:900;color:#47617755}.vertical-text{writing-mode:vertical-rl;font-size:9px;font-weight:800;letter-spacing:5px;color:#91aab6}.checkers{width:38px;height:38px;background:conic-gradient(#55717a 25%,transparent 0 50%,#55717a 0 75%,transparent 0) 0 0/19px 19px;opacity:.4}}@media(max-height:720px){.screen{padding-top:12px;padding-bottom:13px}.title-dacat{font-size:65px}.title-lockup h1{font-size:27px;margin:3px 0 9px}.title-lockup p{font-size:8px}.route-label{margin-top:12px}.garage-card{height:117px;padding-top:7px}.garage-card canvas{height:61px}.garage{margin-bottom:12px}.menu-foot{margin-top:10px}.rules{margin-top:13px}.primary{min-height:50px}.result-car{height:185px;margin:0}.champion h2{font-size:30px}.champion .result-car{height:136px}.champion .trophy{font-size:30px}.total-box{padding:8px 30px}.total-box b{font-size:29px}.result-screen .world-brand{margin-top:13px}.result-meta{margin-bottom:19px}.menu-top .icon-button{height:36px;width:36px}.title-lockup{margin-top:0}}@media(max-height:570px){.title-dacat{font-size:45px}.title-lockup h1{font-size:22px}.route-label,.menu-foot{display:none}.garage-card{height:100px}.garage-card canvas{height:47px}.rules{font-size:8px}.garage-heading{margin-top:5px}.result-car{height:100px}.champion .result-car{height:90px}.champion h2,h2{font-size:26px}.champion .trophy{display:none}.result-screen p{font-size:10px}.total-box{padding:5px 30px}.result-meta{margin-bottom:10px}.result-screen .world-brand{display:none}}@keyframes swipe{0%,100%{transform:translateX(-35px) rotate(-15deg)}50%{transform:translateX(35px) rotate(15deg)}}@keyframes pop{50%{transform:scale(1.12)}}@keyframes fall{to{transform:translateY(110vh) rotate(640deg)}}@media(prefers-reduced-motion:reduce){.finger{animation:none}.confetti i{animation-duration:15s!important}}

/* Keep both race objectives readable at the top on narrow phones. */
.race-objectives{display:grid;grid-template-columns:1fr 1.5fr;gap:12px;margin-top:12px;padding:10px 12px;background:#102238f2;border:1px solid #ffffff28;border-radius:12px}.race-objectives small{display:block;font-size:14px;font-weight:800;letter-spacing:.3px;color:#cbdfed}.race-objectives b{display:block;font-size:28px;line-height:1.15;font-variant-numeric:tabular-nums;color:#ffe078}.tokens-needed{text-align:right}.tokens-needed b{display:inline-block;margin-right:8px}.tokens-needed span{font-size:12px;color:#c4d8e8;white-space:nowrap}#timer-box.urgent b,#timer-box.urgent small{color:#ff9b85}.race-label{width:auto}.score{padding:0}.score small{font-size:12px;letter-spacing:.4px}.progress-caption{font-size:11px;letter-spacing:.2px}.progress{margin-top:10px}#toast{top:29%}@media(max-width:360px){#hud{padding-left:10px;padding-right:10px}.hud-row{gap:6px}.score b{font-size:24px}.race-label b{font-size:14px}.race-objectives{gap:6px;padding:9px}.race-objectives small{font-size:12px}}

/* Full, uncropped supplied artwork; only the race screen advances the timer. */
#menu.artwork-screen,.artwork-screen{padding:0;background:#070d18;align-items:center;justify-content:center}
.artwork-button{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0;padding:0;background:#070d18;border:0;touch-action:manipulation}
.artwork-button img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.artwork-button:active{transform:none}.artwork-button:focus-visible{outline-offset:-4px}
.artwork-button:disabled{cursor:wait}
.menu-tools{position:absolute;top:max(10px,env(safe-area-inset-top));right:10px;left:10px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}
.menu-tools button{pointer-events:auto}.menu-tools .text-button{width:auto;max-width:230px;background:#07182bea;padding:8px 12px;border-radius:10px;font-size:14px;margin:0 0 0 10px;letter-spacing:0;min-height:43px}
.artwork-status{position:absolute;bottom:max(10px,env(safe-area-inset-bottom));left:12px;right:12px;margin:0;padding:10px;background:#06162be8;border:1px solid #63baff66;border-radius:10px;text-align:center;font-size:14px;font-weight:800;letter-spacing:.4px;pointer-events:none}
.driver-screen .artwork-button{flex:1;overflow:hidden}
/* Clip the pale frame baked into the FUD/Paperhands/Rug Pull card.
   Size to the artwork itself so clipping follows its edges on every screen. */
#driver-image[src*="villains-fud"]{width:auto;height:auto;max-width:100%;max-height:100%;clip-path:inset(2px 2px 2px 3px)}
.driver-navigation{width:100%;flex-shrink:0;padding:9px 16px max(12px,env(safe-area-inset-bottom));background:#07182b;text-align:center}
.driver-navigation>span{display:block;font-size:14px;font-weight:800;color:#ffdb66;margin-bottom:8px}
.driver-navigation .primary{font-size:16px;min-height:48px}
.official-logo{display:block;width:230px;height:auto;margin-bottom:24px;border-radius:12px}

/* Open-road HUD: compact floating text leaves approaching traffic visible. */
#hud{padding:max(10px,env(safe-area-inset-top)) 12px 0;background:none;pointer-events:none;text-shadow:0 2px 3px #000,1px 0 2px #000,-1px 0 2px #000,0 -1px 2px #000}
#hud .hud-row{gap:8px;align-items:center}
#hud .race-label small{display:none}
#hud .race-label b{font-size:14px;white-space:nowrap}
#hud .score{display:flex;align-items:center;gap:5px}
#hud .score small{font-size:12px;letter-spacing:0;margin:0}
#hud .score b{font-size:18px;white-space:nowrap}
#hud .score em{font-size:12px;color:#fff}
#hud #pause{pointer-events:auto;background:none;box-shadow:none;border-radius:0;width:44px;height:44px;text-shadow:inherit}
#hud .race-objectives{margin-top:0;padding:0;border:0;border-radius:0;background:none;gap:10px;grid-template-columns:1fr 1fr}
#hud .race-objectives small{font-size:12px;line-height:1.2;letter-spacing:.3px;color:#fff}
#hud .race-objectives b{font-size:30px;line-height:1.1}
#hud .tokens-needed b{display:block;margin:0}
#hud .tokens-needed span{display:none}
#hud #timer-box.urgent small,#hud #timer-box.urgent b{color:#ff9b85}
#hud .progress{margin-top:6px;height:3px;background:#ffffff30;box-shadow:0 1px 2px #0008}
#hud .progress-caption{margin-top:4px;font-size:12px;letter-spacing:0;color:#fff;gap:8px}
#hud .progress-caption #car-name{display:none}
#hud .progress-caption #distance-label{margin-left:auto}
#toast{top:23%}
@media(max-width:360px){#hud{padding-left:10px;padding-right:10px}#hud .score small{font-size:12px}#hud .score b{font-size:16px}#hud .hud-row{gap:4px}}

.mute{display:inline-flex;align-items:center;justify-content:center;gap:6px}.mute:not(.secondary){width:auto;min-width:44px;padding:8px 10px}.mute svg{width:20px;height:20px;flex-shrink:0}.mute span{font-size:12px;white-space:nowrap}

.villain-warning{flex-shrink:0;margin:0;width:100%;padding:12px 16px;text-align:center;background:#07182b;color:#ffda5a;font-size:20px;line-height:1.2;font-weight:900}

/* Keep supplied end-screen artwork uncropped and place live results above the racers. */
.illustrated-result{padding:0;background:#070d18;container-type:size;overflow:auto;touch-action:pan-y}
.result-art-stage{position:relative;flex:none;width:min(100cqw,56.25cqh);height:min(100cqh,177.7778cqw)}
.result-art{display:block;width:100%;height:100%;object-fit:contain}
.result-report{position:absolute;top:1.5%;left:3%;right:3%;padding:10px 12px;background:#061428f2;border:1px solid #5fbbff;border-radius:12px;box-shadow:0 4px 20px #0007;text-align:center;max-height:40%;overflow:auto;touch-action:pan-y}
.result-report h2{font-size:clamp(18px,5cqw,26px);color:#ffdc63;margin:3px 0 6px;letter-spacing:0;line-height:1.1}
.result-report p{font-size:14px;line-height:1.3;color:#fff;margin:3px 0}
.report-level{font-size:14px;font-weight:800;color:#90d4ff}
.report-score{font-size:20px;font-weight:900;color:#ffdc63;margin:6px 0}
.report-score span{display:block;font-size:14px;color:#fff;margin-top:2px}
.result-report .report-tip{color:#b8dfff;margin-top:6px}
.art-result-action{position:absolute;left:12%;right:12%;top:81%;height:10%;background:transparent;border-radius:18px;touch-action:manipulation}
.art-result-action:focus-visible{outline:4px solid white;outline-offset:2px;background:#ffffff18}
.art-result-menu{position:absolute;bottom:1%;left:30%;width:40%;min-height:36px;background:#061428ed;border:1px solid #87cfff99;border-radius:8px;font-size:14px;font-weight:800;touch-action:manipulation}
.champion-art .art-result-action{top:85%;height:10%}
@media(max-height:500px){.result-art-stage{width:min(100%,360px);height:auto;aspect-ratio:9/16}.illustrated-result{justify-content:flex-start}.result-report{max-height:44%}}

/* Upgrade artwork is 2:3; keep its Continue target aligned on every screen. */
.upgrade-art .result-art-stage{width:min(100cqw,66.6667cqh);height:min(100cqh,150cqw);aspect-ratio:2/3}
.upgrade-art .art-result-action{left:22%;right:22%;top:89%;height:7%}

/* Shared stats sit below the artwork without covering its racing controls. */
.public-race-stats{position:absolute;bottom:0;left:0;right:0;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px max(6px,env(safe-area-inset-bottom));background:#071526f5;border-top:1px solid #4381a4;color:#ffdc63;font-size:14px;font-weight:800;min-height:46px}
.public-race-stats button{background:#ffda5a;color:#102238;border-radius:8px;min-height:36px;padding:7px 10px;font-size:14px;font-weight:800}
#menu .artwork-button{height:calc(100% - 50px);margin-bottom:50px}#menu .artwork-status{bottom:55px}
.illustrated-result:has(.public-race-stats){padding-bottom:50px;container-type:size}
.illustrated-result .public-race-stats{position:absolute}
.leaderboard-dialog{width:min(94vw,440px);max-height:88dvh;margin:auto;padding:18px;border:2px solid #ffda5a;border-radius:18px;background:#0b1b30;color:#fff;overflow-y:auto;touch-action:pan-y;box-shadow:0 12px 70px #000a;user-select:text;-webkit-user-select:text}
.leaderboard-dialog::backdrop{background:#000b}.board-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.board-heading h2{font-size:24px;margin:0;color:#ffda5a}.board-heading button{background:#213b56;border-radius:8px;min-width:44px;min-height:44px;font-size:20px}.board-rules{font-size:14px;line-height:1.4;color:#c3d7e8}.leaderboard-dialog label{display:block;font-size:16px;margin-bottom:8px;font-weight:700}.driver-entry{display:flex;gap:8px;flex-wrap:wrap}.driver-entry input{flex:1;min-width:140px;width:100%;font:inherit;font-size:16px;padding:12px;border:1px solid #94caff;background:#06101d;color:#fff;border-radius:8px;user-select:text;-webkit-user-select:text}.driver-entry button{background:#ffda5a;color:#102238;font-size:14px;font-weight:800;padding:12px;border-radius:8px;min-height:44px}.leaderboard-dialog button:disabled{opacity:.6}#your-result,#board-status{font-size:14px;line-height:1.4;color:#ffdf82}#board-list{padding-left:30px;margin:18px 0}#board-list li{padding:9px 4px;border-bottom:1px solid #ffffff25;font-size:16px}#board-list li::marker{color:#ffda5a;font-weight:800}#board-list b{display:block;overflow-wrap:anywhere}#board-list span{font-size:14px;color:#c3d7e8}#board-list small{font-size:14px;float:right;color:#ffdf82}.leaderboard-dialog .secondary{font-size:14px}
