/*
 * mission-critical.css — signature stylesheet for the Mission Critical theme(s).
 * Loaded by includes/header.php ONLY when a missioncritical-* theme is active
 * (after theme_css_vars(), before owner custom CSS). Uses the engine CSS vars
 * (--accent, --text-primary, --bg-card, --font-*) so it tracks the active accent
 * (phosphor/amber/ice) + light/dark automatically. Switchable nav/footer variants
 * are scoped to html[data-nav-style] / html[data-footer-style].
 * Authored as a shipped stylesheet (not inlined per page) for client use.
 */

/* ===== Mission Critical — signature (mono + tactical command UI) ===== */
:root{
  --font-heading:"Space Grotesk",system-ui,sans-serif;
  --font-body:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --font-nav:"JetBrains Mono",ui-monospace,monospace;
  /* the engine leaves --bg-card undefined (falls back to #fff) — define it to the
     mode-aware surface so cards + the disclaimer callout are dark in dark mode */
  --bg-card:var(--bg-section);
  /* readable text ON an accent fill (buttons, active nav/sidenav, badges). Light-mode
     accents are dark → white reads; dark-mode accents are bright → ink reads (@media
     below). NEVER use --accent-text on a fill — that's the accent AS text on the page,
     which renders accent-on-accent (invisible). */
  --on-accent:#ffffff;
  /* tactical tick / frame tokens */
  --mc-tick:18px;
  --mc-hair:color-mix(in srgb, var(--text-secondary) 38%, transparent);
  --mc-hair-strong:color-mix(in srgb, var(--text-primary) 26%, transparent);
}
@media (prefers-color-scheme:dark){ :root{ --on-accent:#0a0c0b; } }

/* faint HUD grid — sits BEHIND content, never over text (low alpha + fixed) */
body{
  -webkit-font-smoothing:antialiased;
  letter-spacing:.003em;
  background-image:
    linear-gradient(color-mix(in srgb,var(--color-slate) 6%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--color-slate) 6%,transparent) 1px,transparent 1px);
  background-size:74px 74px;
  background-attachment:fixed;
}

/* ---- CONTRAST FIX 1: headings + titles are the STRONGEST text ---- */
h1,h2,h3,h4,
.section-title,.kb-home__title,
.post-card__title,.guide-card__title,.kb-cat-card__name,
.resource-card__title,.kb-guide-row__title{
  font-family:var(--font-heading);
  color:var(--text-primary);
  letter-spacing:-.015em;
  font-weight:700;
}
.section-title{letter-spacing:-.01em;}

/* mono ALL-CAPS spec-sheet eyebrows / category labels */
.section-eyebrow,
.post-card__tag,.guide-card__category,.resource-card__category,
.kb-guide-row__cat{
  font-family:var(--font-nav);
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:700;
  font-size:.7rem;
  color:var(--accent);
}
.section-eyebrow{font-size:.72rem;letter-spacing:.18em;}
.section-eyebrow::before{content:"// ";opacity:.55;}
.guide-card__category::before,
.resource-card__category::before,
.kb-guide-row__cat::before{content:"▸ ";opacity:.6;}

/* ---- CARDS 3: military spec-sheet frames + L-shaped corner registration ticks ---- */
.post-card,.guide-card,.resource-card,.kb-cat-card{
  position:relative;
  border:1px solid var(--mc-hair);
  border-radius:2px;
  box-shadow:none;
  background:var(--bg-card);
  transition:border-color .18s var(--ease), transform .18s var(--ease);
}
/* top accent rule that lights up on hover */
.post-card::before,.guide-card::before,.resource-card::before,.kb-cat-card::before{
  content:"";position:absolute;top:-1px;left:-1px;right:-1px;height:2px;
  background:var(--accent);
  transform:scaleX(0);transform-origin:left;
  transition:transform .22s var(--ease);
  pointer-events:none;
}
/* L-shaped corner registration tick (bottom-right) */
.post-card::after,.guide-card::after,.resource-card::after,.kb-cat-card::after{
  content:"";position:absolute;bottom:6px;right:6px;
  width:var(--mc-tick);height:var(--mc-tick);
  border-right:1.5px solid var(--mc-hair-strong);
  border-bottom:1.5px solid var(--mc-hair-strong);
  transition:border-color .18s var(--ease);
  pointer-events:none;
}
.post-card:hover,.guide-card:hover,.resource-card:hover,.kb-cat-card:hover{
  border-color:color-mix(in srgb,var(--accent) 55%,var(--border));
  transform:translateY(-2px);
}
.post-card:hover::before,.guide-card:hover::before,
.resource-card:hover::before,.kb-cat-card:hover::before{transform:scaleX(1);}
.post-card:hover::after,.guide-card:hover::after,
.resource-card:hover::after,.kb-cat-card:hover::after{border-color:var(--accent);}

/* tag pill → mono spec chip */
.post-card__tag{
  background:color-mix(in srgb,var(--accent) 14%,transparent);
  color:var(--accent);
  border-radius:2px;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);
  padding:.12rem .4rem;
}
.post-card__date,.kb-cat-card__count,.kb-guide-row__meta,.post-card__excerpt,
.guide-card__excerpt,.resource-card__desc,.kb-guide-row__excerpt,.kb-home__sub,.section-sub{
  font-family:var(--font-body);
}
.post-card__read,.guide-card__read{
  font-family:var(--font-nav);text-transform:uppercase;
  letter-spacing:.08em;font-weight:700;font-size:.72rem;color:var(--accent);
}
.post-card__read::after,.guide-card__read::after{content:" →";}

/* KB category icon → tactical bracketed node */
.kb-cat-card__icon{border-radius:3px;border:1px solid var(--mc-hair);}

/* guide rows → readout lines */
.kb-guide-row{transition:background .15s var(--ease),box-shadow .15s var(--ease);}
.kb-guide-row:hover{box-shadow:inset 2px 0 0 var(--accent);}

/* ---- DISCLAIMER 2: clean dossier note (light) ---- */
.callout--info{
  background:color-mix(in srgb,var(--accent) 8%,var(--bg-card));
  border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));
  border-left:3px solid var(--accent);
  border-radius:2px;
  color:var(--text-primary);
}
.callout--info svg{color:var(--accent);}

/* nav styling lives in the data-nav-style variants at the bottom */

/* footer styling lives in the data-footer-style variants below */

/* ---- BUTTONS 6: tactical pills ---- */
.btn,.btn--primary,.btn--outline,.btn--ghost{
  font-family:var(--font-nav);text-transform:uppercase;
  letter-spacing:.09em;font-weight:700;border-radius:2px;
}
.btn--primary{
  background:var(--accent);color:var(--on-accent);
  border:1px solid var(--accent);
}
.btn--primary:hover{filter:brightness(1.06);}
.btn--outline,.btn--ghost{
  background:transparent;color:var(--accent);
  border:1px solid var(--accent);
}
.btn--outline:hover,.btn--ghost:hover{
  background:color-mix(in srgb,var(--accent) 12%,transparent);
}
.btn:focus-visible,.site-nav__link:focus-visible,.site-header__util-link:focus-visible,
.site-header__portal-pill:focus-visible,.post-card__read:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;border-radius:2px;
}

/* ============================================================
   HERO — command-terminal / HUD screen
   The base hero is a navy banner with brass gradient; here we
   re-skin it as a tactical command screen that sits on the PAGE
   background. Layering:
     .hero            → page bg + faint targeting grid + center
                        reticle + L-shaped corner registration ticks
                        (all decorative, drawn as background layers so
                        the pseudo-elements stay free for their jobs)
     .hero::before    → reserved for the slide-variant dark overlay
                        (.hero--has-slides::before, base) — left intact
     .hero::after     → HUD readout line (coords / status / channel)
     .hero__inner     → content column, lifted above the decoration
     .hero__eyebrow   → bordered classification CHIP
     .hero__title     → Space Grotesk, --text-primary
     .hero__subtitle  → mono, --text-secondary
     .hero__actions   → tactical pills (styled by the .btn rules above)
   ============================================================ */
.hero{
  position:relative;
  isolation:isolate;
  /* override the base navy banner — sit on the warm page bg (AA: text is
     --text-primary at 15:1; accent used only for decoration/labels) */
  background-color:var(--bg-page);
  color:var(--text-primary);
  overflow:hidden;
  /* room for the HUD readout strip at the bottom */
  padding-block:clamp(3.25rem,8vw,6rem) clamp(4.25rem,9vw,7rem);
  /* faint targeting grid + center crosshair reticle, drawn as stacked
     background layers. Every layer is very low alpha + behind the text. */
  background-image:
    /* center reticle ring */
    radial-gradient(circle at 50% 46%,
      transparent 0 90px,
      color-mix(in srgb,var(--accent) 16%,transparent) 90px 91.5px,
      transparent 91.5px 150px,
      color-mix(in srgb,var(--accent) 9%,transparent) 150px 151px,
      transparent 151px),
    /* crosshair — vertical hairline */
    linear-gradient(0deg,
      transparent calc(46% - 0.75px),
      color-mix(in srgb,var(--accent) 14%,transparent) calc(46% - 0.75px) calc(46% + 0.75px),
      transparent calc(46% + 0.75px)),
    /* crosshair — horizontal hairline */
    linear-gradient(90deg,
      transparent calc(50% - 0.75px),
      color-mix(in srgb,var(--accent) 14%,transparent) calc(50% - 0.75px) calc(50% + 0.75px),
      transparent calc(50% + 0.75px)),
    /* targeting grid — fine lines */
    linear-gradient(color-mix(in srgb,var(--accent) 7%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--accent) 7%,transparent) 1px,transparent 1px);
  background-repeat:no-repeat,no-repeat,no-repeat,repeat,repeat;
  background-position:center,center,center,center,center;
  background-size:auto,auto,auto,38px 38px,38px 38px;
}
/* content column, lifted above the targeting grid + reticle */
.hero__inner{
  position:relative;
  z-index:1;
  max-width:760px;
  /* breathing room for the L-shaped registration ticks that frame it */
  padding:clamp(1rem,2.4vw,1.75rem) 0;
}
/* L-shaped corner REGISTRATION TICKS framing the hero content
   (top-left + bottom-right) — small accent L-marks, 1.5px. */
.hero__inner::before,
.hero__inner::after{
  content:"";
  position:absolute;
  width:clamp(18px,2.6vw,28px);
  height:clamp(18px,2.6vw,28px);
  pointer-events:none;
  opacity:.85;
}
.hero__inner::before{
  top:0;left:calc(-1 * clamp(.75rem,2vw,1.5rem));
  border-top:1.5px solid var(--accent);
  border-left:1.5px solid var(--accent);
}
.hero__inner::after{
  bottom:0;right:calc(-1 * clamp(.75rem,2vw,1.5rem));
  border-bottom:1.5px solid var(--accent);
  border-right:1.5px solid var(--accent);
}

/* classification CHIP eyebrow — "// FIELD-READY" */
.hero__eyebrow{
  display:inline-flex;
  align-items:center;
  font-family:var(--font-nav);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent);
  background:color-mix(in srgb,var(--accent) 9%,transparent);
  border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);
  border-radius:2px;
  padding:.32rem .6rem;
  margin-bottom:1.1rem;
  position:relative;
  z-index:1;
}
.hero__eyebrow::before{content:"// ";opacity:.6;margin-right:.1em;}

/* title — strong Space Grotesk, primary ink */
.hero__title{
  font-family:var(--font-heading);
  color:var(--text-primary);
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.05;
  position:relative;
  z-index:1;
}

/* subtitle — mono, muted */
.hero__subtitle{
  font-family:var(--font-body);
  color:var(--text-secondary);
  line-height:1.6;
  position:relative;
  z-index:1;
}

/* actions — base .btn tactical-pill rules already apply; keep above deco */
.hero__actions{position:relative;z-index:1;}

/* HUD READOUT LINE — static, generic coordinates / status / channel.
   Mono, wide-tracked, dimmed --text-secondary, leading accent feel. */
.hero::after{
  content:"LAT 38.8977\00B0  LON -77.0365\00B0   //   STATUS: ONLINE   //   CH: SECURE";
  position:absolute;
  left:0;right:0;bottom:0;
  z-index:1;
  padding:.7rem var(--container-pad);
  font-family:var(--font-nav);
  font-size:.66rem;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--text-secondary);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  border-top:1px solid var(--mc-hair);
  /* leading accent tick on the readout */
  box-shadow:inset 3px 0 0 var(--accent);
  background:color-mix(in srgb,var(--bg-page) 88%,transparent);
}

/* ---- slide variant: keep it working, but make the overlay tactical ---- */
/* base .hero--has-slides::before is a dark wash; when slides are present the
   targeting grid would fight the image, so dim the grid layers and darken
   the overlay toward the page bg for legibility of --text-primary. */
.hero--has-slides{
  background-image:
    linear-gradient(0deg,
      transparent calc(46% - 0.75px),
      color-mix(in srgb,var(--accent) 10%,transparent) calc(46% - 0.75px) calc(46% + 0.75px),
      transparent calc(46% + 0.75px)),
    linear-gradient(90deg,
      transparent calc(50% - 0.75px),
      color-mix(in srgb,var(--accent) 10%,transparent) calc(50% - 0.75px) calc(50% + 0.75px),
      transparent calc(50% + 0.75px));
  background-repeat:no-repeat,no-repeat;
  background-position:center,center;
  background-size:auto,auto;
}
.hero--has-slides .hero__title,
.hero--has-slides .hero__subtitle{color:var(--text-primary);}
.hero--has-slides::before{
  /* base sets rgba(21,28,40,.55); re-tint toward the page bg so primary ink
     stays AA-readable over the photo */
  background:color-mix(in srgb,var(--bg-page) 62%,transparent);
}
/* hero dots → tactical squares */
.hero-dot{
  width:9px;height:9px;border-radius:1px;
  background:color-mix(in srgb,var(--text-secondary) 45%,transparent);
}
.hero-dot--active{background:var(--accent);}

@keyframes mc-pulse{
  0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 60%,transparent);}
  70%{box-shadow:0 0 0 7px transparent;}
  100%{box-shadow:0 0 0 0 transparent;}
}
@media (prefers-reduced-motion:reduce){
  .site-header__brand-name::after{animation:none;}
  .post-card,.guide-card,.resource-card,.kb-cat-card,
  .post-card::before,.guide-card::before,.resource-card::before,.kb-cat-card::before,
  .site-nav__link::before{transition:none;}
}

/* ============ DARK MODE ============ */
@media (prefers-color-scheme:dark){
  /* headings stay strongest = off-white */
  h1,h2,h3,h4,
  .section-title,.kb-home__title,
  .post-card__title,.guide-card__title,.kb-cat-card__name,
  .resource-card__title,.kb-guide-row__title{color:var(--text-primary);}

  /* cards: tactical dark panels, brighter hairline frames */
  .post-card,.guide-card,.resource-card,.kb-cat-card{
    background:var(--bg-card);
    border-color:color-mix(in srgb,var(--text-secondary) 50%,transparent);
  }
  .post-card::after,.guide-card::after,.resource-card::after,.kb-cat-card::after{
    border-color:color-mix(in srgb,var(--text-primary) 34%,transparent);
  }

  /* DISCLAIMER 2: dark tactical tinted card, readable */
  .callout--info{
    background:color-mix(in srgb,var(--accent) 13%,var(--bg-card));
    border:1px solid color-mix(in srgb,var(--accent) 42%,transparent);
    border-left:3px solid var(--accent);
    color:var(--text-primary);
  }
  .callout--info svg{color:var(--accent);}
}


/* ===== NAV VARIANT: hud (slim) ===== */
/* ============================================================
   NAV VARIANT: "hud" — slim command-deck, single ~52px row
   Every selector prefixed html[data-nav-style="hud"]
   ============================================================ */

/* --- header shell: one row, thin accent hairline under it --- */
html[data-nav-style="hud"] .site-header{
  position:relative;
  background:var(--bg-header);
  box-shadow:none;
  border-bottom:1px solid color-mix(in srgb, var(--accent) 55%, transparent);
}
html[data-nav-style="hud"] .site-header__utility{
  background:transparent;
}
html[data-nav-style="hud"] .site-header__utility-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-top:.55rem;
  padding-bottom:.55rem;
  min-height:0;
}

/* --- brand: mono-caps, accent glyph, HUD bracket flourish --- */
html[data-nav-style="hud"] .site-header__brand{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  position:relative;
  text-decoration:none;
}
html[data-nav-style="hud"] .site-header__brand-name{
  font-family:var(--font-heading);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:1.02rem;
  line-height:1;
  color:var(--text-inverse);
}
html[data-nav-style="hud"] .site-header__brand-name::before{
  content:"[ ";
  color:var(--accent);
  font-family:var(--font-nav);
  font-weight:700;
}
html[data-nav-style="hud"] .site-header__brand-name::after{
  content:" ]";
  color:var(--accent);
  font-family:var(--font-nav);
  font-weight:700;
}
html[data-nav-style="hud"] .site-header__logo-icon{
  color:var(--accent);
}

/* --- strip secondary utility links + search: logo + nav + CTA only --- */
html[data-nav-style="hud"] .site-header__util-link,
html[data-nav-style="hud"] .site-header__search-btn{
  display:none;
}

/* --- right cluster: status chip sits inline beside the CTA pill --- */
html[data-nav-style="hud"] .site-header__utility-links{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
}
/* inline "● ONLINE" status chip — micro mono label, no extra row */
html[data-nav-style="hud"] .site-header__utility-links::before{
  content:"ONLINE";
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  font-family:var(--font-nav);
  font-size:.6rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1;
  color:color-mix(in srgb, var(--text-inverse) 62%, transparent);
  white-space:nowrap;
}
/* the accent status dot, drawn before the label text via a layered gradient */
html[data-nav-style="hud"] .site-header__utility-links::before{
  padding-left:1rem;
  background-image:radial-gradient(circle at .3rem center, var(--accent) 0 .22rem, transparent .25rem);
  background-repeat:no-repeat;
}
@media (max-width:480px){
  /* drop the status chip on very small screens to protect the one row */
  html[data-nav-style="hud"] .site-header__utility-links::before{ display:none; }
}

/* --- CTA pill: accent fill, on-accent ink (AA-safe) --- */
html[data-nav-style="hud"] .site-header__portal-pill{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  font-family:var(--font-nav);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.7rem;
  line-height:1;
  padding:.5rem .85rem;
  border-radius:2px;
  background:var(--accent);
  color:var(--on-accent);
  border:1px solid var(--accent);
  text-decoration:none;
  transition:filter .15s ease;
}
html[data-nav-style="hud"] .site-header__portal-pill:hover,
html[data-nav-style="hud"] .site-header__portal-pill:focus-visible{
  filter:brightness(1.08);
}

/* --- hamburger lines stay ivory --- */
html[data-nav-style="hud"] .nav__hamburger-line{
  background:var(--text-inverse);
}

/* --- main nav pulled onto the SAME row, centered; no second-bar height --- */
html[data-nav-style="hud"] .site-header__nav-bar{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  border:0;
  padding:0;
  pointer-events:none;
}
html[data-nav-style="hud"] .site-header__nav-bar .container{
  width:auto;
  max-width:none;
  margin:0;
  padding:0;
  pointer-events:none;
}
html[data-nav-style="hud"] .site-nav__list{
  display:flex;
  align-items:center;
  gap:1.4rem;
  list-style:none;
  margin:0;
  padding:0;
  pointer-events:auto;
}

/* --- nav links: mono ALL-CAPS, ivory text, accent underline-tick --- */
html[data-nav-style="hud"] .site-nav__link{
  position:relative;
  display:inline-block;
  font-family:var(--font-nav);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.74rem;
  line-height:1;
  padding:.35rem 0;
  color:var(--text-inverse);
  text-decoration:none;
  transition:color .15s ease;
}
/* the underline-tick: short accent bar, centered, grows on hover/active */
html[data-nav-style="hud"] .site-nav__link::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:6px;
  height:2px;
  background:var(--accent);
  transition:width .18s ease;
}
html[data-nav-style="hud"] .site-nav__link:hover::after,
html[data-nav-style="hud"] .site-nav__link:focus-visible::after,
html[data-nav-style="hud"] .site-nav__link--active::after{
  width:100%;
}
html[data-nav-style="hud"] .site-nav__link--active{
  color:var(--text-inverse);
}

/* --- MOBILE GUARD (required): re-hide the second bar under 768px --- */
@media (max-width:767px){
  html[data-nav-style="hud"] .site-header__nav-bar{ display:none; }
}

/* --- mobile overlay --- */
html[data-nav-style="hud"] .nav-overlay{
  background:var(--bg-header);
}
html[data-nav-style="hud"] .nav-overlay__link{
  font-family:var(--font-nav);
  text-transform:uppercase;
  letter-spacing:.07em;
  color:var(--text-inverse);
  text-decoration:none;
}

/* ===== NAV VARIANT: stencil (slim) ===== */
/* ============================================================
   NAV VARIANT: stencil — SLIM single-row (MIL-SPEC stencil)
   One compact ~52px row. Thick accent bottom border instead of
   a separate heavy bar. Thin ivory │ dividers between links.
   Tiny "// MISSION CRITICAL" tag inline near the CTA.
   AA: nav TEXT stays ivory (--text-inverse) on navy; --accent
   is reserved for thick/decorative bits; text on accent FILL
   uses --on-accent.
   ============================================================ */

/* header chrome — single row + thick accent bottom border */
html[data-nav-style="stencil"] .site-header{
  position:relative;
  background:var(--bg-header);
  box-shadow:none;
  border-bottom:3px solid var(--accent);
}
html[data-nav-style="stencil"] .site-header__utility{
  background:transparent;
}
html[data-nav-style="stencil"] .site-header__utility-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-top:.55rem;
  padding-bottom:.55rem;
  min-height:0;
}

/* brand — stencil-spaced, heavy wordmark */
html[data-nav-style="stencil"] .site-header__brand{
  text-decoration:none;
}
html[data-nav-style="stencil"] .site-header__brand-name{
  font-family:var(--font-heading);
  text-transform:uppercase;
  letter-spacing:.2em;
  font-weight:800;
  font-size:1.02rem;
  line-height:1;
  color:var(--text-inverse);
}
html[data-nav-style="stencil"] .site-header__logo-icon{
  color:var(--accent);
}

/* keep it logo + nav + one CTA — hide secondary utility bits */
html[data-nav-style="stencil"] .site-header__util-link,
html[data-nav-style="stencil"] .site-header__search-btn{
  display:none;
}
html[data-nav-style="stencil"] .nav__hamburger-line{
  background:var(--text-inverse);
}

/* utility-links cluster: CTA + the inline MISSION CRITICAL tag */
html[data-nav-style="stencil"] .site-header__utility-links{
  display:flex;
  align-items:center;
  gap:.7rem;
}
/* SMALL inline "// MISSION CRITICAL" tag — bordered accent chip,
   stays on the one row, no second strip */
html[data-nav-style="stencil"] .site-header__utility-links::before{
  content:"// MISSION CRITICAL";
  font-family:var(--font-nav);
  font-size:.56rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  line-height:1;
  white-space:nowrap;
  color:var(--accent);
  border:1px solid var(--accent);
  padding:.28rem .5rem;
  border-radius:2px;
}
@media (max-width:520px){
  html[data-nav-style="stencil"] .site-header__utility-links::before{
    display:none;
  }
}

/* CTA pill — accent fill, text uses --on-accent (AA on the fill) */
html[data-nav-style="stencil"] .site-header__portal-pill{
  font-family:var(--font-nav);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.7rem;
  font-weight:700;
  color:var(--on-accent);
  background:var(--accent);
  border:1px solid var(--accent);
  border-radius:2px;
}

/* pull main nav onto the SAME row (centered) — no second-bar height */
html[data-nav-style="stencil"] .site-header__nav-bar{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  border:0;
  padding:0;
  pointer-events:none;
}
html[data-nav-style="stencil"] .site-header__nav-bar .container{
  width:auto;
  max-width:none;
  margin:0;
  padding:0;
  pointer-events:none;
}
html[data-nav-style="stencil"] .site-nav__list{
  display:flex;
  align-items:center;
  gap:0;
  list-style:none;
  margin:0;
  padding:0;
  pointer-events:auto;
}

/* thin vertical │ dividers between links (li border-left, ~50% ivory) */
html[data-nav-style="stencil"] .site-nav__list > li{
  display:flex;
  align-items:center;
}
html[data-nav-style="stencil"] .site-nav__list > li + li{
  border-left:1px solid color-mix(in srgb, var(--text-inverse) 50%, transparent);
}

/* nav links — compact, small, mono ALL-CAPS, bold; ivory text */
html[data-nav-style="stencil"] .site-nav__link{
  display:block;
  font-family:var(--font-nav);
  font-size:.74rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.12em;
  line-height:1;
  text-decoration:none;
  color:var(--text-inverse);
  padding:.35rem .9rem;
}
html[data-nav-style="stencil"] .site-nav__link:hover{
  color:var(--text-inverse);
  text-decoration:underline;
  text-decoration-color:var(--accent);
  text-underline-offset:4px;
  text-decoration-thickness:2px;
}
/* active — accent underline tick (decorative accent, ivory text) */
html[data-nav-style="stencil"] .site-nav__link--active{
  color:var(--text-inverse);
  text-decoration:underline;
  text-decoration-color:var(--accent);
  text-underline-offset:4px;
  text-decoration-thickness:2px;
}

/* MOBILE GUARD — rule out-specifies the engine's hide; re-hide */
@media (max-width:767px){
  html[data-nav-style="stencil"] .site-header__nav-bar{
    display:none;
  }
}

/* mobile overlay */
html[data-nav-style="stencil"] .nav-overlay{
  background:var(--bg-header);
}
html[data-nav-style="stencil"] .nav-overlay__link{
  font-family:var(--font-nav);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:700;
  color:var(--text-inverse);
  text-decoration:none;
}

/* ===== NAV VARIANT: terminal (slim) ===== */
/* ===== NAV VARIANT: terminal ===== */
/* ============================================================
   NAV VARIANT: "terminal" — CLI / console shell, SLIM single row.
   ONE compact ~52px bar (no second-bar height). Mono, dense.
   Identity = "blackridge:~$" prompt + [01]/[02] counter links +
   a blinking caret. HARD AA: readable nav text stays ivory
   var(--text-inverse) (~16:1 on navy in BOTH modes); var(--accent)
   is decorative ONLY (prompt, brackets, caret, hairline, ticks).
   Text on an accent FILL = var(--on-accent). Every rule scoped to
   html[data-nav-style="terminal"].
   ============================================================ */

/* ---- Header shell: sticky, mono, thin accent hairline ---- */
html[data-nav-style="terminal"] .site-header {
  position: relative;
  background: var(--bg-header);
  box-shadow: none;
  font-family: var(--font-nav);
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 55%, transparent);
}

/* ---- The single row ---- */
html[data-nav-style="terminal"] .site-header__utility {
  background: transparent;
}
html[data-nav-style="terminal"] .site-header__utility-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 0.55rem;
  padding-bottom: 0.55rem;
  min-height: 0;
}

/* Brand — mono caps, accent ./ prefix, accent glyph */
html[data-nav-style="terminal"] .site-header__brand {
  display: inline-flex;
  align-items: center;
  gap: 0.55ch;
  color: var(--text-inverse);
  text-decoration: none;
}
html[data-nav-style="terminal"] .site-header__logo-icon {
  color: var(--accent);
  flex: 0 0 auto;
}
html[data-nav-style="terminal"] .site-header__brand-name {
  font-family: var(--font-nav);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1;
  color: var(--text-inverse);
}
html[data-nav-style="terminal"] .site-header__brand-name::before {
  content: "./";
  color: var(--accent);
  margin-right: 0.15ch;
  font-weight: 700;
}

/* Utility links cluster: keep only the portal CTA */
html[data-nav-style="terminal"] .site-header__utility-links {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
}
/* hide secondary utility links + search — logo + nav + one CTA */
html[data-nav-style="terminal"] .site-header__util-link,
html[data-nav-style="terminal"] .site-header__search-btn {
  display: none;
}

/* Portal CTA — accent fill, on-accent ink, squared chip */
html[data-nav-style="terminal"] .site-header__portal-pill {
  font-family: var(--font-nav);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--on-accent);
  background: var(--accent);
  border: 1px solid var(--accent);
  border-radius: 3px;
  padding: 0.32rem 0.7rem;
  line-height: 1;
  text-decoration: none;
}
html[data-nav-style="terminal"] .site-header__portal-pill::before {
  content: "$ ";
  font-weight: 700;
  opacity: 0.8;
}
html[data-nav-style="terminal"] .site-header__portal-pill:hover,
html[data-nav-style="terminal"] .site-header__portal-pill:focus-visible {
  filter: brightness(1.08);
}

/* Hamburger (mobile only) — squared mono tint */
html[data-nav-style="terminal"] .nav__hamburger {
  background: transparent;
  border: 1px solid var(--accent);
  border-radius: 0;
  cursor: pointer;
}
html[data-nav-style="terminal"] .nav__hamburger-line {
  background: var(--text-inverse);
}

/* ============================================================
   PULL THE NAV ONTO THE SAME ROW (centered) — no second bar.
   The nav-bar is absolutely positioned over the single row and
   is non-interactive except for the list itself.
   ============================================================ */
html[data-nav-style="terminal"] .site-header__nav-bar {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  background: transparent;
  border: 0;
  padding: 0;
  pointer-events: none;
}
/* keep the page-container bounds so the nav right-aligns to the CTA edge (not the
   viewport edge); reserve room on the right for the "$ …" portal pill so they never overlap */
html[data-nav-style="terminal"] .site-header__nav-bar .container {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  max-width: var(--container-max, 1200px);
  margin-inline: auto;
  padding-inline: var(--container-pad, 1.25rem);
  box-sizing: border-box;
  pointer-events: none;
}
html[data-nav-style="terminal"] .site-nav {
  display: flex;
  align-items: center;
  min-width: 0;
  pointer-events: auto;
  padding-right: 12rem;
}

/* The shell prompt + caret + numbered links all on one mono row */
html[data-nav-style="terminal"] .site-nav__list {
  counter-reset: navc;
  display: flex;
  align-items: center;
  gap: 1.1rem;
  list-style: none;
  margin: 0;
  padding: 0;
  pointer-events: auto;
}
/* prompt removed — the brand's "./" + the [01] counters carry the terminal vibe,
   and a full prompt here collided with the brand on the shared single row */
html[data-nav-style="terminal"] .site-nav__list::before {
  content: "";
  display: none;
  flex: 0 0 auto;
  color: var(--accent);
  font-family: var(--font-nav);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: pre;
  margin-right: 0.35rem;
}
/* blinking caret — accent block, right after the prompt */
html[data-nav-style="terminal"] .site-nav__list::after {
  content: "";
  order: 0;
  flex: 0 0 auto;
  width: 0.55ch;
  height: 0.95em;
  background: var(--accent);
  margin-left: -0.75rem;
  margin-right: 0.35rem;
  animation: kc-term-blink 1.05s steps(1) infinite;
}
@keyframes kc-term-blink {
  0%, 49%   { opacity: 1; }
  50%, 100% { opacity: 0; }
}

html[data-nav-style="terminal"] .site-nav__list > li {
  counter-increment: navc;
  display: flex;
}

/* Links: [01] HOME  [02] CAPABILITIES … compact, mono, all-caps */
html[data-nav-style="terminal"] .site-nav__link {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-nav);
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-inverse);
  text-decoration: none;
  padding: 0.2rem 0;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}
/* numbered shell index, accent decorative */
html[data-nav-style="terminal"] .site-nav__link::before {
  content: "[" counter(navc, decimal-leading-zero) "] ";
  color: var(--accent);
  font-weight: 700;
  margin-right: 0.25ch;
}
html[data-nav-style="terminal"] .site-nav__link:hover,
html[data-nav-style="terminal"] .site-nav__link:focus-visible {
  border-bottom-color: var(--accent);
}
html[data-nav-style="terminal"] .site-nav__link:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* Active link: accent rule + > pointer in the index */
html[data-nav-style="terminal"] .site-nav__link--active {
  border-bottom-color: var(--accent);
  color: var(--text-inverse);
}
html[data-nav-style="terminal"] .site-nav__link--active::before {
  content: "[" counter(navc, decimal-leading-zero) "]> ";
  color: var(--accent);
}

/* ---- MOBILE GUARD (required): re-hide the second bar so the
   overlay flow is intact below the engine breakpoint ---- */
@media (max-width: 767px) {
  html[data-nav-style="terminal"] .site-header__nav-bar {
    display: none;
  }
}

/* ============================================================
   MOBILE OVERLAY (separate DOM) — light terminal styling
   ============================================================ */
html[data-nav-style="terminal"] .nav-overlay {
  background: var(--bg-header);
  font-family: var(--font-nav);
}
html[data-nav-style="terminal"] .nav-overlay__links {
  counter-reset: navc;
  list-style: none;
  margin: 0;
  padding: 0;
}
html[data-nav-style="terminal"] .nav-overlay__links > li {
  counter-increment: navc;
}
html[data-nav-style="terminal"] .nav-overlay__link {
  display: block;
  font-family: var(--font-nav);
  font-size: 1rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--text-inverse);
  text-decoration: none;
  padding: 0.75rem var(--container-pad, 1rem);
  border-bottom: 2px solid color-mix(in srgb, var(--accent) 30%, transparent);
}
html[data-nav-style="terminal"] .nav-overlay__link::before {
  content: "[" counter(navc, decimal-leading-zero) "] ";
  color: var(--accent);
  font-weight: 700;
  margin-right: 0.2ch;
}

/* ---- Reduced-motion: kill the blink, keep caret visible ---- */
@media (prefers-reduced-motion: reduce) {
  html[data-nav-style="terminal"] .site-nav__list::after {
    animation: none;
    opacity: 1;
  }
}

/* ===== NAV VARIANT: module (slim) ===== */
/* ===== NAV VARIANT: module ===== */
/* ============================================================
   NAV VARIANT: "module" — SLIM control-panel modules (single row)
   ONE compact ~52px row: brand (left) + centered nav modules
   (absolutely overlaid) + portal CTA (right). No second bar.
   AA: readable nav TEXT stays ivory var(--text-inverse) on the
   navy header (~16:1). var(--accent) is used ONLY on decorative
   bits — hairline borders, L corner-ticks, hex node, the active
   FILL. Text/ticks ON the accent fill switch to var(--on-accent).
   ============================================================ */

/* ---- HEADER SHELL: single relative row, thin accent hairline -- */
html[data-nav-style="module"] .site-header{position:relative;background:var(--bg-header);box-shadow:none;border-bottom:1px solid color-mix(in srgb,var(--accent) 38%,transparent);font-family:var(--font-nav);}
html[data-nav-style="module"] .site-header__utility{background:transparent;border:0;}
html[data-nav-style="module"] .site-header__utility-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.55rem;padding-bottom:.55rem;min-height:0;}

/* ---- BRAND: hex node + uppercase wordmark -------------------- */
html[data-nav-style="module"] .site-header__brand{display:flex;align-items:center;gap:.5rem;color:var(--text-inverse);text-decoration:none;}
html[data-nav-style="module"] .site-header__logo-icon{color:var(--accent);flex:none;}
/* small ⬡ hex node before the brand name (decorative, accent) */
html[data-nav-style="module"] .site-header__brand-name::before{content:"\2B22";margin-right:.45ch;color:var(--accent);font-size:.8em;line-height:1;vertical-align:baseline;}
html[data-nav-style="module"] .site-header__brand-name{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.06em;font-size:1.02rem;line-height:1;color:var(--text-inverse);}

/* ---- UTILITY CLUSTER: keep it brand + nav + one CTA ---------- */
html[data-nav-style="module"] .site-header__utility-links{display:flex;align-items:center;gap:.55rem;}
/* hide the secondary util links + search to stay on one slim row */
html[data-nav-style="module"] .site-header__util-link,
html[data-nav-style="module"] .site-header__search-btn{display:none;}

/* portal CTA — compact accent-filled module, on-accent text */
html[data-nav-style="module"] .site-header__portal-pill{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.07em;font-size:.68rem;font-weight:600;color:var(--on-accent);background:var(--accent);border:1px solid var(--accent);border-radius:2px;padding:.4rem .85rem;text-decoration:none;transition:filter .16s ease;}
html[data-nav-style="module"] .site-header__portal-pill:hover,
html[data-nav-style="module"] .site-header__portal-pill:focus-visible{filter:brightness(1.08);outline:none;}

/* hamburger (mobile) */
html[data-nav-style="module"] .nav__hamburger{background:transparent;border:1px solid color-mix(in srgb,var(--text-inverse) 28%,transparent);border-radius:2px;padding:.4rem;cursor:pointer;}
html[data-nav-style="module"] .nav__hamburger-line{background:var(--text-inverse);}

/* ---- NAV PULLED ONTO THE SAME ROW (centered overlay) -------- */
html[data-nav-style="module"] .site-header__nav-bar{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:transparent;border:0;padding:0;pointer-events:none;}
html[data-nav-style="module"] .site-header__nav-bar .container{width:auto;max-width:none;margin:0;padding:0;pointer-events:none;}
html[data-nav-style="module"] .site-nav__list{display:flex;align-items:center;flex-wrap:nowrap;gap:.5rem;list-style:none;margin:0;padding:0;pointer-events:auto;}

/* ---- THE SLIM MODULE: compact bordered chip ----------------- */
html[data-nav-style="module"] .site-nav__link{position:relative;display:inline-block;font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.07em;font-size:.74rem;line-height:1;color:var(--text-inverse);text-decoration:none;background:transparent;border:1px solid color-mix(in srgb,var(--text-inverse) 34%,transparent);border-radius:2px;padding:.35rem .7rem;transition:border-color .16s ease,background-color .16s ease,color .16s ease;}

/* L-shaped corner ticks (accent, ~5px) */
html[data-nav-style="module"] .site-nav__link::before,
html[data-nav-style="module"] .site-nav__link::after{content:"";position:absolute;width:5px;height:5px;border-color:var(--accent);border-style:solid;opacity:.85;pointer-events:none;}
html[data-nav-style="module"] .site-nav__link::before{top:-1px;left:-1px;border-width:2px 0 0 2px;}
html[data-nav-style="module"] .site-nav__link::after{bottom:-1px;right:-1px;border-width:0 2px 2px 0;}

/* hover — border lights to accent, text stays ivory */
html[data-nav-style="module"] .site-nav__link:hover,
html[data-nav-style="module"] .site-nav__link:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--text-inverse);outline:none;}
html[data-nav-style="module"] .site-nav__link:hover::before,
html[data-nav-style="module"] .site-nav__link:hover::after,
html[data-nav-style="module"] .site-nav__link:focus-visible::before,
html[data-nav-style="module"] .site-nav__link:focus-visible::after{opacity:1;}

/* ACTIVE — accent-FILLED module, on-accent text + on-accent ticks */
html[data-nav-style="module"] .site-nav__link--active,
html[data-nav-style="module"] .site-nav__link--active:hover,
html[data-nav-style="module"] .site-nav__link--active:focus-visible{background:var(--accent);border-color:var(--accent);color:var(--on-accent);}
html[data-nav-style="module"] .site-nav__link--active::before,
html[data-nav-style="module"] .site-nav__link--active::after{border-color:var(--on-accent);opacity:1;}

html[data-nav-style="module"] .site-nav__link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* ---- MOBILE GUARD: re-hide nav row so the overlay works ----- */
@media (max-width:767px){ html[data-nav-style="module"] .site-header__nav-bar{display:none;} }

/* ---- MOBILE OVERLAY (module chips, light styling) ----------- */
html[data-nav-style="module"] .nav-overlay{background:var(--bg-header);font-family:var(--font-nav);}
html[data-nav-style="module"] .nav-overlay__links{list-style:none;margin:0;padding:0;}
html[data-nav-style="module"] .nav-overlay__link{display:block;font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.07em;color:var(--text-inverse);text-decoration:none;border:1px solid color-mix(in srgb,var(--text-inverse) 28%,transparent);border-radius:2px;padding:.85rem 1rem;margin:.5rem 0;transition:border-color .16s ease,background-color .16s ease;}
html[data-nav-style="module"] .nav-overlay__link:hover,
html[data-nav-style="module"] .nav-overlay__link:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);outline:none;}

/* ---- REDUCED MOTION ----------------------------------------- */
@media (prefers-reduced-motion:reduce){
  html[data-nav-style="module"] .site-nav__link,
  html[data-nav-style="module"] .site-nav__link::before,
  html[data-nav-style="module"] .site-nav__link::after,
  html[data-nav-style="module"] .site-header__portal-pill,
  html[data-nav-style="module"] .nav-overlay__link{transition:none;}
}

/* ===== FOOTER VARIANT: opsband (unscoped:0) ===== */
/* ==========================================================================
   FOOTER VARIANT: "opsband" — OPS BAND (polished default)
   Status line (top) + classification line (bottom), mono columns,
   thin accent hairline rules, clean and calm.
   All readable text = ivory var(--text-inverse). Accent = decorative only.
   ========================================================================== */

/* --- Newsletter bar (navy) ------------------------------------------------ */
html[data-footer-style="opsband"] .newsletter-bar {
  background: var(--bg-footer);
  border-top: 1px solid color-mix(in srgb, var(--accent) 55%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--text-inverse) 14%, transparent);
}
html[data-footer-style="opsband"] .newsletter-bar__inner {
  padding-top: 2.25rem;
  padding-bottom: 2.25rem;
}
html[data-footer-style="opsband"] .newsletter-bar__title {
  font-family: var(--font-nav);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-inverse) 96%, white);
  font-size: 1.05rem;
}
html[data-footer-style="opsband"] .newsletter-bar__sub {
  font-family: var(--font-nav);
  letter-spacing: 0.04em;
  color: color-mix(in srgb, var(--text-inverse) 70%, transparent);
  font-size: 0.85rem;
}
html[data-footer-style="opsband"] .newsletter-bar__input {
  font-family: var(--font-nav);
  letter-spacing: 0.03em;
  color: var(--text-inverse);
  background: color-mix(in srgb, var(--text-inverse) 6%, transparent);
  border: 1px solid color-mix(in srgb, var(--text-inverse) 26%, transparent);
  border-radius: 0;
}
html[data-footer-style="opsband"] .newsletter-bar__input::placeholder {
  color: color-mix(in srgb, var(--text-inverse) 55%, transparent);
}
html[data-footer-style="opsband"] .newsletter-bar__input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 1px var(--accent);
}
html[data-footer-style="opsband"] .newsletter-bar__btn {
  font-family: var(--font-nav);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 0;
}
html[data-footer-style="opsband"] .newsletter-bar__status {
  font-family: var(--font-nav);
  letter-spacing: 0.04em;
  color: color-mix(in srgb, var(--text-inverse) 70%, transparent);
}

/* --- Footer shell --------------------------------------------------------- */
html[data-footer-style="opsband"] .site-footer {
  position: relative;
  background: var(--bg-footer);
  color: var(--text-inverse);
}

/* Status line at the very top */
html[data-footer-style="opsband"] .site-footer::before {
  content: "\25CF OPERATIONAL   //   GRID 38.8977\00B0 N 77.0365\00B0 W   //   SYNC NOMINAL";
  display: block;
  font-family: var(--font-nav);
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: color-mix(in srgb, var(--text-inverse) 66%, transparent);
  text-align: center;
  padding: 0.7rem var(--container-pad);
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 60%, transparent);
}

/* Classification line at the bottom */
html[data-footer-style="opsband"] .site-footer::after {
  content: "INTERNAL // NOT FOR DISTRIBUTION";
  display: block;
  font-family: var(--font-nav);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: color-mix(in srgb, var(--text-inverse) 60%, transparent);
  text-align: center;
  padding: 0.7rem var(--container-pad);
  border-top: 1px solid color-mix(in srgb, var(--accent) 60%, transparent);
}

/* --- Footer main: columns ------------------------------------------------- */
html[data-footer-style="opsband"] .footer__main-inner {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
html[data-footer-style="opsband"] .footer__heading {
  font-family: var(--font-nav);
  font-weight: 600;
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  /* slightly brighter than links */
  color: color-mix(in srgb, var(--text-inverse) 100%, white);
  margin-bottom: 1rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);
}
html[data-footer-style="opsband"] .footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
}
html[data-footer-style="opsband"] .footer__links > li {
  margin-bottom: 0.55rem;
}
html[data-footer-style="opsband"] .footer__links > li > a {
  font-family: var(--font-nav);
  font-size: 0.82rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-inverse) 86%, transparent);
  text-decoration: none;
  transition: color 0.16s ease, padding-left 0.16s ease;
}
html[data-footer-style="opsband"] .footer__links > li > a:hover,
html[data-footer-style="opsband"] .footer__links > li > a:focus-visible {
  color: var(--text-inverse);
  padding-left: 0.4rem;
}
html[data-footer-style="opsband"] .footer__links > li > a:focus-visible {
  outline: 1px solid var(--accent);
  outline-offset: 3px;
}

/* Social icons */
html[data-footer-style="opsband"] .footer__social-icons {
  display: flex;
  gap: 0.65rem;
  flex-wrap: wrap;
}
html[data-footer-style="opsband"] .footer__social-icons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.1rem;
  height: 2.1rem;
  color: var(--text-inverse);
  border: 1px solid color-mix(in srgb, var(--text-inverse) 26%, transparent);
  border-radius: 0;
  transition: border-color 0.16s ease, background 0.16s ease;
}
html[data-footer-style="opsband"] .footer__social-icons a:hover,
html[data-footer-style="opsband"] .footer__social-icons a:focus-visible {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 16%, transparent);
}
html[data-footer-style="opsband"] .footer__social-icons a:focus-visible {
  outline: 1px solid var(--accent);
  outline-offset: 2px;
}
html[data-footer-style="opsband"] .footer__social-icons svg {
  width: 1.05rem;
  height: 1.05rem;
  fill: currentColor;
}

/* --- Footer bottom band --------------------------------------------------- */
html[data-footer-style="opsband"] .footer__bottom {
  border-top: 1px solid color-mix(in srgb, var(--text-inverse) 14%, transparent);
}
html[data-footer-style="opsband"] .footer__bottom-inner {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}
html[data-footer-style="opsband"] .footer__bottom-brand {
  display: inline-flex;
  align-items: center;
  color: var(--text-inverse);
  font-family: var(--font-nav);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
html[data-footer-style="opsband"] .footer__bottom-brand img,
html[data-footer-style="opsband"] .footer__bottom-brand svg {
  height: 1.5rem;
  width: auto;
}
html[data-footer-style="opsband"] .footer__bottom-legal {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem 1.1rem;
  font-family: var(--font-nav);
  font-size: 0.72rem;
  letter-spacing: 0.06em;
}
html[data-footer-style="opsband"] .footer__copyright {
  color: color-mix(in srgb, var(--text-inverse) 70%, transparent);
  text-transform: uppercase;
}
html[data-footer-style="opsband"] .footer__legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.1rem;
}
html[data-footer-style="opsband"] .footer__legal-links > a {
  color: color-mix(in srgb, var(--text-inverse) 86%, transparent);
  text-decoration: none;
  text-transform: uppercase;
  transition: color 0.16s ease;
}
html[data-footer-style="opsband"] .footer__legal-links > a:hover,
html[data-footer-style="opsband"] .footer__legal-links > a:focus-visible {
  color: var(--text-inverse);
}
html[data-footer-style="opsband"] .footer__legal-links > a:focus-visible {
  outline: 1px solid var(--accent);
  outline-offset: 3px;
}
html[data-footer-style="opsband"] .footer__privacy-choices {
  font-family: var(--font-nav);
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-inverse);
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--text-inverse) 26%, transparent);
  border-radius: 0;
  padding: 0.3rem 0.7rem;
  cursor: pointer;
  transition: border-color 0.16s ease, background 0.16s ease;
}
html[data-footer-style="opsband"] .footer__privacy-choices:hover,
html[data-footer-style="opsband"] .footer__privacy-choices:focus-visible {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 14%, transparent);
}
html[data-footer-style="opsband"] .footer__privacy-choices:focus-visible {
  outline: 1px solid var(--accent);
  outline-offset: 2px;
}

/* --- Disclaimer ----------------------------------------------------------- */
html[data-footer-style="opsband"] .footer__disclaimer-wrap {
  border-top: 1px solid color-mix(in srgb, var(--text-inverse) 14%, transparent);
}
html[data-footer-style="opsband"] .footer__disclaimer {
  font-family: var(--font-nav);
  font-size: 0.7rem;
  line-height: 1.7;
  letter-spacing: 0.03em;
  color: color-mix(in srgb, var(--text-inverse) 64%, transparent);
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

/* --- Responsive ----------------------------------------------------------- */
@media (max-width: 640px) {
  html[data-footer-style="opsband"] .site-footer::before,
  html[data-footer-style="opsband"] .site-footer::after {
    font-size: 0.56rem;
    letter-spacing: 0.16em;
  }
  html[data-footer-style="opsband"] .footer__bottom-inner {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ===== FOOTER VARIANT: telemetry (unscoped:0) ===== */
/* ============================================================
   FOOTER VARIANT: "telemetry" — TELEMETRY CONSOLE
   Instrument-panel readouts, bracketed cells, indexed links.
   Footer bg is navy in BOTH modes; readable text stays ivory.
   Accent (phosphor) is used ONLY on decorative rules/brackets/dots.
   ============================================================ */

/* ---- Newsletter bar: console-input strip ---- */
html[data-footer-style="telemetry"] .newsletter-bar {
  background: var(--bg-footer);
  border-top: 2px solid var(--accent);
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);
  position: relative;
}
html[data-footer-style="telemetry"] .newsletter-bar__inner {
  padding-top: 2.25rem;
  padding-bottom: 2.25rem;
  position: relative;
}
html[data-footer-style="telemetry"] .newsletter-bar__inner::before {
  content: "// INPUT CHANNEL OPEN";
  display: block;
  font-family: var(--font-nav);
  font-size: 0.62rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-inverse) 65%, transparent);
  margin-bottom: 0.85rem;
}
html[data-footer-style="telemetry"] .newsletter-bar__title {
  font-family: var(--font-nav);
  color: var(--text-inverse);
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
html[data-footer-style="telemetry"] .newsletter-bar__title::before {
  content: ">_ ";
  color: var(--accent);
  font-weight: 700;
}
html[data-footer-style="telemetry"] .newsletter-bar__sub {
  font-family: var(--font-nav);
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  color: color-mix(in srgb, var(--text-inverse) 72%, transparent);
}
html[data-footer-style="telemetry"] .newsletter-bar__fields {
  border: 1px solid color-mix(in srgb, var(--accent) 50%, transparent);
  padding: 0.4rem;
  gap: 0.4rem;
  border-radius: 2px;
}
html[data-footer-style="telemetry"] .newsletter-bar__input {
  background: color-mix(in srgb, var(--text-inverse) 6%, transparent);
  border: 1px solid color-mix(in srgb, var(--text-inverse) 22%, transparent);
  border-radius: 1px;
  font-family: var(--font-nav);
  letter-spacing: 0.06em;
  color: var(--text-inverse);
}
html[data-footer-style="telemetry"] .newsletter-bar__input::placeholder {
  color: color-mix(in srgb, var(--text-inverse) 55%, transparent);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.78rem;
}
html[data-footer-style="telemetry"] .newsletter-bar__input:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
  border-color: var(--accent);
}
html[data-footer-style="telemetry"] .newsletter-bar__btn {
  font-family: var(--font-nav);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  border-radius: 1px;
}
html[data-footer-style="telemetry"] .newsletter-bar__btn::after {
  content: " \2192";
}
html[data-footer-style="telemetry"] .newsletter-bar__status {
  font-family: var(--font-nav);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-inverse) 70%, transparent);
}

/* ---- Footer shell ---- */
html[data-footer-style="telemetry"] .site-footer {
  background: var(--bg-footer);
  color: var(--text-inverse);
  font-family: var(--font-nav);
  position: relative;
  border-top: 1px solid color-mix(in srgb, var(--accent) 40%, transparent);
}

/* ---- ::before — bracketed readout-cell strip above columns ---- */
html[data-footer-style="telemetry"] .site-footer::before {
  content: "[ GRID 38.89N ]  [ UPTIME 99.99% ]  [ BUILD 2.17 ]  [ SYNC NOMINAL ]  [ SAT 01 ]";
  display: block;
  font-family: var(--font-nav);
  font-size: 0.66rem;
  line-height: 1.6;
  font-weight: 600;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  text-align: center;
  white-space: normal;
  word-spacing: 0.2em;
  color: color-mix(in srgb, var(--text-inverse) 68%, transparent);
  padding: 1rem var(--container-pad);
  border-bottom: 2px solid var(--accent);
  box-shadow: inset 0 -5px 0 -3px color-mix(in srgb, var(--accent) 55%, transparent);
  background:
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 14px,
      color-mix(in srgb, var(--accent) 14%, transparent) 14px,
      color-mix(in srgb, var(--accent) 14%, transparent) 15px
    );
}

/* ---- Main grid ---- */
html[data-footer-style="telemetry"] .footer__main-inner {
  padding-top: 2.75rem;
  padding-bottom: 2.25rem;
}

/* ---- Headings: console prompt prefix ---- */
html[data-footer-style="telemetry"] .footer__heading {
  font-family: var(--font-nav);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-inverse);
  padding-bottom: 0.6rem;
  margin-bottom: 0.85rem;
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);
}
html[data-footer-style="telemetry"] .footer__heading::before {
  content: ">> ";
  color: var(--accent);
  font-weight: 700;
}

/* ---- Links: indexed readout rows ---- */
html[data-footer-style="telemetry"] .footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: tlm;
}
html[data-footer-style="telemetry"] .footer__links li {
  counter-increment: tlm;
  margin: 0;
}
html[data-footer-style="telemetry"] .footer__links a {
  display: flex;
  align-items: baseline;
  gap: 0.55rem;
  font-family: var(--font-nav);
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--text-inverse);
  padding: 0.28rem 0;
  border-bottom: 1px dotted color-mix(in srgb, var(--text-inverse) 16%, transparent);
}
html[data-footer-style="telemetry"] .footer__links a::before {
  content: "[" counter(tlm, decimal-leading-zero) "]";
  flex: 0 0 auto;
  color: var(--accent);
  font-weight: 600;
  letter-spacing: 0.05em;
}
html[data-footer-style="telemetry"] .footer__links a:hover,
html[data-footer-style="telemetry"] .footer__links a:focus-visible {
  color: var(--text-inverse);
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  outline: none;
}
html[data-footer-style="telemetry"] .footer__links a:hover::after,
html[data-footer-style="telemetry"] .footer__links a:focus-visible::after {
  content: " \25C0";
  margin-left: auto;
  color: var(--accent);
}
html[data-footer-style="telemetry"] .footer__links a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

/* ---- Social icons ---- */
html[data-footer-style="telemetry"] .footer__social-icons {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
}
html[data-footer-style="telemetry"] .footer__social-icons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border: 1px solid color-mix(in srgb, var(--accent) 50%, transparent);
  border-radius: 2px;
  color: var(--text-inverse);
}
html[data-footer-style="telemetry"] .footer__social-icons a:hover,
html[data-footer-style="telemetry"] .footer__social-icons a:focus-visible {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 14%, transparent);
}
html[data-footer-style="telemetry"] .footer__social-icons svg {
  width: 1.05rem;
  height: 1.05rem;
  fill: currentColor;
}

/* ---- Bottom bar ---- */
html[data-footer-style="telemetry"] .footer__bottom {
  border-top: 1px solid color-mix(in srgb, var(--accent) 40%, transparent);
}
html[data-footer-style="telemetry"] .footer__bottom-inner {
  padding-top: 1.4rem;
  padding-bottom: 1.4rem;
  gap: 1rem;
}
html[data-footer-style="telemetry"] .footer__bottom-brand {
  display: inline-flex;
  align-items: center;
  color: var(--text-inverse);
}
html[data-footer-style="telemetry"] .footer__copyright {
  font-family: var(--font-nav);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-inverse) 72%, transparent);
}
html[data-footer-style="telemetry"] .footer__legal-links a {
  font-family: var(--font-nav);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--text-inverse);
}
html[data-footer-style="telemetry"] .footer__legal-links a:hover,
html[data-footer-style="telemetry"] .footer__legal-links a:focus-visible {
  text-decoration: underline;
  text-decoration-color: var(--accent);
  text-underline-offset: 3px;
}
html[data-footer-style="telemetry"] .footer__privacy-choices {
  font-family: var(--font-nav);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-inverse);
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--accent) 50%, transparent);
  border-radius: 2px;
  padding: 0.3rem 0.7rem;
  cursor: pointer;
}
html[data-footer-style="telemetry"] .footer__privacy-choices::before {
  content: "\25C9 ";
  color: var(--accent);
}
html[data-footer-style="telemetry"] .footer__privacy-choices:hover,
html[data-footer-style="telemetry"] .footer__privacy-choices:focus-visible {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 12%, transparent);
}

/* ---- ::after — micro-line stamp ---- */
html[data-footer-style="telemetry"] .footer__bottom-inner::after {
  content: "TELEMETRY NOMINAL \00B7 NOT FOR DISTRIBUTION";
  display: block;
  flex-basis: 100%;
  text-align: center;
  font-family: var(--font-nav);
  font-size: 0.6rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-inverse) 60%, transparent);
  margin-top: 0.65rem;
  padding-top: 0.65rem;
  border-top: 1px dashed color-mix(in srgb, var(--accent) 35%, transparent);
}

/* ---- Disclaimer ---- */
html[data-footer-style="telemetry"] .footer__disclaimer-wrap {
  border-top: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
}
html[data-footer-style="telemetry"] .footer__disclaimer {
  font-family: var(--font-nav);
  font-size: 0.68rem;
  line-height: 1.7;
  letter-spacing: 0.04em;
  color: color-mix(in srgb, var(--text-inverse) 68%, transparent);
  padding-top: 1.1rem;
  padding-bottom: 1.1rem;
}
html[data-footer-style="telemetry"] .footer__disclaimer::before {
  content: "// ";
  color: var(--accent);
}

/* ---- Reduced motion (no animations used, declared for safety) ---- */
@media (prefers-reduced-motion: reduce) {
  html[data-footer-style="telemetry"] .site-footer *,
  html[data-footer-style="telemetry"] .site-footer *::before,
  html[data-footer-style="telemetry"] .site-footer *::after {
    animation: none !important;
    transition: none !important;
  }
}

/* ===== FOOTER VARIANT: signoff (unscoped:0) ===== */
/* ============================================================
   FOOTER VARIANT: "signoff" — TRANSMISSION SIGN-OFF
   Classified dispatch: end-of-transmission banner, rotated
   CLASSIFIED stamp, callsign micro-line, corner-tick columns.
   Footer bg is navy in BOTH modes. Readable text = ivory.
   Accent only on thick/decorative bits (rules, ticks, stamp).
   ============================================================ */

/* ---- NEWSLETTER BAR : dispatch console ---- */
html[data-footer-style="signoff"] .newsletter-bar {
  border-top: 1px solid color-mix(in srgb, var(--accent) 60%, transparent);
  position: relative;
}
html[data-footer-style="signoff"] .newsletter-bar::before {
  content: "// INCOMING — OPEN CHANNEL";
  position: absolute;
  top: 10px;
  left: var(--container-pad, 24px);
  font-family: var(--font-nav);
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-inverse) 62%, transparent);
}
html[data-footer-style="signoff"] .newsletter-bar__inner {
  position: relative;
  padding-top: 18px;
}
html[data-footer-style="signoff"] .newsletter-bar__title {
  font-family: var(--font-heading);
  color: var(--text-inverse);
  letter-spacing: 0.02em;
}
html[data-footer-style="signoff"] .newsletter-bar__title::before {
  content: "▸ ";
  color: var(--accent);
}
html[data-footer-style="signoff"] .newsletter-bar__sub {
  font-family: var(--font-nav);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-inverse) 72%, transparent);
}
html[data-footer-style="signoff"] .newsletter-bar__input {
  font-family: var(--font-nav);
  letter-spacing: 0.08em;
  border: 1px solid color-mix(in srgb, var(--accent) 55%, transparent);
  background: color-mix(in srgb, var(--text-inverse) 6%, transparent);
  color: var(--text-inverse);
}
html[data-footer-style="signoff"] .newsletter-bar__input::placeholder {
  color: color-mix(in srgb, var(--text-inverse) 55%, transparent);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 12px;
}
html[data-footer-style="signoff"] .newsletter-bar__btn.btn--primary {
  font-family: var(--font-nav);
  text-transform: uppercase;
  letter-spacing: 0.2em;
}
html[data-footer-style="signoff"] .newsletter-bar__status {
  font-family: var(--font-nav);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-inverse) 70%, transparent);
}

/* ---- SITE FOOTER : transmission frame ---- */
html[data-footer-style="signoff"] .site-footer {
  position: relative;
  overflow: hidden;
}

/* END-OF-TRANSMISSION banner — centered, wide-tracked, accent-dimmed */
html[data-footer-style="signoff"] .site-footer::before {
  content: "// END OF TRANSMISSION //";
  display: block;
  text-align: center;
  font-family: var(--font-nav);
  font-size: clamp(11px, 1.6vw, 14px);
  letter-spacing: 0.45em;
  text-transform: uppercase;
  /* dimmed ivory keeps the readable-looking line AA-safe on navy */
  color: color-mix(in srgb, var(--text-inverse) 66%, transparent);
  padding: 22px 16px 20px;
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 50%, transparent);
  /* thick accent flank dashes — decorative only */
  background-image:
    linear-gradient(to right, var(--accent) 0 28px, transparent 28px),
    linear-gradient(to left, var(--accent) 0 28px, transparent 28px);
  background-repeat: no-repeat;
  background-position: left center, right center;
  background-size: 28px 2px, 28px 2px;
}

/* rotated CLASSIFIED stamp — decorative, bottom-right */
html[data-footer-style="signoff"] .site-footer::after {
  content: "CLASSIFIED";
  position: absolute;
  right: clamp(12px, 4vw, 48px);
  bottom: clamp(12px, 4vw, 40px);
  z-index: 1;
  pointer-events: none;
  font-family: var(--font-nav);
  font-weight: 700;
  font-size: clamp(13px, 2.2vw, 20px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--accent) 70%, transparent);
  padding: 6px 14px;
  border: 1px solid var(--accent);
  border-radius: 3px;
  background: color-mix(in srgb, var(--accent) 8%, transparent);
  transform: rotate(-6deg);
  opacity: 0.78;
}

/* ---- MAIN GRID : corner-ticked columns ---- */
html[data-footer-style="signoff"] .footer__main-inner {
  position: relative;
  z-index: 0;
}
html[data-footer-style="signoff"] .footer__nav,
html[data-footer-style="signoff"] .footer__social-icons {
  position: relative;
  padding: 14px 14px 10px;
}
/* top-left corner tick */
html[data-footer-style="signoff"] .footer__nav::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 14px;
  height: 14px;
  border-top: 2px solid color-mix(in srgb, var(--accent) 70%, transparent);
  border-left: 2px solid color-mix(in srgb, var(--accent) 70%, transparent);
  pointer-events: none;
}
/* bottom-right corner tick */
html[data-footer-style="signoff"] .footer__nav::after {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  width: 14px;
  height: 14px;
  border-bottom: 2px solid color-mix(in srgb, var(--accent) 70%, transparent);
  border-right: 2px solid color-mix(in srgb, var(--accent) 70%, transparent);
  pointer-events: none;
}

html[data-footer-style="signoff"] .footer__heading {
  font-family: var(--font-nav);
  text-transform: uppercase;
  letter-spacing: 0.26em;
  color: var(--text-inverse);
}
html[data-footer-style="signoff"] .footer__heading::before {
  content: "⌁ ";
  color: var(--accent);
}
html[data-footer-style="signoff"] .footer__links a {
  font-family: var(--font-nav);
  letter-spacing: 0.06em;
  color: var(--text-inverse);
}
html[data-footer-style="signoff"] .footer__links a:hover,
html[data-footer-style="signoff"] .footer__links a:focus-visible {
  color: var(--text-inverse);
  text-decoration-color: var(--accent);
}
html[data-footer-style="signoff"] .footer__links li {
  position: relative;
}
html[data-footer-style="signoff"] .footer__links li::marker {
  content: "";
}

/* ---- BOTTOM BAR : callsign sign-off ---- */
html[data-footer-style="signoff"] .footer__bottom {
  position: relative;
  border-top: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);
}
/* callsign sign-off micro-line above the bottom bar */
html[data-footer-style="signoff"] .footer__bottom::before {
  content: "STATION KC-7 · CALLSIGN “KEOCODES” · SIGNING OFF — OVER & OUT";
  display: block;
  text-align: center;
  font-family: var(--font-nav);
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-inverse) 60%, transparent);
  padding: 14px 16px 2px;
}
html[data-footer-style="signoff"] .footer__bottom-inner {
  position: relative;
  z-index: 0;
}
html[data-footer-style="signoff"] .footer__bottom-brand {
  font-family: var(--font-heading);
  color: var(--text-inverse);
}
html[data-footer-style="signoff"] .footer__copyright {
  font-family: var(--font-nav);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-inverse) 70%, transparent);
}
html[data-footer-style="signoff"] .footer__copyright::before {
  content: "© ";
  color: var(--accent);
}
html[data-footer-style="signoff"] .footer__legal-links a,
html[data-footer-style="signoff"] .footer__privacy-choices {
  font-family: var(--font-nav);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-inverse);
}
html[data-footer-style="signoff"] .footer__legal-links a:hover,
html[data-footer-style="signoff"] .footer__legal-links a:focus-visible,
html[data-footer-style="signoff"] .footer__privacy-choices:hover,
html[data-footer-style="signoff"] .footer__privacy-choices:focus-visible {
  text-decoration-color: var(--accent);
}

/* ---- DISCLAIMER ---- */
html[data-footer-style="signoff"] .footer__disclaimer-wrap {
  border-top: 1px dashed color-mix(in srgb, var(--accent) 40%, transparent);
}
html[data-footer-style="signoff"] .footer__disclaimer {
  font-family: var(--font-nav);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: color-mix(in srgb, var(--text-inverse) 66%, transparent);
}
html[data-footer-style="signoff"] .footer__disclaimer::before {
  content: "▣ RESTRICTED DISTRIBUTION — ";
  color: color-mix(in srgb, var(--text-inverse) 60%, transparent);
  letter-spacing: 0.18em;
}

/* ---- RESPONSIVE ---- */
@media (max-width: 640px) {
  html[data-footer-style="signoff"] .site-footer::before {
    letter-spacing: 0.28em;
  }
  html[data-footer-style="signoff"] .site-footer::after {
    position: static;
    display: inline-block;
    margin: 16px auto 4px;
    transform: rotate(-4deg);
  }
  html[data-footer-style="signoff"] .footer__bottom::before {
    letter-spacing: 0.18em;
    line-height: 1.6;
  }
}

/* ---- REDUCED MOTION (no animation declared; honored defensively) ---- */
@media (prefers-reduced-motion: reduce) {
  html[data-footer-style="signoff"] .site-footer::after {
    transform: rotate(-6deg);
  }
}

/* ===== FOOTER VARIANT: manifest (unscoped:0) ===== */
/* ============================================================
   FOOTER VARIANT: "manifest" — SPEC-SHEET / EQUIPMENT MANIFEST
   Utilitarian packing-list look: mono, tight, dotted leaders.
   Footer bg is navy in BOTH modes — readable text stays ivory.
   Accent (phosphor) used ONLY on rules/borders/dots/brackets.
   ============================================================ */

/* ---- NEWSLETTER BAR: manifest header block ---- */
html[data-footer-style="manifest"] .newsletter-bar {
  background: var(--bg-footer);
  border-top: 2px solid var(--accent);
  border-bottom: 1px dashed color-mix(in srgb, var(--text-inverse) 28%, transparent);
}
html[data-footer-style="manifest"] .newsletter-bar__inner {
  font-family: var(--font-nav);
  align-items: center;
}
html[data-footer-style="manifest"] .newsletter-bar__text {
  position: relative;
}
html[data-footer-style="manifest"] .newsletter-bar__title {
  font-family: var(--font-nav);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-inverse);
  margin: 0;
}
html[data-footer-style="manifest"] .newsletter-bar__title::before {
  content: "// ";
  color: var(--accent);
  font-weight: 700;
}
html[data-footer-style="manifest"] .newsletter-bar__sub {
  font-family: var(--font-nav);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-inverse) 68%, transparent);
  margin: 6px 0 0;
}
html[data-footer-style="manifest"] .newsletter-bar__fields {
  border: 1px solid color-mix(in srgb, var(--text-inverse) 30%, transparent);
  padding: 4px;
  border-radius: 0;
  background: color-mix(in srgb, var(--text-inverse) 4%, transparent);
}
html[data-footer-style="manifest"] .newsletter-bar__input {
  font-family: var(--font-nav);
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: transparent;
  border: 0;
  border-radius: 0;
  color: var(--text-inverse);
}
html[data-footer-style="manifest"] .newsletter-bar__input::placeholder {
  color: color-mix(in srgb, var(--text-inverse) 55%, transparent);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
html[data-footer-style="manifest"] .newsletter-bar__btn.btn {
  font-family: var(--font-nav);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 0;
}
html[data-footer-style="manifest"] .newsletter-bar__status {
  font-family: var(--font-nav);
  font-size: 11px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-inverse) 70%, transparent);
}

/* ---- FOOTER SHELL: hairline + manifest base ---- */
html[data-footer-style="manifest"] .site-footer {
  position: relative;
  background: var(--bg-footer);
  font-family: var(--font-nav);
}
/* top hairline */
html[data-footer-style="manifest"] .footer__main {
  border-top: 1px solid var(--accent);
  position: relative;
}
/* secondary faint scan hairline just under the accent rule */
html[data-footer-style="manifest"] .footer__main::before {
  content: "";
  position: absolute;
  top: 3px;
  left: 0;
  right: 0;
  height: 1px;
  background: color-mix(in srgb, var(--text-inverse) 18%, transparent);
}

html[data-footer-style="manifest"] .footer__main-inner {
  font-family: var(--font-nav);
}

/* ---- COLUMN HEADINGS: "// LABEL" mono eyebrow ---- */
html[data-footer-style="manifest"] .footer__heading {
  font-family: var(--font-nav);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-inverse);
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px dashed color-mix(in srgb, var(--text-inverse) 28%, transparent);
}
html[data-footer-style="manifest"] .footer__heading::before {
  content: "// ";
  color: var(--accent);
  font-weight: 700;
}

/* ---- LINK ROWS: dotted-leader packing-list rows ---- */
html[data-footer-style="manifest"] .footer__nav {
  align-items: stretch;
}
html[data-footer-style="manifest"] .footer__links {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}
html[data-footer-style="manifest"] .footer__links li {
  display: block;
}
html[data-footer-style="manifest"] .footer__links a {
  display: flex;
  align-items: baseline;
  font-family: var(--font-nav);
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-inverse);
  text-decoration: none;
  padding: 7px 0;
  border-bottom: 1px dotted color-mix(in srgb, var(--text-inverse) 30%, transparent);
  transition: color 0.15s ease, border-color 0.15s ease;
}
/* leading index tick (decorative accent square) */
html[data-footer-style="manifest"] .footer__links a::before {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  margin-right: 9px;
  flex: 0 0 auto;
  align-self: center;
  background: var(--accent);
}
/* dotted leader filling the row, then a generic qty marker */
html[data-footer-style="manifest"] .footer__links a::after {
  content: "× 1";
  margin-left: 8px;
  flex: 1 0 auto;
  text-align: right;
  font-size: 11px;
  letter-spacing: 0.08em;
  color: color-mix(in srgb, var(--text-inverse) 62%, transparent);
  border-bottom: 1px dotted color-mix(in srgb, var(--text-inverse) 30%, transparent);
  transform: translateY(-3px);
}
html[data-footer-style="manifest"] .footer__links a:hover {
  color: var(--text-inverse);
  border-bottom-color: var(--accent);
}
html[data-footer-style="manifest"] .footer__links a:hover::before {
  outline: 2px solid color-mix(in srgb, var(--accent) 60%, transparent);
  outline-offset: 1px;
}
html[data-footer-style="manifest"] .footer__links a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* ---- SOCIAL: bracketed mono cluster ---- */
html[data-footer-style="manifest"] .footer__social-icons {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 12px;
  border-top: 1px dashed color-mix(in srgb, var(--text-inverse) 26%, transparent);
}
html[data-footer-style="manifest"] .footer__social-icons::before {
  content: "[ CH ]";
  font-family: var(--font-nav);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: color-mix(in srgb, var(--text-inverse) 70%, transparent);
}
html[data-footer-style="manifest"] .footer__social-icons a {
  color: var(--text-inverse);
}

/* ---- BOTTOM BAR: manifest sign-off line ---- */
html[data-footer-style="manifest"] .footer__bottom {
  border-top: 1px dashed color-mix(in srgb, var(--text-inverse) 28%, transparent);
}
html[data-footer-style="manifest"] .footer__bottom-inner {
  font-family: var(--font-nav);
  align-items: center;
}
html[data-footer-style="manifest"] .footer__bottom-brand {
  color: var(--text-inverse);
}
html[data-footer-style="manifest"] .footer__bottom-legal {
  font-family: var(--font-nav);
}
html[data-footer-style="manifest"] .footer__copyright {
  font-family: var(--font-nav);
  font-size: 11px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--text-inverse) 72%, transparent);
}
html[data-footer-style="manifest"] .footer__copyright::before {
  content: "REV ";
  color: var(--accent);
  font-weight: 700;
}
html[data-footer-style="manifest"] .footer__legal-links a {
  font-family: var(--font-nav);
  font-size: 11px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-inverse);
  text-decoration: none;
  border-bottom: 1px dotted color-mix(in srgb, var(--text-inverse) 32%, transparent);
}
html[data-footer-style="manifest"] .footer__legal-links a:hover {
  border-bottom-color: var(--accent);
}
html[data-footer-style="manifest"] .footer__privacy-choices {
  font-family: var(--font-nav);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-inverse);
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--text-inverse) 32%, transparent);
  border-radius: 0;
  padding: 5px 10px;
}
html[data-footer-style="manifest"] .footer__privacy-choices:hover {
  border-color: var(--accent);
}

/* ---- DISCLAIMER: fine print ---- */
html[data-footer-style="manifest"] .footer__disclaimer-wrap {
  border-top: 1px dashed color-mix(in srgb, var(--text-inverse) 22%, transparent);
}
html[data-footer-style="manifest"] .footer__disclaimer {
  font-family: var(--font-nav);
  font-size: 10px;
  line-height: 1.7;
  letter-spacing: 0.03em;
  color: color-mix(in srgb, var(--text-inverse) 66%, transparent);
}

/* ---- BOTTOM STAMP: "INTERNAL // NOT FOR DISTRIBUTION" ---- */
html[data-footer-style="manifest"] .site-footer::after {
  content: "INTERNAL // NOT FOR DISTRIBUTION";
  display: block;
  font-family: var(--font-nav);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  text-align: center;
  color: color-mix(in srgb, var(--text-inverse) 64%, transparent);
  padding: 14px var(--container-pad);
  border-top: 2px solid var(--accent);
}

/* ---- RESPONSIVE: tighten on phones ---- */
@media (max-width: 600px) {
  html[data-footer-style="manifest"] .footer__links a::after { content: "×1"; }
  html[data-footer-style="manifest"] .site-footer::after { letter-spacing: 0.16em; }
  html[data-footer-style="manifest"] .newsletter-bar__inner { align-items: stretch; }
}

/* No animations introduced; reduced-motion guard for safety on hover transitions */
@media (prefers-reduced-motion: reduce) {
  html[data-footer-style="manifest"] .footer__links a { transition: none; }
}


/* ===== demo-only UI-style switcher (nav + footer) ===== */
#mc-uiswitch{position:fixed;left:14px;bottom:14px;z-index:9999;display:flex;flex-direction:column;gap:4px;font-family:var(--font-nav);background:#0a0c0b;border:1px solid color-mix(in srgb,var(--accent) 45%,#262b2e);border-radius:4px;padding:6px;box-shadow:0 8px 24px rgba(0,0,0,.5);}
.mc-uirow{display:flex;align-items:center;gap:4px;}
.mc-uirow>span{color:color-mix(in srgb,#e6e3da 55%,transparent);font-size:.54rem;letter-spacing:.14em;text-transform:uppercase;width:2.7em;flex:none;}
.mc-uirow button{font-family:var(--font-nav);font-size:.58rem;letter-spacing:.05em;text-transform:uppercase;color:#e6e3da;background:transparent;border:1px solid #262b2e;border-radius:2px;padding:4px 6px;cursor:pointer;white-space:nowrap;}
.mc-uirow button:hover{border-color:var(--accent);}
.mc-uirow button[aria-pressed="true"]{background:var(--accent);color:var(--on-accent);border-color:var(--accent);}
@media(max-width:680px){#mc-uiswitch{left:8px;right:8px;}.mc-uirow{flex-wrap:wrap;}}

/* ===================== SECTION DIVIDERS + HEADERS ===================== */
/* ================================================================
   SECTION DIVIDER + section-header (tactical dossier / HUD)
   Divider = ::before on every .page-section (hairline + corner ticks
   + mono register marks). Header = refined .section-header with a
   hairline-under-the-block carrying a short accent tick. Builds on the
   established MC tokens (--mc-hair / --mc-hair-strong / --mc-tick) and
   never re-adds the "// " eyebrow prefix or restyles .section-title type.
================================================================ */

/* ---- SECTION DIVIDER: top-boundary register line ---- */
.page-section{
  position:relative;
}
/* the hairline rule with interval tick-marks runs across the top inner edge */
.page-section::before{
  content:"";
  position:absolute;
  top:0;
  left:var(--container-pad);
  right:var(--container-pad);
  height:0;
  border-top:1px solid var(--mc-hair);
  /* faint dashed interval ticks sit on the rule via a repeating gradient mask */
  background-image:repeating-linear-gradient(
    90deg,
    var(--mc-hair-strong) 0 1px,
    transparent 1px 64px
  );
  background-position:left top;
  background-size:64px 6px;
  background-repeat:repeat-x;
  /* push the 6px-tall tick band so it straddles the rule */
  margin-top:-3px;
  height:6px;
  border-top:0;
  box-shadow:0 3px 0 -2.5px var(--mc-hair); /* the continuous hairline itself */
  pointer-events:none;
}
/* the band above only draws ticks; lay the actual hairline + L corner ticks
   + mono register marks on a second pseudo via .container so they align to
   the readable column. */
.page-section > .container{
  position:relative;
}
/* mono register marks at the ends of the divider — "+" crosshair (left) and
   "//" (right). Static, dimmed, generic. */
.page-section > .container::before{
  content:"+";
  position:absolute;
  top:0;
  left:0;
  transform:translateY(-58%);
  font-family:var(--font-nav);
  font-size:.78rem;
  line-height:1;
  font-weight:700;
  color:color-mix(in srgb,var(--accent) 78%,var(--text-secondary));
  background:var(--bg-section);   /* knock a notch out of the rule */
  padding-right:.35rem;
  letter-spacing:0;
  pointer-events:none;
}
.page-section > .container::after{
  content:"//";
  position:absolute;
  top:0;
  right:0;
  transform:translateY(-58%);
  font-family:var(--font-nav);
  font-size:.72rem;
  line-height:1;
  font-weight:700;
  letter-spacing:.06em;
  color:color-mix(in srgb,var(--text-secondary) 70%,transparent);
  background:var(--bg-section);
  padding-left:.4rem;
  pointer-events:none;
}
/* page-bg ("sand"/--bg-page) sections: the register-mark knockout must match
   that ground, not --bg-section */
.page-section--sand > .container::before,
.page-section--sand > .container::after{ background:var(--bg-page); }
.page-section--white > .container::before,
.page-section--white > .container::after{ background:#fff; }

/* the very first section after the hero usually needs no top boundary line */
.hero + .page-section::before{ opacity:0; }
.hero + .page-section > .container::before,
.hero + .page-section > .container::after{ display:none; }

/* ---- NAVY sections: flip divider + register marks to ivory ---- */
.page-section--navy::before{
  border-color:transparent;
  background-image:repeating-linear-gradient(
    90deg,
    color-mix(in srgb,var(--text-inverse) 30%,transparent) 0 1px,
    transparent 1px 64px
  );
  box-shadow:0 3px 0 -2.5px color-mix(in srgb,var(--text-inverse) 22%,transparent);
}
.page-section--navy > .container::before{
  color:var(--accent);
  background:var(--color-navy);
}
.page-section--navy > .container::after{
  color:color-mix(in srgb,var(--text-inverse) 55%,transparent);
  background:var(--color-navy);
}

/* ================================================================
   .section-header — dossier block: eyebrow / title / sub with a
   hairline under the whole header carrying a short accent tick.
================================================================ */
.section-header{
  position:relative;
  padding-bottom:1.1rem;
  margin-bottom:2.5rem;
  border-bottom:1px solid var(--mc-hair);
}
/* short accent tick sitting on the header hairline (left-aligned) */
.section-header::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-1px;
  width:48px;
  height:2px;
  background:var(--accent);
  pointer-events:none;
}
/* tighten eyebrow→title→sub rhythm without touching their type rules */
.section-header .section-eyebrow{ margin-bottom:.55rem; }
.section-header .section-title{ margin-bottom:.5rem; }
.section-header .section-sub{ margin-bottom:0; }

/* centered variant: hairline tightened to the text column, tick centered */
.section-header--center{
  display:flex;
  flex-direction:column;
  align-items:center;
}
.section-header--center::after{
  left:50%;
  transform:translateX(-50%);
}

/* ---- NAVY header: ivory hairline, accent tick stays phosphor ---- */
.page-section--navy .section-header{
  border-bottom-color:color-mix(in srgb,var(--text-inverse) 22%,transparent);
}
.page-section--navy .section-title{ color:var(--text-inverse); }
.page-section--navy .section-eyebrow{ color:var(--text-inverse); }
.page-section--navy .section-sub{
  color:color-mix(in srgb,var(--text-inverse) 78%,transparent);
}
/* eyebrow stays --accent (phosphor reads AA on navy), tick stays --accent */

/* ---- DARK MODE: divider/header hairlines already track the tokens, but the
   register-mark knockouts must use the dark grounds ---- */
@media (prefers-color-scheme:dark){
  .page-section > .container::before,
  .page-section > .container::after{ background:var(--bg-section); }
  .page-section--sand > .container::before,
  .page-section--sand > .container::after{ background:var(--bg-page); }
  .page-section--white > .container::before,
  .page-section--white > .container::after{ background:var(--bg-section); }
}
/* ===== NAV VARIANT: minimal — SLIM single-row nav (refs: Ukraine Miltech / Black Sea Navi) =====
   Collapses the engine's two stacked bars onto ONE compact row: logo left ·
   plain-text nav centered (accent underline on active) · one outlined CTA pill right.
   Secondary utility links are hidden to keep it clean. ~52px tall, not two bars. */
html[data-nav-style="minimal"] .site-header{position:relative;background:var(--bg-header);border-bottom:1px solid color-mix(in srgb,var(--text-inverse) 10%,transparent);box-shadow:none;}
html[data-nav-style="minimal"] .site-header__utility{background:transparent;}
html[data-nav-style="minimal"] .site-header__utility-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.55rem;padding-bottom:.55rem;min-height:0;}
html[data-nav-style="minimal"] .site-header__brand{display:flex;align-items:center;gap:.5rem;color:var(--text-inverse);text-decoration:none;}
html[data-nav-style="minimal"] .site-header__logo-icon{color:var(--accent);}
html[data-nav-style="minimal"] .site-header__brand-name{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.06em;font-size:1.02rem;line-height:1;color:var(--text-inverse);}
/* hide the secondary utility links — keep it to logo + nav + one CTA */
html[data-nav-style="minimal"] .site-header__util-link,
html[data-nav-style="minimal"] .site-header__search-btn{display:none;}
/* single outlined CTA pill on the right (the "Support Us" slot) */
html[data-nav-style="minimal"] .site-header__portal-pill{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.08em;font-size:.66rem;font-weight:600;color:var(--text-inverse);background:transparent;border:1px solid color-mix(in srgb,var(--text-inverse) 38%,transparent);border-radius:999px;padding:.42rem .95rem;text-decoration:none;transition:border-color .16s,background .16s;}
html[data-nav-style="minimal"] .site-header__portal-pill:hover,html[data-nav-style="minimal"] .site-header__portal-pill:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);}
html[data-nav-style="minimal"] .nav__hamburger-line{background:var(--text-inverse);}
/* pull the main nav onto the SAME row (centered), so there's no second-bar height */
html[data-nav-style="minimal"] .site-header__nav-bar{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:transparent;border:0;padding:0;pointer-events:none;}
html[data-nav-style="minimal"] .site-header__nav-bar .container{width:auto;max-width:none;margin:0;padding:0;pointer-events:none;}
html[data-nav-style="minimal"] .site-nav__list{display:flex;align-items:center;gap:1.85rem;list-style:none;margin:0;padding:0;pointer-events:auto;}
/* plain-text links, accent underline on active (ref: Ukraine Miltech) */
html[data-nav-style="minimal"] .site-nav__link{position:relative;font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.07em;font-size:.74rem;color:color-mix(in srgb,var(--text-inverse) 72%,transparent);text-decoration:none;background:transparent;border:0;border-radius:0;padding:.35rem 0;line-height:1;transition:color .16s;}
html[data-nav-style="minimal"] .site-nav__link:hover,html[data-nav-style="minimal"] .site-nav__link:focus-visible{color:var(--text-inverse);}
html[data-nav-style="minimal"] .site-nav__link--active{color:var(--text-inverse);background:transparent;border:0;}
html[data-nav-style="minimal"] .site-nav__link--active::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;background:var(--accent);}
html[data-nav-style="minimal"] .site-nav__link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
/* mobile: keep the engine's overlay (re-hide the absolute nav-bar that our higher
   specificity un-hid; the hamburger opens the #nav-overlay) */
@media (max-width:767px){ html[data-nav-style="minimal"] .site-header__nav-bar{display:none;} }
html[data-nav-style="minimal"] .nav-overlay{background:var(--bg-header);}
html[data-nav-style="minimal"] .nav-overlay__link{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.08em;color:var(--text-inverse);text-decoration:none;}


/* ===================== CLIENT PORTAL (themed MC) =====================
   The portal loads the public header (so this file + theme vars/fonts apply),
   but portal.css loads AFTER it — so out-specify portal.css with the
   data-active-theme prefix. Portal sits on the page bg → text = --text-primary,
   accent for labels/active (AA: phosphor-light 4.9:1 on off-white). */
html[data-active-theme^="missioncritical"] .portal-scope{font-family:var(--font-body);}
html[data-active-theme^="missioncritical"] .portal-auth__card,
html[data-active-theme^="missioncritical"] .portal-card{position:relative;background:var(--bg-card);border:1px solid color-mix(in srgb,var(--text-secondary) 36%,transparent);border-radius:2px;box-shadow:none;}
html[data-active-theme^="missioncritical"] .portal-auth__card::after,
html[data-active-theme^="missioncritical"] .portal-card::after{content:"";position:absolute;bottom:6px;right:6px;width:16px;height:16px;border-right:1.5px solid color-mix(in srgb,var(--text-primary) 24%,transparent);border-bottom:1.5px solid color-mix(in srgb,var(--text-primary) 24%,transparent);pointer-events:none;}
html[data-active-theme^="missioncritical"] .portal-auth__card::before{content:"// SECURE PORTAL — AUTHORIZED ACCESS";display:block;font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.16em;font-size:.62rem;font-weight:700;color:var(--accent);margin-bottom:1rem;}
html[data-active-theme^="missioncritical"] .portal-auth__title,
html[data-active-theme^="missioncritical"] .portal-card__title,
html[data-active-theme^="missioncritical"] .portal-dash-header__greeting{font-family:var(--font-heading);color:var(--text-primary);letter-spacing:-.01em;font-weight:700;}
html[data-active-theme^="missioncritical"] .portal-auth__intro,
html[data-active-theme^="missioncritical"] .portal-dash-header__sub,
html[data-active-theme^="missioncritical"] .portal-field-help{font-family:var(--font-body);color:var(--text-secondary);}
html[data-active-theme^="missioncritical"] .portal-field label,
html[data-active-theme^="missioncritical"] .portal-field>span{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;color:var(--text-secondary);}
html[data-active-theme^="missioncritical"] .portal-field input,
html[data-active-theme^="missioncritical"] .portal-field select,
html[data-active-theme^="missioncritical"] .portal-field textarea{font-family:var(--font-body);border-radius:2px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);}
html[data-active-theme^="missioncritical"] .portal-field input:focus,
html[data-active-theme^="missioncritical"] .portal-field select:focus,
html[data-active-theme^="missioncritical"] .portal-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);}
html[data-active-theme^="missioncritical"] .portal-btn{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.08em;font-weight:700;border-radius:2px;background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);}
html[data-active-theme^="missioncritical"] .portal-btn--ghost{background:transparent;color:var(--accent);}
html[data-active-theme^="missioncritical"] .portal-sidenav__link{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.08em;font-size:.74rem;color:var(--text-secondary);border-radius:2px;}
html[data-active-theme^="missioncritical"] .portal-sidenav__link--active,
html[data-active-theme^="missioncritical"] .portal-sidenav__link.active{color:var(--on-accent);background:var(--accent);}
html[data-active-theme^="missioncritical"] .portal-sidenav__who{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.1em;font-size:.66rem;color:var(--text-secondary);}
html[data-active-theme^="missioncritical"] .portal-badge{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.06em;border-radius:2px;}
html[data-active-theme^="missioncritical"] .portal-breadcrumb{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;}


/* ============================================================================
   CLIENT PORTAL — DEEP "INTERNAL OPS CONSOLE" PASS  (append-only overrides)
   ----------------------------------------------------------------------------
   Goal vibe: full-minimal military / classified INTERNAL TOOL — terse, mono,
   hairline frames, registration ticks, ALL-CAPS labels with // or > prefixes,
   status dots, spec-sheet density, restrained accent. NOT a marketing site.

   Every selector is html[data-active-theme^="missioncritical"]-prefixed so it
   beats both the baseline portal block above AND portal.css (later in source +
   higher specificity). Color rules:
     - portal sits on --bg-page → body text = --text-primary, muted = --text-secondary
     - TEXT ON AN ACCENT FILL = var(--on-accent)   (NEVER --accent-text/--brass-on)
     - accent AS text on the page bg is AA-safe (phosphor-light 4.9:1 on off-white)
   Local tick / hairline tokens (fall back to the file-level ones if present):
   ========================================================================== */
html[data-active-theme^="missioncritical"] .portal-scope{
  --p-hair:color-mix(in srgb,var(--text-secondary) 34%,transparent);
  --p-hair-strong:color-mix(in srgb,var(--text-primary) 22%,transparent);
  --p-tick:color-mix(in srgb,var(--text-primary) 30%,transparent);
  --p-tick-accent:color-mix(in srgb,var(--accent) 70%,transparent);
  --p-tint:color-mix(in srgb,var(--accent) 7%,var(--bg-card));
  --p-grid:color-mix(in srgb,var(--text-secondary) 9%,transparent);
  font-family:var(--font-body);
  color:var(--text-primary);
  letter-spacing:.003em;
}

/* ---- shared corner-tick mixin via a reusable pseudo recipe -------------------
   We draw L-shaped registration ticks at corners with layered linear-gradients
   on ::before (top-left + top-right) so cards read like spec sheets. ::after is
   reserved for the bottom-right tick already defined in the baseline block. */
html[data-active-theme^="missioncritical"] .portal-card,
html[data-active-theme^="missioncritical"] .portal-auth__card{
  --tk:11px;            /* tick arm length */
  --tkw:1.5px;         /* tick weight */
  background:var(--bg-card);
  border:1px solid var(--p-hair);
  border-radius:2px;
  box-shadow:none;
  position:relative;
}
/* top-left + top-right ticks (accent-tinted, decorative only) */
html[data-active-theme^="missioncritical"] .portal-card::before,
html[data-active-theme^="missioncritical"] .portal-auth__card::before{
  pointer-events:none;
}
html[data-active-theme^="missioncritical"] .portal-card{
  background-image:
    linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),
    linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),
    linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),
    linear-gradient(var(--p-tick-accent),var(--p-tick-accent));
  background-repeat:no-repeat;
  background-size:
    var(--tk) var(--tkw), var(--tkw) var(--tk),   /* top-left: horiz, vert */
    var(--tk) var(--tkw), var(--tkw) var(--tk);   /* top-right: horiz, vert */
  background-position:
    6px 6px, 6px 6px,
    calc(100% - 6px) 6px, calc(100% - 6px) 6px;
}
/* keep the baseline bottom-right corner tick, just make it accent-tinted + crisper */
html[data-active-theme^="missioncritical"] .portal-card::after,
html[data-active-theme^="missioncritical"] .portal-auth__card::after{
  content:"";position:absolute;bottom:6px;right:6px;width:11px;height:11px;
  border-right:1.5px solid var(--p-tick);
  border-bottom:1.5px solid var(--p-tick);
  pointer-events:none;
}

/* ---- card titles → mono "spec-sheet" header with a > marker + hairline rule -- */
html[data-active-theme^="missioncritical"] .portal-card__title{
  font-family:var(--font-nav);
  text-transform:uppercase;
  letter-spacing:.13em;
  font-weight:700;
  font-size:.74rem;
  color:var(--text-primary);
  display:flex;align-items:center;gap:.5ch;
  padding-bottom:.6rem;margin-bottom:.9rem;
  border-bottom:1px solid var(--p-hair);
}
html[data-active-theme^="missioncritical"] .portal-card__title::before{
  content:">";color:var(--accent);font-weight:700;opacity:.9;
}

/* ============================================================================
   LOGIN  →  "SECURE ACCESS" TERMINAL CARD
   ========================================================================== */
html[data-active-theme^="missioncritical"] .portal-auth__card{
  --tk:13px;--tkw:1.5px;
  background:var(--p-tint);
  border:1px solid var(--p-hair-strong);
  padding-top:2.6rem;
  overflow:hidden;
}
/* four corner registration ticks (all accent) — drawn with bg gradients */
html[data-active-theme^="missioncritical"] .portal-auth__card{
  background-image:
    linear-gradient(var(--p-tint),var(--p-tint)),                 /* base tint as layer 0 */
    linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),
    linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),
    linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),
    linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),
    linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),
    linear-gradient(var(--p-tick-accent),var(--p-tick-accent));
  background-repeat:no-repeat;
  background-size:
    100% 100%,
    var(--tk) var(--tkw), var(--tkw) var(--tk),
    var(--tk) var(--tkw), var(--tkw) var(--tk),
    var(--tk) var(--tkw), var(--tkw) var(--tk);
  background-position:
    0 0,
    7px 7px, 7px 7px,                                  /* top-left */
    calc(100% - 7px) 7px, calc(100% - 7px) 7px,        /* top-right */
    7px calc(100% - 7px), 7px calc(100% - 7px);        /* bottom-left */
}
/* eyebrow: // AUTHORIZED ACCESS — overrides baseline "// SECURE PORTAL…" copy */
html[data-active-theme^="missioncritical"] .portal-auth__card::before{
  content:"// AUTHORIZED ACCESS";
  display:flex;align-items:center;gap:.6ch;
  position:absolute;top:0;left:0;right:0;
  font-family:var(--font-nav);
  text-transform:uppercase;letter-spacing:.22em;
  font-size:.6rem;font-weight:700;
  color:var(--accent);
  background:color-mix(in srgb,var(--accent) 11%,transparent);
  border-bottom:1px solid var(--p-tick-accent);
  padding:.55rem .9rem;
  margin:0;
}
/* blinking caret on the eyebrow (respect reduced motion below) */
html[data-active-theme^="missioncritical"] .portal-auth__card::after{
  content:"";position:absolute;top:.5rem;right:.85rem;
  width:7px;height:.78rem;background:var(--accent);
  border:0;animation:mc-blink 1.1s steps(1) infinite;
  opacity:.85;pointer-events:none;
}
@keyframes mc-blink{50%{opacity:0;}}
html[data-active-theme^="missioncritical"] .portal-auth__title{
  font-family:var(--font-heading);
  color:var(--text-primary);
  letter-spacing:-.01em;font-weight:700;
  font-size:1.45rem;line-height:1.1;margin-bottom:.5rem;
}
html[data-active-theme^="missioncritical"] .portal-auth__title::after{
  content:" ▮";color:var(--accent);font-size:.7em;vertical-align:baseline;opacity:.55;
}
html[data-active-theme^="missioncritical"] .portal-auth__intro{
  font-family:var(--font-body);color:var(--text-secondary);
  font-size:.82rem;line-height:1.5;
}
html[data-active-theme^="missioncritical"] .portal-auth__intro::before{
  content:"// ";color:var(--accent);opacity:.7;
}
html[data-active-theme^="missioncritical"] .portal-login__note,
html[data-active-theme^="missioncritical"] .portal-login__signup{
  font-family:var(--font-nav);font-size:.7rem;letter-spacing:.04em;
  color:var(--text-secondary);
}
html[data-active-theme^="missioncritical"] .portal-login__signup a{
  color:var(--accent);text-decoration:none;border-bottom:1px solid var(--p-tick-accent);
}

/* ============================================================================
   DASHBOARD  →  OPS CONSOLE  (Space Grotesk greeting + // OPERATOR sub + strip)
   The live markup uses .portal-page-title / .portal-stat-row; the spec lists
   .portal-dash-header — style BOTH so either renders the console look.
   ========================================================================== */
html[data-active-theme^="missioncritical"] .portal-dash-header__greeting,
html[data-active-theme^="missioncritical"] .portal-page-title{
  font-family:var(--font-heading);
  color:var(--text-primary);
  letter-spacing:-.015em;font-weight:700;
  font-size:clamp(1.5rem,3.6vw,2.05rem);line-height:1.05;
  margin-bottom:.35rem;
}
/* mono "// OPERATOR: …" sub line. Drives the page intro under the greeting. */
html[data-active-theme^="missioncritical"] .portal-dash-header__sub{
  font-family:var(--font-nav);
  text-transform:uppercase;letter-spacing:.13em;
  font-size:.68rem;font-weight:600;
  color:var(--text-secondary);
  display:flex;align-items:center;gap:.55ch;flex-wrap:wrap;
}
html[data-active-theme^="missioncritical"] .portal-dash-header__sub::before{
  content:"// OPERATOR:";color:var(--accent);font-weight:700;
}
/* thin status / telemetry strip feel for the stat row */
html[data-active-theme^="missioncritical"] .portal-stat-row{
  border-top:1px solid var(--p-hair);
  border-bottom:1px solid var(--p-hair);
  background:
    repeating-linear-gradient(90deg,transparent 0 13px,var(--p-grid) 13px 13.5px);
  gap:0;
  margin:1.1rem 0 1.4rem;
}
html[data-active-theme^="missioncritical"] .portal-stat{
  position:relative;
  padding:.7rem 1.1rem;
  border-right:1px solid var(--p-hair);
}
html[data-active-theme^="missioncritical"] .portal-stat:first-child{border-left:1px solid var(--p-hair);}
html[data-active-theme^="missioncritical"] .portal-stat__value{
  font-family:var(--font-heading);font-weight:700;
  color:var(--text-primary);font-size:1.5rem;line-height:1;
  font-variant-numeric:tabular-nums;
}
html[data-active-theme^="missioncritical"] .portal-stat__label{
  font-family:var(--font-nav);text-transform:uppercase;
  letter-spacing:.12em;font-size:.58rem;color:var(--text-secondary);
}
html[data-active-theme^="missioncritical"] .portal-stat__label::before{
  content:"▸ ";color:var(--accent);opacity:.75;
}
/* bento → tighten the grid gutters for spec-sheet density */
html[data-active-theme^="missioncritical"] .portal-bento{
  gap:1px;
  background:var(--p-hair);
  border:1px solid var(--p-hair);
}
html[data-active-theme^="missioncritical"] .portal-bento .portal-card{
  border:0;border-radius:0;
  background-image:none; /* drop per-card top ticks inside the gridded bento */
}
html[data-active-theme^="missioncritical"] .portal-bento .portal-card::after{display:none;}

/* ============================================================================
   SIDENAV  →  COMMAND RAIL
   ========================================================================== */
html[data-active-theme^="missioncritical"] .portal-sidebar{
  border-right:1px solid var(--p-hair);
}
html[data-active-theme^="missioncritical"] .portal-sidenav{
  position:relative;
}
/* a rail header label */
html[data-active-theme^="missioncritical"] .portal-sidenav::before{
  content:"// COMMAND";
  display:block;
  font-family:var(--font-nav);
  text-transform:uppercase;letter-spacing:.2em;
  font-size:.56rem;font-weight:700;
  color:var(--text-secondary);
  padding:.2rem .65rem .7rem;
  border-bottom:1px solid var(--p-hair);
  margin-bottom:.55rem;
}
html[data-active-theme^="missioncritical"] .portal-sidenav__link{
  position:relative;
  font-family:var(--font-nav);
  text-transform:uppercase;letter-spacing:.09em;
  font-size:.72rem;font-weight:600;
  color:var(--text-secondary);
  border-radius:2px;
  padding:.5rem .65rem .5rem 1.6rem;
  transition:color .14s ease,background .14s ease;
}
/* > marker before every command-rail link */
html[data-active-theme^="missioncritical"] .portal-sidenav__link::before{
  content:">";
  position:absolute;left:.6rem;top:50%;transform:translateY(-50%);
  color:var(--p-tick);font-weight:700;
  transition:color .14s ease;
}
html[data-active-theme^="missioncritical"] .portal-sidenav__link:hover{
  color:var(--text-primary);
  background:color-mix(in srgb,var(--accent) 9%,transparent);
}
html[data-active-theme^="missioncritical"] .portal-sidenav__link:hover::before{color:var(--accent);}
/* shrink any inline svg glyph so the > marker leads */
html[data-active-theme^="missioncritical"] .portal-sidenav__link svg{
  width:14px;height:14px;opacity:.7;flex:0 0 auto;
}
/* ACTIVE — accent fill, text on accent = --on-accent (AA-safe), marker flips to // */
html[data-active-theme^="missioncritical"] .portal-sidenav__link--active,
html[data-active-theme^="missioncritical"] .portal-sidenav__link.active{
  color:var(--on-accent);
  background:var(--accent);
  font-weight:700;
}
html[data-active-theme^="missioncritical"] .portal-sidenav__link--active::before,
html[data-active-theme^="missioncritical"] .portal-sidenav__link.active::before{
  content:"//";color:var(--on-accent);
}
html[data-active-theme^="missioncritical"] .portal-sidenav__link--active svg,
html[data-active-theme^="missioncritical"] .portal-sidenav__link.active svg{opacity:1;}
/* SIGN-OUT — danger-tinted command */
html[data-active-theme^="missioncritical"] .portal-sidenav__link--signout{
  color:color-mix(in srgb,var(--color-rust,#b3261e) 78%,var(--text-secondary));
}
html[data-active-theme^="missioncritical"] .portal-sidenav__link--signout::before{content:"//";}
html[data-active-theme^="missioncritical"] .portal-sidenav__link--signout:hover{
  color:#fff;
  background:color-mix(in srgb,var(--color-rust,#b3261e) 82%,transparent);
}
html[data-active-theme^="missioncritical"] .portal-sidenav__link--signout:hover::before{color:#fff;}
/* foot block + who-line → "● ONLINE" operator readout */
html[data-active-theme^="missioncritical"] .portal-sidenav__foot{
  border-top:1px solid var(--p-hair);
  margin-top:.75rem;padding-top:.75rem;
}
html[data-active-theme^="missioncritical"] .portal-sidenav__who{
  display:flex;align-items:center;gap:.5ch;
  font-family:var(--font-nav);
  text-transform:uppercase;letter-spacing:.11em;
  font-size:.62rem;color:var(--text-secondary);
  padding:0 .65rem .55rem;
}
html[data-active-theme^="missioncritical"] .portal-sidenav__who::before{
  content:"● ONLINE / ";
  color:var(--accent);font-weight:700;letter-spacing:.06em;
}

/* ============================================================================
   FIELDS  →  mono, ALL-CAPS labels, accent focus
   ========================================================================== */
html[data-active-theme^="missioncritical"] .portal-field>label,
html[data-active-theme^="missioncritical"] .portal-field>span:first-child{
  font-family:var(--font-nav);
  text-transform:uppercase;letter-spacing:.13em;
  font-size:.64rem;font-weight:600;
  color:var(--text-secondary);
  display:block;margin-bottom:.35rem;
}
html[data-active-theme^="missioncritical"] .portal-field>label::before,
html[data-active-theme^="missioncritical"] .portal-field>span:first-child::before{
  content:"› ";color:var(--accent);opacity:.8;
}
html[data-active-theme^="missioncritical"] .portal-field input,
html[data-active-theme^="missioncritical"] .portal-field select,
html[data-active-theme^="missioncritical"] .portal-field textarea{
  font-family:var(--font-body);
  border-radius:2px;
  border:1px solid var(--border);
  background:var(--bg-card);
  color:var(--text-primary);
  letter-spacing:.01em;
}
html[data-active-theme^="missioncritical"] .portal-field input::placeholder,
html[data-active-theme^="missioncritical"] .portal-field textarea::placeholder{
  color:color-mix(in srgb,var(--text-secondary) 70%,transparent);
  text-transform:uppercase;letter-spacing:.08em;font-size:.82em;
}
html[data-active-theme^="missioncritical"] .portal-field input:focus,
html[data-active-theme^="missioncritical"] .portal-field select:focus,
html[data-active-theme^="missioncritical"] .portal-field textarea:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 1px var(--accent);
  background:color-mix(in srgb,var(--accent) 4%,var(--bg-card));
}
html[data-active-theme^="missioncritical"] .portal-field-help{
  font-family:var(--font-nav);
  font-size:.64rem;letter-spacing:.04em;
  color:var(--text-secondary);
}
html[data-active-theme^="missioncritical"] .portal-field-help::before{
  content:"// ";color:var(--accent);opacity:.65;
}

/* ============================================================================
   BUTTONS  →  TACTICAL PILLS  (accent fill text = --on-accent)
   ========================================================================== */
html[data-active-theme^="missioncritical"] .portal-btn{
  font-family:var(--font-nav);
  text-transform:uppercase;letter-spacing:.1em;
  font-weight:700;font-size:.72rem;
  border-radius:2px;
  background:var(--accent);
  color:var(--on-accent);
  border:1px solid var(--accent);
  padding:.55rem 1.05rem;
  transition:filter .14s ease,background .14s ease,color .14s ease,border-color .14s ease;
}
html[data-active-theme^="missioncritical"] .portal-btn:hover{filter:brightness(1.08);}
html[data-active-theme^="missioncritical"] .portal-btn:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;
}
html[data-active-theme^="missioncritical"] .portal-btn--ghost{
  background:transparent;
  color:var(--accent);
  border:1px solid var(--p-tick-accent);
}
html[data-active-theme^="missioncritical"] .portal-btn--ghost:hover{
  filter:none;
  background:color-mix(in srgb,var(--accent) 12%,transparent);
  border-color:var(--accent);
}
html[data-active-theme^="missioncritical"] .portal-btn--danger{
  background:var(--color-rust,#b3261e);
  color:#fff;
  border-color:var(--color-rust,#b3261e);
}
html[data-active-theme^="missioncritical"] .portal-btn--sm{
  font-size:.62rem;letter-spacing:.09em;padding:.36rem .7rem;
}

/* ============================================================================
   BADGES  →  mono status chips
   ========================================================================== */
html[data-active-theme^="missioncritical"] .portal-badge{
  font-family:var(--font-nav);
  text-transform:uppercase;letter-spacing:.09em;
  font-size:.6rem;font-weight:700;
  border-radius:2px;
  padding:.18rem .5rem;
  display:inline-flex;align-items:center;gap:.4ch;
  border:1px solid var(--p-tick-accent);
  background:color-mix(in srgb,var(--accent) 10%,transparent);
  color:var(--accent);
  line-height:1;
}
/* status dot inside every chip */
html[data-active-theme^="missioncritical"] .portal-badge::before{
  content:"";width:5px;height:5px;border-radius:50%;
  background:currentColor;flex:0 0 auto;
}
/* state modifiers — keep AA: colored chip text is the chip's own dark/neutral hue */
html[data-active-theme^="missioncritical"] .portal-badge--open,
html[data-active-theme^="missioncritical"] .portal-badge--active,
html[data-active-theme^="missioncritical"] .portal-badge--success{
  color:color-mix(in srgb,var(--accent) 84%,var(--text-primary));
  background:color-mix(in srgb,var(--accent) 12%,transparent);
  border-color:var(--p-tick-accent);
}
html[data-active-theme^="missioncritical"] .portal-badge--closed,
html[data-active-theme^="missioncritical"] .portal-badge--resolved,
html[data-active-theme^="missioncritical"] .portal-badge--neutral{
  color:var(--text-secondary);
  background:color-mix(in srgb,var(--text-secondary) 12%,transparent);
  border-color:var(--p-hair);
}
html[data-active-theme^="missioncritical"] .portal-badge--warning,
html[data-active-theme^="missioncritical"] .portal-badge--pending,
html[data-active-theme^="missioncritical"] .portal-badge--priority-high{
  color:color-mix(in srgb,var(--color-amber,#9a6a00) 88%,var(--text-primary));
  background:color-mix(in srgb,var(--color-amber,#c9870a) 16%,transparent);
  border-color:color-mix(in srgb,var(--color-amber,#c9870a) 45%,transparent);
}
html[data-active-theme^="missioncritical"] .portal-badge--error,
html[data-active-theme^="missioncritical"] .portal-badge--urgent,
html[data-active-theme^="missioncritical"] .portal-badge--priority-urgent{
  color:color-mix(in srgb,var(--color-rust,#b3261e) 86%,var(--text-primary));
  background:color-mix(in srgb,var(--color-rust,#b3261e) 14%,transparent);
  border-color:color-mix(in srgb,var(--color-rust,#b3261e) 45%,transparent);
}

/* ============================================================================
   ALERTS  →  bordered TACTICAL CALLOUTS  (incl --info)
   ========================================================================== */
html[data-active-theme^="missioncritical"] .portal-alert{
  position:relative;
  font-family:var(--font-body);
  font-size:.82rem;line-height:1.5;
  border:1px solid var(--p-hair);
  border-left:3px solid var(--text-secondary);
  border-radius:2px;
  background:color-mix(in srgb,var(--text-secondary) 7%,var(--bg-card));
  color:var(--text-primary);
  padding:.7rem .9rem .7rem 2.4rem;
}
/* mono prefix tag in the gutter */
html[data-active-theme^="missioncritical"] .portal-alert::before{
  content:"//";
  position:absolute;left:.8rem;top:.72rem;
  font-family:var(--font-nav);font-weight:700;font-size:.74rem;
  color:var(--text-secondary);
}
html[data-active-theme^="missioncritical"] .portal-alert--info{
  border-left-color:var(--accent);
  background:color-mix(in srgb,var(--accent) 8%,var(--bg-card));
}
html[data-active-theme^="missioncritical"] .portal-alert--info::before{content:"// INFO";left:.8rem;color:var(--accent);}
html[data-active-theme^="missioncritical"] .portal-alert--success{
  border-left-color:color-mix(in srgb,var(--accent) 80%,var(--text-primary));
  background:color-mix(in srgb,var(--accent) 9%,var(--bg-card));
}
html[data-active-theme^="missioncritical"] .portal-alert--success::before{content:"// OK";color:color-mix(in srgb,var(--accent) 84%,var(--text-primary));}
html[data-active-theme^="missioncritical"] .portal-alert--warning{
  border-left-color:var(--color-amber,#c9870a);
  background:color-mix(in srgb,var(--color-amber,#c9870a) 12%,var(--bg-card));
}
html[data-active-theme^="missioncritical"] .portal-alert--warning::before{content:"// WARN";color:color-mix(in srgb,var(--color-amber,#9a6a00) 90%,var(--text-primary));}
html[data-active-theme^="missioncritical"] .portal-alert--error{
  border-left-color:var(--color-rust,#b3261e);
  background:color-mix(in srgb,var(--color-rust,#b3261e) 11%,var(--bg-card));
}
html[data-active-theme^="missioncritical"] .portal-alert--error::before{content:"// ALERT";color:color-mix(in srgb,var(--color-rust,#b3261e) 86%,var(--text-primary));}
/* widen the gutter for the longer prefix tags */
html[data-active-theme^="missioncritical"] .portal-alert--info,
html[data-active-theme^="missioncritical"] .portal-alert--success,
html[data-active-theme^="missioncritical"] .portal-alert--warning,
html[data-active-theme^="missioncritical"] .portal-alert--error{padding-left:4.6rem;}

/* ============================================================================
   EMPTY STATES  →  "// NO RECORDS" mono
   ========================================================================== */
html[data-active-theme^="missioncritical"] .portal-empty{
  border:1px dashed var(--p-hair-strong);
  border-radius:2px;
  background:
    repeating-linear-gradient(45deg,transparent 0 9px,var(--p-grid) 9px 9.5px);
  padding:2.2rem 1.4rem;
  text-align:center;
}
html[data-active-theme^="missioncritical"] .portal-empty__icon{
  color:var(--text-secondary);opacity:.55;
}
html[data-active-theme^="missioncritical"] .portal-empty__heading{
  font-family:var(--font-nav);
  text-transform:uppercase;letter-spacing:.18em;
  font-size:.74rem;font-weight:700;
  color:var(--text-secondary);
  margin:.5rem 0 .3rem;
}
html[data-active-theme^="missioncritical"] .portal-empty__heading::before{
  content:"// NO RECORDS — ";color:var(--accent);
}
html[data-active-theme^="missioncritical"] .portal-empty__body{
  font-family:var(--font-body);font-size:.78rem;
  color:var(--text-secondary);line-height:1.5;
}

/* ============================================================================
   FILE ITEMS  →  spec-sheet rows
   ========================================================================== */
html[data-active-theme^="missioncritical"] .portal-fileitem{
  border:1px solid var(--p-hair);
  border-radius:2px;
  background:var(--bg-card);
  transition:border-color .14s ease,background .14s ease;
}
html[data-active-theme^="missioncritical"] .portal-fileitem:hover{
  border-color:var(--p-tick-accent);
  background:color-mix(in srgb,var(--accent) 5%,var(--bg-card));
}
html[data-active-theme^="missioncritical"] .portal-fileitem__icon{
  color:var(--accent);opacity:.85;
}
html[data-active-theme^="missioncritical"] .portal-fileitem__name{
  font-family:var(--font-body);color:var(--text-primary);
  font-size:.84rem;letter-spacing:.01em;
}
html[data-active-theme^="missioncritical"] .portal-fileitem__meta{
  font-family:var(--font-nav);
  text-transform:uppercase;letter-spacing:.09em;
  font-size:.6rem;color:var(--text-secondary);
}
html[data-active-theme^="missioncritical"] .portal-fileitem__dot{
  color:color-mix(in srgb,var(--text-secondary) 60%,transparent);
}
html[data-active-theme^="missioncritical"] .portal-fileitem__actions .portal-btn{margin:0;}

/* ============================================================================
   DROPZONE  →  intake terminal
   ========================================================================== */
html[data-active-theme^="missioncritical"] .portal-dropzone{
  border:1.5px dashed var(--p-tick-accent);
  border-radius:2px;
  background:
    repeating-linear-gradient(45deg,transparent 0 11px,var(--p-grid) 11px 11.5px),
    var(--bg-card);
  transition:border-color .14s ease,background .14s ease;
}
html[data-active-theme^="missioncritical"] .portal-dropzone:hover,
html[data-active-theme^="missioncritical"] .portal-dropzone.is-dragover,
html[data-active-theme^="missioncritical"] .portal-dropzone:focus-within{
  border-color:var(--accent);
  background:
    repeating-linear-gradient(45deg,transparent 0 11px,color-mix(in srgb,var(--accent) 8%,transparent) 11px 11.5px),
    color-mix(in srgb,var(--accent) 4%,var(--bg-card));
}
html[data-active-theme^="missioncritical"] .portal-dropzone__icon{color:var(--accent);opacity:.85;}
html[data-active-theme^="missioncritical"] .portal-dropzone__title{
  font-family:var(--font-nav);
  text-transform:uppercase;letter-spacing:.14em;
  font-size:.74rem;font-weight:700;color:var(--text-primary);
}
html[data-active-theme^="missioncritical"] .portal-dropzone__title::before{
  content:"// ";color:var(--accent);
}
html[data-active-theme^="missioncritical"] .portal-dropzone__hint,
html[data-active-theme^="missioncritical"] .portal-dropzone__copy{
  font-family:var(--font-nav);font-size:.62rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--text-secondary);
}
html[data-active-theme^="missioncritical"] .portal-dropzone__browse{
  font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.08em;
  color:var(--accent);text-decoration:none;
  border-bottom:1px solid var(--p-tick-accent);
}
/* staged-file chip → spec row */
html[data-active-theme^="missioncritical"] .portal-dropzone__chip{
  border:1px solid var(--p-hair);
  border-radius:2px;
  background:color-mix(in srgb,var(--accent) 6%,var(--bg-card));
  font-family:var(--font-body);
}
html[data-active-theme^="missioncritical"] .portal-dropzone__chip-icon{color:var(--accent);}
html[data-active-theme^="missioncritical"] .portal-dropzone__chip-name{
  color:var(--text-primary);font-size:.8rem;
}
html[data-active-theme^="missioncritical"] .portal-dropzone__chip-size{
  font-family:var(--font-nav);font-size:.6rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--text-secondary);
}
html[data-active-theme^="missioncritical"] .portal-dropzone__chip-swap{
  font-family:var(--font-nav);text-transform:uppercase;
  font-size:.6rem;letter-spacing:.08em;color:var(--accent);
}

/* ============================================================================
   BREADCRUMB  →  path readout   ( DIR > SUBDIR > NODE )
   ========================================================================== */
html[data-active-theme^="missioncritical"] .portal-breadcrumb{
  font-family:var(--font-nav);
  text-transform:uppercase;letter-spacing:.1em;
  font-size:.62rem;color:var(--text-secondary);
  display:flex;align-items:center;gap:.5ch;flex-wrap:wrap;
}
html[data-active-theme^="missioncritical"] .portal-breadcrumb::before{
  content:"//";color:var(--accent);font-weight:700;margin-right:.2ch;
}
html[data-active-theme^="missioncritical"] .portal-breadcrumb a{
  color:var(--text-secondary);text-decoration:none;
}
html[data-active-theme^="missioncritical"] .portal-breadcrumb a:hover{color:var(--accent);}
html[data-active-theme^="missioncritical"] .portal-breadcrumb__sep{
  color:var(--p-tick);
}
html[data-active-theme^="missioncritical"] .portal-breadcrumb__sep::before{content:"›";}
html[data-active-theme^="missioncritical"] .portal-breadcrumb__current{
  color:var(--text-primary);font-weight:700;
}

/* ============================================================================
   DIVIDER  →  hairline rule with a centered mono tick
   ========================================================================== */
html[data-active-theme^="missioncritical"] .portal-divider{
  border:0;height:1px;
  background:var(--p-hair);
  position:relative;
  margin:1.6rem 0;
  overflow:visible;
}
html[data-active-theme^="missioncritical"] .portal-divider::before{
  content:"//";
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  background:var(--bg-page);
  padding:0 .55rem;
  font-family:var(--font-nav);font-size:.6rem;font-weight:700;
  letter-spacing:.18em;color:var(--p-tick);
}

/* ============================================================================
   SOLO SHELL (auth pages, no sidebar) — center + cap width like a terminal
   ========================================================================== */
html[data-active-theme^="missioncritical"] .portal-shell--solo{
  background-image:
    linear-gradient(var(--p-grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--p-grid) 1px,transparent 1px);
  background-size:30px 30px;
}

/* ---- prefers-reduced-motion: kill the blinking caret + any transitions ---- */
@media (prefers-reduced-motion:reduce){
  html[data-active-theme^="missioncritical"] .portal-auth__card::after{animation:none;}
  html[data-active-theme^="missioncritical"] .portal-scope *{
    transition-duration:.001ms!important;
  }
}


/* ============================================================
   INTERNAL-TOOL DEEPENING — portal + newsletter + footer (append-only overrides)
   ============================================================ */

/* ---- PORTAL ---- */
/* ============================================================================
   CLIENT PORTAL — DEEP "INTERNAL OPS CONSOLE" PASS  (append-only overrides)
   Every selector is html[data-active-theme^="missioncritical"]-prefixed so it
   beats the baseline portal block AND portal.css (later in source + higher
   specificity). TEXT ON ACCENT FILL = var(--on-accent) only.
   ========================================================================== */
html[data-active-theme^="missioncritical"] .portal-scope{
  --p-hair:color-mix(in srgb,var(--text-secondary) 34%,transparent);
  --p-hair-strong:color-mix(in srgb,var(--text-primary) 22%,transparent);
  --p-tick:color-mix(in srgb,var(--text-primary) 30%,transparent);
  --p-tick-accent:color-mix(in srgb,var(--accent) 70%,transparent);
  --p-tint:color-mix(in srgb,var(--accent) 7%,var(--bg-card));
  --p-grid:color-mix(in srgb,var(--text-secondary) 9%,transparent);
  font-family:var(--font-body);color:var(--text-primary);letter-spacing:.003em;
}
html[data-active-theme^="missioncritical"] .portal-card,
html[data-active-theme^="missioncritical"] .portal-auth__card{--tk:11px;--tkw:1.5px;background:var(--bg-card);border:1px solid var(--p-hair);border-radius:2px;box-shadow:none;position:relative;}
html[data-active-theme^="missioncritical"] .portal-card::before,
html[data-active-theme^="missioncritical"] .portal-auth__card::before{pointer-events:none;}
html[data-active-theme^="missioncritical"] .portal-card{background-image:linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),linear-gradient(var(--p-tick-accent),var(--p-tick-accent));background-repeat:no-repeat;background-size:var(--tk) var(--tkw),var(--tkw) var(--tk),var(--tk) var(--tkw),var(--tkw) var(--tk);background-position:6px 6px,6px 6px,calc(100% - 6px) 6px,calc(100% - 6px) 6px;}
html[data-active-theme^="missioncritical"] .portal-card::after,
html[data-active-theme^="missioncritical"] .portal-auth__card::after{content:"";position:absolute;bottom:6px;right:6px;width:11px;height:11px;border-right:1.5px solid var(--p-tick);border-bottom:1.5px solid var(--p-tick);pointer-events:none;}
html[data-active-theme^="missioncritical"] .portal-card__title{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.13em;font-weight:700;font-size:.74rem;color:var(--text-primary);display:flex;align-items:center;gap:.5ch;padding-bottom:.6rem;margin-bottom:.9rem;border-bottom:1px solid var(--p-hair);}
html[data-active-theme^="missioncritical"] .portal-card__title::before{content:">";color:var(--accent);font-weight:700;opacity:.9;}
/* LOGIN — SECURE ACCESS terminal card */
html[data-active-theme^="missioncritical"] .portal-auth__card{--tk:13px;--tkw:1.5px;background:var(--p-tint);border:1px solid var(--p-hair-strong);padding-top:2.6rem;overflow:hidden;background-image:linear-gradient(var(--p-tint),var(--p-tint)),linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),linear-gradient(var(--p-tick-accent),var(--p-tick-accent)),linear-gradient(var(--p-tick-accent),var(--p-tick-accent));background-repeat:no-repeat;background-size:100% 100%,var(--tk) var(--tkw),var(--tkw) var(--tk),var(--tk) var(--tkw),var(--tkw) var(--tk),var(--tk) var(--tkw),var(--tkw) var(--tk);background-position:0 0,7px 7px,7px 7px,calc(100% - 7px) 7px,calc(100% - 7px) 7px,7px calc(100% - 7px),7px calc(100% - 7px);}
html[data-active-theme^="missioncritical"] .portal-auth__card::before{content:"// AUTHORIZED ACCESS";display:flex;align-items:center;gap:.6ch;position:absolute;top:0;left:0;right:0;font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.22em;font-size:.6rem;font-weight:700;color:var(--accent);background:color-mix(in srgb,var(--accent) 11%,transparent);border-bottom:1px solid var(--p-tick-accent);padding:.55rem .9rem;margin:0;}
html[data-active-theme^="missioncritical"] .portal-auth__card::after{content:"";position:absolute;top:.5rem;right:.85rem;width:7px;height:.78rem;background:var(--accent);border:0;animation:mc-blink 1.1s steps(1) infinite;opacity:.85;pointer-events:none;}
@keyframes mc-blink{50%{opacity:0;}}
html[data-active-theme^="missioncritical"] .portal-auth__title{font-family:var(--font-heading);color:var(--text-primary);letter-spacing:-.01em;font-weight:700;font-size:1.45rem;line-height:1.1;margin-bottom:.5rem;}
html[data-active-theme^="missioncritical"] .portal-auth__title::after{content:" ▮";color:var(--accent);font-size:.7em;vertical-align:baseline;opacity:.55;}
html[data-active-theme^="missioncritical"] .portal-auth__intro{font-family:var(--font-body);color:var(--text-secondary);font-size:.82rem;line-height:1.5;}
html[data-active-theme^="missioncritical"] .portal-auth__intro::before{content:"// ";color:var(--accent);opacity:.7;}
html[data-active-theme^="missioncritical"] .portal-login__note,
html[data-active-theme^="missioncritical"] .portal-login__signup{font-family:var(--font-nav);font-size:.7rem;letter-spacing:.04em;color:var(--text-secondary);}
html[data-active-theme^="missioncritical"] .portal-login__signup a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--p-tick-accent);}
/* DASHBOARD — ops console */
html[data-active-theme^="missioncritical"] .portal-dash-header__greeting,
html[data-active-theme^="missioncritical"] .portal-page-title{font-family:var(--font-heading);color:var(--text-primary);letter-spacing:-.015em;font-weight:700;font-size:clamp(1.5rem,3.6vw,2.05rem);line-height:1.05;margin-bottom:.35rem;}
html[data-active-theme^="missioncritical"] .portal-dash-header__sub{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.13em;font-size:.68rem;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:.55ch;flex-wrap:wrap;}
html[data-active-theme^="missioncritical"] .portal-dash-header__sub::before{content:"// OPERATOR:";color:var(--accent);font-weight:700;}
html[data-active-theme^="missioncritical"] .portal-stat-row{border-top:1px solid var(--p-hair);border-bottom:1px solid var(--p-hair);background:repeating-linear-gradient(90deg,transparent 0 13px,var(--p-grid) 13px 13.5px);gap:0;margin:1.1rem 0 1.4rem;}
html[data-active-theme^="missioncritical"] .portal-stat{position:relative;padding:.7rem 1.1rem;border-right:1px solid var(--p-hair);}
html[data-active-theme^="missioncritical"] .portal-stat:first-child{border-left:1px solid var(--p-hair);}
html[data-active-theme^="missioncritical"] .portal-stat__value{font-family:var(--font-heading);font-weight:700;color:var(--text-primary);font-size:1.5rem;line-height:1;font-variant-numeric:tabular-nums;}
html[data-active-theme^="missioncritical"] .portal-stat__label{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.12em;font-size:.58rem;color:var(--text-secondary);}
html[data-active-theme^="missioncritical"] .portal-stat__label::before{content:"▸ ";color:var(--accent);opacity:.75;}
html[data-active-theme^="missioncritical"] .portal-bento{gap:1px;background:var(--p-hair);border:1px solid var(--p-hair);}
html[data-active-theme^="missioncritical"] .portal-bento .portal-card{border:0;border-radius:0;background-image:none;}
html[data-active-theme^="missioncritical"] .portal-bento .portal-card::after{display:none;}
/* SIDENAV — command rail */
html[data-active-theme^="missioncritical"] .portal-sidebar{border-right:1px solid var(--p-hair);}
html[data-active-theme^="missioncritical"] .portal-sidenav{position:relative;}
html[data-active-theme^="missioncritical"] .portal-sidenav::before{content:"// COMMAND";display:block;font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.2em;font-size:.56rem;font-weight:700;color:var(--text-secondary);padding:.2rem .65rem .7rem;border-bottom:1px solid var(--p-hair);margin-bottom:.55rem;}
html[data-active-theme^="missioncritical"] .portal-sidenav__link{position:relative;font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.09em;font-size:.72rem;font-weight:600;color:var(--text-secondary);border-radius:2px;padding:.5rem .65rem .5rem 1.6rem;transition:color .14s ease,background .14s ease;}
html[data-active-theme^="missioncritical"] .portal-sidenav__link::before{content:">";position:absolute;left:.6rem;top:50%;transform:translateY(-50%);color:var(--p-tick);font-weight:700;transition:color .14s ease;}
html[data-active-theme^="missioncritical"] .portal-sidenav__link:hover{color:var(--text-primary);background:color-mix(in srgb,var(--accent) 9%,transparent);}
html[data-active-theme^="missioncritical"] .portal-sidenav__link:hover::before{color:var(--accent);}
html[data-active-theme^="missioncritical"] .portal-sidenav__link svg{width:14px;height:14px;opacity:.7;flex:0 0 auto;}
html[data-active-theme^="missioncritical"] .portal-sidenav__link--active,
html[data-active-theme^="missioncritical"] .portal-sidenav__link.active{color:var(--on-accent);background:var(--accent);font-weight:700;}
html[data-active-theme^="missioncritical"] .portal-sidenav__link--active::before,
html[data-active-theme^="missioncritical"] .portal-sidenav__link.active::before{content:"//";color:var(--on-accent);}
html[data-active-theme^="missioncritical"] .portal-sidenav__link--active svg,
html[data-active-theme^="missioncritical"] .portal-sidenav__link.active svg{opacity:1;}
html[data-active-theme^="missioncritical"] .portal-sidenav__link--signout{color:color-mix(in srgb,var(--color-rust,#b3261e) 78%,var(--text-secondary));}
html[data-active-theme^="missioncritical"] .portal-sidenav__link--signout::before{content:"//";}
html[data-active-theme^="missioncritical"] .portal-sidenav__link--signout:hover{color:#fff;background:color-mix(in srgb,var(--color-rust,#b3261e) 82%,transparent);}
html[data-active-theme^="missioncritical"] .portal-sidenav__link--signout:hover::before{color:#fff;}
html[data-active-theme^="missioncritical"] .portal-sidenav__foot{border-top:1px solid var(--p-hair);margin-top:.75rem;padding-top:.75rem;}
html[data-active-theme^="missioncritical"] .portal-sidenav__who{display:flex;align-items:center;gap:.5ch;font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.11em;font-size:.62rem;color:var(--text-secondary);padding:0 .65rem .55rem;}
html[data-active-theme^="missioncritical"] .portal-sidenav__who::before{content:"● ONLINE / ";color:var(--accent);font-weight:700;letter-spacing:.06em;}
/* FIELDS */
html[data-active-theme^="missioncritical"] .portal-field>label,
html[data-active-theme^="missioncritical"] .portal-field>span:first-child{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.13em;font-size:.64rem;font-weight:600;color:var(--text-secondary);display:block;margin-bottom:.35rem;}
html[data-active-theme^="missioncritical"] .portal-field>label::before,
html[data-active-theme^="missioncritical"] .portal-field>span:first-child::before{content:"› ";color:var(--accent);opacity:.8;}
html[data-active-theme^="missioncritical"] .portal-field input,
html[data-active-theme^="missioncritical"] .portal-field select,
html[data-active-theme^="missioncritical"] .portal-field textarea{font-family:var(--font-body);border-radius:2px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);letter-spacing:.01em;}
html[data-active-theme^="missioncritical"] .portal-field input::placeholder,
html[data-active-theme^="missioncritical"] .portal-field textarea::placeholder{color:color-mix(in srgb,var(--text-secondary) 70%,transparent);text-transform:uppercase;letter-spacing:.08em;font-size:.82em;}
html[data-active-theme^="missioncritical"] .portal-field input:focus,
html[data-active-theme^="missioncritical"] .portal-field select:focus,
html[data-active-theme^="missioncritical"] .portal-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:color-mix(in srgb,var(--accent) 4%,var(--bg-card));}
html[data-active-theme^="missioncritical"] .portal-field-help{font-family:var(--font-nav);font-size:.64rem;letter-spacing:.04em;color:var(--text-secondary);}
html[data-active-theme^="missioncritical"] .portal-field-help::before{content:"// ";color:var(--accent);opacity:.65;}
/* BUTTONS — tactical pills */
html[data-active-theme^="missioncritical"] .portal-btn{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.1em;font-weight:700;font-size:.72rem;border-radius:2px;background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);padding:.55rem 1.05rem;transition:filter .14s ease,background .14s ease,color .14s ease,border-color .14s ease;}
html[data-active-theme^="missioncritical"] .portal-btn:hover{filter:brightness(1.08);}
html[data-active-theme^="missioncritical"] .portal-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
html[data-active-theme^="missioncritical"] .portal-btn--ghost{background:transparent;color:var(--accent);border:1px solid var(--p-tick-accent);}
html[data-active-theme^="missioncritical"] .portal-btn--ghost:hover{filter:none;background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:var(--accent);}
html[data-active-theme^="missioncritical"] .portal-btn--danger{background:var(--color-rust,#b3261e);color:#fff;border-color:var(--color-rust,#b3261e);}
html[data-active-theme^="missioncritical"] .portal-btn--sm{font-size:.62rem;letter-spacing:.09em;padding:.36rem .7rem;}
/* BADGES — mono status chips */
html[data-active-theme^="missioncritical"] .portal-badge{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.09em;font-size:.6rem;font-weight:700;border-radius:2px;padding:.18rem .5rem;display:inline-flex;align-items:center;gap:.4ch;border:1px solid var(--p-tick-accent);background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent);line-height:1;}
html[data-active-theme^="missioncritical"] .portal-badge::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex:0 0 auto;}
html[data-active-theme^="missioncritical"] .portal-badge--open,
html[data-active-theme^="missioncritical"] .portal-badge--active,
html[data-active-theme^="missioncritical"] .portal-badge--success{color:color-mix(in srgb,var(--accent) 84%,var(--text-primary));background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:var(--p-tick-accent);}
html[data-active-theme^="missioncritical"] .portal-badge--closed,
html[data-active-theme^="missioncritical"] .portal-badge--resolved,
html[data-active-theme^="missioncritical"] .portal-badge--neutral{color:var(--text-secondary);background:color-mix(in srgb,var(--text-secondary) 12%,transparent);border-color:var(--p-hair);}
html[data-active-theme^="missioncritical"] .portal-badge--warning,
html[data-active-theme^="missioncritical"] .portal-badge--pending,
html[data-active-theme^="missioncritical"] .portal-badge--priority-high{color:color-mix(in srgb,var(--color-amber,#9a6a00) 88%,var(--text-primary));background:color-mix(in srgb,var(--color-amber,#c9870a) 16%,transparent);border-color:color-mix(in srgb,var(--color-amber,#c9870a) 45%,transparent);}
html[data-active-theme^="missioncritical"] .portal-badge--error,
html[data-active-theme^="missioncritical"] .portal-badge--urgent,
html[data-active-theme^="missioncritical"] .portal-badge--priority-urgent{color:color-mix(in srgb,var(--color-rust,#b3261e) 86%,var(--text-primary));background:color-mix(in srgb,var(--color-rust,#b3261e) 14%,transparent);border-color:color-mix(in srgb,var(--color-rust,#b3261e) 45%,transparent);}
/* ALERTS — tactical callouts */
html[data-active-theme^="missioncritical"] .portal-alert{position:relative;font-family:var(--font-body);font-size:.82rem;line-height:1.5;border:1px solid var(--p-hair);border-left:3px solid var(--text-secondary);border-radius:2px;background:color-mix(in srgb,var(--text-secondary) 7%,var(--bg-card));color:var(--text-primary);padding:.7rem .9rem .7rem 2.4rem;}
html[data-active-theme^="missioncritical"] .portal-alert::before{content:"//";position:absolute;left:.8rem;top:.72rem;font-family:var(--font-nav);font-weight:700;font-size:.74rem;color:var(--text-secondary);}
html[data-active-theme^="missioncritical"] .portal-alert--info{border-left-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg-card));}
html[data-active-theme^="missioncritical"] .portal-alert--info::before{content:"// INFO";left:.8rem;color:var(--accent);}
html[data-active-theme^="missioncritical"] .portal-alert--success{border-left-color:color-mix(in srgb,var(--accent) 80%,var(--text-primary));background:color-mix(in srgb,var(--accent) 9%,var(--bg-card));}
html[data-active-theme^="missioncritical"] .portal-alert--success::before{content:"// OK";color:color-mix(in srgb,var(--accent) 84%,var(--text-primary));}
html[data-active-theme^="missioncritical"] .portal-alert--warning{border-left-color:var(--color-amber,#c9870a);background:color-mix(in srgb,var(--color-amber,#c9870a) 12%,var(--bg-card));}
html[data-active-theme^="missioncritical"] .portal-alert--warning::before{content:"// WARN";color:color-mix(in srgb,var(--color-amber,#9a6a00) 90%,var(--text-primary));}
html[data-active-theme^="missioncritical"] .portal-alert--error{border-left-color:var(--color-rust,#b3261e);background:color-mix(in srgb,var(--color-rust,#b3261e) 11%,var(--bg-card));}
html[data-active-theme^="missioncritical"] .portal-alert--error::before{content:"// ALERT";color:color-mix(in srgb,var(--color-rust,#b3261e) 86%,var(--text-primary));}
html[data-active-theme^="missioncritical"] .portal-alert--info,
html[data-active-theme^="missioncritical"] .portal-alert--success,
html[data-active-theme^="missioncritical"] .portal-alert--warning,
html[data-active-theme^="missioncritical"] .portal-alert--error{padding-left:4.6rem;}
/* EMPTY STATES — // NO RECORDS */
html[data-active-theme^="missioncritical"] .portal-empty{border:1px dashed var(--p-hair-strong);border-radius:2px;background:repeating-linear-gradient(45deg,transparent 0 9px,var(--p-grid) 9px 9.5px);padding:2.2rem 1.4rem;text-align:center;}
html[data-active-theme^="missioncritical"] .portal-empty__icon{color:var(--text-secondary);opacity:.55;}
html[data-active-theme^="missioncritical"] .portal-empty__heading{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.18em;font-size:.74rem;font-weight:700;color:var(--text-secondary);margin:.5rem 0 .3rem;}
html[data-active-theme^="missioncritical"] .portal-empty__heading::before{content:"// NO RECORDS — ";color:var(--accent);}
html[data-active-theme^="missioncritical"] .portal-empty__body{font-family:var(--font-body);font-size:.78rem;color:var(--text-secondary);line-height:1.5;}
/* FILE ITEMS */
html[data-active-theme^="missioncritical"] .portal-fileitem{border:1px solid var(--p-hair);border-radius:2px;background:var(--bg-card);transition:border-color .14s ease,background .14s ease;}
html[data-active-theme^="missioncritical"] .portal-fileitem:hover{border-color:var(--p-tick-accent);background:color-mix(in srgb,var(--accent) 5%,var(--bg-card));}
html[data-active-theme^="missioncritical"] .portal-fileitem__icon{color:var(--accent);opacity:.85;}
html[data-active-theme^="missioncritical"] .portal-fileitem__name{font-family:var(--font-body);color:var(--text-primary);font-size:.84rem;letter-spacing:.01em;}
html[data-active-theme^="missioncritical"] .portal-fileitem__meta{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.09em;font-size:.6rem;color:var(--text-secondary);}
html[data-active-theme^="missioncritical"] .portal-fileitem__dot{color:color-mix(in srgb,var(--text-secondary) 60%,transparent);}
html[data-active-theme^="missioncritical"] .portal-fileitem__actions .portal-btn{margin:0;}
/* DROPZONE */
html[data-active-theme^="missioncritical"] .portal-dropzone{border:1.5px dashed var(--p-tick-accent);border-radius:2px;background:repeating-linear-gradient(45deg,transparent 0 11px,var(--p-grid) 11px 11.5px),var(--bg-card);transition:border-color .14s ease,background .14s ease;}
html[data-active-theme^="missioncritical"] .portal-dropzone:hover,
html[data-active-theme^="missioncritical"] .portal-dropzone.is-dragover,
html[data-active-theme^="missioncritical"] .portal-dropzone:focus-within{border-color:var(--accent);background:repeating-linear-gradient(45deg,transparent 0 11px,color-mix(in srgb,var(--accent) 8%,transparent) 11px 11.5px),color-mix(in srgb,var(--accent) 4%,var(--bg-card));}
html[data-active-theme^="missioncritical"] .portal-dropzone__icon{color:var(--accent);opacity:.85;}
html[data-active-theme^="missioncritical"] .portal-dropzone__title{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;font-weight:700;color:var(--text-primary);}
html[data-active-theme^="missioncritical"] .portal-dropzone__title::before{content:"// ";color:var(--accent);}
html[data-active-theme^="missioncritical"] .portal-dropzone__hint,
html[data-active-theme^="missioncritical"] .portal-dropzone__copy{font-family:var(--font-nav);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);}
html[data-active-theme^="missioncritical"] .portal-dropzone__browse{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.08em;color:var(--accent);text-decoration:none;border-bottom:1px solid var(--p-tick-accent);}
html[data-active-theme^="missioncritical"] .portal-dropzone__chip{border:1px solid var(--p-hair);border-radius:2px;background:color-mix(in srgb,var(--accent) 6%,var(--bg-card));font-family:var(--font-body);}
html[data-active-theme^="missioncritical"] .portal-dropzone__chip-icon{color:var(--accent);}
html[data-active-theme^="missioncritical"] .portal-dropzone__chip-name{color:var(--text-primary);font-size:.8rem;}
html[data-active-theme^="missioncritical"] .portal-dropzone__chip-size{font-family:var(--font-nav);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);}
html[data-active-theme^="missioncritical"] .portal-dropzone__chip-swap{font-family:var(--font-nav);text-transform:uppercase;font-size:.6rem;letter-spacing:.08em;color:var(--accent);}
/* BREADCRUMB — path readout */
html[data-active-theme^="missioncritical"] .portal-breadcrumb{font-family:var(--font-nav);text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;color:var(--text-secondary);display:flex;align-items:center;gap:.5ch;flex-wrap:wrap;}
html[data-active-theme^="missioncritical"] .portal-breadcrumb::before{content:"//";color:var(--accent);font-weight:700;margin-right:.2ch;}
html[data-active-theme^="missioncritical"] .portal-breadcrumb a{color:var(--text-secondary);text-decoration:none;}
html[data-active-theme^="missioncritical"] .portal-breadcrumb a:hover{color:var(--accent);}
html[data-active-theme^="missioncritical"] .portal-breadcrumb__sep{color:var(--p-tick);}
html[data-active-theme^="missioncritical"] .portal-breadcrumb__sep::before{content:"›";}
html[data-active-theme^="missioncritical"] .portal-breadcrumb__current{color:var(--text-primary);font-weight:700;}
/* DIVIDER */
html[data-active-theme^="missioncritical"] .portal-divider{border:0;height:1px;background:var(--p-hair);position:relative;margin:1.6rem 0;overflow:visible;}
html[data-active-theme^="missioncritical"] .portal-divider::before{content:"//";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--bg-page);padding:0 .55rem;font-family:var(--font-nav);font-size:.6rem;font-weight:700;letter-spacing:.18em;color:var(--p-tick);}
/* SOLO SHELL */
html[data-active-theme^="missioncritical"] .portal-shell--solo{background-image:linear-gradient(var(--p-grid) 1px,transparent 1px),linear-gradient(90deg,var(--p-grid) 1px,transparent 1px);background-size:30px 30px;}
/* prefers-reduced-motion */
@media (prefers-reduced-motion:reduce){
  html[data-active-theme^="missioncritical"] .portal-auth__card::after{animation:none;}
  html[data-active-theme^="missioncritical"] .portal-scope *{transition-duration:.001ms!important;}
}

/* ---- NEWSLETTER ---- */
/* ============================================================
   MISSION CRITICAL — Newsletter bar reframed as "FIELD DISPATCHES"
   secure-channel subscribe. Navy band -> ivory text, accent
   decorative only. Append-only overrides; every selector prefixed
   to beat the base .newsletter-* rules on specificity + source order.
   ============================================================ */

/* --- The band: navy, hairline accent rules top & bottom --- */
html[data-active-theme^="missioncritical"] .newsletter-bar {
  background: var(--bg-page);
  border: none;
  border-top: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);
  border-bottom: 1px solid var(--border);
  padding: 40px 0;
  position: relative;
}
/* registration-tick row sitting on the top hairline */
html[data-active-theme^="missioncritical"] .newsletter-bar::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
  background-image: repeating-linear-gradient(
    to right,
    color-mix(in srgb, var(--accent) 55%, transparent) 0,
    color-mix(in srgb, var(--accent) 55%, transparent) 1px,
    transparent 1px,
    transparent 22px
  );
  opacity: 0.7;
  pointer-events: none;
}

html[data-active-theme^="missioncritical"] .newsletter-bar__inner {
  align-items: flex-start;
  gap: 40px;
  column-gap: 56px;
}

/* --- Text column: mono eyebrow + terse title + mono sub --- */
html[data-active-theme^="missioncritical"] .newsletter-bar__text {
  position: relative;
}
/* "// FIELD DISPATCHES" eyebrow injected above the title */
html[data-active-theme^="missioncritical"] .newsletter-bar__text::before {
  content: "// FIELD DISPATCHES";
  display: block;
  font-family: var(--font-nav, var(--font-body));
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 10px;
  line-height: 1;
}

html[data-active-theme^="missioncritical"] .newsletter-bar__title {
  font-family: var(--font-heading);
  font-size: 21px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--text-inverse);
  margin: 0 0 8px;
  line-height: 1.15;
}

html[data-active-theme^="missioncritical"] .newsletter-bar__sub {
  font-family: var(--font-body);
  font-size: 12.5px;
  letter-spacing: 0.01em;
  line-height: 1.55;
  /* muted ivory — readable on navy */
  color: color-mix(in srgb, var(--text-inverse) 72%, transparent);
  margin: 0;
  max-width: 46ch;
}
/* terminal-style ">" prompt prefix on the sub */
html[data-active-theme^="missioncritical"] .newsletter-bar__sub::before {
  content: "> ";
  color: var(--accent);
  font-weight: 600;
}

/* --- Form --- */
html[data-active-theme^="missioncritical"] .newsletter-bar__form {
  max-width: 460px;
  padding-top: 4px;
}
html[data-active-theme^="missioncritical"] .newsletter-bar__fields {
  gap: 0;
  /* hairline frame wrapping input + button as one spec-sheet unit */
  border: 1px solid color-mix(in srgb, var(--text-inverse) 26%, transparent);
  border-radius: 2px;
  background: color-mix(in srgb, var(--text-inverse) 5%, transparent);
}

/* --- Input: sharp mono, ALL-CAPS, accent focus --- */
html[data-active-theme^="missioncritical"] .newsletter-bar__input {
  height: 44px;
  padding: 0 14px;
  border: none;
  border-right: 1px solid color-mix(in srgb, var(--text-inverse) 22%, transparent);
  border-radius: 0;
  background: transparent;
  color: var(--text-inverse);
  font-family: var(--font-body);
  font-size: 12.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: none;
  transition: box-shadow 0.15s ease, background-color 0.15s ease;
}
html[data-active-theme^="missioncritical"] .newsletter-bar__input::placeholder {
  color: color-mix(in srgb, var(--text-inverse) 46%, transparent);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
html[data-active-theme^="missioncritical"] .newsletter-bar__input:focus {
  border-color: transparent;
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  /* inset accent rail — UI focus indicator, >=3:1 */
  box-shadow: inset 2px 0 0 0 var(--accent);
}

/* --- Submit: accent fill, ALL-CAPS mono, --on-accent text --- */
html[data-active-theme^="missioncritical"] .newsletter-bar__btn,
html[data-active-theme^="missioncritical"] .newsletter-bar__btn.btn.btn--primary {
  height: 44px;
  padding: 0 20px;
  border: none;
  border-radius: 0;
  background: var(--accent);
  color: var(--on-accent);
  font-family: var(--font-nav, var(--font-body));
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: filter 0.15s ease, transform 0.12s ease;
}
html[data-active-theme^="missioncritical"] .newsletter-bar__btn:hover,
html[data-active-theme^="missioncritical"] .newsletter-bar__btn.btn.btn--primary:hover {
  opacity: 1;
  filter: brightness(1.08);
  transform: none;
}
html[data-active-theme^="missioncritical"] .newsletter-bar__btn:focus-visible {
  outline: 2px solid var(--text-inverse);
  outline-offset: 2px;
}
html[data-active-theme^="missioncritical"] .newsletter-bar__btn:disabled {
  opacity: 0.4;
  filter: none;
}

/* --- Status line: faint mono, status-dot prefix --- */
html[data-active-theme^="missioncritical"] .newsletter-bar__status {
  font-family: var(--font-body);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-top: 10px;
  min-height: 16px;
  display: flex;
  align-items: center;
  gap: 7px;
  color: color-mix(in srgb, var(--text-inverse) 60%, transparent);
}
/* idle status dot — muted ivory */
html[data-active-theme^="missioncritical"] .newsletter-bar__status::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex: none;
  background: currentColor;
  box-shadow: 0 0 0 2px color-mix(in srgb, currentColor 30%, transparent);
}
/* OK — accent (decorative dot) + ivory text stays readable on navy */
html[data-active-theme^="missioncritical"] .newsletter-bar__status--ok {
  color: var(--text-inverse);
}
html[data-active-theme^="missioncritical"] .newsletter-bar__status--ok::before {
  background: var(--accent);
  box-shadow: 0 0 6px color-mix(in srgb, var(--accent) 70%, transparent);
}
/* ERR — warm legible red on navy (>=4.5:1) */
html[data-active-theme^="missioncritical"] .newsletter-bar__status--err {
  color: #ff8d7a;
}
html[data-active-theme^="missioncritical"] .newsletter-bar__status--err::before {
  background: #ff8d7a;
  box-shadow: 0 0 0 2px color-mix(in srgb, #ff8d7a 30%, transparent);
}

/* --- Phone: stack, keep the hairline frame coherent --- */
@media (max-width: 640px) {
  html[data-active-theme^="missioncritical"] .newsletter-bar__inner {
    gap: 22px;
  }
  html[data-active-theme^="missioncritical"] .newsletter-bar__fields {
    flex-direction: column;
  }
  html[data-active-theme^="missioncritical"] .newsletter-bar__input {
    border-right: none;
    border-bottom: 1px solid color-mix(in srgb, var(--text-inverse) 22%, transparent);
  }
}

/* --- Respect reduced motion --- */
@media (prefers-reduced-motion: reduce) {
  html[data-active-theme^="missioncritical"] .newsletter-bar__input,
  html[data-active-theme^="missioncritical"] .newsletter-bar__btn,
  html[data-active-theme^="missioncritical"] .newsletter-bar__btn.btn.btn--primary {
    transition: none;
  }
}

/* ---- FOOTER ---- */
/* =========================================================================
   FOOTER — cross-cutting "internal tool" refinements (variant-agnostic)
   Appended AFTER the four html[data-footer-style] variants. Every selector is
   prefixed html[data-active-theme^="missioncritical"] so it (a) applies to ALL
   variants — manifest / opsband / signoff / telemetry — regardless of which is
   active, and (b) lands later in source at equal-or-higher specificity, so the
   handful of props set here win while everything else falls through to the
   variant (kept deliberately thin so it refines, never fights, a variant).
   Navy band: text = --text-inverse (ivory); --accent is DECORATIVE only here
   (hairline rules, ticks, prefixes). Dimmed ivory held >=60% (AA >=4.5:1 on the
   navy band). Terse mono, hairline frames, // and > prefixes, spec-sheet density.
   ========================================================================= */

/* --- COLUMN HEADINGS: mono ALL-CAPS "// " index labels + hairline underline --- */
html[data-active-theme^="missioncritical"] .footer__heading{
  font-family:var(--font-nav);
  text-transform:uppercase;
  font-weight:700;
  font-size:.68rem;
  letter-spacing:.18em;
  color:var(--text-inverse);
  display:flex;
  align-items:baseline;
  gap:.4ch;
  margin-bottom:.85rem;
  padding-bottom:.55rem;
  /* hairline ivory base rule; accent only tints a short lead segment (decorative) */
  border-bottom:1px solid color-mix(in srgb, var(--text-inverse) 18%, transparent);
}
html[data-active-theme^="missioncritical"] .footer__heading::before{
  content:"//";
  font-weight:700;
  letter-spacing:0;
  /* accent as a decorative glyph on navy — never load-bearing text */
  color:color-mix(in srgb, var(--accent) 78%, var(--text-inverse));
  opacity:.92;
}

/* --- LINK COLUMNS: tight mono index, dimmed ivory, hover → full ivory --------- */
html[data-active-theme^="missioncritical"] .footer__links{
  margin:0;
  padding:0;
  list-style:none;
}
html[data-active-theme^="missioncritical"] .footer__links > li{
  margin-bottom:.42rem;
  line-height:1.35;
}
html[data-active-theme^="missioncritical"] .footer__links > li > a{
  font-family:var(--font-nav);
  font-size:.78rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-decoration:none;
  /* dimmed ivory @ 64% (>=4.5:1 on navy) */
  color:color-mix(in srgb, var(--text-inverse) 64%, transparent);
  transition:color .15s var(--ease, ease);
}
html[data-active-theme^="missioncritical"] .footer__links > li > a:hover,
html[data-active-theme^="missioncritical"] .footer__links > li > a:focus-visible{
  color:var(--text-inverse);
}
html[data-active-theme^="missioncritical"] .footer__links > li > a:focus-visible{
  outline:1px solid var(--accent);
  outline-offset:3px;
}

/* --- SOCIAL ICONS: square hairline cells (drop any radius) -------------------- */
html[data-active-theme^="missioncritical"] .footer__social-icons a{
  border-radius:0;
  color:color-mix(in srgb, var(--text-inverse) 78%, transparent);
  border:1px solid color-mix(in srgb, var(--text-inverse) 22%, transparent);
}
html[data-active-theme^="missioncritical"] .footer__social-icons a:hover,
html[data-active-theme^="missioncritical"] .footer__social-icons a:focus-visible{
  color:var(--text-inverse);
  border-color:color-mix(in srgb, var(--accent) 70%, transparent);
}

/* --- BOTTOM BAR: compact mono, hairline top rule ----------------------------- */
html[data-active-theme^="missioncritical"] .footer__bottom{
  border-top:1px solid color-mix(in srgb, var(--text-inverse) 12%, transparent);
}
html[data-active-theme^="missioncritical"] .footer__bottom-inner{
  padding-top:1.15rem;
  padding-bottom:1.15rem;
}
html[data-active-theme^="missioncritical"] .footer__bottom-brand,
html[data-active-theme^="missioncritical"] .footer__bottom-legal,
html[data-active-theme^="missioncritical"] .footer__copyright,
html[data-active-theme^="missioncritical"] .footer__legal-links > a,
html[data-active-theme^="missioncritical"] .footer__privacy-choices{
  font-family:var(--font-nav);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.68rem;
}
html[data-active-theme^="missioncritical"] .footer__copyright{
  color:color-mix(in srgb, var(--text-inverse) 62%, transparent);
}
/* "> " status prefix on the copyright readout (decorative accent glyph) */
html[data-active-theme^="missioncritical"] .footer__copyright::before{
  content:"> ";
  color:color-mix(in srgb, var(--accent) 72%, var(--text-inverse));
}
html[data-active-theme^="missioncritical"] .footer__legal-links > a{
  color:color-mix(in srgb, var(--text-inverse) 70%, transparent);
  text-decoration:none;
  transition:color .15s var(--ease, ease);
}
html[data-active-theme^="missioncritical"] .footer__legal-links > a:hover,
html[data-active-theme^="missioncritical"] .footer__legal-links > a:focus-visible{
  color:var(--text-inverse);
}
html[data-active-theme^="missioncritical"] .footer__privacy-choices{
  border-radius:0;
  color:color-mix(in srgb, var(--text-inverse) 82%, transparent);
  border:1px solid color-mix(in srgb, var(--text-inverse) 22%, transparent);
  background:transparent;
}
html[data-active-theme^="missioncritical"] .footer__privacy-choices:hover,
html[data-active-theme^="missioncritical"] .footer__privacy-choices:focus-visible{
  color:var(--text-inverse);
  border-color:color-mix(in srgb, var(--accent) 70%, transparent);
}

/* --- DISCLAIMER: small mono "// " fine print --------------------------------- */
html[data-active-theme^="missioncritical"] .footer__disclaimer-wrap{
  border-top:1px solid color-mix(in srgb, var(--text-inverse) 12%, transparent);
}
html[data-active-theme^="missioncritical"] .footer__disclaimer{
  font-family:var(--font-nav);
  font-size:.66rem;
  line-height:1.65;
  letter-spacing:.02em;
  /* fine print held at 62% ivory — still AA on navy */
  color:color-mix(in srgb, var(--text-inverse) 62%, transparent);
}
html[data-active-theme^="missioncritical"] .footer__disclaimer::before{
  content:"// ";
  color:color-mix(in srgb, var(--text-inverse) 50%, transparent);
}

/* --- reduced motion: kill the hover transitions ------------------------------ */
@media (prefers-reduced-motion:reduce){
  html[data-active-theme^="missioncritical"] .footer__links > li > a,
  html[data-active-theme^="missioncritical"] .footer__legal-links > a{
    transition:none;
  }
}
