/* ==========================================================================
   constructing.space — Chapter I: History
   Uses the same design tokens as the landing page.
   ========================================================================== */

:root{
  --bg:#05070c; --panel:#0a0f1c; --border:#1c2438; --border-soft:#141a2b;
  --text-primary:#eef1f7; --text-secondary:#8890a4; --text-muted:#4d5670;
  --accent:#5ec8ff; --accent-soft:rgba(94,200,255,0.15); --warn:#ffb454;
  --loss:#ff7a6b; --tech:#8be9a8; --first:#5ec8ff; --program:#c9a2ff; --milestone:#ffd166;
  --font-display:'Orbitron',sans-serif;
  --font-body:Calibri,Aptos,"Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text-primary);}
body{font-family:var(--font-body);font-size:16px;line-height:1.7;padding-bottom:120px;}
body.modal-open{overflow:hidden;}

/* --- top bar ----------------------------------------------------------- */
.site-bar{position:sticky;top:0;z-index:40;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;
  padding:14px 28px;background:rgba(5,7,12,0.88);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--border);}
.site-home{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--text-primary);
  text-decoration:none;letter-spacing:0.5px;text-transform:lowercase;}
.site-home span{color:var(--accent);}
.site-home:hover span{text-shadow:0 0 12px var(--accent);}
.chapter-label{font-family:var(--font-display);font-size:10px;letter-spacing:2px;
  color:var(--text-muted);text-transform:uppercase;}
.bar-right{margin-left:auto;font-size:12px;color:var(--text-muted);}
.bar-right a{color:var(--accent);text-decoration:none;}
.bar-right a:hover{text-decoration:underline;}

/* --- chapter hero ------------------------------------------------------ */
.chapter-hero{max-width:860px;margin:0 auto;padding:84px 28px 30px;}
.chapter-hero .kicker{font-family:var(--font-display);font-size:11px;letter-spacing:3px;
  color:var(--accent);text-transform:uppercase;margin-bottom:16px;}
.chapter-hero h1{font-size:clamp(34px,5vw,54px);line-height:1.12;margin:0 0 22px;font-weight:700;}
.chapter-hero .lede{font-size:19px;color:var(--text-secondary);max-width:720px;margin:0 0 14px;}
.chapter-hero .lede b{color:var(--text-primary);}
.how-to{display:flex;gap:14px;flex-wrap:wrap;margin:26px 0 0;}
.how-to div{flex:1;min-width:200px;background:var(--panel);border:1px solid var(--border);
  border-radius:4px;padding:14px 16px;font-size:13.5px;color:var(--text-secondary);}
.how-to div b{display:block;color:var(--text-primary);font-size:13px;margin-bottom:4px;}
.provenance{font-size:12.5px;color:var(--text-muted);margin-top:22px;border-left:2px solid var(--border);
  padding-left:12px;max-width:720px;}

/* --- eras --------------------------------------------------------------- */
.era{max-width:860px;margin:0 auto;padding:72px 28px 30px;border-top:1px solid var(--border-soft);}
.era:first-of-type{border-top:none;}
.era-head .era-num{font-family:var(--font-display);font-size:11px;letter-spacing:3px;color:var(--accent);}
.era-head h2{font-size:clamp(28px,3.6vw,40px);margin:8px 0 2px;font-weight:700;}
.era-years{font-family:var(--font-display);font-size:13px;color:var(--text-muted);letter-spacing:1.5px;margin-bottom:16px;}
.era-blurb{font-size:17.5px;color:var(--text-secondary);max-width:720px;margin:0;}

.era-context{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:30px 0 10px;}
.era-context>div{background:var(--panel);border:1px solid var(--border);border-radius:4px;padding:16px 18px;}
.era-context h4{font-family:var(--font-display);font-size:10px;letter-spacing:2px;color:var(--accent);
  text-transform:uppercase;margin:0 0 8px;}
.era-context p{font-size:13.5px;color:var(--text-secondary);margin:0;line-height:1.65;}

/* --- events spine ------------------------------------------------------- */
.events{list-style:none;margin:34px 0 0;padding:0 0 0 26px;border-left:1px solid var(--border);}
.event{position:relative;padding:0 0 34px 24px;}
.event::before{content:"";position:absolute;left:-31px;top:7px;width:9px;height:9px;border-radius:50%;
  background:var(--bg);border:2px solid var(--accent);}
.event:last-child{padding-bottom:8px;}
.e-date{font-family:var(--font-display);font-size:11.5px;letter-spacing:1.5px;color:var(--text-muted);margin-bottom:6px;}
.e-body h3{font-size:18px;margin:6px 0 8px;font-weight:700;}
.e-body p{font-size:15px;color:var(--text-secondary);margin:0;max-width:660px;}
.e-tag{display:inline-block;font-family:var(--font-display);font-size:9px;letter-spacing:1.5px;
  text-transform:uppercase;padding:3px 8px;border-radius:2px;border:1px solid;}
.t-first{color:var(--first);border-color:var(--first);}
.t-loss{color:var(--loss);border-color:var(--loss);}
.t-tech{color:var(--tech);border-color:var(--tech);}
.t-program{color:var(--program);border-color:var(--program);}
.t-milestone{color:var(--milestone);border-color:var(--milestone);}

/* --- vehicle cards ------------------------------------------------------ */
.vehicle-cards{margin:26px 0 6px;display:grid;gap:16px;}
.vehicle-card{display:grid;grid-template-columns:130px 1fr;gap:0;background:linear-gradient(120deg,#0b1220,#0a0f1c);
  border:1px solid var(--border);border-radius:6px;overflow:hidden;cursor:pointer;
  transition:border-color .25s, transform .25s;}
.vehicle-card:hover,.vehicle-card:focus-visible{border-color:var(--accent);transform:translateY(-2px);outline:none;}
.vc-thumb{background:radial-gradient(circle at 50% 40%, #101a2e 0%, #070b14 75%);
  display:flex;align-items:center;justify-content:center;padding:14px 8px;}
.vc-thumb svg{height:190px;width:auto;max-width:110px;}
.vc-body{padding:18px 22px;}
.vc-kicker{font-family:var(--font-display);font-size:9.5px;letter-spacing:2.5px;color:var(--warn);text-transform:uppercase;}
.vc-body h3{margin:7px 0 7px;font-size:21px;}
.vc-body p{margin:0 0 12px;font-size:14px;color:var(--text-secondary);max-width:560px;}
.vc-cta{font-size:13.5px;color:var(--accent);font-weight:700;}
.vehicle-card:hover .vc-cta{text-decoration:underline;}

/* --- reveal animation --------------------------------------------------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease;}
.reveal.visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* --- sources footer ----------------------------------------------------- */
.chapter-sources{max-width:860px;margin:0 auto;padding:60px 28px 40px;border-top:1px solid var(--border-soft);}
.chapter-sources h4{font-family:var(--font-display);font-size:10px;letter-spacing:2px;color:var(--text-muted);
  text-transform:uppercase;margin:0 0 12px;}
.chapter-sources ul{margin:0;padding-left:18px;font-size:13px;color:var(--text-secondary);}
.chapter-sources li{margin-bottom:5px;}

/* --- bottom era slider --------------------------------------------------- */
.era-slider{position:fixed;left:0;right:0;bottom:0;z-index:30;
  background:rgba(6,9,16,0.92);backdrop-filter:blur(10px);border-top:1px solid var(--border);}
.slider-track{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;}
.seg{position:relative;background:none;border:none;border-left:1px solid var(--border-soft);
  color:var(--text-muted);font-family:var(--font-body);cursor:pointer;padding:10px 6px 12px;
  display:flex;flex-direction:column;align-items:center;gap:1px;transition:background .2s;}
.seg:first-child{border-left:none;}
.seg:hover{background:rgba(94,200,255,0.06);}
.seg.active{color:var(--text-primary);}
.seg.active .seg-num{color:var(--accent);}
.seg-num{font-family:var(--font-display);font-size:10px;letter-spacing:2px;color:var(--text-muted);}
.seg-label{font-size:12px;font-weight:700;}
.seg-years{font-size:10px;color:var(--text-muted);}
.slider-marker{position:absolute;top:0;bottom:auto;height:3px;width:46px;margin-left:-23px;
  background:var(--accent);border-radius:2px;box-shadow:0 0 10px var(--accent);
  transition:left .15s linear;pointer-events:none;}
body.modal-open .era-slider{display:none;}
@media (max-width:760px){
  .seg-label,.seg-years{display:none;}
  .seg{padding:10px 2px;}
}

/* --- vehicle modal ------------------------------------------------------- */
.vehicle-modal{position:fixed;inset:0;z-index:60;background:rgba(3,5,9,0.9);backdrop-filter:blur(6px);
  overflow-y:auto;overflow-x:hidden;padding:24px;}
.vehicle-modal[hidden]{display:none;}
.vm-inner{position:relative;max-width:1180px;margin:0 auto;background:#080d18;border:1px solid var(--border);
  border-radius:8px;display:grid;grid-template-columns:minmax(300px,44%) minmax(0,1fr);min-height:calc(100vh - 48px);}
.vm-stage,.vm-side{min-width:0;}
.vm-close{position:absolute;top:14px;right:14px;z-index:5;background:rgba(10,15,28,0.9);
  border:1px solid var(--border);color:var(--text-secondary);font-family:var(--font-body);font-size:13px;
  padding:8px 13px;border-radius:3px;cursor:pointer;}
.vm-close:hover{color:var(--text-primary);border-color:var(--accent);}

.vm-stage{position:sticky;top:0;align-self:start;height:calc(100vh - 48px);display:flex;align-items:center;
  justify-content:center;background:radial-gradient(circle at 50% 42%, #0e1830 0%, #060a13 78%);
  border-right:1px solid var(--border);border-radius:8px 0 0 8px;padding:26px 12px;}
.vm-stage svg{height:100%;width:100%;}

.vehicle-svg .part{cursor:pointer;transition:filter .2s;}
.vehicle-svg .part.hover{filter:brightness(1.25) drop-shadow(0 0 6px rgba(94,200,255,0.6));}
.vehicle-svg .part.selected{filter:brightness(1.3) drop-shadow(0 0 9px rgba(255,209,102,0.85));}
.vehicle-svg.thumb .part{cursor:inherit;}

.vm-side{padding:26px 28px 34px;display:flex;flex-direction:column;gap:18px;}
.vm-kicker{font-family:var(--font-display);font-size:10px;letter-spacing:2.5px;color:var(--warn);text-transform:uppercase;}
.vm-head h3{font-size:30px;margin:8px 0 8px;}
.vm-tagline{font-size:15px;color:var(--text-secondary);margin:0 0 16px;}
.vm-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px 18px;margin-bottom:14px;}
.vm-stats div{font-size:13.5px;display:flex;justify-content:space-between;gap:10px;
  border-bottom:1px solid var(--border-soft);padding-bottom:5px;}
.vm-stats div span{color:var(--text-muted);font-size:12px;}
.vm-intro{font-size:14px;color:var(--text-secondary);margin:0;}

.explode-ctl{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--border);
  border-radius:4px;padding:12px 16px;font-size:11px;color:var(--text-muted);
  font-family:var(--font-display);letter-spacing:1.5px;text-transform:uppercase;}
.explode-ctl input{flex:1;min-width:0;accent-color:var(--accent);}
@media (max-width:520px){
  .vm-stats,.vm-specs{grid-template-columns:1fr;}
  .explode-ctl{flex-wrap:wrap;}
  .vm-dd-timeline li{grid-template-columns:1fr;gap:4px;}
}

.vm-parts{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.vm-part-btn{text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:4px;
  padding:10px 12px;cursor:pointer;color:var(--text-secondary);font-family:var(--font-body);transition:border-color .2s;}
.vm-part-btn strong{display:block;color:var(--text-primary);font-size:13.5px;margin-bottom:2px;}
.vm-part-btn span{font-size:11.5px;line-height:1.45;display:block;}
.vm-part-btn:hover{border-color:var(--accent);}
.vm-part-btn.active{border-color:var(--warn);background:rgba(255,180,84,0.07);}

.vm-detail{background:var(--panel);border:1px solid var(--border);border-radius:4px;padding:16px 18px;min-height:90px;}
.vm-detail h4{margin:0 0 12px;font-size:17px;}
.vm-hint{margin:0;color:var(--text-muted);font-size:13.5px;}
.vm-specs{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin-bottom:12px;}
.vm-specs div{font-size:13px;display:flex;justify-content:space-between;gap:8px;
  border-bottom:1px solid var(--border-soft);padding-bottom:4px;}
.vm-specs div span{color:var(--text-muted);font-size:11.5px;}
.vm-detail p{font-size:14px;color:var(--text-secondary);margin:0 0 10px;}
.vm-failure{border-left:2px solid var(--loss);padding-left:12px;}
.vm-failure strong{color:var(--loss);}
.vm-deepdive-link{background:rgba(255,122,107,0.08);border:1px solid var(--loss);color:var(--loss);
  font-family:var(--font-body);font-size:13px;padding:8px 13px;border-radius:3px;cursor:pointer;margin-top:4px;}
.vm-deepdive-link:hover{background:rgba(255,122,107,0.16);}

.vm-deepdive{border:1px solid rgba(255,122,107,0.4);border-radius:4px;overflow:hidden;}
.vm-dd-toggle{width:100%;text-align:left;background:rgba(255,122,107,0.07);border:none;color:var(--loss);
  font-family:var(--font-display);font-size:11.5px;letter-spacing:1.5px;text-transform:uppercase;
  padding:13px 16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;}
.dd-caret{transition:transform .25s;}
.vm-deepdive.open .dd-caret{transform:rotate(180deg);}
.vm-dd-body{display:none;padding:18px;}
.vm-deepdive.open .vm-dd-body{display:block;}
.vm-dd-lead{font-size:14px;color:var(--text-secondary);margin:0 0 16px;}
.vm-dd-joint{background:#0a0e18;border:1px solid var(--border-soft);border-radius:4px;padding:10px;margin-bottom:18px;}
.vm-dd-joint svg{width:100%;height:auto;display:block;}
.vm-dd-timeline{list-style:none;margin:0;padding:0;}
.vm-dd-timeline li{display:grid;grid-template-columns:96px 1fr;gap:14px;padding:10px 0;
  border-top:1px solid var(--border-soft);}
.vm-dd-timeline .dd-t{font-family:var(--font-display);font-size:11px;color:var(--loss);letter-spacing:1px;padding-top:2px;}
.vm-dd-timeline p{margin:0;font-size:13.5px;color:var(--text-secondary);}

.vm-sources{font-size:11.5px;color:var(--text-muted);margin:4px 0 0;border-top:1px solid var(--border-soft);padding-top:12px;}

@media (max-width:960px){
  .era-context{grid-template-columns:1fr;}
  .vm-inner{grid-template-columns:1fr;}
  .vm-stage{position:relative;height:64vh;border-right:none;border-bottom:1px solid var(--border);
    border-radius:8px 8px 0 0;}
  .vm-parts{grid-template-columns:1fr;}
  .vehicle-card{grid-template-columns:96px 1fr;}
  .vc-thumb svg{height:150px;}
  .vehicle-modal{padding:10px;}
  .vm-inner{min-height:calc(100vh - 20px);}
}
