  :root {
    /* ── SURFACES — FORENSIC DOSSIER DARK (elevated 2026-07-16) ── */
    --ink: #e4e4e7;            /* primary text (light on dark) */
    --ink-strong: #ffffff;     /* headings */
    --paper: #0a0b0e;          /* page background (slightly deeper for contrast) */
    --paper-2: #131519;        /* card surface (raised from paper) */
    --paper-3: #1b1e24;        /* raised card / input */
    --rule: #22262e;           /* hairline borders (slightly more visible) */
    --rule-strong: #30353f;
    --muted: #a8acb5;          /* secondary text (brightened for AA contrast) */
    --faint: #8b8f99;          /* tertiary / metadata (WCAG AA on dark) */

    /* ── PRIMARY ACCENT — signal red ── */
    --accent: #ef4444;
    --accent-dark: #dc2626;
    --accent-pale: #1c1115;

    /* ── SECONDARY ACCENT — blue ── */
    --blue: #3b82f6;
    --blue-dark: #2563eb;
    --blue-pale: #111826;

    /* ── TERTIARY — white (used for neutral/headings on dark) ── */
    /* (represented by --ink-strong and --paper-2 above) */

    /* ── CATEGORY PALETTE — collapsed to RED / BLUE / WHITE only ── */
    --cat-red:     #ef4444;  --cat-red-bg:     #1c1115;  /* critical / live / prosecution */
    --cat-blue:    #3b82f6;  --cat-blue-bg:    #111826;  /* official / court / defense */
    --cat-white:   #e4e4e7;  --cat-white-bg:   #1a1d23;  /* neutral / context / unsupported */
    /* legacy aliases (folded to the three primaries so existing CSS still works) */
    --gold:        var(--blue);
    --gold-pale:   var(--blue-pale);
    --cat-violet:  var(--cat-blue);  --cat-violet-bg:  var(--cat-blue-bg);
    --cat-teal:    var(--cat-blue);  --cat-teal-bg:    var(--cat-blue-bg);
    --cat-amber:   var(--cat-red);   --cat-amber-bg:   var(--cat-red-bg);
    --cat-green:   var(--cat-blue);  --cat-green-bg:   var(--cat-blue-bg);
    --cat-slate:   var(--cat-white); --cat-slate-bg:   var(--cat-white-bg);

    /* ── CATEGORICAL (tags — only red, blue, or neutral) ── */
    --tag-official: var(--cat-blue);
    --tag-conspiracy: var(--cat-red);
    --tag-media: var(--cat-blue);
    --tag-legal: var(--cat-blue);

    /* ── TYPOGRAPHY ── */
    --mono: ui-monospace, 'SF Mono', 'Cascadia Code', 'Roboto Mono', Menlo, Consolas, monospace;
    --serif: 'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', Palatino, Georgia, 'Times New Roman', serif;
    --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;

    /* Type scale — standardized 2026-07-16. All headings/body use these. */
    --t-display: 56px;   /* landing-title (hero) */
    --t-h1: 34px;        /* section-title */
    --t-h2: 24px;        /* sub-section headings, narrative-card h3, person-name */
    --t-h3: 20px;        /* card titles, evidence names, dossier sections */
    --t-h4: 18px;        /* small headings, cf-value, source-card h3 */
    --t-body: 15px;      /* default body (sans) */
    --t-prose: 17px;     /* editorial prose (serif) — story-prose, landing-dek */
    --t-small: 13px;     /* secondary text, captions */
    --t-meta: 11px;      /* labels, kickers, metadata (mono/sans) */
    --t-micro: 10px;     /* tags, badges */

    /* ── SPACING SCALE (8px base) ── */
    --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px;
    --s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px;

    /* ── RADIUS + SHADOW (deeper elevation for card depth 2026-07-16) ── */
    --radius: 14px;
    --radius-sm: 8px;
    --radius-pill: 999px;
    --shadow-sm: 0 1px 2px rgba(0,0,0,0.4), 0 1px 3px rgba(0,0,0,0.25);
    --shadow-md: 0 4px 16px -4px rgba(0,0,0,0.5), 0 2px 6px -2px rgba(0,0,0,0.35);
    --shadow-lg: 0 20px 40px -12px rgba(0,0,0,0.6), 0 6px 12px -4px rgba(0,0,0,0.4);
    --shadow-accent: 0 8px 24px -6px rgba(239,68,68,0.3);
    --shadow-card-hover: 0 8px 28px -8px rgba(0,0,0,0.55), 0 0 0 1px var(--rule-strong);

    /* ── DATE/METADATA COLOR — standardized light gold site-wide ── */
    --date-color: #d4a843;

    /* ── LAYOUT — fluid responsive system ── */
    --maxw: 1200px;
    --reading: 760px;
    /* Fluid padding: scales with viewport using clamp(min, preferred, max) */
    --pad-x: clamp(16px, 5vw, 64px);
    --pad-section: clamp(32px, 6vw, 80px);
    /* Fluid type that scales between mobile and desktop */
    --t-display: clamp(36px, 7vw, 64px);
    --t-h1: clamp(26px, 4vw, 38px);
    --t-h2: clamp(20px, 3vw, 26px);
  }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  html { overflow-x: hidden; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: 120px; }
  /* Ensure paragraphs have visible spacing between them site-wide */
  p { margin-bottom: var(--s-4); }
  p:last-child { margin-bottom: 0; }
  body {
    background: var(--paper); color: var(--ink);
    font-family: var(--sans);
    font-size: var(--t-body); line-height: 1.6;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    background-image: radial-gradient(ellipse 80% 50% at 50% -20%, rgba(239,68,68,0.04), transparent),
                      radial-gradient(ellipse 60% 40% at 80% 100%, rgba(59,130,246,0.03), transparent);
    background-attachment: fixed;
  }
  a { color: var(--accent); text-underline-offset: 3px; text-decoration-thickness: 1px; }
  a:hover { color: var(--accent-dark); }

  /* ── MASTHEAD + NAV (sticky, elevated, frosted) ── */
  .masthead {
    background: rgba(8, 9, 12, 0.88);
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    color: #fff; padding: 0;
    border-bottom: 1px solid rgba(48, 53, 63, 0.8);
    box-shadow: 0 4px 24px rgba(0,0,0,0.4);
    position: sticky; top: 0; z-index: 200;
  }
  .masthead-inner {
    max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad-x);
    display: flex; align-items: center; gap: var(--s-5); min-width: 0;
    min-height: 58px; flex-wrap: wrap; padding-top: 10px; padding-bottom: 10px;
  }
  .masthead-label {
    font-family: var(--sans); font-size: 9px;
    letter-spacing: 0.22em; text-transform: uppercase;
    color: var(--accent);
    padding: 3px 9px; border: 1px solid rgba(239,68,68,0.3);
    background: rgba(239,68,68,0.06);
    border-radius: 2px; white-space: nowrap; font-weight: 700;
  }
  .masthead-title {
    font-family: var(--serif); font-size: 17px; font-weight: 700;
    letter-spacing: -0.01em; color: #fff;
    flex: 1; min-width: 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  }
  .masthead-meta {
    font-family: var(--sans); font-size: 10px; color: #71767d;
    display: flex; align-items: center; gap: 16px;
    white-space: nowrap; font-weight: 500;
    overflow: hidden; position: relative;
  }
  /* Ticker animation — cycles through the three meta items slowly */
  .masthead-meta span {
    opacity: 0.3; transition: opacity .6s ease;
    animation: tickerCycle 12s infinite;
  }
  .masthead-meta span:nth-child(1) { animation-delay: 0s; }
  .masthead-meta span:nth-child(2) { animation-delay: 4s; }
  .masthead-meta span:nth-child(3) { animation-delay: 8s; }
  @keyframes tickerCycle {
    0%, 2% { opacity: 0.3; }
    6%, 28% { opacity: 1; }
    32%, 100% { opacity: 0.3; }
  }
  .status-dot {
    display: inline-block; width: 7px; height: 7px;
    border-radius: 50%; background: #22c55e;
    box-shadow: 0 0 0 0 rgba(34,197,94,0.5);
    animation: pulse 2s ease-in-out infinite;
    margin-right: 6px;
  }
  @keyframes pulse {
    0%,100%{opacity:1; box-shadow:0 0 0 0 rgba(34,197,94,0.5);}
    50%{opacity:.5; box-shadow:0 0 0 6px rgba(34,197,94,0);}
  }

  /* ── NAV BAR (newspaper section index) ── */
  .nav-bar {
    background: rgba(12, 13, 16, 0.92);
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    border-bottom: 1px solid var(--rule);
    box-shadow: 0 2px 12px rgba(0,0,0,0.3);
    position: sticky; top: 0; z-index: 199;
    overflow-x: auto; width: 100%; max-width: 100vw;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin; scrollbar-color: var(--rule-strong) transparent;
  }
  .nav-inner {
    max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad-x);
    display: flex; gap: 0;
  }
  .nav-tab {
    font-family: var(--sans); font-size: 12px; font-weight: 600;
    letter-spacing: 0.01em; color: var(--faint);
    padding: 14px 16px 12px; cursor: pointer;
    border: none; border-bottom: 3px solid transparent;
    transition: color .15s, border-color .15s, background .15s;
    white-space: nowrap; user-select: none; background: none;
    position: relative;
  }
  .nav-tab:hover { color: var(--ink-strong); background: rgba(255,255,255,0.03); }
  .nav-tab.active {
    color: var(--ink-strong); border-bottom: 3px solid var(--accent);
    background: transparent;
  }
  .nav-num {
    font-family: var(--serif); font-size: 11px; font-weight: 700;
    color: var(--accent); opacity: 0.7; margin-right: 3px;
    font-variant: small-caps; letter-spacing: 0.02em;
  }
  .nav-tab.active .nav-num { opacity: 1; }
  .nav-tab.active::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
    background: var(--accent);
  }
  .nav-tab:focus-visible,
  .filter-btn:focus-visible,
  .cw-btn:focus-visible,
  .source-link:focus-visible,
  .person-card:focus-visible,
  .cw-btn:focus-visible {
    outline: 3px solid var(--blue); outline-offset: 2px;
  }

  /* ── SKIP LINK (a11y — keyboard bypass to main content) ── */
  .skip-link {
    position: absolute; left: -9999px; top: 0; z-index: 10000;
    background: var(--ink, #0c0d10); color: #fff;
    padding: 12px 18px; font-family: var(--sans); font-weight: 600;
    font-size: 14px; text-decoration: none; border-radius: 0 0 6px 0;
    border: 2px solid var(--blue, #3b82f6);
  }
  .skip-link:focus,
  .skip-link:focus-visible {
    left: 0; outline: 3px solid var(--blue, #3b82f6); outline-offset: 2px;
  }

  /* ── REDUCED MOTION (a11y — honor user preference) ── */
  @media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
      animation-duration: 0.001ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.001ms !important;
      scroll-behavior: auto !important;
    }
  }

  /* ── LAYOUT ── */
  .main-container { max-width: var(--maxw); width: 100%; margin: 0 auto; padding: var(--pad-section) var(--pad-x) var(--s-8); }

  /* Content zones — vertical rhythm and separation between distinct sections */
  .case-file-stats { margin-bottom: var(--s-8); }
  .hearing-tracker { margin-bottom: var(--s-8) !important; }
  .two-accounts { margin-bottom: var(--s-8) !important; }
  .research-grid { margin-bottom: var(--s-8) !important; }
  .landing-story { margin-bottom: var(--s-8) !important; max-width: 100%; }
  .panel { display: none; }
  .panel.active { display: block; }

  /* ── RESEARCH STATUS ── */
  .research-status {
    background: var(--paper-2);
    border-bottom: 1px solid var(--rule);
    box-shadow: var(--shadow-sm);
    font-family: var(--sans);
  }
  .research-status-inner {
    max-width: var(--maxw); margin: 0 auto; padding: var(--s-4) var(--pad-x);
    display: grid; grid-template-columns: 1.2fr 1fr auto; gap: var(--s-6); align-items: center;
  }
  .status-item {
    border-left: 3px solid var(--rule); padding-left: 12px; min-width: 0;
  }
  .status-item.urgent { border-left-color: var(--accent); }
  /* Last Verified — bright green to signal freshness */
  .status-item.status-verified { border-left-color: #22c55e; }
  .verified-kicker { color: #22c55e !important; display: flex; align-items: center; gap: 5px; }
  .verified-pulse {
    display: inline-block; width: 7px; height: 7px; border-radius: 50%;
    background: #22c55e; box-shadow: 0 0 8px 2px rgba(34,197,94,0.5);
    animation: pulse-green 2s ease-in-out infinite; flex-shrink: 0;
  }
  .status-kicker {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em;
    text-transform: uppercase; color: var(--faint); margin-bottom: 3px; font-weight: 600;
  }
  .status-copy { font-family: var(--sans); font-size: 13px; line-height: 1.4; font-weight: 600; color: var(--ink); }
  .status-copy span { color: var(--muted); font-weight: 400; }
  .compass-link { color: var(--cat-blue); font-weight: 700; text-decoration: none; white-space: nowrap; }
  .compass-link:hover { color: var(--ink); text-decoration: underline; }

  @keyframes pulse-live {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.25; }
  }
  .live-dot {
    display: inline-block; width: 8px; height: 8px; border-radius: 50%;
    background: var(--accent); margin-right: 6px;
    animation: pulse-live 1.6s ease-in-out infinite;
  }

  /* ── Green neon live indicator ── */
  .live-green {
    display: inline-block; width: 8px; height: 8px; border-radius: 50%;
    background: #22c55e; margin-right: 8px; flex-shrink: 0;
    box-shadow: 0 0 8px 2px rgba(34,197,94,0.5);
    animation: pulse-green 2s ease-in-out infinite;
  }
  @keyframes pulse-green {
    0%, 100% { box-shadow: 0 0 8px 2px rgba(34,197,94,0.5); }
    50% { box-shadow: 0 0 16px 4px rgba(34,197,94,0.3); }
  }

  /* ── Cross-reference block (replaces old Lane 3 + theory redirect) ── */
  .cross-ref-block {
    background: var(--paper-2); border: 1px solid var(--rule);
    border-radius: var(--radius); padding: var(--s-5) var(--s-6);
    margin: var(--s-6) 0;
  }
  /* non-date — reverted to blue */ .cross-ref-label-revert {
    font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.1em;
    text-transform: uppercase; color: var(--cat-blue); margin-bottom: var(--s-3);
  }
  .cross-ref-block p {
    font-family: var(--sans); font-size: 13px; line-height: 1.65; color: var(--muted);
    margin-bottom: var(--s-4);
  }
  .cross-ref-link {
    display: inline-block; font-family: var(--sans); font-size: 13px; font-weight: 700;
    color: var(--cat-blue); text-decoration: none;
    padding: 8px 16px; border: 1px solid var(--blue); border-radius: var(--radius-sm);
    transition: all .15s;
  }
  .cross-ref-link:hover { background: var(--blue); color: #fff; }

  /* ── RECENT DEVELOPMENTS (bottom of overview) ── */
  .whats-changed {
    background: var(--paper-2); border: 1px solid var(--rule);
    border-radius: var(--radius); padding: var(--s-5) var(--s-6);
    margin-top: var(--s-7);
  }
  .whats-changed-head {
    margin-bottom: var(--s-4);
  }
  .whats-changed-title {
    font-family: var(--sans); font-size: 14px; font-weight: 700;
    color: var(--ink-strong); margin-bottom: 2px;
  }
  .whats-changed-more {
    font-family: var(--sans); font-size: 12px; font-weight: 600;
    color: var(--cat-blue); text-decoration: none;
  }
  .whats-changed-more:hover { color: var(--ink-strong); }
  .whats-changed-list {
    list-style: none; display: flex; flex-direction: column; gap: var(--s-3);
  }
  .whats-changed-list li {
    display: flex; align-items: baseline; gap: var(--s-4);
    padding: var(--s-3) 0; border-bottom: 1px solid var(--rule);
  }
  .whats-changed-list li:last-child { border-bottom: none; padding-bottom: 0; }
  .whats-changed-list time {
    font-family: var(--sans); font-size: 12px; font-weight: 700;
    color: var(--accent); white-space: nowrap; min-width: 56px; flex-shrink: 0;
  }
  .whats-changed-list li > div {
    font-family: var(--sans); font-size: 13px; line-height: 1.55; color: var(--muted); flex: 1;
  }
  .whats-changed-list li > div strong { color: var(--ink-strong); }
  .whats-changed-list a {
    font-family: var(--sans); font-size: 11px; font-weight: 600;
    color: var(--cat-blue); text-decoration: none; white-space: nowrap;
    margin-left: var(--s-3); flex-shrink: 0;
  }
  .whats-changed-list a:hover { color: var(--ink-strong); }

  @media (max-width: 600px) {
    .research-status-inner { grid-template-columns: 1fr; gap: var(--s-2); }
  }

  /* ── NEWS LEDGER ── */
  .news-controls {
    display: flex; align-items: center; justify-content: space-between;
    gap: 16px; flex-wrap: wrap; margin-bottom: 18px;
    padding-bottom: 14px; border-bottom: 1px solid var(--rule);
  }
  .news-legend { display: flex; gap: 8px; flex-wrap: wrap; }
  .news-meta {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--muted);
  }
  .news-ledger { list-style: none; display: grid; gap: 0; }
  .news-item {
    display: grid; grid-template-columns: 72px 1fr; gap: 18px;
    padding: 18px 0; border-bottom: 1px solid var(--rule);
  }
  .news-item:last-child { border-bottom: none; }
  .news-date-stamp {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    background: var(--paper-3); color: var(--ink-strong); padding: 10px 8px; border-radius: var(--radius-sm);
    height: fit-content; min-width: 64px; border: 1px solid var(--rule);
  }
  .news-month {
    font-family: var(--sans); font-size: 10px; letter-spacing: 0.12em;
    color: var(--cat-blue); font-weight: 700;
  }
  .news-day {
    font-family: var(--sans); font-size: 22px; font-weight: 800; line-height: 1; margin-top: 2px;
    color: var(--ink-strong);
  }
  .news-body { min-width: 0; }
  .news-headline {
    font-family: var(--serif); font-size: 17px; font-weight: 700; line-height: 1.3;
    color: var(--ink); margin-bottom: 6px;
  }
  .news-summary {
    font-family: var(--sans); font-size: 13px; line-height: 1.6; color: var(--muted);
    margin-bottom: 10px;
  }
  .news-foot {
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    font-family: var(--sans); font-size: 12px;
  }
  .news-foot a {
    color: var(--accent); text-decoration: none; font-weight: 600;
    border-bottom: 1px dotted var(--accent); padding-bottom: 1px;
  }
  .news-foot a:hover { color: var(--ink); border-bottom-color: var(--ink); }
  .news-tag {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em;
    text-transform: uppercase; color: var(--gold); font-style: italic;
    border-left: 2px solid var(--gold); padding-left: 8px;
  }
  @media (max-width: 600px) {
    .news-item { grid-template-columns: 56px 1fr; gap: 12px; }
    .news-date-stamp { min-width: 50px; padding: 6px 4px; }
    .news-day { font-size: 18px; }
    .news-headline { font-size: 15px; }
  }

  /* ── HEARING TRACKER — horizontal progression bar ── */
  .hearing-tracker {
    background: var(--paper-2); border: 1px solid var(--rule);
    border-radius: var(--radius); padding: var(--s-6); margin-bottom: var(--s-8);
    box-shadow: var(--shadow-sm);
  }
  .hearing-tracker-head {
    margin-bottom: var(--s-5);
  }
  .hearing-tracker-title {
    font-family: var(--sans); font-size: 14px; font-weight: 700; color: var(--ink-strong);
    margin-bottom: 2px;
  }
  .hearing-tracker-note { font-family: var(--sans); font-size: 12px; color: var(--faint); }
  .tracker-days {
    display: flex; gap: 0; overflow-x: auto;
  }
  .tracker-day {
    flex: 1; min-width: 0; padding: var(--s-4); position: relative;
    border: none; border-radius: 0; background: transparent;
    border-top: 3px solid var(--rule-strong);
  }
  /* Connector line between days */
  .tracker-day:not(:first-child)::before {
    content: ''; position: absolute; left: 0; top: 0; width: 1px; height: 3px;
    background: var(--rule-strong);
  }
  /* Held — blue top border (past, complete) */
  .tracker-day.done { border-top-color: var(--cat-blue); }
  /* Live — green top border with glow (active right now) */
  .tracker-day.live { border-top-color: #22c55e; box-shadow: 0 -3px 12px -2px rgba(34,197,94,0.3); }
  /* Next — amber top border (scheduled, upcoming) */
  .tracker-day.next { border-top-color: #f59e0b; box-shadow: 0 -3px 12px -2px rgba(245,158,11,0.25); }
  /* Scheduled — neutral top border (future) */
  .tracker-day { border-top-color: var(--rule-strong); }

  .td-kicker {
    font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.04em;
    color: var(--ink-strong); margin-bottom: 3px;
  }
  .td-state {
    font-family: var(--sans); font-size: 11px; font-weight: 700; margin-bottom: var(--s-3);
    padding: 2px 8px; border-radius: var(--radius-pill); display: inline-block;
  }
  .tracker-day.done .td-state { color: var(--cat-blue); background: rgba(59,130,246,0.1); }
  .tracker-day.live .td-state { color: #22c55e; background: rgba(34,197,94,0.1); }
  .tracker-day.next .td-state { color: #f59e0b; background: rgba(245,158,11,0.1); }
  .tracker-day .td-state { color: var(--faint); background: var(--paper-3); }
  .td-copy {
    font-family: var(--sans); font-size: 12px; line-height: 1.5; color: var(--muted);
  }
  @media (max-width: 768px) {
    .tracker-days { flex-direction: column; }
    .tracker-day { border-top: none; border-left: 3px solid var(--rule-strong); padding: var(--s-3) var(--s-4); }
    .tracker-day.done { border-left-color: var(--cat-blue); border-top: none; }
    .tracker-day.live { border-left-color: #22c55e; border-top: none; box-shadow: none; }
    .tracker-day.next { border-left-color: #f59e0b; border-top: none; box-shadow: none; }
  }

  .research-grid {
    display: grid; grid-template-columns: 1.2fr 0.8fr; gap: var(--s-5); margin-bottom: var(--s-7);
  }
  .research-card {
    background: var(--paper-2); border: 1px solid var(--rule);
    border-radius: var(--radius); padding: var(--s-5) var(--s-6);
    box-shadow: var(--shadow-sm);
  }
  .research-card.dark {
    background: #0f1419;
    color: #fff; border-color: #0f1419;
  }
  .research-card-title {
    font-family: var(--sans); font-size: 11px; letter-spacing: 0.16em;
    text-transform: uppercase; color: var(--faint); margin-bottom: var(--s-3);
    font-weight: 700;
  }
  .research-card.dark .research-card-title { color: var(--cat-blue); }
  .research-card p { font-family: var(--sans); font-size: 14px; line-height: 1.65; color: var(--muted); }
  .research-card.dark p { color: #c4cad2; }

  /* ═══ GUIDE TREATMENT — tutorial / wayfinding content ═══ */
  /* Distinct from evidence taxonomy (red/blue/white). Uses amber to signal
     "this is guidance on HOW to use the site, not case evidence." Applied via
     .guide modifier to research-cards, jury-prompts, and method-notes.
     Part of the Open Design ck-archive-design-system export. */
  .research-card.guide {
    background: linear-gradient(135deg, rgba(245,158,11,0.06) 0%, var(--paper-2) 60%);
    border: 1px solid rgba(245,158,11,0.25);
    border-left: 3px solid #f59e0b;
    position: relative;
  }
  .research-card.guide::before {
    content: '◌'; position: absolute; top: 18px; right: 20px;
    font-size: 20px; color: rgba(245,158,11,0.4); line-height: 1;
  }
  .research-card.guide .research-card-title { color: #f59e0b; }
  .research-card.guide p { color: #c4cad2; }

  .jury-prompt.guide {
    border-left-color: #f59e0b;
    background: linear-gradient(90deg, rgba(245,158,11,0.05) 0%, var(--paper) 40%);
  }
  .jury-prompt.guide::before {
    content: 'Guide'; display: inline-block;
    font-family: var(--mono); font-size: 9px; font-weight: 700;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: #f59e0b; margin-right: 8px; margin-bottom: 6px;
  }

  /* A dedicated "how to use" callout for the reading-guide elements */
  .guide-callout {
    background: linear-gradient(135deg, rgba(245,158,11,0.07) 0%, var(--paper-2) 70%);
    border: 1px solid rgba(245,158,11,0.2);
    border-left: 3px solid #f59e0b;
    border-radius: var(--radius-sm);
    padding: var(--s-4) var(--s-5);
    margin: var(--s-5) 0;
  }
  .guide-callout-title {
    font-family: var(--sans); font-size: 10px; font-weight: 700;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: #f59e0b; margin-bottom: var(--s-2);
    display: flex; align-items: center; gap: 6px;
  }
  .guide-callout-title svg { width: 14px; height: 14px; }
  .guide-callout p {
    font-family: var(--sans); font-size: 13px; line-height: 1.6;
    color: #c4cad2; margin: 0;
  }
  .guide-callout p + p { margin-top: 8px; }
  .guide-callout strong { color: var(--ink-strong); }
  .confidence-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-3); margin-top: var(--s-4); }
  .confidence-item { border-top: 1px solid var(--rule); padding-top: var(--s-3); min-width: 0; }
  /* Evidence-posture labels: flat, non-glowing, semantically consistent.
     BLUE = court record / established · RED = alleged / disputed · WHITE = neutral / not established.
     No box-shadow halos — they cause halation on dark backgrounds. */
  .confidence-label {
    display: inline-block; font-family: var(--sans); font-size: 10px; letter-spacing: 0.08em;
    font-weight: 700; text-transform: uppercase; color: #fff;
    background: var(--cat-blue);
    padding: 4px 10px; margin-bottom: 6px; border-radius: var(--radius-pill);
    line-height: 1;
  }
  .confidence-label.alleged { background: var(--cat-red); }
  .confidence-label.disputed { background: var(--cat-red); }
  .confidence-label.false { background: var(--cat-white); color: #1a1d23; }
  .confidence-desc { font-family: var(--sans); font-size: 12px; color: var(--muted); line-height: 1.45; }

  .source-link {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 34px; padding: 8px 14px; border: 1px solid var(--rule-strong);
    font-family: var(--sans); font-size: 11px; font-weight: 600; letter-spacing: 0.08em;
    text-transform: uppercase; text-decoration: none; color: var(--ink-strong);
    background: var(--paper-3); margin-top: 14px; border-radius: var(--radius-sm);
    transition: background .15s, border-color .15s;
  }
  .source-link:hover { background: #0f1419; color: #fff; border-color: var(--cat-blue); }

  /* ── INLINE SOURCE CITATIONS (Wikipedia-style clickable references in prose) ── */
  /* Subtle, on-brand: same accent color, dotted underline, not flashy */
  a.src-cite {
    color: var(--accent); text-decoration: none; font-weight: 500;
    border-bottom: 1px dotted rgba(239, 68, 68, 0.5);
    padding-bottom: 1px; transition: color .15s, border-color .15s;
  }
  a.src-cite:hover { color: var(--ink); border-bottom-color: var(--ink); border-bottom-style: solid; }
  a.src-cite:visited { color: var(--accent); }

  .evidence-ledger {
    width: 100%; border-collapse: collapse; background: var(--paper-2);
    border: 1px solid var(--rule); border-radius: var(--radius); overflow: hidden;
    margin: var(--s-5) 0 var(--s-7); font-family: var(--sans); font-size: 13px;
    box-shadow: var(--shadow-sm); table-layout: fixed;
  }
  .evidence-ledger th {
    font-family: var(--sans); font-size: 11px; letter-spacing: 0.1em;
    text-transform: uppercase; color: var(--date-color); text-align: left;
    padding: var(--s-4) var(--s-5); border-bottom: 1px solid var(--rule-strong); background: var(--paper-3);
    font-weight: 700;
  }
  .evidence-ledger td { padding: var(--s-5); border-bottom: 1px solid var(--rule); vertical-align: top; }
  .evidence-ledger tr:last-child td { border-bottom: none; }
  .evidence-ledger strong { font-family: var(--sans); font-size: 14px; font-weight: 700; color: var(--ink-strong); }
  .evidence-note { color: var(--faint); line-height: 1.45; font-size: 12px; margin-top: 4px; }
  /* Posture column: centered, narrow, holds the posture label */
  .evidence-ledger th:nth-child(3),
  .evidence-ledger td:nth-child(3) { width: 130px; text-align: center; vertical-align: middle; }
  /* Editorial-rule column: lighter, prose-like */
  .evidence-ledger th:nth-child(4),
  .evidence-ledger td:nth-child(4) { width: 28%; color: var(--muted); font-size: 13px; }
  .evidence-ledger td:nth-child(2) { color: var(--ink); line-height: 1.55; }
  .source-drawer {
    border: 1px solid var(--rule); background: var(--paper); margin: var(--s-4) 0 0;
    font-family: var(--sans); font-size: 13px; border-radius: var(--radius-sm);
  }
  .source-drawer summary {
    cursor: pointer; padding: 12px 14px; font-weight: 700;
    font-family: var(--sans); font-size: 11px; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--date-color);
  }
  .source-drawer div { padding: 0 14px 14px; color: var(--muted); line-height: 1.55; }
  .source-grid {
    display: flex; flex-direction: column; gap: 0;
  }
  /* Primary sources — featured, prominent */
  .source-card.source-primary {
    background: var(--paper-2); border: 1px solid var(--rule-strong);
    border-left: 4px solid var(--blue);
    padding: var(--s-4) var(--s-5); margin-bottom: var(--s-2);
    border-radius: var(--radius-sm);
    display: flex; align-items: center; gap: var(--s-4);
  }
  .source-card.source-primary .source-type {
    margin-bottom: 0; flex-shrink: 0; min-width: 90px;
  }
  .source-card.source-primary h3 { margin-bottom: 2px; flex: 1; min-width: 0; }
  .source-card.source-primary p { display: none; }
  .source-card.source-primary .source-link { margin-left: auto; flex-shrink: 0; }
  /* Secondary coverage — compact list rows */
  .source-card.source-secondary {
    background: transparent; border: none;
    border-bottom: 1px solid var(--rule);
    padding: var(--s-3) 0; margin-bottom: 0;
    border-radius: 0;
    display: flex; align-items: center; gap: var(--s-3);
    transition: background .12s;
  }
  .source-card.source-secondary:hover { background: rgba(255,255,255,0.02); }
  .source-card.source-secondary .source-type {
    margin-bottom: 0; flex-shrink: 0; font-size: 9px; min-width: 80px;
    opacity: 0.7;
  }
  .source-card.source-secondary h3 { margin-bottom: 0; font-size: 13px; flex: 1; min-width: 0; }
  .source-card.source-secondary p { display: none; }
  .source-card.source-secondary .source-link {
    margin-left: auto; flex-shrink: 0;
    border: none; background: none; padding: 4px 0;
    font-size: 11px; color: var(--date-color);
  }
  .source-card.source-secondary .source-link:hover { color: var(--ink-strong); }
  /* Category separator */
  .source-category-sep {
    font-family: var(--sans); font-size: 10px; font-weight: 700;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--faint); margin-top: var(--s-5); margin-bottom: var(--s-2);
    padding-top: var(--s-3); border-top: 1px solid var(--rule);
  }
  /* Legacy card style (kept for compatibility) */
  .source-card {
    background: var(--paper-2); border: 1px solid var(--rule); padding: 18px;
    font-family: var(--sans); min-width: 0;
    border-radius: var(--radius); box-shadow: var(--shadow-sm);
  }
  .source-type {
    font-family: var(--sans); font-size: 10px; letter-spacing: 0.14em;
    text-transform: uppercase; color: var(--date-color); margin-bottom: 8px; font-weight: 700;
  }
  .source-card h3 { font-family: var(--serif); font-size: var(--t-h4); line-height: 1.2; margin-bottom: 8px; }
  .source-card p { font-size: 13px; line-height: 1.6; color: var(--muted); }

  /* ── FOOTNOTES (per-claim citations; extends the source-drawer pattern) ── */
  /* Inline marker — a small superscript link to the numbered reference */
  .fn-marker, sup.fn-marker {
    font-family: var(--sans);
    font-size: 0.7em; font-weight: 700;
    color: var(--date-color);
    text-decoration: none;
    vertical-align: super;
    line-height: 0;
    margin-left: 1px;
    padding: 0 1px;
    cursor: pointer;
    transition: color 0.15s;
  }
  .fn-marker:hover, .fn-marker:focus-visible {
    color: #fff;
    outline: 1px solid var(--blue);
    border-radius: 2px;
  }
  /* Reference list block — attached to a panel/section */
  .fn-list {
    margin: var(--s-6) 0 0;
    padding: var(--s-4) var(--s-5);
    border-top: 1px solid var(--rule);
    background: var(--paper);
    border-radius: var(--radius-sm);
  }
  .fn-list-title {
    font-family: var(--sans); font-size: 11px; font-weight: 700;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--cat-blue); margin-bottom: var(--s-3);
  }
  .fn-list ol {
    list-style: none; counter-reset: fn;
    padding: 0; margin: 0;
  }
  .fn-list li {
    counter-increment: fn;
    font-family: var(--sans); font-size: 12px; line-height: 1.55;
    color: var(--muted);
    padding: 4px 0 4px 28px;
    position: relative;
  }
  .fn-list li::before {
    content: counter(fn);
    position: absolute; left: 0; top: 4px;
    color: var(--cat-blue); font-weight: 700;
    font-size: 11px;
  }
  .fn-list li a {
    color: var(--cat-blue); text-decoration: none;
    border-bottom: 1px dotted var(--rule-strong);
  }
  .fn-list li a:hover { color: #fff; border-bottom-color: var(--cat-blue); }
  .fn-list li .fn-back {
    margin-left: 6px; font-size: 11px; opacity: 0.6;
  }
  .fn-list li .fn-posture {
    display: inline-block; font-size: 9px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--faint); margin-left: 6px;
    padding: 1px 6px; border-radius: var(--radius-pill);
    background: var(--paper-3);
  }

  /* ── SOURCE LEGEND (public-facing label explainer) ── */
  .source-legend {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--s-5); margin: var(--s-6) 0 var(--s-7);
  }
  .legend-item {
    background: var(--paper-2); border: 1px solid var(--rule);
    border-radius: var(--radius-sm); padding: var(--s-5) var(--s-5) var(--s-4);
    display: flex; flex-direction: column; gap: var(--s-2);
  }
  .legend-item .confidence-label { margin-bottom: 2px; align-self: flex-start; }
  .legend-item p {
    font-family: var(--sans); font-size: 13px; line-height: 1.55;
    color: var(--muted); margin: 0;
  }
  .sources-method-note {
    background: var(--paper); border: 1px solid var(--rule);
    border-left: 3px solid var(--blue);
    border-radius: var(--radius-sm); padding: var(--s-5) var(--s-6);
    margin-bottom: var(--s-6);
  }
  .sources-method-note p {
    font-family: var(--sans); font-size: 13px; line-height: 1.6;
    color: var(--muted); margin: 0;
  }
  .sources-method-note strong { color: var(--ink-strong); font-weight: 700; }
  .sources-method-note a { color: var(--cat-blue); text-decoration: none; font-weight: 600; }
  .sources-method-note a:hover { text-decoration: underline; }
  .narrative-stack { display: grid; gap: var(--s-5); }
  .narrative-card {
    background: var(--paper-2); border: 1px solid var(--rule);
    border-radius: var(--radius); padding: 28px;
    box-shadow: var(--shadow-sm); transition: box-shadow .18s, transform .18s;
    position: relative; overflow: hidden;
  }
  .narrative-card::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  }
  .narrative-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); border-color: var(--rule-strong); }
  /* Each posture: red for serious disputes, blue for contested questions, white/neutral for unsupported */
  .narrative-card.serious {
    background: linear-gradient(135deg, var(--cat-red-bg) 0%, var(--paper-2) 40%);
    border-color: #2a1418;
  }
  .narrative-card.serious::before { background: var(--cat-red); }
  .narrative-card.contested {
    background: linear-gradient(135deg, var(--cat-blue-bg) 0%, var(--paper-2) 40%);
    border-color: #141826;
  }
  .narrative-card.contested::before { background: var(--cat-blue); }
  .narrative-card.unsupported {
    background: linear-gradient(135deg, var(--cat-white-bg) 0%, var(--paper-2) 40%);
    border-color: var(--rule);
  }
  .narrative-card.unsupported::before { background: var(--faint); }
  .narrative-card h3 {
    font-family: var(--sans); font-size: var(--t-h4); font-weight: 700; line-height: 1.4;
    margin-bottom: var(--s-4); letter-spacing: -0.01em; color: var(--ink-strong);
    text-wrap: balance;
  }
  .narrative-meta {
    display: inline-block; font-family: var(--sans); font-size: 11px; letter-spacing: 0.06em;
    text-transform: uppercase; font-weight: 700; margin-bottom: var(--s-4);
    padding: 5px 12px; border-radius: var(--radius-pill);
  }
  .narrative-card.serious .narrative-meta { background: var(--cat-red-bg); color: var(--cat-red); }
  .narrative-card.contested .narrative-meta { background: var(--cat-blue-bg); color: var(--cat-blue); }
  .narrative-card.unsupported .narrative-meta { background: var(--cat-white-bg); color: var(--faint); }
  .narrative-grid {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px;
  }
  .narrative-cell {
    min-width: 0; padding: 16px 18px; border-radius: var(--radius-sm);
    background: rgba(255,255,255,0.025); border: 1px solid var(--rule);
    transition: background .2s ease;
  }
  .narrative-cell:hover { background: rgba(255,255,255,0.04); }
  /* The 4 cells: blue for context/supports, red for pushes-back, blue for verdict */
  .narrative-cell:nth-child(1) { border-left: 3px solid var(--cat-blue); }
  .narrative-cell:nth-child(2) { border-left: 3px solid var(--cat-blue); }
  .narrative-cell:nth-child(3) { border-left: 3px solid var(--cat-red); }
  .narrative-cell:nth-child(4) { border-left: 3px solid var(--cat-blue); background: rgba(59,130,246,0.06); }
  .narrative-cell strong {
    display: block; font-family: var(--sans); font-size: 11px; letter-spacing: 0.1em;
    text-transform: uppercase; margin-bottom: 8px; font-weight: 700;
  }
  .narrative-cell p {
    font-family: var(--sans); font-size: 13px; line-height: 1.6; color: var(--muted);
  }
  .narrative-cell:nth-child(1) strong { color: var(--cat-blue); }
  .narrative-cell:nth-child(2) strong { color: var(--cat-blue); }
  .narrative-cell:nth-child(3) strong { color: var(--cat-red); }
  .narrative-cell:nth-child(4) strong { color: var(--cat-blue); }
  .narrative-cell p, .trust-list li, .atlas-card p {
    font-family: var(--sans); font-size: 14px; line-height: 1.65; color: var(--ink);
  }
  .trust-list { list-style: none; }
  .trust-list li { padding: 10px 0; border-bottom: 1px solid var(--rule); }
  .trust-list li:last-child { border-bottom: none; }
  .atlas-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px;
  }
  .atlas-card {
    background: var(--paper-2); border: 1px solid var(--rule); padding: 18px;
    border-radius: var(--radius); box-shadow: var(--shadow-sm);
  }
  .atlas-card h3 {
    font-family: var(--serif); font-size: var(--t-h3); line-height: 1.15; margin-bottom: 8px;
  }
  .compact-source { margin-top: 10px; }

  /* ── OVERVIEW PANEL ── */
  .hero-grid {
    display: grid; grid-template-columns: 1fr 340px; gap: 40px; margin-bottom: 40px;
  }
  .hero-lead { min-width: 0; }
  .hero-hed {
    font-family: var(--sans); font-size: 48px; font-weight: 800;
    line-height: 1.05; letter-spacing: -0.025em; margin-bottom: var(--s-3);
    color: var(--ink);
  }
  .hero-dek {
    font-family: var(--sans); font-size: 16px; color: var(--muted);
    margin-bottom: var(--s-6); line-height: 1.6;
    border-left: 3px solid var(--accent); padding-left: var(--s-4);
    font-weight: 400;
  }
  .hero-body { font-size: 15px; line-height: 1.7; color: var(--ink); }
  .hero-body p { margin-bottom: var(--s-4); }
  .hero-body strong { font-weight: 600; color: var(--ink); }

  .fact-card {
    background: #0f1419;
    color: #fff; padding: var(--s-6);
    font-family: var(--sans); min-width: 0;
    border-radius: var(--radius); box-shadow: var(--shadow-md);
    border: 1px solid #0f1419;
  }
  .fact-card-title {
    font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
    color: var(--gold); margin-bottom: var(--s-5); font-family: var(--mono); font-weight: 600;
  }
  .fact-row {
    border-top: 1px solid #2f343d; padding: var(--s-3) 0;
    display: flex; flex-direction: column; gap: 2px;
  }
  .fact-row:first-of-type { border-top: none; }
  .fact-label { font-size: 10px; color: var(--faint); letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; }
  .fact-value { font-size: 14px; color: #fff; font-weight: 500; }
  .fact-value.accent { color: #fca5a5; font-size: 20px; font-weight: 600; }

  .tag {
    display: inline-block;
    font-family: var(--mono); font-size: 10px; font-weight: 600; letter-spacing: 0.06em;
    text-transform: uppercase; padding: 3px 8px; border-radius: 3px;
    margin-right: 4px; margin-top: 2px;
    border: 1px solid transparent;
  }
  /* Tags — standardized by MEANING, not by card. Same tag text = same color everywhere. */
  .tag-official { background: #111826; color: #60a5fa; border-color: #1e2d44; }       /* official/role — blue */
  .tag-conspiracy { background: #1a1410; color: #f87171; border-color: #3d1e1e; }      /* conspiracy/contested — red */
  .tag-media { background: #111826; color: #60a5fa; border-color: #1e2d44; }           /* media/public — blue */
  .tag-legal { background: #111826; color: #60a5fa; border-color: #1e2d44; }           /* legal — blue */
  .tag-warning { background: var(--cat-red-bg); color: var(--accent); border-color: #3d1818; } /* warning — red */

  /* ── TIMELINE — vertical chronology with phase-colored rail ── */
  .timeline { position: relative; padding-left: 28px; }
  .timeline::before {
    content: ''; position: absolute; left: 5px; top: 0; bottom: 0;
    width: 2px; background: var(--rule-strong);
  }

  /* ERA GROUPS — each era gets a colored marker on the rail */
  .tl-group { margin-bottom: var(--s-6); position: relative; }
  .tl-group:last-child { margin-bottom: 0; }
  .tl-month {
    font-family: var(--sans); font-size: 12px; font-weight: 800;
    letter-spacing: 0.04em; text-transform: uppercase;
    color: var(--ink-strong); margin-bottom: var(--s-4);
    padding-left: var(--s-3); position: relative;
  }
  /* Era marker — centered ON the rail line. Rail center = 6px. Dot 12px → left edge at 0px → -28px from content (28px) */
  .tl-month::before {
    content: ''; position: absolute; left: -28px; top: 50%; transform: translateY(-50%);
    width: 12px; height: 12px; border-radius: 50%;
    background: var(--paper); border: 3px solid var(--blue);
    z-index: 1; box-sizing: border-box;
  }

  /* EVENTS — dots sit ON the rail, not floating beside it */
  .tl-event {
    display: block; background: transparent;
    border: none; border-radius: 0; box-shadow: none; transition: none;
    padding: var(--s-2) 0 var(--s-3) var(--s-4); position: relative;
  }
  .tl-event:hover { box-shadow: none; }
  /* Event dot — centered ON the 2px rail (center at 6px). Dot 12px total → left edge at 0px → -28px from content. */
  .tl-event::before {
    content: ''; display: block; position: absolute;
    left: -28px; top: 10px;
    width: 12px; height: 12px; border-radius: 50%;
    border: 2px solid var(--paper);
    z-index: 1; box-sizing: border-box;
  }
  /* Phase colors — differentiate pre-event, day-of, aftermath */
  /* Critical (day-of assassination) — red with glow */
  .tl-event.critical::before {
    background: var(--accent); border-color: var(--paper);
    box-shadow: 0 0 8px 1px rgba(239,68,68,0.4);
  }
  /* Legal proceedings — blue */
  .tl-event.legal::before { background: var(--blue); border-color: var(--paper); }
  /* Media/political — muted blue */
  .tl-event.media::before { background: var(--blue); opacity: 0.6; border-color: var(--paper); }
  /* Conspiracy — amber */
  .tl-event.conspiracy::before { background: #d97706; border-color: var(--paper); }

  /* Separator between events within a group */
  .tl-event::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: 0;
    height: 1px; background: var(--rule); opacity: 0.4;
  }
  .tl-event:last-child::after { display: none; }

  /* Date stamp */
  .tl-date {
    font-family: var(--sans); font-size: 11px; font-weight: 700;
    letter-spacing: 0.04em; color: var(--date-color); text-align: left;
    background: none; border: none; padding: 0 0 2px 0; display: block;
    text-transform: uppercase;
  }
  .tl-event.critical .tl-date { color: var(--accent); }
  .tl-event.legal .tl-date { color: var(--date-color); }
  .tl-event.media .tl-date { color: var(--faint); }
  .tl-event.conspiracy .tl-date { color: #d97706; }

  .tl-headline {
    grid-column: auto; padding: 0;
    font-family: var(--serif); font-size: 15px; font-weight: 700;
    margin-bottom: 4px; color: var(--ink-strong); line-height: 1.35;
  }
  .tl-body {
    grid-column: auto; padding: 0;
    font-family: var(--sans); font-size: 13px; color: var(--muted); line-height: 1.6;
  }
  @media (max-width: 600px) {
    .timeline { padding-left: 24px; }
    .tl-event::before { left: -24px; }
    .tl-month::before { left: -24px; }
    .tl-headline { font-size: 14px; }
    .tl-body { font-size: 13px; }
  }

  /* ── BATTLECARD (prosecution vs defense matchup) ── */
  /* ═══ BATTLECARD — elevated prosecution vs defense (redesigned 2026-07-16) ═══ */
  .battlecard {
    background: var(--paper-2); border: 1px solid var(--rule-strong);
    margin-bottom: var(--s-8); padding: 0; overflow: hidden;
    border-radius: var(--radius); box-shadow: var(--shadow-lg);
  }
  .battlecard-banner {
    background: #08090c; color: #fff; padding: var(--s-6) var(--s-6);
    text-align: center; border-bottom: 1px solid #1a1d23; position: relative;
  }
  .battlecard-banner::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
    background: linear-gradient(90deg, #dc2626 0%, #dc2626 50%, #2563eb 50%, #2563eb 100%);
  }
  .bc-banner-label {
    font-family: var(--sans); font-size: 10px; letter-spacing: 0.2em;
    text-transform: uppercase; color: var(--faint); margin-bottom: var(--s-2); font-weight: 600;
  }
  .bc-banner-name {
    font-family: var(--sans); font-size: 20px; font-weight: 800; margin-bottom: 2px;
    letter-spacing: -0.02em;
  }
  .bc-banner-role {
    font-family: var(--sans); font-size: 11px; letter-spacing: 0.06em;
    color: var(--muted); text-transform: uppercase; margin-bottom: var(--s-2); font-weight: 600;
  }
  .bc-banner-note {
    font-family: var(--sans); font-size: 12px; color: var(--faint); line-height: 1.5;
    max-width: 560px; margin: 0 auto;
  }

  /* The match grid — prosecution | VS | defense */
  .battlecard-match {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0; position: relative;
  }
  .bc-side {
    padding: 0; display: flex; flex-direction: column;
  }

  /* Side headers — solid color blocks (red prosecution, blue defense) */
  .bc-side-head {
    padding: var(--s-4) var(--s-5); margin-bottom: 0; position: relative;
  }
  .bc-prosecution .bc-side-head {
    background: linear-gradient(135deg, #1a0d0f 0%, #241214 100%);
    border-bottom: 3px solid #dc2626;
  }
  .bc-defense .bc-side-head {
    background: linear-gradient(135deg, #0d1018 0%, #111626 100%);
    border-bottom: 3px solid #2563eb;
  }
  .bc-side-label {
    font-family: var(--sans); font-size: 10px; letter-spacing: 0.18em;
    text-transform: uppercase; font-weight: 700; margin-bottom: 4px;
  }
  .bc-prosecution .bc-side-label { color: #f87171; }
  .bc-defense .bc-side-label { color: #60a5fa; }
  .bc-side-title {
    font-family: var(--sans); font-size: var(--t-h2); font-weight: 700; line-height: 1.2;
    margin-bottom: 6px; color: var(--ink-strong); letter-spacing: -0.01em;
  }
  .bc-side-burden {
    font-family: var(--sans); font-size: 12px; line-height: 1.5; color: var(--muted);
  }

  /* Lawyer cards — square blocks, text-on-background, clear separation */
  .bc-lawyers { display: flex; flex-direction: column; gap: 0; padding: var(--s-3) var(--s-5) var(--s-5); }
  .bc-lawyer {
    padding: var(--s-4); margin-bottom: var(--s-2);
    background: var(--paper-3); border: 1px solid var(--rule);
    border-radius: var(--radius-sm);
    transition: border-color .15s;
  }
  .bc-lawyer:last-child { margin-bottom: 0; }
  .bc-lawyer:hover { border-color: var(--rule-strong); }
  .bc-lawyer-name {
    font-family: var(--sans); font-size: 14px; font-weight: 700; color: var(--ink-strong);
  }
  .bc-lawyer-role {
    font-family: var(--sans); font-size: 12px; color: var(--muted); line-height: 1.4;
    margin-top: 3px;
  }
  .bc-lawyer-note {
    font-family: var(--sans); font-size: 11px; color: var(--faint); line-height: 1.45;
    margin-top: 6px;
  }
  /* Lead counsel — stronger card */
  .bc-lawyer.bc-lead {
    background: var(--paper-2); border-width: 2px;
  }
  .bc-prosecution .bc-lawyer.bc-lead { border-color: rgba(220,38,38,0.4); }
  .bc-defense .bc-lawyer.bc-lead { border-color: rgba(37,99,235,0.4); }

  /* The VS element — bold circular badge centered on the dividing line */
  .bc-vs {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
    width: 52px; height: 52px; border-radius: 50%;
    background: var(--paper); border: 2px solid var(--rule-strong);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--sans); font-size: 16px; font-weight: 900; letter-spacing: 0.05em;
    color: var(--ink-strong); z-index: 5;
    box-shadow: var(--shadow-md);
  }

  .bc-footnote {
    font-family: var(--sans); font-size: 12px; line-height: 1.55; color: var(--muted);
    padding: 14px 24px; border-top: 1px solid var(--rule); background: var(--paper-2);
    font-style: italic;
  }
  @media (max-width: 760px) {
    .battlecard-match { grid-template-columns: 1fr; }
    .bc-vs {
      top: 0; left: 50%; transform: translate(-50%, -50%);
      width: 48px; height: 48px;
    }
    .bc-prosecution { border-bottom: 1px solid var(--rule); }
  }

  /* ── PEOPLE ── */
  .people-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--s-4);
    align-items: stretch;
  }
  .person-card {
    background: var(--paper-2); border: 1px solid var(--rule-strong);
    border-radius: var(--radius-sm); padding: 0;
    cursor: pointer; overflow: hidden;
    transition: border-color .18s, background .18s, box-shadow .18s;
    display: flex; flex-direction: column;
    position: relative; height: 100%;
  }
  .person-card::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
    z-index: 2;
  }
  .person-card:hover {
    border-color: var(--ink); background: var(--paper-3);
  }
  /* Role-based accent stripe — sharp, semantic, NOT all blue */
  .person-card[data-cat="court"]::before { background: #c4a544; }       /* court — gold */
  .person-card[data-cat="victim"]::before { background: var(--accent); }  /* victim — red */
  .person-card[data-cat="suspect"]::before { background: #b91c1c; }      /* suspect — dark red */
  .person-card[data-cat="tpusa"]::before { background: #8b5cf6; }        /* TPUSA — violet */
  .person-card[data-cat="political"]::before { background: #22c55e; }    /* political — green */
  .person-card[data-cat="media"]::before { background: #f59e0b; }        /* media — amber */

  /* Card header — flat, no gradient, left-aligned role label */
  .person-card-header {
    display: flex; align-items: center; gap: var(--s-4);
    padding: var(--s-4) var(--s-5);
    border-bottom: 1px solid var(--rule);
    background: var(--paper-3);
  }
  .person-card[data-cat="court"] .person-card-header { border-bottom-color: #3d3418; }
  .person-card[data-cat="victim"] .person-card-header { border-bottom-color: #3d1818; }
  .person-card[data-cat="suspect"] .person-card-header { border-bottom-color: #3d1818; }
  .person-card[data-cat="tpusa"] .person-card-header { border-bottom-color: #2a1f3d; }
  .person-card[data-cat="political"] .person-card-header { border-bottom-color: #1a3328; }
  .person-card[data-cat="media"] .person-card-header { border-bottom-color: #3d2e18; }

  .person-avatar {
    width: 40px; height: 40px; border-radius: 4px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: var(--paper-3); border: 1px solid var(--rule-strong);
  }
  .person-avatar svg { width: 22px; height: 22px; stroke: rgba(255,255,255,0.95); stroke-width: 1.8; fill: none; stroke-linecap: round; stroke-linejoin: round; }
  .person-card[data-cat="court"] .person-avatar { background: #c4a544; border-color: #c4a544; }
  .person-card[data-cat="victim"] .person-avatar { background: var(--cat-red); border-color: var(--cat-red); }
  .person-card[data-cat="suspect"] .person-avatar { background: var(--cat-red); border-color: var(--cat-red); }
  .person-card[data-cat="tpusa"] .person-avatar { background: #8b5cf6; border-color: #8b5cf6; }
  .person-card[data-cat="political"] .person-avatar { background: #22c55e; border-color: #22c55e; }
  .person-card[data-cat="media"] .person-avatar { background: #f59e0b; border-color: #f59e0b; }

  .person-header-text { min-width: 0; flex: 1; }
  .person-role {
    font-family: var(--sans); font-size: 10px; letter-spacing: 0.1em;
    text-transform: uppercase; color: var(--faint); font-weight: 600; margin-bottom: 1px;
  }
  .person-card[data-cat="court"] .person-role { color: #c4a544; }
  .person-card[data-cat="victim"] .person-role { color: var(--cat-red); }
  .person-card[data-cat="suspect"] .person-role { color: var(--cat-red); }
  .person-card[data-cat="tpusa"] .person-role { color: #8b5cf6; }
  .person-card[data-cat="political"] .person-role { color: #22c55e; }
  .person-card[data-cat="media"] .person-role { color: #f59e0b; }
  .person-name {
    font-family: var(--serif); font-size: var(--t-h4); font-weight: 700; margin-bottom: 0;
    letter-spacing: -0.015em; line-height: 1.15; color: var(--ink-strong);
  }
  .person-name a.elink, .person-name .elink {
    color: var(--ink-strong) !important; background: transparent !important;
    border: none !important; padding: 0 !important; font-weight: 800 !important;
  }
  .person-name a.elink:hover { color: var(--cat-blue) !important; }
  .person-card-body { padding: var(--s-4) var(--s-5) var(--s-5); }
  .person-subtitle { font-family: var(--sans); font-size: 12px; color: var(--faint); margin-bottom: var(--s-3); }
  .person-bio {
    font-family: var(--sans); font-size: 13px; line-height: 1.6; color: var(--muted);
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
  }
  /* Expandable drill-down: clicking the card toggles full bio + see-also */
  .person-card.expanded .person-bio { -webkit-line-clamp: unset; }
  .person-card .person-seealso { display: none; }
  .person-card.expanded .person-seealso { display: block; }
  /* "Click to expand" hint */
  .person-card-body::after {
    content: '▸ Click to expand'; display: block; margin-top: var(--s-3);
    font-family: var(--mono); font-size: 10px; color: var(--faint); letter-spacing: 0.04em;
  }
  .person-card.expanded .person-card-body::after { content: '▴ Click to collapse'; }
  .person-tags { margin-top: auto; padding-top: var(--s-3); }
  .person-icon {
    width: 44px; height: 44px; border-radius: 4px;
    display: flex; align-items: center; justify-content: center;
    font-size: 22px; margin-bottom: 10px; flex-shrink: 0;
  }
  .person-monogram {
    font-family: var(--mono); font-size: 16px; font-weight: 700;
    color: #fff; letter-spacing: -0.02em;
    border: 1px solid rgba(255,255,255,0.15);
  }
  .person-icon svg { width: 22px; height: 22px; stroke: var(--ink); stroke-width: 1.6; fill: none; stroke-linecap: round; stroke-linejoin: round; }

  /* ── CHARGES ── */
  .charges-layout { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-6); }
  .charge-block {
    background: var(--paper-2); border: 1px solid var(--rule);
    border-radius: var(--radius); padding: 0;
    box-shadow: var(--shadow-sm); overflow: hidden;
  }
  .charge-block-title {
    font-family: var(--sans); font-size: 11px; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--ink-strong);
    background: var(--paper-3); padding: var(--s-4) var(--s-5);
    border-bottom: 1px solid var(--rule); font-weight: 700;
  }
  .charge-block > .charge-item:first-of-type,
  .charge-block > details:first-of-type { padding-top: var(--s-4); }
  .charge-item { border-bottom: 1px solid var(--rule); padding: var(--s-3) var(--s-5); margin: 0; }
  .charge-item:last-of-type { border-bottom: none; }
  .charge-name {
    font-family: var(--sans); font-size: 14px; font-weight: 700;
    margin-bottom: var(--s-2); color: var(--ink-strong); letter-spacing: -0.01em;
  }
  .charge-severity {
    display: inline-block; font-family: var(--sans); font-size: 9px;
    padding: 3px 8px; border-radius: var(--radius-pill); letter-spacing: 0.08em;
    text-transform: uppercase; margin-bottom: var(--s-2); font-weight: 700;
    background: var(--paper); color: var(--faint);
    border: 1px solid var(--rule-strong);
  }
  .severity-capital { background: var(--accent); color: #fff; border-color: var(--accent); }
  .severity-felony { background: rgba(239,68,68,0.15); color: #f87171; border-color: rgba(239,68,68,0.3); }
  .severity-other { background: var(--paper-3); color: var(--muted); border-color: var(--rule-strong); }
  .charge-desc {
    font-family: var(--sans); font-size: 13px; color: var(--muted); line-height: 1.6;
  }

  /* ── EVIDENCE CATALOGUE ── */
  .evidence-list { display: none; } /* old flat list, replaced by catalogue */
  .evidence-catalogue {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--s-3);
    align-items: stretch;
  }
  .evidence-card {
    background: var(--paper); border: 1px solid var(--rule);
    border-radius: var(--radius-sm); padding: var(--s-3) var(--s-4);
    border-left: 3px solid var(--rule-strong);
    display: flex; flex-direction: column; height: 100%;
  }
  .evidence-card.ev-disputed {
    border-left-color: var(--cat-red); background: var(--cat-red-bg);
  }
  .ev-tag {
    display: inline-block; font-family: var(--sans); font-size: 9px; font-weight: 700;
    letter-spacing: 0.08em; text-transform: uppercase; padding: 2px 7px;
    border-radius: var(--radius-pill); margin-bottom: var(--s-2);
    color: var(--faint); background: var(--paper-3);
  }
  /* All category tags use the same neutral style — no rainbow */
  .ev-video, .ev-physical, .ev-dna, .ev-digital,
  .ev-document, .ev-ballistics, .ev-trace, .ev-testimony {
    background: var(--paper-3); color: var(--faint);
  }
  .ev-title {
    font-family: var(--sans); font-size: 14px; font-weight: 700; color: var(--ink-strong);
    margin-bottom: 4px; line-height: 1.35;
  }
  .evidence-card p {
    font-family: var(--sans); font-size: 13px; line-height: 1.6; color: var(--muted);
  }
  .ev-source {
    display: inline-block; font-family: var(--sans); font-size: 11px; font-weight: 600;
    color: var(--cat-blue); text-decoration: none; margin-top: auto; padding-top: var(--s-3);
    border-bottom: 1px solid rgba(59,130,246,0.3); padding-bottom: 1px;
    transition: color .12s, border-color .12s;
  }
  .ev-source:hover { color: var(--ink-strong); border-bottom-color: var(--cat-blue); }

  /* ═══ EVIDENCE LOCKER — primary documents + source library ═══ */
  /* Evidence locker — distinctly darker background to separate from rest */
  .evidence-locker-primary {
    padding: var(--s-3) var(--s-5) var(--s-5);
    background: #08090c;
  }
  .charge-block:has(.evidence-locker-primary) {
    background: #0a0b0f; border-color: var(--rule-strong);
  }
  /* Evidence exhibit thumbnails — visual reference cards */
  .ev-exhibit-thumb {
    width: 100%; aspect-ratio: 16/10; object-fit: cover;
    border-radius: var(--radius-sm); border: 1px solid var(--rule-strong);
    margin-bottom: var(--s-2); display: block;
  }
  .ev-exhibit-placeholder {
    width: 100%; aspect-ratio: 16/6; margin-bottom: var(--s-2);
    border-radius: var(--radius-sm); border: 1px solid var(--rule);
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #0d0f14 0%, #111419 100%);
  }
  .ev-exhibit-placeholder span {
    font-family: var(--mono); font-size: 11px; font-weight: 700;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--faint); opacity: 0.5;
  }
  .ev-doc-embed {
    display: flex; align-items: flex-start; gap: var(--s-4);
    padding: var(--s-4); margin-bottom: var(--s-3);
    background: var(--paper-3); border: 1px solid var(--rule);
    border-left: 3px solid var(--cat-blue);
    border-radius: var(--radius-sm);
    transition: border-color .15s;
  }
  .ev-doc-embed:hover { border-left-color: #60a5fa; }
  .ev-doc-embed:last-child { margin-bottom: 0; }
  .ev-doc-icon {
    font-size: 28px; line-height: 1; flex-shrink: 0; width: 44px; height: 44px;
    display: flex; align-items: center; justify-content: center;
    background: var(--cat-blue-bg); border-radius: var(--radius-sm);
  }
  .ev-doc-label {
    font-family: var(--mono); font-size: 10px; font-weight: 700;
    letter-spacing: 0.08em; color: var(--date-color);
  }
  .ev-doc-info { flex: 1; min-width: 0; }
  .ev-doc-name {
    font-family: var(--sans); font-size: 14px; font-weight: 700; color: var(--ink-strong);
    line-height: 1.3; margin-bottom: 3px;
  }
  .ev-doc-meta {
    font-family: var(--mono); font-size: 10px; color: var(--date-color); letter-spacing: 0.04em;
    margin-bottom: 6px;
  }
  .ev-doc-desc {
    font-family: var(--sans); font-size: 12px; color: var(--muted); line-height: 1.5;
  }
  .ev-doc-link {
    font-family: var(--sans); font-size: 13px; font-weight: 700; white-space: nowrap;
    padding: 10px 18px; border-radius: var(--radius-sm); flex-shrink: 0; align-self: center;
    background: var(--cat-blue); color: #fff; text-decoration: none;
    transition: all .15s;
  }
  .ev-doc-link:hover { background: var(--blue-dark); }
  @media (max-width: 600px) {
    .ev-doc-embed { flex-direction: column; }
    .ev-doc-link { align-self: flex-start; }
  }
  @media (max-width: 600px) {
    .evidence-catalogue { grid-template-columns: 1fr; }
  }

  /* ── CONNECTION WEB (forensic network map) ── */
  .cw-legend {
    display: flex; gap: var(--s-7); flex-wrap: wrap; align-items: flex-start;
    margin-bottom: var(--s-5); padding: var(--s-4) var(--s-5);
    background: var(--paper-2); border: 1px solid var(--rule); border-radius: var(--radius-sm);
  }
  .cw-legend-group { display: flex; flex-direction: column; gap: 6px; }
  .cw-legend-label {
    font-family: var(--sans); font-size: 10px; font-weight: 700;
    letter-spacing: 0.12em; text-transform: uppercase; color: var(--faint);
    margin-bottom: 2px;
  }
  .cw-legend-item {
    display: flex; align-items: center; gap: 8px;
    font-family: var(--sans); font-size: 12px; color: var(--muted);
  }
  .cw-dot {
    width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0;
    border: 1.5px solid #0c0d10;
  }
  .cw-dot-red { background: #ef4444; }
  .cw-dot-blue { background: #3b82f6; }
  .cw-dot-white { background: #e4e4e7; }

  .cw-controls { display: flex; gap: 10px; margin-bottom: var(--s-4); align-items: center; flex-wrap: wrap; }
  .cw-btn {
    padding: 8px 18px; background: var(--paper-3); color: var(--ink-strong);
    border: 1px solid var(--rule-strong); cursor: pointer;
    font-family: var(--sans); font-size: 11px; font-weight: 600;
    letter-spacing: 0.08em; text-transform: uppercase;
    border-radius: var(--radius-sm); transition: border-color .15s, background .15s;
  }
  .cw-btn:hover { border-color: var(--date-color); background: #0f1419; }
  .cw-layout-toggle { display: flex; gap: 0; border: 1px solid var(--rule-strong); border-radius: var(--radius-sm); overflow: hidden; }
  .cw-layout-btn { border: none; border-right: 1px solid var(--rule-strong); border-radius: 0; padding: 8px 14px; }
  .cw-layout-btn:last-child { border-right: none; }
  .cw-layout-btn.active { background: var(--cat-blue); color: #fff; border-color: var(--date-color); }
  .cw-layout-btn.active:hover { background: var(--blue-dark); }

  .cw-canvas-wrap {
    position: relative; border: 1px solid var(--rule-strong);
    border-radius: var(--radius); overflow: hidden;
    background: radial-gradient(ellipse at center, #0d0f14 0%, #08090c 100%);
    box-shadow: inset 0 0 60px rgba(0,0,0,0.4);
  }
  #network-cy { display: block; width: 100%; height: 560px; }

  /* Node labels */
  .cw-label {
    font-family: var(--sans); font-weight: 600; pointer-events: none;
    text-shadow: 0 0 4px #0a0b0e, 0 0 4px #0a0b0e, 0 0 4px #0a0b0e;
  }
  .cw-label-full { fill: #e4e4e7; font-size: 11px; }
  .cw-label-init { fill: var(--faint); font-size: 10px; letter-spacing: 0.05em; }

  /* ── Detail drawer (replaces hover tooltip) ── */
  .cw-drawer {
    position: absolute; top: 0; right: 0; bottom: 0; width: 340px;
    background: var(--paper-2); border-left: 1px solid var(--rule-strong);
    padding: var(--s-6); overflow-y: auto;
    transform: translateX(100%); transition: transform .25s ease;
    box-shadow: -8px 0 24px -8px rgba(0,0,0,0.5);
    z-index: 10;
  }
  .cw-drawer.open { transform: translateX(0); }
  .cw-drawer-close {
    position: absolute; top: 12px; right: 14px;
    background: none; border: none; color: var(--faint);
    font-size: 22px; cursor: pointer; line-height: 1; padding: 4px 8px;
  }
  .cw-drawer-close:hover { color: var(--ink-strong); }
  .cw-drawer-role {
    font-family: var(--sans); font-size: 10px; font-weight: 700;
    letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: var(--s-3);
    padding: 4px 10px; border-radius: var(--radius-pill); display: inline-block;
  }
  .cw-role-red { background: rgba(239,68,68,0.15); color: #f87171; }
  .cw-role-blue { background: rgba(59,130,246,0.15); color: #60a5fa; }
  .cw-role-white { background: rgba(228,228,231,0.1); color: #d4d4d8; }
  .cw-drawer-title {
    font-family: var(--serif); font-size: var(--t-h3); font-weight: 700;
    line-height: 1.2; margin-bottom: var(--s-3); color: var(--ink-strong);
  }
  .cw-drawer-desc {
    font-family: var(--sans); font-size: 13px; line-height: 1.6;
    color: var(--muted); margin-bottom: var(--s-5);
  }
  .cw-drawer-section-label {
    font-family: var(--sans); font-size: 10px; font-weight: 700;
    letter-spacing: 0.12em; text-transform: uppercase; color: var(--faint);
    margin-bottom: var(--s-3); padding-bottom: var(--s-2);
    border-bottom: 1px solid var(--rule);
  }
  .cw-drawer-links { display: flex; flex-direction: column; gap: var(--s-2); }
  .cw-conn {
    padding: var(--s-3); background: var(--paper-2); border: 1px solid var(--rule);
    border-radius: var(--radius-sm); transition: border-color .15s;
  }
  .cw-conn:hover { border-color: var(--rule-strong); }
  .cw-conn-head {
    display: flex; align-items: center; gap: var(--s-2); flex-wrap: wrap; margin-bottom: 4px;
  }
  .cw-conn-certainty {
    font-size: 9px; font-weight: 700; letter-spacing: 0.06em;
    text-transform: uppercase; padding: 2px 7px; border-radius: var(--radius-pill);
    flex-shrink: 0;
  }
  .cw-cert-charged { background: rgba(59,130,246,0.15); color: #60a5fa; }
  .cw-cert-alleged { background: rgba(239,68,68,0.15); color: #f87171; }
  .cw-cert-theory { background: rgba(228,228,231,0.1); color: #d4d4d8; }
  .cw-conn-target { color: var(--ink-strong); font-weight: 700; font-size: 13px; }
  .cw-conn-rel { color: var(--muted); font-size: 12px; line-height: 1.4; margin-top: 2px; }
  .cw-conn-note {
    color: var(--faint); font-size: 11px; line-height: 1.4; margin-top: 4px;
    font-style: italic; border-left: 2px solid var(--rule); padding-left: 8px;
  }
  .cw-drawer-no-links {
    font-family: var(--sans); font-size: 12px; color: var(--faint); font-style: italic;
  }

  /* ── Mobile: drawer becomes bottom sheet ── */
  @media (max-width: 760px) {
    #network-cy { height: 460px; }
    .cw-canvas-wrap { position: relative; }
    .cw-drawer {
      top: auto; right: 0; left: 0; bottom: 0; width: 100%; max-height: 55%;
      border-left: none; border-top: 1px solid var(--rule-strong);
      transform: translateY(100%);
      box-shadow: 0 -8px 24px -8px rgba(0,0,0,0.5);
    }
    .cw-drawer.open { transform: translateY(0); }
    .cw-legend { gap: var(--s-5); }
  }

  /* ── SECTION HEADERS — newspaper/dossier register ── */
  .section-header {
    margin-bottom: var(--s-7); position: relative; padding-left: 0;
    padding-top: var(--s-6);
    border-top: 1px solid var(--rule-strong);
  }
  .section-header::before { content: none; }
  .section-title {
    font-family: var(--serif); font-size: var(--t-h1); font-weight: 700;
    margin-bottom: var(--s-2); padding-bottom: var(--s-3);
    letter-spacing: -0.02em; line-height: 1.1; color: var(--ink-strong);
    border-bottom: 1px solid var(--rule);
    text-wrap: balance;
  }
  .section-sub {
    font-family: var(--sans); font-size: var(--t-body); color: var(--muted);
    line-height: 1.6; max-width: var(--maxw); font-weight: 400;
  }
  /* Eyebrow — now a colored pill badge (matches the Charges panel severity-badge
     pattern). Propagates the Charges panel's polished feel to all 14 section-headers. */
  .eyebrow {
    display: inline-block; font-family: var(--sans); font-size: 10px; letter-spacing: 0.14em;
    text-transform: uppercase; color: var(--accent); margin-bottom: var(--s-3);
    font-weight: 700; padding: 3px 10px; border-radius: var(--radius-pill);
    background: var(--accent-pale); border: 1px solid rgba(239,68,68,0.2);
  }

  /* ── CASE FILE STATS (inline editorial — not a dashboard) ── */
  .case-file-stats {
    padding: var(--s-5) 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
  }
  .cfs-label {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.2em;
    text-transform: uppercase; color: var(--cat-blue); font-weight: 700; margin-bottom: var(--s-3);
  }
  .cfs-stats { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s-2) var(--s-4); }
  .cfs-stat { display: inline-flex; flex-direction: column; gap: 1px; }
  .cfs-num {
    font-family: var(--sans); font-size: 18px; font-weight: 800; color: var(--ink-strong);
    letter-spacing: -0.02em;
  }
  .cfs-desc {
    font-family: var(--sans); font-size: 11px; color: var(--faint); line-height: 1.3;
  }
  .cfs-sep {
    font-family: var(--sans); font-size: 18px; color: var(--rule-strong); font-weight: 400;
  }
  @media (max-width: 760px) {
    .cfs-sep { display: none; }
    .cfs-stat { width: 100%; flex-direction: row; align-items: baseline; gap: 8px; }
  }

  /* ── QUOTE BLOCK ── */
  .pull-quote {
    border-left: 3px solid var(--accent); padding: var(--s-5) var(--s-6);
    margin: var(--s-6) 0; background: var(--accent-pale);
    font-family: var(--sans); font-size: 18px; font-weight: 500;
    line-height: 1.5; color: var(--ink);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  }
  .pull-quote cite {
    display: block; font-family: var(--sans); font-size: 11px;
    font-style: normal; letter-spacing: 0.01em;
    color: var(--accent-dark); margin-top: var(--s-3); font-weight: 600;
  }

  /* ── FILTER BAR ── */
  .filter-bar {
    display: flex; gap: var(--s-2); flex-wrap: wrap; margin-bottom: var(--s-6);
  }
  .filter-btn {
    padding: 8px 14px; border: 1px solid var(--rule-strong); background: var(--paper-2);
    font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: 0.01em;
    cursor: pointer; border-radius: 999px; color: var(--muted);
    transition: all .15s;
  }
  .filter-btn:hover { color: var(--ink-strong); border-color: var(--rule-strong); }
  .filter-btn.active { background: var(--accent); color: #fff; border-color: var(--accent); }

  /* ── RESPONSIVE ── */
  @media (max-width: 100%) {
    .hero-grid { grid-template-columns: 1fr; }
    .charges-layout { grid-template-columns: 1fr; }
    .hero-hed { font-size: 34px; }
    .research-status-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .research-grid { grid-template-columns: 1fr; }
    .dossier-header { grid-template-columns: 1fr; }
    .section-title { font-size: 28px; }
    .main-container { padding: var(--s-6) var(--s-5) var(--s-8); }
  }
  @media (max-width: 600px) {
    body { font-size: 14px; }
    .masthead-inner { gap: var(--s-3); }
    .masthead-label { display: none; }
    .masthead-title { font-size: 14px; }
    .masthead-meta { gap: 10px; font-size: 9px; }
    .masthead-meta > span:nth-child(2) { display: none; }
    .nav-bar { top: 54px; }
    #reading-progress { top: 0; }
    /* nav-inner uses fluid --pad-x from base */
    .nav-tab { padding: 12px 10px 10px; font-size: 12px; }
    .main-container { padding: var(--s-5) var(--s-4) var(--s-7); }
    .research-status-inner { grid-template-columns: 1fr; padding: var(--s-3) var(--s-4); gap: var(--s-3); }
    .status-item { padding-left: var(--s-3); }
    .section-header { margin-bottom: var(--s-5); }
    .section-title { font-size: 24px; overflow-wrap: anywhere; }
    .hero-hed { font-size: 30px; }
    .hero-dek { font-size: 14px; padding-left: var(--s-3); }
    .hero-body { font-size: 14px; }
    .confidence-list { grid-template-columns: 1fr; }
    .evidence-ledger { display: block; overflow-x: auto; }
    .narrative-grid { grid-template-columns: 1fr; }
    .atlas-grid { grid-template-columns: 1fr; }
    .pull-quote { font-size: 16px; padding: var(--s-4) var(--s-5); }
    .timeline { padding-left: 34px; }
    .timeline::before { left: 11px; }
    .tl-month::before { left: -28px; width: 12px; }
    .tl-event::before { left: -28px; top: 20px; }
    .tl-event { padding: var(--s-3) var(--s-4); }
    .text-thread { max-width: 100%; border-radius: 12px; padding: 16px; }
    .battlecard-match { grid-template-columns: 1fr; }
    .disclaimer-cols { grid-template-columns: 1fr; }
    .filter-btn { padding: 6px 12px; font-size: 11px; }
  }

  /* ── MISC ── */
  hr.divider { border: none; border-top: 1px solid var(--rule); margin: 32px 0; }
  .disclaimer {
    background: var(--cat-amber-bg); border: 1px solid var(--cat-amber); padding: 14px 18px;
    font-family: var(--sans); font-size: 12px; margin-bottom: 32px;
    line-height: 1.6; border-radius: var(--radius);
  }
  .disclaimer strong { color: var(--cat-amber); }
  .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
  @media (max-width: 800px) { .two-col { grid-template-columns: 1fr; } }

  /* ── ROBINSON DOSSIER ── */
  .dossier-header {
    background: #0f1419; color: #fff; padding: var(--s-7);
    border-radius: var(--radius); margin-bottom: var(--s-6);
    border-left: 4px solid var(--accent); box-shadow: var(--shadow-md);
  }
  .dossier-header h2 {
    font-family: var(--sans); font-size: 34px; font-weight: 800; line-height: 1.1;
    letter-spacing: -0.025em; margin-bottom: var(--s-2);
  }
  .dossier-eyebrow {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.25em;
    text-transform: uppercase; color: var(--accent); margin-bottom: 12px;
  }
  .dossier-subhead {
    font-family: var(--sans); font-size: 13px; font-weight: 700;
    letter-spacing: -0.005em; color: var(--ink-strong);
    margin: var(--s-5) 0 var(--s-3); padding-bottom: var(--s-2);
    border-bottom: 1px solid var(--rule);
  }
  .dossier-stats {
    font-family: var(--mono); font-size: 11px; color: var(--ink-strong);
    border: 1px solid var(--rule-strong); padding: 18px;
    border-radius: var(--radius-sm); box-shadow: var(--shadow-sm);
  }
  .dossier-stat-row {
    display: flex; justify-content: space-between;
    padding: 5px 0; border-bottom: 1px dashed var(--rule-strong);
  }
  .dossier-stat-row:last-child { border-bottom: none; }
  .dossier-stat-lbl { color: var(--faint); text-transform: uppercase; letter-spacing: 0.1em; }
  .dossier-stat-val { color: #fff; font-weight: 600; text-align: right; }

  .dossier-section {
    background: var(--paper-2); border: 1px solid var(--rule);
    border-radius: var(--radius); margin-bottom: var(--s-5);
    padding: var(--s-6) var(--s-7); box-shadow: var(--shadow-sm);
  }
  .dossier-section-title {
    font-family: var(--sans); font-size: 11px; font-weight: 600;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--faint); margin-bottom: var(--s-2);
  }
  .dossier-section h3 {
    font-family: var(--sans); font-size: 22px; font-weight: 800;
    margin-bottom: var(--s-5); padding-bottom: var(--s-3);
    border-bottom: 1px solid var(--rule); letter-spacing: -0.025em;
  }
  .dossier-section p { font-size: 15px; line-height: 1.75; margin-bottom: 14px; }
  .dossier-section p:last-child { margin-bottom: 0; }
  .dossier-section ul { margin-left: 22px; margin-bottom: 14px; }
  .dossier-section ul li { font-size: 14px; line-height: 1.75; margin-bottom: 6px; }

  /* Court document styling */
  .court-doc {
    background: var(--paper-3); border: 1px solid var(--rule-strong); border-radius: var(--radius);
    padding: 32px 40px; font-family: 'Courier New', monospace;
    font-size: 13px; line-height: 1.7; color: var(--ink);
    margin-bottom: 24px; position: relative;
    box-shadow: var(--shadow-md);
  }
  .court-doc::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
    background: linear-gradient(90deg, var(--accent) 0%, var(--accent-dark) 50%, var(--accent) 100%);
    border-radius: var(--radius) var(--radius) 0 0;
  }
  .court-doc-head {
    text-align: center; border-bottom: 2px solid var(--rule-strong);
    padding-bottom: 14px; margin-bottom: 22px;
    font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em;
    color: var(--ink-strong);
  }
  .court-doc-head .case-cite { font-size: 11px; font-weight: 400; margin-top: 6px; letter-spacing: 0.15em; color: var(--faint); }
  .court-doc h4 {
    font-family: 'Courier New', monospace; font-size: 14px;
    font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em;
    margin: 22px 0 10px; padding-bottom: 4px; border-bottom: 1px solid var(--rule-strong);
    color: var(--ink-strong);
  }
  .court-doc .count-block {
    border-left: 3px solid var(--accent); padding: 10px 16px;
    margin-bottom: 16px; background: var(--paper-2); border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  }
  .court-doc .count-num {
    font-weight: 700; text-transform: uppercase; color: var(--accent);
    margin-bottom: 4px; font-size: 12px; letter-spacing: 0.1em;
  }
  .court-doc .count-stat {
    background: rgba(239,68,68,0.15); color: #f87171; display: inline-block;
    font-size: 10px; padding: 3px 10px; margin-bottom: 6px; border-radius: var(--radius-pill);
    letter-spacing: 0.1em; font-weight: 700; border: 1px solid rgba(239,68,68,0.25);
  }
  .court-doc .count-stat.capital {
    background: var(--accent); color: #fff; border-color: var(--accent);
    box-shadow: 0 0 12px -2px rgba(239,68,68,0.4);
  }
  .court-doc .code-ref { font-style: italic; color: var(--muted); font-size: 12px; }
  .court-doc .seal {
    position: absolute; opacity: 0.04; font-size: 180px;
    font-family: var(--serif); font-weight: 800; pointer-events: none;
    transform: rotate(-12deg); right: 30px; top: 40px;
    color: var(--accent);
  }

  /* Text Messages */
  .text-thread {
    background: #1a1a1a; border-radius: 18px; padding: 24px;
    max-width: 520px; margin: 24px auto;
    font-family: -apple-system, 'SF Pro Display', 'Helvetica Neue', sans-serif;
  }
  .text-thread-head {
    color: #aaa; font-size: 11px; text-align: center; margin-bottom: 16px;
    text-transform: uppercase; letter-spacing: 0.15em; font-family: var(--mono);
    border-bottom: 1px solid #333; padding-bottom: 10px;
  }
  .text-msg {
    margin-bottom: 8px; padding: 10px 14px; border-radius: 18px;
    font-size: 14px; line-height: 1.4; max-width: 80%; word-wrap: break-word;
  }
  .text-msg.tyler {
    background: #007aff; color: #fff; margin-left: auto;
    border-bottom-right-radius: 4px;
  }
  .text-msg.lance {
    background: #2a2a2a; color: #fff; margin-right: auto;
    border-bottom-left-radius: 4px;
  }
  .text-sender {
    font-size: 10px; color: #888; margin-bottom: 4px;
    font-family: var(--mono); letter-spacing: 0.1em; text-transform: uppercase;
  }
  .text-sender.right { text-align: right; }
  .text-time {
    font-size: 10px; color: #aaa; text-align: center;
    margin: 14px 0 6px; font-family: var(--mono);
  }

  /* Hearing timeline (compact) */
  .hearing-list { list-style: none; }
  .hearing-row {
    display: grid; grid-template-columns: 140px 1fr;
    gap: 18px; padding: 14px 0;
    border-bottom: 1px solid var(--rule);
  }
  .hearing-row:last-child { border-bottom: none; }
  .hearing-date {
    font-family: var(--mono); font-size: 11px;
    color: var(--gold); letter-spacing: 0.1em; font-weight: 700;
  }
  .hearing-date .year { display: block; color: var(--muted); font-weight: 400; }
  .hearing-headline { font-family: var(--sans); font-weight: 700; font-size: 14px; margin-bottom: 3px; }
  .hearing-detail { font-size: 13px; color: var(--muted); line-height: 1.55; }

  /* Bio facts grid */
  .bio-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1px; background: var(--rule); border: 1px solid var(--rule); margin-bottom: 18px;
  }
  .bio-cell { background: var(--paper-3); padding: 14px 16px; }
  .bio-cell-lbl {
    font-family: var(--mono); font-size: 9px; letter-spacing: 0.15em;
    text-transform: uppercase; color: var(--muted); margin-bottom: 4px;
  }
  .bio-cell-val { font-family: var(--sans); font-size: 14px; font-weight: 600; }

  /* Legal team blocks */
  .legal-teams { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
  @media (max-width: 800px) { .legal-teams { grid-template-columns: 1fr; } }
  .legal-team-block {
    background: var(--paper-2); border: 1px solid var(--rule);
    border-top: 4px solid var(--ink); padding: 20px 22px;
    border-radius: var(--radius); box-shadow: var(--shadow-sm);
  }
  .legal-team-block.defense { border-top-color: var(--tag-legal); }
  .legal-team-block.prosecution { border-top-color: var(--accent); }
  .legal-team-title {
    font-family: var(--mono); font-size: 11px; letter-spacing: 0.2em;
    text-transform: uppercase; margin-bottom: 14px; color: var(--muted);
  }
  .lawyer { padding: 8px 0; border-bottom: 1px solid var(--rule); }
  .lawyer:last-child { border-bottom: none; }
  .lawyer-name { font-family: var(--sans); font-size: 14px; font-weight: 700; }
  .lawyer-role { font-size: 12px; color: var(--muted); }
  .lawyer-note { font-size: 11px; color: var(--accent); margin-top: 2px; font-style: italic; }

  .evidence-engraving {
    background: var(--paper-2); border: 1px solid var(--rule); padding: var(--s-3) var(--s-4);
    font-family: var(--sans); font-size: 13px; margin: var(--s-2) 0; color: var(--muted);
    line-height: 1.55;
    border-left: 2px solid var(--rule-strong);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  }
  .evidence-engraving strong { color: var(--ink-strong); font-weight: 700; }

  /* ── READING PROGRESS BAR ── */
  #reading-progress {
    position: fixed; top: 0; left: 0; height: 2px; width: 0;
    background: var(--accent); z-index: 300;
    transition: width 0.08s linear; pointer-events: none;
  }

  /* ── RELATIONSHIP TABLE (accessible text alternative to the graph) ── */
  .rel-table-wrap {
    margin-top: var(--s-6); border: 1px solid var(--rule); background: var(--paper-2);
    padding: var(--s-5) var(--s-6); border-radius: var(--radius); box-shadow: var(--shadow-sm);
  }
  .rel-table-wrap > summary {
    font-family: var(--sans); font-size: 11px; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--cat-blue); font-weight: 700; cursor: pointer;
  }
  .rel-table-note { color: var(--muted); font-weight: 400; text-transform: none; letter-spacing: 0; }
  #relationship-table { margin-top: var(--s-4); }
  /* Relationship index — grouped by certainty, natural-language format */
  .rel-group { margin-bottom: var(--s-5); }
  .rel-group:last-child { margin-bottom: 0; }
  .rel-group-label {
    display: flex; align-items: center; gap: var(--s-3); margin-bottom: var(--s-3);
    padding-bottom: var(--s-2); border-bottom: 1px solid var(--rule);
  }
  .rel-group-count {
    font-family: var(--sans); font-size: 11px; color: var(--faint); font-weight: 500;
  }
  .rel-item {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    padding: 8px 0; border-bottom: 1px solid var(--rule);
    font-family: var(--sans); font-size: 13px; line-height: 1.5;
  }
  .rel-item:last-child { border-bottom: none; }
  .rel-from { font-weight: 700; color: var(--ink-strong); }
  .rel-to { font-weight: 700; color: var(--ink-strong); }
  .rel-verb { color: var(--muted); }
  .rel-arrow { color: var(--faint); font-size: 11px; flex-shrink: 0; }
  .rel-cert {
    font-family: var(--sans); font-size: 9px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase;
    padding: 2px 8px; border-radius: var(--radius-pill); white-space: nowrap;
  }
  .rel-cert-charged { background: rgba(59,130,246,0.15); color: #60a5fa; }
  .rel-cert-alleged { background: rgba(239,68,68,0.15); color: #f87171; }
  .rel-cert-theory { background: rgba(228,228,231,0.1); color: #d4d4d8; }

  /* ── TWO ACCOUNTS GATEWAY ── */
  .two-accounts {
    background: var(--paper-2); border: 1px solid var(--rule);
    border-top: 4px solid #0f1419;
    border-radius: var(--radius); padding: var(--s-7) var(--s-6); margin-bottom: var(--s-8);
    box-shadow: var(--shadow-sm);
  }
  .two-accounts-head { margin-bottom: var(--s-6); }
  .accounts-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-bottom: 18px;
  }
  .account-card {
    padding: 22px 24px; border: 1px solid var(--rule);
    display: flex; flex-direction: column;
    border-radius: var(--radius); box-shadow: var(--shadow-sm);
  }
  .account-official { border-left: 4px solid var(--tag-official); background: var(--cat-blue-bg); }
  .account-contested { border-left: 4px solid var(--cat-amber); background: var(--cat-amber-bg); }
  .account-meta {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em;
    text-transform: uppercase; font-weight: 700; margin-bottom: 8px;
  }
  .account-official .account-meta { color: var(--tag-official); }
  .account-contested .account-meta { color: var(--cat-amber); }
  .account-card h3 {
    font-family: var(--serif); font-size: 18px; font-weight: 700; line-height: 1.25;
    margin-bottom: 10px; color: var(--ink);
  }
  .account-card p {
    font-family: var(--sans); font-size: 14px; line-height: 1.65; color: var(--ink);
    margin-bottom: 12px; flex: 1;
  }
  .account-posture {
    font-family: var(--sans); font-size: 12px; line-height: 1.5; color: var(--muted);
    padding-top: 10px; border-top: 1px dashed var(--rule);
  }
  .accounts-bridge {
    font-family: var(--sans); font-size: 14px; line-height: 1.6; color: var(--ink);
    text-align: center; padding: 14px 0; margin-bottom: 18px;
    border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule);
  }
  .what-changes-head {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em;
    text-transform: uppercase; color: var(--muted); font-weight: 700; margin-bottom: 12px;
  }
  .what-changes-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-bottom: 12px;
  }
  .wc-col-title {
    font-family: var(--sans); font-size: 12px; font-weight: 700; color: var(--ink);
    margin-bottom: 8px;
  }
  .what-changes ul { margin-left: 18px; }
  .what-changes li {
    font-family: var(--sans); font-size: 13px; line-height: 1.55; color: var(--muted);
    margin-bottom: 5px;
  }
  .what-changes-note {
    font-family: var(--sans); font-size: 11px; color: var(--muted); font-style: italic;
  }
  .accounts-nav-hint {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em;
    text-transform: uppercase; color: var(--muted); text-align: center;
    margin-top: 18px; padding-top: 14px; border-top: 1px dashed var(--rule);
  }
  .accounts-nav-hint a { color: var(--cat-blue); font-weight: 700; }
  @media (max-width: 800px) {
    .accounts-grid, .what-changes-grid { grid-template-columns: 1fr; }
    .two-accounts { padding: 22px 18px; }
  }

  /* ── DID YOU KNOW — clearly distinct aside block ── */
  .dyk-grid {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-3);
    margin-top: var(--s-5);
    background: var(--paper-3); border: 1px solid var(--rule-strong);
    border-radius: var(--radius); padding: var(--s-5);
  }
  .dyk-card {
    background: transparent; border: none;
    border-left: 2px solid var(--blue); padding: var(--s-2) var(--s-4);
    display: flex; flex-direction: column;
    border-radius: 0;
  }
  .dyk-q {
    font-family: var(--sans); font-size: 9px; font-weight: 700; letter-spacing: 0.1em;
    text-transform: uppercase; color: var(--date-color); margin-bottom: var(--s-2);
    display: flex; align-items: center; gap: 5px; opacity: 0.8;
  }
  .dyk-q svg { width: 13px; height: 13px; flex-shrink: 0; opacity: 0.7; }
  .dyk-card h3 {
    font-family: var(--sans); font-size: 13px; font-weight: 700; line-height: 1.3;
    margin-bottom: var(--s-2); color: var(--ink-strong);
  }
  .dyk-card p {
    font-family: var(--sans); font-size: 12px; line-height: 1.55; color: var(--faint);
    margin-bottom: var(--s-2); flex: 1;
  }
  .dyk-card p strong { color: var(--muted); }
  .dyk-source {
    font-family: var(--sans); font-size: 9px; letter-spacing: 0.04em;
    color: var(--faint); opacity: 0.6; margin-top: auto;
  }
  @media (max-width: 100%) {
    .dyk-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 600px) {
    .dyk-grid { grid-template-columns: 1fr; }
  }

  /* ── ARC ROADMAP (what happens next) ── */
  .arc-roadmap {
    list-style: none; position: relative;
    margin: 8px 0 0; padding: 0;
  }
  .arc-roadmap::before {
    content: ''; position: absolute; left: 17px; top: 8px; bottom: 8px;
    width: 2px; background: var(--rule);
  }
  .arc-stage {
    display: grid; grid-template-columns: 36px 1fr; gap: 16px;
    padding: 14px 0; position: relative;
  }
  .arc-marker {
    width: 36px; height: 36px; border-radius: 50%;
    background: var(--paper); border: 2px solid var(--rule);
    display: flex; align-items: center; justify-content: center;
    z-index: 1; position: relative;
  }
  .arc-stage.current .arc-marker {
    border-color: var(--accent); background: var(--accent);
  }
  .arc-here {
    width: 10px; height: 10px; border-radius: 50%; background: var(--paper-3);
    animation: pulse-live 1.6s ease-in-out infinite;
  }
  .arc-content { min-width: 0; padding-top: 2px; }
  .arc-stage-num {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.18em;
    text-transform: uppercase; color: var(--gold); font-weight: 700; margin-bottom: 4px;
  }
  .arc-stage.current .arc-stage-num { color: var(--accent); }
  .arc-stage-name {
    font-family: var(--serif); font-size: 18px; font-weight: 700; line-height: 1.25;
    color: var(--ink); margin-bottom: 8px;
  }
  .arc-stage-body {
    font-family: var(--sans); font-size: 13px; line-height: 1.65; color: var(--ink);
    margin-bottom: 8px;
  }
  .arc-watch {
    font-family: var(--sans); font-size: 12px; line-height: 1.55; color: var(--muted);
    background: var(--cat-amber-bg); border-left: 3px solid var(--cat-amber);
    padding: 8px 12px; border-radius: var(--radius-sm);
  }
  .arc-watch strong { color: var(--cat-amber); }

  /* ── PRINT / EXPORT ── */
  @media print {
    .masthead, .nav-bar, #reading-progress, .research-status,
    .cw-controls, .cw-drawer, .cw-canvas-wrap, .news-controls,
    .filter-bar, .rel-table-wrap > summary, .whats-changed-more { display: none !important; }
    .rel-table-wrap { border: none; padding: 0; }
    .rel-table-wrap[open] .rel-table-note { display: none; }
    body { background: var(--paper-3); color: #000; font-size: 10pt; }
    .panel { display: block !important; page-break-after: always; }
    .panel:last-child { page-break-after: auto; }
    .research-card, .person-card, .charge-block, .news-item,
    .dossier-section, .narrative-card, .atlas-card {
      box-shadow: none !important; border: 1px solid #999 !important; break-inside: avoid;
    }
    a { color: #000; text-decoration: none; }
    a[href]::after { content: " (" attr(href) ")"; font-size: 8pt; color: #555; }
    .news-foot a[href]::after, .source-link[href]::after { content: ""; }
    main.main-container { padding: 0; max-width: 100%; }
  }

  /* ── SITE-WIDE DISCLAIMER ── */
  .site-disclaimer {
    background: var(--paper); color: var(--muted);
    border-top: 3px solid var(--accent);
    padding: 0;
  }
  .disclaimer-inner { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad-x); }
  .disclaimer-banner {
    font-family: var(--sans); font-size: 12px; line-height: 1.7;
    padding: var(--s-4) 0; border-bottom: 1px solid var(--rule); color: var(--muted);
    background: #0c0d10; border-radius: var(--radius-sm);
    margin: var(--s-3) 0; padding: var(--s-4) var(--s-5);
  }
  .disclaimer-banner strong { color: var(--ink-strong); }
  .disclaimer-banner a { color: var(--date-color); font-weight: 600; text-decoration: none; border-bottom: 1px dotted var(--blue); padding-bottom: 1px; }
  .disclaimer-banner a:hover { color: var(--ink-strong); border-bottom-color: var(--ink-strong); border-bottom-style: solid; }
  .disclaimer-full {
    padding: var(--s-3) 0 var(--s-6);
  }
  .disclaimer-full > summary {
    font-family: var(--sans); font-size: 11px; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--date-color); cursor: pointer; padding: var(--s-2) 0;
    list-style: none; font-weight: 700;
  }
  .disclaimer-full > summary::-webkit-details-marker { display: none; }
  .disclaimer-full > summary::before { content: "▸ "; }
  .disclaimer-full[open] > summary::before { content: "▾ "; }
  .disclaimer-body {
    padding: var(--s-5) 0 0; border-top: 1px solid var(--rule);
  }
  .disclaimer-cols {
    display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-6);
  }
  .disclaimer-col h4 {
    font-family: var(--sans); font-size: 11px; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--accent);
    margin: var(--s-5) 0 var(--s-2); font-weight: 700;
  }
  .disclaimer-col h4:first-child { margin-top: 0; }
  .disclaimer-col p {
    font-family: var(--sans); font-size: 13px; line-height: 1.65; color: var(--muted);
    margin-bottom: var(--s-1);
  }
  .disclaimer-col strong { color: var(--ink-strong); }
  .disclaimer-col em { color: var(--ink); }
  .disclaimer-col a { color: var(--date-color); }
  .disclaimer-timestamp {
    font-family: var(--sans); font-size: 11px; letter-spacing: 0.02em;
    color: var(--faint); margin-top: var(--s-5); padding-top: var(--s-3);
    border-top: 1px solid var(--rule); font-style: italic;
  }
  @media (max-width: 800px) {
    .disclaimer-cols { grid-template-columns: 1fr; gap: 0; }
    .disclaimer-inner { padding: 0 18px; }
  }
  @media print {
    .site-disclaimer { display: block !important; }
    .disclaimer-full { display: block !important; }
    .disclaimer-full > summary { display: none; }
    .site-disclaimer { background: #fff !important; color: #000 !important; border-top: 2px solid #000; }
    .disclaimer-col p, .disclaimer-col strong, .disclaimer-col em { color: #000 !important; }
  }

  /* ── EVIDENTIARY LANE DIVIDERS ── */
  .lane-divider {
    display: flex; align-items: center; gap: var(--s-3);
    padding: var(--s-3) var(--s-5); margin-bottom: var(--s-5);
    border-radius: var(--radius-sm); border: 1px solid var(--rule);
  }
  .lane-dot {
    width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
  }
  .lane-label {
    font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em;
    text-transform: uppercase; font-weight: 700; white-space: nowrap;
  }
  .lane-desc {
    font-family: var(--sans); font-size: 12px; color: var(--muted);
    margin-left: auto; text-align: right;
  }
  .lane-prosecution { background: var(--cat-blue-bg); border-left: 3px solid var(--cat-blue); }
  .lane-prosecution .lane-dot { background: var(--cat-blue); box-shadow: 0 0 8px -2px var(--cat-blue); }
  .lane-prosecution .lane-label { color: var(--date-color); }
  .lane-contested { background: var(--cat-red-bg); border-left: 3px solid var(--cat-red); }
  .lane-contested .lane-dot { background: var(--cat-red); box-shadow: 0 0 8px -2px var(--cat-red); }
  .lane-contested .lane-label { color: var(--cat-red); }
  .lane-theory { background: var(--cat-white-bg); border-left: 3px solid var(--faint); }
  .lane-theory .lane-dot { background: var(--faint); }
  .lane-theory .lane-label { color: var(--faint); }

  /* ── THEORY REDIRECT BOX (links to Contested panel) ── */
  .theory-redirect {
    background: var(--paper-2); border: 1px solid var(--rule);
    border-radius: var(--radius); padding: var(--s-6);
    box-shadow: var(--shadow-sm);
  }
  .theory-redirect-body p {
    font-family: var(--sans); font-size: 13px; line-height: 1.65; color: var(--muted);
    margin-bottom: var(--s-3);
  }
  .theory-redirect-body strong { color: var(--ink-strong); }
  .theory-redirect-link {
    display: inline-block; font-family: var(--sans); font-size: 14px; font-weight: 700;
    color: var(--cat-blue); text-decoration: none; margin-top: var(--s-2);
    padding: 8px 16px; border: 1px solid var(--blue); border-radius: var(--radius-sm);
    transition: all .15s;
  }
  .theory-redirect-link:hover { background: var(--blue); color: #fff; }
  @media (max-width: 600px) {
    .lane-desc { display: none; }
  }

  /* ── CASE CLASH (head-to-head prosecution vs defense) ── */
  .clash-header {
    display: grid; grid-template-columns: 1fr auto 1fr; gap: 0;
    margin-bottom: var(--s-6); border-radius: var(--radius); overflow: hidden;
    border: 1px solid var(--rule);
  }
  .clash-side {
    padding: var(--s-5) var(--s-6); display: flex; align-items: center; gap: var(--s-4);
  }
  .clash-side-pros {
    background: linear-gradient(135deg, var(--cat-red-bg) 0%, var(--paper-2) 60%);
    border-right: none;
  }
  .clash-side-def {
    background: linear-gradient(225deg, var(--cat-blue-bg) 0%, var(--paper-2) 60%);
    border-left: none; justify-content: flex-end; text-align: right;
  }
  .clash-side-icon {
    width: 44px; height: 44px; border-radius: 50%; display: flex;
    align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0;
  }
  .clash-side-pros .clash-side-icon { background: var(--cat-red); color: #fff; box-shadow: 0 0 16px -4px rgba(239,68,68,0.5); }
  .clash-side-def .clash-side-icon { background: var(--cat-blue); color: #fff; box-shadow: 0 0 16px -4px rgba(59,130,246,0.5); }
  .clash-side-label { font-size: var(--t-h4); font-weight: 700; color: var(--ink-strong); letter-spacing: -0.01em; }
  .clash-side-tag { font-size: 12px; color: var(--muted); }
  .clash-side-pros .clash-side-tag { color: var(--cat-red); }
  .clash-side-def .clash-side-tag { color: var(--date-color); }
  .clash-vs {
    display: flex; align-items: center; justify-content: center;
    background: var(--paper); padding: 0 20px;
    font-family: var(--sans); font-size: 14px; font-weight: 800; letter-spacing: 0.15em;
    color: var(--faint); border-left: 1px solid var(--rule); border-right: 1px solid var(--rule);
  }

  .clash-rounds { display: grid; gap: var(--s-4); }
  .clash-round {
    background: var(--paper-2); border: 1px solid var(--rule);
    border-radius: var(--radius); padding: var(--s-5) var(--s-6);
    box-shadow: var(--shadow-sm); transition: box-shadow .18s;
  }
  .clash-round:hover { box-shadow: var(--shadow-md); }
  .clash-round-num {
    font-family: var(--mono); font-size: 11px; font-weight: 700;
    color: var(--faint); letter-spacing: 0.1em; margin-bottom: 2px;
  }
  .clash-round-topic {
    font-family: var(--sans); font-size: 16px; font-weight: 700;
    color: var(--ink-strong); margin-bottom: var(--s-4);
    padding-bottom: var(--s-3); border-bottom: 1px solid var(--rule);
  }
  .clash-round-body {
    display: grid; grid-template-columns: 1fr auto 1fr; gap: var(--s-4); align-items: center;
  }
  .clash-claim {
    padding: var(--s-4) var(--s-5); border-radius: var(--radius-sm);
    border: 1px solid var(--rule); min-height: 80px;
    display: flex; flex-direction: column; justify-content: center;
  }
  .clash-pros {
    background: linear-gradient(90deg, var(--cat-red-bg) 0%, transparent 80%);
    border-right: 3px solid var(--cat-red);
    text-align: right;
  }
  .clash-def {
    background: linear-gradient(270deg, var(--cat-blue-bg) 0%, transparent 80%);
    border-left: 3px solid var(--cat-blue);
  }
  .clash-claim-label {
    font-family: var(--sans); font-size: 10px; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 4px;
  }
  .clash-pros .clash-claim-label { color: var(--cat-red); }
  .clash-def .clash-claim-label { color: var(--date-color); }
  .clash-claim p {
    font-family: var(--sans); font-size: 13px; line-height: 1.55; color: var(--muted);
  }
  .clash-verdict {
    display: flex; flex-direction: column; align-items: center; gap: 4px;
    min-width: 90px; text-align: center;
  }
  @media (max-width: 760px) {
    .clash-header { grid-template-columns: 1fr; }
    .clash-side-def { border-left: none; border-top: 1px solid var(--rule); justify-content: flex-start; text-align: left; }
    .clash-vs { border-left: none; border-right: none; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 8px; }
    .clash-round-body { grid-template-columns: 1fr; gap: var(--s-3); }
    .clash-verdict { order: -1; min-width: 0; flex-direction: row; justify-content: center; }
  }

  /* ── CROSSLINK BOX (dossier redirect to canonical sections) ── */
  .crosslink-box {
    background: var(--cat-blue-bg); border: 1px solid var(--rule-strong);
    border-left: 4px solid var(--cat-blue);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    padding: var(--s-4) var(--s-5);
  }
  .crosslink-label {
    font-family: var(--sans); font-size: 10px; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--cat-blue); font-weight: 700; margin-bottom: var(--s-2);
  }
  .crosslink-link {
    display: inline-block; font-family: var(--sans); font-size: 15px; font-weight: 700;
    color: var(--cat-blue); text-decoration: none; margin-bottom: var(--s-2);
  }
  .crosslink-link:hover { text-decoration: underline; }
  .crosslink-note {
    display: block; font-family: var(--sans); font-size: 12px; color: var(--muted); line-height: 1.5;
  }

  /* ── "SEE ALSO" CONNECTION FOOTER on person cards ── */
  .person-seealso {
    margin-top: var(--s-4); padding-top: var(--s-4); border-top: 1px solid var(--rule);
  }
  .seealso-label {
    font-family: var(--sans); font-size: 11px; letter-spacing: 0.08em;
    text-transform: uppercase; color: var(--muted); font-weight: 700; margin-bottom: var(--s-3);
  }
  .seealso-links { display: flex; flex-wrap: wrap; gap: var(--s-2); }
  .seealso-chip {
    display: inline-flex; align-items: center; gap: 4px;
    font-family: var(--mono); font-size: 11px; font-weight: 500;
    padding: 4px 10px; border-radius: 3px;
    background: transparent; border: 1px solid var(--rule-strong); color: var(--muted);
    cursor: pointer; transition: all .12s; text-decoration: none;
  }
  .seealso-chip:hover { background: var(--paper-3); color: var(--ink-strong); border-color: var(--ink); }

  /* ── ENTITY LINKS + CONTEXT TOOLTIPS ── */
  a.elink {
    color: var(--cat-blue); text-decoration: none; font-weight: 500;
    border-bottom: 1px solid rgba(37,99,235,0.35);
    cursor: pointer; transition: color .12s, border-color .12s;
  }
  a.elink:hover {
    color: #fff; border-bottom-color: var(--date-color);
  }
  /* Tyler Robinson — lighter blue to differentiate the accused from other entities */
  a.elink[data-entity="tr"] {
    color: #93c5fd;
    border-bottom-color: rgba(147,197,253,0.35);
  }
  a.elink[data-entity="tr"]:hover {
    color: #bfdbfe; border-bottom-color: #93c5fd;
  }
  /* elinks inside headings inherit the heading weight — prevents the 'squashed'
     look where linked words render thinner/looser than surrounding heading text */
  h1 a.elink, h2 a.elink, h3 a.elink, h4 a.elink,
  .section-title a.elink, .narrative-card h3 a.elink,
  .ev-title a.elink, .person-name a.elink, .case-file-id a.elink,
  .landing-title a.elink, .dossier-section-title a.elink,
  .arc-stage-name a.elink {
    font-weight: inherit;
    letter-spacing: inherit;
  }
  /* elinks inside case-file values inherit the white value color, not blue —
     prevents WHERE (blue label) and Utah Valley University (blue elink) from
     collapsing into the same visual weight. Link is still underlined + interactive. */
  .cf-value a.elink {
    color: inherit;
    border-bottom: 1px solid rgba(255,255,255,0.25);
  }
  .cf-value a.elink:hover {
    color: var(--date-color);
    border-bottom-color: var(--date-color);
  }
  .entity-tip {
    position: fixed; z-index: 500; display: none; max-width: 300px;
    background: #0f1419; color: #fff; padding: var(--s-3) var(--s-4);
    border-radius: var(--radius-sm); box-shadow: var(--shadow-lg);
    font-family: var(--sans); pointer-events: none; line-height: 1.5;
    border: 1px solid #2a2f37;
  }
  .et-label {
    font-size: 9px; letter-spacing: 0.15em; text-transform: uppercase;
    color: var(--gold); font-weight: 700; margin-bottom: 4px;
  }
  .et-blurb { font-size: 13px; color: #e2e8f0; }
  .et-goto { font-size: 10px; color: #94a3b8; margin-top: 6px; font-weight: 600; }

  /* ── LANDING HERO (cinematic) ── */
  .landing-hero {
    position: relative; overflow: hidden;
    margin: calc(-1 * var(--pad-section)) calc(-1 * var(--pad-x)) var(--s-7);
    border-radius: 0; border: none;
  }
  .landing-hero-bg {
    position: absolute; inset: 0; z-index: 0;
    background: radial-gradient(ellipse 80% 60% at 20% 0%, rgba(239,68,68,0.08) 0%, transparent 50%),
                radial-gradient(ellipse 70% 50% at 90% 100%, rgba(59,130,246,0.06) 0%, transparent 50%),
                linear-gradient(180deg, #0d0f14 0%, #0a0b0e 100%);
  }
  .landing-hero-content { position: relative; padding: var(--s-7) var(--pad-x); max-width: 100%; }
  .landing-eyebrow {
    font-family: var(--sans); font-size: 12px; font-weight: 600; color: var(--accent);
    margin-bottom: var(--s-4); line-height: 1.5; max-width: var(--maxw);
  }
  .landing-title {
    font-family: var(--serif); font-size: var(--t-display); font-weight: 700;
    line-height: 1.02; letter-spacing: -0.025em; color: var(--ink-strong);
    margin-bottom: var(--s-5); text-shadow: 0 2px 24px rgba(0,0,0,0.5);
  }
  /* Static chromatic silver on the title — no animation */
  .landing-title a.elink {
    background: linear-gradient(135deg, #93c5fd 0%, #e0e7ff 40%, #f5f5f5 60%, #c0c8d8 100%);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  .landing-dek {
    font-family: var(--sans); font-size: 14px; line-height: 1.7; color: var(--ink);
    max-width: var(--maxw); margin-top: var(--s-6); font-weight: 400;
  }

  /* ═══ FORENSIC CASE FILE — primary event detail, highest visual priority ═══ */
  .case-file {
    background: var(--paper-2); border: 1px solid var(--rule-strong);
    border-left: 4px solid var(--cat-red);
    border-radius: var(--radius); overflow: hidden;
    box-shadow: var(--shadow-md); margin: var(--s-6) 0 var(--s-5);
    max-width: 100%;
  }
  .case-file-header {
    display: flex; align-items: center; justify-content: space-between; gap: var(--s-4);
    padding: var(--s-3) var(--s-5); background: var(--paper-3);
    border-bottom: 1px solid var(--rule-strong);
  }
  .case-file-label {
    font-family: var(--sans); font-size: 10px; font-weight: 800;
    letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent);
    white-space: nowrap;
  }
  .case-file-id {
    font-family: var(--sans); font-size: 11px; color: var(--faint); font-weight: 500;
    text-align: right; line-height: 1.3;
  }
  .case-file-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 0;
    align-items: stretch;
  }
  .cf-item {
    padding: var(--s-4) var(--s-5);
    border-right: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
    display: flex; flex-direction: column; justify-content: flex-start;
  }
  .cf-item:nth-child(2n) { border-right: none; }
  .cf-item:nth-last-child(-n+2) { border-bottom: none; }
  .cf-label {
    font-family: var(--sans); font-size: 10px; font-weight: 700;
    letter-spacing: 0.14em; text-transform: uppercase; color: var(--date-color);
    margin-bottom: 6px;
  }
  .cf-value {
    font-family: var(--sans); font-size: var(--t-h4); font-weight: 700;
    color: var(--ink-strong); line-height: 1.25; letter-spacing: -0.01em;
    margin-bottom: 4px;
  }
  .cf-sub {
    font-family: var(--sans); font-size: 12px; color: var(--muted);
    line-height: 1.4; font-weight: 500;
  }
  .case-file-footer {
    font-family: var(--sans); font-size: 12px; color: var(--faint);
    text-align: center; padding: var(--s-3) var(--s-5);
    background: var(--paper); border-top: 1px solid var(--rule);
    font-style: italic;
  }
  .cf-metrics {
    display: flex; gap: 0; padding: var(--s-4) var(--s-5);
    background: var(--paper); border-top: 1px solid var(--rule);
    align-items: stretch;
  }
  .cf-metric {
    flex: 1; display: flex; flex-direction: column; align-items: center;
    justify-content: center; gap: 4px; padding: var(--s-2) var(--s-3);
    border-right: 1px solid var(--rule);
  }
  .cf-metric:last-child { border-right: none; }
  .cf-metric-num {
    font-family: var(--sans); font-size: 17px; font-weight: 800;
    color: var(--ink-strong); letter-spacing: -0.02em; line-height: 1;
  }
  .cf-metric-desc {
    font-family: var(--sans); font-size: 10px; color: var(--faint);
    font-weight: 600; letter-spacing: 0.04em; text-align: center; line-height: 1.3;
  }

  @media (max-width: 760px) {
    .cf-metrics { flex-wrap: wrap; }
    .cf-metric { flex: 1 1 45%; padding: var(--s-2); border-bottom: 1px solid var(--rule); }
    .cf-metric:nth-last-child(-n+2) { border-bottom: none; }
    .cf-metric:nth-child(2n) { border-right: none; }
  }

  @media (max-width: 760px) {
    .case-file-grid { grid-template-columns: 1fr; }
    .cf-item { border-right: none; }
    .cf-item:nth-last-child(-n+2) { border-bottom: 1px solid var(--rule); }
    .cf-item:last-child { border-bottom: none; }
    .cf-value { font-size: 17px; }
    .case-file-header { flex-direction: column; align-items: flex-start; gap: 4px; }
    .case-file-id { text-align: left; }
  }

  /* ── LANDING STORY (editorial narrative) ── */
  .landing-story {
    max-width: 760px; margin: 0 auto var(--s-7); padding: 0 var(--s-4);
  }
  .story-eyebrow {
    font-family: var(--sans); font-size: 11px; letter-spacing: 0.18em;
    text-transform: uppercase; color: var(--cat-blue); font-weight: 700; margin-bottom: var(--s-2);
  }
  .story-title {
    font-family: var(--serif); font-size: var(--t-h2); font-weight: 700; line-height: 1.3;
    letter-spacing: -0.015em; color: var(--ink-strong); margin-bottom: var(--s-5);
    text-wrap: balance;
  }
  .story-prose {
    font-family: var(--sans); font-size: 14px; line-height: 1.7; color: var(--ink);
  }
  .story-prose p { margin-bottom: var(--s-5); text-wrap: pretty; }
  .story-prose strong { color: var(--ink-strong); font-weight: 700; }
  .story-lead {
    font-size: 20px !important; font-weight: 600; color: var(--ink-strong) !important;
    line-height: 1.5; margin-bottom: var(--s-5) !important;
  }
  .story-break {
    height: 1px; background: var(--rule); margin: var(--s-6) 0;
  }
  .story-h3 {
    font-family: var(--serif); font-size: var(--t-h3); font-weight: 700; color: var(--ink-strong);
    margin: var(--s-6) 0 var(--s-4); letter-spacing: -0.01em;
  }
  .story-tail {
    padding: var(--s-5) var(--s-6); background: var(--paper-2); border-radius: var(--radius);
    border-left: 3px solid var(--accent); color: var(--ink) !important; font-style: italic;
  }

  /* ── CASE STATUS BULLETIN — factual proceeding status ── */
  .status-bulletin {
    margin: var(--s-7) 0 0;
    background: var(--paper); border: 1px solid var(--rule-strong);
    border-radius: var(--radius-sm); overflow: hidden;
  }
  .status-bulletin-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: var(--s-3) var(--s-5);
    background: var(--paper-3); border-bottom: 1px solid var(--rule);
  }
  .status-bulletin-stamp {
    font-family: var(--sans); font-size: 10px; font-weight: 800;
    letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint);
  }
  .status-bulletin-live {
    font-family: var(--sans); font-size: 10px; font-weight: 700;
    letter-spacing: 0.12em; text-transform: uppercase; color: #22c55e;
    display: flex; align-items: center; gap: 6px;
  }
  .status-bulletin-live .live-dot {
    width: 7px; height: 7px; border-radius: 50%; background: #22c55e;
    animation: pulse 2s ease-in-out infinite;
  }
  .status-bulletin-body { padding: var(--s-5) var(--s-5) var(--s-4); }
  .status-bulletin-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
    margin-bottom: var(--s-4);
  }
  .sb-item {
    padding: 0 var(--s-3);
    border-right: 1px solid var(--rule);
  }
  .sb-item:first-child { padding-left: 0; }
  .sb-item:last-child { border-right: none; }
  .sb-label {
    font-family: var(--sans); font-size: 9px; font-weight: 700;
    letter-spacing: 0.14em; text-transform: uppercase; color: var(--faint);
    margin-bottom: 4px;
  }
  .sb-value {
    font-family: var(--sans); font-size: 13px; font-weight: 600;
    color: var(--ink-strong); line-height: 1.3;
  }
  .sb-note {
    font-family: var(--sans); font-size: 13px; line-height: 1.6;
    color: var(--muted); margin: 0;
    padding-top: var(--s-3); border-top: 1px solid var(--rule);
  }

  @media (max-width: 600px) {
    .status-bulletin-grid { grid-template-columns: 1fr 1fr; gap: var(--s-3) 0; }
    .sb-item { padding: var(--s-2) var(--s-3); }
    .sb-item:nth-child(2) { border-right: none; }
    .sb-item:nth-child(-n+2) { padding-top: 0; }
  }
  /* The central question callout */
  .story-callout {
    display: grid; grid-template-columns: auto 1fr; gap: var(--s-5);
    padding: var(--s-5) var(--s-6); margin: var(--s-6) 0;
    background: linear-gradient(135deg, var(--cat-red-bg) 0%, var(--paper-2) 60%);
    border-left: 4px solid var(--cat-red); border-radius: 0 var(--radius) var(--radius) 0;
  }
  .story-callout-q {
    width: 48px; height: 48px; border-radius: 50%; flex-shrink: 0;
    background: var(--cat-red); color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: 26px; font-weight: 800;
    box-shadow: 0 0 20px -4px rgba(239,68,68,0.5);
  }
  .story-callout strong { color: var(--ink-strong); }
  .story-callout-note {
    font-size: 13px; color: var(--muted); margin-top: 6px; font-style: italic;
  }
  @media (max-width: 760px) {
    .landing-title { font-size: 36px; }
    /* hero-content uses fluid --pad-x from base */
    .story-prose { font-size: 15px; }
    .story-lead { font-size: 17px !important; }
  }

  /* Editorial passage — thin rules, no box, no icon */
  .story-rule {
    border: none; border-top: 1px solid var(--rule);
    margin: var(--s-6) auto; max-width: 120px;
  }
  .story-passage {
    font-family: var(--sans); font-size: 15px; line-height: 1.8;
    color: var(--muted); text-align: left; margin: 0 auto var(--s-6);
    max-width: var(--maxw); font-style: italic;
  }

  /* ── CONTEXT SECTIONS (Stages 1 & 2 — zero-context onboarding) ── */
  .context-section {
    border-top: 3px double var(--rule-strong);
    padding-top: var(--s-7);
  }

  /* ── THE QUESTION — jury framing callout (Stage 5) ── */
  .jury-question {
    margin: var(--s-8) auto 0; max-width: var(--maxw);
    padding: var(--s-6) var(--s-4) 0;
    border-top: 3px double var(--rule-strong);
  }
  .jury-question-inner {
    text-align: center;
    padding: var(--s-7) var(--s-6);
    background: var(--paper); border: 1px solid var(--rule-strong);
    border-radius: var(--radius); position: relative;
  }
  .jq-eyebrow {
    font-family: var(--sans); font-size: 10px; font-weight: 800;
    letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent);
    margin-bottom: var(--s-3);
  }
  .jq-title {
    font-family: var(--serif); font-size: var(--t-h2); font-weight: 700;
    line-height: 1.2; color: var(--ink-strong); letter-spacing: -0.02em;
    margin-bottom: var(--s-5); max-width: 560px; margin-left: auto; margin-right: auto;
  }
  .jq-body {
    font-family: var(--sans); font-size: 15px; line-height: 1.7;
    color: var(--muted); max-width: 560px; margin: 0 auto var(--s-4);
  }
  .jq-body:last-of-type { margin-bottom: 0; }

  @media (max-width: 600px) {
    .jq-title { font-size: 22px; }
    .jq-body { font-size: 15px; }
    .jury-question-inner { padding: var(--s-5) var(--s-4); }
  }

  /* ── RECURRING JURY PROMPT (used on evidence/contested/dossier panels) ── */
  .jury-prompt {
    margin: var(--s-6) 0; padding: var(--s-4) var(--s-5);
    background: var(--paper); border: 1px solid var(--rule);
    border-left: 3px solid var(--cat-blue); border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    font-family: var(--sans); font-size: 13px; line-height: 1.6;
    color: var(--muted);
  }
  .jury-prompt strong { color: var(--ink-strong); }

  /* ── KEY-FINDING CALLOUT (visual rhythm) ── */
  .key-callout {
    display: grid; grid-template-columns: auto 1fr; gap: var(--s-5);
    padding: var(--s-5) var(--s-6); margin: var(--s-6) 0;
    background: linear-gradient(135deg, var(--cat-blue-bg) 0%, var(--paper-2) 100%);
    border-left: 4px solid var(--cat-blue); border-radius: 0 var(--radius) var(--radius) 0;
  }
  .key-callout-icon {
    width: 44px; height: 44px; border-radius: var(--radius-pill);
    background: var(--cat-blue); color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--sans); font-size: var(--t-h2); font-weight: 700; flex-shrink: 0;
  }
  .key-callout-label {
    font-family: var(--sans); font-size: 10px; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--cat-blue); font-weight: 700; margin-bottom: var(--s-2);
  }
  .key-callout-body {
    font-family: var(--sans); font-size: 14px; line-height: 1.55; color: var(--ink); font-weight: 500;
  }

  /* ── PULL-OUT STAT (inline illuminated figure) ── */
  .stat-inline {
    display: inline-flex; align-items: baseline; gap: 4px;
    padding: 1px 8px; background: var(--cat-amber-bg); color: var(--cat-amber);
    border-radius: var(--radius-sm); font-weight: 700; font-size: 0.95em;
  }

  /* ── SECTION DIVIDER (visual rhythm between zones) ── */
  .section-divider {
    display: flex; align-items: center; gap: var(--s-3); margin: var(--s-7) 0;
    color: var(--faint);
  }
  .section-divider::before, .section-divider::after {
    content: ''; flex: 1; height: 1px; background: var(--rule);
  }
  .section-divider-label {
    font-family: var(--sans); font-size: 11px; letter-spacing: 0.12em;
    text-transform: uppercase; font-weight: 600;
  }

  /* ── HERO-BODY prose refinement (kill text walls) ── */
  .hero-body { font-size: 15px; line-height: 1.75; color: var(--muted); max-width: var(--maxw); }
  .hero-body p { margin-bottom: var(--s-5); }
  .hero-body p:first-of-type::first-letter {
    font-size: 3.2em; font-weight: 800; float: left; line-height: 0.85;
    padding: 4px 10px 0 0; color: var(--accent); font-family: var(--sans);
  }
  .hero-body strong { font-weight: 700; color: var(--ink); }
  .hero-body p:nth-child(3) { /* highlight the Robinson paragraph */
    padding: var(--s-4) var(--s-5); background: var(--paper-2); border-radius: var(--radius-sm);
    border-left: 3px solid var(--accent); color: var(--ink);
  }
  .hero-body p:nth-child(3)::first-letter { font-size: inherit; float: none; padding: 0; color: inherit; font-weight: inherit; }

  /* ── SUPPORT SYSTEM ── */
  /* ═══ SITE-WIDE SUPPORT CTA BAR (footer — visible on every panel) ═══ */
  .support-cta-bar {
    display: flex; align-items: center; justify-content: space-between; gap: var(--s-4);
    padding: var(--s-4) var(--pad-x); margin-bottom: var(--s-5);
    background: linear-gradient(135deg, rgba(245,158,11,0.08) 0%, var(--paper-2) 70%);
    border: 1px solid rgba(245,158,11,0.2); border-radius: var(--radius);
    flex-wrap: wrap;
  }
  .support-cta-text {
    display: flex; flex-direction: column; gap: 2px; min-width: 0;
  }
  .support-cta-text strong {
    font-family: var(--sans); font-size: 14px; font-weight: 700; color: var(--ink-strong);
  }
  .support-cta-text span {
    font-family: var(--sans); font-size: 13px; color: var(--muted);
  }
  .support-cta-btn {
    font-family: var(--sans); font-size: 14px; font-weight: 700; white-space: nowrap;
    padding: 10px 22px; border-radius: var(--radius-sm);
    background: #f59e0b; color: #0a0b0e; text-decoration: none;
    transition: all .18s;
  }
  .support-cta-btn:hover {
    background: #fbbf24; transform: translateY(-1px); box-shadow: 0 4px 12px -2px rgba(245,158,11,0.4);
  }
  @media (max-width: 600px) {
    .support-cta-bar { flex-direction: column; text-align: center; }
    .support-cta-text { align-items: center; }
  }

  .support-prose { max-width: 100%; margin-bottom: var(--s-7); }
  .support-prose p {
    font-family: var(--sans); font-size: 14px; line-height: 1.7;
    color: var(--ink); margin-bottom: var(--s-4);
  }
  .support-lead {
    font-family: var(--serif); font-size: 24px; font-weight: 700;
    color: var(--ink-strong); line-height: 1.35; margin-bottom: var(--s-5);
    letter-spacing: -0.01em;
  }
  .support-prose p {
    font-family: var(--sans); font-size: 15px; line-height: 1.75; color: var(--muted); margin-bottom: var(--s-4);
  }
  .support-block {
    max-width: var(--maxw); margin-bottom: var(--s-7);
    padding-bottom: var(--s-6); border-bottom: 1px solid var(--rule);
  }
  .support-block:last-child { border-bottom: none; }
  .support-block-title {
    font-family: var(--sans); font-size: 16px; font-weight: 800;
    color: var(--ink-strong); margin-bottom: var(--s-4); letter-spacing: -0.015em;
  }
  .support-block p {
    font-family: var(--sans); font-size: 14px; line-height: 1.7; color: var(--muted); margin-bottom: var(--s-3);
  }
  .support-funds-list, .support-never-list { list-style: none; padding: 0; margin: var(--s-3) 0; }
  .support-funds-list li, .support-never-list li {
    font-family: var(--sans); font-size: 13px; line-height: 1.6; color: var(--muted);
    padding: var(--s-2) 0 var(--s-2) var(--s-5); position: relative;
  }
  .support-funds-list li::before { content: '→'; position: absolute; left: 0; color: var(--cat-blue); font-weight: 700; }
  .support-never-list li::before { content: '×'; position: absolute; left: 2px; color: var(--cat-red); font-weight: 700; font-size: 16px; }
  .support-constitution {
    margin-top: var(--s-5); padding: var(--s-4) var(--s-5); background: var(--cat-red-bg);
    border-left: 3px solid var(--cat-red); border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    font-family: var(--sans); font-size: 14px; font-weight: 600; color: var(--ink-strong); line-height: 1.5;
  }
  .support-actions-block {
    max-width: var(--maxw); margin-bottom: var(--s-7);
    padding: var(--s-6) var(--s-7); background: linear-gradient(135deg, rgba(245,158,11,0.06) 0%, var(--paper-2) 60%);
    border: 1px solid rgba(245,158,11,0.2); border-radius: var(--radius); box-shadow: var(--shadow-md);
  }
  .support-actions-intro {
    font-family: var(--sans); font-size: 15px; line-height: 1.7; color: var(--muted); margin-bottom: var(--s-5);
  }
  .support-actions { display: flex; gap: var(--s-4); flex-wrap: wrap; }
  .support-btn {
    font-family: var(--sans); font-size: 15px; font-weight: 700;
    padding: 14px 28px; border-radius: var(--radius-sm); cursor: pointer;
    border: none; transition: all .18s; letter-spacing: 0.01em;
  }
  .support-btn-once { background: #f59e0b; color: #0a0b0e; }
  .support-btn-once:hover { background: #fbbf24; transform: translateY(-1px); box-shadow: 0 4px 12px -2px rgba(245,158,11,0.4); }
  .support-btn-monthly { background: transparent; color: #f59e0b; border: 2px solid #f59e0b; }
  .support-btn-monthly:hover { background: rgba(245,158,11,0.1); border-color: #fbbf24; }
  .support-btn-sm { font-size: 13px; padding: 8px 18px; }
  .support-btn:disabled { opacity: 0.4; cursor: not-allowed; }
  .support-actions-note { font-family: var(--sans); font-size: 12px; color: var(--faint); margin-top: var(--s-4); }
  .support-unavailable {
    font-family: var(--mono); font-size: 12px; color: var(--faint);
    padding: var(--s-3) var(--s-4); background: var(--paper); border-radius: var(--radius-sm);
    text-transform: uppercase; letter-spacing: 0.1em;
  }
  .support-activity { max-width: var(--maxw); margin-bottom: var(--s-7); }
  .support-activity-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: var(--s-4); margin: var(--s-4) 0; }
  .support-activity-item { background: var(--paper-2); border: 1px solid var(--rule); border-radius: var(--radius-sm); padding: var(--s-4); }
  .support-activity-num { font-family: var(--sans); font-size: 28px; font-weight: 800; color: var(--ink-strong); letter-spacing: -0.02em; }
  .support-activity-desc { font-family: var(--sans); font-size: 11px; color: var(--faint); margin-top: 4px; }
  .support-activity-foot { font-family: var(--sans); font-size: 13px; color: var(--muted); margin-top: var(--s-4); }
  .support-activity-foot a { color: var(--date-color); }
  .support-inline-card {
    background: var(--paper-2); border: 1px solid var(--rule); border-radius: var(--radius);
    padding: var(--s-6) var(--s-7); margin: 0 auto var(--s-8); box-shadow: var(--shadow-sm);
    position: relative; max-width: var(--maxw);
  }
  .sic-label { font-family: var(--mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--cat-red); font-weight: 700; margin-bottom: var(--s-4); }
  .support-inline-card p { font-family: var(--sans); font-size: 14px; line-height: 1.7; color: var(--muted); margin-bottom: var(--s-3); }
  .support-inline-card strong { color: var(--ink-strong); }
  .sic-actions { display: flex; align-items: center; gap: var(--s-4); flex-wrap: wrap; margin-top: var(--s-5); }
  .sic-note { font-family: var(--sans); font-size: 12px; color: var(--faint); }
  .sic-constitution { margin-top: var(--s-4); padding-top: var(--s-3); border-top: 1px solid var(--rule); font-family: var(--sans); font-size: 12px; color: var(--faint); font-style: italic; }
  .sic-dismiss { position: absolute; top: var(--s-3); right: var(--s-4); background: none; border: none; font-size: 22px; color: var(--faint); cursor: pointer; line-height: 1; padding: 4px 8px; }
  .sic-dismiss:hover { color: var(--ink-strong); }
  @media (max-width: 600px) {
    .support-actions { flex-direction: column; }
    .support-btn { width: 100%; text-align: center; }
    .support-actions-block { padding: var(--s-5); }
  }

  /* Quiet footer support line — no guilt, no box, just a link */
  .support-footer-line {
    padding: var(--s-3) 0; border-bottom: 1px solid var(--rule);
    font-family: var(--sans); font-size: 12px; color: var(--muted);
  }
  .sfl-link {
    color: var(--date-color); font-weight: 600; text-decoration: none;
  }
  .sfl-link:hover { color: var(--ink-strong); }

  /* ── SUPPORT REMINDER (bottom of overview) ── */
  .support-reminder {
    background: var(--paper-3); border: 1px solid var(--rule);
    border-left: 3px solid var(--blue);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    padding: var(--s-5) var(--s-6); margin-top: var(--s-7);
  }
  .support-reminder p {
    font-family: var(--sans); font-size: 13px; line-height: 1.6; color: var(--muted);
    margin-bottom: var(--s-3);
  }
  .support-reminder-link {
    font-family: var(--sans); font-size: 13px; font-weight: 700;
    color: var(--cat-blue); text-decoration: none;
  }
  .support-reminder-link:hover { color: var(--ink-strong); }

  /* ════════════════════════════════════════════════════════════════
     UI ELEVATION PASS — 2026-07-16
     Authorized override of Open Design rule (owner-approved 2026-07-16).
     Pure CSS polish: card depth, hover elevation, typography refinement,
     smoother transitions. NO structural or layout changes.
     ════════════════════════════════════════════════════════════════ */

  /* Card hover elevation — gives interactive depth to the grid components */
  .evidence-card {
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }
  .evidence-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-card-hover);
    border-color: var(--rule-strong);
  }

  .source-card {
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  }
  .source-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-card-hover);
    border-color: var(--date-color);
  }

  .atlas-card {
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  }
  .atlas-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-card-hover);
  }

  .news-item {
    transition: background .18s ease;
  }
  .news-item:hover {
    background: rgba(255,255,255,0.02);
  }

  /* Smooth nav-tab transitions (already had color/border; add subtle bg lift) */
  .nav-tab { transition: color .15s, border-color .15s, background .15s, transform .1s; }
  .nav-tab:active { transform: translateY(1px); }

  /* Section titles — slightly tighter letter-spacing for editorial feel */
  .section-title {
    letter-spacing: -0.015em;
  }

  /* Eyebrow labels — refined spacing */
  .eyebrow {
    letter-spacing: 0.14em;
  }

  /* Person card hover — smoother, with border accent */
  .person-card {
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  }
  .person-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-card-hover);
  }

  /* Button refinement — smoother press feedback */
  .filter-btn,
  .support-btn,
  .cw-btn,
  .source-link {
    transition: all .15s ease;
  }
  .filter-btn:active,
  .support-btn:active,
  .cw-btn:active {
    transform: translateY(1px);
  }

  /* Source-drawer — subtle open transition */
  .source-drawer[open] {
    animation: drawer-open .2s ease;
  }
  @keyframes drawer-open {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
  }

  /* Reading-progress bar — smoother + accent gradient */
  #reading-progress {
    background: linear-gradient(90deg, var(--accent) 0%, var(--accent-dark) 100%);
    box-shadow: 0 0 8px rgba(239,68,68,0.4);
  }

  /* Headings — improve weight hierarchy on dark */
  h2.section-title,
  .case-file-header .case-file-label {
    text-shadow: 0 1px 2px rgba(0,0,0,0.3);
  }

  /* Selection color — on-brand */
  ::selection {
    background: rgba(239,68,68,0.3);
    color: var(--ink-strong);
  }

/* ═══ SEO FAQ SECTION ═══
   Subtle, footer-adjacent, readable. Reuses the forensic-dossier palette
   already in the file. Crawlable text mirrors the FAQPage JSON-LD. */
.faq-seo {
  max-width: 880px;
  margin: 60px auto 40px;
  padding: 0 24px;
  border-top: 1px solid var(--hair, rgba(255,255,255,0.08));
  padding-top: 40px;
}
.faq-seo h2 {
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: -0.01em;
  margin: 0 0 8px;
  color: var(--ink-strong, #f8fafc);
}
.faq-seo-intro {
  font-size: 0.95rem;
  color: var(--ink-mute, #94a3b8);
  margin: 0 0 24px;
  max-width: 640px;
}
.faq-item {
  border-bottom: 1px solid var(--hair, rgba(255,255,255,0.06));
  padding: 4px 0;
}
.faq-item summary {
  cursor: pointer;
  list-style: none;
  padding: 14px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: '+';
  font-size: 1.3rem;
  color: var(--ink-mute, #64748b);
  transition: transform 0.2s, color 0.2s;
  flex-shrink: 0;
}
.faq-item[open] summary::after { content: '−'; color: var(--ink-strong, #f8fafc); }
.faq-item summary h3 {
  font-size: 1.05rem;
  font-weight: 400;
  margin: 0;
  color: var(--ink, #cbd5e1);
}
.faq-item[open] summary h3 { color: var(--ink-strong, #f8fafc); }
.faq-item p {
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--ink-mute, #94a3b8);
  margin: 0 0 16px;
}
.faq-item p a {
  color: var(--accent, #ef4444);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.faq-item p a:hover { color: var(--ink-strong, #f8fafc); }
@media (prefers-reduced-motion: reduce) {
  .faq-item summary::after { transition: none; }
}
