/* ============================================================
   ISENGARD v2 polish layer — loaded after styles.css
   Same brand grammar: zero radius, mono labels, forge gold
   used deliberately, navy for interactive accents.
   ============================================================ */

/* 1 — Eyebrows: forge-gold tick, higher contrast label */
.eyebrow{color:var(--ink-soft)}
.eyebrow::before{content:"// ";color:#b8860b;font-weight:700}
.statement .eyebrow,.demo .eyebrow{color:rgba(255,255,255,.72)}

/* 2 — CTA hierarchy: primary keeps full brackets, secondary is dimmed */
.hero .btn-dark,.demo .btn-ghost{opacity:.78}
.hero .btn-dark:hover,.demo .btn-ghost:hover{opacity:1}

/* 3 — Stats: datum rules removed per review */

/* 4 — Fleet: index counters, stronger hover, tighter rhythm */
.fleet{counter-reset:unit}
.fleet .u{counter-increment:unit}
.fleet .uid::before{content:counter(unit,decimal-leading-zero) " · ";color:#b8860b;letter-spacing:.08em}
.fleet .u:hover h3{color:var(--jetstream)}
.fleet .um::before,.fleet .um::after{border-color:#b8860b}

/* 5 — Section rhythm: soft tray behind the strike line */
.section--soft{background:#f7f8f9}
.section--soft .fleet .u{border-top-color:rgba(0,0,0,.16)}

/* 6 — Statement & demo bands: HUD corner brackets */
.statement .edge,.demo .edge{position:relative;padding-top:8px}
.statement .edge::before,.demo .edge::before{content:"";position:absolute;top:0;left:var(--edge);width:26px;height:26px;border-top:1.5px solid rgba(184,134,11,.75);border-left:1.5px solid rgba(184,134,11,.75)}

/* 7 — Facility status dots */
.loc .st{display:inline-block;width:8px;height:8px;margin-right:8px;vertical-align:1px}
.loc .st.live{background:#3f9d5f;box-shadow:0 0 8px rgba(63,157,95,.55)}
.loc .st.soon{background:#b8860b;box-shadow:0 0 8px rgba(184,134,11,.5)}

/* 8 — Leads: calmer measure, slightly looser leading */
.hero .lead{line-height:1.35}
.feature p,.s-head p{line-height:1.42}

/* Keep the "Scroll" cue clear of the hero CTA row on short viewports
   (hero bottom padding shrinks with 6vh; raise the floor so the buttons
   always sit above the cue). Hide the cue entirely on very short/landscape. */
.hero-in{padding-bottom:clamp(72px,7vh,96px)}
.hero .scrollcue{bottom:22px}
@media (max-height:560px){.hero .scrollcue{display:none}}

/* 9 — Team: equalize crops, name underline on hover */
.member h3{transition:color .25s var(--ease)}
.member:hover h3{color:var(--jetstream)}

/* 10 — Footer: gold selection carried through, clearer link hover */
.foot a:hover{color:#b8860b}
.foot .brand:hover{color:#fff}

/* ============================================================
   11 — Motion craft pass (CLAUDE.md)
   ============================================================ */

/* Reveals: faster, ease-out, smaller travel */
.reveal{transform:translateY(20px);transition:opacity .55s cubic-bezier(.25,1,.5,1) var(--d,0ms),transform .55s cubic-bezier(.25,1,.5,1) var(--d,0ms)}
.reveal.in{transform:none}

/* Interruptible hovers: transition out as well as in (named properties, never `all`) */
.btn,.ghost,.nl-btn{transition:background .2s cubic-bezier(.25,1,.5,1),color .2s cubic-bezier(.25,1,.5,1),transform .15s cubic-bezier(.25,1,.5,1)}
.btn:active,.ghost:active,.nl-btn:active{transform:translateY(1px)}
.links a,.foot a{transition:color .18s cubic-bezier(.25,1,.5,1)}
.fleet .u h3,.member h3,.backer{transition:color .22s cubic-bezier(.25,1,.5,1),opacity .22s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){
  .fleet .um img{transition:transform .35s cubic-bezier(.25,1,.5,1)}
  .fleet .u:hover .um img{transform:scale(1.03)}
}

/* Buttons: subtle wiggle on hover (gated to fine pointers, cut under reduced motion) */
@keyframes btn-wiggle{0%{transform:translateX(0)}25%{transform:translateX(-1.5px) rotate(-.4deg)}55%{transform:translateX(1.5px) rotate(.4deg)}80%{transform:translateX(-.75px)}100%{transform:translateX(0)}}
@media (hover:hover) and (pointer:fine){
  .btn:hover,.ghost:hover,.nl-btn:hover{animation:btn-wiggle .3s cubic-bezier(.25,1,.5,1) 1}
}

/* Focus: always visible */
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid #b8860b;outline-offset:3px}

/* Type polish */
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
.lead,.feature p,.s-head p{max-width:62ch}
.stat .v,.fs .v,.hud-readout{font-variant-numeric:tabular-nums}

/* 12 — Monument: white ground (was storm-grey gradient) */
.monument{background:#fff;color:var(--onyx)}
.monument .word{color:#000}
.monument .eyebrow{color:var(--muted)}
.monument .grain::after,.monument.grain::after{opacity:.03}

/* 13 — Nav legibility over bright hero footage */
.nav:not(.solid):not(.over-light) .brand,.nav:not(.solid):not(.over-light) .links a,.nav:not(.solid):not(.over-light) .ghost{text-shadow:0 1px 14px rgba(6,8,16,.55),0 0 2px rgba(6,8,16,.35)}
.nav:not(.solid):not(.over-light) .brand-star{filter:brightness(0) invert(1) drop-shadow(0 1px 6px rgba(6,8,16,.55))}

/* Request-a-briefing ghost: white text on hover (override solid/over-light nav color) */
.nav .ghost:hover,.nav.solid .ghost:hover,.nav.over-light:not(.solid) .ghost:hover{color:#fff!important;text-shadow:none!important}

/* 14 — Section color pass: render panels sit on white */
.feature .fig,.fig.fig-light{background:#fff}

/* 15 — Headings and product names: ink-black */
.s-head h2,.feature h2,.hrow h2,.sec h2,.fleet h3,.fac h3,.member h3{color:#000}

/* 16 — Redaction: solid black bar, click to declassify */
.deploy .redact{background:#000;cursor:pointer}
.deploy .redact:hover{outline:1px dashed rgba(0,0,0,.4);outline-offset:2px}
.deploy .redact.revealed{transition:none;color:#fff;letter-spacing:.08em}

/* 17 — Classified founders: fully blacked out */
.member.redacted .ph{background:#000}
.member.redacted .ph img{opacity:0}
.member.redacted .ph::after{color:rgba(255,255,255,.6)}

/* 18 — Footer Ukrainian line: Helvetica stack with full Cyrillic coverage */
.ua-line [lang="uk"]{font-family:"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;letter-spacing:.01em}

/* 19 — Hero video: fade in over poster once playing */
.hero-media video{opacity:0;transition:opacity .6s cubic-bezier(.25,1,.5,1)}
.hero-media video.playing,.hero-media video.ready{opacity:1}

/* 20 — Arsenal scrollspy index */
.sysnav{position:fixed;top:116px;left:0;right:0;z-index:90;display:flex;gap:2px;padding:0 var(--edge);background:rgba(255,255,255,.92);backdrop-filter:saturate(150%) blur(12px);border-bottom:1px solid var(--hair);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;overflow-x:auto}
body.news-closed .sysnav{top:76px}
.sysnav a{padding:14px 14px;color:var(--ink-soft);white-space:nowrap;box-shadow:inset 0 -2px 0 transparent;transition:color .18s cubic-bezier(.25,1,.5,1),box-shadow .18s cubic-bezier(.25,1,.5,1)}
.sysnav a:hover{color:#000}
.sysnav a.on{color:var(--jetstream);box-shadow:inset 0 -2px 0 #b8860b}

/* 21 — Spec sheet rows: hover highlight */
.sheet .row{transition:background .15s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){
  .sheet .row:hover{background:rgba(184,134,11,.07)}
}

/* Reduced motion: keep fades, drop travel */
@media (prefers-reduced-motion:reduce){
  .reveal{transform:none;transition:opacity .3s ease}
  .fleet .u:hover .um img{transform:none}
  .scrollcue{animation:none}
  .btn:hover,.ghost:hover,.nl-btn:hover{animation:none}
}


/* ============================================================
   12 — Detail round (20-improvement pass)
   ============================================================ */

/* Section index numbers on eyebrows */
.secno{color:var(--muted);font-weight:500;margin-right:10px;letter-spacing:.1em}

/* Monument caption */
.mon-cap{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.64rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-top:14px}

/* Video band REC overlay */
.vb-rec{position:absolute;top:20px;right:var(--edge);z-index:2;display:flex;align-items:center;gap:8px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.66rem;letter-spacing:.22em;color:rgba(255,255,255,.85)}
.rec-dot{width:8px;height:8px;border-radius:50%;background:#c5281b;animation:recblink 1.6s steps(2,start) infinite}
@keyframes recblink{50%{opacity:.25}}

/* Fleet status indicators */
.ustat{display:flex;align-items:center;gap:7px;margin-top:8px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6rem;letter-spacing:.2em;color:var(--muted);text-transform:uppercase}
.sd{width:7px;height:7px;flex:none}
.sd-live{background:#3f9d5f;box-shadow:0 0 7px rgba(63,157,95,.5)}
.sd-amber{background:#b8860b;box-shadow:0 0 7px rgba(184,134,11,.45)}

/* Units smaller/lighter than values */
.stat .v .unit,.fs .v .unit{font-size:.52em;font-weight:500;color:var(--muted);letter-spacing:.05em;margin-left:2px}

/* Nav: active-section tick */
.links a.cur{position:relative}
.links a.cur::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:#b8860b}

/* Focus rings: skip link + newsletter */
.skip:focus-visible{outline:2px solid #b8860b;outline-offset:3px}
.nl-input:focus-visible{outline:2px solid #b8860b;outline-offset:2px}

/* Facility cards: hover lift + live pulse + flag chip shadow */
.fac figure{transition:transform .25s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){.fac figure:hover{transform:translateY(-3px)}}
.st.live{animation:stpulse 2.6s ease-in-out infinite}
@keyframes stpulse{50%{box-shadow:0 0 14px rgba(63,157,95,.85)}}
.loc-flag{box-shadow:0 2px 10px rgba(0,0,0,.35)}

/* Secure-channel line in briefing band */
.ch-line{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-top:26px}
.ch-line .ok{color:#3f9d5f}

/* Footer UA line: rests at the same muted white as the English line;
   turns gold with a halo only during the 5s glow, then fades back */
.ua-line [lang="uk"]{color:rgba(255,255,255,.34)!important;text-shadow:none!important;transition:color .7s ease,text-shadow .7s ease}
.ua-line.glow [lang="uk"]{color:#ffd700!important;text-shadow:0 0 24px rgba(255,215,0,.85),0 0 6px rgba(255,215,0,.6)!important}

/* Smooth anchor scrolling (motion-safe) */
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}

/* Arsenal jump chips */
.chips{position:sticky;top:0;z-index:40;display:flex;gap:8px;flex-wrap:wrap;padding:12px var(--edge);background:rgba(255,255,255,.92);backdrop-filter:blur(12px) saturate(140%);border-bottom:1px solid var(--hair)}
.chip{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--onyx);text-decoration:none;padding:7px 12px;border:1px solid rgba(0,0,0,.18);transition:background .18s cubic-bezier(.25,1,.5,1),color .18s cubic-bezier(.25,1,.5,1)}
.chip:hover{background:var(--onyx);color:#fff}
.chip:active{transform:translateY(1px)}
@media (prefers-reduced-motion:reduce){.rec-dot,.st.live{animation:none}}


/* ============================================================
   13 — 50-details micro-pass
   ============================================================ */

/* Global feel */
html{-webkit-tap-highlight-color:transparent}
*{scrollbar-width:thin;scrollbar-color:rgba(12,12,15,.35) transparent}
::-webkit-scrollbar{width:8px}
::-webkit-scrollbar-thumb{background:rgba(12,12,15,.35)}
:target{scroll-margin-top:96px}
a{text-underline-offset:3px}

/* Newsbar */
.nb-dot{animation:nbpulse 2.2s ease-in-out infinite}
@keyframes nbpulse{50%{opacity:.35}}

/* Nav + dropdown */
.dropdown a{transition:color .16s cubic-bezier(.25,1,.5,1),padding-left .16s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){.dropdown a:hover{padding-left:6px}}
.lang-btn:focus-visible,.chip:focus-visible{outline:2px solid #b8860b;outline-offset:2px}
.lang-btn.cur{opacity:1}
.lang-btn.cur img{box-shadow:0 0 0 1.5px #b8860b}

/* Hero */
.hero h1{text-shadow:0 2px 24px rgba(0,0,0,.35)}
.scrollcue::after{content:"";display:block;width:1px;height:26px;background:currentColor;margin:8px auto 0;animation:cuedrop 1.8s cubic-bezier(.77,0,.175,1) infinite}
@keyframes cuedrop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.hud .dot{animation:nbpulse 2.4s ease-in-out infinite}

/* Monument */
.monument .plane img{filter:drop-shadow(0 34px 60px rgba(18,22,34,.3))}

/* Stats */
.stat .l,.fs .l{letter-spacing:.14em}
.trl9{color:#9c0f08!important}

/* Strike line */
.deploy .redact{cursor:pointer}
.deploy .redact:focus-visible{outline:2px solid #b8860b;outline-offset:3px}
.fleet .um img{transition:transform .35s cubic-bezier(.25,1,.5,1),filter .35s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){
  .fleet .u .um img{filter:saturate(.82)}
  .fleet .u:hover .um img{filter:saturate(1)}
}
.uid{font-variant-numeric:tabular-nums}
.fleet h3{background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;transition:background-size .3s cubic-bezier(.25,1,.5,1);display:inline-block;padding-bottom:2px}
@media (hover:hover) and (pointer:fine){.fleet .u:hover h3{background-size:100% 1.5px}}

/* Video band */
.vb-cap{background:rgba(0,0,0,.45);padding:6px 12px;backdrop-filter:blur(4px)}

/* Facilities */
.fac .im{overflow:hidden}
.fac .im>img:first-child{transition:transform .5s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){.fac figure:hover .im>img:first-child{transform:scale(1.025)}}
.loc{letter-spacing:.18em}

/* Backers */
.backer{transition:opacity .22s cubic-bezier(.25,1,.5,1),transform .22s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){.backer:hover{transform:translateY(-2px)}}

/* Team */
.member .r::before{content:"// ";color:#b8860b;font-weight:700}
.member.redacted:hover .ph::after{animation:clsflick .18s steps(2,start) 3}
@keyframes clsflick{50%{opacity:.4}}
.member .ph{position:relative}
.member .ph::before{content:"";position:absolute;inset:10px;z-index:2;pointer-events:none;opacity:0;transition:opacity .25s cubic-bezier(.25,1,.5,1);
  background:linear-gradient(#b8860b,#b8860b) top left/10px 1.5px no-repeat,linear-gradient(#b8860b,#b8860b) top left/1.5px 10px no-repeat,
             linear-gradient(#b8860b,#b8860b) bottom right/10px 1.5px no-repeat,linear-gradient(#b8860b,#b8860b) bottom right/1.5px 10px no-repeat}
@media (hover:hover) and (pointer:fine){.member:hover .ph::before{opacity:1}}

/* Product imagery: no accidental drag/select ghosts */
.um img,.plane img,.p-media img,.him img{-webkit-user-drag:none;user-select:none}

/* Footer */
.foot-grid nav a{transition:color .18s cubic-bezier(.25,1,.5,1),transform .18s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){.foot-grid nav a:hover{transform:translateX(3px)}}
.addr{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.72rem;letter-spacing:.06em}
.foot-base{position:relative}
.foot-base::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,rgba(184,134,11,.6),rgba(255,255,255,.08) 40%)}
.foot-grid a[target="_blank"]::after{content:" \2197";font-size:.85em;opacity:.6}
.nl-btn{transition:background .18s cubic-bezier(.25,1,.5,1),color .18s cubic-bezier(.25,1,.5,1),transform .15s cubic-bezier(.25,1,.5,1)}
.nl-btn:active{transform:translateY(1px)}

/* Chips: current section */
.chip.cur{background:var(--onyx);color:#fff;border-color:var(--onyx)}

/* Selection on dark bands */
.statement ::selection,.demo ::selection,.foot ::selection{background:#b8860b;color:#0c0c0f}

/* Print hygiene */
@media print{.btt,.chips,.vb-rec,.scrollcue,.ch-line{display:none!important}}

@media (prefers-reduced-motion:reduce){
  .nb-dot,.hud .dot,.scrollcue::after,.deploy::after,.st.live,.rec-dot{animation:none!important}
}


/* ============================================================
   14 — Easter eggs
   ============================================================ */

/* Gate of Moria overlay */
.gate-ov{position:fixed;inset:0;z-index:9990;background:rgba(4,6,10,.95);display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer;padding:24px}
.gate-in{max-width:560px}
.gate-in .g-t{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.72rem;letter-spacing:.4em;color:#b8860b;margin-bottom:26px}
.gate-in .g-q{color:#dfe3ea;font-size:1.35rem;line-height:1.5;font-style:italic}
.gate-in .g-s{margin-top:26px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.62rem;letter-spacing:.2em;color:rgba(255,255,255,.4)}

/* Palantír orb */
.palantir{position:fixed;right:22px;bottom:78px;width:24px;height:24px;border-radius:50%;z-index:60;cursor:pointer;opacity:.45;
  background:radial-gradient(circle at 35% 30%,#3a4056,#08090f 72%);box-shadow:inset 0 0 8px rgba(0,0,0,.85),0 0 14px rgba(16,20,38,.7);
  transition:opacity .2s cubic-bezier(.25,1,.5,1),transform .2s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){.palantir:hover{opacity:1;transform:scale(1.12)}}

/* The Eye */
.eye-ov{position:fixed;inset:0;z-index:9992;display:flex;align-items:center;justify-content:center;cursor:pointer;
  background:radial-gradient(ellipse at center,#c5281b 0%,#5c0502 34%,#000 78%);animation:eyein .3s cubic-bezier(.23,1,.32,1)}
.eye-ov span{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.8rem;letter-spacing:.5em;color:#f4e8d8;text-shadow:0 0 24px rgba(255,180,120,.8)}
@keyframes eyein{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}

/* Black Speech mode: whole page inverts (dark), images invert with it */
html.black-speech{filter:invert(1) hue-rotate(180deg)}
html.black-speech ::selection{background:#3ad7e4;color:#fff}
.bs-vign{position:fixed;inset:0;pointer-events:none;z-index:9980;box-shadow:inset 0 0 32vmin rgba(58,215,228,.3);animation:bsflick 3.4s ease-in-out infinite}
@keyframes bsflick{50%{box-shadow:inset 0 0 26vmin rgba(58,215,228,.18)}}

/* Ring cast flash */
html.ring-cast{filter:invert(1) hue-rotate(180deg);transition:filter .45s cubic-bezier(.23,1,.32,1)}

/* Brand star compass spin */
.brand-star.spin{animation:starspin 2.4s cubic-bezier(.77,0,.175,1)}
@keyframes starspin{to{transform:rotate(720deg)}}

/* Monument stress test */
.mon-tally{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.62rem;letter-spacing:.26em;color:#b8860b;margin-top:10px}
.monument .plane{cursor:crosshair}
.monument .plane img.wiggle{animation:wig .9s cubic-bezier(.25,1,.5,1)}
@keyframes wig{25%{transform:rotate(1.6deg)}50%{transform:rotate(-1.4deg)}75%{transform:rotate(.8deg)}}

/* Print stamp */
@media print{body::after{content:"DECLASSIFIED // FOR RELEASE";position:fixed;top:12mm;right:12mm;font:700 10pt ui-monospace,Menlo,Consolas,monospace;letter-spacing:.2em;color:#b8860b;border:2px solid #b8860b;padding:4px 10px;transform:rotate(6deg)}}

@media (prefers-reduced-motion:reduce){.bs-vign,.brand-star.spin,.monument .plane img.wiggle{animation:none!important}}


/* ============================================================
   15 — UI details round 3 + new eggs
   ============================================================ */

/* ⌘K hint chip in nav */
.kbd-hint{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.62rem;letter-spacing:.08em;color:inherit;opacity:.55;background:none;border:1px solid currentColor;padding:4px 8px;cursor:pointer;transition:opacity .18s cubic-bezier(.25,1,.5,1)}
.kbd-hint:hover,.kbd-hint:focus-visible{opacity:1}
.kbd-hint:active{transform:translateY(1px)}
@media (max-width:1000px){.kbd-hint{display:none}}

/* Footer classification strip */
.foot::after{content:"UNCLASSIFIED // CUI";display:block;text-align:center;padding:14px 0 4px;margin-top:26px;border-top:1px solid rgba(255,255,255,.08);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6rem;letter-spacing:.34em;color:rgba(255,255,255,.35)}

/* Newsletter invalid state */
.nl-input:user-invalid{border-bottom:2px solid #c5281b}

/* Clickable scroll cue */
.scrollcue{cursor:pointer}

/* Gandalf */
.gandalf-ov{position:fixed;inset:0;z-index:9993;background:rgba(8,9,12,.96);display:flex;flex-direction:column;gap:18px;align-items:center;justify-content:center;text-align:center;cursor:pointer;padding:24px}
.gandalf-ov .g1{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:clamp(1.4rem,4vw,2.6rem);letter-spacing:.18em;color:#b8860b;font-weight:700}
.gandalf-ov .g2{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.64rem;letter-spacing:.28em;color:rgba(255,255,255,.45)}

/* Eagles */
.eagle-fly{position:fixed;top:22vh;left:0;z-index:9970;pointer-events:none;width:min(220px,26vw);animation:eagle 4.2s cubic-bezier(.45,.05,.55,.95) forwards}
.eagle-fly img{width:100%;height:auto;transform:rotate(90deg);filter:drop-shadow(0 18px 26px rgba(0,0,0,.35))}
.eagle-cap{position:fixed;top:calc(22vh + 130px);left:0;right:0;text-align:center;z-index:9970;pointer-events:none;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.7rem;letter-spacing:.4em;color:#b8860b;animation:eaglecap 4.2s ease forwards}
@keyframes eagle{from{transform:translateX(-30vw)}to{transform:translateX(130vw)}}
@keyframes eaglecap{0%,15%{opacity:0}30%,70%{opacity:1}100%{opacity:0}}

/* Precious cursor */
html.precious,html.precious *{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><circle cx="12" cy="12" r="8" fill="none" stroke="%23b8860b" stroke-width="3"/></svg>') 12 12,auto!important}

@media (prefers-reduced-motion:reduce){.eagle-fly{animation-duration:.01s}.eagle-cap{animation-duration:2s}}


/* ============================================================
   16 — 100-details micro-pass
   ============================================================ */

/* --- Typography & text (1-12) --- */
body{font-kerning:normal;text-rendering:optimizeLegibility}
h1,h2{font-feature-settings:"ss01" 0;hyphens:manual}
.lead,.s-head p,.feature p{hanging-punctuation:first}
p{orphans:2;widows:2}
.eyebrow{font-variant-numeric:tabular-nums}
h2.word{letter-spacing:-.025em}
.role,.uid,.loc,.l{text-wrap:nowrap}
.hero .lead{text-shadow:0 1px 12px rgba(0,0,0,.3)}
.deploy{line-height:1.7}
.addr{line-height:1.8}
.bk-name{letter-spacing:.12em}
.nl-note{font-variant-numeric:tabular-nums}

/* --- Micro-interactions (13-30) --- */
.brand{transition:opacity .18s cubic-bezier(.25,1,.5,1)}
.brand:active{opacity:.75}
.brand-star{transition:transform .5s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){.brand:hover .brand-star{transform:rotate(45deg)}}
.burger span{transition:transform .2s cubic-bezier(.25,1,.5,1),opacity .2s cubic-bezier(.25,1,.5,1)}
.lang-btn{transition:transform .16s cubic-bezier(.25,1,.5,1),opacity .16s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){.lang-btn:hover{transform:translateY(-1px)}}
.lang-btn:active{transform:translateY(0)}
.nb-x{transition:transform .16s cubic-bezier(.25,1,.5,1),opacity .16s}
@media (hover:hover) and (pointer:fine){.nb-x:hover{transform:rotate(90deg)}}
.btt{transition:opacity .25s cubic-bezier(.25,1,.5,1),background .18s,color .18s,transform .15s}
.btt:active{transform:translateY(1px)}
.dropdown{transform-origin:top left}
.hud-readout .hud-row{transition:opacity .3s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){
  .hud:hover .hud-corner{border-color:#b8860b;transition:border-color .3s cubic-bezier(.25,1,.5,1)}
  .stat>div:hover .v,.fs>div:hover .v{color:#b8860b;transition:color .25s cubic-bezier(.25,1,.5,1)}
  .trl9:hover{color:#c5281b!important;transition:color .2s}
  .uid:hover{color:#b8860b;transition:color .2s}
  .member .ph img{transition:filter .3s cubic-bezier(.25,1,.5,1)}
  .member:hover .ph img{filter:contrast(1.04)}
  .um{transition:border-color .25s cubic-bezier(.25,1,.5,1)}
}
.pal-item{transition:background .12s linear}
.chip{position:relative;overflow:hidden}

/* --- Ambient details (31-44) --- */
.hero-media::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 100%,rgba(0,0,0,.35),transparent 60%);pointer-events:none}
.hud-readout b{color:rgba(255,255,255,.5)}
.monument-head .eyebrow{opacity:.85}
.vidband{border-top:1px solid rgba(0,0,0,.9);border-bottom:1px solid rgba(0,0,0,.9)}
.statement{position:relative}
.statement .edge::after{content:"FIELD REPORT 004-A";position:absolute;top:6px;right:var(--edge);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.58rem;letter-spacing:.3em;color:rgba(255,255,255,.28)}
.demo{position:relative}
.demo .edge::after{content:"DIRECTIVE 7 // OPEN";position:absolute;top:6px;right:var(--edge);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.58rem;letter-spacing:.3em;color:rgba(255,255,255,.28)}
.fig,.him{position:relative}
.fig::after{content:"FIG.";position:absolute;bottom:10px;left:12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.56rem;letter-spacing:.26em;color:rgba(12,12,15,.32);pointer-events:none}
.fig-light::after{color:rgba(12,12,15,.32)}
.foot{position:relative}
.foot .newsletter{border-bottom:1px solid rgba(255,255,255,.08)}
.bigmark .word{-webkit-text-stroke:0}
.scroll-prog{box-shadow:0 0 6px rgba(184,134,11,.55)}

/* --- Fleet & arsenal (45-56) --- */
.fleet .u{position:relative}
.fleet .u::after{content:"→";position:absolute;top:18px;right:0;font-size:.9rem;color:#b8860b;opacity:0;transform:translateX(-6px);transition:opacity .22s cubic-bezier(.25,1,.5,1),transform .22s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){.fleet .u:hover::after{opacity:1;transform:none}}
.p-hero{scroll-margin-top:120px}
.chips .chip{flex:none}
.spec-table{font-variant-numeric:tabular-nums}
.role{letter-spacing:.02em}
.ustat{user-select:none}
.um img{will-change:transform}
.fleet .u:focus-within{outline:2px solid #b8860b;outline-offset:4px}
.u a:focus-visible{outline:none}
.fleet{scroll-margin-top:110px}

/* --- Forms & inputs (57-64) --- */
.nl-input{caret-color:#b8860b;transition:border-color .2s cubic-bezier(.25,1,.5,1)}
.nl-input::placeholder{transition:opacity .2s;opacity:.55}
.nl-input:focus::placeholder{opacity:.3}
.nl-input:hover{border-color:rgba(255,255,255,.5)}
.nl-form{position:relative}
.nl-btn:focus-visible{outline:2px solid #b8860b;outline-offset:2px}
.nl-note{transition:opacity .3s cubic-bezier(.25,1,.5,1),transform .3s cubic-bezier(.25,1,.5,1)}
.nl-note.on{color:#3f9d5f}

/* --- A11y & platform (65-76) --- */
@media (forced-colors:active){.btn,.ghost,.chip{border:1px solid ButtonText}}
.skip{z-index:9999}
[aria-hidden="true"]{user-select:none}
.redact,.rd{-webkit-user-select:none}
::marker{color:#b8860b}
@supports (overscroll-behavior:none){html{overscroll-behavior-y:none}}
img{background:transparent}
.foot a,.links a{outline-offset:3px}
button{touch-action:manipulation}
.newsbar{contain:layout}
.nav{contain:layout}
@media (max-width:768px){.hud-readout{font-size:.56rem}.vb-rec{display:none}}

/* --- Print (77-80) --- */
@media print{
  .newsbar,.nav .lang-pick,.kbd-hint,.palantir,.burger{display:none!important}
  .hero{min-height:auto}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:.7em;color:#666}
  .foot::after{color:#999}
}

/* --- Egg support / mode polish (81-84) --- */
html.night-vision .scroll-prog{background:#3fd15f}
html.black-speech img{outline:1px solid rgba(58,215,228,.12)}
html.precious .btn:hover{color:#b8860b!important}
.mode-1995 .kbd-hint{display:none}

@media (prefers-reduced-motion:reduce){
  .fleet .u::after{transition:none}
  .brand-star{transition:none}
}


/* ============================================================
   17 — XQ 770 wingtip anti-collision strobes
   ============================================================ */
.monument .plane{position:absolute}
.monument .plane .strobe{position:absolute;top:46%;width:1.4%;aspect-ratio:1;border-radius:50%;
  background:#ff3222;pointer-events:none;z-index:4;opacity:0;
  box-shadow:0 0 10px 3px rgba(255,50,34,.95),0 0 26px 10px rgba(255,50,34,.55),0 0 50px 18px rgba(255,50,34,.28);
  animation:strobe770 1.6s steps(1,end) infinite}
/* Wingtip position (homepage top-view only) */
#systems .plane .strobe-l{left:20%;right:auto}
#systems .plane .strobe-r{right:20%;left:auto}
/* Side-view detail hero: no strobes */
.monument:not(#systems) .plane .strobe{display:none}
@keyframes strobe770{
  0%{opacity:0}
  3%{opacity:1}
  7%{opacity:0}
  13%{opacity:1}
  18%{opacity:0}
  100%{opacity:0}
}
@media (prefers-reduced-motion:reduce){
  .monument .plane .strobe{animation:none;opacity:.85}
}


/* ============================================================
   18 — System detail page sections
   ============================================================ */
.trl-amber{color:#b8860b;font-weight:600}

/* Capabilities grid */
.capgrid{margin-top:clamp(40px,6vh,72px);display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--hair,rgba(0,0,0,.12))}
.capcard{background:#fff;padding:clamp(24px,3vw,40px);position:relative}
.capcard .capno{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.62rem;letter-spacing:.2em;color:#b8860b}
.capcard h3{margin-top:12px;font-size:clamp(1.15rem,1.8vw,1.5rem);font-weight:600;letter-spacing:-.01em;color:#0c0c0f}
.capcard p{margin-top:10px;color:var(--ink-soft);line-height:1.5;max-width:44ch}
@media (max-width:760px){.capgrid{grid-template-columns:1fr}}

/* Mission profile */
.mprofile{margin-top:clamp(40px,6vh,70px);list-style:none;padding:0;display:grid;gap:1px;background:var(--hair,rgba(0,0,0,.12));counter-reset:mp}
.mprofile li{background:#fff;display:flex;align-items:baseline;gap:20px;padding:20px clamp(16px,2vw,28px)}
.mprofile .mp-n{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.72rem;letter-spacing:.16em;color:#b8860b;flex:none;min-width:2.4em}
.mprofile .mp-t{font-size:clamp(1rem,1.5vw,1.25rem);color:#0c0c0f;font-weight:500}

/* Configurations */
.confgrid{margin-top:clamp(40px,6vh,60px);display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.confcard{border:1px solid var(--hair,rgba(0,0,0,.14));padding:clamp(22px,2.6vw,34px)}
.confcard h3{font-size:1.25rem;font-weight:600;color:#0c0c0f}
.confcard p{margin-top:10px;color:var(--ink-soft);line-height:1.5}

/* Prev / next unit nav */
.unitnav{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;border-top:1px solid var(--hair,rgba(0,0,0,.14));border-bottom:1px solid var(--hair,rgba(0,0,0,.14));padding:26px 0}
.unitnav a{display:flex;flex-direction:column;gap:6px;text-decoration:none;transition:transform .18s cubic-bezier(.25,1,.5,1),color .18s cubic-bezier(.25,1,.5,1)}
.unitnav .un-next{text-align:right}
.unitnav .un-all{flex-direction:row;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.un-dir{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.un-name{font-size:1.15rem;font-weight:600;color:#0c0c0f}
@media (hover:hover) and (pointer:fine){
  .unitnav .un-prev:hover{transform:translateX(-3px)}
  .unitnav .un-next:hover{transform:translateX(3px)}
  .unitnav a:hover .un-name{color:#b8860b}
  .unitnav .un-all:hover{color:#0c0c0f}
}
@media (max-width:640px){.unitnav{flex-direction:column;align-items:stretch;text-align:left}.unitnav .un-next{text-align:left}}


/* Arsenal: "view full specification" link */
.p-more{margin-top:20px}
.p-more a{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:#b8860b;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .18s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){.p-more a:hover{border-bottom-color:#b8860b}}

/* Homepage fleet card -> detail link */
a.u{text-decoration:none;color:inherit;display:block}


/* ============================================================
   19 — Detail page: capability images + systems-detail gallery
   ============================================================ */
.capcard{display:flex;flex-direction:column}
.cap-ph{display:block;margin:-8px 0 18px;aspect-ratio:16/10;overflow:hidden;background:#f2f3f5;border:1px solid var(--hair,rgba(0,0,0,.1))}
.cap-ph img{width:100%;height:100%;object-fit:contain;padding:8px;transition:transform .4s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){.capcard:hover .cap-ph img{transform:scale(1.04)}}
.capcard .capno{order:-1}

/* Systems-detail gallery (warheads, effectors, hardware) */
.galgrid{margin-top:clamp(40px,6vh,64px);display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.galfig{margin:0}
.galfig .gi{aspect-ratio:4/3;overflow:hidden;background:#f2f3f5;border:1px solid var(--hair,rgba(0,0,0,.12));display:flex;align-items:center;justify-content:center}
.galfig .gi img{width:100%;height:100%;object-fit:contain;padding:14px;transition:transform .45s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){.galfig:hover .gi img{transform:scale(1.05)}}
.galfig figcaption{margin-top:12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}

/* Count-up: hold tabular figures + reserve width to avoid layout shift */
.sheet .row .m{font-variant-numeric:tabular-nums}


/* Backswing Ventures — text wordmark backer (no logo asset provided) */
.bk-logo.bk-word{display:flex;align-items:center;justify-content:center}
.bk-logo.bk-word span{font-family:var(--font-display,Georgia,serif);font-weight:600;font-size:clamp(1.1rem,1.6vw,1.5rem);line-height:1.05;letter-spacing:-.01em;text-align:center;color:var(--onyx,#0c0c0f)}


/* GRID coordinate -> Google Maps link */
.grid-link{color:inherit;text-decoration:none;border-bottom:1px dotted rgba(255,255,255,.32);transition:color .18s cubic-bezier(.25,1,.5,1),border-color .18s cubic-bezier(.25,1,.5,1)}
.grid-link:hover{color:#b8860b;border-bottom-color:#b8860b}
.office .grid-link,.contact-photo ~ * .grid-link{border-bottom-color:rgba(0,0,0,.3)}
.office .grid-link:hover{color:#b8860b;border-bottom-color:#b8860b}


/* ============================================================
   20 — System-page instrument details
   ============================================================ */

/* 1 — Capability cards: HUD corner brackets draw in on hover */
.capcard{position:relative}
.capcard::before,.capcard::after{content:"";position:absolute;width:12px;height:12px;opacity:0;transition:opacity .2s cubic-bezier(.25,1,.5,1),transform .2s cubic-bezier(.25,1,.5,1);pointer-events:none}
.capcard::before{top:8px;left:8px;border-top:1.5px solid #b8860b;border-left:1.5px solid #b8860b;transform:translate(4px,4px)}
.capcard::after{bottom:8px;right:8px;border-bottom:1.5px solid #b8860b;border-right:1.5px solid #b8860b;transform:translate(-4px,-4px)}
@media (hover:hover) and (pointer:fine){.capcard:hover::before,.capcard:hover::after{opacity:1;transform:none}}

/* 2 — Gallery: FIG index numbers + crosshair cursor + corner ticks */
.galgrid{counter-reset:fig}
.galfig{counter-increment:fig}
.galfig figcaption::before{content:"FIG." counter(fig,decimal-leading-zero) " // ";color:#b8860b}
.galfig .gi{position:relative;cursor:crosshair}
.galfig .gi::before,.galfig .gi::after{content:"";position:absolute;width:10px;height:10px;opacity:0;transition:opacity .2s cubic-bezier(.25,1,.5,1);pointer-events:none}
.galfig .gi::before{top:8px;left:8px;border-top:1.5px solid rgba(184,134,11,.8);border-left:1.5px solid rgba(184,134,11,.8)}
.galfig .gi::after{bottom:8px;right:8px;border-bottom:1.5px solid rgba(184,134,11,.8);border-right:1.5px solid rgba(184,134,11,.8)}
@media (hover:hover) and (pointer:fine){.galfig:hover .gi::before,.galfig:hover .gi::after{opacity:1}}

/* 3 — Datasheet rows: hover highlight + gold datum tick */
.sheet .row{position:relative;transition:background .16s cubic-bezier(.25,1,.5,1)}
.sheet .row::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);height:60%;width:2px;background:#b8860b;transition:transform .18s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){.sheet .row:hover{background:rgba(184,134,11,.05)}.sheet .row:hover::before{transform:translateY(-50%) scaleY(1)}}

/* 4 — Datasheet footer note */
.sheet-note{margin-top:18px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
.sheet-note::before{content:"// ";color:#b8860b}

/* 5 — Chips: active marker */
.chips .chip.cur{position:relative}
.chips .chip.cur::before{content:"\25B8 ";color:#b8860b}

/* 6 — Status dot live pulse (overview) */
.p-role .sd-live{animation:sdpulse 2.6s ease-in-out infinite}
@keyframes sdpulse{50%{box-shadow:0 0 10px 2px rgba(63,157,95,.75)}}

/* 7 — Hero: SYS // ONLINE boot line with blinking caret */
.sysonline{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:#3f9d5f;margin-top:10px;padding-inline:var(--edge)}
.sysonline::after{content:"\2588";margin-left:4px;animation:soblink 1.1s steps(2,start) infinite;color:#3f9d5f}
@keyframes soblink{50%{opacity:0}}

/* 8 — Monument: faint HUD graticule behind the aircraft */
.monument .monument-sticky::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.05;
  background-image:linear-gradient(rgba(255,255,255,.9) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.9) 1px,transparent 1px);
  background-size:64px 64px}

/* 9 — Detail video band REC overlay reuses .vb-rec/.rec-dot (already defined) */

@media (prefers-reduced-motion:reduce){
  .p-role .sd-live{animation:none}
  .sysonline::after{animation:none}
}


/* ============================================================
   21 — Operational status indicator (green flashing square)
   ============================================================ */
.op-status{display:inline-flex;align-items:center;gap:8px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.op-sq{width:8px;height:8px;flex:none;background:#c5281b;box-shadow:0 0 8px rgba(197,40,27,.75);animation:opblink 1.4s steps(2,start) infinite}
@keyframes opblink{50%{opacity:.2}}
.foot-base{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
/* HUD variant sits on the dark hero */
.hud-readout .op-sq{margin-right:2px}
@media (prefers-reduced-motion:reduce){.op-sq{animation:none}}


/* ============================================================
   22 — Second instrument-detail batch
   ============================================================ */

/* 1 — Datasheet: gold scan line sweeps down once when it enters view */
.sheet{position:relative;overflow:hidden}
.sheet.in::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;pointer-events:none;
  background:linear-gradient(90deg,transparent,#b8860b,transparent);animation:sheetscan 1s cubic-bezier(.25,1,.5,1) .15s 1}
@keyframes sheetscan{0%{top:0;opacity:.9}100%{top:100%;opacity:0}}

/* 2 — Capability cards: 2px lift + index glows gold on hover */
.capcard{transition:transform .2s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){.capcard:hover{transform:translateY(-2px)}.capcard:hover .capno{color:#b8860b;text-shadow:0 0 8px rgba(184,134,11,.5)}}

/* 3 — Gallery figures: 2px lift on hover */
.galfig{transition:transform .2s cubic-bezier(.25,1,.5,1)}
@media (hover:hover) and (pointer:fine){.galfig:hover{transform:translateY(-2px)}}

/* 4 — Monument: faint radar range-rings behind the aircraft */
.monument .monument-sticky::before{content:"";position:absolute;left:50%;top:46%;width:130vh;height:130vh;transform:translate(-50%,-50%);z-index:0;pointer-events:none;opacity:.05;
  background:repeating-radial-gradient(circle at center,rgba(255,255,255,.9) 0 1px,transparent 1px 90px)}

/* 5 — mon-cap leading gold tick */
.mon-cap::before{content:"// ";color:#b8860b}

/* 6 — Prev / next unit nav: gold rule draws in on hover */
.unitnav .un-prev,.unitnav .un-next{position:relative}
.unitnav .un-prev::before,.unitnav .un-next::before{content:"";position:absolute;top:-2px;left:0;right:0;height:2px;background:#b8860b;transform:scaleX(0);transition:transform .22s cubic-bezier(.25,1,.5,1)}
.unitnav .un-prev::before{transform-origin:left}
.unitnav .un-next::before{transform-origin:right}
@media (hover:hover) and (pointer:fine){.unitnav .un-prev:hover::before,.unitnav .un-next:hover::before{transform:scaleX(1)}}

/* 7 — Chips: active chip gold ring */
.chips .chip.cur{box-shadow:0 0 0 1px rgba(184,134,11,.55)}

/* 8 — TRL badge: help cursor + dotted underline (native tooltip) */
.p-role .trl9,.p-role .trl-amber{cursor:help;border-bottom:1px dotted currentColor;padding-bottom:1px}

/* 9 — Overview role line: gold tick before it */
.p-role::before{content:"// ";color:#b8860b}

/* 10 — Footer op-status gets a build/rev sibling */
.foot-rev{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.32)}

@media (prefers-reduced-motion:reduce){
  .sheet.in::after{animation:none;display:none}
}


/* ============================================================
   23 — Interactive: unit toggle + gallery lightbox
   ============================================================ */

/* SI / US segmented toggle */
.unit-toggle{display:inline-flex;border:1px solid var(--hair,rgba(0,0,0,.16));margin-top:18px}
.unit-toggle button{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;padding:7px 14px;background:transparent;border:none;cursor:pointer;color:var(--muted);transition:background .16s cubic-bezier(.25,1,.5,1),color .16s cubic-bezier(.25,1,.5,1)}
.unit-toggle button+button{border-left:1px solid var(--hair,rgba(0,0,0,.16))}
.unit-toggle button.on{background:var(--onyx);color:#fff}
.unit-toggle button:active{transform:translateY(1px)}
.unit-toggle button:focus-visible{outline:2px solid #b8860b;outline-offset:2px}

/* Emphasis swap driven by data-sys */
.sheet[data-sys="us"] .row .m{color:var(--muted);font-weight:400}
.sheet[data-sys="us"] .row .i{color:var(--ink,#0c0c0f);font-weight:600}
.sheet .row .m,.sheet .row .i{transition:color .18s cubic-bezier(.25,1,.5,1)}

/* Gallery lightbox */
.lb{position:fixed;inset:0;z-index:9995;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
  background:rgba(8,9,12,.94);opacity:0;pointer-events:none;transition:opacity .2s cubic-bezier(.25,1,.5,1);padding:5vh 6vw}
.lb.open{opacity:1;pointer-events:auto}
.lb img{max-width:min(1100px,90vw);max-height:74vh;object-fit:contain;background:#f2f3f5;padding:16px}
.lb-cap{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.lb-cap b{color:#b8860b;font-weight:400}
.lb-x{position:absolute;top:22px;right:26px;background:none;border:none;color:rgba(255,255,255,.75);font-size:1.6rem;cursor:pointer;line-height:1;transition:color .16s,transform .16s}
.lb-x:hover{color:#fff;transform:rotate(90deg)}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:none;border:1px solid rgba(255,255,255,.35);color:#fff;width:44px;height:44px;cursor:pointer;font-size:1.2rem;transition:background .16s,border-color .16s}
.lb-nav:hover{background:rgba(255,255,255,.12);border-color:#b8860b}
.lb-prev{left:3vw}.lb-next{right:3vw}
.lb-count{position:absolute;bottom:26px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.62rem;letter-spacing:.2em;color:rgba(255,255,255,.5)}
.galfig .gi{cursor:zoom-in}
@media (prefers-reduced-motion:reduce){.lb{transition:none}.lb-x:hover{transform:none}}


/* ============================================================
   24 — "Do all": comparison bars, video controls, filter,
        form, sticky bar, compare overlay, flight-path line
   ============================================================ */

/* Range/speed comparison bars */
.cmp{margin-top:clamp(40px,6vh,64px);display:grid;gap:22px;max-width:640px}
.cmp-row{display:grid;grid-template-columns:120px 1fr auto;align-items:center;gap:16px}
.cmp-k{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.cmp-track{position:relative;height:8px;background:rgba(0,0,0,.08)}
.cmp-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:#b8860b;transition:width .9s cubic-bezier(.23,1,.32,1)}
.cmp-v{font-variant-numeric:tabular-nums;font-weight:600;font-size:.95rem;white-space:nowrap}
.cmp-v .unit{font-size:.7em;color:var(--muted);font-weight:500;margin-left:2px}
.cmp-note{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.cmp-note::before{content:"// ";color:#b8860b}

/* Mission-profile flight-path line */
.mprofile{position:relative}
.mprofile::before{content:"";position:absolute;left:calc(clamp(16px,2vw,28px) + 1.2em);top:0;width:2px;height:0;background:linear-gradient(#b8860b,rgba(184,134,11,.2));transition:height 1.1s cubic-bezier(.23,1,.32,1)}
.mprofile.in::before{height:100%}
@media (max-width:760px){.mprofile::before{display:none}}

/* Video band: tap-to-pause + scrubber */
.vidband{cursor:pointer}
.vid-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.9);width:64px;height:64px;border-radius:50%;background:rgba(12,12,15,.55);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s cubic-bezier(.25,1,.5,1),transform .2s cubic-bezier(.25,1,.5,1);pointer-events:none;z-index:3}
.vidband.paused .vid-play{opacity:1;transform:translate(-50%,-50%) scale(1)}
.vid-play::before{content:"";border-style:solid;border-width:12px 0 12px 20px;border-color:transparent transparent transparent #fff;margin-left:5px}
.vid-scrub{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(255,255,255,.18);z-index:3;cursor:pointer}
.vid-scrub-fill{height:100%;width:0;background:#b8860b}

/* Arsenal role filter */
.filterbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:clamp(28px,4vh,44px)}
.filterbar button{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;padding:8px 14px;background:transparent;border:1px solid rgba(0,0,0,.18);color:var(--onyx);cursor:pointer;transition:background .16s cubic-bezier(.25,1,.5,1),color .16s cubic-bezier(.25,1,.5,1)}
.filterbar button.on{background:var(--onyx);color:#fff;border-color:var(--onyx)}
.filterbar button:active{transform:translateY(1px)}
.filterbar button:focus-visible{outline:2px solid #b8860b;outline-offset:2px}
.p-card.hide{display:none}
.p-card{transition:opacity .3s cubic-bezier(.25,1,.5,1)}

/* Briefing request form */
.bform{margin-top:clamp(40px,6vh,64px);display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:720px}
.bform .full{grid-column:1/-1}
.bform label{display:block;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.bform input,.bform select,.bform textarea{width:100%;padding:12px 14px;border:1px solid var(--hair,rgba(0,0,0,.18));background:#fff;font:inherit;font-size:.95rem;color:var(--onyx);border-radius:0}
.bform input:focus,.bform select:focus,.bform textarea:focus{outline:2px solid #b8860b;outline-offset:1px;border-color:#b8860b}
.bform textarea{min-height:110px;resize:vertical}
.bform .submit{grid-column:1/-1}
.bform-note{margin-top:16px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.66rem;letter-spacing:.16em;color:#3f9d5f;opacity:0;transition:opacity .3s}
.bform-note.on{opacity:1}
@media (max-width:640px){.bform{grid-template-columns:1fr}}

/* Sticky Request-a-briefing bar */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:80;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px clamp(16px,4vw,48px);background:rgba(12,12,15,.92);backdrop-filter:blur(10px);border-top:1px solid rgba(184,134,11,.4);
  transform:translateY(110%);transition:transform .3s cubic-bezier(.23,1,.32,1)}
.sticky-cta.show{transform:none}
.sticky-cta p{color:#fff;font-size:.95rem;margin:0}
.sticky-cta .sc-sub{color:rgba(255,255,255,.55);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase}
.sticky-cta a{flex:none;background:rgba(255,255,255,.97);color:#0c0c0f;padding:12px 22px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:background .16s,color .16s}
.sticky-cta a:hover{background:radial-gradient(125% 150% at 50% 0%,#c5281b,#5c0502);color:#fff}
.sticky-cta .sc-x{background:none;border:none;color:rgba(255,255,255,.5);cursor:pointer;font-size:1.2rem;flex:none;padding:0 4px}
@media (max-width:640px){.sticky-cta .sc-sub{display:none}}
/* keep the footer flags clear of the sticky briefing bar */
.foot{padding-bottom:calc(clamp(24px,4vh,48px) + 76px)}

/* ── v2 mobile pass ── */
@media (max-width:640px){
  .backers{grid-template-columns:1fr 1fr;gap:14px}
  .team{grid-template-columns:1fr 1fr}
  .fleet{grid-template-columns:1fr 1fr}
  .acts .btn{min-height:44px}
  .chips{gap:6px}
  .chip{padding:10px 12px}
  .hud{display:none}
}
@media (max-width:420px){
  .fleet{grid-template-columns:1fr}
  .team{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.cmp-fill,.mprofile::before,.sticky-cta{transition:none}}


/* Compare-two-systems overlay */
#cmp-ov .cmp-panel{width:min(760px,92vw);max-height:82vh;overflow:auto;background:#fff;padding:clamp(20px,3vw,36px)}
#cmp-ov .cmp-picks{display:flex;align-items:center;gap:14px;margin-bottom:22px;flex-wrap:wrap}
#cmp-ov select{flex:1;min-width:160px;padding:10px 12px;border:1px solid var(--hair,rgba(0,0,0,.2));font:inherit;font-size:.9rem;background:#fff;border-radius:0}
#cmp-ov select:focus{outline:2px solid #b8860b;outline-offset:1px}
#cmp-ov .cmp-vs{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.62rem;letter-spacing:.2em;color:var(--muted);text-transform:uppercase}
#cmp-ov .cmp-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
#cmp-ov .cmp-table th,#cmp-ov .cmp-table td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--hair,rgba(0,0,0,.1));font-size:.9rem}
#cmp-ov .cmp-table th{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--onyx)}
#cmp-ov .cmp-table td:first-child{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

.product.hide{display:none}
.product{transition:opacity .3s cubic-bezier(.25,1,.5,1)}

/* Back-to-top: truly center the arrow glyph */
.btt{display:flex;align-items:center;justify-content:center;line-height:1;padding:0}
/* When the briefing bar is up, center the back-to-top button within it */
body.cta-up .btt{bottom:19px}


/* Backers: logos sit muted, fade to full color on hover */
.backers .bk-logo img{filter:grayscale(1)!important;opacity:.5;transition:filter .35s cubic-bezier(.25,1,.5,1),opacity .35s cubic-bezier(.25,1,.5,1)}
.backers .backer:hover{opacity:1}
.backers .backer:hover .bk-logo img{filter:none!important;opacity:1}
.backers .bk-word span{color:var(--muted);transition:color .35s cubic-bezier(.25,1,.5,1)}
.backers .backer:hover .bk-word span{color:var(--onyx)}


/* Black Speech (dark language): invert image colors, keep flags/mark normal */
body.black-speech img{filter:invert(1) hue-rotate(180deg)!important;transition:filter .4s ease}
body.black-speech .lang-btn img,body.black-speech .brand-star,body.black-speech .lang-bs svg{filter:none!important}
.lang-bs svg{display:block;border-radius:2px}

/* Black Speech: also invert video footage */
body.black-speech video{filter:invert(1) hue-rotate(180deg)!important;transition:filter .4s ease}


/* ============================================================
   25 — Easter-egg batch 3
   ============================================================ */

/* Shared mono toast */
.egg-toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,12px);z-index:9995;background:#0c0c0f;color:#fff;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;padding:12px 20px;opacity:0;transition:opacity .2s cubic-bezier(.23,1,.32,1),transform .2s cubic-bezier(.23,1,.32,1);pointer-events:none;white-space:nowrap}
.egg-toast.on{opacity:1;transform:translate(-50%,0)}
.egg-toast b{color:#b8860b;font-weight:700}

/* balrog: shake + rising ember glow */
@keyframes balrog-shake{0%,100%{transform:none}20%{transform:translate(2px,-1px)}40%{transform:translate(-2px,1px)}60%{transform:translate(1px,2px)}80%{transform:translate(-1px,-2px)}}
body.balrog{animation:balrog-shake .4s linear 4}
.balrog-glow{position:fixed;left:0;right:0;bottom:0;height:40vh;z-index:9970;pointer-events:none;background:linear-gradient(to top,rgba(197,40,27,.5),transparent);animation:balrogin 3.2s cubic-bezier(.23,1,.32,1) forwards}
@keyframes balrogin{0%{opacity:0}25%{opacity:1}75%{opacity:1}100%{opacity:0}}

/* shire: warm R&R mode */
html.shire body{filter:sepia(.22) saturate(1.05) brightness(1.02);transition:filter .8s ease}

/* nazgul flight */
.nazgul-w{position:fixed;top:18vh;left:0;z-index:9970;pointer-events:none;display:flex;gap:10px;animation:nazgulfly 5s cubic-bezier(.45,.05,.55,.95) forwards}
.nazgul-w img{width:56px;height:auto;transform:rotate(90deg);filter:brightness(0);opacity:.85}
.nazgul-w img:nth-child(even){margin-top:22px}
@keyframes nazgulfly{from{transform:translateX(-40vw)}to{transform:translateX(120vw)}}

/* smeagol follower */
.smeagol-ring{position:fixed;width:22px;height:22px;border:2.5px solid #b8860b;border-radius:50%;z-index:9994;pointer-events:none;transform:translate(-50%,-50%)}

/* wind-tunnel overlay (hold g) */
.windtunnel .plane::after{content:"";position:absolute;inset:-4%;z-index:5;pointer-events:none;
  background-image:linear-gradient(rgba(184,134,11,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(184,134,11,.35) 1px,transparent 1px);background-size:36px 36px;mix-blend-mode:multiply}

/* brrrt strafe */
.brrrt-dot{position:fixed;top:50%;width:10px;height:10px;border-radius:50%;background:#c5281b;box-shadow:0 0 12px rgba(197,40,27,.9);z-index:9994;pointer-events:none;animation:brrrt .7s linear forwards}
@keyframes brrrt{from{left:-4vw;opacity:1}to{left:104vw;opacity:1}}

/* blueprint grid (design-review mode) */
html.bpgrid body::before{content:"";position:fixed;inset:0;z-index:9960;pointer-events:none;
  background-image:linear-gradient(rgba(0,20,137,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(0,20,137,.14) 1px,transparent 1px),linear-gradient(rgba(0,20,137,.28) 1px,transparent 1px),linear-gradient(90deg,rgba(0,20,137,.28) 1px,transparent 1px);
  background-size:8px 8px,8px 8px,64px 64px,64px 64px}

/* station keeping (idle) */
.stationkeep{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:9990;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.62rem;letter-spacing:.3em;color:#b8860b;background:rgba(12,12,15,.85);padding:8px 16px;animation:skblink 2.4s steps(2,start) infinite}
@keyframes skblink{50%{opacity:.45}}

/* konami fleet flyby */
.flyby{position:fixed;bottom:8vh;left:0;z-index:9970;pointer-events:none;display:flex;gap:26px;align-items:flex-end;animation:flyby 6s linear forwards}
.flyby img{height:34px;width:auto;transform:rotate(90deg)}
@keyframes flyby{from{transform:translateX(-60vw)}to{transform:translateX(130vw)}}

/* medevac amber override */
.op-sq.medevac{background:#b8860b!important;box-shadow:0 0 8px rgba(184,134,11,.7)!important}

/* mini changelog overlay */
.chlog{position:fixed;inset:0;z-index:9992;background:rgba(4,6,10,.92);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:24px}
.chlog pre{background:#0c0c0f;color:#cfd3da;font:400 .78rem/1.9 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.06em;padding:28px 34px;max-width:560px;max-height:70vh;overflow:auto;border-top:2px solid #b8860b;margin:0}
.chlog pre b{color:#b8860b}

@media (prefers-reduced-motion:reduce){
  body.balrog{animation:none}
  .nazgul-w,.flyby{animation-duration:.01s}
  .stationkeep{animation:none}
}


/* ============================================================
   26 — Hidden palantír + holiday variations
   ============================================================ */

/* Palantír: hidden until summoned by typing "palantir" */
.palantir{display:none}
html.palantir-on .palantir{display:block}

/* --- July 4 / Independence Day --- */
html.hol-july4 .scroll-prog{background:linear-gradient(90deg,#b22234 0 33%,#f5f5f0 33% 66%,#3c3b6e 66%)!important;box-shadow:0 0 8px rgba(178,34,52,.5)}
html.hol-july4 .nav .brand-star{filter:drop-shadow(0 0 6px rgba(178,34,52,.55)) drop-shadow(0 0 12px rgba(60,59,110,.5))}
html.hol-july4 .op-status .op-sq{background:#c5281b;box-shadow:0 0 8px rgba(197,40,27,.8)}

/* --- Christmas: santa hat on the brand star --- */
html.hol-xmas .nav .brand{position:relative}
html.hol-xmas .nav .brand::before{content:"";position:absolute;top:-9px;left:-4px;width:16px;height:13px;z-index:3;pointer-events:none;transform:rotate(-18deg);
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 26"><path d="M4 20 Q8 4 20 4 Q28 6 28 14 L24 16 Q22 8 18 8 Q10 9 9 20 Z" fill="%23c5281b"/><circle cx="28" cy="14" r="4" fill="white"/><rect x="2" y="18" width="24" height="6" rx="3" fill="white"/></svg>') no-repeat center/contain}
html.hol-xmas .ua-line .en::after{content:" \u00b7 Wesolych Swiat"}

/* --- Halloween --- */
html.hol-halloween body{filter:saturate(.85) contrast(1.04)}
html.hol-halloween .scroll-prog{background:#e07000!important}
html.hol-halloween .op-status .op-sq{background:#e07000;box-shadow:0 0 8px rgba(224,112,0,.8)}

/* --- Veterans / Memorial Day: subdued honor bar --- */
html.hol-honor .newsbar{border-bottom:2px solid #b8860b}
html.hol-honor .nav .brand-star{filter:drop-shadow(0 0 5px rgba(184,134,11,.6))}

/* --- New Year --- */
html.hol-newyear .scroll-prog{background:linear-gradient(90deg,#b8860b,#f5e6b8,#b8860b)!important}


/* ============================================================
   27 — Meta-craft egg batch styles
   ============================================================ */
.kbd-hint{display:none!important}

.sonar{position:fixed;left:50%;top:50%;width:20px;height:20px;border:2px solid rgba(63,157,95,.9);border-radius:50%;z-index:9994;pointer-events:none;transform:translate(-50%,-50%);animation:sonar .9s cubic-bezier(.23,1,.32,1) forwards}
@keyframes sonar{to{width:140vmax;height:140vmax;opacity:0}}

.comms-lost{position:fixed;inset:0;z-index:9996;background:rgba(6,8,12,.96);display:flex;flex-direction:column;gap:14px;align-items:center;justify-content:center}
.comms-lost .cl-t{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:clamp(1.6rem,5vw,3rem);letter-spacing:.3em;color:#c5281b;font-weight:700;animation:skblink 1.6s steps(2,start) infinite}
.comms-lost .cl-s{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.66rem;letter-spacing:.3em;color:rgba(255,255,255,.5)}

.contrail{position:fixed;width:5px;height:5px;border-radius:50%;background:rgba(184,134,11,.7);z-index:9993;pointer-events:none;transform:translate(-50%,-50%);animation:contrail .9s linear forwards}
@keyframes contrail{to{opacity:0;transform:translate(-50%,-50%) scale(.3)}}

.fcheck{position:fixed;top:90px;right:22px;z-index:9992;background:rgba(12,12,15,.94);padding:18px 22px;min-width:220px}
.fcheck .fc-h{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6rem;letter-spacing:.28em;color:#b8860b;margin:0 0 10px}
.fcheck .fc-i{display:flex;justify-content:space-between;gap:18px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.66rem;letter-spacing:.16em;color:rgba(255,255,255,.75);margin:6px 0}
.fcheck .fc-i span{color:rgba(255,255,255,.3)}
.fcheck .fc-i span.ok{color:#3f9d5f}

.grease{position:fixed;inset:0;z-index:9991;cursor:crosshair}


/* Sterling Road logo sizing */
.bk-logo.str img{width:100%;max-width:230px;height:auto;object-fit:contain}
/* A3 Management wordmark (self-hosted SVG, ink + cyan accent box) */
.bk-logo.a3 img{filter:none!important;opacity:.9;max-height:32px;width:auto}
.backers .backer:hover .bk-logo.a3 img{opacity:1}


/* Backswing Ventures — white logo inverted for light background */
.backers .bk-logo.bkv img{width:100%;max-width:240px;height:auto;object-fit:contain;filter:invert(1) grayscale(1)}
.backers .backer:hover .bk-logo.bkv img{filter:invert(1)}


/* ============================================================
   Micro-interaction layer (pairs with site/details.js)
   ============================================================ */

/* 4 — newsbar UTC */
.nb-utc{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.62rem;letter-spacing:.18em;color:rgba(255,255,255,.45);flex:none;font-variant-numeric:tabular-nums}
@media(max-width:768px){.nb-utc{display:none}}

/* 5 — facility local time */
.loc-time{font-variant-numeric:tabular-nums;color:var(--muted);letter-spacing:.1em}

/* 2 — radar sweep */
.fleet{position:relative}
.radar-sweep{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3}
.radar-sweep::before{content:"";position:absolute;top:0;bottom:0;left:-12%;width:10%;
  background:linear-gradient(90deg,transparent,rgba(184,134,11,.22) 60%,rgba(184,134,11,.6));
  border-right:1px solid rgba(184,134,11,.85);
  animation:radar-x 2.2s cubic-bezier(.23,1,.32,1) forwards}
@keyframes radar-x{to{left:112%}}

/* 13 — altimeter readout */
#altHud{position:fixed;top:calc(40px + 86px);right:var(--edge);z-index:60;pointer-events:none;
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.6rem;letter-spacing:.2em;color:var(--muted);
  font-variant-numeric:tabular-nums;background:rgba(255,255,255,.85);padding:5px 9px;border:1px solid rgba(0,0,0,.1);
  opacity:0;transition:opacity .25s cubic-bezier(.23,1,.32,1)}
#altHud.on{opacity:1}
@media(max-width:768px){#altHud{display:none}}

/* 15 — magnetic buttons */
.magnet{transition:transform .15s cubic-bezier(.23,1,.32,1)}

/* 11 — hero contrail */
.ctrail{position:fixed;z-index:5;width:5px;height:5px;border-radius:50%;pointer-events:none;
  background:rgba(255,255,255,.75);box-shadow:0 0 8px rgba(255,255,255,.5);
  animation:ctrail-fade .7s cubic-bezier(.23,1,.32,1) forwards}
@keyframes ctrail-fade{to{opacity:0;transform:translateY(6px) scale(.3)}}

/* 16 — redaction shimmer (hints clickability) */
.redact{position:relative;overflow:hidden}
.redact::after{content:"";position:absolute;top:0;bottom:0;left:-40%;width:30%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);
  animation:redact-glint 5.5s ease-in-out infinite}
@keyframes redact-glint{0%,74%{left:-40%}88%,100%{left:120%}}

/* 8 — turbine spool vibration */
.spooling{animation:spool 90ms linear infinite}
@keyframes spool{0%,100%{transform:translateX(0)}25%{transform:translateX(.4px) translateY(-.3px)}50%{transform:translateX(-.4px)}75%{transform:translateY(.3px)}}


/* 12 — HUD signal-strength ticks */
.rssi{display:inline-flex;align-items:flex-end;gap:2px;height:10px;margin-left:2px}
.rssi i{width:3px;background:currentColor;opacity:.35}
.rssi i:nth-child(1){height:3px}.rssi i:nth-child(2){height:5px}.rssi i:nth-child(3){height:7px}.rssi i:nth-child(4){height:10px}
.rssi i.hot{opacity:1;animation:rssi-p 2.8s ease-in-out infinite}
.rssi i:nth-child(2).hot{animation-delay:.2s}.rssi i:nth-child(3).hot{animation-delay:.4s}.rssi i:nth-child(4).hot{animation-delay:.6s}
@keyframes rssi-p{0%,100%{opacity:1}50%{opacity:.4}}

/* 17 — launch smoke wisp on the Heretic card */
.fleet .u:nth-child(4)::before{content:"";position:absolute;left:20%;top:26%;width:26px;height:26px;border-radius:50%;z-index:2;pointer-events:none;
  background:radial-gradient(circle,rgba(190,190,198,.55),transparent 70%);opacity:0;filter:blur(4px)}
@media(hover:hover) and (pointer:fine){
  .fleet .u:nth-child(4):hover::before{animation:smoke-rise 1.7s ease-out infinite}
}
@keyframes smoke-rise{0%{opacity:0;transform:translateY(0) scale(.6)}25%{opacity:.75}100%{opacity:0;transform:translateY(-44px) scale(1.7)}}

@media(prefers-reduced-motion:reduce){
  .radar-sweep,.ctrail,.redact::after,.spooling,.rssi i.hot,.fleet .u:nth-child(4)::before{animation:none!important}
  .magnet{transition:none}
}


/* ============================================================
   Micro-interaction layer II
   ============================================================ */

/* 1 — dropdown cascade */
@media(hover:hover) and (pointer:fine){
  .dropdown a,.dropdown .dd-sep{opacity:0;transform:translateY(-5px);transition:opacity .22s cubic-bezier(.23,1,.32,1),transform .22s cubic-bezier(.23,1,.32,1)}
  .has-drop:hover .dropdown a,.has-drop:focus-within .dropdown a,.has-drop:hover .dropdown .dd-sep,.has-drop:focus-within .dropdown .dd-sep{opacity:1;transform:none}
  .has-drop:hover .dropdown>*:nth-child(2){transition-delay:30ms}
  .has-drop:hover .dropdown>*:nth-child(3){transition-delay:60ms}
  .has-drop:hover .dropdown>*:nth-child(4){transition-delay:90ms}
  .has-drop:hover .dropdown>*:nth-child(5){transition-delay:120ms}
  .has-drop:hover .dropdown>*:nth-child(6){transition-delay:150ms}
  .has-drop:hover .dropdown>*:nth-child(7){transition-delay:180ms}
  .has-drop:hover .dropdown>*:nth-child(8){transition-delay:210ms}
  .has-drop:hover .dropdown>*:nth-child(9){transition-delay:240ms}
  .has-drop:hover .dropdown>*:nth-child(10){transition-delay:270ms}
  .has-drop:hover .dropdown>*:nth-child(11){transition-delay:300ms}
  .has-drop:hover .dropdown>*:nth-child(n+12){transition-delay:330ms}
}

/* 2 — sliding nav underline */
.nav-slider{position:absolute;bottom:14px;height:1.5px;background:currentColor;opacity:0;transition:left .22s cubic-bezier(.23,1,.32,1),width .22s cubic-bezier(.23,1,.32,1),opacity .18s;pointer-events:none}
@media(min-width:1001px){
  .links.has-slider{position:relative}
  .links.has-slider a:not(.ghost)::after{display:none!important}
}

/* 3 — hero letters rise */
.hl-ch{display:inline-block;animation:hl-rise .5s cubic-bezier(.23,1,.32,1) both;animation-delay:calc(var(--i)*18ms)}
@keyframes hl-rise{from{opacity:0;transform:translateY(.35em)}to{opacity:1;transform:none}}

/* 4 — team photos: mono at rest, color on hover */
@media(hover:hover) and (pointer:fine){
  .team .ph img{filter:grayscale(.85);transition:filter .3s cubic-bezier(.23,1,.32,1)}
  .member:hover .ph img{filter:none}
}

/* 5 — CLASSIFIED stamp on redacted founder names */
.member.redacted h3{position:relative}
.member.redacted h3::after{content:"CLASSIFIED";position:absolute;left:0;top:-14px;z-index:2;
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.56rem;letter-spacing:.26em;font-weight:700;color:#c5281b;
  border:1.5px solid rgba(197,40,27,.85);padding:2px 7px;transform:rotate(-6deg) scale(.9);opacity:0;
  transition:opacity .18s cubic-bezier(.23,1,.32,1),transform .18s cubic-bezier(.23,1,.32,1)}
@media(hover:hover) and (pointer:fine){
  .member.redacted:hover h3::after{opacity:1;transform:rotate(-6deg) scale(1)}
}

/* 6 — investor logos brightness sweep on scroll-in */
.backers.in .bk-logo{overflow:hidden;position:relative}
.backers.in .bk-logo::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);
  animation:bk-sweep 1s cubic-bezier(.23,1,.32,1) both}
.backers.in .backer:nth-child(2) .bk-logo::after{animation-delay:.12s}
.backers.in .backer:nth-child(3) .bk-logo::after{animation-delay:.24s}
.backers.in .backer:nth-child(4) .bk-logo::after{animation-delay:.36s}
.backers.in .backer:nth-child(5) .bk-logo::after{animation-delay:.48s}
.backers.in .backer:nth-child(6) .bk-logo::after{animation-delay:.6s}
.backers.in .backer:nth-child(7) .bk-logo::after{animation-delay:.72s}
@keyframes bk-sweep{from{left:-60%}to{left:120%}}

/* 7 — TRANSMITTING submit sweep */
.tx{position:relative;overflow:hidden;pointer-events:none}
.tx::after{content:"";position:absolute;top:0;bottom:0;left:-30%;width:30%;
  background:linear-gradient(90deg,transparent,rgba(184,134,11,.5),transparent);
  animation:tx-sweep .55s linear infinite}
@keyframes tx-sweep{to{left:100%}}

/* 9 — back-to-top climbing aircraft */
.btt{overflow:visible}
.btt::after{content:"✈";position:absolute;left:-18px;top:calc(82% - var(--climb,0)*70%);font-size:11px;color:#b8860b;opacity:.75;transform:rotate(-45deg);transition:top .2s linear;pointer-events:none}

@media(prefers-reduced-motion:reduce){
  .hl-ch,.backers.in .bk-logo::after,.tx::after{animation:none!important}
  .hl-ch{opacity:1;transform:none}
  .dropdown a,.dropdown .dd-sep{opacity:1;transform:none;transition:none}
}


/* ── Afterburner (propulsion monument) ── */
.ab-btn{white-space:nowrap;transition:background .18s cubic-bezier(.23,1,.32,1),color .18s cubic-bezier(.23,1,.32,1),border-color .18s,box-shadow .18s}
.ab-btn:hover{background:rgba(184,134,11,.12)}
.ab-btn:active{transform:translateY(1px)}
.ab-btn:focus-visible{outline:2px solid #b8860b;outline-offset:3px}
.ab-btn.lit{background:radial-gradient(125% 150% at 50% 0%,#c5281b 0%,#9c0f08 45%,#5c0502 100%);color:#fff;border-color:#c5281b;
  box-shadow:0 0 18px rgba(197,40,27,.55),inset 0 0 14px rgba(255,120,80,.3);animation:ab-btn-pulse 1.4s ease-in-out infinite}
@keyframes ab-btn-pulse{50%{box-shadow:0 0 30px rgba(197,40,27,.85),inset 0 0 20px rgba(255,120,80,.45)}}
.ab-shake{animation:ab-shake 70ms linear infinite}
@keyframes ab-shake{0%,100%{translate:0 0}25%{translate:.7px -.5px}50%{translate:-.7px .4px}75%{translate:.4px .6px}}
@media(prefers-reduced-motion:reduce){.ab-btn.lit,.ab-shake{animation:none}}


/* ── Thrust lever (propulsion afterburner control) — horizontal, right of turbine, v-centered ── */
.throttle{position:absolute;right:calc(var(--edge) + 6px);top:50%;transform:translateY(-50%);z-index:4;
  display:flex;flex-direction:column;gap:9px;width:min(300px,34vw);padding:16px 18px;
  background:rgba(12,12,15,.76);backdrop-filter:blur(8px);border:1px solid rgba(184,134,11,.4)}
.thr-read{display:flex;justify-content:space-between;align-items:baseline;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.18em;text-transform:uppercase}
.thr-mode{font-size:.62rem;font-weight:700;color:#b8860b;transition:color .2s;white-space:nowrap}
.throttle:has(.thr-lever.ab) .thr-mode{color:#5a8dff}
.thr-pct{font-size:.62rem;color:rgba(255,255,255,.6);font-variant-numeric:tabular-nums}
.thr-lever{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:0;cursor:ew-resize;
  background:linear-gradient(90deg,#3a3a42 0%,#7a2510 40%,#b8860b 62%,#2f6dff 100%);outline:none}
.thr-lever::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:28px;border-radius:2px;background:#e8e8ec;
  border:1px solid #0c0c0f;box-shadow:0 2px 6px rgba(0,0,0,.5);cursor:ew-resize;transition:background .2s,box-shadow .2s}
.thr-lever.ab::-webkit-slider-thumb{background:#5a8dff;box-shadow:0 0 12px rgba(90,141,255,.85)}
.thr-lever::-moz-range-thumb{width:16px;height:28px;border-radius:2px;background:#e8e8ec;border:1px solid #0c0c0f;cursor:ew-resize}
.thr-lever.ab::-moz-range-thumb{background:#5a8dff}
.thr-lever:focus-visible{outline:2px solid #b8860b;outline-offset:4px}
.thr-scale{display:flex;justify-content:space-between;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.52rem;letter-spacing:.12em;color:rgba(255,255,255,.44)}
.thr-scale .thr-ab{color:#5a8dff}
@media(max-width:1000px){.throttle{position:static;transform:none;margin:22px auto 0;width:min(340px,80vw)}}


/* Redacted strategic investor */
.backer-redacted{cursor:default}
.backer-redacted .bk-rd{display:inline-block;background:var(--onyx,#0c0c0f);color:transparent;padding:2px 10px;letter-spacing:2px;font-size:1.1rem;line-height:1.3}
.backer-redacted:hover{opacity:1}


/* ============================================================
   Showpiece features: contrails · HUD reticle · deployment map · assembly counter
   ============================================================ */

/* Contrail canvas — behind the jet, inside the plane box */
.monument .plane{position:relative}
.contrail-cv{position:absolute;top:-10%;left:-10%;width:120%;height:120%;pointer-events:none;z-index:0}
.monument .plane img{position:relative;z-index:1}

/* Reactive HUD reticle (hero) */
.hud-reticle{position:absolute;left:50%;top:55%;width:74px;height:74px;transform:translate(-50%,-50%);pointer-events:none;opacity:0;transition:opacity .25s cubic-bezier(.23,1,.32,1);z-index:2}
.hud-reticle i{position:absolute;inset:0;border:1px solid rgba(255,255,255,.55);border-radius:50%}
.hud-reticle::before,.hud-reticle::after{content:"";position:absolute;background:rgba(255,255,255,.55)}
.hud-reticle::before{left:50%;top:-8px;bottom:-8px;width:1px;transform:translateX(-.5px)}
.hud-reticle::after{top:50%;left:-8px;right:-8px;height:1px;transform:translateY(-.5px)}
.hud-reticle .rt-tag{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.5rem;letter-spacing:.24em;color:rgba(255,255,255,.7);white-space:nowrap;opacity:0;transition:opacity .18s}
@media (hover:hover) and (pointer:fine){ .hero:hover .hud-reticle{opacity:.9} }
.hud-reticle.lock i{border-color:#c5281b;box-shadow:0 0 12px rgba(197,40,27,.6)}
.hud-reticle.lock{width:56px;height:56px}
.hud-reticle.lock .rt-tag{opacity:1;color:#ff6a5a}
.hud-reticle.lock .rt-tag::before{content:"LOCK";}
.hud-reticle.lock .rt-tag{font-size:0}
.hud-reticle.lock .rt-tag::before{font-size:.5rem;letter-spacing:.24em}
@media(prefers-reduced-motion:reduce){.hud-reticle{transition:none}}

/* Assembly-line counter */
.asm-count{font-variant-numeric:tabular-nums}
.asm-belt{display:block;height:3px;margin-top:8px;max-width:120px;background:
  repeating-linear-gradient(90deg,#b8860b 0 10px,transparent 10px 20px);
  background-size:20px 100%;opacity:.55;animation:asm-belt 1.1s linear infinite}
@keyframes asm-belt{to{background-position:20px 0}}
@media(prefers-reduced-motion:reduce){.asm-belt{animation:none}}

/* ============ v30 POLISH PACK ============ */
/* 21 — print: spec pages print as clean datasheets */
@media print{
  .newsbar,.nav,.scroll-prog,.btt,.palantir,.kpal-hint,.foot .newsletter,.scrollcue,.hud,.next-band,video{display:none!important}
  body{background:#fff!important;color:#000!important}
  .sec{padding:24px 0!important}
  a{text-decoration:none!important;color:#000!important}
  .statement,.demo,.monument{background:#fff!important;color:#000!important}
}
/* 20 — breadcrumb line under nav on subpages */
.crumbline{position:relative;z-index:5;display:flex;gap:10px;align-items:center;padding:12px var(--edge,48px) 0;font:600 11px/1 "nhg-text",monospace;letter-spacing:.14em;text-transform:uppercase;color:#6b6b70}
.crumbline a{color:#6b6b70;transition:color .18s cubic-bezier(.25,1,.5,1)}
.crumbline a:hover{color:#b8860b}
.crumbline .sep{color:#b8860b}
/* 18 — next-page chain band */
.next-band{display:block;padding:26px var(--edge,48px);border-top:1px solid rgba(255,255,255,.14);background:#0c0c0f;color:#fff;text-decoration:none}
.next-band .nx-k{font:600 10px/1 monospace;letter-spacing:.2em;color:#b8860b;text-transform:uppercase}
.next-band .nx-t{display:block;margin-top:8px;font-size:clamp(20px,2.6vw,30px);font-weight:600;letter-spacing:-.02em;transition:color .2s cubic-bezier(.25,1,.5,1)}
@media(hover:hover) and (pointer:fine){.next-band:hover .nx-t{color:#b8860b}}
/* 24 — blur-up image reveal (with CSS failsafe so no image is ever stuck hidden) */
.imgld{opacity:0;filter:blur(6px);transform:none;animation:imgldFailsafe 0s linear 2.5s forwards}
img.ldin{opacity:1!important;filter:none!important;transition:opacity .45s cubic-bezier(.25,1,.5,1),filter .45s cubic-bezier(.25,1,.5,1)}
@keyframes imgldFailsafe{to{opacity:1;filter:none}}
@media(prefers-reduced-motion:reduce){.imgld{opacity:1;filter:none;animation:none}}
/* 9 — updated stamp */
.upd-stamp{display:inline-block;margin-top:10px;font:600 10px/1 monospace;letter-spacing:.18em;color:#8a8a90;text-transform:uppercase}
.upd-stamp::before{content:"// ";color:#b8860b}
/* 22/29 — newsletter validation + honeypot */
.nl-err{display:none;margin-top:8px;font:600 11px/1 monospace;letter-spacing:.12em;color:#c5281b;text-transform:uppercase}
.nl-err.on{display:block}
.nl-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
/* 25 — fleet keyboard focus */
.fleet .u:focus-visible{outline:2px solid #b8860b;outline-offset:4px}

/* customers section */
.cust{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:48px}
@media(max-width:900px){.cust{grid-template-columns:1fr}}
.cu-card{border-top:2px solid #b8860b;padding-top:16px}
.cu-card .cu-flag{margin:0 0 12px;line-height:0}
.cu-card .cu-flag img{display:block;border:1px solid rgba(0,0,0,.12)}
.cu-card h3{margin:0 0 6px;font-size:1.1rem;font-weight:600;letter-spacing:-.01em}
.cu-card .role{margin:0;color:#6b6b70;font-size:.92rem}
.cu-redacted h3 .redact{letter-spacing:0}
