/* =================================================================
   FLIGHT DECK × BLUEPRINT — presentation mode
   Slide-based deck. Every <section class="slide"> is a copy-paste unit.
   Flight-deck HUD chrome (telemetry bar, altitude strip, console wipe)
   fused with blueprint draftsmanship (graph paper, dimension lines,
   corner brackets, title block, schematic draw-on).
   Built on the Endurance Aero Labs design system.
   ================================================================= */
:root{
  --bg:#0B0E14; --bg-soft:#11151E; --panel:#161B26;
  --fg:#EDE7D9; --fg-soft:#C9C3B6; --fg-mute:#7B756A;
  --rule:rgba(237,231,217,0.12); --rule-soft:rgba(237,231,217,0.05);
  --accent:#E0995A; --accent-2:#7AA0B8; --danger:#C25B4B;
  --serif:"Instrument Serif","Times New Roman",serif;
  --sans:"DM Sans",-apple-system,BlinkMacSystemFont,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;
}
*,*::before,*::after{box-sizing:border-box;}
html,body{margin:0;height:100%;background:#05070b;}
body{font-family:var(--sans);color:var(--fg);overflow:hidden;-webkit-font-smoothing:antialiased;}
.acc{color:var(--accent);} .acc2{color:var(--accent-2);} em{font-style:italic;}

/* ===================== STAGE / SCALING ===================== */
.stage-wrap{position:fixed;inset:0;background:#05070b;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.stage{position:relative;width:1280px;height:720px;flex:0 0 auto;transform-origin:center center;
  background:var(--bg);overflow:hidden;box-shadow:0 40px 140px rgba(0,0,0,.7);}

/* engineering graph-paper grid (fixed, behind slides) */
.paper{position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(var(--rule-soft) 1px,transparent 1px),linear-gradient(90deg,var(--rule-soft) 1px,transparent 1px);
  background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse at center,#000 42%,transparent 95%);mask-image:radial-gradient(ellipse at center,#000 42%,transparent 95%);}

/* ===================== SLIDE DECK ===================== */
.deck{position:absolute;inset:0;z-index:2;}
.slide{position:absolute;inset:0;opacity:0;pointer-events:none;
  transition:opacity .55s ease, transform .55s cubic-bezier(.5,.05,.18,1);
  transform:translateX(46px);will-change:opacity,transform;}
.slide.is-active{opacity:1;transform:none;pointer-events:auto;}
.slide.is-out{opacity:0;transform:translateX(-40px);}
.deck[data-move="back"] .slide{transform:translateX(-46px);}
.deck[data-move="back"] .slide.is-out{transform:translateX(40px);}

/* console wipe-in on the active slide's content.
   Resting state is the VISIBLE end-state; the entrance animates FROM hidden,
   gated on motion preference — so content always shows for print/export/
   reduced-motion and never depends on an animation completing. */
@keyframes wipeClip{from{clip-path:inset(0 0 100% 0);}to{clip-path:inset(0 0 0 0);}}
@keyframes rIn{from{opacity:0;transform:translateY(15px);}to{opacity:1;transform:none;}}
@keyframes rFade{from{opacity:0;}to{opacity:1;}}
@keyframes drawIn{from{stroke-dashoffset:var(--len,600);}to{stroke-dashoffset:0;}}
.slide [data-r]{opacity:1;}
.draw{stroke-dasharray:var(--len,600);stroke-dashoffset:0;}
@media (prefers-reduced-motion: no-preference){
  .slide.is-active .s-pad{animation:wipeClip .5s cubic-bezier(.5,.05,.18,1);}
  .slide.is-active [data-r]{animation:rIn .66s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--i,0)*70ms + 200ms);}
  .slide.is-active [data-r="fade"]{animation-name:rFade;}
  .slide.is-active .draw{animation:drawIn 1.05s cubic-bezier(.4,.1,.2,1) backwards;animation-delay:calc(var(--i,0)*80ms + 300ms);}
}

/* ===================== SLIDE CONTENT FRAME ===================== */
.s-pad{position:absolute;inset:0;padding:78px 88px 70px;display:flex;flex-direction:column;}
.s-pad.center{align-items:center;justify-content:center;text-align:center;}
.s-pad.mid{justify-content:center;}

/* ---- shared text primitives ---- */
.eyebrow{font-family:var(--mono);font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-weight:600;display:flex;align-items:center;gap:12px;}
.center .eyebrow{justify-content:center;}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--accent);}
.center .eyebrow::after{content:"";width:30px;height:1px;background:var(--accent);}
.h-serif{font-family:var(--serif);font-weight:400;letter-spacing:-0.015em;line-height:1;margin:0;}
.h-serif em{color:var(--accent);}
.head{font-family:var(--serif);font-weight:400;font-size:56px;line-height:1.02;letter-spacing:-0.015em;margin:16px 0 0;}
.head em{color:var(--accent);}
.head.sm{font-size:42px;margin-top:8px;}
.big-name{font-family:var(--serif);font-weight:400;font-size:128px;line-height:.9;letter-spacing:-0.02em;margin:24px 0 0;}
.big-name em{color:var(--accent);}
.role-line{font-family:var(--mono);font-size:15px;letter-spacing:.06em;color:var(--fg);margin-top:26px;}
.hint{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-mute);margin-top:30px;}
.mono-label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-mute);font-weight:500;}
.mono-val{font-family:var(--mono);font-size:13px;color:var(--fg);letter-spacing:.02em;font-weight:500;}
.lead{font-size:19px;line-height:1.55;color:var(--fg-soft);max-width:60ch;margin:20px 0 0;}

/* dimension rule (the drawn underline used on titles) */
.dim-rule{display:block;margin-top:26px;}
.dim-rule line.r{stroke:var(--rule);} .dim-rule line.cap{stroke:var(--accent);}

/* ---- chips ---- */
.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px;}
.center .chip-row{justify-content:center;}
.chip{border:1px solid var(--rule);padding:8px 13px;display:flex;flex-direction:column;gap:3px;}
.chip-k{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-mute);}
.chip-v{font-family:var(--mono);font-size:13px;color:var(--accent);font-weight:500;}

/* ---- tags ---- */
.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px;}
.tag{font-family:var(--mono);font-size:11px;color:var(--fg-soft);padding:4px 9px;background:var(--bg-soft);border:1px solid var(--rule);}

/* ---- statement (who) ---- */
.two-col{display:grid;grid-template-columns:var(--ratio,300px 1fr);gap:52px;margin-top:30px;align-items:center;}
.port{aspect-ratio:3/4;}
.fact-list{display:grid;grid-template-columns:1fr 1fr;gap:16px 30px;}
.fact{display:flex;flex-direction:column;gap:4px;}
.fact-k{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-mute);}
.fact-v{font-family:var(--mono);font-size:13px;color:var(--fg);line-height:1.4;}

/* ---- points ---- */
.points{list-style:none;padding:0;margin:30px 0 0;display:flex;flex-direction:column;gap:16px;max-width:64ch;}
.points.tight{gap:11px;margin-top:18px;}
.points li{position:relative;padding-left:24px;font-size:19px;line-height:1.5;color:var(--fg-soft);}
.points.tight li{font-size:15px;}
.points li strong{color:var(--fg);font-weight:600;}
.points li::before{content:"";position:absolute;left:0;top:13px;width:13px;height:1px;background:var(--accent);}
.points.tight li::before{top:11px;}

/* ---- section divider ---- */
.divider-no{font-family:var(--serif);font-style:italic;font-size:200px;line-height:.8;color:var(--accent);}
.divider-name{font-family:var(--serif);font-size:64px;margin-top:6px;}
.divider-note{font-family:var(--mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-mute);margin-top:22px;}

/* ---- big metric ---- */
.metric-wrap{display:flex;flex-direction:column;align-items:flex-start;}
.metric-val{font-family:var(--serif);font-size:240px;line-height:.82;color:var(--accent);letter-spacing:-0.02em;}
.metric-val .u{font-size:96px;color:var(--fg);font-style:italic;}
.metric-cap{font-family:var(--mono);font-size:14px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-mute);margin-top:20px;}
.metric-sub{font-size:20px;line-height:1.5;color:var(--fg-soft);max-width:48ch;margin-top:18px;}

/* ---- project header ---- */
.proj-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.proj-id{font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:var(--accent);font-weight:600;}
.proj-status{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:5px 10px;border:1px solid var(--rule);color:var(--fg-soft);font-weight:600;}
.proj-status .d{width:6px;height:6px;border-radius:50%;background:var(--fg-mute);}
.proj-status.active{color:var(--accent);border-color:rgba(224,153,90,.4);} .proj-status.active .d{background:var(--accent);box-shadow:0 0 0 3px rgba(224,153,90,.18);}
.proj-status.complete .d{background:var(--accent-2);}
.proj-dates{font-family:var(--mono);font-size:11px;color:var(--fg-mute);letter-spacing:.05em;margin-left:auto;}
.proj-role{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-mute);margin-top:12px;}

/* ---- project body grid (text + visual) ---- */
.proj-grid{display:grid;grid-template-columns:1fr var(--vis,560px);gap:46px;margin-top:24px;align-items:center;flex:1;min-height:0;}
.proj-left{min-width:0;}
.proj-right{min-width:0;}
.proj-right .chart{width:100%;height:auto;}

/* ---- STAR ---- */
.star{display:flex;flex-direction:column;gap:13px;}
.star-row{display:grid;grid-template-columns:28px 1fr;gap:14px;align-items:start;}
.star-k{font-family:var(--serif);font-style:italic;font-size:27px;color:var(--accent);line-height:1;}
.star-lab{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-2);}
.star-txt{margin:3px 0 0;font-size:15px;line-height:1.45;color:var(--fg-soft);}

/* ---- capabilities montage ---- */
.cap-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:34px;}
.cap-col{background:var(--bg);padding:28px 26px;}
.cap-col-h{display:flex;flex-direction:column;gap:6px;margin-bottom:20px;}
.cap-id{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--accent);font-weight:600;}
.cap-name{font-family:var(--serif);font-style:italic;font-size:27px;}
.cap-chips{display:flex;flex-wrap:wrap;gap:7px;}
.cap-chip{font-family:var(--mono);font-size:12px;color:var(--fg);padding:5px 11px;border:1px solid var(--rule);border-radius:999px;}

/* ---- contact ---- */
.channels{display:flex;flex-direction:column;margin-top:34px;border-top:1px solid var(--rule);width:100%;max-width:780px;}
.channel{display:grid;grid-template-columns:120px 1fr auto;gap:24px;align-items:center;padding:18px 0;border-bottom:1px solid var(--rule);transition:padding-left .25s ease;text-decoration:none;color:inherit;}
.channel:hover{padding-left:10px;}
.ch-k{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-mute);}
.ch-v{font-family:var(--mono);font-size:16px;color:var(--fg);}
.ch-a{font-family:var(--mono);font-size:18px;color:var(--fg-mute);transition:transform .25s,color .25s;}
.channel:hover .ch-a{transform:translateX(5px);color:var(--accent);}
.avail{display:inline-flex;align-items:center;gap:10px;margin-top:28px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);}
.avail .d{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(224,153,90,.15);animation:pulse 2.4s ease-in-out infinite;}
@keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(224,153,90,.15);}50%{box-shadow:0 0 0 8px rgba(224,153,90,.02);}}

/* ---- image slot (placeholder the user drops a photo into) ---- */
.slot{position:relative;width:100%;height:100%;border:1px solid var(--rule);overflow:hidden;background:#0a0d13;display:flex;align-items:center;justify-content:center;}
.slot::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(237,231,217,0.035) 0 2px,transparent 2px 11px);}
.slot.has-img{background-size:cover;background-position:center;} .slot.has-img::before{display:none;}
.slot-tag{position:relative;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-mute);border:1px solid var(--rule);padding:6px 10px;background:rgba(8,11,17,.7);}
.slot-corner{position:absolute;width:9px;height:9px;border:1px solid var(--accent);opacity:.7;}
.slot-corner.tl{top:7px;left:7px;border-right:none;border-bottom:none;}
.slot-corner.tr{top:7px;right:7px;border-left:none;border-bottom:none;}
.slot-corner.bl{bottom:7px;left:7px;border-right:none;border-top:none;}
.slot-corner.br{bottom:7px;right:7px;border-left:none;border-top:none;}

/* ---- full-bleed image slide ---- */
.t-image .s-pad{padding:0;}
.t-image .bleed{position:absolute;inset:0;}
.t-image .bleed .slot{border:none;}
.t-image .bleed::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(5,7,11,.92) 0%,rgba(5,7,11,.25) 40%,transparent 70%);pointer-events:none;}
.t-image .cap{position:absolute;left:88px;right:88px;bottom:80px;z-index:3;}

/* ===================== HUD CHROME (flight deck) ===================== */
.hud{position:absolute;inset:0;z-index:8;pointer-events:none;font-family:var(--mono);}
.hud-top{position:absolute;top:0;left:0;right:0;height:44px;display:flex;align-items:center;justify-content:space-between;
  padding:0 26px;border-bottom:1px solid var(--rule);
  background:linear-gradient(to bottom,rgba(11,14,20,.92),rgba(11,14,20,0));
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-soft);}
.hud-cluster{display:flex;align-items:center;gap:9px;}
.hud-cluster .v{color:var(--fg);font-weight:600;}
.hud-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px rgba(224,153,90,.18);animation:pulse 2.4s ease-in-out infinite;}
.hud-sep{color:var(--fg-mute);}

/* dimension line across the top (blueprint) — labels the sheet */
.dim-top{position:absolute;top:60px;left:60px;right:60px;height:14px;z-index:8;pointer-events:none;display:flex;align-items:center;gap:14px;}
.dim-top .dcap{flex:0 0 auto;width:1px;height:10px;background:var(--accent);opacity:.7;}
.dim-top .dl{flex:1;height:1px;background:var(--rule);}
.dim-top .dt{flex:0 0 auto;font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-mute);white-space:nowrap;}

/* corner brackets (blueprint) */
.brk{position:absolute;width:22px;height:22px;border:1.5px solid var(--accent);opacity:.6;z-index:8;pointer-events:none;}
.brk.tl{top:88px;left:22px;border-right:none;border-bottom:none;}
.brk.tr{top:88px;right:22px;border-left:none;border-bottom:none;}
.brk.bl{bottom:84px;left:22px;border-right:none;border-top:none;}
.brk.br{bottom:84px;right:22px;border-left:none;border-top:none;}

/* bottom altitude strip (flight deck) */
.hud-bottom{position:absolute;left:0;right:0;bottom:0;height:42px;display:flex;align-items:center;gap:16px;padding:0 26px;z-index:8;pointer-events:none;
  border-top:1px solid var(--rule);background:linear-gradient(to top,rgba(11,14,20,.92),rgba(11,14,20,0));
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-mute);}
.hud-bottom .v{color:var(--fg);font-weight:600;}
.hud-bar{flex:1;height:4px;background:rgba(237,231,217,.08);position:relative;overflow:hidden;max-width:none;}
.hud-bar-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--accent);transition:width .8s cubic-bezier(.5,.05,.18,1);}
.hud-ticks{display:flex;gap:5px;}
.hud-tick{width:7px;height:7px;border:1px solid var(--rule);transform:rotate(45deg);transition:all .3s ease;}
.hud-tick.on{background:var(--accent);border-color:var(--accent);}

/* blueprint title block (bottom-right) */
.titleblock{position:absolute;right:0;bottom:42px;z-index:9;pointer-events:none;display:grid;grid-template-columns:auto auto auto auto;
  border-left:1px solid var(--rule);border-top:1px solid var(--rule);background:rgba(11,14,20,.78);font-family:var(--mono);}
.tb-cell{padding:7px 15px;border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:3px;}
.tb-cell:last-child{border-right:none;}
.tb-k{font-size:8px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-mute);}
.tb-v{font-size:12px;color:var(--fg);letter-spacing:.04em;}
.tb-v.acc{color:var(--accent);}

/* console scanline texture + transition sweep (subtle, motion-gated) */
.scanlines{position:absolute;inset:0;z-index:7;pointer-events:none;opacity:.35;
  background:repeating-linear-gradient(to bottom,rgba(0,0,0,0) 0 2px,rgba(0,0,0,.04) 2px 3px);}
.scan{position:absolute;left:0;right:0;top:0;height:2px;z-index:20;pointer-events:none;opacity:0;
  background:linear-gradient(90deg,transparent,rgba(224,153,90,.45),transparent);}
@media (prefers-reduced-motion: no-preference){
  .scan.run{animation:scanLine .5s ease;}
}
@keyframes scanLine{
  0%{opacity:0;transform:translateY(0);}
  18%{opacity:.85;}
  100%{opacity:0;transform:translateY(720px);}
}

/* ===================== NAV / FOOT / RAIL ===================== */
.nav-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:30;width:56px;height:96px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;}
.stage-wrap:hover .nav-arrow{opacity:.5;}
.nav-arrow:hover{opacity:1 !important;}
.nav-arrow.prev{left:6px;} .nav-arrow.next{right:6px;}
.nav-arrow svg{width:26px;height:26px;stroke:var(--fg);stroke-width:1.4;fill:none;}
.nav-arrow:hover svg{stroke:var(--accent);}
.nav-arrow:disabled{opacity:0 !important;pointer-events:none;}

.stage-foot{position:absolute;left:0;right:0;bottom:0;z-index:25;display:flex;align-items:center;gap:14px;padding:10px 26px 9px;pointer-events:none;opacity:0;transition:opacity .3s ease;}
.stage-wrap:hover .stage-foot{opacity:1;}
.c-counter{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--fg-soft);pointer-events:auto;}
.c-counter .acc{color:var(--accent);}
.c-bar{flex:1;height:2px;background:rgba(237,231,217,.1);position:relative;pointer-events:auto;cursor:pointer;}
.c-bar-fill{position:absolute;left:0;top:0;bottom:0;background:var(--accent);width:0;transition:width .6s cubic-bezier(.5,.05,.18,1);}
.c-btn{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-mute);background:transparent;border:1px solid var(--rule);padding:5px 10px;cursor:pointer;pointer-events:auto;transition:color .2s,border-color .2s;}
.c-btn:hover{color:var(--accent);border-color:var(--accent);}

/* waypoint rail (left edge) */
.rail{position:absolute;left:0;top:50%;transform:translateY(-50%);z-index:26;display:flex;flex-direction:column;gap:2px;padding:8px 10px;opacity:0;transition:opacity .3s ease;pointer-events:auto;}
.stage-wrap:hover .rail{opacity:1;}
.rail-tick{display:flex;align-items:center;gap:9px;background:transparent;border:none;cursor:pointer;padding:3px 4px;color:var(--fg-mute);}
.rt-dot{width:7px;height:7px;border:1px solid var(--fg-mute);transform:rotate(45deg);transition:all .25s ease;flex:0 0 auto;}
.rt-lab{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;opacity:0;transform:translateX(-4px);transition:all .25s ease;white-space:nowrap;}
.rail:hover .rt-lab{opacity:1;transform:none;}
.rail-tick:hover .rt-dot{border-color:var(--accent);}
.rail-tick.on .rt-dot{background:var(--accent);border-color:var(--accent);}
.rail-tick.on{color:var(--accent);} .rail-tick.on .rt-lab{opacity:1;transform:none;}

@media (prefers-reduced-motion:reduce){
  .slide{transition:none !important;}
  .slide.is-active .s-pad,.slide [data-r],.slide.is-active [data-r],.draw,.slide.is-active .draw{animation:none !important;opacity:1 !important;transform:none !important;clip-path:none !important;stroke-dashoffset:0 !important;}
}
