*{box-sizing:border-box}
html,body{margin:0;height:100%;background:#050507;color:#ddd;font-family:Arial,Helvetica,sans-serif;overflow:hidden}
button,input,select{font:inherit}
button{cursor:pointer}
.dashboard{position:relative;width:100vw;height:100vh;margin:0 auto;background:#050507;overflow:hidden}
.dashboard-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.hotspot{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);padding:0;border:1px solid transparent;background:transparent;z-index:5}
.hotspot:hover,.hotspot:focus-visible{border-color:#c95dff;box-shadow:0 0 18px #8b2fb677;outline:none;background:#8728ad0c}
.hotspot:after{content:attr(data-tip);position:absolute;left:50%;bottom:100%;transform:translate(-50%,-5px);white-space:nowrap;background:#09070ddd;border:1px solid #704187;color:#eee;padding:5px 7px;font-size:9px;opacity:0;pointer-events:none}
.hotspot:hover:after{opacity:1}
.hotspot.secret:hover{box-shadow:0 0 22px #62ff9e}
.hidden-media{position:absolute;width:1px;height:1px;opacity:0}
.radio-bar{position:absolute;left:34.8%;top:.9%;width:30.2%;height:4.5%;display:grid;grid-template-columns:36px 1fr 1.3fr auto;align-items:center;gap:8px;padding:4px 10px;border-radius:10px;z-index:12;background:rgba(9,8,13,.55);border:1px solid rgba(117,74,144,.55);backdrop-filter:blur(6px)}
.radio-btn{height:28px;width:28px;border-radius:50%;border:1px solid #7a4a97;background:#140e19;color:#f0e9ff;padding:0}
.radio-copy{display:grid;gap:1px;min-width:0}.radio-copy b{font-size:10px;color:#dc8aff;letter-spacing:.08em}.radio-copy span{font-size:10px;color:#ddd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#radioSeek{width:100%;accent-color:#c95dff;background:transparent}
#radioTime{font-size:10px;color:#bbb;white-space:nowrap}
.toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);z-index:9000;background:#09070e;border:1px solid #74448b;color:#eee;padding:11px 16px;font-size:12px;box-shadow:0 12px 40px #000}
.hidden{display:none!important}
.modal{position:fixed;inset:0;z-index:7000;background:#000d;display:grid;place-items:center;padding:18px;overflow:auto}
.window{position:relative;width:min(1450px,97vw);max-height:96vh;overflow:auto;background:#08080d;border:1px solid #704482;box-shadow:0 30px 120px #000}
.window header{padding:15px 18px;border-bottom:1px solid #302938}.window header small{color:#be5ddd;font-size:9px}.window header h1{font-size:42px;margin:2px 0 0}.window-note{margin:8px 0 0;color:#aaa;font-size:12px;line-height:1.5;max-width:900px}
.window-close{position:absolute;right:10px;top:9px;z-index:20;background:#180e20;border:1px solid #714384;color:#fff;font-size:22px}
.motor-layout{display:grid;grid-template-columns:180px 1fr 270px;min-height:650px}
.car-tabs{display:grid;align-content:start;background:#0b0b10;padding:12px;gap:7px}.car-tabs button,.control-panel button{background:#140e19;border:1px solid #493252;color:#ddd;padding:11px}.car-tabs button.active{border-color:#c25fe2;background:#2a1533}
.canvas-wrap{position:relative;background:#07070b;display:grid;place-items:center;overflow:hidden}.canvas-wrap canvas{width:100%;height:auto;max-height:76vh;display:block}.motor-canvas-wrap{background:radial-gradient(circle at 50% 64%,#281432,#07070b 58%)}
.control-panel{background:#0b0b10;padding:12px;display:grid;align-content:start;gap:10px}.control-panel label{display:grid;gap:5px;color:#b4a8b8;font-size:9px}.control-panel input,.control-panel select{background:#050508;color:#ddd;border:1px solid #3a3041;padding:9px}.control-panel small{font-size:8px;line-height:1.5;color:#817786}
.race-tabs{display:flex;gap:8px;border-bottom:1px solid #302938;padding:0 12px 12px}.race-hud{display:grid;grid-template-columns:90px 80px 1fr repeat(3,130px);gap:8px;padding:11px}.race-hud>div{background:#0d0d12;border:1px solid #2c2631;padding:10px}.race-hud b{font-size:27px}.race-hud button{background:#1c1024;border:1px solid #6d4380;color:#ddd}.race-hud p{grid-column:1/-1;margin:0;color:#aaa}.rpm{height:43px}.rpm i{display:block;width:0;height:100%;background:linear-gradient(90deg,#c93c43 0 30%,#e5c550 45%,#55bf6d 70%,#c83f45 92%)}
.safe-layout{display:grid;grid-template-columns:1fr 300px;min-height:650px}.safe-controls{max-height:82vh;overflow:auto}
.scene-window{width:min(1500px,98vw);overflow:hidden}.scene-image{height:min(850px,90vh);background-size:cover;background-position:center;position:relative}.scene-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#000d,transparent 70%)}.scene-copy{position:absolute;z-index:3;left:40px;top:35px;max-width:520px}.scene-copy h1{font-size:54px;margin:0}.scene-copy p{font-size:15px;line-height:1.6}.scene-copy button,.scene-copy a{display:block;width:max-content;min-width:230px;margin-top:9px;background:#120d18;border:1px solid #69417d;color:#ddd;text-decoration:none;padding:11px}
.info-window{width:min(540px,92vw);padding:28px}.info-window h1{font-size:36px}.info-window p{line-height:1.7}
@media(max-width:1100px){.radio-bar{left:28%;width:40%}.motor-layout{grid-template-columns:140px 1fr}.control-panel{grid-column:1/-1}.safe-layout{grid-template-columns:1fr}.race-hud{grid-template-columns:repeat(3,1fr)}.race-hud .rpm{grid-column:1/-1}.modal{padding:6px}.window header h1{font-size:30px}}
@media(max-width:800px){html,body{overflow:auto}.dashboard{height:auto;aspect-ratio:1536/1024}.radio-bar{left:26%;width:44%;height:auto;top:.7%;grid-template-columns:28px 1fr}.radio-copy span,#radioSeek,#radioTime{display:none}}

/* ===== V23 FINAL OPENABLE WORLD BUILD ===== */
.radio-bar{left:34.4%;top:.7%;width:31.6%;min-height:44px;grid-template-columns:30px 34px 30px 1fr 1.55fr auto 30px;padding:6px 12px;border-radius:12px;background:rgba(10,8,16,.72);border:1px solid rgba(117,74,144,.6);backdrop-filter:blur(8px);box-shadow:0 10px 35px rgba(0,0,0,.35)}
.radio-btn{height:28px;width:28px;display:grid;place-items:center}.radio-btn.major{height:32px;width:32px;background:linear-gradient(180deg,#2b1635,#140e19);border-color:#c25fe2}.radio-copy b{font-size:10px;color:#dc8aff}.radio-copy span{font-size:10px}.radio-menu{position:absolute;top:100%;right:0;margin-top:6px;width:260px;background:#0b0a12ee;border:1px solid #5d3d71;border-radius:10px;box-shadow:0 18px 50px rgba(0,0,0,.45);padding:8px;display:grid;gap:6px}.radio-menu button{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:center;text-align:left;background:#110d16;border:1px solid #30243a;color:#ddd;padding:8px 9px;border-radius:8px}.radio-menu button.active{border-color:#c25fe2;background:#261630}.radio-menu .track-no{color:#b56bf2;font-size:11px}.radio-menu .track-meta{display:grid}.radio-menu .track-meta strong{font-size:11px}.radio-menu .track-meta span{font-size:9px;color:#999}
.scene-image:after{background:linear-gradient(90deg,#000e 0,#0008 36%,transparent 72%)}.scene-copy{max-width:560px}.scene-copy small{display:block;color:#ca74f6;font-size:10px;letter-spacing:.16em;margin-bottom:8px}.scene-copy h1{margin:0 0 8px}.scene-copy button:hover,.scene-copy a:hover{border-color:#d18cff;background:#23122d}
@media(max-width:1100px){.radio-bar{left:28%;width:42%;grid-template-columns:28px 30px 28px 1fr}.radio-bar #radioSeek,.radio-bar #radioTime,.radio-bar #radioListBtn{display:none}}
@media(max-width:800px){.radio-bar{left:24%;width:50%;top:.6%}}

/* ===== V24 GARAGE CONTROL + RECOVERY OVERHAUL ===== */
.hotspot.precise:hover{background:rgba(184,73,224,.06);border-color:rgba(218,135,255,.72)}
.latest-recovery-live{position:absolute;left:85.1%;top:10.8%;width:5.7%;height:9.5%;z-index:9;background:#120e16;border:1px solid #594066;padding:3px;overflow:hidden;transform:rotate(-2deg);box-shadow:0 8px 20px #0008}
.latest-recovery-live img{width:100%;height:100%;object-fit:cover;filter:sepia(.35) contrast(1.05)}
.latest-recovery-live span{position:absolute;left:-1px;right:-1px;bottom:-1px;background:#07060bd8;color:#eee;font-size:5px;padding:2px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.latest-recovery-live:hover{border-color:#ce7df1;box-shadow:0 0 18px #8d3db177}
.vault-live-status{position:absolute;right:1.9%;top:23.4%;z-index:9;color:#a66fc0;font-size:7px;pointer-events:none}
.collection-live-status{position:absolute;left:1.1%;top:80.9%;z-index:9;color:#a66fc0;font-size:7px;pointer-events:none}
.collectible-glint{position:absolute;z-index:14;width:13px;height:13px;border:0;background:transparent;color:#d977ff;font-size:12px;opacity:.18;text-shadow:0 0 7px #d65fff;animation:glint 2.8s infinite ease-in-out;padding:0}
.collectible-glint:hover,.collectible-glint:focus{opacity:1;transform:scale(1.45);outline:none}
@keyframes glint{0%,100%{opacity:.12}50%{opacity:.48}}
.scene-image .collectible-glint{z-index:6}
.recovery-window{width:min(1120px,94vw);padding:18px}.recovery-layout{display:grid;grid-template-columns:minmax(320px,1.35fr) minmax(260px,.65fr);gap:20px;align-items:center}.recovery-layout>img{width:100%;max-height:76vh;object-fit:contain;background:#030305;border:1px solid #392e42}.recovery-layout small{color:#c56ce5}.recovery-layout h1{font-size:38px}.recovery-layout p{line-height:1.7;color:#bbb}.recovery-layout button{background:#1c1024;border:1px solid #6d4380;color:#eee;padding:11px 16px}
.collection-window{width:min(1320px,96vw)}.pockets-grid{padding:14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px;max-height:76vh;overflow:auto}.pocket-card{background:#0c0b10;border:1px solid #302938;color:#ddd;padding:8px;text-align:left;min-height:185px;display:grid;grid-template-rows:120px auto auto}.pocket-card img{width:100%;height:120px;object-fit:cover;background:#050507}.pocket-card b{font-size:10px;margin-top:7px}.pocket-card small{font-size:8px;color:#888}.pocket-card.locked img{filter:grayscale(1) brightness(.2)}.pocket-card.locked{opacity:.55}.pocket-card:hover{border-color:#b35ad3}
.vault-window{width:min(1200px,95vw)}.vault-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:14px;padding:14px}.code-entry{display:grid;grid-template-columns:1fr auto;gap:7px;color:#b5a7bb;font-size:9px}.code-entry input{grid-column:1/2;background:#050508;color:#eee;border:1px solid #3e3047;padding:11px}.code-entry button{grid-column:2/3;background:#1b1022;color:#eee;border:1px solid #6b407d;padding:10px}.vault-code-list,.unlock-track-list{display:grid;gap:8px;margin-top:12px}.vault-code-row,.unlock-track{background:#0d0c12;border:1px solid #302938;padding:10px;display:grid;gap:4px}.vault-code-row b,.unlock-track b{font-size:11px}.vault-code-row span,.unlock-track small{font-size:9px;color:#888}.vault-code-row.unlocked{border-color:#267a4a}.vault-code-row.unlocked b{color:#55d487}.unlock-track{grid-template-columns:1fr auto;align-items:center}.unlock-track a,.unlock-track button{background:#1b1022;border:1px solid #6b407d;color:#eee;padding:8px 10px;text-decoration:none}.unlock-track.locked{opacity:.48}.unlock-track.locked button{pointer-events:none}
.safe-controls label{border-bottom:1px solid #211b26;padding-bottom:7px}.safe-controls input[type="range"]{accent-color:#bd5de0;padding:0}.safe-controls button{border-radius:2px}.safe-controls #safeSave{border-color:#7f4b91;background:#26152f}.safe-controls #safeReset{border-color:#4c414e;background:#111015}
.prop-loaded-note{font-size:8px;color:#8a7c8f}
@media(max-width:900px){.recovery-layout,.vault-layout{grid-template-columns:1fr}.latest-recovery-live{display:none}.vault-live-status,.collection-live-status{display:none}}

/* Preserve the 3:2 dashboard geometry so all invisible controls stay perfectly aligned. */
html,body{background:#030305}
body{display:grid;place-items:center}
.dashboard{width:min(100vw,150vh);height:auto;aspect-ratio:3/2;max-width:100vw;max-height:100vh}

/* ===== V25 MOTOR LAB POLISH ===== */
.motor-canvas-wrap canvas{cursor:pointer}
#motorCanvas{image-rendering:auto}

/* ===== V26 FULL POLISH PASS ===== */
.dashboard .hotspot{cursor:pointer}
.dashboard .hotspot:focus-visible,.dashboard .hotspot:hover{outline:none;border-color:rgba(220,140,255,.78);box-shadow:0 0 0 1px rgba(220,140,255,.28) inset,0 0 18px rgba(190,90,240,.18)}
.window{border-color:#7a4b92;box-shadow:0 36px 120px rgba(0,0,0,.82)}
.window header{background:linear-gradient(180deg,rgba(20,12,26,.9),rgba(9,8,14,.92))}
.window-note{max-width:980px}
#raceCanvas,#safeCanvas,#motorCanvas{border-top:1px solid #1d1722;border-bottom:1px solid #1d1722}
.race-hud{background:linear-gradient(180deg,#0d0b12,#08080b)}
.race-hud>div{border-color:#3b3144;background:linear-gradient(180deg,#120f18,#0a0a0d)}
.race-hud button{border-radius:2px;min-height:40px}
.rpm{overflow:hidden;border-radius:2px}
.rpm i{box-shadow:inset 0 0 20px rgba(255,255,255,.09),0 0 18px rgba(230,92,83,.14)}
.scene-image{background-color:#050507}
.scene-copy{background:linear-gradient(90deg,rgba(7,6,10,.84),rgba(7,6,10,.55),transparent);padding:18px 22px 18px 0;border-radius:8px}
.pocket-card,.vault-code-row,.unlock-track{border-radius:4px}
.unlock-track a,.unlock-track button,.pocket-card,.scene-copy button,.scene-copy a,#safeSave,#safeReset,#safeRadio,#motorSave,#motorRace{transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.unlock-track a:hover,.unlock-track button:hover,.pocket-card:hover,.scene-copy button:hover,.scene-copy a:hover,#safeSave:hover,#safeReset:hover,#safeRadio:hover,#motorSave:hover,#motorRace:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(0,0,0,.28)}
.latest-recovery-live{border-radius:3px}
.safe-controls::-webkit-scrollbar,.control-panel::-webkit-scrollbar{width:10px}
.safe-controls::-webkit-scrollbar-thumb,.control-panel::-webkit-scrollbar-thumb{background:#473650;border-radius:10px}
