/* =========================================================================
   Read the fine print — ExxonMobil redomiciliation publication site
   Companion to S. Goodwin, "Read the fine print", Columbia Blue Sky Blog,
   May 5, 2026. Cited in ExxonMobil DEFA14A (acc. 0001193125-26-219305, May 12, 2026).

   Visual direction: editorial publication, McKinsey/Goldman discipline.
   Palette: deep navy primary, oil-rust warning, cream surface, charcoal text.
   Type: Source Serif 4 (display), Inter (body), JetBrains Mono (codes).
   ========================================================================= */

/* ---------- Reset + base ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  scroll-behavior: smooth;
  scroll-padding-top: 4rem;
  hanging-punctuation: first last;
}
body {
  min-height: 100dvh;
  line-height: 1.6;
  font-family: var(--font-body);
  font-size: var(--text-base);
  color: var(--color-text);
  background-color: var(--color-bg);
  font-feature-settings: "ss01", "cv01", "kern";
}
img, picture, svg, canvas { display: block; max-width: 100%; height: auto; }
button { cursor: pointer; background: none; border: none; font: inherit; color: inherit; }
a { color: var(--color-primary); text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--color-primary) 25%, transparent); transition: border-color 180ms, color 180ms; }
a:hover { border-bottom-color: var(--color-primary); }
table { border-collapse: collapse; width: 100%; }

/* ---------- Design tokens ---------- */
:root, [data-theme="light"] {
  /* Surfaces — warm cream, publication-grade */
  --color-bg: #faf8f4;
  --color-surface: #ffffff;
  --color-surface-2: #f5f2eb;
  --color-surface-offset: #ede8de;
  --color-border: #d8d3c7;
  --color-border-faint: #e8e4d9;

  /* Text — high-contrast charcoal */
  --color-text: #181818;
  --color-text-muted: #5b5a55;
  --color-text-faint: #8a8881;

  /* Primary — deep navy (editorial gravitas, not corporate ExxonMobil red) */
  --color-primary: #0a1e3a;
  --color-primary-hover: #1a3766;
  --color-primary-highlight: #e4e8f0;

  /* Accent — oil rust (for inferential warnings, callouts, "evidence" markers) */
  --color-accent: #a84b2f;
  --color-accent-hover: #863a23;
  --color-accent-highlight: #f3e2da;

  /* Chart palette (derived to match navy + rust) */
  --chart-1: #0a1e3a;  /* navy */
  --chart-2: #a84b2f;  /* rust */
  --chart-3: #5b7a99;  /* slate blue */
  --chart-4: #c89a3a;  /* gold */
  --chart-5: #6b6357;  /* warm gray */
  --chart-6: #1b474d;  /* dark teal */

  /* Semantic */
  --color-null: #6b6357;       /* "null result" gray */
  --color-significant: #a84b2f;/* "touches significance" rust */
  --color-rejected: #6b8e23;   /* TOST rejects inferiority */

  /* Type scale */
  --text-xs:    clamp(0.75rem, 0.7rem + 0.15vw, 0.8125rem);
  --text-sm:    clamp(0.8125rem, 0.78rem + 0.18vw, 0.875rem);
  --text-base:  clamp(1rem, 0.97rem + 0.15vw, 1.0625rem);
  --text-lg:    clamp(1.125rem, 1.05rem + 0.4vw, 1.3125rem);
  --text-xl:    clamp(1.375rem, 1.2rem + 0.7vw, 1.75rem);
  --text-2xl:   clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem);
  --text-3xl:   clamp(2.25rem, 1.6rem + 2.5vw, 3.75rem);
  --text-hero:  clamp(2.75rem, 1.8rem + 4vw, 5rem);

  /* Spacing — 4px base */
  --space-1: 0.25rem;  --space-2: 0.5rem;   --space-3: 0.75rem;
  --space-4: 1rem;     --space-5: 1.25rem;  --space-6: 1.5rem;
  --space-7: 1.75rem;  --space-8: 2rem;     --space-10: 2.5rem;  --space-12: 3rem;
  --space-16: 4rem;    --space-20: 5rem;    --space-24: 6rem;

  /* Widths */
  --content-narrow: 640px;
  --content-default: 880px;
  --content-wide: 1200px;
  --content-prose: 66ch;

  /* Fonts — loaded via CDN in <head> */
  --font-display: "Source Serif 4", "Source Serif Pro", Georgia, serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --font-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;

  /* Borders */
  --hairline: 0.5px solid var(--color-border);
  --hairline-faint: 0.5px solid var(--color-border-faint);
  --rule: 1px solid var(--color-border);
}

[data-theme="dark"] {
  --color-bg: #14171c;
  --color-surface: #1a1d23;
  --color-surface-2: #20242b;
  --color-surface-offset: #262a32;
  --color-border: #353a44;
  --color-border-faint: #2a2e36;
  --color-text: #e8e4d9;
  --color-text-muted: #9c9890;
  --color-text-faint: #6b6860;
  --color-primary: #7ba2d4;
  --color-primary-hover: #a3c0e5;
  --color-primary-highlight: #1f2a3e;
  --color-accent: #d97a4d;
  --color-accent-hover: #e89a72;
  --color-accent-highlight: #3a2418;
  --chart-1: #7ba2d4;
  --chart-2: #d97a4d;
  --chart-3: #8fa3bc;
  --chart-4: #e5b969;
  --chart-5: #a09a8c;
  --chart-6: #5fa3a8;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --color-bg: #14171c; --color-surface: #1a1d23; --color-surface-2: #20242b;
    --color-surface-offset: #262a32; --color-border: #353a44; --color-border-faint: #2a2e36;
    --color-text: #e8e4d9; --color-text-muted: #9c9890; --color-text-faint: #6b6860;
    --color-primary: #7ba2d4; --color-primary-hover: #a3c0e5; --color-primary-highlight: #1f2a3e;
    --color-accent: #d97a4d; --color-accent-hover: #e89a72; --color-accent-highlight: #3a2418;
    --chart-1: #7ba2d4; --chart-2: #d97a4d; --chart-3: #8fa3bc;
    --chart-4: #e5b969; --chart-5: #a09a8c; --chart-6: #5fa3a8;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ---------- Typography ---------- */
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.15;
  text-wrap: balance;
  letter-spacing: -0.01em;
  color: var(--color-text);
}
h1 { font-size: var(--text-2xl); }
h2 { font-size: var(--text-xl); margin-bottom: var(--space-4); }
h3 { font-size: var(--text-lg); margin-bottom: var(--space-3); font-weight: 600; }
h4 { font-size: var(--text-base); font-weight: 600; margin-bottom: var(--space-2); }
p { text-wrap: pretty; max-width: var(--content-prose); }
.lead { font-size: var(--text-lg); line-height: 1.5; color: var(--color-text-muted); max-width: 60ch; }
.eyebrow {
  font-size: var(--text-xs);
  font-family: var(--font-body);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-text-muted);
  margin-bottom: var(--space-3);
}
.mono, code, .num {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum", "lnum";
}
.num-tab { font-variant-numeric: tabular-nums lining-nums; }
sup { font-size: 0.65em; vertical-align: super; line-height: 0; margin-left: 1px; }
sup a { border: 0; color: var(--color-accent); font-weight: 600; }

::selection { background: color-mix(in srgb, var(--color-primary) 22%, transparent); color: var(--color-text); }
:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; border-radius: 2px; }

/* ---------- Layout primitives ---------- */
.container { width: 100%; max-width: var(--content-wide); margin-inline: auto; padding-inline: var(--space-6); }
.container--narrow { max-width: var(--content-default); }
.container--prose { max-width: var(--content-prose); }
section { padding-block: clamp(var(--space-12), 6vw, var(--space-24)); }
.section-divider { border: 0; border-top: var(--hairline); margin-block: var(--space-12); }

.grid { display: grid; gap: var(--space-6); }
.grid-2 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.grid-3 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.grid-4 { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }

.stack > * + * { margin-top: var(--space-4); }
.stack-lg > * + * { margin-top: var(--space-8); }
.stack-sm > * + * { margin-top: var(--space-2); }

/* ---------- Header / nav ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--color-bg) 92%, transparent);
  backdrop-filter: saturate(180%) blur(12px);
  border-bottom: var(--hairline);
}
.site-header__inner {
  max-width: var(--content-wide); margin-inline: auto;
  padding: var(--space-4) var(--space-6);
  display: flex; align-items: center; gap: var(--space-8);
}
.site-logo { display: flex; align-items: center; gap: var(--space-3); color: var(--color-text); border: 0; font-weight: 600; }
.site-logo__mark { width: 28px; height: 28px; flex-shrink: 0; }
.site-logo__label { font-family: var(--font-display); font-size: var(--text-base); line-height: 1.1; letter-spacing: -0.005em; }
.site-logo__sub { display: block; font-family: var(--font-body); font-size: 0.6875rem; font-weight: 400; color: var(--color-text-muted); letter-spacing: 0.02em; margin-top: 1px; }
.site-nav { display: flex; align-items: center; gap: 1.75rem; margin-left: auto; flex-wrap: wrap; }
.site-nav a {
  font-size: var(--text-base); color: var(--color-text-muted); border: 0;
  font-weight: 500; padding: var(--space-2) 0; border-bottom: 1.5px solid transparent;
  letter-spacing: -0.005em;
  white-space: nowrap;
}
.site-nav a:hover, .site-nav a.is-active { color: var(--color-text); border-bottom-color: var(--color-primary); }
.theme-toggle { background: none; border: var(--hairline); border-radius: 999px; width: 32px; height: 32px; display: grid; place-items: center; color: var(--color-text-muted); }
.theme-toggle:hover { color: var(--color-text); border-color: var(--color-primary); }

/* ---------- Hero ---------- */
.hero { padding-top: var(--space-12); padding-bottom: var(--space-16); border-bottom: var(--hairline); }
.hero__eyebrow { color: var(--color-accent); font-weight: 600; }
.hero__title { font-size: var(--text-3xl); max-width: 22ch; margin-bottom: var(--space-6); letter-spacing: -0.02em; line-height: 1.05; }
.hero__sub { font-size: var(--text-lg); color: var(--color-text-muted); max-width: 64ch; line-height: 1.5; margin-bottom: var(--space-8); }
.hero__meta { display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-8); padding-top: var(--space-6); border-top: var(--hairline-faint); font-size: var(--text-sm); color: var(--color-text-muted); }
.hero__meta dt { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-text-faint); margin-bottom: 2px; }
.hero__meta dd { color: var(--color-text); font-weight: 500; }
.hero__meta-group { display: flex; flex-direction: column; gap: 2px; }

/* ---------- KPI tiles (dashboard-y, but quiet) ---------- */
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0; border: var(--hairline); background: var(--color-surface); }
.kpi { padding: var(--space-6); border-right: var(--hairline-faint); border-bottom: var(--hairline-faint); }
.kpi:last-child { border-right: 0; }
.kpi__label { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-text-muted); margin-bottom: var(--space-3); font-weight: 500; }
.kpi__value { font-family: var(--font-display); font-size: var(--text-2xl); font-weight: 600; line-height: 1; color: var(--color-text); font-variant-numeric: tabular-nums; }
.kpi__sub { font-size: var(--text-xs); color: var(--color-text-faint); margin-top: var(--space-2); }
.kpi__value--accent { color: var(--color-accent); }
.kpi__value--primary { color: var(--color-primary); }

/* ---------- Callout: "Cited by ExxonMobil" ---------- */
.callout-citation {
  background: var(--color-surface);
  border: var(--hairline);
  border-left: 3px solid var(--color-accent);
  padding: var(--space-8);
  margin-block: var(--space-12);
  position: relative;
}
.callout-citation__label { display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-accent); margin-bottom: var(--space-4); }
.callout-citation__quote { font-family: var(--font-display); font-size: var(--text-lg); line-height: 1.45; color: var(--color-text); margin-bottom: var(--space-4); max-width: 64ch; }
.callout-citation__quote::before { content: "\201C"; font-family: var(--font-display); font-size: 1.5em; color: var(--color-accent); line-height: 0; vertical-align: -0.3em; margin-right: 0.05em; }
.callout-citation__quote::after { content: "\201D"; font-family: var(--font-display); font-size: 1.5em; color: var(--color-accent); line-height: 0; vertical-align: -0.3em; margin-left: 0.05em; }
.callout-citation__source { font-size: var(--text-sm); color: var(--color-text-muted); }
.callout-citation__source a { font-weight: 500; }

/* ---------- Nav tiles ---------- */
.nav-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--space-4); margin-top: var(--space-12); }
.nav-tile { display: block; background: var(--color-surface); border: var(--hairline); padding: var(--space-6); color: var(--color-text); border-bottom: var(--hairline); transition: border-color 180ms, transform 180ms; }
.nav-tile:hover { border-color: var(--color-primary); transform: translateY(-2px); }
.nav-tile__num { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--color-text-faint); margin-bottom: var(--space-3); }
.nav-tile__title { font-family: var(--font-display); font-size: var(--text-lg); font-weight: 600; margin-bottom: var(--space-2); }
.nav-tile__desc { font-size: var(--text-sm); color: var(--color-text-muted); line-height: 1.5; }

/* ---------- Tables ---------- */
.data-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); margin-block: var(--space-6); }
.data-table caption { caption-side: top; text-align: left; font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-text-muted); padding-bottom: var(--space-3); font-weight: 500; }
.data-table th { text-align: left; padding: var(--space-3) var(--space-4); font-weight: 600; font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-text-muted); border-bottom: var(--rule); white-space: nowrap; }
.data-table td { padding: var(--space-3) var(--space-4); border-bottom: var(--hairline-faint); vertical-align: top; }
.data-table tbody tr:hover { background: var(--color-surface-2); }
.data-table .num { text-align: right; font-variant-numeric: tabular-nums lining-nums; }
.data-table th.num, .data-table td.num { text-align: right; }
.data-table .row-highlight { background: var(--color-accent-highlight); }
.data-table .row-highlight td { font-weight: 500; }
.data-table .label-pill { display: inline-block; padding: 2px var(--space-2); font-size: 0.6875rem; font-weight: 600; border-radius: 2px; text-transform: uppercase; letter-spacing: 0.04em; }
.label-pill--null { background: color-mix(in srgb, var(--color-null) 15%, transparent); color: var(--color-null); }
.label-pill--accent { background: var(--color-accent-highlight); color: var(--color-accent); }
.label-pill--rejected { background: color-mix(in srgb, var(--color-rejected) 18%, transparent); color: var(--color-rejected); }

/* ---------- Figures ---------- */
figure { background: var(--color-surface); border: var(--hairline); padding: var(--space-8); margin-block: var(--space-8); }
figure .chart-container { width: 100%; min-height: 320px; position: relative; }
figcaption { font-size: var(--text-sm); color: var(--color-text-muted); margin-top: var(--space-6); padding-top: var(--space-4); border-top: var(--hairline-faint); max-width: 72ch; line-height: 1.55; }
figcaption strong { color: var(--color-text); }
.figure-label { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-text-muted); font-weight: 600; margin-bottom: var(--space-3); }

/* ---------- Prose (article page) ---------- */
.prose { max-width: var(--content-prose); font-size: var(--text-base); line-height: 1.7; }
.prose h2 { margin-top: var(--space-12); padding-top: var(--space-6); border-top: var(--hairline); }
.prose h3 { margin-top: var(--space-8); }
.prose p + p { margin-top: var(--space-4); }
.prose p { max-width: 66ch; }
.prose ul, .prose ol { margin: var(--space-4) 0; padding-left: var(--space-6); max-width: 64ch; }
.prose li + li { margin-top: var(--space-2); }
.prose blockquote { font-family: var(--font-display); font-size: var(--text-lg); border-left: 3px solid var(--color-accent); padding: var(--space-2) var(--space-6); color: var(--color-text); margin: var(--space-6) 0; line-height: 1.45; }
.prose blockquote cite { display: block; font-family: var(--font-body); font-size: var(--text-sm); color: var(--color-text-muted); font-style: normal; margin-top: var(--space-3); }
.prose hr.fn-rule { border: 0; border-top: var(--hairline); margin-top: var(--space-16); margin-bottom: var(--space-6); }
.footnotes { font-size: var(--text-sm); color: var(--color-text-muted); }
.footnotes ol { padding-left: var(--space-6); }
.footnotes li { margin-bottom: var(--space-3); line-height: 1.55; max-width: 72ch; }
.footnotes li::marker { color: var(--color-accent); font-weight: 600; }

/* ---------- Buttons ---------- */
.btn { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-5); font-size: var(--text-sm); font-weight: 500; border: var(--hairline); background: var(--color-surface); color: var(--color-text); border-bottom-color: var(--color-border); transition: all 180ms; }
.btn:hover { border-color: var(--color-primary); color: var(--color-primary); }
.btn--primary { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.btn--primary:hover { background: var(--color-primary-hover); border-color: var(--color-primary-hover); color: #fff; }

/* ---------- Footer ---------- */
.site-footer { padding-block: var(--space-12); border-top: var(--hairline); margin-top: var(--space-24); }
.site-footer__inner { max-width: var(--content-wide); margin-inline: auto; padding-inline: var(--space-6); display: grid; grid-template-columns: 2fr 1fr 1fr; gap: var(--space-8); }
.site-footer h4 { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-text-muted); margin-bottom: var(--space-3); }
.site-footer p, .site-footer li { font-size: var(--text-sm); color: var(--color-text-muted); line-height: 1.6; max-width: none; }
.site-footer ul { list-style: none; padding: 0; }
.site-footer li { margin-bottom: var(--space-2); }
.site-footer .colophon { padding-top: var(--space-6); margin-top: var(--space-8); border-top: var(--hairline-faint); font-size: var(--text-xs); color: var(--color-text-faint); display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-4); max-width: var(--content-wide); margin-inline: auto; padding-inline: var(--space-6); }

/* ---------- Toggle / tabs ---------- */
.toggle-group { display: inline-flex; border: var(--hairline); padding: 2px; background: var(--color-surface); margin-bottom: var(--space-6); }
.toggle-group button { padding: var(--space-2) var(--space-4); font-size: var(--text-sm); font-weight: 500; color: var(--color-text-muted); border: 0; }
.toggle-group button.is-active { background: var(--color-primary); color: #fff; }

/* ---------- Stat strip (inline) ---------- */
.stat-strip { display: flex; flex-wrap: wrap; gap: var(--space-8); padding: var(--space-6) 0; border-top: var(--hairline-faint); border-bottom: var(--hairline-faint); }
.stat-strip__item { flex: 1 1 160px; }
.stat-strip__value { font-family: var(--font-display); font-size: var(--text-xl); font-weight: 600; color: var(--color-text); font-variant-numeric: tabular-nums; }
.stat-strip__label { font-size: var(--text-xs); color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.08em; margin-top: 2px; }

/* ---------- Source block / EDGAR ---------- */
.source-block { background: var(--color-surface-2); border: var(--hairline); padding: var(--space-5); font-size: var(--text-sm); margin-block: var(--space-6); }
.source-block__label { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-text-muted); margin-bottom: var(--space-2); font-weight: 600; }
.source-block .accession { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--color-text-muted); }

/* ---------- Page hero (subpages) ---------- */
.page-hero { padding-block: var(--space-16) var(--space-12); border-bottom: var(--hairline); }
.page-hero__title { font-size: var(--text-3xl); max-width: 22ch; margin-bottom: var(--space-4); letter-spacing: -0.02em; line-height: 1.05; }
.page-hero__lede { font-size: var(--text-lg); color: var(--color-text-muted); max-width: 64ch; line-height: 1.5; }

/* ---------- Coalition visualization ---------- */
.coalition-viz { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); margin-block: var(--space-8); }
@media (max-width: 800px) { .coalition-viz { grid-template-columns: 1fr; } }
.coalition-card { background: var(--color-surface); border: var(--hairline); padding: var(--space-6); }
.coalition-card__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: var(--space-4); padding-bottom: var(--space-3); border-bottom: var(--hairline-faint); }
.coalition-card__title { font-family: var(--font-display); font-size: var(--text-base); font-weight: 600; }
.coalition-card__sub { font-size: var(--text-xs); color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.08em; }
.coalition-card__big { font-family: var(--font-display); font-size: var(--text-3xl); font-weight: 600; line-height: 1; color: var(--color-text); font-variant-numeric: tabular-nums; margin-block: var(--space-3); }
.coalition-card__big--accent { color: var(--color-accent); }
.coalition-card__big--primary { color: var(--color-primary); }
.coalition-card__note { font-size: var(--text-sm); color: var(--color-text-muted); line-height: 1.5; }

.bar-row { display: grid; grid-template-columns: 160px 1fr 64px; gap: var(--space-3); align-items: center; padding: var(--space-2) 0; }
.bar-row__label { font-size: var(--text-sm); color: var(--color-text); }
.bar-row__track { background: var(--color-surface-2); height: 12px; position: relative; border: 0.5px solid var(--color-border-faint); }
.bar-row__fill { background: var(--color-primary); height: 100%; }
.bar-row__fill--accent { background: var(--color-accent); }
.bar-row__val { font-family: var(--font-mono); font-size: var(--text-sm); text-align: right; color: var(--color-text); font-variant-numeric: tabular-nums; }

/* ---------- Comparator / matrix table ---------- */
.matrix { width: 100%; border-collapse: collapse; font-size: var(--text-sm); margin-block: var(--space-6); border: var(--hairline); background: var(--color-surface); }
.matrix th { padding: var(--space-4); text-align: left; font-weight: 600; font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-text-muted); border-bottom: var(--rule); background: var(--color-surface-2); vertical-align: bottom; }
.matrix th .matrix__sub { display: block; font-size: 0.6875rem; font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--color-text-faint); margin-top: var(--space-1); }
.matrix td { padding: var(--space-4); border-bottom: var(--hairline-faint); border-right: var(--hairline-faint); vertical-align: top; line-height: 1.5; }
.matrix td:last-child { border-right: 0; }
.matrix .matrix__cite { font-family: var(--font-mono); font-size: 0.75rem; color: var(--color-text-muted); display: block; margin-bottom: var(--space-1); }
.matrix .matrix__rule { color: var(--color-text); }
.matrix .col-primary { background: color-mix(in srgb, var(--color-accent-highlight) 50%, transparent); }
.matrix .col-primary th { background: var(--color-accent-highlight); color: var(--color-accent); }

/* ---------- Methodology spec table (sortable look) ---------- */
.spec-table th { cursor: pointer; user-select: none; position: relative; }
.spec-table th[data-sort]:hover { color: var(--color-text); }
.spec-table th[data-sort]::after { content: "\2195"; font-size: 0.7em; margin-left: 4px; opacity: 0.4; }
.spec-table th[aria-sort="ascending"]::after { content: "\2191"; opacity: 1; color: var(--color-primary); }
.spec-table th[aria-sort="descending"]::after { content: "\2193"; opacity: 1; color: var(--color-primary); }

/* ---------- Case capsule (Gusinsky) ---------- */
.case-capsule { background: var(--color-surface); border: var(--hairline); border-left: 3px solid var(--color-primary); padding: var(--space-6); margin-block: var(--space-8); }
.case-capsule__label { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-primary); font-weight: 600; margin-bottom: var(--space-3); }
.case-capsule__caption { font-family: var(--font-display); font-size: var(--text-lg); font-weight: 500; margin-bottom: var(--space-4); }
.case-capsule__meta { display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-8); padding-block: var(--space-3); border-top: var(--hairline-faint); border-bottom: var(--hairline-faint); font-size: var(--text-sm); color: var(--color-text-muted); margin-bottom: var(--space-4); }
.case-capsule__meta dt { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-text-faint); }
.case-capsule__meta dd { color: var(--color-text); }

/* ---------- Extension cards ---------- */
.extension-card { background: var(--color-surface); border: var(--hairline); padding: var(--space-6); margin-bottom: var(--space-4); }
.extension-card__head { display: flex; gap: var(--space-4); align-items: baseline; margin-bottom: var(--space-4); padding-bottom: var(--space-3); border-bottom: var(--hairline-faint); }
.extension-card__id { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--color-accent); text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; padding: 2px var(--space-2); background: var(--color-accent-highlight); }
.extension-card__name { font-family: var(--font-display); font-size: var(--text-lg); font-weight: 600; }
.extension-card__row { display: grid; grid-template-columns: 100px 1fr; gap: var(--space-4); padding: var(--space-2) 0; }
.extension-card__row dt { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-text-muted); font-weight: 600; padding-top: 2px; }
.extension-card__row dd { font-size: var(--text-sm); color: var(--color-text); line-height: 1.55; }
@media (max-width: 600px) { .extension-card__row { grid-template-columns: 1fr; gap: var(--space-1); } }

/* ---------- Replication file list ---------- */
.file-list { display: grid; gap: 0; border: var(--hairline); background: var(--color-surface); margin-block: var(--space-6); }
.file-row { display: grid; grid-template-columns: 80px 1fr auto; gap: var(--space-4); padding: var(--space-4) var(--space-6); border-bottom: var(--hairline-faint); align-items: center; }
.file-row:last-child { border-bottom: 0; }
.file-row__type { font-family: var(--font-mono); font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-text-muted); font-weight: 600; padding: 2px var(--space-2); background: var(--color-surface-2); border: var(--hairline-faint); display: inline-block; text-align: center; }
.file-row__main { font-size: var(--text-sm); color: var(--color-text); }
.file-row__main strong { font-weight: 600; }
.file-row__main .file-row__sub { display: block; font-size: var(--text-xs); color: var(--color-text-muted); margin-top: 2px; }
.file-row__action { font-size: var(--text-xs); }
@media (max-width: 600px) { .file-row { grid-template-columns: 1fr; gap: var(--space-2); } }

/* ---------- Tolerance pills ---------- */
.tolerance-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--space-4); margin-block: var(--space-6); }
.tolerance-pill { background: var(--color-surface); border: var(--hairline); padding: var(--space-4) var(--space-5); }
.tolerance-pill__label { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-text-muted); margin-bottom: var(--space-2); font-weight: 600; }
.tolerance-pill__value { font-family: var(--font-mono); font-size: var(--text-sm); color: var(--color-text); font-variant-numeric: tabular-nums; }

/* ---------- Bayesian density (SVG placeholder) ---------- */
.density-plot { width: 100%; height: 320px; }

/* ---------- Responsive ---------- */
@media (max-width: 800px) {
  .site-header__inner { flex-wrap: wrap; gap: var(--space-4); }
  .site-nav { width: 100%; gap: var(--space-4); }
  .site-footer__inner { grid-template-columns: 1fr; gap: var(--space-6); }
  .kpi { border-right: 0; }
  figure { padding: var(--space-5); }
}

/* ---------- DEFA14A persistent citation ribbon (red-team #7) ---------- */
.defa-ribbon{background:#0a1e3a;color:#e8dfd0;padding:.5rem 0;font-family:Inter,system-ui,sans-serif;font-size:12.5px;border-bottom:1px solid rgba(232,223,208,0.08);}
.defa-ribbon__inner{max-width:var(--content-wide);margin-inline:auto;padding-inline:var(--space-6);display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;}
.defa-ribbon__seal{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:2px 7px;background:#d96544;color:#0a1e3a;font-family:"JetBrains Mono","SF Mono",monospace;font-size:10px;font-weight:700;letter-spacing:.12em;border-radius:3px;}
.defa-ribbon__text{flex:1 1 auto;color:#d8cfc0;line-height:1.45;min-width:0;}
.defa-ribbon__text .mono{color:#e8dfd0;}
.defa-ribbon__link{flex:0 0 auto;color:#d96544;font-family:"JetBrains Mono","SF Mono",monospace;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;text-decoration:none;border-bottom:.5px solid rgba(217,101,68,.4);padding-bottom:1px;}
.defa-ribbon__link:hover{color:#e57047;border-bottom-color:#e57047;}
@media (max-width:680px){.defa-ribbon{font-size:11.5px;}.defa-ribbon__inner{gap:.5rem;}}


/* ---------- Navy gradient hero (Shane-preferred, applied site-wide) ---------- */
.page-hero--navy{background:linear-gradient(180deg,#0a1e3a 0%,#1a3766 100%);color:#e8dfd0;padding-block:var(--space-16) var(--space-12);position:relative;overflow:hidden;margin-top:0}
.page-hero--navy::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 30%,rgba(168,75,47,.12),transparent 60%);pointer-events:none}
.page-hero--navy .eyebrow{color:#d96544;letter-spacing:.14em}
.page-hero--navy .page-hero__title{color:#fff;margin-bottom:var(--space-6);max-width:24ch}
.page-hero--navy .hero__lede{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.45;color:#d8cfc0;max-width:50rem;font-weight:400;margin-top:0;margin-bottom:var(--space-6)}
.page-hero--navy .hero__verdict{margin-top:var(--space-8);padding:var(--space-6) var(--space-8);background:rgba(0,0,0,.25);border-left:4px solid #d96544;border-radius:0 8px 8px 0;max-width:50rem}
.page-hero--navy .hero__verdict strong{color:#fff;font-weight:600}
.page-hero--navy .hero__verdict p{margin:0;color:#d8cfc0;font-family:var(--font-display);font-size:var(--text-base);line-height:1.55}
.page-hero--navy a{color:#d96544;border-bottom-color:rgba(217,101,68,.35)}
.page-hero--navy a:hover{color:#e57047

/* ---------- Chart slots (added 2026-05-17) ---------- */
.chart-slot {
  background: #fdfaf3;
  border: 1px solid var(--color-border-faint, #e6e0d2);
  border-radius: 14px;
  padding: clamp(1.5rem, 1rem + 1.5vw, 2.5rem) clamp(1.5rem, 1rem + 2vw, 3rem);
  margin-block: var(--space-7);
  box-shadow: 0 1px 2px rgba(10,30,58,0.04), 0 8px 24px rgba(10,30,58,0.05);
}
.chart-slot iframe {
  width: 100%;
  border: 0;
  display: block;
  margin: 0;
}
.chart-slot svg {
  max-width: 100%;
  height: auto;
  display: block;
}
.chart-slot .cs-eyebrow {
  font-family: 'JetBrains Mono', 'SF Mono', Menlo, monospace;
  font-size: var(--text-xs);
  font-weight: 600;
  color: #D26F4A;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin: 0 0 var(--space-3);
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}
.chart-slot .cs-title {
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.6rem);
  font-weight: 600;
  color: var(--color-text);
  margin: 0 0 var(--space-3);
  line-height: 1.25;
  letter-spacing: -0.015em;
  max-width: 56ch;
}
.chart-slot .cs-stat {
  font-family: var(--font-display);
  font-size: var(--text-base);
  font-weight: 500;
  color: var(--color-text);
  margin: 0 0 var(--space-2);
  line-height: 1.4;
}
.chart-slot .cs-stat-aux {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 400;
  color: var(--color-text-muted);
  margin-left: 0.25rem;
}
.chart-slot .cs-story {
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: 1.6;
  color: var(--color-text);
  margin: 0 0 var(--space-3);
  max-width: 64ch;
}
.chart-slot .cs-note {
  font-family: 'JetBrains Mono', 'SF Mono', Menlo, monospace;
  font-size: 11px;
  color: var(--color-text-muted);
  margin: var(--space-3) 0 0;
  line-height: 1.5;
}
.chart-slot--summary {
  /* Identical padding model — kept as separate selector for future variants. */
}
@media (max-width: 768px) {
 