body.racing[data-mode=drift] .race-info,body.racing[data-mode=drift] .race-strip{display:none!important}
/* Circuit HUD: score left, course/lap progress right, larger map below. */
.circuit-score,.circuit-progress{position:fixed;z-index:7;pointer-events:none;text-shadow:0 2px 8px #120d22d9}
.circuit-score{left:var(--edge,28px);top:35px;color:var(--white,#fff0e7)}
.circuit-score>span{display:block;font:700 17px var(--display);letter-spacing:1px;color:var(--mint)}
.circuit-score>strong{display:block;font:800 italic 56px/.98 var(--display);margin:5px 0 8px}
#circuit-laptime{font:600 18px var(--display)}
.circuit-progress{right:var(--edge,28px);top:35px;width:min(420px,39vw)}
.circuit-progress>div:first-child{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px}
#circuit-map-name{font:800 italic 25px var(--display);color:var(--white)}
#circuit-lap{font:800 italic 24px var(--display);white-space:nowrap;color:var(--mint)}
#circuit-progress-meter{height:5px;background:#ffffff35;overflow:hidden;transform:skewX(-14deg)}
#circuit-lap-progress{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--pink),var(--mint));transition:width .12s linear}
.racing[data-mode=drift] .map-card{position:fixed;left:var(--edge,28px);bottom:42px;top:auto;transform:none;width:255px;padding:13px 15px;background:#18132980;border:1px solid #c6b4d426}
.racing[data-mode=drift] .map-card svg{width:100%;height:230px;display:block;overflow:visible}
.racing[data-mode=drift] .map-card>small{display:block;font:600 12px var(--display);color:#eee6f0ba;text-align:center;margin-top:8px}
.racing[data-mode=drift] #radio-panel{top:127px}
.racing[data-mode=drift] #online-board{top:128px}
.racing[data-mode=drift].radio-on #online-board{top:235px}
.racing[data-mode=drift] #duel-hud{top:128px;right:var(--edge,28px)}
.racing[data-mode=drift].radio-on #duel-hud{top:235px}
/* Chat stays transparent, including while composing. */
body.racing #room-chat,body.chat-open #room-chat{position:fixed;left:var(--edge,28px);top:230px;bottom:325px;width:430px;max-width:38vw;max-height:none;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;display:flex;flex-direction:column;pointer-events:none;z-index:12}
body.racing #room-chat .chat-heading{flex-shrink:0;display:flex;align-items:center;gap:15px;margin:0 0 10px;padding:0;background:none;text-shadow:0 2px 5px #120d22;font:700 16px var(--display);letter-spacing:.3px}
body.racing #chat-room{color:#eee8f1b3;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.racing #room-chat #chat-toggle{font:800 italic 19px var(--display);color:var(--mint);pointer-events:auto;letter-spacing:.4px}
body.racing #room-chat #chat-close{color:var(--mint);font:24px var(--display);pointer-events:auto}
body.racing #chat-messages{flex:0 1 auto;height:auto;max-height:100%;min-height:0;margin:0;padding:0 8px 0 0;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#8bf5dc66 transparent;mask-image:linear-gradient(transparent,#000 12px)}
body.racing #chat-messages li{display:flex;gap:10px;padding:5px 0;font:500 18px/1.4 var(--body,Arial,sans-serif);text-shadow:0 2px 4px #000,0 0 12px #000b;overflow-wrap:anywhere;transition:opacity .3s}
body.racing #chat-messages li b{flex:0 0 auto;max-width:140px;overflow-wrap:anywhere;color:var(--mint);font-weight:800;margin:0}
body.racing #chat-messages li b.you{color:var(--pink)}
body.racing #chat-messages li span{min-width:0}
body.racing:not(.chat-open) #chat-messages li.chat-expired{display:none;opacity:0}
body.racing:not(.chat-open) #chat-status{display:none}
body.racing.chat-open #chat-messages{flex:1 1 auto;overflow-y:auto;pointer-events:auto;padding-bottom:10px}
body.racing.chat-open #chat-messages li.chat-expired{display:flex;opacity:1}
body.racing #chat-form{flex-shrink:0;gap:8px;margin-top:12px;background:none}
body.racing #chat-form .chat-label{display:none}
body.racing #chat-input{border:0;border-bottom:2px solid var(--mint);border-radius:0;background:transparent!important;padding:11px 3px;font:500 18px var(--body,Arial,sans-serif);text-shadow:0 1px 4px #000}
body.racing #chat-form button{border:1px solid #8bf5dc80;background:transparent!important;font:800 italic 20px var(--display);color:var(--mint);transform:skewX(-8deg);padding:8px 14px}
body.racing #chat-status{font:500 13px var(--body,Arial,sans-serif);color:#eee8f1a0;margin-top:8px}
body.chat-open #room-chat{pointer-events:auto}
body[data-mode=sprint] #touch [data-key=w],body[data-mode=sprint] #touch [data-key=s],body[data-mode=sprint] #touch [data-key=" "]{display:none}
body[data-mode=sprint] .touch-pedals{background:none}
@media(max-width:800px){.circuit-score{top:80px}.circuit-score>strong{font-size:40px}.circuit-score>span{font-size:14px}#circuit-laptime{font-size:15px}.circuit-progress{top:25px;width:48vw}#circuit-map-name{font-size:20px}#circuit-lap{font-size:19px}.racing[data-mode=drift] .map-card{width:190px;bottom:22px;padding:10px}.racing[data-mode=drift] .map-card svg{height:170px}body.racing #room-chat{top:195px;bottom:255px;width:360px;max-width:56vw}body.racing #chat-messages li{font-size:16px}.racing[data-mode=drift] #radio-panel{display:none}}
@media(any-pointer:coarse){.racing[data-mode=drift] .map-card{bottom:175px;width:165px}.racing[data-mode=drift] .map-card svg{height:145px}body.racing #room-chat{bottom:360px;top:175px}}
@media(max-height:600px){.circuit-score{top:70px}.circuit-score>strong{font-size:35px}.circuit-progress{top:20px}.racing[data-mode=drift] .map-card{width:150px;bottom:20px}.racing[data-mode=drift] .map-card svg{height:125px}body.racing #room-chat{left:200px;top:100px;bottom:100px;max-width:38vw}body.racing #chat-messages li{font-size:15px}}
body.racing.chat-open[data-mode=drift] .map-card{visibility:visible}
body.racing.chat-open #chat-room{display:block;font-size:17px}
body.racing.chat-open #chat-status{display:block}

body.racing[data-mode=drift] .map-card{background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important}
body.racing[data-mode=drift] .map-card>small{display:none}

/* Roadside keycaps: readable, light, and clear of the larger minimap. */
#driving-hints{display:none;position:fixed;z-index:8;left:var(--edge,28px);bottom:max(20px,env(safe-area-inset-bottom));max-width:min(790px,75vw);gap:9px 17px;flex-wrap:wrap;pointer-events:none;text-shadow:0 2px 5px #0d081b}
body.racing #driving-hints[data-active=true]{display:flex}
.drive-hint{display:inline-flex;align-items:center;gap:7px;font:600 13px var(--body,Arial,sans-serif);color:#f7eff0cc}
.drive-hint kbd{font:800 italic 15px var(--display);padding:4px 7px;min-width:27px;text-align:center;color:var(--mint);border:1px solid #f8eff055;border-bottom:2px solid var(--pink,#ff3fa1);background:#1a112333;transform:skewX(-7deg)}
body.racing[data-mode=drift] .map-card{bottom:98px}
body.racing[data-mode=drift] #room-chat{bottom:390px}
.binding-heading,.binding-options{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.binding-heading select{font:800 italic 18px var(--display);background:#201a30;color:var(--mint);padding:9px;border:1px solid #9af6df55}
#binding-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 22px;margin:18px 0}.binding-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #ffffff1c;padding:8px 0;font:600 17px var(--body)}.binding-row button,#bindings-reset{min-width:92px;padding:8px 12px;background:#251b35;border:1px solid #8ff7d966;color:var(--mint);font:800 italic 18px var(--display)}.binding-row button[aria-pressed=true]{background:var(--pink,#ff3fa1);color:white;border-color:white}.binding-options label{font:600 15px var(--body)}#binding-status{min-height:2em;color:var(--mint);font-size:15px}.binding-fixed{font-size:14px!important;color:#ffffff99}
#social-notifications{position:fixed;z-index:95;left:50%;top:105px;transform:translateX(-50%);width:min(440px,90vw);display:grid;gap:10px;pointer-events:none}.social-notice{display:flex;align-items:center;gap:12px;padding:15px 17px;border-left:3px solid var(--mint);background:linear-gradient(105deg,#21162df2,#30213aeb);box-shadow:0 8px 30px #0a071933;pointer-events:auto;animation:social-arrive .28s ease-out}.social-notice[data-kind=challenge],.social-notice[data-kind=match]{border-color:var(--pink,#ff3fa1)}.social-notice>div{flex:1;min-width:0}.social-notice strong{font:800 italic 20px var(--display);color:var(--mint)}.social-notice p{margin:5px 0 0;font:500 15px/1.35 var(--body);color:#fff0ed;overflow-wrap:anywhere}.social-notice button{background:none;border:0;color:var(--mint);font:800 italic 16px var(--display);cursor:pointer;white-space:nowrap}.social-notice button:last-child{font:400 25px var(--body);color:#ffffff80}.social-notice button:focus-visible{outline:2px solid var(--mint)}#nav-friends[data-count]:after{content:attr(data-count);display:inline-grid;place-items:center;margin-left:8px;background:var(--pink,#ff3fa1);color:white;border-radius:50%;min-width:21px;height:21px;font:700 13px var(--body)}
@keyframes social-arrive{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:800px){#driving-hints{left:18px;max-width:78vw;gap:7px 10px}.drive-hint{font-size:12px}.drive-hint kbd{font-size:13px;padding:3px 5px}body.racing[data-mode=drift] .map-card{bottom:105px}body.racing[data-mode=drift] #room-chat{bottom:310px}#binding-list{grid-template-columns:1fr}.social-notice{padding:12px}.social-notice strong{font-size:18px}}
@media(any-pointer:coarse){#driving-hints{bottom:150px;max-width:90vw}body.racing[data-mode=drift] .map-card{bottom:230px}body.racing[data-mode=drift] #room-chat{bottom:410px}}
@media(max-height:600px) and (pointer:fine){body.racing[data-mode=drift] .map-card{bottom:100px}body.racing[data-mode=drift] #room-chat{left:200px;bottom:105px}#driving-hints{max-width:80vw;gap:6px 10px}}
@media(prefers-reduced-motion:reduce){.social-notice{animation:none}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Open room workspace shares the pause menu's typography and clear backdrop. */
#pause-online-slot{display:none!important}
body #online-board{display:none!important}
body.racing.pause-open.online-active #online-board:not(.hidden){display:flex!important;position:fixed;z-index:125;inset:17vh var(--edge,28px) 12vh calc(var(--edge,28px) + 490px);width:auto;max-width:none;flex-direction:column;gap:16px;padding:0 0 0 24px;background:none!important;border:0!important;border-radius:0;box-shadow:none!important;backdrop-filter:none!important;overflow:auto;pointer-events:auto;transform:none;text-shadow:0 2px 10px #10091fc0;scrollbar-width:thin;scrollbar-color:#85f0cc70 transparent}
#room-panel-name{font:800 italic clamp(42px,4vw,72px)/1 var(--display);text-transform:uppercase;color:var(--white);margin:0;overflow-wrap:anywhere}
#online-board #connection-state{display:none}
#online-board #online-count{font:800 italic 25px var(--display);color:var(--mint)}
#online-board>div:first-child{display:flex;justify-content:space-between;gap:12px}
#online-board .room-code-label{margin:0 0 14px;font:700 italic 20px var(--display);color:#fff0e7aa}
#online-board #room-code{color:var(--mint);font:800 italic 27px var(--display);letter-spacing:2px;margin-left:12px}
#online-board #online-scores{display:flex;flex-direction:column;gap:0;list-style:none;padding:0;margin:0;max-height:none;overflow:visible;counter-reset:driver}
#online-board #online-scores li{counter-increment:driver;display:flex;align-items:center;gap:22px;border:0;border-bottom:1px solid #ffffff24;padding:18px 0;min-height:86px}
#online-scores li:before{content:counter(driver,decimal-leading-zero);flex:0 0 36px;font:800 italic 28px var(--display);color:var(--mint)}
.room-driver-copy{display:grid;gap:3px;flex:1;min-width:0}.room-driver-copy strong{font:800 italic clamp(24px,2.2vw,34px)/1.1 var(--display);color:var(--white);overflow-wrap:anywhere}.room-driver-copy>span{font:700 italic 18px var(--display);color:#fff0e79e}
.room-driver-actions{display:flex;gap:12px;flex-wrap:wrap}
#online-board .room-driver-actions button{background:none;border:0;border-bottom:2px solid var(--mint);padding:8px 10px;font:800 italic 21px var(--display);color:var(--mint);cursor:pointer}
#online-board .room-driver-actions button:last-child{border-color:var(--pink);color:var(--white)}#online-board .room-driver-actions button:hover{color:white;border-color:white}#online-board button:focus-visible{outline:2px solid var(--mint);outline-offset:4px}#online-board button:disabled{opacity:.45;cursor:default}
#room-action-status{font:600 17px/1.35 var(--body);color:var(--mint);margin:0;min-height:1em}
#online-board #online-leave{display:none!important}
#room-challenge-form{padding:16px 0;border:0;border-top:2px solid var(--pink);background:none;gap:16px;grid-template-columns:minmax(120px,1fr) 90px auto auto;align-items:end}
#room-challenge-form:not(.hidden){display:grid}#room-challenge-form>strong{grid-column:1/-1;font:800 italic 28px var(--display);color:var(--mint)}#room-challenge-form label{display:grid;gap:8px;font:700 italic 18px var(--display)}#room-challenge-form select,#room-challenge-form input{width:100%;padding:10px;background:#20152d80;border:0;border-bottom:1px solid var(--mint);color:white;font:700 20px var(--display)}#room-challenge-form button{padding:12px;background:var(--pink);clip-path:var(--cut);color:white;border:0;font:800 italic 21px var(--display)}#room-challenge-form #room-challenge-cancel{background:none;color:var(--mint)}
body.racing.pause-open.online-active #radio-panel,body.racing.pause-open.online-active .circuit-score,body.racing.pause-open.online-active .circuit-progress,body.racing.pause-open.online-active .speed,body.racing.pause-open.online-active .map-card{visibility:hidden}
@media(max-width:1100px){body.racing.pause-open.online-active #online-board:not(.hidden){left:calc(var(--edge,28px) + 380px);top:14vh;padding-left:16px}body.online-active.pause-open .modal-card{width:340px}.room-driver-actions{gap:8px}#online-board .room-driver-actions button{font-size:18px;padding:6px}#room-challenge-form{grid-template-columns:1fr 80px}#online-board #online-scores li{gap:12px}}
/* A dedicated turntable and large next/previous controls replace the filmstrip. */
body.garage-open #car-cards{display:none!important}
#garage-selector,#garage-orbit,#garage-view-controls{display:none}
body.garage-open #garage-selector{position:fixed;z-index:32;left:calc(var(--edge,28px) + 355px);right:var(--edge,28px);bottom:24px;display:flex;align-items:center;justify-content:center;gap:28px;padding:16px 22px;background:linear-gradient(100deg,#281c37df,#281c3740);border-bottom:2px solid var(--pink);pointer-events:auto}#garage-selector>div{text-align:center;min-width:200px}#garage-selected-name{display:block;font:800 italic 32px var(--display);color:var(--white)}#garage-selected-count{display:block;margin-top:5px;font:600 15px var(--body);color:var(--mint)}#garage-selector>button{background:#ffffff0d;border:1px solid #91f6da70;color:var(--mint);font:800 30px var(--display);width:60px;height:55px;cursor:pointer}
body.garage-open #garage-orbit{display:block;position:fixed;z-index:6;left:calc(var(--edge,28px) + 350px);right:var(--edge,28px);top:calc(var(--nav-height,84px) + 90px);bottom:210px;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}#garage-orbit:active{cursor:grabbing}#garage-orbit:focus-visible{outline:1px dashed #8cf5da70;outline-offset:-10px}
body.garage-open #garage-view-controls{position:fixed;display:flex;align-items:center;justify-content:center;gap:16px;z-index:32;left:calc(var(--edge,28px) + 350px);right:var(--edge,28px);bottom:150px;font:600 13px var(--body);color:#ffffffa0;pointer-events:auto}#garage-view-controls button{background:#24172e99;border:1px solid #ffffff33;color:var(--mint);padding:8px 12px;font:800 italic 20px var(--display);cursor:pointer}#garage-view-controls #garage-view-reset{font-size:15px}
@media(max-width:1100px){body.garage-open #garage-selector,body.garage-open #garage-view-controls,body.garage-open #garage-orbit{left:340px}#garage-selected-name{font-size:25px}#garage-selector>div{min-width:150px}}
@media(max-width:800px){body.racing.pause-open.online-active #online-board:not(.hidden){inset:12vh 3% 10vh 46%;width:auto;padding:0 0 0 16px}body.online-active.pause-open .modal-card{width:40vw;left:3%;padding-right:10px}.room-driver-copy strong{font-size:16px}.room-driver-actions{flex-wrap:wrap}#online-board .room-driver-actions button{font-size:13px;padding:6px}#room-panel-name{font-size:26px}body.garage-open #garage-selector{left:15px;right:15px;bottom:14px;gap:16px;padding:10px}body.garage-open #garage-view-controls{left:285px;right:15px;bottom:145px;gap:8px;flex-wrap:wrap}body.garage-open #garage-orbit{left:285px;right:15px;top:210px;bottom:230px}#garage-selector>button{width:48px;height:46px;font-size:25px}#garage-selected-name{font-size:24px}}
@media(max-width:600px){body.racing.pause-open.online-active #online-board:not(.hidden){inset:49vh 20px 20px;width:auto;padding:0}body.online-active.pause-open .modal-card{left:16px;right:16px;top:20px;bottom:auto;width:auto;max-height:42vh}body.garage-open #garage-panel{width:200px;padding:12px;bottom:105px}body.garage-open #garage-orbit{left:225px;right:8px;top:200px;bottom:190px}body.garage-open #garage-view-controls{left:225px;right:8px;bottom:105px;font-size:10px;gap:5px}#garage-view-controls button{padding:5px 8px}#garage-view-controls>span{display:none}#garage-selector>div{min-width:130px}#garage-selected-name{font-size:21px}}
body.garage-open #car-select,body.garage-open label[for="car-select"]{display:none}
body.racing.pause-open.online-active #online-board:not(.hidden){z-index:125}
body.pause-open #online-board #online-leave{display:none!important}
body.racing.pause-open.online-active.account-open #online-board:not(.hidden),body.racing.pause-open.online-active.settings-open #online-board:not(.hidden){display:none!important}
#social-notifications{z-index:150}

/* Radio metadata follows the right edge of its HUD panel. */
#radio-panel #radio-title,#radio-panel #radio-artist,#radio-panel #radio-album{text-align:right}

/* Sunset Sprint COLLISION / CLOSE CALL popups sit high in the sky, clear of traffic, the HUD strip (top-left) and the speedometer. */
#message.sprint-notice{top:clamp(104px,14vh,150px);font-size:clamp(34px,5vw,60px);line-height:1;text-shadow:0 3px 18px #12172b,0 0 26px #73ebd277}

/* Stable garage selector: navigation remains at the outer edges for all car names. */
body.garage-open #garage-selector{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;justify-content:stretch;align-items:center;gap:12px;}
#garage-selector>div{min-width:0;width:100%;text-align:center;}
#garage-selected-name{max-width:100%;overflow-wrap:break-word;line-height:1.05;}
#garage-prev{justify-self:start;}
#garage-next{justify-self:end;}
@media(max-width:600px){body.garage-open #garage-selector{grid-template-columns:44px minmax(0,1fr) 44px;gap:6px;}}
