/* ===== GGB flight-deck theme (overrides; loaded last) ===== */
:root{
  --bg:#05070b; --bg-2:#090d14; --panel:#0b1119; --panel-2:#0e1621;
  --line:rgba(120,220,255,.16); --line-strong:rgba(0,229,255,.45);
  --cyan:#00e5ff; --cyan-dim:#58c9e6; --amber:#ffb020; --red:#ff3b3b;
  --ink:#dbe7f0; --muted:#8b9bab; --navy:#eaf6ff;
  --sky:#00e5ff; --sky-50:#090d14; --sky-100:rgba(0,229,255,.08); --sky-600:#00e5ff;
  --orange:#00e5ff; --orange-dark:#00e5ff;
  --white:#05070b; --radius:0px; --shadow:none;
  --glow:0 0 0 1px rgba(0,229,255,.35),0 0 24px rgba(0,229,255,.18);
  --font-head:"Space Grotesk","Bahnschrift","DIN Alternate","Arial Narrow",system-ui,sans-serif;
  --font-mono:ui-monospace,"SFMono-Regular","JetBrains Mono","Cascadia Mono",Menlo,Consolas,monospace;
  --chamfer:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px));
  --chamfer-sm:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
  color-scheme:dark;
}
*,*::before,*::after{border-radius:0!important}
.dot,.spinner,.hotspot,.swatches button,.ms::before,.fly-shadow,.leaflet-marker-icon,.leaflet-interactive{border-radius:50%!important}
html{background:var(--bg)}
body{background:var(--bg);color:var(--ink);font-feature-settings:"tnum" 1,"ss01" 1;
  background-image:linear-gradient(rgba(0,229,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(0,229,255,.025) 1px,transparent 1px);background-size:48px 48px;background-attachment:fixed}
::selection{background:rgba(0,229,255,.35);color:#fff}
a{color:var(--cyan)}
h1,h2,h3,h4{color:#f2f8fc;font-family:var(--font-head);font-weight:600;letter-spacing:-.01em}
h1{text-transform:uppercase;letter-spacing:-.005em;line-height:1.02;font-weight:700}
h2{text-transform:uppercase;letter-spacing:.01em}
h3{letter-spacing:.01em}
p,li{color:inherit}
.lead,.about-text p,.sub,.section-dark .sub{color:#a9b9c7}
.muted,.fine,.pkg-desc,.step p,.tiny,.lift-label{color:var(--muted)!important}
.accent{color:var(--cyan);text-shadow:0 0 22px rgba(0,229,255,.45)}
/* micro labels */
.kicker,.eyebrow,.tag,.badge,.soon,.ribbon,.concept-badge,.stage-badge,.fly-badge,.part-card .tag,.lift-label,.est-label,.cap{
  font-family:var(--font-mono)!important;text-transform:uppercase;letter-spacing:.14em!important;font-weight:600}
.kicker{color:var(--cyan)!important;font-size:.72rem;display:inline-flex;align-items:center;gap:.6rem}
.kicker::before{content:"";width:22px;height:1px;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}
.section-head .kicker::after{content:"";width:22px;height:1px;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}
.eyebrow{background:rgba(0,229,255,.06)!important;color:var(--cyan)!important;border:1px solid var(--line-strong)!important;font-size:.7rem!important;padding:.45rem .8rem}
.dot{background:var(--cyan)!important;box-shadow:0 0 10px var(--cyan);animation:hudblink 2s infinite}
@keyframes hudblink{50%{opacity:.35}}
.tag,.badge,.soon{background:transparent!important;color:var(--cyan)!important;border:1px solid var(--line-strong);font-size:.66rem!important;padding:.25rem .55rem!important}
.tag-orange,.est-result .tag{color:var(--amber)!important;border-color:rgba(255,176,32,.5)!important}
.concept-badge,.stage-badge,.fly-badge{background:rgba(5,7,11,.82)!important;color:var(--amber)!important;border:1px solid rgba(255,176,32,.55);font-size:.64rem!important;backdrop-filter:blur(4px);box-shadow:none!important}
/* buttons */
.btn{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;font-weight:600;border:1px solid var(--line-strong);clip-path:var(--chamfer-sm);transition:background .18s,color .18s,box-shadow .18s,border-color .18s}
.btn:hover{transform:none}
.btn-accent{background:var(--cyan)!important;color:#021015!important;border-color:var(--cyan);box-shadow:0 0 24px rgba(0,229,255,.35)}
.btn-accent:hover{background:#7ef3ff!important;box-shadow:0 0 34px rgba(0,229,255,.6)}
.btn-ghost,.btn-outline,.btn-light{background:rgba(0,229,255,.04)!important;color:var(--cyan)!important;border-color:var(--line-strong)!important;backdrop-filter:none}
.btn-ghost:hover,.btn-outline:hover,.btn-light:hover{background:rgba(0,229,255,.14)!important;color:#fff!important}
/* header */
.site-header{background:rgba(5,7,11,.82)!important;border-bottom:1px solid var(--line)!important;backdrop-filter:blur(12px) saturate(1.2)}
.site-header.scrolled{box-shadow:0 1px 0 rgba(0,229,255,.25),0 10px 30px rgba(0,0,0,.5)!important}
.site-header::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--cyan) 50%,transparent);opacity:.5}
.brand{color:#f2f8fc!important;text-transform:uppercase;letter-spacing:.06em;font-size:1rem}
.brand img,.brand svg{filter:drop-shadow(0 0 6px rgba(0,229,255,.35))}
.site-nav a:not(.btn){color:#a9b9c7!important;font-family:var(--font-mono);font-size:.74rem!important;text-transform:uppercase;letter-spacing:.12em;position:relative;padding:.3rem 0}
.site-nav a:not(.btn):hover,.site-nav a:not(.btn)[aria-current]{color:var(--cyan)!important}
.site-nav a:not(.btn)::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1px;background:var(--cyan);transition:right .2s}
.site-nav a:not(.btn):hover::after{right:0}
.nav-toggle span{background:var(--cyan)!important}
@media (max-width:820px){.site-nav{background:rgba(5,7,11,.97)!important;border-bottom:1px solid var(--line)!important}.site-nav a:not(.btn){padding:.9rem 4%!important;border-top:1px solid var(--line)}}
/* hero + HUD overlay */
.hero,.lab-hero,.inv-hero{background:var(--bg)!important}
.hero-media img{filter:saturate(.75) contrast(1.08) brightness(.75)}
.hero-media::after{background:linear-gradient(90deg,rgba(5,7,11,.97) 0%,rgba(5,7,11,.88) 38%,rgba(5,7,11,.25) 70%,rgba(5,7,11,.55) 100%),linear-gradient(0deg,var(--bg) 0%,transparent 25%)!important}
.hero::before{content:"";position:absolute;inset:22px;z-index:1;pointer-events:none;
  background:
   linear-gradient(var(--cyan),var(--cyan)) top left/22px 1px no-repeat,linear-gradient(var(--cyan),var(--cyan)) top left/1px 22px no-repeat,
   linear-gradient(var(--cyan),var(--cyan)) top right/22px 1px no-repeat,linear-gradient(var(--cyan),var(--cyan)) top right/1px 22px no-repeat,
   linear-gradient(var(--cyan),var(--cyan)) bottom left/22px 1px no-repeat,linear-gradient(var(--cyan),var(--cyan)) bottom left/1px 22px no-repeat,
   linear-gradient(var(--cyan),var(--cyan)) bottom right/22px 1px no-repeat,linear-gradient(var(--cyan),var(--cyan)) bottom right/1px 22px no-repeat;opacity:.7}
.hero::after{content:"";position:absolute;right:6%;top:50%;width:min(34vw,380px);aspect-ratio:1;transform:translateY(-50%);z-index:1;pointer-events:none;opacity:.55;
  background:
   radial-gradient(circle,transparent 0 48%,rgba(0,229,255,.55) 48.2% 48.6%,transparent 48.8% 64%,rgba(0,229,255,.22) 64.2% 64.5%,transparent 64.7%),
   linear-gradient(var(--cyan),var(--cyan)) center/40px 1px no-repeat,linear-gradient(var(--cyan),var(--cyan)) center/1px 40px no-repeat,
   repeating-conic-gradient(from 0deg,rgba(0,229,255,.5) 0 .4deg,transparent .4deg 10deg);
  -webkit-mask:radial-gradient(circle,transparent 0 69%,#000 69.5% 72%,transparent 72.5%),radial-gradient(circle,#000 0 66%,transparent 66.5%);
  -webkit-mask-composite:source-over;mask-composite:add}
@media (prefers-reduced-motion:no-preference){.hero::after{animation:hudspin 60s linear infinite}@keyframes hudspin{to{transform:translateY(-50%) rotate(360deg)}}}
@media (max-width:820px){.hero::after{display:none}.hero::before{inset:10px}}
.hero-content{z-index:2}
.hero-points{font-family:var(--font-mono);font-size:.72rem!important;text-transform:uppercase;letter-spacing:.12em;color:#a9b9c7!important;gap:0!important}
.hero-points li{border:1px solid var(--line);padding:.45rem .8rem;margin:-1px 0 0 -1px;background:rgba(5,7,11,.5)}
.hero-points li::before{content:"▸"!important;color:var(--cyan)!important}
/* sections */
.section{border-top:1px solid var(--line);position:relative}
.section-tint{background:linear-gradient(180deg,var(--bg-2),var(--bg))!important}
.section-dark{background:radial-gradient(ellipse at 50% 0%,rgba(0,229,255,.07),transparent 60%),#04060a!important;color:#b6c6d3}
.section-dark::before{height:1px!important;background:linear-gradient(90deg,transparent,var(--cyan),transparent)!important;box-shadow:0 0 14px var(--cyan)}
.section-head h2{text-wrap:balance}
/* panels / cards */
.card,.step,.stack-item,.safety-item,.panel,.faq details,.about-card,.fly-panel,.part-card,.diagram,.lift,.q-estimate,.estimator,.est-form,.est-result,.viewer,.concept,.waitlist,.timeline .ms,.preview-controls{
  background:linear-gradient(180deg,rgba(14,22,33,.92),rgba(9,13,20,.92))!important;border:1px solid var(--line)!important;box-shadow:none!important;color:var(--ink)}
.card,.step,.stack-item,.safety-item,.pkg,.panel,.fly-panel,.about-card,.concept{position:relative;clip-path:var(--chamfer)}
.card:hover,.step:hover,.stack-item:hover,.safety-item:hover,.concept:hover{border-color:var(--line-strong)!important;box-shadow:inset 0 0 0 1px rgba(0,229,255,.12),inset 0 0 40px rgba(0,229,255,.04)!important}
.card,.step,.stack-item,.safety-item{transition:border-color .2s,box-shadow .2s}
.step::before,.stack-item::before,.safety-item::before,.pkg::before{content:"";position:absolute;left:-1px;top:-1px;width:14px;height:14px;border-left:1px solid var(--cyan);border-top:1px solid var(--cyan);pointer-events:none}
.pkg-featured{border:1px solid var(--cyan)!important;box-shadow:var(--glow)!important}
.ribbon{background:var(--cyan)!important;color:#021015!important;font-size:.64rem!important;clip-path:var(--chamfer-sm)}
.step-num,.stack-n{background:transparent!important;color:var(--cyan)!important;border:1px solid var(--line-strong);box-shadow:inset 0 0 12px rgba(0,229,255,.12)!important;font-family:var(--font-mono)!important;font-size:1rem!important}
.icon,.v-icon{background:rgba(0,229,255,.06)!important;color:var(--cyan)!important;border:1px solid var(--line-strong)}
.checks li::before{background:none!important;box-shadow:none!important;width:8px!important;height:8px!important;border:1px solid var(--cyan);transform:rotate(45deg);top:.6em!important}
.feature-img,.concept-img,.lab-teaser img{position:relative;border-bottom:1px solid var(--line)}
.feature-img img,.concept-img img{filter:saturate(.8) contrast(1.05)}
.ms::before{background:var(--bg)!important;border-color:var(--cyan)!important;box-shadow:0 0 8px rgba(0,229,255,.5)}
.timeline,.timeline *{border-color:var(--line)}
.faq summary{color:#f2f8fc;font-family:var(--font-head);cursor:pointer}
.faq details[open]{border-color:var(--line-strong)!important}
/* forms & controls */
input,select,textarea{color-scheme:dark}
.form label,.venue legend,.panel legend,.fly-panel label{color:#c8d6e2!important;font-family:var(--font-mono);font-size:.72rem!important;text-transform:uppercase;letter-spacing:.1em}
.form input:not([type=radio]),.form select,.form textarea,.panel input[type=text],.panel #banner-text,.fly-panel input[type=text],.fly-panel select,.fly-panel input[type=color],.preview-controls input[type=text],.estimator input,.estimator select{
  background:#05080d!important;color:#eaf6ff!important;border:1px solid var(--line)!important;font-family:var(--font-body);font-size:.95rem;text-transform:none;letter-spacing:0}
.panel #banner-text{text-transform:uppercase}
.form input:focus,.form select:focus,.form textarea:focus,.panel input:focus,.fly-panel input:focus,.fly-panel select:focus{outline:none!important;border-color:var(--cyan)!important;box-shadow:0 0 0 1px var(--cyan),0 0 18px rgba(0,229,255,.25)!important}
input[type=range],.radio input{accent-color:var(--cyan)!important}
.seg button,.seg span,.stepper,.stepper button{background:#05080d!important;color:#a9b9c7!important;border-color:var(--line)!important;font-family:var(--font-mono)!important;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem!important}
.seg button[aria-pressed=true],.seg input:checked+span,.fly-panel .btn[aria-pressed=true],.demo-btn[aria-pressed=true]{background:rgba(0,229,255,.14)!important;color:var(--cyan)!important;border-color:var(--cyan)!important;box-shadow:inset 0 0 12px rgba(0,229,255,.2)}
.switch span{background:#1a2430!important;border:1px solid var(--line)}
.switch span:after{background:#a9b9c7!important}
.switch input:checked+span{background:rgba(0,229,255,.3)!important;border-color:var(--cyan)}
.switch input:checked+span:after{background:var(--cyan)!important}
.swatches button{border-color:var(--line)!important}
.swatches button[aria-pressed=true]{outline:1px solid var(--cyan)!important;box-shadow:0 0 12px var(--cyan)}
.panel output,.lift-val,.est-price,.fly-hud span{color:var(--cyan)!important;font-family:var(--font-mono)!important;font-variant-numeric:tabular-nums}
.form-status.ok{color:#3cffa0}.form-status.err{color:var(--amber)}
.comp-list button{color:#c8d6e2}
.comp-list button:hover,.comp-list button.active{background:rgba(0,229,255,.08)!important;border-color:var(--line-strong)!important}
:focus-visible{outline:1px solid var(--cyan)!important;outline-offset:3px;box-shadow:0 0 0 3px rgba(0,229,255,.25)}
/* 3D lab / viewers */
.viewer model-viewer{background:radial-gradient(circle at 50% 40%,#122233,#05070b)!important}
.stage{background:radial-gradient(circle at 50% 40%,#0f1c2a,#05070b)!important;border:1px solid var(--line)!important}
.stage-hint,.demo-caption{background:rgba(5,7,11,.8)!important;color:#a9b9c7!important;border:1px solid var(--line);font-family:var(--font-mono);font-size:.68rem!important;letter-spacing:.08em;text-transform:uppercase}
.stage-loading{background:rgba(5,7,11,.7)!important;color:var(--cyan)!important}
.spinner{border-color:rgba(0,229,255,.15)!important;border-top-color:var(--cyan)!important}
.bar{background:rgba(0,229,255,.12)!important}.bar i{background:var(--cyan)!important}
.hotspot{background:var(--cyan)!important;border:2px solid #05070b!important;box-shadow:0 0 0 1px var(--cyan),0 0 14px var(--cyan)!important}
.demo-pill{background:rgba(5,7,11,.95)!important;border:1px solid var(--line-strong);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em}
.demo-pill .dot{background:var(--amber)!important}
.demo-pill button{background:var(--cyan)!important;color:#021015!important}
.diagram svg{filter:invert(.92) hue-rotate(180deg) saturate(1.3)}
.preview-stage{border:1px solid var(--line)!important;background:#05080d}
/* map */
.fly-stage{background:#05070b!important;border:1px solid var(--line-strong)!important;box-shadow:var(--glow)!important;clip-path:var(--chamfer)}
.fly-osm,.leaflet-tile-pane .leaflet-layer{filter:invert(1) hue-rotate(185deg) brightness(.82) contrast(.92) saturate(.55)}
.fly-stage::after{content:"";position:absolute;inset:0;z-index:470;pointer-events:none;
  background:linear-gradient(rgba(0,229,255,.06) 1px,transparent 1px) 0 0/100% 64px,linear-gradient(90deg,rgba(0,229,255,.06) 1px,transparent 1px) 0 0/64px 100%,
   linear-gradient(var(--cyan),var(--cyan)) 50% 0/1px 10px no-repeat,linear-gradient(var(--cyan),var(--cyan)) 50% 100%/1px 10px no-repeat,
   linear-gradient(var(--cyan),var(--cyan)) 0 50%/10px 1px no-repeat,linear-gradient(var(--cyan),var(--cyan)) 100% 50%/10px 1px no-repeat,
   repeating-linear-gradient(90deg,rgba(0,229,255,.5) 0 1px,transparent 1px 32px) 0 0/100% 5px no-repeat,
   repeating-linear-gradient(0deg,rgba(0,229,255,.5) 0 1px,transparent 1px 32px) 0 0/5px 100% no-repeat}
.fly-hud{background:rgba(5,7,11,.86)!important;border:1px solid var(--line-strong);color:#c8d6e2!important;font-family:var(--font-mono)!important;font-size:.72rem!important;letter-spacing:.04em;text-transform:uppercase;clip-path:var(--chamfer-sm);min-width:220px!important;box-shadow:0 0 20px rgba(0,229,255,.15)}
.fly-hud b{color:#6f8496!important;font-weight:500!important;letter-spacing:.12em}
.fly-hud-sim{margin-top:.3rem;padding-top:.3rem;border-top:1px solid var(--line);color:var(--amber);font-size:.62rem;letter-spacing:.14em}
.fly-joy{background:rgba(0,229,255,.08)!important;border:1px solid var(--cyan)!important;border-radius:50%!important}
.fly-joy span{background:var(--cyan)!important;border-radius:50%!important;box-shadow:0 0 14px var(--cyan)!important}
.fly-note,.fly-disclaimer,.fly-hint{color:var(--muted)!important}
.fly-status{color:var(--cyan)!important;font-family:var(--font-mono);font-size:.72rem}
.fly-page{background:var(--bg)}
.fly-page .fly-top{background:rgba(5,7,11,.95)!important;border-bottom:1px solid var(--line-strong);box-shadow:0 0 18px rgba(0,229,255,.12)}
.fly-page .fly-top a{text-transform:uppercase;letter-spacing:.08em}
.fly-page .fly-stage{clip-path:none;border:0!important}
.fly-page .fly-panel{clip-path:none;border-left:1px solid var(--line)!important}
.leaflet-container{background:#05070b!important}
.leaflet-bar a,.leaflet-control-layers{background:#0b1119!important;color:var(--cyan)!important;border-color:var(--line)!important}
.leaflet-bar{border:1px solid var(--line-strong)!important}
.leaflet-control-attribution{background:rgba(5,7,11,.8)!important;color:#8b9bab!important;font-family:var(--font-mono);font-size:10px}
.leaflet-control-attribution a{color:var(--cyan-dim)!important}
/* footer */
.site-footer{background:#030407!important;border-top:1px solid var(--line-strong)!important;color:#8b9bab}
.site-footer a,.footer-inner a{color:var(--cyan)!important}
.sticky-cta{background:rgba(5,7,11,.95)!important;border-top:1px solid var(--line-strong)}
/* reveal motion */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media (max-width:560px){h1{font-size:2.15rem}.hero-points li{font-size:.62rem}.btn{font-size:.72rem}}
.site-nav{gap:1rem!important}
.site-nav a,.brand{white-space:nowrap}
.site-nav a:not(.btn){letter-spacing:.08em!important;font-size:.7rem!important}
.site-nav .btn{padding:.5rem .9rem}
@media (max-width:1240px) and (min-width:821px){.site-nav{gap:.7rem!important}.site-nav a:not(.btn){font-size:.64rem!important;letter-spacing:.05em!important}.brand{font-size:.88rem}}
