/* Desktop: a single instrument bar, glanceable map and in-world rewards. */
body.desktop-route{--game-rail-height:68px}
.desktop-route #gameRail,.desktop-route #hud,.desktop-route #timingHud,.desktop-route #dispatch,.desktop-route #parcel,.desktop-route #controls,.desktop-route #rotateHint,.desktop-route #phone,.desktop-route #photoPrompt{display:none!important}
#desktopHud{position:absolute;inset:0;pointer-events:none;z-index:9}
.run-bar{height:68px;display:flex;align-items:center;gap:36px;padding:0 28px;background:#11191c;color:#f6f8f8;border-bottom:2px solid #087d9b}
.run-bar img{width:76px;height:42px;object-fit:contain;margin-right:auto}
.run-bar small{font-size:12px;font-weight:700;letter-spacing:.1em;color:#a3b8bf}
.run-score,.run-misses{display:flex;align-items:center;gap:13px}
.run-score strong{font-size:28px;min-width:90px}
.run-speed{display:flex;align-items:baseline;gap:5px;position:relative;min-width:90px}.run-speed strong{font-size:24px}.run-speed small{font-size:12px}
#runPace{position:absolute;right:0;bottom:-12px;color:#efbd53;font-size:12px}
#runMisses{display:block;font-size:24px;font-weight:800;min-width:62px;white-space:nowrap}#runMisses.last-chance{color:#ed6565}
#runPause{pointer-events:auto;background:transparent;color:white;font-size:24px;padding:10px;min-width:44px}
#gamepadHud{display:grid;place-items:center;width:38px;height:38px;border:1px solid #4b6168;border-radius:50%;color:#71858b;filter:grayscale(1);opacity:.7;transition:.2s}#gamepadHud span{font-size:19px;line-height:1}#gamepadHud.connected{color:#63ff87;border-color:#63ff87;background:#173d35;filter:none;opacity:1;box-shadow:0 0 0 3px #63ff8728,0 0 14px #63ff8750}
.route-preview{position:absolute;top:84px;right:20px;border:3px solid #213338;border-radius:12px;overflow:hidden;box-shadow:0 5px 16px #14333226;width:174px;height:214px}
#routeMap{display:block;width:168px;height:208px}
#nurseryLesson{position:absolute;top:14px;left:132px;right:610px;height:40px;display:flex;flex-direction:column;justify-content:center;gap:3px;white-space:nowrap}
#nurseryLesson strong{font-size:11px;color:#70cadd;letter-spacing:.12em}#nurseryLesson span{font-size:14px;color:white}
#keyHint{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);border-radius:8px;padding:10px 16px;background:#132a30dc;color:#fff;font-size:14px;font-weight:750;white-space:nowrap}#keyHint span{font-size:11px;color:#b3c9ce;margin:0 16px 0 4px}#keyHint span:last-child{margin-right:0}
.world-reward{position:absolute;font-size:clamp(26px,3vw,42px);font-weight:950;letter-spacing:-.03em;text-shadow:0 2px 0 #fff,2px 0 0 #fff,-2px 0 0 #fff,0 -2px 0 #fff,0 4px 9px #15292355;white-space:nowrap}.world-reward.gain{color:#087d72}.world-reward.loss{color:#cb343f}
#brakeStatus{position:absolute;bottom:22px;left:28px;width:108px;height:6px;background:#21333855;border-radius:4px}#brakeStatus>span{display:block;width:100%;height:100%;background:#087d9b;transform-origin:left;border-radius:4px}#brakeStatus small{position:absolute;bottom:12px;color:#173b45;font-size:11px;font-weight:bold;white-space:nowrap}
.desktop-route .briefing{max-width:620px}.desktop-route .briefing h1{font-size:64px}.desktop-route .briefing p{font-size:18px}.desktop-route .brief-controls{display:flex;gap:18px;flex-wrap:wrap;font-size:16px}
.desktop-route #start .menu-caption{display:none}.desktop-route #start .menu-alternates{display:flex!important}.desktop-route #practiceButton{display:none}.desktop-route #skipPractice{flex:none;border:0;padding:0;min-height:30px;font-size:14px}.desktop-route .rules-grid{grid-template-columns:repeat(3,1fr)}.desktop-route .rules-grid h3{font-size:18px}.desktop-route .rules-grid p{font-size:15px}.desktop-route .score-rules{display:none}
@media(max-width:1100px){.run-bar{gap:22px;padding:0 18px}#nurseryLesson{left:110px;right:520px}.run-score strong{min-width:65px}.run-score,.run-misses{gap:8px}}
@media(prefers-reduced-motion:reduce){.world-reward{transform:translate(-50%,-50%)!important}}
/* Keep the scorecard registered to the illustrated screen at every desktop size. */
.desktop-route .modal-screen:has(.score-scene){display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden}
.desktop-route .score-scene{width:min(118vw,180dvh);height:auto;aspect-ratio:3/2;flex:none}
.desktop-route .score-scene-art{inset:0;width:100%;height:100%;object-fit:fill;opacity:1}
.desktop-route .score-phone{left:56.97%;top:9.86%;width:24.22%;height:71.58%;border:0;border-radius:26px;box-shadow:0 0 0 3px #14232c;overflow:hidden}
.desktop-route .score-scene-caption{left:9%;top:auto;bottom:13%;max-width:42%}
.desktop-route .score-phone .phone-scroll{min-height:0;overflow-y:auto;overflow-x:hidden;flex:1}

.run-lives{display:flex;align-items:center;gap:7px;font-size:22px;color:#fff}
#lifeRing{--progress:0deg;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:radial-gradient(circle,#172c30 58%,transparent 61%),conic-gradient(#63ff87 var(--progress),#456168 0);color:#63ff87;font-size:22px}
.round-results>div{display:flex;flex-direction:column;gap:4px;border-bottom:1px solid #ccd4da;padding:10px 0}.round-results small{font-size:.85em}.earned-life{color:#29812b;font-weight:800}.round-trend{padding-top:14px}.round-spark{display:block;width:100%;height:auto;max-height:100px}.round-spark text{font-size:10px;fill:#405d75}

.route-review{background:#09212bba;pointer-events:auto!important}.route-review .route-preview{top:50%;right:calc(50% + 155px);transform:translateY(-40%);width:240px;border:3px solid #fff;box-shadow:0 15px 50px #0006}.route-review .route-preview canvas{width:100%;height:auto}
#reviewCard{position:absolute;top:50%;left:calc(50% - 120px);transform:translateY(-40%);width:390px;padding:26px;background:#f7fafb;color:#405d75;border-radius:18px;box-shadow:0 15px 50px #0005}#reviewCard .review-title{font-size:28px;color:#ba3445}#reviewCard p{font-size:16px;line-height:1.5}#reviewCard .review-stats{font-weight:800;padding:14px 0;border-block:1px solid #cddce1}#reviewCard button{width:100%;background:#087d9b;color:white}.route-review #nurseryLesson,.route-review #keyHint,.route-review #brakeStatus,.route-review #worldRewards{display:none}.round-map{display:block;width:min(100%,240px);margin:auto}

.route-review .route-preview{height:auto}#collisionCount{max-width:80px;font-size:12px;letter-spacing:0}.run-bar{gap:24px}.respawning{animation:respawnPulse 1.5s ease-in-out infinite}.respawning #reviewCard .review-title{color:#087d9b}@keyframes respawnPulse{50%{background:#087d9b50;box-shadow:inset 0 0 100px #63ff8760}}@media(prefers-reduced-motion:reduce){.respawning{animation:none}}



.desktop-route .modal-screen:has(.demo-briefing){background:linear-gradient(#102a36e8,transparent 30%,transparent 68%,#102a36f5);padding:0;overflow:hidden;pointer-events:none}.demo-briefing{height:100%;color:white}.demo-briefing header{position:absolute;top:24px;left:32px}.demo-briefing header span{font-size:12px;letter-spacing:.12em}.demo-briefing h1{font-size:clamp(28px,3.5vw,48px);line-height:1.05;letter-spacing:-.04em;margin:10px 0}.demo-briefing footer{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);width:min(92vw,580px);text-align:center;display:grid;gap:12px}.demo-briefing footer strong{justify-self:center;padding:12px 20px;border-radius:10px;background:#112d39;font-size:18px}.demo-briefing footer strong.green{background:#63ff87;color:#102c28}.demo-briefing button{pointer-events:auto;background:#087d9b;font-size:18px;min-height:56px}.demo-briefing p{font-size:14px;margin:0;color:#fff}.demo-briefing #demoReward{position:fixed;transform:translate(-50%,-50%)}

/* Keep route navigation within a short glance of the driving area. */
#desktopHud:not(.route-review) .route-preview{top:auto;bottom:100px;right:max(20px,calc(50% - 410px))}
.demo-rules{position:absolute;left:32px;top:180px;width:260px;padding:18px;background:#102d3bef;border:1px solid #729aa8;border-radius:14px;color:white;box-shadow:0 8px 25px #0003}.demo-rules>strong{font-size:14px;display:block;margin-bottom:15px}.demo-rules>div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;font-size:16px;border-top:1px solid #456270}.demo-rules b{color:#ffcf65}
.demo-map-card{position:absolute;right:max(20px,calc(50% - 410px));bottom:160px;width:200px;border-radius:14px;background:#102d3bef;border:2px solid #729aa8;padding:12px;box-shadow:0 8px 25px #0003}.demo-map-card strong{display:block;font-size:16px;line-height:1.3;margin-bottom:10px}.demo-map-card canvas{width:168px;max-width:100%;height:auto;display:block;border-radius:6px}.demo-map-card span{display:block;font-size:12px;line-height:1.4;margin-top:8px;color:#d6e9ef}.demo-map-card.map-emphasis{border-color:#63ff87;box-shadow:0 0 20px #63ff8755}
@media(max-height:650px){.demo-rules{top:145px}.demo-map-card{bottom:110px}.demo-map-card canvas{width:120px;margin:auto}.demo-briefing header{top:14px}.demo-briefing footer{bottom:12px}}

#recoveryStatus{position:absolute;top:78px;left:50%;transform:translateX(-50%);padding:10px 16px;border-radius:9px;background:#087d9b;color:white;font-size:14px;font-weight:800;box-shadow:0 3px 12px #123b4933;white-space:nowrap}.route-review #recoveryStatus{display:none}

#musicToggle{position:fixed;right:16px;bottom:16px;z-index:30;background:#102d3bea;color:#fff;border:1px solid #6f98a4;border-radius:8px;padding:10px 12px;font-size:12px;min-height:40px}#musicToggle:hover{background:#087d9b}
#controllerStatus{position:absolute;z-index:24;top:82px;left:50%;transform:translateX(-50%);padding:10px 15px;border-radius:9px;background:#087d9bf2;color:#fff;border:1px solid #92d9e8;box-shadow:0 6px 20px #071b2445;font-size:12px;font-weight:850;letter-spacing:.04em;white-space:nowrap;pointer-events:none}.mobile-runner #controllerStatus{top:78px;max-width:calc(100% - 24px);font-size:11px;text-align:center}
#desktopLifeFlash{position:absolute;z-index:15;top:38%;left:50%;transform:translate(-50%,-50%) scale(.5);opacity:0;pointer-events:none;color:#d6404e;font-size:clamp(64px,8vw,112px);font-weight:950;letter-spacing:-.06em;white-space:nowrap;text-shadow:0 4px 0 #fff,0 0 30px #d6404e88}#desktopLifeFlash.damage{color:#ffcf65;text-shadow:0 4px 0 #102d3b,0 0 26px #ffcf65}#desktopLifeFlash.show{animation:desktopLifeFlash 1.25s ease-out both}@keyframes desktopLifeFlash{0%{opacity:0;transform:translate(-50%,-50%) scale(.45)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}65%{opacity:1;transform:translate(-50%,-58%) scale(1)}100%{opacity:0;transform:translate(-50%,-82%) scale(.82)}}@media(prefers-reduced-motion:reduce){#desktopLifeFlash.show{animation:desktopLifeFade 1.25s linear both}@keyframes desktopLifeFade{15%,70%{opacity:1}100%{opacity:0}}}

/* Mobile runner: a clear portrait road and gesture-only driving surface. */
.mobile-runner #gameRail,.mobile-runner #hud,.mobile-runner #timingHud,.mobile-runner #dispatch,.mobile-runner #parcel,.mobile-runner #controls,.mobile-runner #rotateHint,.mobile-runner #phone,.mobile-runner #photoPrompt,.mobile-runner #nurseryRoute,.mobile-runner #toast,.mobile-runner #hazardAlert,.mobile-runner #timingFeedback{display:none!important}
.mobile-runner .run-bar{height:68px;padding:0 12px;gap:16px}.mobile-runner .run-bar img{width:54px;height:35px}.mobile-runner .run-score{gap:6px}.mobile-runner .run-score strong{font-size:22px;min-width:0}.mobile-runner .run-lives{margin-left:auto}.mobile-runner .run-speed,.mobile-runner .run-misses,.mobile-runner .route-preview,.mobile-runner #nurseryLesson,.mobile-runner #keyHint{display:none!important}.mobile-runner #world{touch-action:none}
#nextDelivery{position:absolute;top:80px;left:50%;transform:translateX(-50%);background:#102d3bea;color:#fff;padding:10px 16px;border-radius:12px;font-size:14px;font-weight:800;white-space:nowrap}#nextDelivery.ready{background:#63ff87;color:#102c28}#swipeHint{position:absolute;bottom:126px;left:10%;width:80%;text-align:center;font-size:12px;background:#102d3be8;color:#fff;padding:10px;border-radius:10px;line-height:1.4}.mobile-runner #recoveryStatus{top:126px;font-size:12px}.mobile-runner #brakeStatus{bottom:75px;left:20px}
#mobileControls{position:absolute;left:14px;right:14px;bottom:max(16px,env(safe-area-inset-bottom));height:104px;display:grid;grid-template-columns:1fr 112px 1fr;align-items:end;gap:12px;pointer-events:auto}#mobileControls button{border:2px solid #dff3f5;background:#102d3bea;color:#fff;box-shadow:0 6px 18px #071b2444;touch-action:manipulation;-webkit-tap-highlight-color:transparent}#mobileLeft,#mobileRight{height:76px;border-radius:22px;font-size:58px;line-height:.8;font-weight:500}#mobileThrow{width:104px;height:104px;justify-self:center;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:#087d9b!important;border:4px solid #cffff0!important}#mobileThrow span{font-size:27px;line-height:1;transform:rotate(-8deg)}#mobileThrow b{font-size:12px;letter-spacing:.08em}#mobileThrow:active,#mobileLeft:active,#mobileRight:active{transform:scale(.94);background:#63ff87!important;color:#102c28}
.mobile-runner #reviewCard{left:5%;top:45%;width:90%;transform:translateY(-40%);padding:22px}.mobile-runner .route-review #nextDelivery,.mobile-runner .route-review #swipeHint,.mobile-runner .route-review #mobileControls{display:none}.mobile-runner #reviewCard .review-title{font-size:23px}
.mobile-runner .modal-screen{padding:18px;background:linear-gradient(180deg,#0b181e,#133642)}.mobile-intro{width:min(100%,420px);margin:auto;display:grid;gap:16px;padding:24px 20px 20px;border:1px solid #41636e;border-radius:24px;background:#102d3bf5;color:#fff;box-shadow:0 24px 70px #0008}.mobile-intro header{text-align:center}.mobile-intro header>span{font-size:13px;font-weight:900;letter-spacing:.12em;color:#70ff98}.mobile-intro h1{font-size:clamp(38px,11vw,54px);line-height:.95;letter-spacing:-.045em;margin:9px 0 0}.mobile-demo-controls{display:grid;grid-template-columns:1fr 88px 1fr;gap:10px;align-items:end}.mobile-demo-controls>span{height:62px;display:grid;place-items:center;border:2px solid #dff3f5;border-radius:17px;background:#173f4c;font-size:46px;line-height:1}.mobile-demo-controls .demo-throw{height:88px;border-radius:50%;background:#63ff87;color:#102c28;border:4px solid #dfffea;display:flex;flex-direction:column;gap:1px;font-size:22px}.demo-throw i{font-style:normal;transform:rotate(-8deg)}.demo-throw b{font-size:11px;letter-spacing:.08em}.mobile-lessons{display:grid;gap:8px}.mobile-lessons p{display:grid;grid-template-columns:32px 1fr;align-items:center;gap:10px;margin:0;padding:9px 11px;border-radius:12px;background:#173c48;font-size:14px;line-height:1.25}.mobile-lessons p>b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#087d9b;color:#fff}.mobile-lessons span{display:grid}.mobile-lessons strong{font-size:13px;letter-spacing:.06em;color:#70ff98}.mobile-rule-strip{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid #41636e;padding:10px 0}.mobile-rule-strip span{text-align:center;font-size:10px;letter-spacing:.08em;color:#a9c4cc}.mobile-rule-strip span+span{border-left:1px solid #41636e}.mobile-rule-strip b{display:block;margin-top:3px;font-size:14px;color:#ffcf65;letter-spacing:0}.mobile-intro .primary{margin:0;font-size:17px;background:#63ff87;color:#102c28;min-height:54px}@media(max-height:700px){.mobile-intro{gap:10px;padding:15px}.mobile-intro h1{font-size:36px}.mobile-demo-controls>span{height:52px}.mobile-demo-controls .demo-throw{height:72px}.mobile-lessons p{padding:6px 9px}.mobile-rule-strip{padding:7px 0}}
.mobile-runner .modal-screen:has(.score-scene){padding:0}.mobile-runner .score-scene{width:100%;height:100%;min-height:0}.mobile-runner .score-scene-art,.mobile-runner .score-scene-caption{display:none}.mobile-runner .score-phone{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;box-shadow:none}.mobile-runner .phone-scroll{overflow-y:auto;min-height:0;flex:1}.mobile-runner #musicToggle{bottom:10px;right:10px;font-size:11px}.mobile-runner .sc-actions{padding-bottom:55px}.mobile-runner .menu-rules>.rules-foot,.mobile-runner .score-rules,.mobile-runner .route-targets{display:none}
#mobileThrow.ready{background:#63ff87!important;color:#102c28;box-shadow:0 0 0 7px #63ff8738,0 0 28px #63ff87}#mobileLeft.selected,#mobileRight.selected{border-color:#63ff87;background:#1d5760;color:#63ff87}.mobile-runner #musicToggle{top:80px;left:10px;right:auto;bottom:auto}
#mobileLifeFlash{position:absolute;z-index:12;top:38%;left:50%;transform:translate(-50%,-50%) scale(.5);opacity:0;pointer-events:none;color:#63ff87;font-size:clamp(54px,18vw,92px);font-weight:950;letter-spacing:-.06em;white-space:nowrap;text-shadow:0 4px 0 #102c28,0 0 30px #63ff87}#mobileLifeFlash.damage{color:#ffce45;text-shadow:0 4px 0 #102c28,0 0 24px #ffce45}#mobileLifeFlash.show{animation:mobileLifeFlash 1.25s ease-out both}@keyframes mobileLifeFlash{0%{opacity:0;transform:translate(-50%,-50%) scale(.45)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.18)}65%{opacity:1;transform:translate(-50%,-58%) scale(1)}100%{opacity:0;transform:translate(-50%,-85%) scale(.82)}}@media(prefers-reduced-motion:reduce){#mobileLifeFlash.show{animation:mobileLifeFade 1.25s linear both}@keyframes mobileLifeFade{15%,70%{opacity:1}100%{opacity:0}}}

/* Cross-device control colors. Desktop mechanics are unchanged. */
.demo-briefing button,.mobile-intro .primary{background:var(--drivr-orange);color:#fff;border-color:var(--drivr-orange);box-shadow:0 3px 0 var(--drivr-orange-dark)}.demo-briefing button:hover,.mobile-intro .primary:hover{background:#ff7b32}
#reviewCard button,#recoveryStatus{background:var(--drivr-blue);color:#fff}.mobile-demo-controls .demo-throw,#mobileThrow{background:var(--drivr-blue)!important;color:#fff;border-color:#92d9e8!important;box-shadow:0 4px 0 var(--drivr-blue-dark)}#mobileThrow.ready{background:var(--drivr-perfect)!important;color:var(--drivr-navy);border-color:#d9ffe4!important;box-shadow:0 0 0 7px #63ff8738,0 0 28px #63ff87}.mobile-demo-controls>span:not(.demo-throw),#mobileLeft,#mobileRight{background:var(--drivr-navy);color:#fff;border-color:#75919b}.mobile-lessons p>b{background:var(--drivr-blue)}.mobile-lessons strong{color:#6fd3e8}.mobile-rule-strip b{color:var(--drivr-yellow)}#mobileLifeFlash.life{color:var(--drivr-red);text-shadow:0 4px 0 var(--drivr-navy),0 0 30px #d6404e}#mobileLifeFlash.damage{color:var(--drivr-yellow);text-shadow:0 4px 0 var(--drivr-navy),0 0 24px #ffcf65}#mobileLeft.selected,#mobileRight.selected{border-color:#6fd3e8;background:#164e60;color:#9eeafa}
