button{cursor:pointer}button,select{color:#eac39d;background:#191e22;border:1px solid #625044;border-radius:4px;padding:10px 16px;font:inherit}button:hover{background:#31302c}button:disabled{opacity:.5;cursor:wait}button[aria-pressed=true]{color:#091114;background:#b8c9c7;border-color:#b8c9c7}button:focus-visible,select:focus-visible{outline:2px solid #8cd2d8;outline-offset:4px}.cockpit{overflow:hidden}.exterior{position:absolute;top:0;left:0;right:0;height:64%;background:#1c2637}.exterior canvas{width:100%;height:100%;display:block}.exterior #fallback{position:absolute;inset:0;width:100%;height:156%;object-fit:cover;object-position:top;display:none}.exterior.fallback #fallback{display:block}.exterior.fallback canvas{visibility:hidden}.plate{pointer-events:none;z-index:2}header{z-index:4;top:3.4%;letter-spacing:.18em}header nav{display:flex;gap:12px}header button{border:0;background:#121a2088;color:#d9cdc0;font-size:11px;padding:9px 13px;border-radius:20px;letter-spacing:.09em}.welcome{position:absolute;z-index:3;left:7%;top:15%;max-width:460px;text-shadow:0 2px 12px #0a1019;padding:28px;background:linear-gradient(110deg,#101924cf,#12182211);border-left:1px solid #d5b78b88}.welcome h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(28px,4.2cqw,70px);line-height:1.06;letter-spacing:-.015em;color:#eee0d1;margin:15px 0 22px}.welcome p{font-size:clamp(11px,1cqw,16px);line-height:1.6;color:#cfccc8}.welcome button{background:#d9b793;color:#162027;border:0;padding:13px 22px}.welcome .loading{font-size:10px;color:#b9c6c8;margin:12px 0 0}.eyebrow{letter-spacing:.22em;font-size:9px;color:#bcb4a7}.parked-speed{z-index:3}.route-map{position:absolute;left:29.8%;top:66.5%;width:13%;height:21%;z-index:3;background:#121a1cf5;border:1px solid #685140;border-radius:5px;box-shadow:inset 0 0 20px #000;text-align:center;padding:5% 0 0;padding-top:1%}.route-map svg{width:85%;height:75%}.route-map path{fill:none;stroke:#7a989b;stroke-width:16}.route-map circle{fill:#ffc182;stroke:#211f1b;stroke-width:10;filter:drop-shadow(0 0 30px #ffb360)}.route-map span{display:block;font-size:.63cqw;color:#d6ba98;letter-spacing:.15em}.radio{z-index:3}.drive-panel{max-width:1920px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 3%;background:#13191c;border-top:1px solid #84705a55}.location{min-width:200px}.location .eyebrow{font-size:8px;color:#96acae}.location p{margin:7px 0;color:#e7d0b5;font:22px Georgia,serif}.location small{color:#a4b3b5;font-size:10px}.drive-actions{display:flex;gap:8px}.pace{display:flex;align-items:center;gap:7px;margin:0;padding:0;border:0}.pace legend{float:left;margin-right:14px;line-height:40px;font-size:9px;letter-spacing:.16em;color:#b2b6b4}.pace button{font-size:11px;padding:9px 13px}.pace label{display:flex;align-items:center;font-size:11px;gap:5px;margin-left:13px;color:#bfc2be}.footer-note{text-align:right}.footer-note button{border:0;font-size:10px;background:none;padding:8px 0}.footer-note a{display:block;font-size:10px;margin-top:7px}footer{background:#0c1114}.recovery{position:fixed;z-index:9;left:50%;top:12%;transform:translateX(-50%);max-width:540px;width:90%;background:#182329f2;border:1px solid #89a6a8;padding:22px;border-radius:8px;box-shadow:0 10px 50px #0009;font-size:14px;line-height:1.5}.recovery button{margin:4px}dialog{color:#dcc8b4;background:#111b21;border:1px solid #57686d;border-radius:12px;max-width:850px;width:90vw;max-height:88vh;padding:30px;box-shadow:0 30px 100px #000b}dialog::backdrop{background:#081219cc;backdrop-filter:blur(8px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-head h2{font:34px Georgia,serif;color:#eee0d2;margin:10px 0}.dialog-head button{font-size:24px;width:44px;height:44px;padding:0}.dialog-intro,dialog>p{font-size:14px;line-height:1.8;color:#b8c0bf}.release-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;margin-top:25px}.release-grid article{display:grid;grid-template-columns:100px 1fr;column-gap:20px;align-content:start}.release-grid img{width:100%;grid-row:span 4;aspect-ratio:1}.release-grid .eyebrow{font-size:7px;margin:0 0 8px}.release-grid h3{font:20px Georgia,serif;color:#e0c8b0;margin:0 0 12px}.release-grid a{font-size:10px;margin-top:12px}.release-grid button{font-size:10px;padding:8px;justify-self:start}.all-releases{display:block;margin-top:30px;border-top:1px solid #66727755;padding:20px 0 0;font-size:12px}.credits{font-size:11px!important;border-top:1px solid #5b6d7144;margin-top:25px;padding-top:18px}.measure{display:flex;gap:12px;align-items:center;font-size:13px;margin:24px 0}.dialog-actions{display:flex;gap:12px}.dialog-actions button{font-size:12px}.no-script{padding:24px;font-size:15px}#qa{padding:20px;background:#11191d;font-size:12px}#qa button{font-size:10px;margin:10px 5px 10px 0}#diagnostics{white-space:pre-wrap;overflow-wrap:anywhere;color:#bdd3d3;font-size:11px;line-height:1.6}.busy .welcome button{cursor:wait}body.immersed .welcome{display:none}
@media(max-width:1100px){.drive-panel{flex-wrap:wrap}.pace{margin-left:auto}.welcome{top:11%;left:5%;padding:18px}.welcome h2{margin:12px 0}.welcome p{margin-bottom:12px}}
@media(max-width:1000px){.cockpit{aspect-ratio:auto;padding-top:54vh;overflow:visible}.exterior{height:54vh;overflow:hidden}.exterior #fallback{height:100%;object-fit:cover}.plate{display:none}.route-map,.parked-speed{display:none}header{top:15px;left:20px;right:20px;font-size:8px}header>a{max-width:140px;line-height:1.6}header nav{gap:5px}header button{font-size:9px;padding:8px}.welcome{top:11vh;left:20px;right:20px;padding:20px;max-width:420px}.welcome h2{font-size:38px}.welcome p{font-size:11px}.radio{position:relative;left:auto;top:auto;width:auto;height:auto;margin:0;border-radius:0;padding:20px;grid-template-columns:80px 1fr;gap:18px;background:linear-gradient(130deg,#29241f,#111314);border-top:1px solid #7b614b}.station{font-size:11px;letter-spacing:.14em;margin:0 0 12px}.radio h1{font-size:18px;margin:0 0 6px}.artist{font-size:10px;margin:0 0 14px}.seek-label input{height:18px}.times{font-size:10px;margin:6px 0}.radio-controls{gap:8px;margin-top:10px}.radio-controls button{height:44px;font-size:15px}.radio-controls #play{width:48px;height:48px;font-size:11px}.volume{font-size:10px}.volume input{height:20px;margin:3px 0}.radio>img{width:80px}.radio-controls button{min-width:44px}.volume{max-width:55px}.drive-panel{padding:22px;gap:20px}.location{min-width:140px}.location p{font-size:20px}.drive-actions{margin-left:auto}.drive-actions button{font-size:11px;padding:10px 12px;min-height:44px}.pace{width:100%;flex-wrap:wrap;gap:7px;margin:0}.pace legend{width:100%;line-height:1;margin:0 0 12px}.pace button{min-height:44px;flex:1}.pace label{width:100%;margin:10px 0 0;min-height:30px}footer{padding:22px}.footer-note{text-align:left;margin-top:20px}dialog{padding:22px}.dialog-head h2{font-size:27px}.release-grid{grid-template-columns:1fr;gap:24px}.release-grid article{grid-template-columns:85px 1fr}.route-map span{font-size:9px}}
@media(prefers-reduced-motion:reduce){dialog::backdrop{backdrop-filter:none}}
@media(max-width:1000px){.cockpit{padding-top:max(54vh,430px)}.exterior{height:max(54vh,430px)}}
@media(max-width:1000px) and (max-height:500px){.cockpit{padding-top:70vh}.exterior{height:70vh}.welcome{top:60px;padding:12px;max-width:470px}.welcome h2{font-size:26px;margin:6px 0 12px}.welcome h2 br{display:none}.welcome>p:not(.eyebrow):not(.loading){display:none}.welcome button{padding:10px 16px}.welcome .loading{font-size:8px;line-height:1.35;margin:6px 0 0}.welcome .eyebrow{font-size:8px;margin:0}}
.cockpit{--neon:0;--lamp:0;--moon-side:50%;--moon-level:.1;--lamp-x:50%;--shadow-shift:0%}.plate{clip-path:inset(0 0 0 29%)}.left-dash{position:absolute;left:0;top:54%;width:29.1%;height:46%;z-index:2;pointer-events:none}.speed-dial{position:absolute;left:.2%;top:65%;width:14%;height:auto;z-index:3;filter:drop-shadow(0 0 7px #0008)}.wheel{position:absolute;z-index:4;left:-29%;top:52%;width:58%;aspect-ratio:1;pointer-events:none;filter:drop-shadow(0 8px 6px #000a)}.wheel svg{width:100%;height:100%;transform-origin:50% 50%}.route-map{left:32%;top:66%;width:14%;height:20%;padding-top:.5%;border-radius:7px;background:#10191aed}.route-map svg{height:64%;width:86%}.route-map span{font-size:.6cqw;letter-spacing:.12em}.route-map time{display:block;font-family:monospace;font-size:1cqw;color:#b3d0cd;letter-spacing:.18em;margin-top:.6cqw}.radio{left:50.2%;top:66%;width:32.3%;height:21%;grid-template-columns:26% 1fr;gap:4%;padding:.65%}.radio .station{font-size:.85cqw}.radio h1{font-size:1cqw}.radio .artist{margin-bottom:.6cqw}.service-bank{position:absolute;left:51%;top:89.7%;width:30.8%;z-index:5}.service-caption{font-size:.48cqw;letter-spacing:.18em;color:#bfa68c;margin:0 0 .4cqw}.service-bank .platforms{display:flex;gap:.45cqw;margin:0}.service-bank a{flex:1;min-width:0;justify-content:center;min-height:2.65cqw;padding:.4cqw .5cqw;border:1px solid #876b50;border-bottom:3px solid #080b0e;border-radius:4px;background:linear-gradient(#37332e,#171c20);box-shadow:inset 0 1px 1px #cfa67466,0 3px 5px #0008;font-size:.64cqw;color:#d7c1a6;text-align:center;line-height:1.35}.service-bank a:hover{background:linear-gradient(#514036,#293034);color:#ffe0b6}.service-bank a:active{transform:translateY(1px)}.moon-spill,.lamp-spill,.lamp-shadow{position:absolute;z-index:6;left:0;right:0;top:55%;height:45%;pointer-events:none}.moon-spill{background:radial-gradient(ellipse at var(--moon-side) 5%,#82aec233,transparent 60%);opacity:var(--moon-level);mix-blend-mode:screen}.lamp-spill{background:radial-gradient(ellipse at var(--lamp-x) 0%,#ffd39b88,transparent 65%);opacity:calc(var(--lamp)*.45);mix-blend-mode:soft-light}.lamp-shadow{left:var(--shadow-shift);width:100%;background:linear-gradient(115deg,transparent 0 16%,#0008 17% 22%,transparent 24% 50%,#0009 51% 55%,transparent 57%);opacity:calc(var(--lamp)*.33);mask-image:linear-gradient(transparent,#000)}.night-signal{position:absolute;z-index:3;inset:14% 6% 40%;opacity:var(--neon);pointer-events:none;border-inline:1px solid #69bfc566;box-shadow:inset 15px 0 20px -20px #65c6d9,inset -15px 0 20px -20px #ca92c7}.night-signal span{position:absolute;right:3%;top:4%;color:#8abfc3;font:9px monospace;letter-spacing:.22em}.night-signal i{position:absolute;right:0;bottom:10%;width:20px;height:40px;border-right:1px solid #74bfc6;border-block:1px solid #74bfc6}
@media(max-width:1000px){.plate,.left-dash,.wheel,.moon-spill,.lamp-spill,.lamp-shadow{display:none}.instrument-rack{position:relative;display:grid;grid-template-columns:120px minmax(0,1fr);gap:18px;align-items:center;padding:16px 22px;background:linear-gradient(#191e21,#111719);border-top:1px solid #8a6d4c}.speed-dial{position:relative;left:auto;top:auto;width:120px;height:120px}.route-map{display:block;position:relative;left:auto;top:auto;width:100%;height:120px;padding:4px 8px;max-width:200px;justify-self:end}.route-map svg{height:70px}.route-map span{font-size:8px}.route-map time{font-size:13px;margin-top:4px}.radio{left:auto;top:auto;width:auto;height:auto;padding:20px;grid-template-columns:70px minmax(0,1fr);gap:15px}.radio .station{font-size:10px}.radio h1{font-size:17px}.radio .artist{font-size:9px;margin-bottom:14px}.service-bank{position:relative;left:auto;top:auto;width:auto;padding:14px 20px 20px;background:#171c20}.service-caption{font-size:8px;margin-bottom:10px}.service-bank .platforms{gap:8px;flex-wrap:wrap}.service-bank a{flex:1 1 100px;min-height:44px;font-size:11px;padding:8px}.night-signal{inset:80px 14px auto;height:280px}.night-signal span{font-size:8px}.radio-controls{gap:3px}.radio-controls button{min-width:38px}.radio-controls #play{width:44px;height:44px}.volume{max-width:44px}.drive-actions{margin-left:0}.drive-panel{gap:16px}}
@media(max-width:350px){.radio{padding:16px;grid-template-columns:52px minmax(0,1fr);gap:12px}.radio>img{width:52px}.radio h1{font-size:15px}.radio .station{font-size:8px;letter-spacing:.09em}.radio-controls{flex-wrap:wrap}.volume{margin-left:auto;max-width:58px}.instrument-rack{padding:14px 16px;gap:12px;grid-template-columns:105px minmax(0,1fr)}.speed-dial{width:105px;height:105px}.route-map{height:110px}.route-map svg{height:60px}}

/* Textured interior layers replace the temporary vector material stand-ins. */
.plate{clip-path:none}.speed-dial{left:.45%;top:66%;width:13.4%;filter:none}.speed-dial .ticks{display:none}.wheel{left:-20%;top:52%;width:48%}.wheel img{width:100%;height:100%;transform-origin:50% 50%}.night-signal{box-shadow:none;border-color:#69bfc522}.night-signal::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#69bfd518,transparent 12% 88%,#c995cc18)}
@media(max-width:1000px){.speed-dial{left:auto;top:auto;width:120px;filter:drop-shadow(0 0 5px #000)}.speed-dial .ticks{display:block}.speed-dial{background:radial-gradient(circle,#1d2426 60%,#614b37 62%,#11171b 65%);border:1px solid #a88259;border-radius:50%}.wheel{display:none}}
@media(max-width:350px){.speed-dial{width:105px}}
.welcome{top:10%}.service-bank a{font-size:clamp(9px,.64cqw,12px)}.service-caption{font-size:clamp(8px,.48cqw,10px)}.route-map time{font-size:clamp(11px,1cqw,16px)}.radio .station{font-size:clamp(10px,.85cqw,16px)}.radio h1{font-size:clamp(12px,1cqw,18px)}.radio .artist{font-size:clamp(9px,.72cqw,12px)}.radio .times{font-size:clamp(9px,.65cqw,12px)}
@media(max-width:1000px){.welcome{top:11vh}.service-bank a{font-size:11px}.service-caption{font-size:8px}.radio h1{font-size:17px}.radio .station{font-size:10px}.route-map time{font-size:13px}}
@media(max-width:1000px) and (max-height:500px){.welcome{top:60px}}
@media(max-width:350px){.radio h1{font-size:15px}.radio .station{font-size:8px}}
