/* AeroVectrix design system v3.0.0 — single shared stylesheet for every page.
   Covers new components AND every legacy class still present in page bodies. */

/* ---------- Tokens ---------- */
:root{
  --font:"Segoe UI Variable Text","Segoe UI",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --font-display:"Segoe UI Variable Display","Segoe UI",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,Consolas,"Cascadia Mono",Menlo,monospace;
  --radius:14px;
  --radius-sm:9px;
  --shell:1180px;
  --accent:#f97316;
  --accent-strong:#ea580c;
}
html[data-theme=dark],:root{
  color-scheme:dark;
  --bg:#05070d;
  --surface:#080d17;
  --panel:#0c1220;
  --panel-strong:#0e1526;
  --panel2:#121a2c;
  --panelText:#f2f5fa;
  --ink:#f2f5fa;
  --muted:#9daabe;
  --line:rgba(148,165,196,.17);
  --soft-line:rgba(148,165,196,.11);
  --blue:#6fcdf8;
  --accent2:#6fcdf8;
  --green:#7ad6a9;
  --gold:#fbbf24;
  --heroShade1:rgba(5,7,13,.94);
  --heroShade2:rgba(5,7,13,.55);
  --topBg:rgba(5,7,13,.86);
  --fieldBg:#0f1728;
  --controlBg:#0c1220;
  --buttonBg:#f2f5fa;
  --buttonText:#0a0f1a;
  --glow:rgba(249,115,22,.16);
  --shadow:0 22px 60px rgba(0,0,0,.42);
  --card-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 10px 30px rgba(2,4,10,.35);
  --canvasBg:#03060c;
}
html[data-theme=light]{
  color-scheme:light;
  --bg:#f7f9fc;
  --surface:#eef2f8;
  --panel:#ffffff;
  --panel-strong:#f4f7fb;
  --panel2:#e9eef6;
  --panelText:#101828;
  --ink:#101828;
  --muted:#48566c;
  --line:rgba(16,24,40,.15);
  --soft-line:rgba(16,24,40,.09);
  --blue:#0369a1;
  --accent2:#0369a1;
  --green:#047857;
  --gold:#b45309;
  --heroShade1:rgba(247,249,252,.95);
  --heroShade2:rgba(247,249,252,.62);
  --topBg:rgba(255,255,255,.88);
  --fieldBg:#ffffff;
  --controlBg:#ffffff;
  --buttonBg:#101828;
  --buttonText:#ffffff;
  --glow:rgba(234,88,12,.10);
  --shadow:0 22px 60px rgba(16,24,40,.12);
  --card-shadow:0 1px 2px rgba(16,24,40,.05),0 10px 30px rgba(16,24,40,.06);
  --canvasBg:#0b1220;
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font);
  font-size:16.5px;
  line-height:1.65;
  color:var(--ink);
  background:var(--bg);
  overflow-x:hidden;
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;
}
input,textarea,select,label,form,.calc,.contact-card{-webkit-user-select:auto;user-select:auto}
img{max-width:100%;height:auto;display:block;pointer-events:none}
a{color:inherit}
p,li{color:var(--muted)}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);letter-spacing:-.015em;margin-top:0;text-wrap:balance}
h1{font-size:clamp(32px,4.6vw,56px);line-height:1.06;font-weight:680;margin-bottom:18px;max-width:900px}
h2{font-size:clamp(24px,2.8vw,36px);line-height:1.12;font-weight:650;margin-bottom:14px}
h3{font-size:19px;line-height:1.3;font-weight:640;margin-bottom:8px}
.shell{width:min(var(--shell),calc(100% - 40px));margin:0 auto}
section{padding:84px 0}
::selection{background:rgba(249,115,22,.35)}

/* Accessibility */
.skip-link{
  position:absolute;left:16px;top:-60px;z-index:200;
  padding:10px 16px;border-radius:8px;background:var(--buttonBg);color:var(--buttonText);
  font-weight:650;text-decoration:none;transition:top .15s ease;
}
.skip-link:focus{top:12px}
:focus-visible{outline:2px solid var(--accent2);outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ---------- Header / nav ---------- */
.top,.site-header{
  position:sticky;top:0;z-index:60;
  background:var(--topBg);
  border-bottom:1px solid var(--soft-line);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
}
nav.primary{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:8px 0}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:680;font-size:17px;color:var(--ink);letter-spacing:-.01em}
.brand svg{width:30px;height:30px;border-radius:8px;flex:none}
.brand .brand-text{display:block;color:var(--ink);font-size:17px;font-weight:680;line-height:1.15}
.brand .brand-text span{display:block;color:var(--muted);font-size:11.5px;font-weight:480;letter-spacing:0;line-height:1.2}
.nav-links,.links{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.nav-links>a,.links>a,.nav-menu summary{
  display:inline-flex;align-items:center;
  padding:8px 12px;border-radius:8px;
  text-decoration:none;color:var(--muted);
  font-size:13.5px;font-weight:560;
  transition:color .15s ease,background .15s ease;
}
.nav-links>a:hover,.links>a:hover,.nav-menu summary:hover,.nav-menu[open] summary{color:var(--ink);background:var(--soft-line)}
.nav-menu{position:relative}
.nav-menu summary{list-style:none;cursor:pointer;gap:6px}
.nav-menu summary::-webkit-details-marker{display:none}
.nav-menu summary::after{
  content:"";width:7px;height:7px;margin-left:2px;flex:none;
  border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform .15s ease;
}
.nav-menu[open] summary::after{transform:rotate(225deg) translateY(-1px)}
.menu-panel{
  position:absolute;right:0;top:calc(100% + 10px);z-index:70;
  display:grid;gap:2px;min-width:240px;padding:8px;
  border:1px solid var(--line);border-radius:12px;
  background:var(--controlBg);box-shadow:var(--shadow);
}
.menu-panel.cols{grid-template-columns:1fr 1fr;min-width:430px}
.menu-panel .menu-label{grid-column:1/-1;padding:8px 12px 2px;font-size:11px;font-weight:640;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.menu-panel a{
  display:block;padding:9px 12px;border-radius:8px;
  color:var(--ink);text-decoration:none;font-size:13.5px;font-weight:520;
}
.menu-panel a:hover{background:var(--soft-line)}
.menu-panel a small{display:block;color:var(--muted);font-size:11.5px;font-weight:440}
.nav-cta{margin-left:6px}
.nav-toggle{display:none}

/* Buttons */
.button,.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:10px 20px;
  border:1px solid var(--buttonBg);border-radius:10px;
  background:var(--buttonBg);color:var(--buttonText);
  text-decoration:none;font-weight:620;font-size:14px;letter-spacing:0;
  cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
}
.button:hover,.btn:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,0,0,.25)}
.button.secondary,.btn.alt{background:transparent;color:var(--ink);border-color:var(--line)}
.button.secondary:hover,.btn.alt:hover{border-color:var(--muted);box-shadow:none}
.button.accent{background:linear-gradient(120deg,var(--accent-strong),var(--accent));border-color:transparent;color:#fff}

/* Theme toggle */
.theme-toggle{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;min-width:40px;height:40px;margin-left:2px;
  border:1px solid var(--line);border-radius:10px;
  background:var(--controlBg);color:var(--ink);cursor:pointer;
  transition:border-color .15s ease;
}
.theme-toggle:hover{border-color:var(--muted)}
.theme-toggle svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle .moon-icon{display:none}
html[data-theme=dark] .theme-toggle .sun-icon{display:none}
html[data-theme=dark] .theme-toggle .moon-icon{display:block}

/* ---------- Hero ---------- */
.hero,.page-hero{
  position:relative;
  display:grid;align-items:end;
  min-height:62vh;
  padding:130px 0 74px;
  background-image:linear-gradient(100deg,var(--heroShade1) 30%,var(--heroShade2) 75%,transparent),var(--hero-img,url('/assets/hero-launch.jpg'));
  background-size:cover;background-position:center;
  border-bottom:1px solid var(--soft-line);
}
.hero.tall{min-height:calc(100vh - 68px)}
.hero::after,.page-hero::after{
  content:"";position:absolute;inset:auto 0 0 0;height:140px;pointer-events:none;
  background:linear-gradient(180deg,transparent,var(--bg));
}
.hero .shell,.page-hero .shell{position:relative;z-index:1}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  margin:0 0 16px;padding:5px 12px;
  border:1px solid var(--line);border-radius:999px;
  background:var(--panel);
  color:var(--accent2);font-size:12px;font-weight:620;letter-spacing:.06em;text-transform:uppercase;
}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent)}
.lead{max-width:720px;margin:0 0 28px;color:var(--panelText);font-size:clamp(16px,1.7vw,19px);line-height:1.6;font-weight:460}
.hero-actions,.actions{display:flex;flex-wrap:wrap;gap:12px}
.hero-note{margin:22px 0 0;font-size:13px;color:var(--muted)}

/* ---------- Sections ---------- */
.section-dark,.dark{background:var(--surface);border-top:1px solid var(--soft-line);border-bottom:1px solid var(--soft-line)}
.section-panel{background:var(--surface);border-top:1px solid var(--soft-line);border-bottom:1px solid var(--soft-line)}
.section-head,.head{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:34px}
.section-head p,.head p{max-width:480px;margin:0}
.center{text-align:center}
.center .section-head,.center .head{justify-content:center}

/* Grids */
.grid-2,.grid-3,.grid-4,.grid2,.grid3,.grid4,.metrics,.timeline,.visual-grid,.concept-index,.ratings{display:grid;gap:16px}
.grid-2,.grid2,.simgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3,.grid3,.concept-index{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4,.grid4,.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.simgrid{display:grid;gap:18px}
.visual-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.split{display:grid;grid-template-columns:.95fr 1.05fr;gap:18px;align-items:stretch}
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:18px}

/* Cards & panels */
.card,.panel,.metric,.timeline article,.contact-card,.calc,.module-panel,.detail-section,.study-nav,.visual-card{
  border:1px solid var(--line);border-radius:var(--radius);
  background:var(--panel);padding:24px;min-width:0;
  box-shadow:var(--card-shadow);
}
.card,.metric{transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.card:hover,.metric:hover{transform:translateY(-3px);border-color:rgba(249,115,22,.45);box-shadow:0 14px 40px rgba(0,0,0,.28)}
html[data-theme=light] .card:hover,html[data-theme=light] .metric:hover{box-shadow:0 14px 34px rgba(16,24,40,.12)}
.card p,.panel p,.timeline p,.contact-card p{margin-bottom:0}
.card h3 a{color:var(--ink);text-decoration:none}
.card h3 a:hover{color:var(--accent2)}
.card .tag+h3{margin-top:2px}
.metric strong{display:block;font-size:clamp(26px,3vw,38px);line-height:1.05;font-weight:680;color:var(--ink);letter-spacing:-.02em}
.metric span{display:block;margin-top:8px;color:var(--muted);font-size:12.5px;font-weight:540}
.tag{display:inline-flex;margin:0 0 8px;color:var(--accent2);font-size:12px;font-weight:620;letter-spacing:.05em;text-transform:uppercase}
.notice{border-left:4px solid var(--accent);background:linear-gradient(120deg,var(--glow),var(--panel) 55%)}
.band{
  display:grid;grid-template-columns:1fr auto;align-items:center;gap:22px;
  border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius);
  background:linear-gradient(110deg,var(--glow),var(--panel) 60%);padding:30px;
  box-shadow:var(--card-shadow);
}
.band h2{margin-bottom:8px}
.band p{margin:0}

/* Reveal on scroll */
.fx .card,.fx .metric,.fx .panel,.fx .visual-card,.fx .timeline article{opacity:0;transform:translateY(14px)}
.fx .card.in,.fx .metric.in,.fx .panel.in,.fx .visual-card.in,.fx .timeline article.in{opacity:1;transform:none;transition:opacity .5s ease,transform .5s ease}
@media (prefers-reduced-motion:reduce){.fx .card,.fx .metric,.fx .panel,.fx .visual-card,.fx .timeline article{opacity:1;transform:none}}

/* Vehicle showcase (home) */
.vehicle{
  position:relative;min-height:440px;display:grid;align-items:end;
  border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);
  background-size:cover;background-position:center;
  transition:transform .2s ease;
}
.vehicle:hover{transform:translateY(-3px)}
.vehicle.avx1{background-image:linear-gradient(0deg,rgba(4,6,11,.92),rgba(4,6,11,.18)),url('/assets/hero-launch.jpg')}
.vehicle.heavy{background-image:linear-gradient(0deg,rgba(4,6,11,.92),rgba(4,6,11,.2)),url('/assets/hero-engine-test.jpg')}
.vehicle.ship{background-image:linear-gradient(0deg,rgba(4,6,11,.92),rgba(4,6,11,.16)),url('/assets/hero-orbit-spacecraft.jpg')}
.vehicle .content{padding:28px}
.vehicle h3,.vehicle p{color:#f2f5fa}
.vehicle p{color:#c3ccdb}
.vehicle .tag{color:#8fd8fb}

/* Spec tables */
.spec{width:100%;border-collapse:collapse;margin-top:12px;font-size:15px}
.spec td,.spec th{border-bottom:1px solid var(--soft-line);padding:11px 10px;text-align:left;vertical-align:top}
.spec tr:last-child td,.spec tr:last-child th{border-bottom:0}
.spec th{color:var(--ink);font-weight:620;white-space:nowrap}
.specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:22px;background:var(--soft-line);border-radius:var(--radius-sm);overflow:hidden}
.specs div{background:var(--panel-strong);padding:16px}
.specs strong{display:block;font-size:21px;color:var(--ink)}

/* Lists */
.feature-list,.contact-list{margin:0;padding-left:20px;color:var(--muted)}
.feature-list li,.contact-list li{margin:9px 0}
.feature-list li::marker,.contact-list li::marker{color:var(--accent)}

/* ---------- Study / academy layout ---------- */
.study-layout{display:grid;grid-template-columns:264px minmax(0,1fr);gap:20px;align-items:start}
.study-nav{position:sticky;top:88px;padding:18px;max-height:calc(100vh - 108px);overflow:auto}
.study-nav h2{font-size:14px;margin-bottom:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:640}
.study-nav a{display:block;padding:8px 11px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:13.5px;font-weight:540;overflow-wrap:anywhere}
.study-nav a:hover,.study-nav a.active{background:var(--soft-line);color:var(--ink)}
.breadcrumb{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;color:var(--muted);font-size:12.5px;font-weight:540}
.breadcrumb a{color:var(--accent2);text-decoration:none}
.breadcrumb a:hover{text-decoration:underline}
.detail-stack{display:grid;gap:16px}
.detail-section h2{font-size:22px}
.detail-section ul{margin:0;padding-left:20px}
.backlink-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.backlink-row a{
  border:1px solid var(--line);border-radius:9px;padding:9px 14px;
  color:var(--ink);text-decoration:none;font-weight:580;font-size:13px;background:var(--panel);
  transition:border-color .15s ease;
}
.backlink-row a:hover{border-color:var(--accent2)}
.topic-badge{display:inline-flex;margin:0 8px 8px 0;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink);font-size:12.5px;font-weight:560;text-decoration:none}
.topic-badge:hover{border-color:var(--accent2)}
.chapter-note{border-left:4px solid var(--accent2);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--panel-strong);padding:14px 16px;color:var(--panelText)}
.formula-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.equation-chip{
  border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--panel-strong);padding:12px 14px;
  color:var(--panelText);font-family:var(--mono);font-size:13px;overflow-wrap:anywhere;
}
.matrix{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--soft-line);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}
.matrix div{background:var(--panel);padding:14px}
.matrix strong{color:var(--ink)}
.concept-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:start}
.concept-canvas,.flight-canvas,.engine-canvas{
  width:100%;aspect-ratio:16/9;
  border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--canvasBg);
}
.flight-canvas{cursor:grab;touch-action:none}
.flight-canvas:active{cursor:grabbing}
.concept-readouts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.concept-readouts .readout{margin-top:0}
.mini-orbit{height:4px;background:linear-gradient(90deg,var(--blue),var(--green));border-radius:99px}
.canvas-note,.sim-note{margin-top:10px;color:var(--muted);font-size:12.5px}
.sim-note{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-strong);padding:10px 12px}

/* ---------- Simulation lab ---------- */
.lab-shell{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:18px;align-items:start}
.engine-stage{
  border:1px solid var(--line);border-radius:var(--radius);
  background:radial-gradient(circle at 50% 42%,rgba(111,205,248,.09),transparent 46%),var(--canvasBg);
  padding:16px;
}
html[data-theme=light] .engine-stage{background:radial-gradient(circle at 50% 42%,rgba(3,105,161,.10),transparent 46%),#101a2c}
.three-stage{position:relative;width:100%;min-height:520px;border:1px solid var(--line);border-radius:var(--radius-sm);background:radial-gradient(circle at 50% 40%,rgba(111,205,248,.13),transparent 46%),var(--canvasBg);overflow:hidden}
.three-stage canvas{display:block;width:100%;height:100%}
.three-stage.loading::before{content:"Loading propulsion model…";position:absolute;inset:auto 14px 14px 14px;color:#cfe3f5;font-weight:600;font-size:13px}
.control-stack{display:grid;gap:12px}
.control-stack label{display:grid;gap:6px;color:var(--ink);font-size:12.5px;font-weight:600}
.control-stack input[type=range]{width:100%;accent-color:var(--accent)}
.control-stack select,.calc input,.calc select,.calc textarea{
  width:100%;padding:11px;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--fieldBg);color:var(--ink);font:inherit;
}
.calc label{display:grid;gap:6px;margin:10px 0;color:var(--ink);font-weight:600;font-size:13.5px}
.result{margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-strong);color:var(--ink);min-height:48px}
.readout-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.readout,.mission-chip,.propulsion-hud div{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);padding:12px;min-width:0}
.readout span,.mission-chip span,.propulsion-hud span{display:block;color:var(--muted);font-size:11px;font-weight:560;letter-spacing:.04em;text-transform:uppercase}
.readout strong,.mission-chip strong,.propulsion-hud strong{display:block;color:var(--ink);font-size:19px;margin-top:4px;font-weight:640;overflow-wrap:anywhere}
.propulsion-hud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.mission-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}
.mode-row{display:flex;gap:8px;flex-wrap:wrap}
.mode-row button,.concept-tabs button{
  border:1px solid var(--line);background:var(--panel);color:var(--ink);
  border-radius:9px;padding:9px 12px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;
  transition:border-color .15s ease,background .15s ease;
}
.mode-row button:hover,.concept-tabs button:hover{border-color:var(--accent2)}
.mode-row button.active,.concept-tabs button.active{background:var(--buttonBg);color:var(--buttonText);border-color:var(--buttonBg)}
.mode-row .ghost{background:var(--panel-strong);color:var(--panelText)}
.concept-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.flow-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:12.5px}
.flow-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}
.warnline{margin-top:12px;border-left:4px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:10px 14px;background:var(--glow);color:var(--panelText);font-size:13.5px}
.toggle-line{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:12.5px;font-weight:600}
.toggle-line input{accent-color:var(--accent)}
.flight-timeline{display:grid;gap:8px;margin-top:14px}
.event-pill{display:grid;grid-template-columns:76px 1fr;gap:10px;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);padding:9px 12px;color:var(--muted)}
.event-pill.active{border-color:var(--accent2);background:var(--panel-strong);color:var(--ink)}
.event-pill strong{color:var(--ink);overflow-wrap:anywhere}
.flight-tools{display:grid;gap:12px}
.camera-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.camera-grid label{min-width:0}

/* ---------- Visual band / media ---------- */
.visual-band{
  display:grid;grid-template-columns:1fr .9fr;gap:22px;align-items:center;
  border:1px solid var(--line);border-radius:var(--radius);
  background:var(--panel);padding:22px;min-width:0;box-shadow:var(--card-shadow);
}
.visual-band img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-sm)}
.visual-card{padding:0;overflow:hidden}
.visual-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.visual-card div{padding:18px}
figure.media{margin:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel)}
figure.media img{width:100%;aspect-ratio:16/9;object-fit:cover}
figure.media figcaption{padding:12px 16px;font-size:13px;color:var(--muted)}

/* ---------- News ticker ---------- */
.slider{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.track{display:flex;gap:14px;animation:scroll 48s linear infinite;padding:16px;width:max-content}
.slider:hover .track{animation-play-state:paused}
.slide{width:330px;flex:none;border:1px solid var(--soft-line);border-radius:var(--radius-sm);background:var(--panel-strong);padding:16px}
.slide h3{font-size:15.5px;line-height:1.35}
.slide p{font-size:13px;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.slide .btn{min-height:34px;padding:6px 12px;font-size:12px}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.track{animation:none}}

/* Ratings */
.stars,.rating-stars{color:var(--gold);letter-spacing:2px}
.value-line{font-size:18px;color:var(--ink);font-weight:640}

/* Timeline / process steps */
.timeline{grid-template-columns:repeat(4,minmax(0,1fr))}
.timeline article{position:relative;padding-top:30px}
.timeline .step-no{
  position:absolute;top:-14px;left:20px;
  display:inline-flex;align-items:center;justify-content:center;
  min-width:34px;height:28px;padding:0 8px;border-radius:8px;
  background:linear-gradient(120deg,var(--accent-strong),var(--accent));color:#fff;
  font-weight:680;font-size:13px;letter-spacing:.02em;
}

/* FAQ */
.faq{display:grid;gap:10px;max-width:820px}
.faq details{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);padding:0 18px}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 0;color:var(--ink);font-weight:600;font-size:15.5px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:20px;color:var(--muted);flex:none;transition:transform .15s ease}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 16px}

/* ---------- Forms ---------- */
form{display:grid;gap:14px}
label{color:var(--ink);font-size:13px;font-weight:600}
input,select,textarea{
  width:100%;margin-top:6px;
  border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:12px 14px;color:var(--ink);background:var(--fieldBg);font:inherit;
  transition:border-color .15s ease,box-shadow .15s ease;
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent2);box-shadow:0 0 0 3px rgba(111,205,248,.18)}
select option{background:var(--fieldBg);color:var(--ink)}
textarea{min-height:132px;resize:vertical}
.form-note{margin:0;font-size:12.5px;color:var(--muted)}
button[type=submit]{cursor:pointer}
button[disabled]{opacity:.6;cursor:progress}

/* ---------- Footer ---------- */
footer.site-footer{margin-top:0;border-top:1px solid var(--soft-line);background:var(--surface);color:var(--muted);padding:0}
.footer-main{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:34px;padding:58px 0 40px}
.footer-main h4{font-size:12px;font-weight:640;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}
.footer-main ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.footer-main a{color:var(--muted);text-decoration:none;font-size:14px}
.footer-main a:hover{color:var(--ink)}
.footer-brand p{margin:12px 0 0;font-size:14px;max-width:300px}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;padding:18px 0 26px;border-top:1px solid var(--soft-line);font-size:13px}
.footer-metrics{display:flex;gap:8px;flex-wrap:wrap}
.footer-stat{
  display:inline-flex;align-items:baseline;gap:6px;
  border:1px solid var(--soft-line);border-radius:999px;
  background:var(--panel);padding:5px 12px;font-size:12px;
}
.footer-stat span{color:var(--muted)}
.footer-stat strong{color:var(--ink);font-weight:640;font-size:12.5px}
.footer-grid{display:grid;gap:18px}

/* ---------- Toast & feedback ---------- */
.protection-note{
  position:fixed;left:50%;bottom:18px;z-index:80;
  transform:translateX(-50%) translateY(16px);opacity:0;pointer-events:none;
  padding:10px 16px;border:1px solid var(--line);border-radius:10px;
  background:var(--controlBg);color:var(--ink);font-size:12.5px;font-weight:560;
  box-shadow:var(--shadow);
  transition:opacity .18s ease,transform .18s ease;
}
.protection-note.show{opacity:1;transform:translateX(-50%) translateY(0)}
.feedback-modal{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(2,4,10,.62);backdrop-filter:blur(3px)}
.feedback-modal.show{display:flex}
.feedback-card{width:min(430px,100%);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:24px;box-shadow:var(--shadow)}
.feedback-card h2{font-size:21px;margin:0 0 8px}
.feedback-stars{display:flex;gap:8px;margin:14px 0}
.feedback-stars button{width:42px;height:42px;border:1px solid var(--line);border-radius:9px;background:var(--panel-strong);color:var(--gold);font-size:20px;cursor:pointer}
.feedback-stars button.active,.feedback-stars button:hover{background:var(--gold);color:#161006;border-color:var(--gold)}
.feedback-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.feedback-actions button{border:1px solid var(--buttonBg);border-radius:9px;background:var(--buttonBg);color:var(--buttonText);padding:9px 14px;font:inherit;font-weight:620;cursor:pointer}
.feedback-actions .ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.feedback-card textarea{width:100%;min-height:82px}

/* ---------- Blog ---------- */
.post-list{display:grid;gap:12px}
.post-list article{display:grid;grid-template-columns:110px 1fr;gap:18px;align-items:baseline;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);padding:18px 20px}
.post-list time{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}
.post-list h3{margin:0;font-size:16.5px}
.post-list h3 a{color:var(--ink);text-decoration:none}
.post-list h3 a:hover{color:var(--accent2)}
.post-list p{margin:4px 0 0;font-size:13.5px}
.prose{max-width:760px}
.prose h2{font-size:24px;margin-top:34px}
.prose p{margin:0 0 16px}
.post-meta{color:var(--muted);font-size:13.5px;margin-bottom:26px}

/* ---------- 404 ---------- */
.error-hero{min-height:70vh;display:grid;place-items:center;text-align:center;padding:120px 0 80px}
.error-hero .code{font-size:clamp(80px,16vw,150px);font-weight:720;line-height:1;letter-spacing:-.04em;background:linear-gradient(120deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent;margin:0}

/* ---------- Responsive ---------- */
@media (max-width:1020px){
  .menu-panel.cols{min-width:360px}
  .grid-4,.grid4,.metrics,.timeline{grid-template-columns:repeat(2,minmax(0,1fr))}
  .visual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-main{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  section{padding:56px 0}
  .shell{width:calc(100% - 32px)}
  nav.primary{flex-wrap:wrap}
  .nav-toggle{
    display:inline-flex;align-items:center;justify-content:center;
    width:42px;height:42px;margin-left:auto;
    border:1px solid var(--line);border-radius:10px;background:var(--controlBg);color:var(--ink);cursor:pointer;
  }
  .nav-toggle svg{width:20px;height:20px;stroke:currentColor;stroke-width:2;stroke-linecap:round;fill:none}
  .nav-links,.links{
    display:none;width:100%;flex-direction:column;align-items:stretch;gap:2px;padding:6px 0 14px;
  }
  .nav-links.open,.links.open{display:flex}
  .nav-links>a,.links>a,.nav-menu summary{padding:12px 10px;font-size:15px}
  .nav-menu{width:100%}
  .menu-panel,.menu-panel.cols{position:static;min-width:0;grid-template-columns:1fr;box-shadow:none;border:0;background:transparent;padding:0 0 4px 14px}
  .nav-cta{margin:8px 0 0}
  .button,.btn{width:auto}
  .hero,.page-hero{min-height:56vh;padding:110px 0 54px;background-position:66% center}
  .hero.tall{min-height:74vh}
  .section-head,.head,.split,.contact-grid,.band,.concept-grid,.lab-shell,.study-layout,.simgrid,.visual-band,.footer-main{grid-template-columns:1fr;display:grid}
  .section-head,.head{gap:10px;align-items:flex-start;margin-bottom:24px}
  .grid-2,.grid-3,.grid-4,.grid2,.grid3,.grid4,.metrics,.specs,.timeline,.visual-grid,.concept-index,.concept-readouts,.formula-grid,.matrix,.readout-grid,.propulsion-hud,.camera-grid{grid-template-columns:1fr}
  .mission-strip{grid-template-columns:1fr 1fr}
  .study-nav{position:static;max-height:none}
  .three-stage{min-height:420px}
  .concept-canvas,.flight-canvas{aspect-ratio:1/1}
  .post-list article{grid-template-columns:1fr;gap:4px}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  h1{font-size:clamp(28px,7.5vw,38px)}
}
@media (max-width:520px){
  .visual-grid,.mission-strip{grid-template-columns:1fr}
  .hero-actions .button,.hero-actions .btn{width:100%}
}

/* ---------- Print ---------- */
@media print{
  .top,.site-header,.theme-toggle,.nav-toggle,.protection-note,.feedback-modal,.footer-metrics,.slider,.skip-link{display:none!important}
  body{background:#fff;color:#000}
  p,li{color:#222}
  .hero,.page-hero{min-height:0;padding:20px 0;background:#fff!important;border:0}
  a[href^="/"]::after{content:" (aerovectrix.com" attr(href) ")";font-size:11px;color:#555}
}
