/* Preserve the approved car artwork at every screen size. */
.mobile-dash-material,#harbor-wayfinding,#harbor-gamepad{display:none}
.cockpit{overflow:visible!important;clip-path:inset(0)}
#harbor-wayfinding{position:absolute;z-index:7;bottom:18px;left:50%;transform:translateX(-50%);gap:6px;padding:7px;background:#0c1825c9;border:1px solid #50758180;border-radius:8px;backdrop-filter:blur(6px);width:max-content;max-width:94%;flex-wrap:wrap;justify-content:center}
#harbor-wayfinding button{font-size:11px;padding:10px 15px;min-height:44px;background:linear-gradient(#293a42,#15232b);border-color:#73949566;color:#d5e6e3}
#harbor-wayfinding button[aria-current=location]{border-color:#5cf0ef;color:#a0ffff;box-shadow:inset 0 0 12px #2fd6e626}
.destination-open #harbor-wayfinding{display:flex}
#harbor-gamepad{position:absolute;z-index:7;bottom:88px;left:50%;transform:translateX(-50%);gap:8px;align-items:center;width:max-content;max-width:94%;padding:6px;border-radius:7px;background:#14242bd9;border:1px solid #7a938b80;flex-wrap:wrap;justify-content:center}
.destination-open[data-destination=runner] #harbor-gamepad,.destination-open[data-destination=catcher] #harbor-gamepad{display:flex}
#harbor-gamepad #arcade-controls,#harbor-gamepad #booth-controls{display:flex;gap:5px}
#harbor-gamepad #booth-controls{flex-wrap:wrap;gap:4px}
#harbor-gamepad button{font-size:11px;min-height:44px;padding:9px 12px}
#harbor-gamepad #game-reset{min-width:58px}
.destination-open .cockpit{height:calc(100svh - 150px);min-height:520px;padding:0;overflow:clip}
.destination-open .exterior{height:100%}
.destination-open .plate,.destination-open .wheel{display:block;opacity:0;transform:translateY(150px);transition:opacity .65s,transform .65s;pointer-events:none}
.destination-open .mobile-dash-material{display:none}
.destination-open #radio-dock .radio{background:linear-gradient(#0b111dd9,#0b111ee8),url('assets/dashboard-clean-v2.png') 65% bottom/1400px auto;border-top:1px solid #887350}
.destination-open #destination-tools{background:linear-gradient(#15232aed,#08141ced);border-color:#447179}
.destination-open #destination-help{max-width:690px}
.harbor-travelling #harbor-wayfinding{border-color:#94ced080}
.plate,.wheel{transition:opacity .65s;opacity:1}
@media(min-width:651px){
 body:not(.destination-open) .cockpit{aspect-ratio:1672/941;height:auto;min-height:0;padding:0;overflow:clip}
 body:not(.destination-open) .exterior{height:64%}
 body:not(.destination-open) #speed-streaks{height:64%}
 body:not(.destination-open) .plate{display:block;inset:0;width:100%;height:100%;object-fit:cover;clip-path:none;transform:none}
 body:not(.destination-open) .instrument-rack{display:contents}
 body:not(.destination-open) .speed-dial{display:block;position:absolute;left:.45%;top:66%;width:13.4%;height:auto;border:0;background:none;filter:none}
 body:not(.destination-open) .speed-dial .ticks{display:none}
 body:not(.destination-open) .wheel{display:block;left:-20%;top:52%;width:48%;height:auto;transform:none}
 body:not(.destination-open) .route-map{display:block;position:absolute;left:32%;top:66%;width:14%;height:20%;max-width:none;padding:.5% 0 0;justify-self:auto}
 body:not(.destination-open) .route-map svg{width:86%;height:64%}
 body:not(.destination-open) .route-map span{font-size:clamp(6px,.6cqw,11px)}
 body:not(.destination-open) .route-map time{font-size:clamp(9px,1cqw,16px);margin-top:.6cqw}
 body:not(.destination-open) .radio{position:absolute;left:50.2%;top:66%;width:32.3%;height:21%;margin:0;padding:.65%;grid-template-columns:26% 1fr;gap:4%;border:0;border-radius:4px;background:linear-gradient(110deg,#101713d9,#101512f0)}
 body:not(.destination-open) .radio>img{width:100%}
 body:not(.destination-open) .radio .station{font-size:clamp(8px,.85cqw,16px);margin:0 0 .5cqw;letter-spacing:.2em}
 body:not(.destination-open) .radio h1{font-size:clamp(10px,1cqw,18px);margin:0 0 .3cqw}
 body:not(.destination-open) .radio .artist{font-size:clamp(7px,.72cqw,12px);margin:0 0 .6cqw}
 body:not(.destination-open) .radio .times{font-size:clamp(7px,.65cqw,12px);margin:.35cqw 0 0}
 body:not(.destination-open) .seek-label input{height:.4cqw}
 body:not(.destination-open) .radio-controls{margin-top:.6cqw;gap:.3cqw;flex-wrap:nowrap}
 body:not(.destination-open) .radio-controls button{min-width:2.7cqw;height:2.9cqw;font-size:1cqw;padding:.3cqw}
 body:not(.destination-open) .radio-controls #play{width:3.3cqw;height:3.3cqw;font-size:.75cqw}
 body:not(.destination-open) .radio .volume{font-size:.55cqw;width:auto;max-width:4.5cqw;margin-left:.3cqw}
 body:not(.destination-open) .volume input{height:.4cqw;margin:.4cqw 0}
 body:not(.destination-open) .service-bank{position:absolute;left:51.1%;top:89.9%;width:30.3%;padding:.2cqw .3cqw .35cqw;transform:skewX(-1deg)}
 body:not(.destination-open) .service-bank .platforms{gap:.45cqw;flex-wrap:nowrap}
 body:not(.destination-open) .service-bank a{flex:1;min-width:0;min-height:2.65cqw;padding:.4cqw .5cqw;font-size:clamp(7px,.64cqw,12px)}
 body:not(.destination-open) .service-caption{font-size:clamp(6px,.48cqw,10px);margin:0 0 .4cqw}
 body:not(.destination-open) .moon-spill,body:not(.destination-open) .lamp-spill,body:not(.destination-open) .lamp-shadow{display:block}
 body:not(.destination-open) header{top:3.4%;left:3%;right:3%;font-size:clamp(9px,1cqw,17px)}
 body:not(.destination-open) header>a{max-width:none}
 body:not(.destination-open) .welcome{top:10%;left:7%;right:auto;padding:22px;max-width:460px}
 body:not(.destination-open) .welcome h2{font-size:clamp(28px,4.2cqw,70px)}
}
@media(max-width:650px){
 body:not(.destination-open) .cockpit{--road-height:max(43svh,320px);padding-top:var(--road-height);aspect-ratio:auto;overflow:clip!important}
 body:not(.destination-open) .exterior,body:not(.destination-open) #speed-streaks{height:var(--road-height)}
 body:not(.destination-open) .mobile-dash-material{display:block;position:absolute;z-index:1;top:var(--road-height);bottom:0;left:0;right:0;background:url('assets/dashboard-clean-v2.png') 58% bottom/auto 1100px;background-color:#1e2528}
 body:not(.destination-open) .plate{display:block;inset:auto;top:calc(var(--road-height) - 265px);left:50%;width:850px;height:auto;max-width:none;object-fit:contain;transform:translateX(-50%);clip-path:none;z-index:2}
 body:not(.destination-open) .instrument-rack{display:grid;position:relative;z-index:3;grid-template-columns:120px minmax(0,1fr);height:208px;padding:25px 18px 30px;gap:18px;background:none;border:0}
 body:not(.destination-open) .speed-dial{display:block;position:relative;left:auto;top:auto;width:120px;height:120px;align-self:start;background:radial-gradient(circle,#172126 59%,#ae8053 60%,#0c1116 64%);border:1px solid #bd905c;box-shadow:0 0 0 5px #13181e,0 0 0 7px #a17e5580}
 body:not(.destination-open) .speed-dial .ticks{display:block}
 body:not(.destination-open) .route-map{height:130px;max-width:165px;background:#0b1719ed;border:2px solid #9c7852;box-shadow:inset 0 0 20px #000,0 0 0 5px #171c22,0 0 0 7px #634f3e}
 body:not(.destination-open) .wheel{display:block;position:absolute;top:calc(var(--road-height) + 20px);left:-155px;width:330px;height:330px;z-index:4}
 body:not(.destination-open) .radio{position:relative;z-index:5;left:auto;top:auto;margin:0 12px 12px;width:auto;height:auto;padding:15px;grid-template-columns:58px minmax(0,1fr);gap:12px;background:linear-gradient(120deg,#0c1717ed,#101514ed);border:2px solid #a47d52;border-radius:8px;box-shadow:0 0 0 5px #171b20,inset 0 0 18px #000}
 body:not(.destination-open) .radio>img{width:58px}
 body:not(.destination-open) .radio .station{font-size:9px}
 body:not(.destination-open) .radio h1{font-size:15px}
 body:not(.destination-open) .radio-controls{gap:3px;flex-wrap:wrap}
 body:not(.destination-open) .radio-controls button{min-width:40px;min-height:44px}
 body:not(.destination-open) .service-bank{position:relative;z-index:5;margin:0 12px 15px;padding:12px;background:#10181ce0;border-color:#a3825b}
 body:not(.destination-open) .service-bank a{min-height:44px;font-size:10px;flex:1 1 100px}
 body:not(.destination-open) .welcome{top:70px;max-width:380px;padding:15px}
 body:not(.destination-open) .welcome h2{font-size:31px;margin:10px 0}
 body:not(.destination-open) .welcome p{font-size:10px}
 #harbor-wayfinding{bottom:12px;width:94%;padding:6px;gap:5px}
 #harbor-wayfinding button{font-size:10px;padding:8px 10px;min-height:44px}
 #harbor-gamepad{bottom:128px;gap:5px;padding:5px}
 #harbor-gamepad button{font-size:10px;padding:8px 9px}
 .destination-open .cockpit{height:76svh;min-height:490px}
 .destination-open header{left:14px;right:14px}
}
@media(max-width:650px) and (max-height:500px){body:not(.destination-open) .cockpit{--road-height:270px}.destination-open .cockpit{height:90svh;min-height:320px}}
@media(max-height:500px){.destination-open .cockpit{height:calc(100svh - 24px);min-height:320px}.destination-open header{top:12px}#harbor-wayfinding{bottom:10px}#harbor-gamepad{bottom:76px}}
@media(prefers-reduced-motion:reduce){.plate,.wheel{transition:none}}

#cabinet-select{display:flex;flex-wrap:wrap;gap:8px}#cabinet-select[hidden]{display:none}#cabinet-select button{min-height:44px}#harbor-gamepad #booth-controls button{min-width:44px;padding:8px 10px}

.lamp-shadow{display:none!important}

.cockpit::after{content:"";position:absolute;inset:0;z-index:9;pointer-events:none;background:#07101a;opacity:0}
.cruise-seating .cockpit::after{opacity:var(--entry-shade,0)}
.drive-settling .cockpit::after{animation:cabin-settle .45s ease-out both}
@keyframes cabin-settle{from{opacity:1}to{opacity:0}}
.motion-off .plate,.motion-off .wheel{transition:none}.motion-off .cockpit::after{display:none}
@media(prefers-reduced-motion:reduce){.cockpit::after{display:none}}

/* Tactile companion to the modeled booth terminal: real outbound anchors, same radio. */
@media(max-width:1000px){.destination-open header button{min-height:44px}.destination-open header{top:max(12px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right))}.destination-open #destination-tools,.destination-open #radio-dock .radio{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}#harbor-wayfinding{bottom:max(12px,env(safe-area-inset-bottom))}}
@media(max-width:350px){#harbor-gamepad #booth-controls{justify-content:center}#harbor-gamepad{bottom:136px}#harbor-wayfinding button{padding:8px 9px}.destination-open header>a{max-width:105px}.destination-open header button{padding:7px 5px}}

#release-reader{width:min(1100px,96vw);max-width:96vw;height:90svh;max-height:90svh;padding:12px;background:#101e29;overflow:hidden}#release-reader>button{display:block;margin:0 0 10px auto;min-height:44px}#release-reader iframe{width:100%;height:calc(100% - 54px);border:0;background:#101b21}
.destination-open #radio-dock .radio .service-bank{display:block;position:relative;grid-column:1/-1;left:auto;top:auto;width:100%;box-sizing:border-box;transform:none;padding:10px 0 0;background:none;border:0;box-shadow:none}
.destination-open .service-bank .platforms{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.destination-open .service-bank a{display:flex;justify-content:center;align-items:center;min-height:44px;padding:6px;font-size:12px;text-align:center;box-sizing:border-box;background:linear-gradient(#35464f,#16242f);border-color:#728b96}
.destination-open .service-caption{font-size:10px;margin:0 0 8px;color:#adc9ca}
@media(max-width:600px){.destination-open .service-bank .platforms{grid-template-columns:repeat(2,minmax(0,1fr));}.destination-open #radio-dock .radio{padding-bottom:max(16px,env(safe-area-inset-bottom));}}

/* Reserve the native player’s measured height, so its service buttons stay in view. */
.destination-open .cockpit{height:calc(100svh - var(--harbor-dock-height,220px));min-height:0}
@media(min-width:1001px){
 .destination-open #radio-dock .radio{grid-template-columns:56px minmax(0,1fr) minmax(400px,.9fr);gap:18px;padding:12px 4%;align-items:center}
 .destination-open .radio>img{width:56px;height:56px}
 .destination-open #radio-dock .radio .service-bank{grid-column:3;padding:0;align-self:center}
 .destination-open .service-caption{margin-bottom:6px}
 .destination-open .radio-body{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:20px}
 .destination-open .radio-body>:not(.radio-controls){grid-column:1}
 .destination-open .radio-body .radio-controls{grid-column:2;grid-row:1/6;margin:0;align-self:center;flex-wrap:nowrap}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #harbor-wayfinding{left:18px;top:84px;bottom:auto;transform:none;width:210px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));box-sizing:border-box}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #harbor-wayfinding button{padding:8px 4px;min-width:0}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #harbor-gamepad{left:auto;right:18px;top:104px;bottom:auto;transform:none;width:170px;box-sizing:border-box}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #harbor-gamepad #arcade-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #harbor-gamepad #arcade-controls button{min-width:44px;width:100%;box-sizing:border-box}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #game-reset{width:100%}
}
@media(max-width:1000px) and (max-height:500px) and (orientation:landscape){
 .destination-open #radio-dock .radio{padding:8px 16px;grid-template-columns:40px minmax(0,1fr);gap:8px}
 .destination-open .radio>img{width:40px;height:40px}
 .destination-open .radio-body{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;column-gap:16px}
 .destination-open .radio .station,.destination-open .radio .artist,.destination-open .radio .service-caption{display:none}
 .destination-open .radio h1{font-size:13px;grid-column:1;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .destination-open .radio .seek-label,.destination-open .radio .times{grid-column:1;margin:0}
 .destination-open .radio .radio-controls{grid-column:2;grid-row:1/4;margin:0;flex-wrap:nowrap;gap:6px;align-items:center}
 .destination-open #radio-dock .radio .service-bank{padding:0}
 .destination-open .service-bank a{font-size:11px}
}
@media(max-width:1000px) and (max-height:500px) and (orientation:landscape){
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #harbor-wayfinding{left:10px;top:70px;bottom:auto;transform:none;width:214px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:6px;box-sizing:border-box}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #harbor-wayfinding button{min-width:0;padding:8px 4px;font-size:10px;white-space:nowrap}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #harbor-gamepad{left:auto;right:10px;top:70px;bottom:auto;transform:none;width:142px;box-sizing:border-box}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #harbor-gamepad #arcade-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:100%}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #harbor-gamepad #game-reset{width:100%;padding:6px}
}
@media(max-width:650px) and (orientation:portrait){
 .destination-open:is([data-destination=runner],[data-destination=catcher]) .exterior{height:calc(100% - 134px)}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #harbor-wayfinding{width:94%;flex-wrap:nowrap;bottom:8px;padding:5px}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #harbor-wayfinding [data-destination]:not([data-destination=harbor]):not([data-destination=arcade]){display:none}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #harbor-wayfinding button{flex:1;min-width:0}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #harbor-gamepad{bottom:72px;width:94%;padding:5px;flex-wrap:nowrap;box-sizing:border-box}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #arcade-controls{flex:1;gap:4px}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #arcade-controls button{flex:1;min-width:44px;padding:5px}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #game-reset{min-width:60px;width:60px;padding:4px;font-size:9px}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) #radio-dock .radio{padding:8px 16px;grid-template-columns:40px minmax(0,1fr);gap:8px}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) .radio>img{width:40px;height:40px}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) .radio :is(.station,.artist,.service-caption){display:none}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) .radio .radio-controls{margin-left:-48px;gap:5px;flex-wrap:nowrap;justify-content:center}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) .service-bank{padding:0!important}
 .destination-open:is([data-destination=runner],[data-destination=catcher]) .service-bank .platforms{gap:4px}
}

/* Approved Listening Room: keep the model clear, with player and wayfinding below. */
.destination-open[data-destination=booth] #radio-dock{background:#0b171d}
.destination-open[data-destination=booth] #radio-dock .radio{background:linear-gradient(115deg,#152329,#0c171e);border-top:1px solid #506168}
.destination-open[data-destination=booth] #harbor-wayfinding{position:relative;left:auto;top:auto;bottom:auto;transform:none;width:100%;margin:0;padding:0;min-height:44px;box-sizing:border-box;display:flex;justify-content:center;gap:6px;flex-wrap:wrap;background:#0b171d;border:0;border-top:1px solid #263c44;border-radius:0;box-shadow:none;z-index:2}
.destination-open[data-destination=booth] #harbor-wayfinding button{min-height:44px;min-width:86px;padding:8px 12px;font-size:11px;margin:0;border-radius:0;background:transparent;border:0}
.destination-open[data-destination=booth] #harbor-wayfinding button[aria-current=location],.destination-open[data-destination=booth] #booth-view{color:#9acdd0;border-bottom:2px solid #638e96}
@media(min-width:1001px){
 .destination-open[data-destination=booth] #radio-dock .radio{height:76px;min-height:0;box-sizing:border-box;padding:10px 2.5%;grid-template-columns:56px minmax(0,1fr) minmax(400px,.8fr)}
 .destination-open[data-destination=booth] .radio :is(.station,.artist){display:none}
 .destination-open[data-destination=booth] .radio h1{font-size:14px;line-height:18px;margin:0}
 .destination-open[data-destination=booth] .radio .times{font-size:9px;line-height:12px;margin:0}
 .destination-open[data-destination=booth] .radio .seek-label{margin:0}
 .destination-open[data-destination=booth] .service-caption{font-size:9px;line-height:10px;margin:0 0 2px}
 .destination-open[data-destination=booth] .service-bank a{font-size:11px}
}
@media(max-width:600px){
 .destination-open[data-destination=booth] #harbor-wayfinding{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
 .destination-open[data-destination=booth] #harbor-wayfinding button{min-width:0;padding:6px 2px;font-size:10px}
}
@media(max-width:600px){
 .destination-open[data-destination=booth] #radio-dock .radio{padding:10px 12px;gap:8px;grid-template-columns:40px minmax(0,1fr)}
 .destination-open[data-destination=booth] .radio>img{width:40px;height:40px;align-self:start}
 .destination-open[data-destination=booth] .radio :is(.station,.artist){display:none}
 .destination-open[data-destination=booth] .radio h1{font-size:16px;line-height:20px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .destination-open[data-destination=booth] .radio-body{min-width:0;display:grid;gap:3px}
 .destination-open[data-destination=booth] .radio .seek-label{margin:0}
 .destination-open[data-destination=booth] .radio .times{margin:0;font-size:10px;line-height:12px}
 .destination-open[data-destination=booth] .radio .radio-controls{display:grid;grid-template-columns:44px 64px 44px minmax(64px,1fr);gap:5px;align-items:center;margin:0}
 .destination-open[data-destination=booth] .radio .radio-controls button{width:100%;min-width:0;min-height:44px;padding:4px;font-size:13px}
 .destination-open[data-destination=booth] .radio .volume{display:block;width:auto;min-width:0;margin:0;font-size:9px}
 .destination-open[data-destination=booth] .radio .volume input{width:100%;min-width:0}
 .destination-open[data-destination=booth] #radio-dock .service-bank{padding:0!important}
 .destination-open[data-destination=booth] .service-caption{font-size:9px;line-height:10px;margin:0 0 3px}
 .destination-open[data-destination=booth] .service-bank a{font-size:11px}
}
