/* NIGHTSHIFT / AFTER HOURS — a car-first racing interface. */
:root{--ink:#151226;--panel:#181429eb;--pink:#ff277c;--mint:#85f0cc;--cut:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%);--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif}
button,input,select{font-family:inherit}button{transition:background .16s,border-color .16s,transform .16s}button:disabled{cursor:wait}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:4px}button:hover:not(:disabled){filter:brightness(1.1)}
header{padding:20px 3.5%;border:0;pointer-events:none}header>*{pointer-events:auto}.brand{font-size:14px;letter-spacing:2px}.edition{display:none}.brand-icon{font-size:22px}.topright{gap:7px;font-size:8px}.topright>span{display:none}.topright button{background:#171329ad;border:0;border-bottom:2px solid #ffffff20;padding:10px 13px;font-size:9px}.menu-active header .brand,.menu-active #pause{visibility:hidden}.menu-active .topright #graphics{visibility:hidden}
#menu{position:fixed;inset:auto;top:7vh;left:5%;width:350px;max-height:calc(100dvh - 135px);overflow-y:auto;overflow-x:hidden;padding:0 12px 14px 0;z-index:4;scrollbar-width:thin;scrollbar-color:#85f0cc50 transparent}
#menu::before{background:linear-gradient(90deg,#151126d9 0%,#15112685 23%,#15112600 58%)}
.menu-kicker{font-size:8px;letter-spacing:2.5px;color:#d9c5dc;margin:0 0 7px 15px}.menu-wordmark{font:900 italic clamp(64px,6.8vw,104px)/.95 var(--display);letter-spacing:-1px;margin:0 0 28px 5px;white-space:nowrap}.menu-wordmark::after{content:'';display:block;width:85%;height:4px;margin:7px 0 0 8px;background:linear-gradient(90deg,var(--mint),transparent);transform:skewY(-4deg)}
#main-nav{display:flex;flex-direction:column;gap:7px;width:280px}.nav-item{border:0;background:#21182fba;color:var(--white);text-align:left;padding:9px 28px 11px;font:800 italic 32px/1.1 var(--display);clip-path:var(--cut);letter-spacing:.5px;min-height:50px}.nav-item.selected,.nav-item:focus-visible{background:var(--pink);color:white}.nav-item:hover{background:#6d365b}.nav-item:focus-visible{outline:0;box-shadow:inset 6px 0 0 var(--mint)}
#start{margin:26px 0 0;width:330px;min-width:0;clip-path:var(--cut);background:var(--pink);color:#fff6ee;box-shadow:none;font:800 italic 29px/1 var(--display);letter-spacing:.5px;min-height:59px;padding:15px 28px;gap:10px}.start:hover{transform:translateX(3px)}#start span{color:var(--mint);font-size:28px}.hint{margin:14px 0 0 16px;font-size:7px;letter-spacing:1.6px}
#drive-panel{display:none}body[data-screen=drive] #main-nav{display:none}body[data-screen=drive] #drive-panel{display:block}body[data-screen=online] #nav-online{background:var(--pink)}body[data-screen=online] #start{visibility:hidden}.panel-back{background:none;border:0;padding:9px 0;font-size:9px;font-weight:600;letter-spacing:1.5px;color:var(--mint)}#drive-panel h2{font:800 italic 28px/1 var(--display);margin:8px 0 17px}.mode-select{display:flex;flex-direction:column;margin:0;gap:10px}.mode-choice{position:relative;isolation:isolate;overflow:hidden;flex:none;min-height:126px;padding:18px 20px;border:1px solid #ffffff28;background:linear-gradient(100deg,#23172ff5,#3c244d70);clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%)}.mode-choice::before{content:'';position:absolute;inset:0;z-index:-1;background:url('ui/cars/challenger.png') right bottom/75% auto no-repeat;opacity:.35;pointer-events:none}.mode-choice#mode-drift::before{background-image:url('ui/cars/rx7.png')}.mode-choice .mode-number{font-size:7px;letter-spacing:1.5px;color:var(--mint)}.mode-choice strong{font:800 italic 30px/1 var(--display);letter-spacing:.3px;white-space:normal}.mode-choice small{font-size:7px;letter-spacing:.5px;color:#e0cfe0;white-space:normal}.mode-choice.selected{border-color:var(--mint);background:linear-gradient(100deg,#214039ec,#36305270)}.mode-choice.selected strong{color:#fff0e7}.personal-best{font-size:8px;letter-spacing:1px;color:#c8b6ce;display:flex;justify-content:space-between;margin:16px 0 0}.personal-best strong{color:var(--mint)}
#online-panel{display:none!important}.menu-active[data-screen=online] #online-panel:not(.hidden){display:block!important;left:calc(5% + 365px);right:auto;top:24vh;width:320px;padding:26px;border:0;border-left:3px solid var(--mint);background:var(--panel);animation:panel-in .2s ease-out}.radio-on #online-panel{top:24vh}#online-panel h3{font:800 italic 36px/1 var(--display)}#online-panel .eyebrow{font-size:8px}#online-panel input{border:1px solid #ffffff30;background:#090d2120;padding:13px}#online-panel .start{background:var(--pink);color:white;clip-path:var(--cut);box-shadow:none;font:800 italic 23px var(--display);min-height:50px}#online-panel label{font-size:8px}#online-panel small{font-size:9px;line-height:1.65}
#scene-label{right:5%;bottom:110px;text-align:right;gap:7px;pointer-events:none}#scene-label strong{font:800 italic 34px/1.1 var(--display);letter-spacing:.5px}#scene-label small{font-size:7px}#scene-label span{font-size:8px;letter-spacing:2px}.garage-open #scene-label{visibility:hidden}
footer{padding:18px 3.5%;border:0;background:linear-gradient(transparent,#120f25cc);pointer-events:none}.controls{gap:15px}.controls>span{font-size:7px;letter-spacing:.4px}.footer-right{font-size:7px}.menu-controls{display:none;gap:19px;align-items:center}.menu-controls>span{display:flex;align-items:center;gap:6px;font-size:8px;letter-spacing:.5px}.menu-active .menu-controls{display:flex}.menu-active footer .controls{display:none}.racing .footer-right{display:none}.racing .controls{opacity:.7}kbd{border-radius:0;border-color:#fff5;font-size:8px}.menu-active #touch{display:none}
/* Stationary garage, collection strip and compact paint controls. */
#garage-heading,#car-cards{display:none}.garage-open #garage-heading{position:fixed;display:flex;align-items:center;justify-content:space-between;z-index:8;top:4vh;left:5%;right:5%}#garage-heading>div{display:flex;flex-direction:column;gap:5px}#garage-heading strong{font:900 italic 53px/.95 var(--display)}#garage-heading span{font-size:8px;letter-spacing:2px;color:var(--mint)}#garage-heading .panel-back{padding:13px 18px;background:#171329a8}
#garage-panel{left:5%;top:150px;width:300px;max-height:calc(100dvh - 360px);padding:22px 22px 20px;border:0;border-left:3px solid var(--mint);box-shadow:none;background:var(--panel);scrollbar-width:thin;scrollbar-color:#85f0cc50 transparent;animation:panel-in .2s ease-out}#garage-panel h2{font:800 italic 30px/1 var(--display);margin:14px 0 6px}#garage-panel p{font-size:10px;margin:10px 0 15px}#garage-panel label{font-size:8px;letter-spacing:1px;margin:13px 0 9px}#garage-panel select{padding:10px;font-size:11px;background:#282138}#garage-panel small{font-size:8px;margin:11px 0}.paint-swatches{gap:6px}.paint-swatches button{height:24px;border-radius:0}.paint-swatches button[aria-pressed=true]{outline-width:1px}#garage-panel .start{background:var(--mint);clip-path:var(--cut);box-shadow:none;font:800 italic 24px/1 var(--display);padding:12px 18px;min-width:0}#garage-panel .secondary{letter-spacing:1px;font-size:8px;padding:12px}#garage-panel .eyebrow{font-size:7px;letter-spacing:2px}#car-status{min-height:14px;color:var(--mint)!important}
.garage-open #car-cards{position:fixed;z-index:8;display:flex;gap:12px;left:5%;right:5%;bottom:70px;overflow-x:auto;padding:5px;scrollbar-width:thin;scrollbar-color:#85f0cc50 transparent}.car-card{position:relative;flex:1;min-width:170px;max-width:240px;padding:4px 16px 13px;background:linear-gradient(135deg,#1d1929f0,#4a2a4dc9);border:1px solid #ffffff35;text-align:left;transform:skewX(-5deg);overflow:hidden}.car-card>*{transform:skewX(5deg)}.car-card img{display:block;width:100%;height:80px;object-fit:contain}.car-card strong{display:block;font:800 italic 23px/1 var(--display);letter-spacing:.4px}.car-card small{display:block;margin-top:5px;color:#c6b3ce;font-size:7px;white-space:nowrap}.car-card.selected{border:2px solid var(--mint);background:linear-gradient(135deg,#263b3bf0,#482b4cc9)}.car-card:focus-visible{outline-offset:0}
/* Clean race information; the road and the car stay unobstructed. */
.race-info{top:89px;left:3.5%;width:340px;padding:14px 17px;background:linear-gradient(110deg,#19152ccf,#19152c44);border:0;border-left:3px solid var(--pink);backdrop-filter:none}.race-info label #race-title{font:800 italic 20px/1 var(--display);letter-spacing:.3px}.race-info label{align-items:center;gap:18px}.race-info label #sector{font-size:8px;white-space:nowrap}.progress{margin:11px 0;height:2px}.race-numbers small{font-size:6px;letter-spacing:1px}.race-numbers strong{font:700 21px/1 var(--display)}.race-numbers div{gap:5px}.race-numbers b{font-family:inherit;font-size:9px}.speed{right:4%;bottom:88px;width:255px}.speed>div:first-child{gap:8px;align-items:baseline}.speed strong{font:800 italic 105px/.9 var(--display);text-shadow:0 3px 18px #14102580}.speed span{font-size:9px;letter-spacing:1px;color:var(--white)}#gear{display:grid;place-items:center;align-self:center;width:42px;height:43px;border:2px solid var(--mint);font:800 italic 31px/1 var(--display);margin-left:auto;background:#17132980;transform:skewX(-8deg)}.nitro-label{margin:12px 0 8px;font:800 italic 14px/1 var(--display);letter-spacing:.7px}.nitro-label span{font:600 7px/1 'Space Grotesk',Arial,sans-serif;color:var(--mint)}.boost{height:9px;box-shadow:none;background:#ffffff20;overflow:hidden}.boost i{box-shadow:none;position:relative}.boost i::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 21px,#151226 21px 24px)}
.map-card{left:3.5%;bottom:85px;width:175px;padding:10px;background:linear-gradient(135deg,#17132990,transparent);border:0;backdrop-filter:none}.map-card svg{width:145px;height:130px;margin:5px auto}.map-card>div{font-size:6px;color:#e6d6e9;letter-spacing:1px}.map-card small{display:none}.drift-readout{top:auto;bottom:86px;min-width:220px}.drift-readout strong{font:800 italic 56px/1 var(--display);color:var(--white);text-shadow:0 3px 15px #0c102477}.drift-readout b{font:800 italic 30px/1 var(--display);color:var(--pink)}.drift-readout>span{font:800 italic 16px/1 var(--display);letter-spacing:.8px}.drift-readout small{font-size:7px;letter-spacing:.6px}#banked-points{position:fixed;z-index:5;bottom:160px;left:50%;transform:translate(-50%,10px);opacity:0;pointer-events:none;font:800 italic 28px/1 var(--display);color:var(--mint);transition:opacity .2s,transform .25s;text-shadow:0 3px 16px #11142b}#banked-points.visible{opacity:1;transform:translate(-50%,0)}#message.lap-notice{top:100px;font-size:42px;text-shadow:0 3px 20px #12172b;letter-spacing:1px}
/* Pause retains the scene, with online simulation left running. */
#modal{background:linear-gradient(90deg,#100e25ee,transparent 85%);backdrop-filter:none;justify-content:flex-start;padding:6vh 5%;z-index:9}.modal-card{background:none;border:0;padding:20px 0;width:360px;min-width:0;max-height:85vh;overflow:auto;text-align:left}.modal-card .eyebrow{justify-content:flex-start;font-size:8px}.modal-card h2{font:800 italic 65px/.95 var(--display);margin:20px 0}.modal-card p{font-size:11px;max-width:300px;line-height:1.7}.modal-card .start{clip-path:var(--cut);background:var(--pink);color:white;box-shadow:none;font:800 italic 26px/1 var(--display);padding:17px 24px;min-width:0}.modal-card .secondary{border:0;background:#2b203dc9;clip-path:var(--cut);text-align:left;font:800 italic 23px/1 var(--display);letter-spacing:.5px;padding:15px 24px;margin-top:9px}
#settings-panel{position:fixed;z-index:15;inset:8vh auto auto 5%;width:390px;max-height:84dvh;overflow:auto;background:#181429f7;border-left:3px solid var(--mint);padding:22px 28px 30px;box-shadow:0 20px 100px #0c0b2599;animation:panel-in .2s ease-out}#settings-panel>.eyebrow{font-size:8px;margin-top:14px}#settings-panel h2{font:800 italic 50px/1 var(--display);margin:15px 0 26px}#settings-panel #graphics-panel{position:static;width:auto;padding:0 0 22px;border:0;border-bottom:1px solid #fff2;box-shadow:none;background:none}#settings-panel h3{font:800 italic 22px/1 var(--display);letter-spacing:.5px;margin:0 0 17px}#settings-panel #graphics-panel small{font-size:8px;line-height:1.6}.audio-settings{padding-top:24px}.audio-settings>div{display:flex;justify-content:space-between;align-items:center;margin:12px 0;font-size:9px;letter-spacing:.8px}.audio-settings button{background:#30253f;border:1px solid #fff3;padding:9px 16px;font-size:10px}.audio-settings button[aria-pressed=true]{color:var(--mint);border-color:var(--mint)}.audio-settings small{font-size:8px;color:#c3b2cd;line-height:1.7}
#credits-modal{background:#100e26de;backdrop-filter:blur(4px);z-index:18}.credits-card{max-width:680px;padding:36px 42px;border:0;border-left:3px solid var(--mint);background:#1b172bf5;box-shadow:none}.credits-card h2{font:800 italic 46px/1 var(--display)}.credits-card p{font-size:11px;line-height:1.8}
#radio-panel{right:3.5%;top:78px;width:225px;padding:11px 15px;border:0;border-right:2px solid var(--mint);background:#181429b8;transition:width .3s,padding .3s}.radio-expanded #radio-panel{width:280px;padding:16px 20px}#radio-panel strong{font:800 italic 21px/1 var(--display);margin:5px 0}#radio-panel>span:first-child{font-size:7px}#radio-artist{font-size:8px}#radio-album{font-size:7px;margin-top:3px}.radio-expanded #radio-panel strong{font-size:29px}
#online-board{right:3.5%;top:80px;min-width:0;width:auto;max-width:320px;padding:10px 13px;border:0;border-right:2px solid var(--pink);background:#181429b8}#online-board>div{gap:15px;font-size:7px;letter-spacing:.3px}#online-board ol,#online-board #online-leave{display:none}.radio-on #online-board{top:210px}.pause-open #online-board{width:285px;top:100px;padding:20px;z-index:10}.pause-open.radio-on #online-board{top:210px}.pause-open #online-board ol,.pause-open #online-board #online-leave{display:block}.pause-open #online-board ol{max-height:45vh;overflow:auto}.pause-open #online-board #online-leave{margin-top:12px;width:100%;padding:12px}
@keyframes panel-in{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}
@media(min-width:1600px){#menu{width:400px}#main-nav{width:320px}.nav-item{font-size:37px;min-height:57px}#start{width:370px;font-size:33px}.menu-active[data-screen=online] #online-panel:not(.hidden){left:calc(5% + 430px)}}
@media(max-height:760px){#menu{top:5vh}.menu-wordmark{font-size:70px;margin-bottom:20px}.menu-kicker{font-size:7px}.nav-item{font-size:27px;min-height:42px;padding:7px 26px}.nav-item+ .nav-item{margin-top:0}#main-nav{gap:5px}#start{margin-top:18px;min-height:53px;font-size:26px}.hint{font-size:6px}.mode-choice{min-height:105px;padding:13px 18px}.mode-choice strong{font-size:27px}#drive-panel h2{font-size:25px;margin:5px 0 12px}#garage-panel{top:125px;max-height:calc(100dvh - 320px)}#garage-heading strong{font-size:43px}.car-card img{height:65px}.car-card strong{font-size:20px}#car-cards{bottom:58px}.car-card small{font-size:6px}.modal-card h2{font-size:52px}.speed{bottom:72px}.map-card{bottom:65px}.drift-readout{bottom:70px}#banked-points{bottom:145px}}
@media(max-width:900px){.menu-wordmark{font-size:70px}#menu{width:300px}#main-nav{width:245px}.nav-item{font-size:28px}#start{width:280px;font-size:26px}.menu-active[data-screen=online] #online-panel:not(.hidden){left:auto;right:4%;width:280px;top:28vh}.speed{width:205px;right:3%;bottom:90px}.speed strong{font-size:85px}#gear{width:33px;height:36px;font-size:25px}.map-card{width:145px;left:2%;bottom:85px}.map-card svg{width:120px;height:110px}.drift-readout strong{font-size:43px}.drift-readout b{font-size:23px}.drift-readout>span{font-size:12px}.race-info{left:3%;top:80px;width:300px}.race-info label #race-title{font-size:18px}#garage-panel{width:265px;left:3%}#garage-heading{left:3%;right:3%}.car-card{min-width:155px}.car-card small{display:none}#settings-panel{width:350px;left:4%}.modal-card{width:310px}.topright button{font-size:8px;padding:9px}.controls>span{font-size:6px}}
@media(max-width:600px){#menu{top:12vh;left:6%;width:255px;max-height:calc(100dvh - 170px)}.menu-wordmark{font-size:59px;margin-bottom:23px}.menu-kicker{font-size:6px;letter-spacing:1px}#main-nav{width:220px;gap:6px}.nav-item{min-height:40px;font-size:26px;padding:7px 23px}#start{width:240px;font-size:25px;padding:14px 22px}.hint{display:none}.mode-choice{min-height:105px;padding:13px 15px}.mode-choice strong{font-size:24px}.mode-choice small{font-size:6px}body[data-screen=online] #main-nav{display:none}.menu-active[data-screen=online] #online-panel:not(.hidden){left:6%;right:6%;top:calc(12vh + 108px);bottom:auto;width:auto;max-height:calc(88dvh - 190px);overflow:auto;padding:20px}.menu-active[data-screen=online] #online-panel label{display:block}#online-panel input{display:block;width:100%}#online-panel .eyebrow,#online-panel h3{display:block}#online-panel h3{font-size:30px}#online-panel p{display:none}#scene-label{bottom:110px;right:6%}#scene-label strong{font-size:22px;max-width:240px}#scene-label small{display:none}.menu-controls{gap:10px}.menu-controls>span{font-size:6px}footer{padding:18px 6%}.footer-right{display:none}header{padding:15px 5%}.topright{gap:4px}.topright button{font-size:7px;padding:8px 6px}.brand{font-size:10px}.brand-icon{font-size:16px}.garage-open #garage-heading{top:70px}#garage-heading strong{font-size:35px}#garage-heading span{font-size:6px}#garage-heading .panel-back{font-size:7px;padding:8px}#garage-panel{top:145px;left:5%;width:225px;max-height:calc(100dvh - 340px);padding:16px}#garage-panel h2{font-size:25px}#garage-panel p{font-size:8px}.paint-swatches{gap:5px}.paint-swatches button{height:20px}.garage-open #car-cards{left:4%;right:4%;bottom:60px;gap:9px}.car-card{min-width:135px;padding:4px 10px 12px}.car-card img{height:60px}.car-card strong{font-size:18px}#settings-panel{inset:65px 5% auto;width:90%;max-height:calc(100dvh - 100px);padding:19px 23px}#settings-panel h2{font-size:40px;margin-bottom:22px}.modal-card{width:270px}.modal-card h2{font-size:48px}.modal-card .secondary{font-size:20px}.race-info{width:270px;top:65px;padding:10px 13px;left:4%}.race-info label #race-title{font-size:17px}.race-numbers small{font-size:5px}.race-numbers strong{font-size:18px}.speed{right:5%;width:175px;bottom:115px}.speed strong{font-size:72px}#gear{width:30px;font-size:22px;height:32px}.speed span{font-size:7px}.map-card{left:3%;bottom:112px;width:110px;padding:6px}.map-card svg{width:95px;height:90px}.map-card>div{font-size:5px}.drift-readout{bottom:235px;min-width:190px}.drift-readout strong{font-size:38px}.drift-readout small{display:none}#banked-points{bottom:305px;font-size:22px}#message.lap-notice{top:185px;font-size:29px}#radio-panel{top:155px;right:5%;width:175px;padding:9px 11px}.radio-expanded #radio-panel{width:200px;padding:11px 14px}#radio-panel strong{font-size:18px}.radio-expanded #radio-panel strong{font-size:22px}#online-board{top:80px;right:4%;max-width:200px}.radio-on #online-board{top:80px}.pause-open #online-board{top:auto;bottom:95px;right:5%;width:200px}.pause-open.radio-on #online-board{top:auto}.pause-open #online-board ol{max-height:20vh}.credits-card{padding:25px}.credits-card h2{font-size:34px}.racing footer{display:none}}
@media(pointer:coarse){.racing footer{display:none}.menu-active footer{display:flex}#touch{gap:7px;bottom:16px}#touch button{padding:14px 10px;border-radius:0;background:#171329bf;min-width:42px}.drift-readout{bottom:150px}.speed,.map-card{bottom:115px}.garage-open #touch{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

#main-nav #customize-open{color:var(--white)}

@media(max-width:600px){.garage-open #garage-heading{top:70px;left:5%;right:5%}}
/* Rooms and room-local chat. */
.menu-active[data-screen=online] #online-panel:not(.hidden){top:16vh;width:350px;max-height:calc(84dvh - 90px);overflow:auto;padding:22px 25px}
#online-panel h3{font-size:32px}#online-panel p{font-size:10px;line-height:1.5}#online-panel input{width:100%;box-sizing:border-box}#online-panel #online-create{width:100%;margin:12px 0 0;font-size:23px}#online-panel small{display:block;margin-top:10px}#online-status{color:var(--mint)}
.room-divider{font-size:8px;letter-spacing:1.5px;opacity:.6;margin:20px 0 10px}.room-join{display:flex;gap:8px}.room-join input{min-width:0;flex:1;text-transform:uppercase;letter-spacing:3px}.room-join button{background:var(--pink);border:0;padding:0 17px;font-weight:800;color:white}.room-list-title{display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:1px;margin:20px 0 9px}.room-list-title button{border:0;background:none;color:var(--mint);font-size:8px;padding:6px}#room-list{max-height:135px;overflow:auto;display:grid;gap:5px}.room-row{display:flex;flex-direction:column;gap:5px;text-align:left;border:1px solid #ffffff24;background:#ffffff08;color:var(--cream);padding:11px;cursor:pointer}.room-row:hover{background:#ffffff17;border-color:var(--mint)}.room-row strong{font-size:12px}.room-row span{font-size:9px;color:var(--mint)}.room-row:disabled{opacity:.4;cursor:default}.room-code-label{font-size:8px;letter-spacing:1px;color:#ffffff9c;margin:9px 0 0}.room-code-label b{font-size:12px;color:var(--mint);user-select:none;letter-spacing:2px;margin-left:8px}
#chat-toggle{position:fixed;left:3%;bottom:73px;z-index:12;border:1px solid #ffffff33;background:#181429df;color:var(--mint);font:700 9px var(--body,sans-serif);letter-spacing:1px;padding:11px 15px;cursor:pointer}#room-chat{position:fixed;left:3%;bottom:117px;width:350px;max-width:90vw;z-index:24;background:#141327ed;border-left:3px solid var(--mint);padding:15px;box-shadow:0 15px 50px #0005;color:#f4eee8;box-sizing:border-box}.chat-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:10px;letter-spacing:.7px}.chat-heading strong{overflow-wrap:anywhere}.chat-heading button{color:white;border:0;background:none;font-size:24px;cursor:pointer}#chat-messages{height:180px;overflow:auto;padding:0;margin:8px 0 14px;list-style:none;scrollbar-width:thin}#chat-messages li{font-size:12px;line-height:1.5;padding:5px 0;overflow-wrap:anywhere}#chat-messages b{color:var(--pink);margin-right:8px}#chat-messages b.you{color:var(--mint)}#chat-form{display:flex;gap:7px}#chat-input{min-width:0;flex:1;background:#ffffff0d;border:1px solid #ffffff35;color:white;font:12px sans-serif;padding:11px}#chat-form button{border:0;background:var(--pink);color:white;font-weight:800;font-size:10px;padding:8px}#chat-status{display:block;font-size:8px;line-height:1.4;color:#ffffff90;margin-top:8px}.chat-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.chat-open .map-card{visibility:hidden}
@media(max-height:740px) and (min-width:601px){.menu-active[data-screen=online] #online-panel:not(.hidden){top:12vh;padding:17px 22px;max-height:calc(88dvh - 70px)}#online-panel p{display:none}#online-panel input{padding:9px}.room-divider{margin-top:12px}.room-list-title{margin-top:12px}#room-list{max-height:95px}}
@media(max-width:900px){.menu-active[data-screen=online] #online-panel:not(.hidden){width:300px;right:3%;left:auto}}
@media(max-width:600px){.menu-active[data-screen=online] #online-panel:not(.hidden){top:calc(12vh + 108px);left:6%;right:6%;width:auto;max-height:calc(88dvh - 185px)}#chat-toggle{left:4%;bottom:65px;font-size:8px}#room-chat{left:4%;bottom:108px;width:320px}#chat-messages{height:130px}.room-code-label{font-size:7px}.room-code-label b{font-size:10px}}
/* Persistent, unobtrusive chat; button-pink panel only while composing. */
#room-chat{left:3%;top:30vh;bottom:auto;width:420px;max-width:40vw;z-index:8;padding:12px 14px;background:transparent;border:0;box-shadow:none;pointer-events:none;transition:background .18s ease}
#room-chat .chat-heading{font-size:11px;justify-content:flex-start;gap:13px;text-shadow:0 1px 4px #000b}
#room-chat #chat-toggle{position:static;display:block;left:auto;bottom:auto;z-index:auto;border:0;padding:5px 0;background:transparent;color:var(--mint);font:700 10px sans-serif;letter-spacing:.6px;white-space:nowrap;pointer-events:auto}
#room-chat #chat-close{display:none;margin-left:auto}
#chat-messages{height:auto;max-height:24vh;min-height:20px;margin:9px 0 6px;padding-right:7px;overflow:auto;scrollbar-width:none}
#chat-messages li{font-size:16px;line-height:1.5;padding:3px 0;text-shadow:0 1px 3px #000e,0 0 9px #0007}
#chat-messages b{margin-right:9px}#chat-status{font-size:10px;text-shadow:0 1px 3px #000c;color:#fff9}
#chat-form{display:none}#chat-input{font:15px/1.4 sans-serif;background:transparent;border:1px solid #ffffff50;padding:10px}
.chat-open #room-chat{background:rgb(255 39 124 / 20%);pointer-events:auto}
.chat-open #room-chat #chat-toggle{display:none}.chat-open #room-chat #chat-close{display:block}
.chat-open #chat-form{display:flex;margin-top:10px}.chat-open #chat-form button{background:rgb(255 39 124 / 20%);border:1px solid #ffffff50;font-size:11px;padding:10px}
/* One settings entry while driving; all audio/video controls live in its panel. */
#game-settings{display:none;position:fixed;right:3.5%;bottom:17px;z-index:8;align-items:center;gap:14px;background:#21182fcc;border:1px solid #ffffff30;border-left:2px solid var(--mint);color:#fff0e7;padding:11px 17px;font-size:10px;letter-spacing:1.2px;cursor:pointer}.racing #game-settings{display:flex}#game-settings span{font-size:15px;color:var(--mint)}
.audio-settings .volume-heading{margin:17px 0 10px;font-size:10px}.volume-heading label{cursor:pointer}.volume-heading output{color:var(--mint);font-size:11px;font-variant-numeric:tabular-nums}
.audio-settings input[type=range]{display:block;width:100%;height:22px;margin:0 0 18px;padding:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer;accent-color:var(--mint)}
.audio-settings input[type=range]::-webkit-slider-runnable-track{height:5px;background:linear-gradient(to right,var(--mint) var(--volume,0%),#ffffff30 var(--volume,0%));border-radius:0}
.audio-settings input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:12px;height:19px;margin-top:-7px;background:var(--mint);border:2px solid #f0fff9;box-shadow:0 2px 7px #0005}
.audio-settings input[type=range]::-moz-range-track{height:5px;background:#ffffff30}.audio-settings input[type=range]::-moz-range-progress{height:5px;background:var(--mint)}.audio-settings input[type=range]::-moz-range-thumb{width:9px;height:16px;border:2px solid #f0fff9;background:var(--mint);border-radius:0}
.audio-settings small{display:block}.audio-settings #audio-status{color:#ffb4ce;margin-top:10px}
@media(max-height:720px){#room-chat{top:32vh}#chat-messages{max-height:19vh}}
@media(max-width:600px){#room-chat{top:185px;left:3%;width:330px;max-width:88vw;padding:10px 12px}#chat-messages{max-height:18vh}#chat-messages li{font-size:14px}#room-chat .chat-heading{font-size:9px}#room-chat #chat-toggle{font-size:9px}#chat-status{font-size:9px}#game-settings{bottom:78px;right:4%;padding:8px 11px;font-size:9px}}

#settings-panel .view-heading{margin-top:24px}#settings-panel #quality-description{margin:11px 0 24px;color:var(--mint);line-height:1.7}
#drift-map-picker{margin:18px 0 8px;padding:15px;border:1px solid #85f0cc40;background:#201c31b8}#drift-map-picker label{display:block;font-size:8px;letter-spacing:1.5px;color:var(--mint);margin-bottom:9px}#drift-map-picker select{display:block;width:100%;padding:11px;background:#282138;color:#fff0e7;border:1px solid #fff4;font-size:13px}#solo-track-preview{display:block;width:100%;height:90px;color:var(--mint);margin-top:10px}#solo-map-stats{display:block;color:#fff0e7;font-size:10px;letter-spacing:.8px;margin:9px 0}#solo-map-description{display:block;font-size:10px;line-height:1.6;color:#cebcd1}.room-sidebar select{display:block;width:100%;background:#282138;color:#fff0e7;border:1px solid #fff4;font-size:14px;padding:11px;margin-bottom:10px}#online-panel .room-sidebar #online-map-description{font-size:10px;line-height:1.6;color:var(--mint)}

body[data-screen=drive] .mode-choice{min-height:96px;padding:13px 18px}body[data-screen=drive] .menu-wordmark{font-size:78px;margin-bottom:20px}body[data-screen=drive] #solo-track-preview{height:65px}body[data-screen=drive] #drift-map-picker{margin-top:12px;padding:12px}body[data-screen=drive] #start{margin-top:16px}
@media(max-height:760px){body[data-screen=drive] .menu-wordmark{font-size:58px;margin-bottom:12px}body[data-screen=drive] .mode-choice{min-height:80px;padding:10px 14px}body[data-screen=drive] .mode-choice strong{font-size:24px}body[data-screen=drive] #solo-track-preview{height:45px}body[data-screen=drive] #solo-map-description{font-size:9px}}

#online-create-map{display:block;width:100%;height:130px;color:var(--mint);background:#ffffff04;margin:12px 0}

.controller-settings{border-top:1px solid #fff2;padding-top:14px;margin:20px 0}.controller-settings h3{font:800 italic 24px var(--display)}.controller-settings p{font-size:11px;line-height:1.8;color:var(--mint)}.controller-settings small{font-size:10px;line-height:1.6;color:#c8b6ce}.controller-settings .controller-toggle{display:flex;align-items:center;gap:10px;font-size:11px}.controller-settings input[type=checkbox]{width:18px;height:18px;accent-color:var(--mint)}.controller-settings label[for=controller-deadzone]{display:flex;justify-content:space-between;font-size:10px;margin:18px 0 8px}.controller-settings input[type=range]{width:100%;accent-color:var(--mint)}

/* Selection/gesture suppression is confined to the driving surface and buttons. */
#touch,#touch *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:none}#touch{position:fixed;left:4%;right:4%;width:auto;bottom:max(16px,env(safe-area-inset-bottom));z-index:20;align-items:flex-end;justify-content:space-between;gap:18px;pointer-events:none}#touch .touch-steering,#touch .touch-actions{display:flex;gap:9px;pointer-events:none}#touch .touch-actions{flex-direction:column;gap:8px}#touch .touch-aux,#touch .touch-pedals{display:flex;justify-content:flex-end;gap:8px;pointer-events:none}#touch button{display:flex;justify-content:center;align-items:center;margin:0!important;padding:0;min-width:0;border:1px solid #8bf5dc70;border-radius:12px;background:#171329c9;color:#fff0e7;font:800 12px var(--body,sans-serif);letter-spacing:.8px;box-shadow:0 5px 20px #0003;pointer-events:auto;outline:none;touch-action:none;-webkit-appearance:none;appearance:none}#touch .touch-steering button{width:clamp(52px,8vw,68px);height:66px;font-size:22px}#touch .touch-aux button{width:73px;height:42px;font-size:11px}#touch .touch-pedals button{width:66px;height:72px}#touch .touch-pedals [data-key=w]{width:80px;background:#21483ecc;border-color:#8bf5dca0}#touch button.is-pressed{background:#ff568fce;border-color:#ffe0ec;transform:scale(.96);box-shadow:0 0 14px #ff568f40}#touch.touch-blocked{visibility:hidden}.menu-active #touch,.pause-open #touch,.garage-open #touch{display:none!important}
@media(any-pointer:coarse){.racing #touch{display:flex}.racing footer{display:none}.racing .speed{bottom:185px}.racing .map-card{bottom:185px}.racing .drift-readout{bottom:200px}.racing #game-settings{bottom:calc(148px + env(safe-area-inset-bottom));right:4%}.racing #social-open{bottom:calc(148px + env(safe-area-inset-bottom));right:145px}}
.touch-device.racing #touch{display:flex}
@media(max-width:400px){#touch{left:3%;right:3%;gap:10px}#touch .touch-steering button{width:48px;height:60px}#touch .touch-steering{gap:6px}#touch .touch-aux button{width:65px}#touch .touch-pedals button{width:58px;height:68px}#touch .touch-pedals [data-key=w]{width:72px}}
@media(max-height:500px) and (any-pointer:coarse){.racing .race-info{top:58px;width:225px;padding:10px}.racing .race-numbers strong{font-size:19px}.racing .race-numbers small{font-size:6px}.racing .map-card{top:58px;bottom:auto;left:50%;transform:translateX(-50%);width:100px;padding:6px}.racing .map-card svg{width:85px;height:72px}.racing .speed{bottom:165px;width:150px}.racing .speed strong{font-size:65px}.racing .drift-readout{bottom:145px}.racing .drift-readout strong{font-size:32px}#touch .touch-steering button{height:56px}#touch .touch-pedals button{height:62px}#touch .touch-aux button{height:36px}}
.touch-device.racing footer{display:none}.touch-device.racing .speed{bottom:185px}.touch-device.racing .map-card{bottom:185px}.touch-device.racing .drift-readout{bottom:200px}.touch-device.racing #game-settings{bottom:calc(148px + env(safe-area-inset-bottom));right:4%}.touch-device.racing #social-open{bottom:calc(148px + env(safe-area-inset-bottom));right:145px}#touch button:focus-visible{outline:2px solid var(--mint);outline-offset:3px}

.touch-mode-choice{display:grid;gap:9px;margin:15px 0 20px;padding:14px;border:1px solid #ffffff28;border-radius:12px;background:#181426;}
.touch-mode-choice h3{margin:0;color:#83e7dc;}.touch-mode-choice label{font-size:11px;letter-spacing:.1em;color:#ccc1d5;}
.touch-mode-choice select{width:100%;max-width:340px;background:#221b31;color:#fff;border:1px solid #75547c;border-radius:7px;padding:9px;}
.controller-key-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:9px;margin:10px 0 17px;}
.controller-key-grid>div{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #ffffff24;border-radius:10px;background:#191626;min-width:0;}
.controller-key-grid kbd{display:grid;place-items:center;min-width:33px;min-height:29px;padding:3px 6px;box-sizing:border-box;border:1px solid #82dfd1;border-radius:6px;color:#8ceee1;background:#2d2941;font:700 12px system-ui;}
.controller-key-grid span{font:700 10px/1.4 system-ui;letter-spacing:.05em;color:#eee;overflow-wrap:anywhere;}

/* Explicit touch preference overrides legacy coarse-pointer and mobile !important rules. */
body.touch-mode-disabled #touch,body.touch-mode-disabled.mobile-layout.racing #touch{display:none!important;visibility:hidden!important;pointer-events:none!important;}
body.touch-mode-enabled.racing:not(.pause-open):not(.settings-open):not(.account-open):not(.chat-open) #touch{display:flex!important;}

.controller-live-status{margin:12px 0;padding:11px 14px;border:1px solid #ffffff30;background:#1b1828;border-radius:9px;color:#b5abc4;font-size:11px;letter-spacing:.08em}.controller-live-status.connected{color:#8bf5dc;border-color:#8bf5dc66}

.car-card.car-locked{position:relative;filter:saturate(.6);border-color:#ffffff22!important}.car-card.car-locked img{opacity:.45}.car-unlock-status{display:block;font:600 9px/1.5 system-ui;color:#a7e8db;max-width:100%;white-space:normal;overflow-wrap:anywhere;margin-top:5px}.car-unlock-status span{display:block}.car-unlock-progress{display:block;height:4px;margin:5px 0;background:linear-gradient(90deg,#85f0cc var(--progress),#ffffff30 var(--progress));border-radius:4px}.controller-key-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))!important}.controller-key-grid>div{min-height:56px;box-shadow:inset 0 1px #ffffff10}.controller-key-grid kbd{font-size:13px;min-width:40px;min-height:34px}.controller-live-status.connected{color:#85f0cc}
