:root{color-scheme:dark;--ink:#111d26;--paper:#edf2e9;--muted:#a2b1b6;--acid:#d9f45a;--cyan:#64edda;--line:#ffffff24;font-family:Barlow,system-ui,-apple-system,sans-serif;font-size:16px}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--ink);overscroll-behavior:none}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;color:var(--paper)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}button:disabled{opacity:.4;cursor:wait}#world{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.hidden{display:none!important}.eyebrow,.section-label,.garage-footer,.race-brand,.timing>span,.position>span,.minimap-wrap>span,.race-tools{font-size:12px;font-weight:600;letter-spacing:1.6px}.eyebrow{color:var(--cyan)}
/* Loader critical styles live in play.html so they arrive before game modules. */
#garage{position:fixed;inset:0;background:linear-gradient(180deg,#0b182161 0%,transparent 35%,#0c172449 56%,#101b24 77%);display:flex;flex-direction:column;padding:35px 44px 23px;padding-top:max(30px,env(safe-area-inset-top));padding-bottom:max(28px,env(safe-area-inset-bottom));pointer-events:none}#garage button,#garage .car-choices{pointer-events:auto}.masthead{display:flex;justify-content:space-between;align-items:flex-start}.masthead h1{font:900 clamp(44px,7.5vw,95px)/.82 'Barlow Condensed',Impact,sans-serif;letter-spacing:-1px;margin:18px 0 0;max-width:400px}.masthead h1 span{display:block;color:var(--acid)}.icon-button{width:44px;height:44px;border:1px solid #ffffff60;background:#101b2470;backdrop-filter:blur(10px);border-radius:50%;font-weight:600;font-size:22px}.garage-caption{position:absolute;left:60%;top:34%;text-shadow:0 2px 16px #0007}.garage-caption span{font-size:12px;letter-spacing:2px;color:var(--cyan)}.garage-caption p{font:600 36px 'Barlow Condensed',Impact,sans-serif;margin:2px 0}.garage-panel{margin-top:auto;width:100%;max-width:1100px;align-self:center}.section-label{display:flex;justify-content:space-between;color:var(--muted);padding-bottom:10px}.section-label span:last-child{font-size:11px;opacity:.7}.car-choices{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.car-choice{text-align:left;position:relative;min-height:76px;padding:13px 16px;background:#203039a8;border:1px solid #ffffff20;border-radius:3px;transition:background .2s,border .2s}.car-choice.selected{background:var(--paper);color:var(--ink);border-color:var(--paper)}.car-choice.selected::after{content:'✓';position:absolute;right:12px;top:12px;font-size:14px}.car-choice span{display:block;font-size:12px;letter-spacing:1px;opacity:.65;margin-bottom:3px}.car-choice strong{font:700 23px 'Barlow Condensed',Impact,sans-serif}.car-choice i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:2px}.car-detail{display:flex;gap:30px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);min-height:66px}.car-detail>p{font-size:14px;color:#ced5d7;margin:0;flex:1;max-width:540px;line-height:1.4}.car-stats{display:flex;gap:22px;margin-left:auto}.stat{width:95px}.stat span{font-size:11px;letter-spacing:1.1px;color:var(--muted)}.stat .track{height:3px;background:#ffffff25;margin-top:7px}.stat .track i{display:block;height:100%;background:var(--acid)}.race-setup{display:flex;align-items:center;gap:22px;padding:15px 0 10px}.route-label{flex:1}.route-label .eyebrow{display:block;margin-bottom:6px}.route-label strong{font-size:14px;font-weight:500}.mode-switch{display:flex;gap:4px;background:#080f1655;padding:4px;border-radius:5px}.mode-switch button{font-size:14px;padding:11px 14px;border-radius:3px;background:transparent;color:var(--muted);white-space:nowrap}.mode-switch button.selected{color:var(--paper);background:#ffffff19}.primary{background:var(--acid);color:var(--ink);border-radius:3px;font-weight:800;letter-spacing:1.3px;font-size:17px;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:0 23px}.primary>span{font-size:27px}.primary:active{background:#c1db47;transform:translateY(1px)}.garage-footer{display:flex;justify-content:space-between;color:#809398;font-size:10px;letter-spacing:1px;align-items:center}.garage-footer button{font-size:12px;color:#9fb2b8;background:transparent;padding:5px 0}.attribution{position:fixed;bottom:3px;right:10px;z-index:4;font-size:10px;margin:0;opacity:.6}.attribution a{color:#dae7ed;text-decoration:none;text-shadow:0 1px 2px #000}
#hud{position:fixed;inset:0;pointer-events:none;padding:max(15px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:linear-gradient(#06101c60,transparent 22%)}#hud button{pointer-events:auto}.race-top{display:flex;align-items:flex-start;gap:25px}.race-brand{font:800 24px/.85 'Barlow Condensed',Impact,sans-serif;letter-spacing:0;padding-top:7px}.race-brand span{display:block;color:var(--acid);font-size:17px;margin-top:4px}.timing{margin-left:auto;text-align:right;font-variant-numeric:tabular-nums}.timing>span{font-size:11px;letter-spacing:1px;display:block}.timing strong{font:600 34px 'Barlow Condensed',Impact,sans-serif;letter-spacing:1px}.navigation{position:absolute;top:max(92px,calc(env(safe-area-inset-top) + 74px));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:13px;background:#111e29d9;border:1px solid #ffffff30;border-radius:5px;padding:10px 20px;min-width:250px;backdrop-filter:blur(8px)}.navigation>span{font-size:36px;color:var(--acid);line-height:1}.navigation strong{display:block;font-size:16px}.navigation div>span{display:block;color:#b3c5c9;font-size:12px;margin-top:3px}.position{position:absolute;top:100px;left:24px;text-shadow:0 2px 12px #0006}.position>strong{font:700 50px/.9 'Barlow Condensed',Impact,sans-serif}.position>strong>span{font-size:25px;color:#d5e3e3}.position>span{display:block;font-size:10px;margin-top:5px}.minimap-wrap{position:absolute;right:22px;top:98px;width:146px;text-align:center}.minimap-wrap canvas{width:146px;height:146px;background:#101e2ae0;border:1px solid #ffffff30;border-radius:50%;backdrop-filter:blur(5px)}.minimap-wrap>span{display:block;font-size:10px;margin-top:5px;color:#e0e9e8}.speedometer{position:absolute;bottom:max(34px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);text-align:center;min-width:100px;text-shadow:0 3px 16px #05142099}.speedometer>strong{font:700 68px/.9 'Barlow Condensed',Impact,sans-serif;font-variant-numeric:tabular-nums;display:block}.speedometer>span{font-size:12px;letter-spacing:2px}.rpm{height:4px;width:100px;background:#ffffff50;margin-top:9px}.rpm>i{display:block;height:100%;width:0;background:var(--acid)}#countdown{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);font:800 120px/.9 'Barlow Condensed',Impact,sans-serif;color:var(--acid);text-shadow:0 6px 60px #09172599}#toast{position:absolute;top:33%;left:50%;transform:translateX(-50%);padding:10px 16px;background:#101b24e8;border-radius:4px;color:var(--acid);text-align:center;white-space:nowrap;font-size:15px}
#touchControls{position:absolute;bottom:max(27px,env(safe-area-inset-bottom));left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right));display:flex;justify-content:space-between}.steer-controls,.pedal-controls{display:flex;align-items:end;gap:10px}.drive-button{width:77px;height:77px;border-radius:13px;background:#142832b0;border:1px solid #ffffff63;backdrop-filter:blur(8px);touch-action:none;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 3px #ffffff05}.steer-controls .drive-button{font:500 68px/.5 system-ui,sans-serif;padding-bottom:8px}.drive-button.active{background:#edf2e9b0;color:#10202a;border-color:#fff;transform:scale(.97)}.drive-button.gas{background:#d9f45ac7;color:#14251f;border-color:#efffa6;height:94px;width:78px;flex-direction:column;font-size:14px;font-weight:700;gap:8px}.drive-button.gas.active{background:#e8ff87}.gas span{font-size:24px;line-height:1}.drive-button.brake{width:73px;height:67px;display:block;font-size:11px;font-weight:600;line-height:1.4}.drive-button.brake small{font-size:10px;opacity:.7}.race-tools{position:absolute;bottom:max(139px,calc(env(safe-area-inset-bottom) + 112px));left:24px;display:flex;gap:15px}.race-tools button{background:#101f29ad;border:1px solid #ffffff30;border-radius:5px;min-height:35px;font-size:20px;padding:0 10px}.race-tools button span{font-size:11px;vertical-align:2px;margin-left:4px}
dialog{color:var(--paper);background:#14232a;border:1px solid #ffffff30;border-radius:8px;padding:33px;width:min(90vw,440px);max-height:90dvh;box-shadow:0 20px 100px #0008}dialog::backdrop{background:#060f16aa;backdrop-filter:blur(8px)}dialog h2{font:700 48px/.95 'Barlow Condensed',Impact,sans-serif;margin:18px 0 26px}dialog p{font-size:16px;line-height:1.5;color:#bbcbd0}dialog .primary{width:100%;margin-top:20px}.secondary{background:#ffffff15;border:1px solid #ffffff30;border-radius:3px;min-height:47px;width:100%;margin-top:10px}.text-button{display:block;background:none;color:#bcd0d6;padding:15px 10px;margin:auto;font-size:14px}.dialog-close{position:absolute;right:15px;top:10px;background:none;font-size:30px}.finish-time{font:700 60px 'Barlow Condensed',Impact,sans-serif;color:var(--acid)}#infoDialog{max-width:580px;width:90vw;-webkit-user-select:text;user-select:text}#infoDialog p{font-size:14px}#sourceLinks{display:flex;flex-wrap:wrap;gap:10px}#sourceLinks a{font-size:12px;color:var(--cyan)}
@media(min-width:1000px){.garage-caption{left:65%}.race-setup .primary{width:230px}.minimap-wrap{top:105px;width:175px}.minimap-wrap canvas{width:175px;height:175px}.speedometer{bottom:40px}.drive-button{opacity:.75}}
@media(max-width:650px) and (orientation:portrait){#garage{padding:22px 18px max(29px,env(safe-area-inset-bottom));background:linear-gradient(#0b182170,transparent 32%,#101b24ab 48%,#101b24 59%)}.masthead h1{font-size:58px;margin-top:13px}.masthead .eyebrow{font-size:10px;letter-spacing:1px}.masthead .icon-button{width:36px;height:36px;font-size:18px}.garage-caption{left:auto;right:20px;top:29%;text-align:right}.garage-caption p{font-size:25px}.garage-caption span{font-size:10px}.garage-panel{margin-top:auto}.section-label{font-size:10px;padding-bottom:8px}.section-label span:last-child{display:none}.car-choices{gap:7px;grid-template-columns:repeat(2,1fr)}.car-choice{min-height:56px;padding:7px 11px}.car-choice strong{font-size:22px}.car-choice span{font-size:10px;margin-bottom:1px}.car-detail{gap:12px;min-height:83px;padding:12px 0;align-items:start}.car-detail>p{font-size:12px;line-height:1.4;max-width:58%}.car-stats{display:block;min-width:100px}.stat{width:100px;margin-bottom:6px}.stat span{font-size:9px}.stat .track{margin-top:3px;height:2px}.race-setup{flex-wrap:wrap;gap:10px;padding:12px 0 6px}.route-label{flex-basis:100%}.route-label strong{font-size:11px}.route-label .eyebrow{font-size:10px;margin-bottom:3px}.mode-switch{flex:1}.mode-switch button{font-size:12px;padding:10px 9px;flex:1}.race-setup .primary{min-height:47px;padding:0 16px;font-size:14px;gap:18px}.garage-footer{font-size:9px}.garage-footer button{font-size:10px}#hud{padding-top:max(14px,env(safe-area-inset-top))}.race-brand{font-size:23px}.race-top{gap:12px}.timing strong{font-size:31px}.timing>span{font-size:10px}.navigation{top:91px;padding:9px 14px;min-width:235px}.navigation strong{font-size:15px}.navigation div>span{font-size:11px}.position{top:164px;left:22px}.minimap-wrap{top:165px;right:18px;width:117px}.minimap-wrap canvas{width:117px;height:117px}.minimap-wrap>span{font-size:9px}.speedometer{bottom:143px}.speedometer>strong{font-size:58px}#touchControls{left:13px;right:13px}.drive-button{width:67px;height:72px}.steer-controls,.pedal-controls{gap:7px}.drive-button.gas{width:70px;height:90px}.drive-button.brake{width:65px}.race-tools{bottom:118px;left:16px;gap:7px}.race-tools button{font-size:18px;padding:0 8px;min-height:30px}.race-tools button span{font-size:10px}.speedometer .rpm{width:80px;margin:7px auto 0}.speedometer>span{font-size:10px}}
@media(orientation:landscape) and (max-height:550px){#garage{padding:16px max(25px,env(safe-area-inset-right)) 22px max(25px,env(safe-area-inset-left));background:linear-gradient(90deg,#101b2440,transparent 48%,#101b24 73%)}.masthead{position:absolute;top:16px;left:max(24px,env(safe-area-inset-left));right:max(24px,env(safe-area-inset-right))}.masthead h1{font-size:43px;margin-top:10px}.masthead .eyebrow{font-size:9px}.masthead .icon-button{width:30px;height:30px;font-size:16px}.garage-caption{left:25px;top:auto;bottom:40px}.garage-caption p{font-size:25px}.garage-caption span{font-size:9px}.garage-panel{width:46%;margin:28px 0 0 auto;align-self:end}.section-label{font-size:9px;padding-bottom:6px}.section-label span:last-child{display:none}.car-choices{grid-template-columns:repeat(2,1fr);gap:5px}.car-choice{min-height:48px;padding:6px 10px}.car-choice span{font-size:9px}.car-choice strong{font-size:20px}.car-detail{padding:8px 0;min-height:55px;gap:10px}.car-detail>p{font-size:11px;line-height:1.3}.car-stats{display:none}.race-setup{gap:7px;flex-wrap:wrap;padding:8px 0 4px}.route-label{flex-basis:100%}.route-label strong{font-size:10px}.route-label .eyebrow{font-size:9px;margin-bottom:2px}.mode-switch{padding:3px;flex:1}.mode-switch button{font-size:10px;padding:9px 7px}.race-setup .primary{min-height:37px;font-size:12px;padding:0 12px;gap:12px}.primary>span{font-size:21px}.garage-footer{font-size:8px}.garage-footer button{font-size:10px}#hud{padding-top:10px}.race-brand{font-size:19px}.race-brand span{font-size:13px}.timing strong{font-size:28px}.timing>span{font-size:9px}.race-top .icon-button{height:35px;width:35px;font-size:18px}.navigation{top:12px;padding:8px 15px;min-width:230px}.navigation>span{font-size:29px}.navigation strong{font-size:14px}.navigation div>span{font-size:11px}.position{top:70px}.position>strong{font-size:40px}.minimap-wrap{width:100px;right:max(24px,env(safe-area-inset-right));top:70px}.minimap-wrap canvas{width:100px;height:100px}.minimap-wrap>span{display:none}#touchControls{bottom:max(20px,env(safe-area-inset-bottom))}.drive-button{width:67px;height:65px}.drive-button.gas{height:76px;width:68px}.drive-button.brake{height:57px;width:67px}.speedometer{bottom:25px}.speedometer>strong{font-size:49px}.speedometer>span{font-size:10px}.race-tools{bottom:105px}.race-tools button{font-size:18px;min-height:28px}.race-tools button span{font-size:10px}#countdown{font-size:90px}dialog{padding:20px 28px}dialog h2{font-size:35px;margin:12px 0 18px}}
@media(prefers-reduced-motion:reduce){.loadbar i{animation:none}.car-choice{transition:none}}

.share-launch{position:fixed;top:max(15px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:110;padding:10px 16px;min-height:44px;border:1px solid #ffffff60;border-radius:6px;background:#122531e8;color:#d9f45a;font-size:14px}.share-launch:has(~ #shareDialog[open]){visibility:hidden}body:has(#hud:not(.hidden)) .share-launch{display:none}#shareDialog{z-index:150}#shareDialog label{display:block;font-size:14px;color:#bcd0d6;margin-bottom:8px}#gameAddress{width:100%;padding:14px 10px;font-size:16px;border:1px solid #ffffff40;background:#071923;color:#fff;border-radius:4px;-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}#shareStatus{min-height:48px}
@media(orientation:landscape) and (max-height:550px){.share-launch{left:28%;top:auto;bottom:20px;font-size:13px;min-height:40px}}

#garage select,#garage a{pointer-events:auto}#startChoice{display:block;width:100%;max-width:350px;margin:4px 0 6px;background:#213641;color:#edf2e9;border:1px solid #ffffff40;border-radius:4px;padding:8px 10px;font:600 14px Barlow,system-ui;min-height:40px}.download-source{color:var(--cyan);font-size:15px}.route-label strong{font-size:12px}
@media(orientation:landscape) and (max-height:550px){#startChoice{font-size:12px;padding:5px 8px;min-height:31px}.route-label .eyebrow{display:none}.route-label strong{font-size:11px}.garage-panel{margin-top:24px}.car-detail>p{font-size:12px}.car-detail{min-height:47px}.garage-caption{bottom:68px}.share-launch{left:25px;transform:none;bottom:18px}.garage-footer>span{display:none}}

@media(orientation:landscape) and (max-height:370px){#garage .garage-panel{pointer-events:auto;max-height:calc(100dvh - 50px);overflow-y:auto;padding-right:4px}.car-detail{display:none}}
.weather-label{min-width:132px}.weather-label .eyebrow{display:block;margin-bottom:5px}.weather-label select{width:100%;background:#213641;color:#edf2e9;border:1px solid #ffffff40;border-radius:4px;padding:8px 9px;font:600 13px Barlow,system-ui;min-height:40px}
@media(max-width:650px) and (orientation:portrait){.weather-label{min-width:112px;flex:1}.weather-label select{font-size:12px;padding:7px;min-height:38px}}
@media(orientation:landscape) and (max-height:550px){.weather-label{min-width:105px}.weather-label .eyebrow{display:none}.weather-label select{font-size:11px;padding:5px 7px;min-height:31px}.race-tools{gap:5px}.race-tools button{padding:0 6px}}

.navigation>span{font-size:31px;transition:transform .2s}.mission-progress{height:3px;background:#ffffff2b;margin-top:7px;border-radius:2px;overflow:hidden}.mission-progress i{display:block;height:100%;width:33%;background:var(--acid);transition:width .25s}.garage-footer b{color:var(--acid);font-weight:600}.dev-menu{pointer-events:auto;position:absolute;right:22px;bottom:22px;display:grid;grid-template-columns:auto auto;gap:5px;padding:8px;background:#101e2aee;border:1px solid #d9f45a66;border-radius:5px;font-size:10px}.dev-menu label{grid-column:1/-1;color:var(--acid);letter-spacing:1px}.dev-menu select,.dev-menu button{background:#213641;color:#edf2e9;border:1px solid #ffffff35;padding:6px;font:600 10px Barlow,system-ui}.dev-menu button{color:var(--acid)}

/* Final layout: the mode selector gets its own row; dev controls never cover pedals. */
.race-setup{flex-wrap:wrap}.mode-switch{flex-basis:100%;display:flex;gap:6px}.mode-switch button{padding:8px 13px;border:1px solid #ffffff40;background:#213641;color:#edf2e9;border-radius:4px;font:600 14px Barlow,system-ui}.mode-switch button.selected{background:#d9f45a;color:#142631}.route-label{min-width:160px;flex:1}.dev-menu{top:105px;left:18px;right:auto;bottom:auto;max-width:250px}.hud-build-stamp{position:absolute;left:18px;bottom:5px;font:11px Barlow,system-ui;color:#d9e5db;pointer-events:none}
@media(orientation:landscape) and (max-height:550px){.mode-switch button{padding:5px 8px;font-size:12px}.race-setup{gap:6px}.dev-menu{top:72px;left:8px;max-width:205px;padding:5px}.dev-menu label{display:none}.dev-menu select{max-width:140px}.hud-build-stamp{font-size:10px;left:8px}.garage-panel{max-height:calc(100dvh - 55px);overflow-y:auto}}

@media(min-width:651px) and (min-height:561px){.navigation{top:max(18px,env(safe-area-inset-top))}}

@media(min-width:651px) and (max-width:780px) and (max-height:600px){.navigation{top:12px;min-width:210px;max-width:290px;padding:8px 10px}.navigation strong{font-size:13px}.navigation div>span{font-size:10px}.dev-menu{top:78px;max-width:195px}}

/* Five independent modes fit the existing mobile garage. */
.mode-switch{display:flex;flex-wrap:wrap;gap:5px}.mode-switch button{flex:1 0 auto;padding:9px 10px;min-height:40px}.mode-switch button:first-child{flex-basis:100%}@media(min-width:700px){.mode-switch button:first-child{flex-basis:auto}}

/* A persistent street label stays separate from mission guidance. */
.current-street{position:absolute;top:max(14px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);padding:7px 14px;max-width:48vw;background:#172c32d9;border-radius:5px;color:#edf2e8;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.street-change{position:absolute;top:57px;left:50%;transform:translateX(-50%);padding:7px 13px;background:#172c32d9;color:#edf2e8;border-radius:5px;font-size:14px;max-width:65vw;text-align:center}
#hud[data-mode="free"] .navigation{display:none}
#hud:not([data-mode="free"]) .navigation{top:65px;padding:10px 14px;min-width:0;max-width:42vw}
#hud:not([data-mode="free"]) .navigation strong{font-size:17px}
#toast{max-width:65vw;white-space:normal;text-align:center}
#diagnosticDetails{font:12px monospace;max-width:90vw;max-height:40vh;overflow:auto;text-align:left;background:#142830;color:white;padding:10px}
#diagnosticReport{white-space:pre-wrap} [hidden]{display:none!important}
.dev-menu{max-height:42vh;overflow:auto;font-size:12px;max-width:min(92vw,650px)}
.dev-menu label{display:inline-flex;align-items:center;gap:6px}.dev-menu output{display:block;white-space:pre-wrap;overflow-wrap:anywhere;max-height:70px;overflow:auto}.dev-menu pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:160px;overflow:auto}
@media(max-height:430px){.current-street{top:8px;padding:5px 10px}.street-change{top:40px;font-size:12px}.race-brand{font-size:22px}.timing strong{font-size:28px}#hud:not([data-mode="free"]) .navigation{top:43px}.minimap-wrap{width:105px;height:105px}#hudBuildStamp{font-size:10px}}
@media(max-width:500px) and (orientation:portrait){.current-street{top:85px;max-width:80vw}.street-change{top:123px}#hud:not([data-mode="free"]) .navigation{top:165px;max-width:85vw}.garage-panel{max-height:70dvh;overflow:auto}}

.qa-clean #hud>*:not(.current-street),.qa-clean .attribution,.qa-clean #shareButton{visibility:hidden}.qa-clean #hud .current-street{visibility:visible}

#garage .garage-panel{pointer-events:auto}
@media(max-width:500px) and (orientation:portrait){#hud:not([data-mode="free"]) .navigation{top:165px;left:14px;transform:none;width:calc(100vw - 146px);max-width:none;box-sizing:border-box;padding:8px}.minimap-wrap{width:108px;height:108px;right:14px}#hud:not([data-mode="free"]) .navigation strong{font-size:14px}}


/* Public beta mobile HUD v1. */
.navigation>div{min-width:0}
.navigation strong,.navigation div>span{overflow:hidden;text-overflow:ellipsis}
.race-tools button{min-height:44px;min-width:44px}
#pauseButton{min-height:44px;min-width:44px}
@media (max-width:650px) and (orientation:portrait), (orientation:landscape) and (max-height:550px){
 #hud{--edge-top:max(8px,env(safe-area-inset-top));--edge-left:max(12px,env(safe-area-inset-left));--edge-right:max(12px,env(safe-area-inset-right));background:linear-gradient(#06101c45,transparent 21%)}
 .race-top .race-brand{display:none}
 #pauseButton{position:absolute;right:var(--edge-right);top:var(--edge-top);width:44px;height:44px;font-size:20px}
 .timing{position:absolute;right:calc(var(--edge-right) + 52px);top:calc(var(--edge-top) + 3px);max-width:88px;margin:0}
 .timing>span{font-size:8px;letter-spacing:.25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .timing strong{font-size:20px;letter-spacing:.3px;line-height:1.1}
 .current-street{top:calc(var(--edge-top) + 3px);left:var(--edge-left);right:calc(var(--edge-right) + 148px);transform:none;max-width:none;padding:7px 9px;font-size:13px;line-height:18px;text-align:left}
 .street-change{top:calc(var(--edge-top) + 39px);left:var(--edge-left);transform:none;max-width:calc(100vw - 126px);height:23px;padding:3px 7px;font-size:11px;line-height:17px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #hud:not([data-mode="free"]) .navigation{top:calc(var(--edge-top) + 67px);left:var(--edge-left);transform:none;width:calc(100vw - 124px);min-width:0;max-width:320px;padding:6px 8px;gap:7px}
 #hud:not([data-mode="free"]) .navigation strong{font-size:13px;line-height:17px;white-space:nowrap}
 #hud:not([data-mode="free"]) .navigation div>span{font-size:10px;line-height:14px;white-space:nowrap;margin-top:1px}
 .navigation>span{font-size:25px;flex:0 0 24px}
 .mission-progress{margin-top:4px;height:2px}
 .minimap-wrap{top:calc(var(--edge-top) + 52px);right:var(--edge-right);width:82px;height:82px}
 .minimap-wrap canvas{width:82px;height:82px}
 .minimap-wrap>span{display:none}
 .race-tools{left:var(--edge-left);gap:5px}
 .race-tools button{width:44px;min-height:44px;padding:0;font-size:20px}
 .race-tools button span{display:none}
 #toast{top:auto;bottom:max(178px,calc(env(safe-area-inset-bottom) + 158px));font-size:12px;line-height:16px;padding:6px 10px;max-width:min(320px,calc(100vw - 32px));white-space:normal}
}
@media(max-width:650px) and (orientation:portrait){
 .race-tools{bottom:max(127px,calc(env(safe-area-inset-bottom) + 107px))}
 .speedometer{left:auto;right:max(17px,env(safe-area-inset-right));bottom:max(128px,calc(env(safe-area-inset-bottom) + 108px));transform:none;min-width:67px}
 .speedometer>strong{font-size:42px}.speedometer>span{font-size:9px}.speedometer .rpm{width:57px;margin:5px auto 0}
}
@media(orientation:landscape) and (max-height:550px){
 .current-street{max-width:370px}
 #hud:not([data-mode="free"]) .navigation{top:calc(var(--edge-top) + 66px);width:min(300px,calc(100vw - 280px))}
 .minimap-wrap,.minimap-wrap canvas{width:76px;height:76px}
 .race-tools{bottom:max(104px,calc(env(safe-area-inset-bottom) + 88px))}
 #toast{bottom:max(111px,calc(env(safe-area-inset-bottom) + 91px));max-width:min(330px,calc(100vw - 340px))}
}
/* RC: one street label, diagnostics in pause/info, all four tool targets 44px. */
#hudBuildStamp{display:none}.race-top .timing{display:none}
.current-street{right:calc(var(--edge-right,12px) + 56px)}
.street-change{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}
.current-street.street-updated{outline:1px solid var(--acid)}
#hud:not([data-mode="free"]) .navigation{top:max(52px,calc(env(safe-area-inset-top) + 48px))}
#pauseBuild{font-size:12px;overflow-wrap:anywhere}#pauseContext{font-size:15px}
@media(max-width:650px) and (orientation:portrait){.current-street{max-width:none}.speedometer{bottom:max(129px,calc(env(safe-area-inset-bottom) + 108px))}}
#loader .secondary{max-width:250px;width:auto;min-width:170px}body:has(#loader:not(.hidden)) .share-launch{display:none}
.attribution{font-size:8px;opacity:.75}button:focus-visible,a:focus-visible{outline:3px solid #d9f45a;outline-offset:2px}

#modeSwitch button[hidden],#personalModeInfo[hidden],#filmLastStory[hidden]{display:none}#filmStory{width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto}#filmStory h2{font:700 clamp(23px,4vw,29px)/1.15 system-ui,-apple-system,sans-serif;margin:14px 0 20px}#filmStory p{line-height:1.55}#filmStoryWhere{font-size:14px;opacity:.85}#filmStorySource{font-size:14px;color:var(--cyan);line-height:1.5}#filmStoryContinue{width:100%;min-height:48px}
