/* =============================================================================
   ALKEMYA INSIGHTS — "Sovereign Terminal" Design System
   The Bloomberg Terminal reimagined as an editorial publication.
   Data-literate · night-mode · institutional.
   ============================================================================= */

/* ---------- Design tokens (Sovereign Terminal, always dark) ---------- */
:root {
  /* Core palette */
  --obsidian: #0A0B0D;           /* background */
  --carbon: #14161A;             /* surface */
  --carbon-2: #1A1D22;           /* surface elevated */
  --bone: #E8E9EB;               /* primary text */
  --slate: #8A8F98;              /* secondary text / metadata */
  --slate-dim: #5C6068;          /* tertiary */
  --amber: #F0B429;              /* Accent 1 — lead, data highlights */
  --amber-dim: #C8911E;
  --sov-green: #3FB950;          /* Accent 2 — positive / verified */
  --sov-green-dim: #2EA043;
  --signal-red: #F85149;         /* Accent 3 — risk / warning */
  --signal-red-dim: #DA3633;
  --hairline: #22252B;           /* 1px dividers */
  --hairline-soft: #1B1E23;
  --glow-amber: rgba(240,180,41,0.14);
  --glow-green: rgba(63,185,80,0.18);
  --glow-red: rgba(248,81,73,0.18);

  /* Semantic aliases kept for backwards compatibility with existing selectors */
  --paper: var(--obsidian);
  --paper-tinted: var(--carbon);
  --surface: var(--carbon);
  --ink: var(--bone);
  --ink-soft: #CFD2D6;
  --ink-muted: var(--slate);
  --ink-metadata: var(--slate);
  --rule-maroon: var(--amber);           /* masthead rule + primary accent */
  --rule-maroon-soft: var(--amber-dim);
  --gold: var(--amber);
  --highlight: var(--carbon-2);
  --teal: var(--sov-green);
  --ochre: var(--amber);
  --pull-quote-band: var(--carbon-2);

  /* Typography — Sovereign Terminal */
  --sans-display: "Neue Haas Grotesk Display Pro", "Inter Display", "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --sans-ui: "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --serif-body: "Source Serif 4", "Source Serif Pro", "Charter", Georgia, "Times New Roman", serif;
  --serif-display: var(--sans-display);   /* in Sovereign Terminal, display = grotesk */
  --mono: "JetBrains Mono", "IBM Plex Mono", "SF Mono", Menlo, Monaco, "Cascadia Code", monospace;

  /* Layout */
  --container: 1280px;
  --text-column: 720px;
  --gutter: clamp(16px, 3.5vw, 40px);

  /* Motion */
  --ease: cubic-bezier(0.2, 0, 0, 1);
  --fade-in: 200ms;
  --data-flash: 200ms;
}

/* force-dark regardless of system preference */
@media (prefers-color-scheme: light) {
  :root { color-scheme: dark; }
}
html { color-scheme: dark; background: var(--obsidian); }

/* ---------- Reset / base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--obsidian);
  color: var(--bone);
  font-family: var(--serif-body);
  font-size: 18px;
  line-height: 1.65;
  font-feature-settings: "kern", "liga", "tnum";
  font-variant-numeric: tabular-nums;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--bone); text-decoration: none; }
a:hover { color: var(--amber); }
p { margin: 0 0 1.1em 0; }
hr { border: 0; border-top: 1px solid var(--hairline); margin: 2rem 0; }
::selection { background: var(--amber); color: var(--obsidian); }

/* ---------- Typography — Sovereign Terminal ---------- */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--sans-display);
  font-weight: 600;
  letter-spacing: -0.018em;
  color: var(--bone);
  margin: 0 0 .6em 0;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
h1 { font-size: clamp(34px, 5vw, 60px); font-weight: 700; letter-spacing: -0.022em; }
h2 { font-size: clamp(24px, 2.8vw, 34px); font-weight: 600; }
h3 { font-size: clamp(18px, 2vw, 24px); font-weight: 600; }
h4 { font-size: 18px; font-weight: 600; }

/* All-caps kickers — monospace, tabular */
.kicker {
  font-family: var(--mono);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  font-variant-numeric: tabular-nums;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.kicker::before {
  content: "";
  display: inline-block;
  width: 6px; height: 6px;
  background: var(--amber);
  border-radius: 1px;
  box-shadow: 0 0 8px var(--glow-amber);
}
.kicker--slate { color: var(--sov-green); }
.kicker--slate::before { background: var(--sov-green); box-shadow: 0 0 8px var(--glow-green); }
.kicker--gold { color: var(--amber); }

.meta, .byline-meta {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--slate);
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
}
.dek {
  font-family: var(--serif-body);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.45;
  color: #B8BCC2;
}

/* Terminal cursor blink — restrained */
@keyframes term-blink { 0%, 50% { opacity: 1; } 50.01%, 100% { opacity: 0; } }
.term-cursor::after {
  content: "_";
  display: inline-block;
  margin-left: 3px;
  color: var(--amber);
  animation: term-blink 1.1s steps(1) infinite;
  font-family: var(--mono);
}
@media (prefers-reduced-motion: reduce) {
  .term-cursor::after { animation: none; opacity: 1; }
}

/* Data flash utilities (JS toggles .is-up / .is-down for 200ms) */
@keyframes data-flash-up { from { background: var(--glow-green); } to { background: transparent; } }
@keyframes data-flash-down { from { background: var(--glow-red); } to { background: transparent; } }
.data-val { font-family: var(--mono); font-variant-numeric: tabular-nums; color: var(--bone); }
.data-val.is-up { animation: data-flash-up var(--data-flash) ease-out; color: var(--sov-green); }
.data-val.is-down { animation: data-flash-down var(--data-flash) ease-out; color: var(--signal-red); }

/* Mono helper */
.mono, code, kbd, samp { font-family: var(--mono); font-variant-numeric: tabular-nums; }

/* ---------- Layout primitives ---------- */
.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.container-narrow {
  max-width: var(--text-column);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.section { padding: clamp(32px, 6vw, 72px) 0; }
.section + .section { border-top: 1px solid var(--hairline); }

/* ---------- Masthead (terminal chrome) ---------- */
.masthead {
  background: var(--carbon);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  padding: 18px 0 14px;
}
.masthead__date-line {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--slate);
  text-align: center;
  margin-bottom: 10px;
  font-variant-numeric: tabular-nums;
}
.masthead__wordmark {
  font-family: var(--sans-display);
  font-weight: 700;
  font-size: clamp(28px, 5vw, 52px);
  letter-spacing: -0.01em;
  text-align: center;
  color: var(--bone);
  font-variant: normal;
  text-transform: none;
  line-height: 1;
}
.masthead__wordmark a { color: inherit; }
.masthead__tagline {
  font-family: var(--mono);
  font-style: normal;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--slate);
  text-align: center;
  margin-top: 10px;
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}
.masthead__rule {
  height: 2px;
  background: var(--amber);
  margin-top: 14px;
  box-shadow: 0 0 16px var(--glow-amber);
}

/* ---------- Ticker strip (above masthead) ---------- */
.ticker {
  background: var(--obsidian);
  border-bottom: 1px solid var(--hairline);
  overflow: hidden;
  position: relative;
  height: 32px;
}
.ticker::before, .ticker::after {
  content: "";
  position: absolute; top: 0; bottom: 0;
  width: 48px;
  z-index: 2;
  pointer-events: none;
}
.ticker::before { left: 0; background: linear-gradient(to right, var(--obsidian), transparent); }
.ticker::after { right: 0; background: linear-gradient(to left, var(--obsidian), transparent); }
.ticker__track {
  display: inline-flex;
  align-items: center;
  height: 32px;
  gap: 36px;
  white-space: nowrap;
  animation: ticker-scroll 90s linear infinite;
  padding-left: 100%;
}
.ticker:hover .ticker__track { animation-play-state: paused; }
@keyframes ticker-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-100%); }
}
@media (prefers-reduced-motion: reduce) {
  .ticker__track { animation: none; padding-left: 16px; }
}
.ticker__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--bone);
  font-variant-numeric: tabular-nums;
}
.ticker__sym { color: var(--slate); }
.ticker__val { color: var(--bone); }
.ticker__chg--up { color: var(--sov-green); }
.ticker__chg--down { color: var(--signal-red); }
.ticker__sep {
  color: var(--slate-dim);
  font-family: var(--mono);
}

/* ---------- Sticky nav ---------- */
.nav {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(10,11,13,0.88);
  border-bottom: 1px solid var(--hairline);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: box-shadow 200ms var(--ease);
}
.nav--scrolled { box-shadow: 0 2px 0 var(--hairline); }
.nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 10px var(--gutter);
  max-width: var(--container);
  margin: 0 auto;
}
.nav__brand {
  font-family: var(--sans-display);
  font-weight: 700;
  font-variant: normal;
  text-transform: none;
  font-size: 14px;
  letter-spacing: -0.005em;
  color: var(--bone);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.nav__brand::before {
  content: "";
  display: inline-block;
  width: 8px; height: 8px;
  background: var(--amber);
  border-radius: 1px;
  box-shadow: 0 0 8px var(--glow-amber);
}
.nav__links {
  display: flex;
  gap: 22px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nav__links a {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  color: var(--slate);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  position: relative;
  padding: 4px 0;
}
.nav__links a:hover, .nav__links a[aria-current="page"] { color: var(--bone); }
.nav__links a::after {
  content: "";
  position: absolute;
  left: 0; right: 100%;
  bottom: -2px;
  height: 2px;
  background: var(--amber);
  transition: right 200ms var(--ease);
}
.nav__links a:hover::after, .nav__links a[aria-current="page"]::after { right: 0; }
.nav__cta {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  color: var(--obsidian);
  background: var(--amber);
  padding: 7px 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 2px;
  transition: background 160ms var(--ease);
}
.nav__cta:hover { background: #FFC44D; text-decoration: none; color: var(--obsidian); }
.nav__burger {
  display: none;
  background: none;
  border: 1px solid var(--hairline);
  font-size: 16px;
  color: var(--bone);
  cursor: pointer;
  padding: 6px 10px;
  border-radius: 2px;
}
@media (max-width: 860px) {
  .nav__links { display: none; }
  .nav__burger { display: inline-flex; }
  .nav--open .nav__links {
    display: flex;
    position: absolute;
    top: 100%; left: 0; right: 0;
    flex-direction: column;
    background: var(--carbon);
    border-bottom: 1px solid var(--hairline);
    padding: 16px var(--gutter);
    gap: 14px;
  }
}

/* ---------- Reading progress bar ---------- */
.reading-progress {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  width: 0;
  background: var(--amber);
  box-shadow: 0 0 12px var(--glow-amber);
  z-index: 100;
  transition: width 60ms linear;
}

/* ---------- Front page · lead story ---------- */
.lead {
  padding: clamp(32px, 5vw, 56px) 0;
  border-bottom: 1px solid var(--hairline);
}
.lead__kicker { margin-bottom: 18px; }
.lead__headline {
  font-family: var(--sans-display);
  font-size: clamp(36px, 5.4vw, 68px);
  font-weight: 700;
  letter-spacing: -0.024em;
  line-height: 1.02;
  max-width: 22ch;
  margin-bottom: 18px;
  color: var(--bone);
}
.lead__dek {
  max-width: 62ch;
  margin-bottom: 22px;
  color: #B8BCC2;
}
.lead__byline {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--slate);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 0;
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  width: 100%;
  max-width: 62ch;
}
.lead__byline strong { color: var(--bone); font-weight: 600; }
.lead__byline::before {
  content: "BY";
  color: var(--amber);
  font-weight: 600;
  margin-right: 4px;
}
.lead__figure {
  margin: 28px 0 20px;
  position: relative;
  border: 1px solid var(--hairline);
  background: var(--carbon);
}
.lead__figure::before {
  content: "LIVE / EDITORIAL";
  position: absolute;
  top: 10px; left: 12px;
  z-index: 2;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--amber);
  background: rgba(10,11,13,0.7);
  padding: 4px 8px;
  border: 1px solid var(--hairline);
  border-radius: 2px;
}
.lead__figure img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  filter: contrast(1.08) brightness(0.88) saturate(0.85);
}
.figure__caption {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--slate);
  margin-top: 10px;
  line-height: 1.55;
  text-transform: uppercase;
}
.figure__credit {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--slate-dim);
  margin-left: 8px;
  padding-left: 8px;
  border-left: 1px solid var(--hairline);
}

/* ---------- Secondary row · feature tiles ---------- */
.feature-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  padding: clamp(24px, 4vw, 48px) 0;
  border-bottom: 1px solid var(--hairline);
}
@media (max-width: 900px) { .feature-row { grid-template-columns: 1fr; } }
.feature-tile {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px;
  background: var(--carbon);
  border: 1px solid var(--hairline);
  border-radius: 2px;
  transition: border-color 180ms var(--ease), background 180ms var(--ease);
}
.feature-tile:hover {
  border-color: var(--amber);
  background: var(--carbon-2);
}
.feature-tile__img {
  aspect-ratio: 16 / 9;
  background: var(--obsidian);
  border: 1px solid var(--hairline);
  object-fit: cover;
  filter: contrast(1.05) brightness(0.92);
}
.feature-tile__kicker { margin-top: 4px; }
.feature-tile__headline {
  font-family: var(--sans-display);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--bone);
  margin: 0;
}
.feature-tile:hover .feature-tile__headline { color: var(--amber); text-decoration: none; }
.feature-tile__dek {
  font-family: var(--serif-body);
  font-size: 14.5px;
  color: #B8BCC2;
  line-height: 1.55;
  font-style: italic;
}
.feature-tile__byline {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--slate);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px solid var(--hairline);
  font-variant-numeric: tabular-nums;
}

/* ---------- Department index ---------- */
.departments {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 36px;
  padding: clamp(24px, 4vw, 56px) 0;
}
@media (max-width: 1024px) { .departments { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .departments { grid-template-columns: 1fr; } }
.department__title {
  font-family: var(--mono);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  border-bottom: 1px solid var(--hairline);
  padding-bottom: 8px;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.department__title::before {
  content: "▸";
  color: var(--amber);
  font-size: 10px;
}
.department__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.department__list li {
  padding: 9px 0;
  border-bottom: 1px solid var(--hairline-soft);
}
.department__list li:last-child { border-bottom: 0; }
.department__list a {
  display: block;
  font-family: var(--serif-body);
  font-size: 14.5px;
  line-height: 1.45;
  color: #C4C8CC;
}
.department__list a:hover { color: var(--amber); }
.department__list .item-kicker {
  display: block;
  font-family: var(--sans-ui);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-metadata);
  margin-bottom: 2px;
}
.topic-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.topic-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: var(--carbon);
  border: 1px solid var(--hairline);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #C4C8CC;
  border-radius: 2px;
  font-variant-numeric: tabular-nums;
}
.topic-chip:hover { background: var(--carbon-2); color: var(--amber); border-color: var(--amber); }
.topic-chip .count { color: var(--slate); font-weight: 400; font-size: 11px; }

/* ---------- From the editors ---------- */
.editors-note {
  background: var(--carbon);
  border-top: 1px solid var(--amber);
  border-bottom: 1px solid var(--hairline);
  padding: 32px 0;
}
.editors-note__inner { max-width: 760px; margin: 0 auto; padding: 0 var(--gutter); }
.editors-note__label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 10px;
}
.editors-note__text {
  font-family: var(--serif-body);
  font-style: italic;
  font-size: 17px;
  line-height: 1.55;
  color: var(--bone);
}

/* ---------- Newsletter block ---------- */
.newsletter {
  background: var(--carbon);
  padding: clamp(40px, 6vw, 72px) 0;
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  text-align: center;
}
.newsletter h2 { margin-bottom: 10px; color: var(--bone); }
.newsletter p { max-width: 56ch; margin: 0 auto 24px; color: #B8BCC2; font-family: var(--serif-body); font-style: italic; }
.newsletter-form {
  display: flex;
  gap: 8px;
  max-width: 520px;
  margin: 0 auto;
  flex-wrap: wrap;
  justify-content: center;
}
.newsletter-form input[type="email"] {
  flex: 1 1 280px;
  padding: 12px 14px;
  font-family: var(--mono);
  font-size: 13px;
  background: var(--obsidian);
  border: 1px solid var(--hairline);
  color: var(--bone);
  border-radius: 2px;
}
.newsletter-form input[type="email"]:focus { outline: 2px solid var(--amber); outline-offset: -1px; border-color: var(--amber); }
.newsletter-form button {
  padding: 12px 22px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--amber);
  color: var(--obsidian);
  border: 0;
  cursor: pointer;
  transition: background 160ms;
  border-radius: 2px;
}
.newsletter-form button:hover { background: #FFC44D; }
.newsletter-form .feedback {
  flex-basis: 100%;
  font-family: var(--mono);
  font-size: 12px;
  margin-top: 8px;
}
.newsletter-form .feedback.ok { color: var(--sov-green); }
.newsletter-form .feedback.err { color: var(--signal-red); }

/* ---------- Article page ---------- */
.article-head {
  padding: 40px 0 32px;
  border-bottom: 1px solid var(--hairline);
}
.article-head__inner {
  max-width: var(--text-column);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.article-head__kicker { margin-bottom: 16px; }
.article-head h1 {
  font-size: clamp(32px, 4.5vw, 52px);
  line-height: 1.1;
  letter-spacing: -0.015em;
  max-width: 22ch;
}
.article-head .dek {
  margin-top: 14px;
  max-width: 58ch;
}
.byline-bar {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--hairline);
}
.byline-bar__portrait {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--highlight);
  border: 1px solid var(--hairline);
  object-fit: cover;
  filter: grayscale(100%);
}
.byline-bar__meta { flex: 1; }
.byline-bar__name {
  font-family: var(--serif-display);
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
}
.byline-bar__role {
  font-family: var(--sans-ui);
  font-size: 12px;
  color: var(--ink-metadata);
  letter-spacing: 0.02em;
}
.byline-bar__date {
  font-family: var(--sans-ui);
  font-size: 12px;
  color: var(--ink-metadata);
}
.byline-bar__share {
  display: flex;
  gap: 8px;
}
.byline-bar__share button {
  background: none;
  border: 1px solid var(--hairline);
  padding: 6px 10px;
  font-family: var(--sans-ui);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-soft);
  cursor: pointer;
  transition: border-color 200ms, color 200ms;
}
.byline-bar__share button:hover { border-color: var(--amber); color: var(--amber); }

.article-hero {
  margin: 28px auto 16px;
  max-width: 1100px;
  padding: 0 var(--gutter);
}
.article-hero img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  border: 1px solid var(--hairline);
  filter: contrast(1.05) brightness(0.95);
}

.article-body {
  max-width: var(--text-column);
  margin: 0 auto;
  padding: 32px var(--gutter) 48px;
}
.article-body > * + * { margin-top: 1.15em; }
.article-body h2 {
  font-family: var(--sans-display);
  font-size: clamp(22px, 2.4vw, 28px);
  margin-top: 2.2em;
  margin-bottom: 0.5em;
  letter-spacing: -0.015em;
  color: var(--bone);
  padding-bottom: 8px;
  border-bottom: 1px solid var(--hairline);
}
.article-body h3 {
  font-family: var(--sans-display);
  font-size: 20px;
  margin-top: 1.9em;
  margin-bottom: 0.4em;
  color: var(--bone);
}
.article-body p { font-size: 18px; line-height: 1.7; color: #D7DADE; }
.article-body p:first-of-type::first-letter {
  font-family: var(--sans-display);
  font-size: 4.8em;
  font-weight: 700;
  float: left;
  line-height: 0.85;
  margin: 0.06em 0.1em 0 -0.03em;
  color: var(--amber);
}
.article-body strong { color: var(--bone); font-weight: 600; }
.article-body em { color: var(--bone); }
.article-body blockquote {
  margin: 2em 0;
  padding: 0 0 0 20px;
  border-left: 2px solid var(--amber);
  font-family: var(--serif-body);
  font-style: italic;
  font-size: clamp(20px, 2.4vw, 26px);
  line-height: 1.4;
  color: var(--bone);
}
.pull-quote {
  margin: 1.8em 0;
  font-family: var(--sans-display);
  font-weight: 500;
  font-style: normal;
  font-size: clamp(22px, 2.8vw, 34px);
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--bone);
  padding: 1em 0;
  border-top: 1px solid var(--amber);
  border-bottom: 1px solid var(--amber);
  background: linear-gradient(to bottom, transparent, var(--glow-amber), transparent);
}
.article-body a {
  color: var(--amber);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  text-decoration-color: color-mix(in srgb, var(--amber) 45%, transparent);
  transition: text-decoration-color 160ms, color 160ms;
}
.article-body a:hover { color: #FFC44D; text-decoration-color: var(--amber); }
.article-body ul, .article-body ol { padding-left: 1.4em; color: #D7DADE; }
.article-body li { margin-bottom: .5em; }
.article-body figure { margin: 2em 0; }
.article-body figure img { border: 1px solid var(--hairline); filter: contrast(1.03) brightness(0.95); }
.article-body .callout {
  background: var(--carbon);
  border-left: 2px solid var(--amber);
  padding: 16px 20px;
  margin: 2em 0;
  font-size: 15px;
  line-height: 1.6;
  color: #C4C8CC;
  font-family: var(--mono);
}
.article-body .data-table {
  width: 100%;
  border-collapse: collapse;
  margin: 2em 0;
  font-family: var(--mono);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  border: 1px solid var(--hairline);
  background: var(--carbon);
}
.article-body .data-table th,
.article-body .data-table td {
  border-bottom: 1px solid var(--hairline);
  padding: 10px 14px;
  text-align: left;
  color: #C4C8CC;
}
.article-body .data-table tr:hover td { background: var(--carbon-2); }
.article-body .data-table th {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--amber);
  background: var(--obsidian);
  border-bottom: 1px solid var(--amber);
}

/* Sources block */
.sources {
  margin: 48px 0 32px;
  padding: 24px 20px;
  border: 1px solid var(--hairline);
  background: var(--carbon);
  border-radius: 2px;
}
.sources h3 {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sov-green);
  margin-bottom: 14px;
  display: flex; align-items: center; gap: 8px;
}
.sources h3::before {
  content: "✓";
  color: var(--sov-green);
  font-size: 12px;
}
.sources ol {
  font-family: var(--serif-body);
  font-size: 14px;
  line-height: 1.6;
  padding-left: 1.4em;
  color: #C4C8CC;
}
.sources ol li { margin-bottom: 10px; }
.sources ol li::marker { color: var(--amber); font-family: var(--mono); font-weight: 600; }
.sources a {
  color: var(--amber);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.author-bio {
  margin: 32px 0;
  padding: 22px;
  background: var(--carbon);
  border: 1px solid var(--hairline);
  border-left: 2px solid var(--amber);
  display: flex;
  gap: 18px;
  align-items: flex-start;
  border-radius: 2px;
}
.author-bio img {
  width: 68px; height: 68px;
  border-radius: 50%;
  filter: grayscale(100%);
  border: 1px solid var(--hairline);
}
.author-bio__name { font-family: var(--sans-display); font-weight: 600; font-size: 17px; margin: 0 0 4px; color: var(--bone); }
.author-bio__role { font-family: var(--mono); font-size: 11px; color: var(--slate); letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 8px; }
.author-bio__text { font-size: 14.5px; color: #C4C8CC; line-height: 1.55; font-family: var(--serif-body); }

.citation-share {
  margin: 32px 0;
  padding: 20px;
  border: 1px solid var(--hairline);
  background: var(--carbon);
  border-radius: 2px;
}
.citation-share h4 {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 10px;
}
.citation-tabs { display: flex; gap: 4px; margin-bottom: 10px; }
.citation-tabs button {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 6px 12px;
  border: 1px solid var(--hairline);
  background: var(--obsidian);
  color: #C4C8CC;
  cursor: pointer;
  border-radius: 2px;
}
.citation-tabs button.is-active {
  background: var(--amber);
  color: var(--obsidian);
  border-color: var(--amber);
}
.citation-box {
  font-family: var(--mono);
  font-size: 12px;
  background: var(--obsidian);
  border: 1px solid var(--hairline);
  padding: 12px;
  color: #C4C8CC;
  min-height: 60px;
  white-space: pre-wrap;
  font-variant-numeric: tabular-nums;
  border-radius: 2px;
}
.citation-copy {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 6px 12px;
  border: 1px solid var(--hairline);
  background: none;
  cursor: pointer;
  margin-top: 8px;
  color: #C4C8CC;
  border-radius: 2px;
}
.citation-copy:hover { border-color: var(--amber); color: var(--amber); }

/* Related grid */
.related {
  max-width: var(--container);
  margin: 0 auto;
  padding: 48px var(--gutter);
  border-top: 1px solid var(--hairline);
}
.related h3 {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 20px;
  display: flex; align-items: center; gap: 8px;
}
.related h3::before { content: "▸"; color: var(--amber); }
.related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
@media (max-width: 860px) { .related-grid { grid-template-columns: 1fr; } }

/* ---------- Author landing / hero ---------- */
.author-hero {
  padding: clamp(32px, 5vw, 64px) 0;
  border-bottom: 1px solid var(--hairline);
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 36px;
  max-width: var(--container);
  margin: 0 auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}
@media (max-width: 700px) { .author-hero { grid-template-columns: 1fr; gap: 20px; } }
.author-hero img {
  width: 180px; height: 180px;
  border-radius: 50%;
  filter: grayscale(100%) contrast(1.05) brightness(0.92);
  border: 1px solid var(--hairline);
  object-fit: cover;
}
.author-hero__name {
  font-family: var(--sans-display);
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 8px;
  color: var(--bone);
}
.author-hero__role {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--amber);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 14px;
  font-weight: 600;
}
.author-hero__bio {
  font-family: var(--serif-body);
  font-size: 17px;
  line-height: 1.6;
  color: #C4C8CC;
  max-width: 62ch;
}
.author-hero__links {
  display: flex;
  gap: 10px;
  margin-top: 18px;
  flex-wrap: wrap;
}
.author-hero__links a {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #C4C8CC;
  border: 1px solid var(--hairline);
  padding: 6px 10px;
  border-radius: 2px;
}
.author-hero__links a:hover { color: var(--amber); border-color: var(--amber); }

.article-index {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  padding: clamp(24px, 4vw, 56px) 0;
  max-width: var(--container);
  margin: 0 auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}
@media (max-width: 800px) { .article-index { grid-template-columns: 1fr; } }
.article-index .feature-tile__headline { font-size: 24px; }

/* ---------- FAQ ---------- */
.faq-category {
  margin: 36px 0;
  border-top: 1px solid var(--amber);
  padding-top: 20px;
}
.faq-category h2 {
  font-family: var(--sans-display);
  font-size: 24px;
  color: var(--bone);
}
.faq-item {
  border-bottom: 1px solid var(--hairline);
  padding: 18px 0;
}
.faq-item summary {
  list-style: none;
  cursor: pointer;
  font-family: var(--sans-display);
  font-weight: 600;
  font-size: 17px;
  color: var(--bone);
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: baseline;
  letter-spacing: -0.01em;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: "+";
  font-family: var(--mono);
  font-weight: 400;
  font-size: 20px;
  color: var(--amber);
  flex-shrink: 0;
  transition: transform 160ms;
}
.faq-item[open] summary::after { content: "–"; }
.faq-item summary:hover { color: var(--amber); }
.faq-item__answer {
  padding-top: 14px;
  font-family: var(--serif-body);
  font-size: 15.5px;
  line-height: 1.65;
  color: #C4C8CC;
}
.faq-item__answer p + p { margin-top: 0.8em; }
.faq-item__answer a { color: var(--amber); text-decoration: underline; text-underline-offset: 2px; }

/* ---------- Press clipping ---------- */
.press-entry {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 20px;
  padding: 22px 0;
  border-bottom: 1px solid var(--hairline);
}
@media (max-width: 600px) { .press-entry { grid-template-columns: 1fr; } }
.press-entry__source {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--amber);
}
.press-entry__headline {
  font-family: var(--sans-display);
  font-size: 19px;
  font-weight: 600;
  line-height: 1.3;
  margin: 0 0 6px;
  letter-spacing: -0.01em;
  color: var(--bone);
}
.press-entry__excerpt {
  font-family: var(--serif-body);
  font-size: 15px;
  color: #C4C8CC;
  line-height: 1.55;
  margin-bottom: 10px;
  font-style: italic;
}
.press-entry__meta {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--slate);
}
.press-entry__meta a { color: var(--amber); text-decoration: underline; }
.press-entry__editorial-note {
  margin-top: 10px;
  padding: 10px 14px;
  background: var(--carbon);
  border-left: 2px solid var(--amber);
  font-family: var(--serif-body);
  font-size: 13.5px;
  color: #C4C8CC;
  font-style: italic;
}

/* ---------- Network page ---------- */
.network-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  margin: 32px 0;
}
@media (max-width: 700px) { .network-grid { grid-template-columns: 1fr; } }
.network-card {
  padding: 22px;
  border: 1px solid var(--hairline);
  background: var(--carbon);
  border-radius: 2px;
  transition: border-color 160ms;
}
.network-card:hover { border-color: var(--amber); }
.network-card__tier {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 10px;
}
.network-card__title {
  font-family: var(--sans-display);
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 6px;
  letter-spacing: -0.015em;
  color: var(--bone);
}
.network-card__title a { color: var(--bone); }
.network-card__title a:hover { color: var(--amber); }
.network-card__domain {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--sov-green);
  margin-bottom: 10px;
  letter-spacing: 0.02em;
}
.network-card__role {
  font-family: var(--serif-body);
  font-size: 14.5px;
  color: #C4C8CC;
  line-height: 1.5;
}

/* ---------- Topic index ---------- */
.topic-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 14px;
  padding: 32px 0;
}
.topic-card {
  padding: 18px;
  border: 1px solid var(--hairline);
  background: var(--carbon);
  transition: border-color 160ms;
  border-radius: 2px;
}
.topic-card:hover { border-color: var(--amber); }
.topic-card__label {
  font-family: var(--sans-display);
  font-size: 17px;
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--bone);
  letter-spacing: -0.01em;
}
.topic-card__count {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--sov-green);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* ---------- Breadcrumb ---------- */
.breadcrumb {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--slate);
  padding: 12px 0;
  border-bottom: 1px solid var(--hairline);
}
.breadcrumb a { color: var(--slate); text-decoration: none; }
.breadcrumb a:hover { color: var(--amber); }
.breadcrumb__sep { margin: 0 10px; color: var(--slate-dim); }

/* ---------- Disclaimer band ---------- */
.disclaimer-band {
  background: var(--carbon);
  border-top: 1px solid var(--hairline);
  padding: 22px 0;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.02em;
  line-height: 1.65;
  color: var(--slate);
}

/* ---------- Footer ---------- */
.footer {
  background: var(--obsidian);
  padding: 48px 0 24px;
  border-top: 2px solid var(--amber);
}
.footer__masthead {
  font-family: var(--sans-display);
  font-variant: normal;
  text-transform: none;
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.01em;
  margin-bottom: 10px;
  color: var(--bone);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.footer__masthead::before {
  content: "";
  display: inline-block;
  width: 8px; height: 8px;
  background: var(--amber);
  border-radius: 1px;
  box-shadow: 0 0 8px var(--glow-amber);
}
.footer__mission {
  font-family: var(--mono);
  font-style: normal;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--slate);
  margin-bottom: 16px;
  line-height: 1.6;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr;
  gap: 36px;
  padding-bottom: 36px;
  border-bottom: 1px solid var(--hairline);
}
@media (max-width: 980px) { .footer-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .footer-grid { grid-template-columns: 1fr; } }
.footer-col h5 {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 12px;
}
.footer-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-col li {
  margin-bottom: 6px;
}
.footer-col a {
  font-family: var(--mono);
  font-size: 12px;
  color: #C4C8CC;
  letter-spacing: 0.02em;
}
.footer-col a:hover { color: var(--amber); text-decoration: none; }
.footer-bottom {
  margin-top: 20px;
  font-family: var(--mono);
  font-size: 11px;
  color: var(--slate);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* ---------- Scroll-reveal · section headers fade-up 300ms ---------- */
.reveal {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 300ms var(--ease), transform 300ms var(--ease);
}
.reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal { opacity: 1; transform: none; }
  html { scroll-behavior: auto; }
}

/* ---------- Print ---------- */
@media print {
  .nav, .reading-progress, .newsletter, .footer, .related, .citation-share, .byline-bar__share, .nav__burger {
    display: none !important;
  }
  body { background: #FFF; color: #000; font-size: 11pt; line-height: 1.5; }
  .masthead { border-bottom: 1px solid #000; }
  .article-body { max-width: none; padding: 0; }
  .article-body a { color: #000; text-decoration: underline; }
  .article-body a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; color: #555; }
  .sources { page-break-inside: avoid; }
  h1, h2, h3 { page-break-after: avoid; }
  blockquote, figure { page-break-inside: avoid; }
}

/* ---------- Brief card ---------- */
.brief-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}

/* =============================================================================
   SOVEREIGN TERMINAL · Front page + article page overrides
   ============================================================================= */

/* ---------- Front page layouts ---------- */
.front-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  padding: 40px 0 24px;
}
@media (min-width: 900px) {
  .front-grid { grid-template-columns: 2.1fr 1fr; gap: 48px; }
}
.lead {
  border-bottom: 1px solid var(--amber);
  padding-bottom: 32px;
  margin-bottom: 24px;
}
.lead__figure { margin: 0 0 22px; }
.lead__figure img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border: 1px solid var(--hairline);
  filter: contrast(1.05) brightness(0.94);
  transition: filter 300ms var(--ease);
}
.lead__figure:hover img { filter: contrast(1.1) brightness(1); }
.lead__kicker { margin-top: 4px; display: inline-flex; }
.lead__headline {
  font-family: var(--sans-display);
  font-weight: 700;
  font-size: clamp(34px, 5.2vw, 64px);
  line-height: 1.02;
  letter-spacing: -0.022em;
  margin: 14px 0 14px;
  color: var(--bone);
  text-wrap: balance;
}
.lead__headline a { color: var(--bone); }
.lead__headline a:hover { color: var(--amber); }
.lead__dek {
  font-family: var(--serif-body);
  font-style: italic;
  font-size: clamp(17px, 1.8vw, 21px);
  line-height: 1.5;
  color: #C4C8CC;
  margin: 0 0 16px;
  max-width: 62ch;
}
.lead__byline {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--slate);
  font-variant-numeric: tabular-nums;
}
.lead__byline strong { color: var(--amber); font-weight: 600; }

/* Front sidebar — "terminal rail" */
.front-sidebar {
  border-left: 1px solid var(--hairline);
  padding-left: 24px;
}
@media (max-width: 899px) {
  .front-sidebar { border-left: 0; padding-left: 0; border-top: 1px solid var(--hairline); padding-top: 28px; }
}
.front-sidebar h3 {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--amber);
  border-bottom: 1px solid var(--hairline);
  padding-bottom: 10px;
  margin-bottom: 14px;
  display: flex; align-items: center; gap: 8px;
}
.front-sidebar h3::before { content: "▸"; color: var(--amber); }
.side-item {
  border-bottom: 1px solid var(--hairline-soft);
  padding: 12px 0;
}
.side-item:last-child { border-bottom: 0; }
.side-item__kicker {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  font-weight: 500;
  margin-bottom: 4px;
}
.side-item__head {
  font-family: var(--sans-display);
  font-size: 16px;
  line-height: 1.25;
  font-weight: 600;
  margin: 4px 0 6px;
  letter-spacing: -0.01em;
}
.side-item__head a { color: var(--bone); }
.side-item__head a:hover { color: var(--amber); }
.side-item__meta {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--slate);
  font-variant-numeric: tabular-nums;
}

/* Feature row / department grid */
.feature-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  padding: 32px 0;
  border-top: 1px solid var(--hairline);
}
@media (min-width: 768px) { .feature-row { grid-template-columns: repeat(3, 1fr); } }

.departments {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  padding: 32px 0;
  border-top: 1px solid var(--hairline);
}
@media (min-width: 768px) { .departments { grid-template-columns: repeat(4, 1fr); } }
.department__title {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--amber);
  font-weight: 500;
  border-bottom: 1px solid var(--hairline);
  padding-bottom: 8px;
  margin-bottom: 12px;
  display: flex; align-items: center; gap: 8px;
}
.department__title::before { content: "▸"; color: var(--amber); font-size: 9px; }
.department__list { list-style: none; margin: 0; padding: 0; }
.department__list li {
  padding: 9px 0;
  border-bottom: 1px solid var(--hairline-soft);
  font-size: 14px;
  line-height: 1.4;
}
.department__list li:last-child { border-bottom: 0; }
.department__list a {
  color: #C4C8CC;
  font-family: var(--serif-body);
  font-weight: 400;
}
.department__list a:hover { color: var(--amber); text-decoration: none; }

/* Feature tiles (shared – card style) */
.feature-tile {
  display: flex;
  flex-direction: column;
  gap: 10px;
  color: inherit;
  border: 1px solid var(--hairline);
  background: var(--carbon);
  padding: 14px;
  border-radius: 2px;
  transition: border-color 160ms var(--ease), background 160ms var(--ease);
}
.feature-tile:hover { border-color: var(--amber); background: var(--carbon-2); }
.feature-tile__img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  margin-bottom: 6px;
  border: 1px solid var(--hairline);
  background: var(--obsidian);
  filter: contrast(1.05) brightness(0.92);
  transition: filter 240ms var(--ease);
}
.feature-tile:hover .feature-tile__img { filter: contrast(1.1) brightness(1); }
.feature-tile__kicker { margin-bottom: 4px; }
.feature-tile__headline {
  font-family: var(--sans-display);
  font-size: 18px;
  line-height: 1.22;
  font-weight: 600;
  letter-spacing: -0.012em;
  margin: 2px 0 4px;
  color: var(--bone);
}
.feature-tile:hover .feature-tile__headline { color: var(--amber); }
.feature-tile__dek {
  font-size: 13.5px;
  color: #B8BCC2;
  margin: 4px 0 8px;
  font-family: var(--serif-body);
  font-style: italic;
  line-height: 1.5;
}
.feature-tile__byline {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--slate);
  border-top: 1px solid var(--hairline);
  padding-top: 8px;
  margin-top: auto;
  font-variant-numeric: tabular-nums;
}

/* Related grid */
.related-grid { display: grid; grid-template-columns: 1fr; gap: 16px; padding: 28px 0; }
@media (min-width: 768px) { .related-grid { grid-template-columns: repeat(3, 1fr); } }
.related { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); border-top: 1px solid var(--hairline); }
.related h3 {
  margin: 28px 0 10px;
  font-size: 11px;
  font-family: var(--mono);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  display: flex; align-items: center; gap: 8px;
}
.related h3::before { content: "▸"; color: var(--amber); }

/* Article index */
.article-index { display: grid; grid-template-columns: 1fr; gap: 18px; padding: 24px 0 48px; }
@media (min-width: 768px) { .article-index { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .article-index { grid-template-columns: repeat(3, 1fr); } }
.index-entry {
  border-top: 1px solid var(--amber);
  padding-top: 16px;
  background: var(--carbon);
  padding: 18px;
  border-left: 1px solid var(--hairline);
  border-right: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  border-radius: 2px;
}
.index-entry .kicker { display: inline-flex; margin-bottom: 6px; }
.index-entry h3 {
  font-family: var(--sans-display);
  font-size: 20px;
  line-height: 1.22;
  font-weight: 600;
  letter-spacing: -0.012em;
  margin: 4px 0 8px;
  color: var(--bone);
}
.index-entry h3 a { color: var(--bone); }
.index-entry h3 a:hover { color: var(--amber); }
.index-entry__dek {
  color: #B8BCC2;
  font-size: 14.5px;
  line-height: 1.5;
  margin: 8px 0;
  font-family: var(--serif-body);
  font-style: italic;
}
.index-entry__byline {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--slate);
  font-variant-numeric: tabular-nums;
}

/* ---------- Article body (final Terminal pass) ---------- */
.article-body { max-width: 720px; margin: 32px auto; padding: 0 var(--gutter); }
.article-body p { margin: 0 0 1.1em; font-family: var(--serif-body); font-size: 18px; line-height: 1.7; color: #D4D7DB; }
.article-body p:first-of-type::first-letter {
  font-family: var(--sans-display);
  font-size: 4.6em;
  float: left;
  line-height: 0.85;
  padding: 0.08em 0.1em 0 0;
  font-weight: 700;
  color: var(--amber);
}
.article-body h2 {
  font-family: var(--sans-display);
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--bone);
  margin: 2.2em 0 0.5em;
  padding-top: 0.6em;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--hairline);
}
.article-body h3 {
  font-family: var(--sans-display);
  font-size: 20px;
  font-weight: 600;
  color: var(--bone);
  margin: 1.8em 0 0.4em;
  letter-spacing: -0.01em;
}
.article-body ul, .article-body ol { padding-left: 1.4em; margin: 1em 0 1.2em; color: #D4D7DB; }
.article-body li { margin: 0.4em 0; }
.article-body blockquote, .pull-quote {
  font-family: var(--sans-display);
  font-style: normal;
  font-weight: 500;
  font-size: clamp(22px, 2.8vw, 32px);
  line-height: 1.22;
  letter-spacing: -0.015em;
  color: var(--bone);
  background: var(--carbon);
  border-left: 2px solid var(--amber);
  padding: 24px 28px;
  margin: 40px 0;
  max-width: none;
  border-radius: 2px;
}
.pull-quote {
  font-size: clamp(24px, 3.2vw, 36px);
  background: linear-gradient(to right, var(--carbon), var(--carbon-2));
  border-top: 1px solid var(--amber);
  border-bottom: 1px solid var(--amber);
  border-left: 0;
  padding: 28px 32px;
  margin: 48px 0;
  position: relative;
}
.pull-quote::before {
  content: "❝";
  position: absolute;
  top: 8px; left: 16px;
  color: var(--amber);
  font-size: 32px;
  opacity: 0.4;
  font-family: var(--sans-display);
}

.callout {
  background: var(--carbon);
  border-left: 2px solid var(--sov-green);
  padding: 14px 18px;
  margin: 28px 0;
  font-size: 14px;
  font-family: var(--mono);
  color: #C4C8CC;
  line-height: 1.6;
  border-radius: 2px;
}
.callout a { color: var(--amber); text-decoration: underline; }
.callout strong {
  color: var(--sov-green);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 6px;
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  margin: 28px 0;
  font-family: var(--mono);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  background: var(--carbon);
  border: 1px solid var(--hairline);
}
.data-table th, .data-table td {
  padding: 10px 14px;
  text-align: left;
  border-bottom: 1px solid var(--hairline);
  color: #C4C8CC;
}
.data-table tbody tr:hover td { background: var(--carbon-2); }
.data-table thead th {
  background: var(--obsidian);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--amber);
  font-weight: 600;
  border-bottom: 1px solid var(--amber);
}
.data-table tbody tr:last-child td { border-bottom: 1px solid var(--amber); }
.data-table td strong { color: var(--bone); }

.article-hero {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.article-hero img {
  width: 100%;
  filter: contrast(1.04) brightness(0.94);
  border: 1px solid var(--hairline);
}
.figure__caption {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--slate);
  margin-top: 10px;
  line-height: 1.55;
  text-transform: uppercase;
}
.figure__credit {
  color: var(--slate-dim);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-left: 8px;
  padding-left: 8px;
  border-left: 1px solid var(--hairline);
}

/* Sources — verified-source green checkmark */
.sources {
  border: 1px solid var(--hairline);
  background: var(--carbon);
  padding: 24px 22px;
  margin-top: 40px;
  border-radius: 2px;
}
.sources h3 {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sov-green);
  margin-bottom: 14px;
  display: flex; align-items: center; gap: 8px;
}
.sources h3::before { content: "✓"; color: var(--sov-green); }
.sources ol {
  padding-left: 24px;
  font-family: var(--serif-body);
  font-size: 14px;
  color: #C4C8CC;
  line-height: 1.6;
}
.sources ol li { margin: 9px 0; }
.sources ol li::marker { color: var(--amber); font-family: var(--mono); font-weight: 600; }
.sources a {
  color: var(--amber);
  text-decoration: underline;
  word-break: break-word;
}

/* Citation widget */
.citation-share {
  border: 1px solid var(--hairline);
  background: var(--carbon);
  padding: 18px 20px;
  margin: 32px 0;
  font-family: var(--mono);
  font-size: 12px;
  border-radius: 2px;
}
.citation-share h4 {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  margin: 0 0 10px;
  font-weight: 600;
}
.citation-tabs { display: flex; gap: 2px; margin-bottom: 12px; }
.citation-tabs button {
  padding: 6px 12px;
  background: transparent;
  border: 1px solid var(--hairline);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  color: #C4C8CC;
  border-radius: 2px;
}
.citation-tabs button.is-active {
  background: var(--amber);
  color: var(--obsidian);
  border-color: var(--amber);
}
.citation-box {
  background: var(--obsidian);
  border: 1px solid var(--hairline);
  padding: 12px 14px;
  font-family: var(--mono);
  font-size: 12px;
  color: #C4C8CC;
  line-height: 1.55;
  word-break: break-word;
  margin-bottom: 10px;
  border-radius: 2px;
}
.citation-copy {
  padding: 7px 14px;
  background: var(--amber);
  color: var(--obsidian);
  border: 0;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  font-weight: 600;
  border-radius: 2px;
}
.citation-copy:hover { background: #FFC44D; }

/* Author bio (article footer) */
.author-bio {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  padding: 22px;
  background: var(--carbon);
  border: 1px solid var(--hairline);
  border-left: 2px solid var(--amber);
  margin: 32px 0;
  border-radius: 2px;
}
.author-bio img {
  width: 68px; height: 68px;
  border-radius: 50%;
  filter: grayscale(1);
  border: 1px solid var(--hairline);
}
.author-bio__name {
  font-family: var(--sans-display);
  font-size: 17px;
  font-weight: 600;
  margin: 0 0 2px;
  color: var(--bone);
  letter-spacing: -0.01em;
}
.author-bio__name a { color: var(--bone); }
.author-bio__name a:hover { color: var(--amber); }
.author-bio__role {
  font-family: var(--mono);
  font-size: 10.5px;
  color: var(--amber);
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.author-bio__text {
  font-family: var(--serif-body);
  font-size: 14px;
  color: #C4C8CC;
  line-height: 1.55;
  margin: 0;
}

/* ---------- FAQ ---------- */
.faq-wrap { max-width: 820px; margin: 0 auto; padding: 0 var(--gutter) 48px; }
.faq-category { margin: 40px 0; }
.faq-category > h2 {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  border-bottom: 1px solid var(--amber);
  padding-bottom: 8px;
  margin-bottom: 22px;
  font-weight: 600;
  display: flex; align-items: center; gap: 8px;
}
.faq-category > h2::before { content: "▸"; color: var(--amber); }
.faq-item { border-bottom: 1px solid var(--hairline); padding: 16px 0; }
.faq-item summary {
  font-family: var(--sans-display);
  font-size: 18px;
  font-weight: 600;
  color: var(--bone);
  cursor: pointer;
  list-style: none;
  position: relative;
  padding-right: 30px;
  line-height: 1.35;
  letter-spacing: -0.012em;
}
.faq-item summary:hover { color: var(--amber); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: "+";
  position: absolute;
  right: 0; top: 0;
  font-family: var(--mono);
  font-weight: 400;
  color: var(--amber);
  font-size: 22px;
  transition: transform 160ms;
}
.faq-item[open] summary::after { content: "−"; }
.faq-item__answer {
  margin-top: 12px;
  font-family: var(--serif-body);
  color: #C4C8CC;
  font-size: 15.5px;
  line-height: 1.65;
}
.faq-item__answer p { margin: 0 0 0.8em; }
.faq-item__answer a { color: var(--amber); text-decoration: underline; }

/* ---------- Topic chips / pages ---------- */
.topic-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0 28px; }
.topic-chip {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 6px 11px;
  background: var(--carbon);
  border: 1px solid var(--hairline);
  color: #C4C8CC;
  font-weight: 500;
  border-radius: 2px;
}
a.topic-chip:hover { background: var(--carbon-2); color: var(--amber); border-color: var(--amber); }
.topic-grid { display: grid; grid-template-columns: 1fr; gap: 12px; padding: 24px 0; }
@media (min-width: 700px) { .topic-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .topic-grid { grid-template-columns: repeat(4, 1fr); } }
.topic-card {
  display: block;
  border: 1px solid var(--hairline);
  padding: 18px;
  color: inherit;
  background: var(--carbon);
  border-radius: 2px;
  transition: border-color 160ms;
}
.topic-card:hover { border-color: var(--amber); }
.topic-card__label {
  font-family: var(--sans-display);
  font-size: 18px;
  font-weight: 600;
  color: var(--bone);
  letter-spacing: -0.012em;
}
.topic-card:hover .topic-card__label { color: var(--amber); }
.topic-card__count {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--sov-green);
  display: block;
  margin-top: 6px;
  font-variant-numeric: tabular-nums;
}
.topic-card p {
  font-size: 13.5px;
  color: #B8BCC2;
  margin: 8px 0 0;
  font-family: var(--serif-body);
  font-style: italic;
  line-height: 1.5;
}

/* ---------- Press clippings ---------- */
.press-entry {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 22px;
  padding: 24px 0;
  border-bottom: 1px solid var(--hairline);
  align-items: flex-start;
}
@media (max-width: 600px) { .press-entry { grid-template-columns: 1fr; } }
.press-entry__source {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  color: var(--amber);
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-left: 2px solid var(--amber);
  padding-left: 10px;
}
.press-entry__source .date {
  display: block;
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.04em;
  text-transform: none;
  color: var(--slate);
  margin-top: 4px;
  font-weight: 400;
  font-variant-numeric: tabular-nums;
}
.press-entry__headline {
  font-family: var(--sans-display);
  font-size: 19px;
  font-weight: 600;
  line-height: 1.25;
  margin: 0 0 8px;
  letter-spacing: -0.012em;
  color: var(--bone);
}
.press-entry__headline a { color: var(--bone); }
.press-entry__headline a:hover { color: var(--amber); }
.press-entry__excerpt {
  font-family: var(--serif-body);
  font-size: 15px;
  color: #C4C8CC;
  line-height: 1.55;
  margin: 8px 0;
  font-style: italic;
}
.press-entry__meta {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--slate);
}
.press-entry__meta a { color: var(--amber); text-decoration: underline; }
.press-entry__editorial-note {
  background: var(--carbon-2);
  border-left: 2px solid var(--amber);
  padding: 10px 14px;
  margin-top: 10px;
  font-family: var(--serif-body);
  font-size: 13px;
  color: #C4C8CC;
  line-height: 1.5;
  font-style: italic;
}

/* ---------- Author landing ---------- */
.author-hero {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 32px;
  padding: 40px 0;
  border-bottom: 1px solid var(--amber);
  align-items: flex-start;
}
@media (max-width: 600px) { .author-hero { grid-template-columns: 1fr; } }
.author-hero img {
  width: 180px; height: 180px;
  object-fit: cover;
  filter: grayscale(1) contrast(1.05) brightness(0.92);
  border: 1px solid var(--hairline);
}
.author-hero__name {
  font-family: var(--sans-display);
  font-size: clamp(30px, 4vw, 44px);
  font-weight: 700;
  margin: 0 0 6px;
  letter-spacing: -0.02em;
  color: var(--bone);
}
.author-hero__role {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--amber);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 14px;
}
.author-hero__bio {
  font-family: var(--serif-body);
  font-size: 16.5px;
  color: #C4C8CC;
  max-width: 62ch;
  line-height: 1.6;
}
.author-hero__links {
  display: flex;
  gap: 10px;
  margin-top: 16px;
  flex-wrap: wrap;
}
.author-hero__links a {
  font-family: var(--mono);
  font-size: 10.5px;
  color: #C4C8CC;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid var(--hairline);
  padding: 6px 10px;
  border-radius: 2px;
}
.author-hero__links a:hover { color: var(--amber); border-color: var(--amber); }

/* ---------- Network grid ---------- */
.network-grid { display: grid; grid-template-columns: 1fr; gap: 14px; padding: 32px 0; }
@media (min-width: 700px) { .network-grid { grid-template-columns: repeat(2, 1fr); } }
.network-card {
  border: 1px solid var(--hairline);
  background: var(--carbon);
  padding: 22px;
  display: block;
  color: inherit;
  border-radius: 2px;
  transition: border-color 160ms;
}
.network-card:hover { border-color: var(--amber); }
.network-card__tier {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  font-weight: 500;
}
.network-card__title {
  font-family: var(--sans-display);
  font-size: 24px;
  font-weight: 700;
  margin: 8px 0 4px;
  letter-spacing: -0.02em;
  color: var(--bone);
}
.network-card__title a { color: var(--bone); }
.network-card__title a:hover { color: var(--amber); }
.network-card__domain {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--sov-green);
  margin-bottom: 10px;
  letter-spacing: 0.02em;
}
.network-card__role {
  font-family: var(--serif-body);
  font-size: 14.5px;
  color: #C4C8CC;
  line-height: 1.55;
}

/* ---------- Breadcrumb ---------- */
.breadcrumb {
  padding: 12px 0;
  font-family: var(--mono);
  font-size: 11px;
  color: var(--slate);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--hairline);
}
.breadcrumb a { color: var(--slate); text-decoration: none; }
.breadcrumb a:hover { color: var(--amber); }
.breadcrumb__sep { margin: 0 10px; color: var(--slate-dim); }

/* ---------- Brief header ---------- */
.brief-header {
  padding: 22px 0;
  border-bottom: 1px solid var(--hairline);
  max-width: 720px;
  margin: 0 auto var(--gutter);
}
.brief-number {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  font-weight: 600;
}

/* ---------- Section helper ---------- */
.section { padding: 40px 0; }
.section > h2 {
  font-family: var(--sans-display);
  font-size: clamp(22px, 2.8vw, 32px);
  font-weight: 600;
  letter-spacing: -0.015em;
  margin-bottom: 16px;
  color: var(--bone);
}
.container-narrow { max-width: 820px; margin: 0 auto; padding: 0 var(--gutter); }

/* ---------- Disclaimer band ---------- */
.disclaimer-band {
  background: var(--carbon);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  font-family: var(--mono);
  font-size: 11px;
  color: var(--slate);
  line-height: 1.65;
  letter-spacing: 0.02em;
  padding: 18px 0;
}
.disclaimer-band a { color: var(--amber); text-decoration: underline; }

/* ---------- Footer ---------- */
.footer {
  background: var(--obsidian);
  border-top: 2px solid var(--amber);
  padding: 44px 0 24px;
}
.footer-grid { display: grid; grid-template-columns: 1fr; gap: 28px; margin-bottom: 28px; }
@media (min-width: 700px) { .footer-grid { grid-template-columns: 1.4fr repeat(4, 1fr); gap: 36px; } }
.footer-col h5 {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--amber);
  border-bottom: 1px solid var(--hairline);
  padding-bottom: 8px;
  margin: 0 0 12px;
  font-weight: 600;
}
.footer-col ul {
  list-style: none; margin: 0; padding: 0;
  font-family: var(--mono);
  font-size: 12px;
}
.footer-col ul li { padding: 5px 0; }
.footer-col a { color: #C4C8CC; letter-spacing: 0.02em; }
.footer-col a:hover { color: var(--amber); text-decoration: none; }
.footer__masthead {
  font-family: var(--sans-display);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--bone);
  margin-bottom: 10px;
  font-variant: normal;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.footer__masthead::before {
  content: "";
  display: inline-block;
  width: 8px; height: 8px;
  background: var(--amber);
  border-radius: 1px;
  box-shadow: 0 0 8px var(--glow-amber);
}
.footer__mission {
  font-family: var(--mono);
  font-style: normal;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--slate);
  line-height: 1.65;
  margin: 0 0 8px;
}
.footer-bottom {
  border-top: 1px solid var(--hairline);
  padding-top: 18px;
  font-family: var(--mono);
  font-size: 10.5px;
  color: var(--slate);
  text-align: center;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* ---------- Nav (final Terminal pass) ---------- */
.nav {
  position: sticky; top: 0; z-index: 40;
  background: rgba(10,11,13,0.88);
  border-bottom: 1px solid var(--hairline);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: box-shadow 200ms;
}
.nav--scrolled { box-shadow: 0 2px 0 var(--hairline); }
.nav__inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 10px var(--gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.nav__brand {
  font-family: var(--sans-display);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.005em;
  color: var(--bone);
  font-variant: normal;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.nav__brand::before {
  content: "";
  display: inline-block;
  width: 8px; height: 8px;
  background: var(--amber);
  border-radius: 1px;
  box-shadow: 0 0 8px var(--glow-amber);
}
.nav__links {
  list-style: none; display: flex; gap: 22px; margin: 0; padding: 0;
  font-family: var(--mono);
  font-size: 11.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.nav__links a { color: var(--slate); position: relative; padding: 5px 0; }
.nav__links a:hover { color: var(--bone); }
.nav__links a[aria-current="page"] { color: var(--amber); }
.nav__links a::after {
  content: "";
  position: absolute; bottom: 0; left: 0;
  width: 0; height: 2px;
  background: var(--amber);
  transition: width 200ms;
}
.nav__links a:hover::after,
.nav__links a[aria-current="page"]::after { width: 100%; }
.nav__cta {
  font-family: var(--mono);
  font-size: 10.5px;
  color: var(--obsidian);
  background: var(--amber);
  padding: 7px 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  border-radius: 2px;
  transition: background 140ms;
}
.nav__cta:hover { background: #FFC44D; text-decoration: none; color: var(--obsidian); }
.nav__burger {
  display: none;
  background: transparent;
  border: 1px solid var(--hairline);
  font-size: 16px;
  color: var(--bone);
  cursor: pointer;
  padding: 6px 10px;
  border-radius: 2px;
}
@media (max-width: 720px) {
  .nav__burger { display: block; }
  .nav__links { display: none; width: 100%; flex-direction: column; gap: 0; background: var(--obsidian); border-top: 1px solid var(--hairline); padding: 8px 0; }
  .nav--open .nav__links {
    display: flex; position: absolute; top: 100%; left: 0; right: 0;
    padding: 8px var(--gutter); border-bottom: 1px solid var(--hairline);
  }
  .nav--open .nav__links li { padding: 10px 0; border-bottom: 1px solid var(--hairline-soft); }
  .nav__cta { display: none; }
}

/* ---------- Masthead (final Terminal pass) ---------- */
.masthead {
  padding: 22px 0 0;
  text-align: center;
  background: var(--carbon);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
}
.masthead__date-line {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--slate);
  margin-bottom: 12px;
  font-variant-numeric: tabular-nums;
}
.masthead__wordmark {
  font-family: var(--sans-display);
  font-weight: 700;
  font-size: clamp(36px, 5.5vw, 60px);
  letter-spacing: -0.02em;
  margin: 0;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  color: var(--bone);
}
.masthead__wordmark a { color: var(--bone); }
.masthead__wordmark a:hover { color: var(--amber); }
.masthead__tagline {
  font-family: var(--mono);
  font-style: normal;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--slate);
  margin: 12px auto 16px;
  max-width: 82ch;
  line-height: 1.55;
}
.masthead__rule {
  height: 2px;
  background: var(--amber);
  max-width: var(--container);
  margin: 0 auto;
  position: relative;
  box-shadow: 0 0 16px var(--glow-amber);
}
.masthead__rule::before, .masthead__rule::after { content: none; }

/* ---------- Reading progress bar ---------- */
.reading-progress {
  position: fixed; top: 0; left: 0;
  height: 2px; width: 0;
  background: var(--amber);
  box-shadow: 0 0 12px var(--glow-amber);
  z-index: 100;
  transition: width 60ms linear;
}

/* ---------- Article head ---------- */
.article-head {
  padding: 36px 0 28px;
  border-bottom: 1px solid var(--hairline);
}
.article-head__inner { max-width: 820px; margin: 0 auto; padding: 0 var(--gutter); }
.article-head__kicker { margin-bottom: 14px; }
.byline-bar {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 0 6px;
  margin-top: 18px;
  border-top: 1px solid var(--hairline);
  flex-wrap: wrap;
}
.byline-bar__portrait {
  width: 44px; height: 44px;
  border-radius: 50%;
  object-fit: cover;
  filter: grayscale(1);
  border: 1px solid var(--hairline);
}
.byline-bar__meta { flex: 1 1 auto; min-width: 0; }
.byline-bar__name {
  font-family: var(--sans-display);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--bone);
}
.byline-bar__name a { color: var(--bone); }
.byline-bar__name a:hover { color: var(--amber); }
.byline-bar__role {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--slate);
}
.byline-bar__date {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--slate);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.byline-bar__share { display: flex; gap: 4px; }
.byline-bar__share button {
  background: transparent;
  border: 1px solid var(--hairline);
  padding: 5px 10px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #C4C8CC;
  cursor: pointer;
  border-radius: 2px;
}
.byline-bar__share button:hover { border-color: var(--amber); color: var(--amber); }

/* ---------- Print ---------- */
@media print {
  .nav, .reading-progress, .byline-bar__share, .citation-share, .related, .newsletter, .disclaimer-band, .editors-note, .footer, .nav__burger, .ticker { display: none !important; }
  body { background: white; color: black; font-size: 11pt; line-height: 1.5; }
  .article-body, .article-body p, .article-body h2, .article-body h3, .article-body li { color: black; }
  .article-body { max-width: none; padding: 0; }
  .article-hero img { filter: grayscale(1); }
  a { color: black; text-decoration: underline; }
  .masthead__rule { background: black; box-shadow: none; }
  .pull-quote { page-break-inside: avoid; background: none; color: black; }
}

/* ---------- Reduced motion respect ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  .reading-progress { transition: none !important; }
  .ticker__track { animation: none !important; }
}

.byline-bar__name a { color: var(--ink); }
.byline-bar__role { font-family: var(--sans-ui); font-size: 12px; color: var(--ink-metadata); }
.byline-bar__date { font-family: var(--sans-ui); font-size: 12.5px; color: var(--ink-muted); letter-spacing: 0.02em; white-space: nowrap; }
.byline-bar__share { display: flex; gap: 4px; }
.byline-bar__share button {
  background: transparent;
  border: 1px solid var(--hairline);
  padding: 4px 10px;
  font-family: var(--sans-ui);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-muted);
  cursor: pointer;
}
.byline-bar__share button:hover { border-color: var(--rule-maroon); color: var(--rule-maroon); }

/* ---------- Print ---------- */
@media print {
  .nav, .reading-progress, .byline-bar__share, .citation-share, .related, .newsletter, .disclaimer-band, .editors-note, .footer, .nav__burger { display: none !important; }
  body { background: white; color: black; font-size: 11pt; line-height: 1.5; }
  .article-body { max-width: none; padding: 0; }
  .article-hero img { filter: grayscale(1); }
  a { color: black; text-decoration: underline; }
  .masthead__rule { background: black; }
  .pull-quote { page-break-inside: avoid; }
}

/* ---------- Reduced motion respect ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  .reading-progress { transition: none !important; }
}

/* ================================================================
   Style 5 · Modern Policy Journal — article-head components
   ================================================================ */

/* ---------- Byline-authority (above headline) ---------- */
.byline-authority {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 8px 0 24px;
  padding: 14px 0;
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
}
.byline-authority__portrait {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  background: var(--paper-tinted);
}
.byline-authority__meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.byline-authority__label {
  font-family: var(--sans-ui);
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-metadata);
  font-weight: 500;
}
.byline-authority__name {
  font-family: var(--serif-display);
  font-weight: 600;
  font-size: clamp(19px, 2vw, 22px);
  line-height: 1.15;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.byline-authority__name a { color: inherit; border-bottom: 1px solid transparent; transition: border-color 200ms; }
.byline-authority__name a:hover { border-bottom-color: var(--rule-maroon); }
.byline-authority__credentials {
  font-family: var(--serif-body);
  font-style: italic;
  font-size: 14.5px;
  line-height: 1.35;
  color: var(--ink-muted);
}

/* ---------- Structured frontmatter row ---------- */
.frontmatter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  margin: 22px 0 8px;
  padding: 14px 0 18px;
  border-top: 1px solid var(--hairline);
  list-style: none;
}
.frontmatter-chip {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.frontmatter-chip dt {
  font-family: var(--sans-ui);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-metadata);
  font-weight: 600;
  margin: 0;
}
.frontmatter-chip dd {
  font-family: var(--serif-body);
  font-size: 14.5px;
  line-height: 1.3;
  color: var(--ink);
  margin: 0;
  font-weight: 500;
}
.frontmatter-chip--topic dd a {
  color: var(--teal);
  border-bottom: 1px solid transparent;
  transition: border-color 200ms;
}
.frontmatter-chip--topic dd a:hover { border-bottom-color: var(--teal); }

/* Compact byline bar (share-only row after frontmatter) */
.byline-bar--compact {
  display: flex;
  justify-content: flex-end;
  padding: 0 0 16px;
  border-top: none;
  margin: 0 0 12px;
  gap: 0;
}
.byline-bar--compact .byline-bar__share {
  display: flex;
  gap: 8px;
}

@media (max-width: 640px) {
  .byline-authority { gap: 12px; padding: 12px 0; }
  .byline-authority__portrait { width: 48px; height: 48px; }
  .frontmatter-row { gap: 18px; }
  .frontmatter-chip dt { font-size: 9.5px; }
  .frontmatter-chip dd { font-size: 13.5px; }
}

/* ================================================================
   Style 5 · Footnote references + hover tooltips
   ================================================================ */
sup.fn-ref, a.fn-ref {
  font-family: var(--sans-ui);
  font-size: 10.5px;
  line-height: 1;
  font-weight: 600;
  vertical-align: super;
  margin: 0 1px 0 2px;
}
sup.fn-ref a, a.fn-ref {
  color: var(--rule-maroon);
  text-decoration: none;
  border-bottom: 1px dotted var(--rule-maroon);
  padding: 0 2px;
  border-radius: 2px;
  transition: background 150ms, color 150ms, border-color 150ms;
}
sup.fn-ref a:hover,
sup.fn-ref a:focus-visible,
a.fn-ref:hover,
a.fn-ref:focus-visible {
  background: var(--rule-maroon);
  color: var(--paper);
  border-bottom-color: var(--rule-maroon);
  outline: none;
}

/* Footnote tooltip */
.fn-tooltip {
  position: absolute;
  z-index: 1000;
  max-width: 340px;
  min-width: 180px;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--serif-body);
  font-size: 13.5px;
  line-height: 1.45;
  padding: 12px 14px;
  border-radius: 4px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2), 0 2px 6px rgba(0, 0, 0, 0.12);
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms var(--ease);
}
.fn-tooltip.is-visible { opacity: 1; }
.fn-tooltip::after {
  content: "";
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 10px;
  height: 10px;
  background: var(--ink);
  border-radius: 1px;
}

/* Highlight target when navigating via #fn-N */
.sources ol li:target {
  background: var(--pull-quote-band);
  padding: 10px 14px;
  margin: 4px -14px;
  border-radius: 3px;
  transition: background 400ms;
}

@media (prefers-reduced-motion: reduce) {
  .fn-tooltip { transition: none !important; }
}

/* Print: render footnotes inline on paper */
@media print {
  .fn-tooltip { display: none !important; }
  sup.fn-ref a, a.fn-ref {
    color: var(--ink) !important;
    background: none !important;
    border-bottom: none !important;
  }
  sup.fn-ref a::after { content: " (see note " attr(data-fn-index) ")"; font-size: 9px; color: var(--ink-metadata); }
}

/* ================================================================
   Style 5 · Cinematic B&W hero with text overlay
   ================================================================ */

.article-head--hero {
  padding: 0;
  border-bottom: none;
  margin-bottom: 0;
}
/* Pull the hero figure edge-to-edge regardless of parent container */
.article-head--hero .article-hero--overlay { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

.article-hero--overlay {
  position: relative;
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 16 / 9;
  max-height: 72vh;
  min-height: 420px;
  overflow: hidden;
  background: #111214;
  isolation: isolate;
}
@media (min-width: 1800px) {
  .article-hero--overlay { max-height: 780px; }
}

/* B&W hero image — force grayscale regardless of source */
.article-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.06) brightness(0.86);
  z-index: 1;
}

/* Legibility scrim — darker at bottom-left where text sits */
.article-hero__scrim {
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.05) 35%, rgba(0,0,0,0.55) 78%, rgba(0,0,0,0.78) 100%),
    linear-gradient(90deg, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.15) 45%, rgba(0,0,0,0) 70%);
  pointer-events: none;
}

/* Text column sits over the image — bottom-aligned, left-anchored */
.article-hero__content {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 100%;
  padding-bottom: clamp(28px, 5vw, 56px);
  padding-top: clamp(72px, 10vw, 120px);
  color: #F5F3EE;
}
.article-hero__content .article-head__inner {
  max-width: var(--container);
  width: 100%;
  margin: 0 auto;
  padding: 0 var(--gutter);
}

/* Headline & dek on dark — boost weight, tighten leading, add subtle shadow for pop */
.article-head__headline {
  color: #FFFFFF;
  font-family: var(--serif-display);
  font-weight: 700;
  font-size: clamp(36px, 5.8vw, 76px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin: 14px 0 18px;
  max-width: 22ch;
  text-wrap: balance;
  text-shadow: 0 2px 22px rgba(0,0,0,0.55), 0 1px 2px rgba(0,0,0,0.35);
}
.article-head__dek {
  color: #E5E2DA;
  font-family: var(--serif-display);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(18px, 2.2vw, 26px);
  line-height: 1.35;
  max-width: 58ch;
  margin: 0;
  text-shadow: 0 1px 12px rgba(0,0,0,0.5);
}

/* Kicker on dark — ochre still reads, but lifted to cream for contrast */
.article-head__kicker--on-dark {
  color: #E6BF80;                 /* ochre desaturated/lifted for dark BG */
  letter-spacing: 0.18em;
  font-size: 11px;
  margin: 0 0 4px;
  text-shadow: 0 1px 8px rgba(0,0,0,0.6);
}

/* Byline-authority on dark — light rules, cream name, muted cream credentials */
.byline-authority--on-dark {
  border-top: 1px solid rgba(255,255,255,0.18);
  border-bottom: 1px solid rgba(255,255,255,0.18);
  margin: 4px 0 18px;
  padding: 12px 0;
  max-width: 560px;
}
.byline-authority--on-dark .byline-authority__portrait {
  border: 2px solid rgba(255,255,255,0.25);
  background: rgba(255,255,255,0.08);
  filter: grayscale(0.6) contrast(1.05);
}
.byline-authority--on-dark .byline-authority__label {
  color: rgba(245,243,238,0.7);
}
.byline-authority--on-dark .byline-authority__name {
  color: #FFFFFF;
}
.byline-authority--on-dark .byline-authority__name a {
  color: inherit;
}
.byline-authority--on-dark .byline-authority__name a:hover {
  border-bottom-color: #E6BF80;
}
.byline-authority--on-dark .byline-authority__credentials {
  color: rgba(229,226,218,0.85);
}

/* Below-hero rail — frontmatter + share on paper ground */
.article-head__rail {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.article-head__rail .frontmatter-row {
  border-top: none;
  padding-top: 22px;
}
.article-hero__caption {
  margin: -6px 0 14px;
  padding-top: 10px;
  border-top: 1px solid var(--hairline);
}

/* Mobile */
@media (max-width: 700px) {
  .article-hero--overlay { min-height: 360px; aspect-ratio: 4 / 5; max-height: none; }
  .article-hero__scrim {
    background:
      linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.1) 30%, rgba(0,0,0,0.65) 70%, rgba(0,0,0,0.82) 100%);
  }
  .article-head__headline { font-size: clamp(30px, 8vw, 44px); max-width: 100%; }
  .article-head__dek { font-size: clamp(16px, 4.2vw, 19px); }
  .byline-authority--on-dark { max-width: 100%; }
}

/* Override the legacy .article-hero rules (with filter: grayscale(0.04) and border)
   — those targeted the old figure container; our new variant overrides them. */
.article-hero--overlay .article-hero__img {
  border: none !important;
  filter: grayscale(1) contrast(1.06) brightness(0.86);
}

/* ================================================================
   Style 5 · Apply B&W to front-page lead + feature tiles
   ================================================================ */
.lead__figure img {
  filter: grayscale(1) contrast(1.04) brightness(0.94);
  transition: filter 400ms var(--ease);
}
.lead__figure:hover img { filter: grayscale(1) contrast(1.08) brightness(1); }

.feature-tile__img {
  filter: grayscale(1) contrast(1.04) brightness(0.95);
  transition: filter 300ms var(--ease), transform 300ms var(--ease);
}
.feature-tile:hover .feature-tile__img {
  filter: grayscale(1) contrast(1.1) brightness(1.02);
}

/* Related-tile images inside articles — same treatment */
.related .feature-tile__img {
  filter: grayscale(1) contrast(1.04) brightness(0.95);
}

/* Print — show B&W heroes cleanly, collapse scrim */
@media print {
  .article-hero--overlay { min-height: auto; aspect-ratio: auto; max-height: 340px; }
  .article-hero__scrim { display: none; }
  .article-head__headline, .article-head__dek,
  .byline-authority--on-dark .byline-authority__name,
  .byline-authority--on-dark .byline-authority__credentials { color: #000 !important; text-shadow: none !important; }
  .article-head__kicker--on-dark { color: #444 !important; }
}

/* Reduced motion respect */
@media (prefers-reduced-motion: reduce) {
  .lead__figure img, .feature-tile__img { transition: none; }
}

/* =============================================================================
   SOVEREIGN TERMINAL — component additions
   Ticker · data tiles · NAV pill · section labels · terminal chrome
   ============================================================================= */

/* Section labels — terminal style with blinking cursor */
.section-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--amber);
  padding: 6px 0;
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  margin-bottom: 24px;
  width: 100%;
  font-variant-numeric: tabular-nums;
}
.section-label::before {
  content: ">";
  color: var(--sov-green);
}
.section-label__ts {
  margin-left: auto;
  color: var(--slate);
  font-size: 10px;
}

/* Data tile grid (front page + article rails) */
.data-rail {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0;
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  background: var(--carbon);
  margin: 24px 0;
}
.data-tile {
  padding: 14px 18px;
  border-right: 1px solid var(--hairline);
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 88px;
  position: relative;
}
.data-tile:last-child { border-right: 0; }
@media (max-width: 720px) {
  .data-tile { border-right: 0; border-bottom: 1px solid var(--hairline); }
  .data-tile:last-child { border-bottom: 0; }
}
.data-tile__label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--slate);
}
.data-tile__value {
  font-family: var(--mono);
  font-size: 22px;
  font-weight: 600;
  color: var(--bone);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.data-tile__change {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
}
.data-tile__change--up { color: var(--sov-green); }
.data-tile__change--down { color: var(--signal-red); }
.data-tile__change--flat { color: var(--slate); }
.data-tile--accent { background: linear-gradient(180deg, rgba(240,180,41,0.06), transparent 70%); }
.data-tile--accent .data-tile__value { color: var(--amber); }

/* NAV callout — highlighted rail on article page */
.nav-callout {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1px solid var(--amber);
  background: linear-gradient(180deg, rgba(240,180,41,0.08), rgba(240,180,41,0.02));
  margin: 32px 0;
  box-shadow: 0 0 24px var(--glow-amber);
}
.nav-callout__cell {
  padding: 14px 16px;
  border-right: 1px solid rgba(240,180,41,0.25);
}
.nav-callout__cell:last-child { border-right: 0; }
@media (max-width: 720px) {
  .nav-callout { grid-template-columns: repeat(2, 1fr); }
  .nav-callout__cell:nth-child(2) { border-right: 0; }
  .nav-callout__cell:nth-child(-n+2) { border-bottom: 1px solid rgba(240,180,41,0.25); }
}
.nav-callout__label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 4px;
}
.nav-callout__value {
  font-family: var(--mono);
  font-size: 20px;
  font-weight: 600;
  color: var(--bone);
  font-variant-numeric: tabular-nums;
}

/* Terminal chrome — corner framing for hero images */
.article-hero--overlay::before,
.article-hero--overlay::after {
  content: "";
  position: absolute;
  width: 14px;
  height: 14px;
  border: 1px solid var(--amber);
  z-index: 3;
  pointer-events: none;
}
.article-hero--overlay::before {
  top: 10px; left: 10px;
  border-right: 0; border-bottom: 0;
}
.article-hero--overlay::after {
  bottom: 10px; right: 10px;
  border-left: 0; border-top: 0;
}

/* Breadcrumb — mono/terminal */
.breadcrumb {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--slate);
  background: var(--obsidian);
  border-bottom: 1px solid var(--hairline);
  padding: 10px 0;
}
.breadcrumb a { color: var(--slate); text-decoration: none; }
.breadcrumb a:hover { color: var(--amber); }
.breadcrumb__sep { color: var(--slate-dim); margin: 0 10px; }
.breadcrumb__sep::before { content: "/"; }
.breadcrumb__sep > * { display: none; }

/* Disclaimer band — terminal warning strip */
.disclaimer-band {
  background: var(--carbon);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  color: var(--slate);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  line-height: 1.6;
  padding: 14px 0;
}
.disclaimer-band strong { color: var(--signal-red); font-weight: 600; }

/* Footer — terminal footer */
.footer {
  background: var(--obsidian);
  border-top: 1px solid var(--hairline);
  padding: 40px 0 24px;
}
.footer::before {
  content: "";
  display: block;
  height: 2px;
  background: var(--amber);
  box-shadow: 0 0 12px var(--glow-amber);
  margin-bottom: 40px;
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
}
.footer__masthead {
  font-family: var(--sans-display);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--bone);
  font-variant: normal;
  text-transform: none;
  margin-bottom: 8px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.footer__masthead::before {
  content: "";
  width: 10px; height: 10px;
  background: var(--amber);
  border-radius: 1px;
  box-shadow: 0 0 8px var(--glow-amber);
}
.footer__mission {
  font-family: var(--mono);
  font-size: 11px;
  font-style: normal;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--slate);
  line-height: 1.6;
}
.footer-col h5 {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--amber);
  border-bottom: 1px solid var(--hairline);
  padding-bottom: 6px;
  margin-bottom: 10px;
}
.footer-col ul { font-family: var(--mono); font-size: 12px; }
.footer-col a { color: var(--bone); }
.footer-col a:hover { color: var(--amber); }
.footer-bottom {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--slate-dim);
  text-align: left;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
}

/* Masthead wordmark — restore bone color (masthead is already on carbon) */
.masthead__wordmark a { color: var(--bone); }
.nav__brand { color: var(--bone); }
.nav__brand:hover { color: var(--amber); }

/* Front-page sidebar — terminal rails */
.front-sidebar { border-left: 1px solid var(--hairline); padding-left: 28px; background: transparent; }
.front-sidebar h3 {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  color: var(--amber);
  border-bottom: 1px solid var(--hairline);
  padding-bottom: 8px;
}
.side-item { border-bottom: 1px solid var(--hairline); padding: 12px 0; }
.side-item__kicker {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--sov-green);
  font-weight: 500;
}
.side-item__head {
  font-family: var(--sans-display);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--bone);
  margin: 4px 0 6px;
}
.side-item__head a { color: var(--bone); }
.side-item__head a:hover { color: var(--amber); }
.side-item__meta {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--slate);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Article body serif — adjust for dark */
.article-body p, .article-body ul, .article-body ol, .article-body li {
  color: #D7DADE;
  font-family: var(--serif-body);
}
.article-body h2, .article-body h3 { color: var(--bone); font-family: var(--sans-display); }
.article-body blockquote, .pull-quote {
  background: var(--carbon-2);
  border-left: 3px solid var(--amber);
  color: var(--bone);
  font-family: var(--serif-body);
}
.callout {
  background: var(--carbon-2);
  border-left: 3px solid var(--sov-green);
  color: #D7DADE;
  font-family: var(--serif-body);
}
.callout strong {
  color: var(--sov-green);
  font-family: var(--mono);
  letter-spacing: 0.1em;
}

/* Author hero card */
.author-hero {
  background: var(--carbon);
  border: 1px solid var(--hairline);
  padding: 28px;
  margin: 24px 0;
  display: flex;
  gap: 28px;
  align-items: flex-start;
  flex-wrap: wrap;
}
.author-hero img {
  filter: grayscale(0.2) contrast(1.05) brightness(0.95);
  border: 1px solid var(--hairline);
}
.author-hero__name { color: var(--bone); font-family: var(--sans-display); }
.author-hero__role {
  font-family: var(--mono);
  color: var(--amber);
  letter-spacing: 0.1em;
  font-size: 11px;
  text-transform: uppercase;
}
.author-hero__bio { color: #D7DADE; font-family: var(--serif-body); }
.author-hero__links a {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--slate);
  border: 1px solid var(--hairline);
  padding: 5px 10px;
  text-decoration: none;
  border-radius: 2px;
}
.author-hero__links a:hover {
  color: var(--amber);
  border-color: var(--amber);
}

/* Frontmatter chips — terminal */
.frontmatter-row {
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  background: var(--carbon);
  margin: 18px 0;
}
.frontmatter-chip { border-right: 1px solid var(--hairline); padding: 10px 14px; }
.frontmatter-chip dt {
  font-family: var(--mono);
  font-size: 9.5px;
  letter-spacing: 0.14em;
  color: var(--slate);
  text-transform: uppercase;
}
.frontmatter-chip dd {
  font-family: var(--mono);
  font-size: 13px;
  color: var(--bone);
  font-variant-numeric: tabular-nums;
}
.frontmatter-chip--topic dd a { color: var(--sov-green); border: 0; }
.frontmatter-chip--topic dd a:hover { color: var(--amber); }

/* Byline-authority on dark — refine */
.byline-authority {
  background: var(--carbon);
  border: 1px solid var(--hairline);
  border-left: 2px solid var(--amber);
  padding: 14px 18px;
}
.byline-authority__portrait {
  filter: grayscale(0.3) contrast(1.05);
  border: 1px solid var(--hairline);
}
.byline-authority__label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--amber);
  text-transform: uppercase;
}
.byline-authority__name {
  font-family: var(--sans-display);
  color: var(--bone);
  font-weight: 600;
}
.byline-authority__credentials {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--slate);
  text-transform: uppercase;
  font-style: normal;
}

/* Network cards */
.network-card {
  background: var(--carbon);
  border: 1px solid var(--hairline);
  padding: 20px;
  border-radius: 2px;
  transition: border-color 180ms var(--ease);
}
.network-card:hover { border-color: var(--amber); }
.network-card__tier {
  font-family: var(--mono);
  color: var(--amber);
  letter-spacing: 0.14em;
  font-size: 10px;
}
.network-card__title { font-family: var(--sans-display); color: var(--bone); }
.network-card__title a { color: var(--bone); }
.network-card__title a:hover { color: var(--amber); }
.network-card__domain {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--sov-green);
  letter-spacing: 0.04em;
}
.network-card__role { font-family: var(--serif-body); color: #B8BCC2; }

/* Data tables — terminal */
.data-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--mono);
  font-size: 13px;
  background: var(--carbon);
  border: 1px solid var(--hairline);
  margin: 1.5em 0;
}
.data-table th, .data-table td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--hairline);
  text-align: left;
  font-variant-numeric: tabular-nums;
  color: #D7DADE;
}
.data-table th {
  color: var(--amber);
  font-weight: 600;
  font-size: 10.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: var(--carbon-2);
  border-bottom: 1px solid var(--amber);
}
.data-table tr:hover td { background: var(--carbon-2); }
.data-table strong { color: var(--bone); }

/* Masthead top — full-bleed dark frame */
.masthead-top {
  background: var(--carbon);
}

/* Brief sections */
.brief-number { font-family: var(--mono); color: var(--amber); letter-spacing: 0.14em; }
.brief-section h3 { font-family: var(--mono); color: var(--sov-green); letter-spacing: 0.14em; }

/* Topic chips */
.topic-chip, .topic-chips a {
  font-family: var(--mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  background: var(--carbon) !important;
  border: 1px solid var(--hairline) !important;
  color: var(--slate) !important;
  padding: 6px 10px !important;
  border-radius: 2px !important;
  text-decoration: none !important;
}
.topic-chip:hover, .topic-chips a:hover {
  background: var(--carbon-2) !important;
  border-color: var(--amber) !important;
  color: var(--amber) !important;
}

/* Newsletter form — terminal */
.newsletter-form input[type="email"] {
  background: var(--obsidian);
  border: 1px solid var(--hairline);
  color: var(--bone);
  font-family: var(--mono);
  font-size: 13px;
  padding: 10px 14px;
  border-radius: 2px;
  letter-spacing: 0.02em;
}
.newsletter-form input[type="email"]:focus {
  outline: none;
  border-color: var(--amber);
  box-shadow: 0 0 0 2px var(--glow-amber);
}
.newsletter-form button {
  background: var(--amber);
  color: var(--obsidian);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 10px 16px;
  border: 0;
  border-radius: 2px;
  cursor: pointer;
  transition: background 160ms var(--ease);
}
.newsletter-form button:hover { background: #FFC44D; }

/* Citation widget */
.citation, .citation-widget, details.citation {
  background: var(--carbon);
  border: 1px solid var(--hairline);
  border-left: 2px solid var(--sov-green);
  padding: 14px 18px;
  font-family: var(--mono);
  font-size: 12.5px;
  color: #D7DADE;
  margin: 24px 0;
}

/* Sources block */
.sources h2, .sources h3 {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--amber);
  border-top: 1px solid var(--hairline);
  padding-top: 16px;
}
.sources ol, .sources ul {
  font-family: var(--serif-body);
  font-size: 14px;
  color: #B8BCC2;
  line-height: 1.6;
}
.sources a { color: var(--sov-green); }
.sources a:hover { color: var(--amber); }

/* Drop cap — terminal style */
.article-body p:first-of-type::first-letter {
  color: var(--amber);
  font-family: var(--sans-display);
  font-weight: 700;
  font-size: 4em;
  line-height: 0.85;
  float: left;
  margin-right: 8px;
  margin-top: 6px;
  padding: 0;
}

/* Utility: force grayscale imagery site-wide */
.feature-tile__img,
.article-hero img,
.lead__figure img,
.related .feature-tile__img {
  filter: grayscale(0.85) contrast(1.08) brightness(0.88) !important;
}

/* Links in prose */
.article-body a {
  color: var(--amber);
  text-decoration: underline;
  text-decoration-color: rgba(240,180,41,0.4);
  text-underline-offset: 3px;
}
.article-body a:hover { color: #FFC44D; text-decoration-color: var(--amber); }

/* Override pull-quote on dark */
.pull-quote {
  background: var(--carbon-2);
  color: var(--bone) !important;
  border-left: 3px solid var(--amber) !important;
  padding: 22px 26px !important;
  font-style: italic;
}
.pull-quote::before {
  content: "//";
  display: block;
  font-family: var(--mono);
  color: var(--amber);
  font-size: 14px;
  letter-spacing: 0.2em;
  margin-bottom: 8px;
  font-style: normal;
}

/* Body text on article — keep serif legible */
.article-body { color: #D7DADE; }

/* Remove any inline-style background that may conflict */
[style*="background:var(--highlight)"] {
  background: var(--carbon) !important;
  border: 1px solid var(--hairline);
}

