/* BMW reveal is drawn before any page panel. */
html.od-neon-booting body{background:#020a13!important}
html.od-neon-booting body>:not(.od-neon-overlay){visibility:hidden!important}
/* ONEDEALER Neon Reveal — scoped overlay, no global component overrides. */
.od-neon-overlay{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;overflow:hidden;pointer-events:auto;opacity:0;visibility:hidden;background:#020a13;color:#eaf8ff;transition:opacity .2s ease,visibility .2s ease;font-family:Inter,Arial,sans-serif}
.od-neon-overlay.od-neon-visible{opacity:1;visibility:visible}
.od-neon-overlay.od-neon-exit{opacity:0;visibility:hidden;pointer-events:none}
.od-neon-overlay::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse 62% 40% at 50% 40%,#09223b 0%,#041425 64%,#020a13 100%);transition:opacity .28s ease}
.od-neon-overlay.od-neon-panel-visible::before{opacity:1}
.od-neon-stage{position:relative;width:min(90vw,680px);min-height:340px;display:flex;align-items:center;justify-content:center;flex-direction:column;isolation:isolate}
.od-neon-vehicle{width:min(100%,510px);position:relative;z-index:2}
.od-neon-svg{width:100%;height:auto;display:block;overflow:visible}
.od-neon-trace{filter:url(#od-neon-core)}
.od-neon-trace path{fill:none;stroke:#d9fbff;stroke-linecap:round;stroke-linejoin:round}
.od-neon-heads{filter:url(#od-neon-tail);pointer-events:none}
.od-neon-running{fill:none;stroke:#efffff;stroke-width:3.1;stroke-linecap:round;stroke-linejoin:round}
.od-neon-waiting-pulse{fill:none;stroke:#bdffff;stroke-width:3.3;stroke-linecap:round;stroke-linejoin:round;opacity:0}
.od-neon-trace path.outline{stroke-width:1.5}
.od-neon-trace path.detail{stroke-width:1.1;stroke:#74d8ff}
.od-neon-trace path.tyre{stroke-width:1.4;stroke:#6ed1ff}
.od-neon-trace path.lamp{stroke-width:1.8;stroke:#f5fdff}
.od-neon-mark{width:140px;height:100px;position:relative;display:flex;align-items:center;justify-content:center;margin-top:-4px;z-index:2}
.od-neon-symbol{position:relative;width:180px;height:180px;flex:none}
.od-neon-symbol img,.od-neon-symbol svg{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:contain}
.od-neon-orb{pointer-events:none}
.od-neon-label{margin:8px 0 0;color:#b3c5d8;letter-spacing:.14em;font-size:clamp(11px,1.5vw,14px);font-weight:500;text-align:center;text-transform:uppercase}
.od-neon-ground{position:absolute;width:65%;height:60px;bottom:45px;left:17.5%;border-radius:50%;background:radial-gradient(ellipse,rgba(42,157,255,.19),transparent 72%);filter:blur(14px);pointer-events:none}
.od-neon-flash{position:absolute;inset:0;z-index:3;opacity:0;pointer-events:none;background:radial-gradient(ellipse 60% 38% at 50% 42%,rgba(245,253,255,.65),rgba(57,167,255,.18) 48%,transparent 100%);mix-blend-mode:screen}
.od-neon-finish .od-neon-flash{animation:od-neon-flash .24s ease-out forwards}
.od-neon-finish .od-neon-trace{filter:drop-shadow(0 0 6px #c7faff) drop-shadow(0 0 12px #49bdff)}
@keyframes od-neon-flash{0%{opacity:0}20%{opacity:.86}100%{opacity:0}}
/* Mobile: centre the ENTIRE BMW + official logo + status as one lockup.
   100dvh follows the visible mobile viewport; safe-area insets keep it on-screen. */
@media(max-width:600px), (max-height:500px) and (max-width:950px){
 .od-neon-overlay{height:100vh;height:100dvh;min-height:0;box-sizing:border-box;padding-top:max(12px,env(safe-area-inset-top,0px));padding-bottom:max(12px,env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
 .od-neon-stage{width:min(100%,430px);min-height:0;max-height:100%;gap:clamp(4px,1.4dvh,12px);padding:0;margin:0 auto;justify-content:center;align-items:center}
 .od-neon-vehicle{width:min(100%,430px,calc(100dvh - 154px));max-width:100%;flex:0 1 auto;margin:0 auto}
 .od-neon-mark{width:116px;height:116px;margin:0 auto;flex:0 0 116px}
 .od-neon-symbol{width:116px;height:116px}
 .od-neon-label{max-width:min(94%,350px);margin:0 auto;font-size:clamp(10px,2.75vw,12px);line-height:1.4;letter-spacing:.075em;text-wrap:balance}
 .od-neon-ground{top:59%;bottom:auto}
}
/* Landscape phones and exceptionally short screens: keep all three elements visible. */
@media(max-height:480px) and (max-width:950px){
 .od-neon-stage{gap:4px}
 .od-neon-mark{width:88px;height:88px;flex-basis:88px}
 .od-neon-symbol{width:88px;height:88px}
 .od-neon-label{font-size:10px;line-height:1.3}
}
@media(prefers-reduced-motion:reduce){.od-neon-overlay,.od-neon-trace path,.od-neon-flash{transition:none!important;animation:none!important}.od-neon-heads{display:none}}
