/* =====================================================================
   ISENGARD INDUSTRIES — design system
   Tokens & grammar:
   - Jetstream Navy #001489 · Forge Gold #b8860b · Forge Ink #0c0c0f · Cloud #ffffff
   - Monumental type · full-bleed edge-anchored · 70px section rhythm
   - Military aesthetic: HUD readouts, corner brackets, redaction, grain
   - Zero border-radius · no card shadows · outlined ghost actions · Onyx footer
   ===================================================================== */

/* Neue Haas Grotesk - the typeface used on heartaerospace.com.
   nhgDisplay = headings (optical display cut), nhgText = body/UI.
   NOTE: files in assets/fonts/nhg are TRIAL (personal-use). Replace with a
   purchased Monotype web licence (same filenames) before public launch. */
@font-face{font-family:"nhgDisplay";src:url("assets/fonts/nhg/nhg-disp-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"nhgDisplay";src:url("assets/fonts/nhg/nhg-disp-500.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"nhgDisplay";src:url("assets/fonts/nhg/nhg-disp-500.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"nhgDisplay";src:url("assets/fonts/nhg/nhg-disp-700.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"nhgText";src:url("assets/fonts/nhg/nhg-text-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"nhgText";src:url("assets/fonts/nhg/nhg-text-500.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"nhgText";src:url("assets/fonts/nhg/nhg-text-500.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"nhgText";src:url("assets/fonts/nhg/nhg-text-700.woff2") format("woff2");font-weight:700;font-display:swap}

:root{
  --stratosphere:#716e85;
  --strato-deep:#54526a;
  --jetstream:#001489;
  --onyx:#000000;
  --ink:#0c0c0f;
  --ink-soft:#5a5c63;
  --muted:#9a9aa1;
  --cloud:#ffffff;
  --hair:rgba(0,0,0,.12);

  --edge:40px;                       /* Heart's 40px viewport padding */
  --gap:70px;                        /* Heart's section gap */
  --maxw:none;                       /* full-bleed, no max-width container */

  --t-display:clamp(4rem,15.5vw,13rem);   /* 156px+ monumental */
  --t-hero:clamp(2.8rem,9.5vw,8.5rem);
  --t-h2:clamp(2.1rem,4.4vw,2.875rem);    /* 46px section heading */
  --t-lead:clamp(1.15rem,1.5vw,1.5rem);
  --t-body:1.125rem;                       /* 18px */
  --ease:cubic-bezier(.22,.61,.36,1);

  --font-display:"nhgDisplay","Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
  --font-text:"nhgText","Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--cloud);color:var(--onyx);
  font-family:var(--font-text);
  font-size:var(--t-body);font-weight:400;line-height:1.3;letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;font-weight:600;line-height:1;letter-spacing:-.02em}
h1,h2,.hero h1,.word,.bigmark .word{font-family:var(--font-display)}
p{margin:0}
a:focus-visible,button:focus-visible{outline:2px solid var(--jetstream);outline-offset:4px}
:focus:not(:focus-visible){outline:none}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--onyx);color:#fff;padding:12px 18px}
.skip:focus{left:12px;top:12px}
.edge{padding-inline:var(--edge)}
.eyebrow{font-size:.8rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.tnum{font-variant-numeric:tabular-nums}

/* ---------------- NAV (transparent over hero) ---------------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:100;display:flex;align-items:center;justify-content:space-between;
  padding:26px var(--edge);transition:transform .45s var(--ease),background .4s,border-color .4s;border-bottom:1px solid transparent}
.nav.hidden{transform:translateY(0)}
.nav.solid{background:rgba(255,255,255,.9);backdrop-filter:saturate(150%) blur(16px);border-bottom-color:var(--hair)}
.brand{display:flex;align-items:center;gap:12px;font-weight:600;font-size:1.18rem;letter-spacing:.02em}
.brand svg{width:26px;height:26px}
.nav-r{display:flex;align-items:center;gap:32px}
.links{display:flex;align-items:center;gap:28px}
.links a{font-size:1rem;position:relative}
.links a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.links a:hover::after,.links a.active::after{transform:scaleX(1)}
/* color states — difference blend keeps brand & links legible on any bg */
.nav .brand,.nav .links a{color:var(--cloud);mix-blend-mode:difference}
.nav:not(.solid) .brand,.nav:not(.solid) .links a{text-shadow:none}
.nav .ghost{color:var(--cloud)}
.nav.solid .brand,.nav.solid .links a{color:var(--onyx);mix-blend-mode:normal;text-shadow:none}
.nav.solid .ghost{color:var(--onyx)}
.lang-pick{display:flex;align-items:center;gap:14px;flex:none}
.lang-btn{opacity:.5;text-decoration:none;transition:opacity .2s;cursor:pointer;line-height:0;border-radius:2px}
.lang-btn img{width:20px;height:auto;display:block;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.1)}
.lang-btn:hover{opacity:1}
.burger{display:none;width:30px;height:20px;position:relative;background:none;border:0;cursor:pointer;color:var(--cloud);mix-blend-mode:difference}
.nav.solid .burger{color:var(--onyx);mix-blend-mode:normal}
.burger span{position:absolute;left:0;right:0;height:2px;background:currentColor;transition:.3s var(--ease)}
.burger span:nth-child(1){top:0}.burger span:nth-child(2){top:9px}.burger span:nth-child(3){top:18px}

/* ---------------- HERO (atmospheric sky, monumental type) ---------------- */
.hero{position:relative;min-height:100svh;min-height:100vh;display:flex;align-items:flex-end;overflow:hidden;color:var(--onyx);
  background:
    radial-gradient(120% 80% at 78% 22%,rgba(255,247,235,.7) 0%,rgba(255,247,235,0) 42%),
    linear-gradient(178deg,#56546a 0%,#6f6d84 22%,#9aa1b4 48%,#c9c2c0 70%,#ece5df 84%,#ffffff 100%)}
.sky-clouds{position:absolute;inset:0;z-index:1;opacity:.5;mix-blend-mode:screen;pointer-events:none}
.sky-plane{position:absolute;z-index:2;left:60%;top:30%;width:min(30vw,440px);transform:rotate(-8deg);opacity:.92;pointer-events:none;color:#23242c}
.sky-plane svg{width:100%;height:auto;filter:drop-shadow(0 18px 30px rgba(40,44,60,.22))}
.hero::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  background:linear-gradient(180deg,rgba(20,22,34,.28) 0%,rgba(20,22,34,0) 16%,rgba(255,255,255,0) 52%,rgba(255,255,255,.35) 82%,rgba(255,255,255,.85) 100%)}
.hero-in{position:relative;z-index:4;width:100%;padding-bottom:clamp(40px,6vh,80px);padding-top:160px}
.hero h1{font-size:var(--t-hero);max-width:15ch;line-height:.92;letter-spacing:-.03em}
.hero .lead{margin-top:24px;max-width:42ch;font-size:var(--t-lead);color:var(--ink-soft);line-height:1.28}
.hero .acts{display:flex;gap:16px;flex-wrap:wrap;margin-top:40px}
/* tech / terminal button - corner brackets, coral hover */
.btn,.ghost,.office .map{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:transparent;color:var(--onyx);padding:16px 28px;border:none;cursor:pointer;touch-action:manipulation;
  font-family:ui-monospace,"Cascadia Mono",Menlo,Consolas,monospace;font-size:.8rem;font-weight:500;
  letter-spacing:2px;text-transform:uppercase;transition:background .14s ease,color .14s ease}
.btn::before,.btn::after,.ghost::before,.ghost::after,.office .map::before,.office .map::after{
  content:"";position:absolute;inset:0;pointer-events:none}
.btn::before,.ghost::before,.office .map::before{background:
  linear-gradient(currentColor,currentColor) top left/9px 1px no-repeat,
  linear-gradient(currentColor,currentColor) top left/1px 9px no-repeat,
  linear-gradient(currentColor,currentColor) bottom right/9px 1px no-repeat,
  linear-gradient(currentColor,currentColor) bottom right/1px 9px no-repeat}
.btn::after,.ghost::after,.office .map::after{background:
  linear-gradient(currentColor,currentColor) top right/9px 1px no-repeat,
  linear-gradient(currentColor,currentColor) top right/1px 9px no-repeat,
  linear-gradient(currentColor,currentColor) bottom left/9px 1px no-repeat,
  linear-gradient(currentColor,currentColor) bottom left/1px 9px no-repeat}
.btn:hover,.ghost:hover,.office .map:hover{
  background:radial-gradient(125% 150% at 50% 0%,#c5281b 0%,#9c0f08 45%,#5c0502 100%);
  color:#fff;
  box-shadow:0 0 20px rgba(190,24,14,.5),0 0 4px rgba(220,40,28,.55),
    inset 0 1px 0 rgba(255,150,135,.5),inset 0 0 24px rgba(220,60,40,.32),inset 0 -10px 18px rgba(70,4,2,.55);
  text-shadow:0 0 9px rgba(255,180,165,.45)}
.btn:active,.ghost:active{transform:translateY(1px)}
.btn-dark,.btn-ghost{color:var(--onyx)}
.scrollcue{position:absolute;left:var(--edge);bottom:24px;z-index:4;font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}

/* ---------------- MONUMENT (sticky scroll - aircraft rolls upward) ---------------- */
.monument{position:relative;color:var(--cloud);
  background:linear-gradient(180deg,#54526a 0%,#716e85 40%,#9b99a8 74%,#9b99a8 100%)}
.monument-track{height:200vh}
.monument-sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;padding-top:clamp(120px,15vh,170px)}
.monument-head{position:relative;z-index:2}
.monument .eyebrow{color:rgba(255,255,255,.78);padding-inline:var(--edge);font-size:1rem;letter-spacing:.16em}
.monument .word{font-size:clamp(4.5rem,19vw,17rem);font-weight:600;letter-spacing:-.045em;line-height:.82;padding-inline:var(--edge);margin-top:18px}
.monument .plane{position:absolute;left:50%;bottom:-6%;z-index:1;width:min(56vw,820px);margin-left:calc(min(56vw,820px) / -2);
  color:#d9d7df;will-change:transform;transition:transform .12s linear}
/* No-JS / reduced-motion fallback: static, aircraft sits below the word */
html:not(.js) .monument-track{height:auto}
html:not(.js) .monument-sticky{position:static;height:auto;padding-bottom:0}
html:not(.js) .monument .plane{position:static;margin:48px auto 0;bottom:auto;left:auto}
.monument .plane svg{width:100%;height:auto}

/* ---------------- SECTION ---------------- */
.sec{padding:clamp(90px,14vh,180px) 0}
.s-head{max-width:46ch}
.s-head h2{font-size:var(--t-h2);margin-top:20px}
.s-head p{margin-top:20px;font-size:var(--t-lead);color:var(--ink-soft);line-height:1.3;max-width:44ch}

/* feature: image/panel + word + sentence */
.feature{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(40px,7vw,130px)}
.feature--rev .fig{order:2}
.fig{aspect-ratio:4/3;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,#6f6d84,#aeb4c2 70%,#e9e4df)}
.fig .plane{width:74%;color:#2b2c33}
.fig.fig-light{background:linear-gradient(160deg,#eef0f2,#dfe3e7)}
.fig.fig-light .plane{color:#3a3c44}
.feature .word{font-size:clamp(2.6rem,6vw,5.2rem);font-weight:600;letter-spacing:-.03em;line-height:.96}
.feature p{margin-top:22px;font-size:var(--t-lead);color:var(--ink-soft);max-width:38ch;line-height:1.3}
.feature .stat{display:flex;gap:56px;margin-top:44px;flex-wrap:wrap}
.feature .stat .v{font-size:clamp(2rem,3.4vw,3rem);font-weight:600;letter-spacing:-.02em}
.feature .stat .l{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:6px;font-weight:600}

/* spec list */
.specs{border-top:1px solid var(--hair);margin-top:clamp(40px,6vh,70px)}
.spec{display:grid;grid-template-columns:1fr auto;gap:24px;padding:26px 0;border-bottom:1px solid var(--hair);align-items:baseline}
.spec dt{font-size:1.2rem;font-weight:600}
.spec dd{margin:0;font-size:1.2rem;color:var(--ink-soft);font-variant-numeric:tabular-nums}

/* investors / partners */
.logos{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(46px,8vw,120px);margin-top:clamp(40px,6vh,70px)}
.logos span{font-size:1.35rem;font-weight:700;letter-spacing:-.01em;color:var(--onyx);opacity:.82}
.logos span.thin{font-weight:400;letter-spacing:.1em}

/* inner nav wrapper (investors / brand / colophon simple nav) */
.nav-inner{display:flex;align-items:center;justify-content:space-between;width:100%}

/* footer */
.foot{background:var(--onyx);color:rgba(255,255,255,.66);padding:96px var(--edge) 48px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px}
.foot .brand{color:#fff;font-weight:400;letter-spacing:.06em}.foot .brand svg [data-fill]{fill:#fff}
.foot h4{color:#fff;font-size:.92rem;margin-bottom:24px;font-weight:600}
.foot a{display:block;color:rgba(255,255,255,.62);padding:6px 0}
.foot a:hover{color:#fff}
.foot .addr{margin-top:24px;font-size:.94rem;line-height:1.6;color:rgba(255,255,255,.55)}
.foot-policy{max-width:var(--maxw);margin:64px auto 0;display:flex;flex-wrap:wrap;gap:32px;padding-top:0}
.foot-policy a{color:rgba(255,255,255,.72);font-size:.9rem;font-weight:500}
.foot-policy a:hover{color:#fff}
.foot-policy .cage{color:rgba(255,255,255,.4);font-size:.82rem;letter-spacing:.14em}
.foot-base{margin-top:28px;padding-top:24px;border-top:1px solid rgba(255,255,255,.16);display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-size:.82rem;color:rgba(255,255,255,.45)}
.ua-line{display:flex;gap:14px;flex-wrap:wrap;font-style:normal}
.ua-line [lang=uk]{color:#ffd700;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;text-shadow:0 0 18px rgba(255,215,0,.45)}
.ua-line .en{color:rgba(255,255,255,.34)}

/* brand star (real logo) */
.brand-star{width:26px;height:26px;object-fit:contain;flex:none}
.nav:not(.solid) .brand-star{filter:brightness(0) invert(1)}
.nav.solid .brand-star{filter:none}
.foot .brand-star{filter:brightness(0) invert(1)}

/* hero video (over the gradient fallback) */
.hero-media{position:absolute;inset:0;z-index:0;overflow:hidden;background:
  radial-gradient(120% 80% at 78% 22%,rgba(255,247,235,.55) 0%,rgba(255,247,235,0) 42%),
  linear-gradient(178deg,#56546a 0%,#6f6d84 24%,#9aa1b4 50%,#cdc7c4 72%,#ece5df 86%,#fff 100%)}
.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%}
/* white-type hero: darken top (nav) and bottom (headline) over the video */
.hero{color:var(--cloud)}
.hero::after{background:linear-gradient(180deg,rgba(8,10,18,.52) 0%,rgba(8,10,18,0) 22%,rgba(8,10,18,0) 38%,rgba(8,10,18,.55) 76%,rgba(8,10,18,.9) 100%)}
.hero h1.hero-h-caps{color:var(--cloud);text-transform:uppercase;letter-spacing:-.02em}
.hero .lead{color:rgba(255,255,255,.9)}
.hero .btn{color:var(--cloud)}
.hero .scrollcue{color:rgba(255,255,255,.7)}

/* real aircraft render inside monument / figures */
.monument .plane img,.fig .rimg{width:100%;height:auto;object-fit:contain;display:block}
.fig{background:linear-gradient(160deg,#6f6d84,#aeb4c2 70%,#e9e4df)}
.fig .rimg{width:84%;filter:drop-shadow(0 26px 44px rgba(18,22,34,.22))}
.fig.fig-photo{background:#0c0c0f}
.fig.fig-photo .rimg{width:100%;height:100%;object-fit:cover;filter:none}
.fig.fig-light{background:linear-gradient(160deg,#eef0f2,#dfe3e7)}

/* strike-line spec rows: designation -> role */
.spec .role{color:var(--jetstream)}

/* facilities */
.fac{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);margin-top:clamp(40px,6vh,70px)}
.fac figure{margin:0}
.fac .im{aspect-ratio:16/10;overflow:hidden;position:relative}
.fac .im img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.fac .im .loc-flag{position:absolute;bottom:10px;left:12px;width:36px;height:auto;object-fit:unset;border-radius:2px;opacity:.85;box-shadow:0 1px 6px rgba(0,0,0,.45)}
.fac figure:hover .im img{transform:scale(1.04)}
.fac .loc{margin-top:18px;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:600}
.fac h3{font-size:1.5rem;margin-top:6px}
.fac .fs{display:flex;gap:48px;margin-top:16px}
.fac .fs .v{font-size:1.3rem;font-weight:600}
.fac .fs .l{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:4px;font-weight:600}

/* team */
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,28px);margin-top:clamp(40px,6vh,70px)}
.member .ph{aspect-ratio:1/1;overflow:hidden;background:#ececed}
.member .ph img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:grayscale(1);transition:filter .5s var(--ease)}
.member:hover .ph img{filter:grayscale(0)}
.member h3{font-size:1.14rem;margin-top:16px;font-weight:600}
.member .r{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:6px;font-weight:600}
.member .c{font-size:.9rem;color:var(--ink-soft);margin-top:8px;line-height:1.4}

/* investor logos: real marks */
.logos img{max-height:54px;width:auto;filter:grayscale(1) brightness(0);opacity:.85;transition:opacity .3s}
.logos a:hover img,.logos .li:hover img{opacity:.5}
.logos .li{display:inline-flex;align-items:center;height:60px}
.logos .li.star img{filter:none;opacity:1;max-height:40px}
.logos .li.yc img{filter:none;opacity:1;max-height:48px}

/* named backers (explicit) */
.backers{display:flex;flex-wrap:wrap;gap:clamp(40px,7vw,110px);margin-top:clamp(40px,6vh,70px)}
.backer{display:flex;align-items:center;gap:18px;transition:opacity .25s var(--ease)}
.backer:hover{opacity:.62}
.bk-logo{display:inline-flex;align-items:center;justify-content:center;height:52px}
.bk-logo img{max-height:100%;width:auto;filter:grayscale(1) brightness(0);opacity:.9}
.bk-logo.yc img{filter:none;opacity:1;max-height:46px}
.bk-logo.sde img{filter:none;opacity:1;max-height:50px}
.bk-logo.bal img{filter:none;opacity:1;max-height:34px}

/* header Arsenal dropdown */
.has-drop{position:relative;display:inline-flex;align-items:center}
.dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:248px;background:#0b0b0d;
  border:1px solid rgba(255,255,255,.12);padding:8px 0;opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .2s var(--ease),transform .2s var(--ease),visibility .2s;z-index:120;display:flex;flex-direction:column}
.has-drop:hover .dropdown,.has-drop:focus-within .dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown a{padding:10px 22px;font-size:.92rem;color:rgba(255,255,255,.82)!important;white-space:nowrap;
  letter-spacing:0;text-transform:none;text-shadow:none!important}
.dropdown a:hover{background:rgba(255,255,255,.08);color:#fff!important}
.dropdown a::after{display:none!important}
.dropdown .dd-sep{border-top:1px solid rgba(255,255,255,.12);margin:8px 0}
@media(max-width:1000px){
  .has-drop{display:block;width:100%}
  .dropdown{position:static;opacity:1;visibility:visible;transform:none;background:transparent;border:0;
    padding:6px 0 6px 18px;min-width:0}
  .dropdown a{font-size:1rem;padding:8px 0;color:rgba(255,255,255,.7)!important}
}
.bk-name{font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:var(--onyx)}
@media(max-width:560px){.backers{gap:28px}.backer{width:100%}}

@media(max-width:1000px){ .fac,.team{grid-template-columns:1fr} .team{grid-template-columns:repeat(2,1fr)} }
@media(max-width:560px){ .team{grid-template-columns:1fr 1fr} }

/* product detail (specs) page */
.product{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,110px);align-items:center;padding:clamp(70px,11vh,140px) 0;border-top:1px solid var(--hair)}
.product:nth-child(even) .p-media{order:2}
.p-media{display:flex;align-items:center;justify-content:center;min-height:300px}
.p-media img{max-width:100%;max-height:440px;width:auto;object-fit:contain}
.p-id{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:600}
.product h2{font-size:clamp(2rem,4vw,3.2rem);margin-top:8px}
.p-role{margin-top:10px;color:var(--jetstream);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600}
.p-desc{margin-top:22px;color:var(--ink-soft);max-width:46ch;line-height:1.55}
.sheet{margin-top:30px;border-top:1px solid var(--hair)}
.sheet .row{display:grid;grid-template-columns:1fr auto auto;gap:14px 36px;padding:13px 0;border-bottom:1px solid var(--hair);align-items:baseline;font-variant-numeric:tabular-nums}
.sheet .k{color:var(--ink-soft);font-size:.92rem}
.sheet .m{font-weight:600;font-size:.98rem;text-align:right;min-width:96px}
.sheet .i{color:var(--muted);font-size:.9rem;text-align:right;min-width:84px}
@media(max-width:1000px){.product{grid-template-columns:1fr}.product:nth-child(even) .p-media{order:0}}

/* strike family grid (slide-12 renders) */
.fleet{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,3vw,52px) clamp(24px,3vw,56px);margin-top:clamp(40px,6vh,70px)}
.fleet .u{border-top:1px solid var(--hair);padding-top:26px}
.fleet .um{height:180px;display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.fleet .um img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .6s var(--ease)}
.fleet .u:hover .um img{transform:scale(1.05)}
.fleet .uid{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600}
.fleet h3{font-size:1.3rem;margin-top:8px;font-weight:600}
.fleet .role{margin-top:8px;color:var(--jetstream);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
@media(max-width:1000px){.fleet{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.fleet{grid-template-columns:1fr}}

/* page hero (careers/contact) */
.phero{position:relative;min-height:72vh;display:flex;align-items:flex-end;color:#fff;background:#54526a;overflow:hidden}
.phero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(86,84,107,.25),rgba(0,0,0,.78))}
.phero .edge{position:relative;z-index:2;padding-bottom:60px;padding-top:170px;width:100%}
.phero h1{font-size:var(--t-hero);font-weight:600}
.phero p{margin-top:22px;max-width:52ch;font-size:var(--t-lead);color:rgba(255,255,255,.92);line-height:1.3}
.roles{border-top:1px solid var(--hair);margin-top:clamp(40px,6vh,70px)}
.role{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:28px 0;border-bottom:1px solid var(--hair);flex-wrap:wrap;transition:padding-left .25s var(--ease)}
.role:hover{padding-left:10px}
.role h3{font-size:1.4rem;font-weight:600}
.role .m{color:var(--muted);font-size:.86rem}
.cbig{font-size:clamp(1.7rem,4vw,2.8rem);font-weight:600;margin-top:12px}
.cbig a{color:var(--jetstream);border-bottom:1.5px solid var(--jetstream);padding-bottom:3px}

/* contact page (Heart layout) */
.contact-photo{width:100%;aspect-ratio:21/8;overflow:hidden;margin-top:clamp(40px,6vh,70px)}
.contact-photo img{width:100%;height:100%;object-fit:cover}
.inq-list{border-top:1px solid var(--hair);margin-top:clamp(48px,7vh,80px)}
.inq{display:grid;grid-template-columns:minmax(220px,1fr) 2fr;gap:24px 60px;padding:30px 0;border-bottom:1px solid var(--hair);align-items:baseline}
.inq h3{font-size:1.5rem;font-weight:600}
.inq p{color:var(--ink-soft);font-size:1.05rem;line-height:1.5}
.inq a{color:var(--jetstream);border-bottom:1.5px solid var(--jetstream);padding-bottom:2px}
.offices{margin-top:clamp(70px,10vh,120px)}
.offices h2{font-size:var(--t-h2);margin-bottom:clamp(32px,5vh,56px)}
.office-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,4vw,64px)}
.office .ol{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:600}
.office address{font-style:normal;margin-top:12px;line-height:1.6;color:var(--ink)}
.office .map{margin-top:18px}
.redact{display:inline-block;background:var(--onyx);color:transparent;border-radius:0;padding:0 6px;-webkit-user-select:none;user-select:none}
.office.classified .map{border-color:var(--muted);color:var(--muted);pointer-events:none}
@media(max-width:760px){.inq{grid-template-columns:1fr;gap:10px}.office-grid{grid-template-columns:1fr}}
.back{display:inline-flex;gap:10px;margin-top:clamp(40px,6vh,64px);color:var(--jetstream);font-weight:600;font-size:.9rem;transition:gap .25s}
.back:hover{gap:16px}

/* =====================================================================
   DEFENSE-TECH DETAIL LAYER - telemetry HUD, classification, reticles,
   scroll rail, grain, magnetic CTAs. All progressive-enhancement.
   ===================================================================== */

/* scroll progress rail */
.scroll-prog{position:fixed;top:0;left:0;height:2px;width:0;z-index:120;background:var(--jetstream);transition:width .1s linear;pointer-events:none}

/* news / status bar (dismissible) */
.newsbar{position:fixed;top:0;left:0;right:0;z-index:101;height:40px;display:flex;align-items:center;gap:16px;
  padding:0 var(--edge);background:#0b0b0d;border-bottom:1px solid rgba(255,255,255,.1);
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.72rem;letter-spacing:.04em;color:rgba(255,255,255,.82)}
.nb-tag{display:inline-flex;align-items:center;gap:8px;flex:none;color:rgba(255,255,255,.6);letter-spacing:.18em}
.nb-dot{width:8px;height:8px;background:#ff3b30;display:inline-block;animation:blink 1.1s steps(2,start) infinite}
@keyframes blink{50%{opacity:.12}}
.nb-msg{flex:1;text-align:center;color:rgba(255,255,255,.92);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;letter-spacing:.1em}
.nb-msg:hover{color:#fff;text-decoration:underline}
.nb-class{flex:none;color:rgba(255,255,255,.45);letter-spacing:.18em;cursor:pointer;-webkit-user-select:none;user-select:none}
.nb-x{flex:none;width:24px;height:24px;border:1px solid rgba(255,255,255,.22);background:none;color:rgba(255,255,255,.7);
  cursor:pointer;font-size:1.05rem;line-height:1;display:flex;align-items:center;justify-content:center}
.nb-x:hover{color:#fff;border-color:rgba(255,255,255,.5)}
.nav{top:40px}
body.news-closed .newsbar{display:none}
body.news-closed .nav{top:0}
@media(max-width:760px){.newsbar{gap:10px;font-size:.6rem}.nb-class{display:none}}

/* operator mode (konami egg #6) */
.op-hud{position:fixed;inset:0;z-index:150;pointer-events:none;opacity:0;transition:opacity .4s var(--ease)}
body.operator .op-hud{opacity:1}
.op-hud::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,255,160,.045) 0 2px,transparent 2px 4px)}
.op-hud .op-tel{position:absolute;bottom:16px;left:16px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.66rem;letter-spacing:.1em;color:rgba(120,255,190,.85);line-height:1.6;text-shadow:0 0 8px rgba(0,255,160,.4)}
.op-hud .op-tag{position:absolute;top:52px;right:16px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.66rem;letter-spacing:.3em;color:rgba(120,255,190,.85)}
/* GNSS-denied jitter (egg #3) */
@keyframes jit{0%,100%{transform:translate(0,0)}25%{transform:translate(-1.5px,1px)}50%{transform:translate(1.5px,-1px)}75%{transform:translate(-1px,-1.5px)}}
body.gnss .links a,body.gnss .brand,body.gnss .nb-msg{animation:jit .1s steps(2) 8}
/* shift-to-aim reticle cursor on imagery (egg #5) */
body.aim .fleet .um,body.aim .p-media,body.aim .fig,body.aim .monument .plane{cursor:crosshair}

/* balmoral text wordmark backer (until a logo asset is provided) */
.bk-word{font-weight:700;font-size:1.4rem;letter-spacing:.02em;color:var(--onyx)}

/* subtle background tray for secondary / gallery sections */
.sec.section--soft{background:#f7f8f9}

/* numbered principles / values list (.module with .n counter) */
.modules{border-top:1px solid var(--hair)}
.module{display:grid;grid-template-columns:48px 1fr;row-gap:8px;column-gap:20px;padding:28px 0;border-bottom:1px solid var(--hair)}
.module .n{font-family:ui-monospace,"Cascadia Mono",Menlo,Consolas,monospace;font-size:.72rem;letter-spacing:.14em;color:var(--muted);font-weight:600;padding-top:5px;grid-row:1/3}
.module h3{font-size:1.22rem;font-weight:600;line-height:1.1}
.module p{color:var(--ink-soft);line-height:1.5;font-size:1rem;max-width:56ch}
@media(max-width:560px){.module{grid-template-columns:38px 1fr}}

/* monospace utility (CAGE codes, addresses) */
.mono{font-family:ui-monospace,"Cascadia Mono",Menlo,Consolas,monospace}

/* 404 - lost comms */
.lost{min-height:100vh;display:flex;flex-direction:column;justify-content:center;color:var(--cloud);overflow:hidden;
  padding:140px var(--edge) 80px;position:relative;
  background:linear-gradient(165deg,#1a1b22 0%,#3b3a4c 55%,#56546a 100%)}
.lost .eyebrow{color:rgba(255,255,255,.55);font-family:ui-monospace,Menlo,Consolas,monospace}
.lost h1{font-size:clamp(2.6rem,8vw,7rem);font-weight:600;letter-spacing:-.03em;line-height:.95;margin-top:18px}
.lost h1 .x{color:#ff3b30}
.lost .sub{margin-top:24px;max-width:46ch;color:rgba(255,255,255,.78);font-size:var(--t-lead);line-height:1.35}
.lost .sweep{margin-top:40px;height:3px;width:min(520px,80vw);background:rgba(255,255,255,.14);overflow:hidden;position:relative}
.lost .sweep::after{content:"";position:absolute;top:0;bottom:0;width:40%;background:#ff3b30;
  animation:sweep 1.8s var(--ease) infinite}
@keyframes sweep{0%{left:-40%}100%{left:100%}}
.lost .telem{margin-top:18px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.74rem;letter-spacing:.16em;color:rgba(255,255,255,.5)}
.lost .acts{margin-top:44px;display:flex;gap:16px;flex-wrap:wrap}
.lost .btn{color:var(--cloud)}
.lost .code{position:absolute;right:var(--edge);top:120px;font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:clamp(6rem,22vw,20rem);font-weight:700;color:rgba(255,255,255,.05);letter-spacing:-.04em;line-height:.8;pointer-events:none}
@media(max-width:760px){.lost .code{display:none}}

/* combat statement band */
.statement{padding:clamp(96px,16vh,200px) 0;color:var(--cloud);
  background:linear-gradient(160deg,#1a1b22 0%,#3b3a4c 60%,#56546a 100%)}
.statement .eyebrow{color:rgba(255,255,255,.55)}
.statement h2{font-size:clamp(2.2rem,5.2vw,4.4rem);font-weight:600;letter-spacing:-.03em;line-height:1.02;max-width:20ch;margin-top:16px}
.statement p{margin-top:26px;max-width:50ch;color:rgba(255,255,255,.82);font-size:var(--t-lead);line-height:1.35}

/* redacted field-status line */
.deploy{margin-top:20px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.8rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted)}
.deploy .redact{vertical-align:baseline;padding:0 8px;margin-left:2px}

/* hero telemetry HUD */
.hud{position:absolute;inset:0;z-index:3;pointer-events:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.hud-corner{position:absolute;width:22px;height:22px;border:1.5px solid rgba(255,255,255,.5)}
.hud-corner.tl{top:96px;left:var(--edge);border-right:0;border-bottom:0}
.hud-corner.tr{top:96px;right:var(--edge);border-left:0;border-bottom:0}
.hud-corner.bl{bottom:64px;left:var(--edge);border-right:0;border-top:0}
.hud-corner.br{bottom:64px;right:var(--edge);border-left:0;border-top:0}
.hud-readout{position:absolute;right:var(--edge);bottom:64px;display:flex;flex-direction:column;gap:5px;
  font-size:.66rem;letter-spacing:.12em;color:rgba(255,255,255,.78);text-align:right}
.hud-readout b{color:rgba(255,255,255,.45);font-weight:600;margin-right:8px}
.hud-readout .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#7be0a4;margin-right:7px;box-shadow:0 0 8px #7be0a4;animation:pulse 2.4s var(--ease) infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.hud-reticle{position:absolute;width:46px;height:46px;margin:-23px 0 0 -23px;left:-100px;top:-100px;opacity:0;transition:opacity .3s var(--ease)}
.hud-reticle::before,.hud-reticle::after{content:"";position:absolute;background:rgba(255,255,255,.7)}
.hud-reticle::before{left:50%;top:0;bottom:0;width:1px;transform:translateX(-.5px)}
.hud-reticle::after{top:50%;left:0;right:0;height:1px;transform:translateY(-.5px)}
.hud-reticle i{position:absolute;inset:0;border:1px solid rgba(255,255,255,.5);border-radius:50%}
.hero:hover .hud-reticle{opacity:.8}
@media(max-width:760px){.hud-readout{display:none}.hud-corner{display:none}}

/* grain on atmospheric surfaces */
.grain::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("assets/grain.png")}
.monument{position:relative}

/* fleet cards: whole card is a clickable link via overlay anchor */
.fleet .u{position:relative}
.fleet .u-lnk{position:absolute;inset:0;z-index:2}
/* GRID coordinate link (footer / HUD) */
.grid-link{color:inherit;cursor:pointer;border-bottom:1px dashed rgba(255,255,255,.28);transition:border-color .2s var(--ease)}
.grid-link:hover{border-bottom-color:rgba(255,255,255,.7)}
/* reticle corner-brackets on systems imagery (hover) */
.fleet .um{position:relative}
.fleet .um::before,.fleet .um::after{content:"";position:absolute;width:16px;height:16px;opacity:0;transition:opacity .3s var(--ease),transform .4s var(--ease);border:1.5px solid var(--jetstream)}
.fleet .um::before{top:6px;left:6px;border-right:0;border-bottom:0;transform:translate(6px,6px)}
.fleet .um::after{bottom:6px;right:6px;border-left:0;border-top:0;transform:translate(-6px,-6px)}
.fleet .u:hover .um::before,.fleet .u:hover .um::after{opacity:1;transform:translate(0,0)}

/* magnetic CTA inner span */
.btn>span.mag,.cta>span.mag{display:inline-block;will-change:transform}

/* schedule-a-briefing demo band */
.demo{position:relative;overflow:hidden;color:var(--cloud);padding:clamp(110px,18vh,220px) 0;
  background:linear-gradient(160deg,#1a1b22 0%,#3b3a4c 55%,#56546a 100%)}
.demo .eyebrow{color:rgba(255,255,255,.6)}
.demo h2{font-size:clamp(2.6rem,6vw,5.4rem);font-weight:600;letter-spacing:-.03em;line-height:.98;max-width:18ch;margin-top:14px}
.demo p{margin-top:26px;max-width:48ch;color:rgba(255,255,255,.82);font-size:var(--t-lead);line-height:1.35}
.demo .acts{display:flex;gap:16px;flex-wrap:wrap;margin-top:42px}
.demo .btn{color:var(--cloud)}
.demo .btn-ghost{color:rgba(255,255,255,.9)}

/* monumental ISENGARD wordmark above footer */
.bigmark{background:var(--onyx);overflow:hidden;padding:clamp(40px,7vh,90px) 0 clamp(24px,4vh,56px)}
.bigmark .word{display:block;width:100%;text-align:center;color:#fff;font-weight:700;
  font-size:clamp(4rem,21vw,20rem);letter-spacing:-.04em;line-height:1;white-space:nowrap}
.foot{padding-top:clamp(56px,8vh,90px)}

/* easter-egg HUD flash overlay */
.egg{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .25s var(--ease)}
.egg.on{opacity:1}
.egg::before,.egg::after{content:"";position:absolute;background:rgba(0,20,137,.9)}
.egg::before{left:50%;top:0;bottom:0;width:1px}
.egg::after{top:50%;left:0;right:0;height:1px}
.egg .ring{width:240px;height:240px;border:1.5px solid var(--jetstream);border-radius:50%;position:relative;animation:lock .5s var(--ease)}
.egg .ring::after{content:attr(data-label);position:absolute;top:calc(100% + 16px);left:50%;transform:translateX(-50%);
  white-space:nowrap;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.78rem;letter-spacing:.32em;color:var(--jetstream);font-weight:600}
@keyframes lock{from{transform:scale(1.6);opacity:0}to{transform:scale(1);opacity:1}}
.brand-star.spin{animation:spin .9s var(--ease)}
@keyframes spin{to{transform:rotate(360deg)}}

/* capability triad (system / propulsion / careers cards) - small component imagery */
.triad{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px)}
.triad .item{border-top:1px solid var(--hair);padding-top:24px}
.triad .ph{height:88px;display:flex;align-items:center;justify-content:flex-start;margin-bottom:18px}
.triad .ph img{max-height:88px;max-width:42%;width:auto;object-fit:contain;object-position:left center}
.triad .tag{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:10px}
.triad h3{font-size:1.25rem;font-weight:600}
.triad p{margin-top:10px;color:var(--ink-soft);font-size:1rem;line-height:1.45}
@media(max-width:900px){.triad{grid-template-columns:1fr}.triad .ph img{max-width:26%}}

/* Heart-style aircraft rows (front / side on white, word + one line) */
.hrow{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:clamp(32px,6vw,90px)}
.hrow + .hrow{margin-top:clamp(48px,8vh,110px)}
.hrow .him{display:flex;align-items:center;justify-content:center;min-height:clamp(220px,30vw,400px)}
.hrow .him img{max-width:100%;max-height:400px;width:auto;object-fit:contain;clip-path:inset(0 0 4px 0)}
img[alt*="XQ 770"]{clip-path:inset(0 0 4px 0)}
.hrow .word{font-size:clamp(2.4rem,5.5vw,4.6rem);font-weight:600;letter-spacing:-.03em;line-height:.98}
.hrow .eyebrow{margin-bottom:10px}
.hrow p{margin-top:20px;color:var(--ink-soft);font-size:var(--t-lead);max-width:40ch;line-height:1.32}
@media(max-width:900px){.hrow{grid-template-columns:1fr;gap:24px}.hrow .him{min-height:0}}

/* turbine image gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(16px,2vw,28px);margin-top:clamp(32px,5vh,56px)}
.gallery figure{margin:0;border:1px solid var(--hair);background:#f6f7f8;display:flex;flex-direction:column}
.gallery .gi{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;padding:18px;overflow:hidden}
.gallery .gi img{max-width:100%;max-height:100%;width:auto;object-fit:contain}
.gallery figcaption{border-top:1px solid var(--hair);padding:12px 16px;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
@media(max-width:760px){.gallery{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.gallery{grid-template-columns:1fr}}

/* redacted team members (OPSEC - all but the CEO) */
.member.redacted .ph{position:relative;background:#15151a}
.member.redacted .ph img{filter:grayscale(1) brightness(.04) contrast(.5) blur(9px);transform:scale(1.1)}
.member.redacted .ph::after{content:"CLASSIFIED";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.7rem;letter-spacing:.3em;color:rgba(255,255,255,.55)}
.member.redacted h3 .rd{display:inline-block;background:var(--onyx);color:transparent;padding:0 8px;-webkit-user-select:none;user-select:none}

/* footer newsletter */
.newsletter{max-width:var(--maxw);margin:48px auto 0;padding-top:40px;border-top:1px solid rgba(255,255,255,.16);
  display:flex;justify-content:space-between;gap:28px 40px;flex-wrap:wrap;align-items:center}
.newsletter h4{color:#fff;font-size:1.1rem;margin-bottom:6px}
.newsletter p{color:rgba(255,255,255,.58);font-size:.92rem;max-width:40ch}
.nl-form{display:flex;align-items:stretch;min-width:min(420px,92vw)}
.nl-input{flex:1;background:transparent;border:1px solid rgba(255,255,255,.25);border-right:0;color:#fff;
  padding:13px 16px;font:inherit;font-size:.95rem}
.nl-input::placeholder{color:rgba(255,255,255,.4)}
.nl-input:focus{outline:none;border-color:rgba(255,255,255,.55)}
.nl-btn{background:transparent;border:1px solid rgba(255,255,255,.25);color:#fff;padding:0 24px;cursor:pointer;
  font-family:ui-monospace,Menlo,Consolas,monospace;text-transform:uppercase;letter-spacing:1.5px;font-size:.76rem;
  transition:background .14s ease,border-color .14s ease}
.nl-btn:hover{background:radial-gradient(125% 150% at 50% 0%,#c5281b,#7a0a05);border-color:transparent;color:#fff}
.nl-note{color:#7be0a4;font-size:.82rem;margin-top:10px;display:none}
.nl-note.on{display:block}

/* low-visibility allied flags */
.foot-flags{max-width:var(--maxw);margin:30px auto 0;display:flex;gap:14px;align-items:center;opacity:.38}
.foot-flags img{width:68px;height:auto;display:block}

/* inline video band */
.vidband{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#0c0e12}
.vidband video,.vidband img{width:100%;height:100%;object-fit:cover;display:block}
.vidband .vb-cap{position:absolute;left:var(--edge);bottom:24px;z-index:2;color:#fff;
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  text-shadow:0 1px 14px rgba(0,0,0,.6)}
.vidband::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,0) 30%,rgba(0,0,0,0) 70%,rgba(0,0,0,.45))}
/* static image band — same skin, image height determines aspect */
.imgband{position:relative;width:100%;overflow:hidden;background:#0c0e12;max-height:56vh;font-size:0;line-height:0;display:block;clip-path:inset(0 0 2px 0)}
.imgband img{width:100%;height:100%;object-fit:cover;display:block;max-height:56vh}
.imgband .vb-cap{position:absolute;left:var(--edge);bottom:24px;z-index:2;color:#fff;
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  text-shadow:0 1px 14px rgba(0,0,0,.6)}
.imgband::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,0) 30%,rgba(0,0,0,0) 70%,rgba(0,0,0,.35) 92%,rgba(0,0,0,0) 100%)}

/* footer order: newsletter (top) -> grid -> base -> flag (bottom) */
.foot{display:flex;flex-direction:column}
.newsletter{order:-2;margin:0 auto;padding:0 0 40px;border-top:0;border-bottom:1px solid rgba(255,255,255,.16)}
.foot-grid{order:-1;margin-top:44px}
.foot-base{order:1;margin-top:48px}
.foot-flags{order:2;justify-content:center;margin:26px auto 0;opacity:.29}
.foot-flags img{width:52px}

/* reveal */
.reveal{opacity:1}
html.js .reveal.in{animation:rise .85s var(--ease) both;animation-delay:var(--d,0ms)}
@keyframes rise{from{opacity:0;transform:translateY(24px);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}

/* responsive */
@media(max-width:1000px){
  .links{position:fixed;inset:0 0 0 auto;width:min(86vw,380px);height:100dvh;background:var(--onyx);flex-direction:column;
    align-items:flex-start;justify-content:flex-start;gap:22px;padding:96px 40px 48px;transform:translateX(101%);transition:transform .42s var(--ease);z-index:98}
  body.menu-open .links{transform:translateX(0)}
  .links a,.nav.solid .links a{color:#fff;font-size:1.3rem;text-shadow:none}
  .links a::after{display:none}
  .has-drop{width:100%}
  .dropdown a{white-space:normal}
  .lang-pick{display:none}
  .burger{display:block;z-index:100}
  body.menu-open .burger{color:#fff}
  .feature,.foot-grid{grid-template-columns:1fr}
  .feature--rev .fig{order:0}
}
@media(max-width:560px){ .foot-grid{grid-template-columns:1fr 1fr} .feature .stat{gap:32px} }
@media (prefers-reduced-motion:reduce){ *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important} }

/* ============ MOBILE READINESS ============ */
html{overflow-x:clip}
@media(max-width:1000px){
  /* monument: static (no long sticky-scroll runway on touch) */
  .monument-track{height:auto}
  .monument-sticky{position:static;height:auto;overflow:visible;padding:clamp(80px,12vh,120px) 0 0}
  .monument .plane{position:static!important;margin:28px auto 0;left:auto;bottom:auto;width:min(80vw,440px);transform:none!important}
  /* newsletter stacks, form full width */
  .newsletter{flex-direction:column;align-items:flex-start;gap:16px}
  .nl-form{min-width:0;width:100%}
  /* shorter video bands on narrow screens */
  .vidband{aspect-ratio:4/3}
}
@media(max-width:560px){
  :root{--edge:22px}
  .hero h1{font-size:clamp(2.1rem,10.5vw,3.4rem)}
  .hero .lead{font-size:1.05rem}
  .monument .word{font-size:clamp(2.6rem,14vw,4.2rem);line-height:.9}
  .monument .eyebrow{font-size:.78rem;letter-spacing:.14em}
  .feature .word,.hrow .word{font-size:clamp(1.9rem,8.5vw,2.8rem)}
  .statement h2,.demo h2,.closing h2,.lost h1{font-size:clamp(1.9rem,8vw,2.8rem)}
  .s-head h2,.contact h1,.phero h1{font-size:clamp(1.7rem,7.2vw,2.4rem)}
  .bigmark .word{font-size:20vw}
  .nl-form{flex-wrap:wrap}
  .nl-input{border-right:1px solid rgba(255,255,255,.25);min-width:0}
  .nl-btn{margin-top:10px;width:100%;padding:14px}
  .sheet .row{gap:4px 14px}
  .sheet .row .i{font-size:.84rem}
  .stat{gap:22px 30px}
  .office-grid{grid-template-columns:1fr!important}
  .hud-readout,.hud-corner{display:none}
}

/* combat footage band (portrait clip, onyx, corner-bracketed) */
.combat{background:var(--onyx);color:var(--cloud);padding:clamp(70px,11vh,130px) 0}
.combat .c-head{max-width:60ch}
.combat .c-head .eyebrow{color:var(--stratosphere)}
.combat h2{color:var(--cloud);font-size:var(--t-h2);font-weight:600;margin-top:10px;letter-spacing:-.02em}
.combat .c-sub{color:rgba(255,255,255,.7);margin-top:16px;max-width:46ch;font-size:var(--t-lead);line-height:1.3}
.combat-stage{display:flex;justify-content:center;margin-top:clamp(40px,6vh,68px)}
.combat-frame{position:relative;display:inline-block}
.combat-frame video{display:block;max-height:74vh;max-width:100%;width:auto;background:#000;
  border:1px solid rgba(255,255,255,.14)}
.combat-frame::before,.combat-frame::after{content:"";position:absolute;width:24px;height:24px;pointer-events:none;z-index:2}
.combat-frame::before{top:-9px;left:-9px;border-top:2px solid #c5281b;border-left:2px solid #c5281b}
.combat-frame::after{bottom:-9px;right:-9px;border-bottom:2px solid #c5281b;border-right:2px solid #c5281b}
.combat .cap{margin-top:18px;text-align:center;font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.5)}
@media(max-width:560px){ .combat-frame video{max-height:68vh} }

/* TRL 9 emphasis - blood dark red */
.trl9{color:#9c0f08;font-weight:600}

/* 4-up capability triad (mobile-safe) */
.triad.quad{grid-template-columns:repeat(4,1fr)}
@media(max-width:1100px) and (min-width:901px){.triad.quad{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.triad.quad{grid-template-columns:1fr}}

/* compact product-page hero - static, tight, no scroll-roll */
.monument.compact .monument-track{height:auto!important}
.monument.compact .monument-sticky{position:static;height:auto;min-height:0;overflow:visible;
  padding:clamp(122px,16vh,168px) 0 clamp(56px,9vh,116px)}
.monument.compact .plane{position:static!important;transform:none!important;left:auto;right:auto;bottom:auto;
  margin:clamp(20px,3.5vh,48px) auto 0;width:min(54vw,640px)}
.monument.compact .monument-head{position:relative;z-index:2}

/* ---- easter egg visuals ---- */
html.night-vision{filter:sepia(.08) saturate(.2) brightness(.82) contrast(1.2) hue-rotate(92deg)}
html.night-vision *{transition:none!important}
.ua-line.glow [lang=uk]{color:#ffd700!important;text-shadow:0 0 22px rgba(255,215,0,.55)!important;transition:color .7s ease,text-shadow .7s ease!important}
.sat-ov{position:fixed;inset:0;z-index:9999;background:#000;display:flex;align-items:center;justify-content:center;cursor:crosshair}
.sat-ov img{max-width:100%;max-height:100%;object-fit:contain;display:block;filter:sepia(.12) contrast(1.12) brightness(.88) saturate(.65)}
.sat-hud{position:absolute;inset:0;pointer-events:none;border:1px solid rgba(255,255,255,.07)}
.sat-hud::before{content:"SATELLITE IMAGERY // CLASSIFICATION: RESTRICTED";position:absolute;top:18px;left:24px;color:rgba(255,255,255,.5);font:700 .66rem/1.8 monospace;letter-spacing:.12em;white-space:pre}
.sat-hud::after{content:"ESC OR CLICK TO CLOSE";position:absolute;bottom:18px;right:24px;color:rgba(255,255,255,.28);font:.6rem/1 monospace;letter-spacing:.18em}
.brief-ov{position:fixed;inset:0;z-index:9998;background:rgba(0,4,16,.96);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;cursor:pointer}
.brief-ov pre{color:#c5281b;font:.76rem/2 monospace;letter-spacing:.1em;max-width:560px;white-space:pre-wrap;text-align:center}
/* ================================================================
   GOLD SELECTION — molten, intentional, one-line flex
   ================================================================ */
::selection{background:#b8860b;color:#fff}

/* ================================================================
   SKIP LINK — personality for keyboard users
   ================================================================ */
.skip-link{position:absolute;top:-60px;left:16px;z-index:10000;background:var(--ink);color:#fff;padding:8px 16px;border-radius:4px;font-size:.82rem;letter-spacing:.08em;text-decoration:none;transition:top .2s}
.skip-link:focus{top:8px}

/* ================================================================
   SR-ONLY — screen reader utility (wit goes here)
   ================================================================ */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}


/* ================================================================
   GRID OVERLAY — "?" key reveals structure
   ================================================================ */
.grid-ov,.grid-badge{display:none!important}

/* ================================================================
   COOKIE BANNER — honest
   ================================================================ */
.ck-banner{position:fixed;bottom:22px;right:22px;z-index:9994;background:var(--ink);color:var(--cloud);padding:18px 20px;border-radius:6px;max-width:300px;font-size:.8rem;line-height:1.6;box-shadow:0 8px 32px rgba(0,0,0,.55);opacity:0;transform:translateY(14px);transition:opacity .4s .6s,transform .4s .6s;pointer-events:none}
.ck-banner.show{opacity:1;transform:none;pointer-events:auto}
.ck-banner p{margin:0 0 12px;color:rgba(255,255,255,.75)}
.ck-banner strong{color:#fff}
.ck-banner button{background:#fff;color:#000;border:none;padding:7px 16px;border-radius:3px;font-size:.76rem;cursor:pointer;letter-spacing:.06em;font-weight:700;margin-right:8px}
.ck-banner button.ck-dismiss{background:transparent;color:rgba(255,255,255,.35);font-weight:400;padding:7px 8px}
.ck-banner button:hover{opacity:.85}


/* ================================================================
   RAGDOLL — gravity toggle (type "gravity")
   ================================================================ */
@keyframes ragdoll-fall{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}100%{transform:translateY(110vh) rotate(var(--r,10deg)) scale(.7);opacity:0}}
body.ragdoll .reveal.in{animation:ragdoll-fall .85s cubic-bezier(.55,0,1,.75) var(--d,0ms) forwards!important}
body.ragdoll .nav{animation:ragdoll-fall 1s cubic-bezier(.55,0,1,.75) 30ms forwards!important}
body.ragdoll .newsbar{animation:ragdoll-fall .7s cubic-bezier(.55,0,1,.75) 0ms forwards!important}
body.ragdoll::after{content:'GRAVITY ENABLED';position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);color:rgba(255,255,255,.25);font:700 1.2rem/1 ui-monospace,monospace;letter-spacing:.4em;pointer-events:none;z-index:9999}

/* ================================================================
   1995 MODE — low-bandwidth strip
   ================================================================ */
body.mode-1995{font-family:'Times New Roman',Times,serif!important;background:#fff!important;color:#000!important}
body.mode-1995 *{font-family:inherit!important;color:#000!important;background:transparent!important;box-shadow:none!important;text-shadow:none!important;filter:none!important;animation:none!important;transition:none!important}
body.mode-1995 video,body.mode-1995 .newsbar,body.mode-1995 .scroll-prog,body.mode-1995 .palantir-orb{display:none!important}
body.mode-1995 .nav{background:#000!important}
body.mode-1995 .nav *{color:#fff!important;font-family:monospace!important}
body.mode-1995 .hero{background:#fff!important}
body.mode-1995::before{content:'ISENGARD INDUSTRIES // 1995 MODE // AS THE MACHINE INTENDED';display:block;background:#000;color:#0f0;font-family:monospace;font-size:.75rem;padding:6px 16px;letter-spacing:.12em;text-align:center;position:sticky;top:0;z-index:99999}
body.mode-1995 a{color:#00e!important;text-decoration:underline!important}
body.mode-1995 a:visited{color:#800080!important}

/* ================================================================
   NOTED — quiet acknowledgment (appears bottom-center, fades)
   ================================================================ */
.noted-line{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);color:rgba(0,0,0,.35);font:.7rem/1 ui-monospace,Menlo,monospace;letter-spacing:.28em;pointer-events:none;opacity:0;transition:opacity .6s ease;z-index:9989}
.noted-line.show{opacity:1}

/* ================================================================
   PRINT STYLESHEET — actually designed
   ================================================================ */
@media print{
  .nav,.newsbar,.footer-actions,.scroll-prog,.lang-pick,.burger,.ck-banner,
  .palantir-orb,.kpal,.debug-ov,.share-tip,.grid-ov,.grid-badge{display:none!important}
  video{display:none!important}
  body{background:#fff!important;color:#000!important;font-size:11pt;line-height:1.55;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif}
  h1,h2,h3{color:#000!important;page-break-after:avoid;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif}
  a{color:#000!important;text-decoration:underline}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:8pt;color:#666}
  .hero{page-break-after:always}
  img{max-width:100%!important;page-break-inside:avoid}
  @page{margin:2cm 2.5cm}
  footer::after,body::after{content:'Isengard Industries // isengardindustries.com // contact@isengardindustries.com';display:block;font-size:8pt;margin-top:1.5cm;color:#666;border-top:1px solid #ccc;padding-top:.5cm;font-family:monospace}
}

/* ================================================================
   PREFERS-REDUCED-DATA — for the engineers who know this exists
   ================================================================ */
@media (prefers-reduced-data:reduce){
  /* You found the data-saver path. We respect this.
     You have either a limited connection or extremely good taste in media queries. */
  video,#herovid,.hero-bg-video{display:none!important}
  .hero{background:var(--ink)!important}
  [loading="lazy"]{content-visibility:auto}
  .imgband{display:none}
}

/* ================================================================
   PREFERS-CONTRAST — we honor the obscure ones
   ================================================================ */
@media (prefers-contrast:more){
  :root{--muted:#444;--ink-soft:#333;--hair:rgba(0,0,0,.25)}
  body{font-weight:500}
  a{text-decoration:underline;text-underline-offset:3px}
  .spec-val,.tag,.role{font-weight:700}
}

/* ================================================================
   NAV ADAPTIVE COLOR — readable on any background
   .nav.over-light = nav sits over a light section → dark text
   Default (no class / .over-dark) = dark bg → white text (existing behavior)
   ================================================================ */
.nav.over-light:not(.solid) .brand,
.nav.over-light:not(.solid) .links a{color:var(--onyx)!important;text-shadow:none!important}
.nav.over-light:not(.solid) .ghost{color:var(--onyx)!important;border-color:rgba(0,0,0,.25)!important}
.nav.over-light:not(.solid) .burger{color:var(--onyx)!important}
.nav.over-light:not(.solid) .burger span{background:var(--onyx)!important}
.nav.over-light:not(.solid) .brand-star{filter:none!important}
.nav.over-light:not(.solid) .lang-btn img{box-shadow:0 0 0 1px rgba(0,0,0,.18)!important}
/* Smooth transition so color doesn't snap harshly */
.nav .brand,.nav .links a,.nav .ghost,.nav .burger{transition:color .25s ease,text-shadow .25s ease}
.nav .brand-star{transition:filter .25s ease}

/* ================================================================
   BACK TO TOP — appears after 2.5 viewport heights of scroll
   ================================================================ */
/* ================================================================
   BACK TO TOP — appears after 2.5 viewport heights of scroll
   ================================================================ */
.btt{
  position:fixed;bottom:28px;right:var(--edge);z-index:9980;
  width:38px;height:38px;border:1px solid rgba(0,0,0,.18);
  background:var(--cloud);color:var(--onyx);cursor:pointer;
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.8rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .35s var(--ease),background .14s ease,color .14s ease,border-color .14s ease;
}
.btt.vis{opacity:1;pointer-events:auto}
.btt:hover{background:var(--onyx);color:var(--cloud);border-color:var(--onyx)}
html.site-dark[data-theme="dark"] .btt{border-color:rgba(255,255,255,.2)}
html.site-dark[data-theme="dark"] .btt:hover{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.4)}

/* ================================================================
   COMMAND PALETTE — ⌘K / Ctrl+K
   ================================================================ */
.pal-overlay{
  position:fixed;inset:0;z-index:9985;
  background:rgba(8,9,18,.6);backdrop-filter:saturate(120%) blur(10px);
  display:flex;align-items:flex-start;justify-content:center;
  padding:14vh 20px 20px;
  opacity:0;visibility:hidden;
  transition:opacity .18s var(--ease),visibility .18s;
}
.pal-overlay.open{opacity:1;visibility:visible}
.pal{
  width:100%;max-width:540px;
  background:#0b0b0d;border:1px solid rgba(255,255,255,.13);
  box-shadow:0 32px 80px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.04);
  display:flex;flex-direction:column;max-height:62vh;overflow:hidden;
  animation:pal-in .16s var(--ease);
}
@keyframes pal-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
.pal-head{border-bottom:1px solid rgba(255,255,255,.09);flex-shrink:0}
.pal-input{
  width:100%;background:transparent;border:none;outline:none;
  color:rgba(255,255,255,.9);padding:16px 22px;
  font-family:var(--font-text);font-size:1rem;line-height:1.4;
  caret-color:#b8860b;
}
.pal-input::placeholder{color:rgba(255,255,255,.3)}
.pal-list{overflow-y:auto;flex:1;padding:6px 0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}
.pal-list::-webkit-scrollbar{width:4px}
.pal-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:2px}
.pal-cat{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:.58rem;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(255,255,255,.3);
  padding:10px 22px 5px;
  border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:2px;
}
.pal-item{
  display:block;width:100%;background:none;border:none;
  text-align:left;padding:10px 22px;cursor:pointer;
  font-family:var(--font-text);font-size:.88rem;
  color:rgba(255,255,255,.68);
  transition:background .08s ease,color .08s ease;
}
.pal-item:hover,.pal-item.active{background:rgba(255,255,255,.07);color:#fff}
.pal-empty{
  padding:28px 22px;text-align:center;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:.72rem;letter-spacing:.1em;color:rgba(255,255,255,.3);
}
.pal-foot{
  flex-shrink:0;border-top:1px solid rgba(255,255,255,.08);
  padding:9px 22px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.28);
}

/* ================================================================
   EGG COUNTER — bottom-center badge, fades in on discovery
   ================================================================ */
.egg-count{
  position:fixed;bottom:26px;left:50%;transform:translateX(-50%);
  z-index:9982;
  background:#0a0a0a;border:1px solid rgba(184,134,11,.4);
  padding:7px 18px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;
  color:#b8860b;
  opacity:0;pointer-events:none;
  transition:opacity .4s var(--ease);
  white-space:nowrap;
}
.egg-count.show{opacity:1}

/* ================================================================
   FURNACE HOT — HUD clock glows forge gold after 2 min on site
   ================================================================ */
.furnace-hot{
  color:#b8860b!important;
  text-shadow:0 0 10px rgba(184,134,11,.65),0 0 3px rgba(184,134,11,.45)!important;
  animation:furnace-pulse 3s var(--ease) infinite;
}
@keyframes furnace-pulse{
  0%,100%{text-shadow:0 0 10px rgba(184,134,11,.65),0 0 3px rgba(184,134,11,.45)}
  50%{text-shadow:0 0 18px rgba(184,134,11,.9),0 0 7px rgba(184,134,11,.65)}
}

/* ================================================================
   DARK MODE — DISABLED. The host preview app sets data-theme="dark"
   when the user's editor is in dark mode, which re-tokenized the whole
   site (onyx→near-white etc). The site ships ONE light theme; the dark
   variant is opt-in via html.site-dark only.
   ================================================================ */

html.site-dark[data-theme="dark"] {
  --cloud: #0d0d11;
  --ink: #dddde2;
  --ink-soft: #8a8a96;
  --muted: #565660;
  --hair: rgba(255,255,255,.1);
  --jetstream: #4060f8;
  --onyx: #ebebf0;
  --stratosphere: #9a97b0;
  --strato-deep: #7a778e;
}

/* Body crossfade — smooth transition when toggling */
body {
  transition: background-color .35s ease, color .35s ease;
}

/* Solid nav: dark glass in dark mode */

html.site-dark[data-theme="dark"] .nav.solid {
  background: rgba(13,13,17,.88) !important;
}

/* Non-solid nav stays white text (it's over the always-light hero sky) */

html.site-dark[data-theme="dark"] .nav:not(.solid) .brand,
html.site-dark[data-theme="dark"] .nav:not(.solid) .links a { color: #ffffff !important; }

/* Solid nav text uses --onyx (light in dark mode) */

html.site-dark[data-theme="dark"] .nav.solid .brand,
html.site-dark[data-theme="dark"] .nav.solid .links a { color: var(--onyx); text-shadow: none; }

/* Command palette dark mode */

html.site-dark[data-theme="dark"] .pal { background: #18181f !important; border-color: rgba(255,255,255,.1) !important; }
html.site-dark[data-theme="dark"] .pal-input { background: #18181f !important; color: var(--ink) !important; }
html.site-dark[data-theme="dark"] .pal-item { color: var(--ink-soft) !important; }
html.site-dark[data-theme="dark"] .pal-item.active, html.site-dark[data-theme="dark"] .pal-item:hover { background: rgba(255,255,255,.06) !important; color: var(--ink) !important; }
html.site-dark[data-theme="dark"] .pal-cat { color: var(--muted) !important; border-bottom-color: rgba(255,255,255,.08) !important; }

/* ================================================================
   DARK MODE — image inversion (DISABLED)
   The page ships one light theme; the host app may set
   data-theme="dark" on <html>, which inverted every image.
   Scoped to an opt-in class the site never sets.
   ================================================================ */
html.site-dark[data-theme="dark"] img {
  filter: invert(1) hue-rotate(180deg);
}
/* Exclude real photos, portrait shots, flag icons, location images */
[data-theme="dark"] .fig-photo img,
[data-theme="dark"] .contact-photo img,
[data-theme="dark"] .member .ph img,
[data-theme="dark"] .lang-btn img,
[data-theme="dark"] .brand-star,
[data-theme="dark"] .backer img,
[data-theme="dark"] .loc-flag { filter: none; }