/* ============================================================
   GATEKEEPER — defence-industrial art direction
   ============================================================ */
:root{
  /* type scale */
  --text-xs:clamp(0.75rem,0.72rem + 0.12vw,0.8125rem);
  --text-sm:clamp(0.875rem,0.85rem + 0.15vw,0.9375rem);
  --text-base:clamp(1rem,0.97rem + 0.16vw,1.0625rem);
  --text-lg:clamp(1.125rem,1.05rem + 0.5vw,1.375rem);
  --text-xl:clamp(1.5rem,1.25rem + 1.1vw,2.125rem);
  --text-2xl:clamp(1.875rem,1.35rem + 2.1vw,3rem);
  --text-3xl:clamp(2.25rem,1.4rem + 3.6vw,4.25rem);

  /* spacing */
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;
  --space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;
  --space-20:5rem;--space-24:6rem;--space-32:8rem;

  /* surfaces */
  --color-bg:#0A0D10;
  --color-surface:#0F1418;
  --color-surface-2:#131A1F;
  --color-hairline:#1E262C;
  --color-hairline-2:#2A343B;

  /* text */
  --color-text:#E4E2DD;
  --color-text-muted:#9AA1A5;
  --color-text-faint:#7E878C;

  /* accents */
  --color-accent:#3FD0D8;
  --color-accent-dim:#2A8E96;
  --color-amber:#D9A441;

  --font-display:'Space Grotesk','Helvetica Neue',Arial,sans-serif;
  --font-body:'Inter','Helvetica Neue',Arial,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  --wrap:1200px;
  --hdr-h:60px;
  --tr:180ms cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr-h) + 1rem)}
body{min-height:100dvh;background:var(--color-bg);color:var(--color-text);
  font-family:var(--font-body);font-size:var(--text-base);line-height:1.65;
  overflow-x:hidden}
img,picture,svg,canvas{display:block;max-width:100%;height:auto}
ul[role=list],ol[role=list]{list-style:none}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.12;font-weight:500;
  letter-spacing:-.02em;text-wrap:balance;overflow-wrap:break-word}
@media (max-width:700px){h1,h2,h3{hyphens:auto;-webkit-hyphens:auto}}
p{text-wrap:pretty}
table{border-collapse:collapse;width:100%}
button{cursor:pointer;background:none;border:none;color:inherit;font:inherit}
a,button{transition:color var(--tr),background var(--tr),border-color var(--tr),opacity var(--tr)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}
::selection{background:rgba(63,208,216,.25)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--color-accent);
  color:#04191B;padding:.6rem 1rem;font-family:var(--font-mono);font-size:var(--text-xs)}
.skip:focus{left:0}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2.5rem)}
.mono{font-family:var(--font-mono);letter-spacing:.06em;font-size:var(--text-xs);
  text-transform:uppercase;color:var(--color-text-faint)}
.rule{border:0;border-top:1px solid var(--color-hairline);margin-block:var(--space-6)}

.eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.16em;
  text-transform:uppercase;color:var(--color-text-muted);display:flex;align-items:center;
  gap:.6rem;flex-wrap:wrap}
.eyebrow .num{color:var(--color-accent);position:relative;padding-right:.7rem}
.eyebrow .num::after{content:"";position:absolute;right:0;top:50%;width:.35rem;height:1px;
  background:var(--color-hairline-2)}
.eyebrow--sm{letter-spacing:.14em;color:var(--color-accent-dim)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;
  text-transform:uppercase;text-decoration:none;padding:.7rem 1.15rem;border:1px solid var(--color-hairline-2);
  color:var(--color-text);white-space:nowrap}
.btn--accent{border-color:var(--color-accent);color:var(--color-accent)}
.btn--accent:hover{background:var(--color-accent);color:#04191B}
.btn--ghost:hover{border-color:var(--color-text-muted);color:#fff}
.btn--lg{padding:.95rem 1.6rem;font-size:var(--text-sm);letter-spacing:.1em}
.btn--mail{text-transform:none;letter-spacing:.04em}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:100;background:rgba(10,13,16,.86);
  border-bottom:1px solid var(--color-hairline);backdrop-filter:blur(10px)}
.hdr__inner{max-width:var(--wrap);margin-inline:auto;height:var(--hdr-h);
  padding-inline:clamp(1.25rem,4vw,2.5rem);display:flex;align-items:center;gap:var(--space-6)}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--color-text);flex:0 0 auto}
.brand__mark{color:var(--color-accent);flex:0 0 auto}
.brand__wordmark{font-family:var(--font-display);font-weight:600;letter-spacing:.16em;
  font-size:.9375rem}
.nav{display:flex;gap:clamp(.7rem,1.4vw,1.35rem);margin-left:auto;align-items:center}
.nav a{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;
  text-transform:uppercase;color:var(--color-text-muted);text-decoration:none;
  padding-bottom:2px;border-bottom:1px solid transparent}
.nav a:hover,.nav a.is-active{color:var(--color-text);border-bottom-color:var(--color-accent)}
.hdr__cta{flex:0 0 auto;padding:.5rem .95rem}
.burger{display:none;flex-direction:column;gap:4px;padding:.5rem;margin-left:auto}
.burger span{display:block;width:20px;height:1px;background:var(--color-text)}
.mnav{display:none;flex-direction:column;border-top:1px solid var(--color-hairline);
  background:var(--color-surface)}
.mnav a{padding:.85rem clamp(1.25rem,4vw,2.5rem);font-family:var(--font-mono);
  font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;
  color:var(--color-text-muted);text-decoration:none;border-bottom:1px solid var(--color-hairline)}
.mnav a:hover{color:var(--color-accent)}
.mnav[hidden]{display:none}

/* ---------- hero ---------- */
.hero{position:relative;min-height:min(94svh,900px);display:flex;align-items:flex-end;
  overflow:hidden;border-bottom:1px solid var(--color-hairline)}
.hero__bg{position:absolute;inset:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;
  filter:saturate(.58) contrast(1.04) brightness(.82)}
.hero__scrim{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,13,16,.9) 0%,rgba(10,13,16,.55) 28%,rgba(10,13,16,.82) 62%,#0A0D10 100%),
    linear-gradient(90deg,rgba(10,13,16,.92) 0%,rgba(10,13,16,.35) 62%,rgba(10,13,16,.6) 100%)}
.hero__grid{position:absolute;inset:0;opacity:.5;
  background-image:linear-gradient(to right,rgba(63,208,216,.06) 1px,transparent 1px);
  background-size:calc(100% / 12) 100%}
.hero__inner{position:relative;width:100%;max-width:var(--wrap);margin-inline:auto;
  padding:clamp(6rem,14vh,9rem) clamp(1.25rem,4vw,2.5rem) clamp(5.5rem,11vh,7rem)}
.hero__title{font-size:var(--text-3xl);font-weight:600;letter-spacing:-.03em;max-width:22ch;
  margin-top:var(--space-5)}
.hero__dash{display:block;width:3.5rem;height:1px;background:var(--color-accent);
  margin:var(--space-5) 0;font-size:0;line-height:0;overflow:hidden}
.hero__sub{display:block;font-size:var(--text-xl);font-weight:400;color:var(--color-text);
  letter-spacing:-.015em;max-width:24ch}
.hero__lede{margin-top:var(--space-6);max-width:62ch;color:var(--color-text-muted);
  font-size:var(--text-base)}
.hero__meta{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);margin-top:var(--space-8);
  padding-top:var(--space-4);border-top:1px solid var(--color-hairline)}
.hero__meta span{position:relative;padding-left:.85rem;color:var(--color-text-faint)}
.hero__meta span::before{content:"";position:absolute;left:0;top:.5em;width:4px;height:4px;
  background:var(--color-amber)}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8)}
.scrollcue{position:absolute;right:clamp(1.25rem,4vw,2.5rem);bottom:0;display:flex;
  flex-direction:column;align-items:center;gap:.6rem;z-index:2}
.scrollcue .mono{writing-mode:vertical-rl;letter-spacing:.28em;font-size:.6875rem}
.scrollcue__line{width:1px;height:58px;background:linear-gradient(180deg,var(--color-accent),transparent);
  animation:cue 2.6s ease-in-out infinite}
@keyframes cue{0%,100%{opacity:.25}50%{opacity:1}}

/* ---------- section shell ---------- */
.sec{padding-block:clamp(3.5rem,8vw,7rem);border-bottom:1px solid var(--color-hairline);
  position:relative}
.sec--alt{background:var(--color-surface)}
.sec__head{max-width:74ch;margin-bottom:clamp(2.5rem,5vw,4rem)}
.sec__title{font-size:var(--text-2xl);margin-top:var(--space-4);max-width:34ch}
.sec__lede{margin-top:var(--space-5);color:var(--color-text-muted);max-width:66ch}
.footnote{margin-top:var(--space-8);font-family:var(--font-mono);font-size:var(--text-xs);
  line-height:1.75;color:var(--color-text-faint);max-width:90ch}
.footnote a{color:var(--color-text-muted);text-decoration:none;border-bottom:1px solid var(--color-hairline-2)}
.footnote a:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}

/* ---------- problem grid ---------- */
.probs{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:0;
  border-top:1px solid var(--color-hairline);list-style:none}
.prob{padding:var(--space-8) var(--space-6) var(--space-8) 0;border-bottom:1px solid var(--color-hairline)}
.prob + .prob{border-left:1px solid var(--color-hairline);padding-left:var(--space-6)}
.prob__num{display:block;color:var(--color-accent);margin-bottom:var(--space-4)}
.prob h3{font-size:var(--text-lg);margin-bottom:var(--space-3)}
.prob p{font-size:var(--text-sm);color:var(--color-text-muted);max-width:44ch}

/* ---------- solution duo ---------- */
.duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-6)}
.card{border:1px solid var(--color-hairline);background:var(--color-bg);display:flex;
  flex-direction:column}
.card__fig{margin:0;overflow:hidden;border-bottom:1px solid var(--color-hairline)}
.card__fig img{width:100%;aspect-ratio:16/10;object-fit:cover;
  filter:saturate(.5) contrast(1.06) brightness(.86);transition:filter 400ms ease}
.card:hover .card__fig img{filter:saturate(.72) contrast(1.06) brightness(.95)}
.card__body{padding:clamp(1.5rem,3vw,2.25rem)}
.card__body h3{font-size:var(--text-lg);margin:var(--space-3) 0 var(--space-4)}
.card__body p{font-size:var(--text-sm);color:var(--color-text-muted)}
.ticks{margin-top:var(--space-5);display:grid;gap:var(--space-3);border-top:1px solid var(--color-hairline);
  padding-top:var(--space-5)}
.ticks li{position:relative;padding-left:1.35rem;font-size:var(--text-sm);color:var(--color-text)}
.ticks li::before{content:"";position:absolute;left:0;top:.62em;width:.6rem;height:1px;
  background:var(--color-accent)}
.callout{margin-top:var(--space-8);border-left:2px solid var(--color-amber);
  padding:var(--space-5) var(--space-6);background:var(--color-surface-2)}
.callout__label{color:var(--color-amber);margin-bottom:var(--space-2)}
.callout p:last-child{font-size:var(--text-sm);color:var(--color-text-muted);max-width:80ch}

/* ---------- signal chain ---------- */
.chain{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--color-hairline);
  border-bottom:1px solid var(--color-hairline)}
.chain__step{position:relative;padding:var(--space-8) var(--space-5) var(--space-8) 0}
.chain__step + .chain__step{border-left:1px solid var(--color-hairline);padding-left:var(--space-5)}
.chain__step::after{content:"";position:absolute;left:0;right:0;top:calc(var(--space-8) + 4.05rem);
  height:1px;background:repeating-linear-gradient(90deg,var(--color-hairline-2) 0 6px,transparent 6px 10px)}
.chain__step:first-child::after{left:1.9rem}
.chain__step:last-child::after{right:1.9rem}
.chain__num{color:var(--color-text-faint);margin-bottom:var(--space-4)}
.chain__node{position:relative;z-index:2;width:3.5rem;height:3.5rem;border:1px solid var(--color-hairline-2);
  background:var(--color-bg);display:grid;place-items:center;color:var(--color-text-muted);
  margin-bottom:var(--space-5)}
.chain__node svg{width:1.75rem;height:1.75rem}
.sec--alt .chain__node{background:var(--color-surface)}
.chain__step--key .chain__node{border-color:var(--color-accent);color:var(--color-accent);
  box-shadow:0 0 0 4px rgba(63,208,216,.07)}
.chain__step--key .chain__num{color:var(--color-accent)}
.chain__title{font-size:var(--text-sm);font-family:var(--font-display);font-weight:600;
  letter-spacing:.01em;margin-bottom:var(--space-2);min-height:2.6em}
.chain__step--key .chain__title{color:var(--color-accent)}
.chain__txt{font-size:var(--text-xs);line-height:1.7;color:var(--color-text-muted);max-width:26ch}

/* ---------- use cases ---------- */
.uses{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:var(--space-8) var(--space-6)}
.use{display:flex;flex-direction:column}
.use__fig{margin:0 0 var(--space-5);overflow:hidden;border:1px solid var(--color-hairline)}
.use__fig img{width:100%;aspect-ratio:4/3;object-fit:cover;
  filter:saturate(.5) contrast(1.05) brightness(.85);transition:filter 400ms ease,transform 600ms ease}
.use:hover .use__fig img{filter:saturate(.75) brightness(.95);transform:scale(1.02)}
.use h3{font-size:var(--text-lg);margin:var(--space-3) 0 var(--space-4);min-height:3.2rem;
  padding-top:var(--space-3);border-top:1px solid var(--color-hairline)}
.use p{font-size:var(--text-sm);color:var(--color-text-muted)}

/* ---------- figures ---------- */
.figs{display:grid;grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--color-hairline);border-left:1px solid var(--color-hairline)}
.fig{padding:var(--space-6);border-right:1px solid var(--color-hairline);
  border-bottom:1px solid var(--color-hairline);display:flex;flex-direction:column}
.fig__val{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;
  letter-spacing:-.02em;color:var(--color-accent);font-variant-numeric:tabular-nums}
.fig__unit{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-text);max-width:34ch}
.fig__src{margin-top:auto;padding-top:var(--space-4);
  border-top:1px solid var(--color-hairline);letter-spacing:.08em;text-transform:none;
  font-size:.75rem}

.chartblock{margin-top:var(--space-12);border:1px solid var(--color-hairline);
  padding:clamp(1.25rem,3vw,2rem);background:var(--color-bg)}
.sec--alt .chartblock{background:var(--color-surface-2)}
.chartblock__head h3{font-size:var(--text-lg);max-width:44ch}
.chartblock__note{margin-top:var(--space-3);letter-spacing:.06em;text-transform:none}
.chartblock__canvas{position:relative;height:clamp(260px,38vw,380px);margin-top:var(--space-6)}
.chartblock .footnote{margin-top:var(--space-5)}

.drivers{margin-top:var(--space-12);padding-top:var(--space-8);
  border-top:1px solid var(--color-hairline)}
.drivers h3{font-size:var(--text-lg);margin-bottom:var(--space-5)}
.drivers p{font-size:var(--text-sm);color:var(--color-text-muted);max-width:88ch}
.drivers a{color:var(--color-text);text-decoration:none;border-bottom:1px solid var(--color-hairline-2)}
.drivers a:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}

/* ---------- regulatory table ---------- */
.regtable{overflow-x:auto;border:1px solid var(--color-hairline)}
.regtable table{min-width:820px}
.regtable th{text-align:left;font-family:var(--font-mono);font-size:var(--text-xs);
  letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-faint);
  font-weight:400;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-hairline-2);
  background:var(--color-surface-2)}
.regtable td{padding:var(--space-5);border-bottom:1px solid var(--color-hairline);
  font-size:var(--text-sm);color:var(--color-text-muted);vertical-align:top}
.regtable tbody tr:last-child td{border-bottom:0}
.regtable td:first-child{width:22%;min-width:190px}
.regtable td:nth-child(2){width:40%}
.reg__id{color:var(--color-accent);letter-spacing:.05em;line-height:1.6;text-transform:none;
  font-size:var(--text-xs);display:block}

/* ---------- white spaces ---------- */
.whites{list-style:none;display:grid;gap:0;border-top:1px solid var(--color-hairline)}
.white{display:grid;grid-template-columns:4.5rem 1fr;gap:var(--space-5);
  padding:var(--space-8) 0;border-bottom:1px solid var(--color-hairline)}
.white__num{color:var(--color-accent);font-size:var(--text-sm);letter-spacing:.1em}
.white h3{font-size:var(--text-lg);margin-bottom:var(--space-4);max-width:52ch}
.white p{font-size:var(--text-sm);color:var(--color-text-muted);max-width:80ch}

/* ---------- team ---------- */
.team{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:var(--space-10)}
.team__card{border:1px solid var(--color-hairline);padding:clamp(1.5rem,3vw,2rem);
  background:var(--color-bg);align-self:start}
.team__role{color:var(--color-accent)}
.team__name{font-size:var(--text-xl);margin-top:var(--space-3)}
.team__loc{margin-top:var(--space-2);text-transform:none;letter-spacing:.1em}
.team__facts{display:grid;gap:var(--space-3)}
.team__facts li{position:relative;padding-left:1.35rem;font-size:var(--text-sm)}
.team__facts li::before{content:"";position:absolute;left:0;top:.62em;width:.6rem;height:1px;
  background:var(--color-accent)}
.team__body p{color:var(--color-text-muted);max-width:74ch;font-size:var(--text-sm)}
.honest{margin-top:var(--space-8);border:1px solid var(--color-hairline);
  border-left:2px solid var(--color-amber);padding:var(--space-6)}
.honest__label{color:var(--color-amber);margin-bottom:var(--space-3)}
.honest ul{list-style:none;margin-top:var(--space-4);display:grid;gap:var(--space-4)}
.honest li{font-size:var(--text-sm);color:var(--color-text-muted);position:relative;
  padding-left:1.35rem;max-width:74ch}
.honest li::before{content:"";position:absolute;left:0;top:.62em;width:.6rem;height:1px;
  background:var(--color-hairline-2)}
.honest strong{color:var(--color-text);font-weight:600}

/* ---------- CTA ---------- */
.sec--cta{background:var(--color-surface)}
.cta{border:1px solid var(--color-hairline-2);padding:clamp(1.75rem,5vw,3.5rem);
  background:var(--color-bg);position:relative}
.cta::before{content:"";position:absolute;left:0;top:0;width:2.5rem;height:1px;background:var(--color-accent)}
.cta__title{font-size:var(--text-2xl);margin-top:var(--space-4);max-width:30ch}
.cta__lede{margin-top:var(--space-5);color:var(--color-text-muted);max-width:66ch;font-size:var(--text-sm)}
.cta__actions{margin-top:var(--space-8);display:flex;flex-wrap:wrap;align-items:center;
  gap:var(--space-5)}
.cta__hint{text-transform:none;letter-spacing:.05em;color:var(--color-text-faint);max-width:34ch}
.cta__foot{text-transform:none;letter-spacing:.08em;color:var(--color-text-faint)}

/* ---------- footer ---------- */
.ftr{padding-block:var(--space-8) var(--space-10);background:var(--color-bg)}
.ftr__inner{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;
  align-items:center;padding-bottom:var(--space-5);border-bottom:1px solid var(--color-hairline)}
.ftr__brand{display:flex;align-items:center;gap:.7rem;color:var(--color-accent)}
.ftr__brand .mono{color:var(--color-text-muted);letter-spacing:.12em}
.ftr__disc{margin-top:var(--space-5);font-family:var(--font-mono);font-size:.75rem;
  line-height:1.8;color:var(--color-text-faint);max-width:100ch}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(14px);
  transition:opacity 700ms cubic-bezier(.16,1,.3,1),transform 700ms cubic-bezier(.16,1,.3,1)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ============ RESPONSIVE ============ */
@media (max-width:1080px){
  .nav{display:none}
  .burger{display:flex}
  .hdr__cta{display:none}
  .hdr.is-open .mnav{display:flex}
  .chain{grid-template-columns:repeat(2,1fr)}
  .chain__step,.chain__step + .chain__step{border-left:0;padding-left:0;padding-right:var(--space-5)}
  .chain__step{border-bottom:1px solid var(--color-hairline)}
  .chain__step::after{display:none}
  .chain__step:nth-child(2n){border-left:1px solid var(--color-hairline);padding-left:var(--space-5)}
  .chain__title{min-height:0}
  .team{grid-template-columns:1fr;gap:var(--space-8)}
}
@media (max-width:960px){
  .figs{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:860px){
  .prob,.prob + .prob{border-left:0;padding-left:0;padding-right:0}
  .regtable table{min-width:680px}
  .regtable td:first-child{min-width:160px}
}
@media (max-width:600px){
  :root{--hdr-h:56px}
  .use h3{min-height:0}
  .hero{min-height:auto}
  .hero__inner{padding-top:clamp(4rem,16vh,6rem);padding-bottom:5rem}
  .hero__title{max-width:100%}
  .hero__sub{max-width:100%}
  .hero__grid{background-size:calc(100% / 4) 100%}
  .scrollcue{right:auto;left:clamp(1.25rem,4vw,2.5rem)}
  .scrollcue .mono{display:none}
  .scrollcue__line{height:42px}
  .chain{grid-template-columns:1fr}
  .chain__step,.chain__step:nth-child(2n){border-left:0;padding-left:0}
  .chain__step{padding-block:var(--space-6);display:grid;grid-template-columns:3.5rem 1fr;
    gap:0 var(--space-5);align-items:start}
  .chain__num{grid-column:2;margin-bottom:var(--space-2)}
  .chain__node{grid-column:1;grid-row:1 / span 3;width:3rem;height:3rem;margin-bottom:0}
  .chain__node svg{width:1.5rem;height:1.5rem}
  .chain__title{grid-column:2}
  .chain__txt{grid-column:2;max-width:100%}
  .figs{grid-template-columns:1fr}
  .white{grid-template-columns:1fr;gap:var(--space-3)}
  .cta__actions{gap:var(--space-4)}
  .btn{width:100%;text-align:center;overflow-wrap:anywhere;white-space:normal}
  .cta__hint{max-width:100%}
  .ftr__inner{align-items:flex-start;flex-direction:column}
}

/* ---- mobile: stack the regulatory table into cards ---- */
@media (max-width:760px){
  .regtable{overflow:visible;border:0}
  .regtable table{min-width:0;display:block}
  .regtable thead{display:none}
  .regtable tbody,.regtable tr,.regtable td{display:block;width:auto!important;min-width:0!important}
  .regtable tr{border:1px solid var(--color-hairline);margin-bottom:var(--space-4);
    padding:var(--space-5);background:var(--color-bg)}
  .regtable td{border:0;padding:0}
  .regtable td + td{margin-top:var(--space-4);padding-top:var(--space-4);
    border-top:1px solid var(--color-hairline)}
  .regtable td[data-label]::before{content:attr(data-label);display:block;
    font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.12em;
    text-transform:uppercase;color:var(--color-text-faint);margin-bottom:var(--space-2)}
  .chartblock__canvas{height:300px}
}

/* ============================================================
   Sierra-Alpha marks — header monogram + hero wordmark
   ============================================================ */
.hdr__mono{flex:0 0 auto;height:26px;width:auto;opacity:.92;
  transition:opacity var(--tr)}
.hdr__mono:hover{opacity:1}

.hero__mark{position:absolute;z-index:2;
  top:calc(var(--hdr-h) + clamp(1.5rem,4vh,2.75rem));
  right:max(clamp(1.25rem,4vw,2.5rem),calc((100% - var(--wrap)) / 2 + clamp(1.25rem,4vw,2.5rem)));
  width:clamp(240px,26vw,340px);height:auto;opacity:.88}

@media (max-width:1080px){
  .hero__mark{width:230px;opacity:.8}
}
@media (max-width:700px){
  /* .hero is a flex container — a static mark would become a sibling flex
     item and fight .hero__inner, so it stays absolute and simply steps back */
  .hero__mark{width:min(210px,58%);opacity:.75;
    top:calc(var(--hdr-h) + 1rem)}
  .hdr__mono{height:22px}
}

/* selector figure — section 02 */
.selfig{margin-top:var(--space-12);border:1px solid var(--color-hairline);
  background:var(--color-surface)}
.selfig img{width:100%;height:auto;display:block;
  border-bottom:1px solid var(--color-hairline)}
.selfig figcaption{padding:var(--space-5) clamp(1rem,3vw,var(--space-8));
  color:var(--color-text-muted);font-size:var(--text-sm);max-width:82ch}
.selfig__label{display:block;color:var(--color-amber);font-size:var(--text-xs);
  letter-spacing:.1em;text-transform:uppercase;margin-bottom:var(--space-2)}
.selfig strong{color:var(--color-text);font-weight:600}
