/* ============================================================
   THE BLEICH FILES — DESIGN TOKEN SHEET (Tabloid · BILD.de)
   ============================================================ */
:root {
  --ink: #0A0A0A;
  --newsprint: #FFFFFF;           /* BILD: pure white, not cream */
  --white: #FFFFFF;
  --red: #E3000B;                 /* BILD's saturated red */
  --red-dark: #A80008;
  --red-stamp: rgba(227,0,11,0.90);
  --red-tint: rgba(227,0,11,0.06);
  --red-border: rgba(227,0,11,0.30);
  --grey-900: #1A1A1A;
  --grey-800: #2A2A2A;
  --grey-700: #3A3A3A;
  --grey-500: #6A6A6A;
  --grey-400: #636363;
  --grey-400-inv: #A8A8A8;
  --grey-200: #C8C8C8;
  --grey-100: #EBEBEB;
  --font-display: 'Barlow Condensed', Arial Narrow, sans-serif;
  --font-body: 'Instrument Sans', system-ui, sans-serif; /* tabloid display */
  --font-mono: 'IBM Plex Mono', 'Courier New', monospace;
  --rule-masthead: 6px solid var(--red);
  --border-section: 4px solid var(--red);  /* BILD horizontal rules */
  --shadow-masthead: 0 4px 20px rgba(0,0,0,0.4);
  --shadow-card: 0 2px 8px rgba(0,0,0,0.08);
  --shadow-card-hover: 0 8px 28px rgba(0,0,0,0.16);
  --shadow-stamp: 2px 3px 10px rgba(0,0,0,0.45);
  --ticker-duration: 44s;
  --transition-fast: 0.15s ease;
  --transition-mid: 0.25s ease;
  --container: 1200px;
  --container-pad: 24px;
  --section-gap: 160px;            /* macro white space between sections */
  --card-gap: 48px;               /* grid gap between cards — BILD ~24-30px */
  --card-pad: 36px 32px 32px;     /* card internal breathing room */
  --space-2: 8px;
  --space-3: 12px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
}/* ── RESET ─────────────────────────────────────────────────── */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}html {
  scroll-behavior: smooth;
}body {
  background: var(--white);
  font-family: var(--font-mono);
  font-size: 14px;
  line-height: 1.7;
  color: var(--ink);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "kern" 1, "liga" 1;
}
/* Newsprint grain removed — BILD is clean white *//* ============================================================
   MASTHEAD (Phase 5-A · Approved)
   ============================================================ */
.masthead {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--ink);
  border-bottom: var(--rule-masthead);
  box-shadow: var(--shadow-masthead);
}.masthead-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--container-pad);
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 24px;
  min-height: 72px;
}.pub-identity {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 32px;
  flex-wrap: nowrap;
}.pub-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(38px, 6vw, 76px);
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--white);
  white-space: nowrap;
  text-transform: uppercase;
  animation: titleReveal 0.6s ease forwards;
}.pub-title .accent {
  color: var(--red);
}/* BILD-style exclusive badge */
.masthead-badge {
  display: inline-block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  background: var(--red);
  color: var(--white);
  padding: 3px 8px 2px;
  line-height: 1.4;
  white-space: nowrap;
}.pub-meta {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-left: auto;       /* push meta block to the far right of pub-identity */
  align-items: flex-end;
}.pub-edition {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--grey-400-inv);
  line-height: 1;
}.nav {
  display: flex;
  align-items: center;
  gap: 0;
}.nav-link {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 700;
  text-transform: none;
  color: var(--grey-400-inv);
  text-decoration: none;
  padding: 8px 14px;
  position: relative;
  transition: color var(--transition-fast);
  white-space: nowrap;
}.nav-link::after {
  content: '';
  position: absolute;
  bottom: 4px;
  left: 14px;
  right: 14px;
  height: 1px;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.2s ease;
}.nav-link:hover {
  color: var(--white);
}.nav-link:hover::after {
  transform: scaleX(1);
}.nav-link.sources {
  color: var(--grey-400-inv);
  border: 1px solid var(--grey-400-inv);
  padding: 6px 14px;
  margin-left: 8px;
}.nav-link.sources:hover {
  color: var(--white);
  background: rgba(100,100,100,0.08);
  border-color: var(--grey-500);
}.nav-link.sources::after {
  display: none;
}.nav-link.active {
  color: var(--white);
}.nav-link.active::after {
  transform: scaleX(1);
  background: var(--white);
}.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  min-width: 44px;
  min-height: 44px;
}.hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--grey-400-inv);
  transition: all 0.25s ease;
}.hamburger.open span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
  background: var(--white);
}.hamburger.open span:nth-child(2) {
  opacity: 0;
}.hamburger.open span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
  background: var(--white);
}.nav-drawer {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--grey-900);
  border-top: 1px solid var(--grey-700);
  border-bottom: 3px solid var(--red);
  padding: 8px 0 12px;
  z-index: 999;
}.nav-drawer.open {
  display: block;
}.nav-drawer .nav-link {
  display: block;
  padding: 12px 24px;
  font-size: 13px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}.nav-drawer .nav-link::after {
  display: none;
}.nav-drawer .nav-link.sources {
  margin: 8px 24px 0;
  display: inline-block;
}/* .scroll-progress removed — tabloid redesign *//* ============================================================
   TICKER (Phase 5-A · Accessibility Rebuild)
   — Sentence case (no ALL CAPS)
   — Pause/play button (WCAG 2.2.2)
   — prefers-reduced-motion: shows static text
   — Proper ARIA roles
   ============================================================ */
.ticker-bar {
  background: var(--red);
  overflow: hidden;
  white-space: nowrap;
  padding: 8px 0;
  border-bottom: 1px solid var(--red-dark);
  animation: tickerLoad 0.4s ease 0.2s both;
  position: relative;
  display: flex;
  align-items: center;
}.ticker-bar::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 60px;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(to left, var(--red), transparent);
}.ticker-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--white);
  color: var(--red);
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 3px 12px;
  margin-right: 20px;
  margin-left: 16px;
  vertical-align: middle;
  position: relative;
  z-index: 3;
  flex-shrink: 0;
  white-space: nowrap;
}.ticker-pause {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.3);
  color: var(--white);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 12px;
  line-height: 1;
  margin-left: 16px;
  margin-right: 8px;
  flex-shrink: 0;
  z-index: 3;
  transition: background 0.15s ease;
}.ticker-pause:hover {
  background: rgba(255,255,255,0.25);
}.ticker-pause:focus-visible {
  outline: 2px solid var(--white);
  outline-offset: 2px;
}.ticker-track {
  display: inline-block;
  animation: ticker var(--ticker-duration) linear infinite;
  vertical-align: middle;
}.ticker-track:hover {
  animation-play-state: paused;
}.ticker-track.paused {
  animation-play-state: paused;
}.ticker-item {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 700;
  color: var(--white);
  padding: 0 56px 0 0;
}.ticker-item::before {
  content: '\25C6';
  font-size: 8px;
  margin-right: 12px;
  opacity: 0.7;
  vertical-align: middle;
}.ticker-item strong {
  color: var(--white);
  font-weight: 900;
}.ticker-item .fine {
  color: #FFEEEE;
  font-weight: 900;
}

/* Reduced motion: stop animation, show single static line */
@media (prefers-reduced-motion: reduce) {.ticker-track {
  animation: none !important;
  overflow: hidden;
  max-width: calc(100vw - 160px);
  text-overflow: ellipsis;
}.ticker-pause {
  display: none;
}
}/* ============================================================
   HERO SECTION
   ============================================================ */
.hero {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 0 32px;
  display: flex;
  flex-direction: column;
  position: relative;
}
/* Full-width hero photo — HIDDEN */
.hero-photo-full {
  display: none;
}
.hero-photo-full .photo-area {
  height: auto;
  max-height: 560px;
}
.hero-photo-full .subject-photo {
  width: 100%;
  height: auto;
  max-height: 560px;
  object-fit: cover;
  object-position: center 25%;
  display: block;
}
.hero-main {
  padding: 80px var(--container-pad) 0;
  max-width: 780px;
  margin-left: auto;
  margin-right: auto;
}
.hero-numbers-bar {
  border-top: var(--border-section);
  border-bottom: 1px solid var(--grey-100);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  background: var(--white);
  margin: 0 0 24px;
  padding: 0 var(--container-pad);
}
.hero-numbers-bar .stat-row {
  flex-direction: column;
  align-items: flex-start;
  padding: 20px 24px;
  border-bottom: none;
  border-right: 1px solid var(--grey-100);
  gap: 6px;
}
.hero-numbers-bar .stat-row:last-child { border-right: none; }
.hero-numbers-bar .stat-label {
  color: var(--grey-500);
  font-size: 9px;
}
.hero-numbers-bar .stat-value {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 900;
}
/* context bar spans full width below numbers */
.hero-context-bar {
  border-top: 1px solid var(--grey-100);
  padding: 16px var(--container-pad)64px;
  margin-top: 0;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--grey-500);
  line-height: 1.7;
  display: flex;
  gap: 16px;
  align-items: flex-start;
  border-bottom: 3px double var(--grey-200);
}/* ── HERO LABEL ────────────────────────────────────────────── */
.hero-label {
  justify-content: center;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}.hero-label-line {
  width: 40px;
  height: 2px;
  background: var(--red);
  flex-shrink: 0;
}.hero-label-text {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--red);
}/* ── HEADLINE ──────────────────────────────────────────────── */
.hero-headline {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(42px, 6.5vw, 88px);
  line-height: 0.93;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 20px;
  text-align: center;
}.hero-headline em {
  font-style: normal;
  color: var(--ink);
}/* ── DECK ──────────────────────────────────────────────────── */
.hero-deck {
  font-family: var(--font-display);
  font-size: clamp(15px, 1.8vw, 20px);
  font-weight: 700;
  color: var(--grey-700);
  line-height: 1.3;
  margin-bottom: 24px;
  margin-left: auto;
  margin-right: auto;
  max-width: 640px;
  text-align: center;
}/* ── LEDE ──────────────────────────────────────────────────── */
.hero-lede {
  font-family: var(--font-mono);
  font-size: 14px;
  line-height: 1.65;
  color: var(--ink);
  margin-bottom: 64px;
  max-width: 640px;       /* cap line length to ~70 chars */
  margin-left: auto;
  margin-right: auto;
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}.hero-lede p {
  margin-bottom: 20px;
}.hero-lede p:last-child {
  margin-bottom: 0;
}/* ── INLINE STAMPS ─────────────────────────────────────────── */
.stamp {
  display: inline-block;
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 2px 7px;
  margin-left: 5px;
  vertical-align: middle;
  transform: rotate(-0.8deg);
  line-height: 1.6;
  white-space: nowrap;
}.stamp-reg {
  background: var(--red);
  color: var(--white);
}.stamp-public {
  background: transparent;
  color: var(--grey-500);
  border: 1px solid var(--grey-400);
  transform: none;
}.stamp-alleged {
  background: var(--grey-500);
  color: var(--ink);
}

/* Linked stamps — hover/focus states */
a.stamp {
  text-decoration: none;
  cursor: pointer;
  transition: filter 0.15s ease, box-shadow 0.15s ease;
}
a.stamp:hover {
  filter: brightness(1.15);
  box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}
a.stamp:focus-visible {
  outline: 2px solid var(--grey-500);
  outline-offset: 2px;
}
a.stamp.stamp-public:hover {
  border-color: var(--ink);
  color: var(--ink);
}
/* ── PULLQUOTE ─────────────────────────────────────────────── */
/* ── MEBr3 Photo Insert ─────────────────────────────────────── */
.mebr3-figure {
  margin: 40px auto 0;
  padding: 0;
  border: 0;
  max-width: 640px;
}
.mebr3-headline {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(13px, 1.4vw, 16px);
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--white);
  background: var(--ink);
  padding: 7px 14px;
  border-left: 4px solid var(--red);
}
.mebr3-img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.pullquote {
  font-family: var(--font-display);
  font-size: clamp(17px, 1.9vw, 22px);
  font-style: normal;
  font-weight: 700;
  color: var(--ink);
  border-left: 5px solid var(--grey-200);
  padding: 20px 24px;
  margin: 56px auto 0;
  max-width: 640px;
  background: rgba(0,0,0,0.02);
  line-height: 1.3;
}.pullquote cite {
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
  font-style: normal;
  font-weight: 400;
  color: var(--grey-400);
  margin-top: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}/* ── PHOTO CARD ────────────────────────────────────────────── */
.photo-card {
  background: var(--grey-900);
  position: relative;
  overflow: hidden;
}.photo-area {
  width: 100%;
  height: 260px;
  background: linear-gradient(160deg, #1c1c1c 0%, #111 50%, #0a0a0a 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 6px;
  position: relative;
  overflow: hidden;
}/* Texture lines — newsprint halftone feel */
.photo-area::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 3px,
    rgba(255,255,255,0.015) 3px,
    rgba(255,255,255,0.015) 4px
  );
}.photo-initials {
  font-family: var(--font-display);
  font-size: 88px;
  font-weight: 900;
  color: rgba(255,255,255,0.06);
  letter-spacing: -4px;
  line-height: 1;
  user-select: none;
  position: relative;
  z-index: 1;
}.photo-tag {
  font-family: var(--font-mono);
  font-size: 9px;
  color: rgba(255,255,255,0.25);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  position: relative;
  z-index: 1;
}/* ── PHOTO CAPTION ─────────────────────────────────────────── */
.photo-caption {
  padding: 10px 14px;
  background: var(--grey-800);
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--grey-400);
  line-height: 1.4;
  border-top: 1px solid var(--grey-700);
}.photo-caption strong {
  color: var(--white);
  font-weight: 600;
}.stat-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 12px 14px;
  border-bottom: 1px dotted var(--grey-700);
  gap: 12px;
}.stat-row:last-child {
  border-bottom: none;
}.stat-label {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--grey-400-inv);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: 1.3;
  flex: 1;
}.stat-value {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 20px;
  color: var(--red);
  line-height: 1;
  white-space: nowrap;
  text-align: right;
  font-variant-numeric: tabular-nums lining-nums;
}.stat-value.gold {
  color: var(--grey-500);
}/* Performance comparison stat */
.stat-row-compare {
  grid-column: span 1;
}.stat-compare-pair {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 2px 0 0;
}.stat-compare-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}.stat-value-lag {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 20px;
  color: var(--red);
  line-height: 1;
}.stat-value-bench {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 20px;
  color: var(--grey-500);
  line-height: 1;
}.stat-compare-vs {
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 600;
  color: var(--grey-500);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  align-self: center;
  padding: 0 2px;
}.stat-compare-leg {
  font-family: var(--font-mono);
  font-size: 8px;
  color: var(--grey-500);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1;
}.stat-badge-underperform {
  color: var(--red) !important;
  font-weight: 600;
}.stat-badge {
  display: block;
  font-family: var(--font-mono);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--grey-400-inv);
  margin-top: 2px;
  text-align: right;
}.context-bar-icon {
  font-size: 16px;
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--grey-400);
}/* ============================================================
   RED FLAG CARDS SECTION
   ============================================================ */
.redflag-section {
  max-width: var(--container);
  margin: 0 auto;
  padding: var(--section-gap) var(--container-pad);
}/* ── SECTION HEADER — BILD red banner ─────────────────────── */
.section-header {
  margin-bottom: 64px;
  margin-left: calc(-1 * var(--container-pad));
  margin-right: calc(-1 * var(--container-pad));
}
.section-header-inner {
  display: flex;
  align-items: center;
  gap: 0;
  background: var(--ink);
  border-left: 8px solid var(--red);
  padding: 13px var(--container-pad);
}
.section-num {
  font-family: var(--font-display);
  font-size: 1.3em;
  font-weight: 900;
  color: var(--red);
  flex-shrink: 0;
  margin-right: 12px;
  line-height: 1;
}
.section-title {
  font-family: var(--font-display);
  font-size: clamp(16px, 2vw, 22px);
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--white);
  flex: 1;
}
.section-tag {
  font-family: var(--font-display);
  font-size: 0.65rem;
  font-weight: 700;
  color: rgba(255,255,255,0.5);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  white-space: nowrap;
}
.section-rule {
  display: none;  /* red left border on banner replaces the rule */
}/* ── BILD GIANT NUMERAL CALL-OUT ───────────────────────────── */
.number-callout {
  border-top: 6px solid var(--red);
  padding: 40px 0 48px;
  margin-bottom: 72px;
}
.number-callout .num {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(56px, 10vw, 112px);
  line-height: 1;
  color: var(--ink);
  letter-spacing: -0.04em;
}
.number-callout .num-label {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--red);
  margin-top: 6px;
}
/* ── CARDS GRID ────────────────────────────────────────────── */
.redflag-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--card-gap);
  align-items: start;
}/* ── CARD BASE ─────────────────────────────────────────────── */
.rf-card {
  background: var(--white);
  position: relative;
  overflow: hidden;
  padding: var(--card-pad);
  transition: transform var(--transition-mid), box-shadow var(--transition-mid);
  cursor: default;
}.rf-card:hover {
  transform: var(--hover-lift);
  box-shadow: var(--shadow-card-hover);
}/* Ghost number behind card content */
.rf-num-bg {
  position: absolute;
  bottom: -20px;
  right: -8px;
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 120px;
  line-height: 1;
  color: rgba(0,0,0,0.035);
  pointer-events: none;
  user-select: none;
  z-index: 0;
}/* Severity variants */
.rf-severe {
  border-top: 4px solid var(--red);
  border-left: 1px solid var(--red-border);
  border-right: 1px solid var(--grey-100);
  border-bottom: 1px solid var(--grey-100);
}.rf-warning {
  border-top: 4px solid var(--grey-500);
  border-left: 1px solid rgba(201,168,76,0.3);
  border-right: 1px solid var(--grey-100);
  border-bottom: 1px solid var(--grey-100);
}/* ── CARD HEADER ───────────────────────────────────────────── */
.rf-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
  position: relative;
  z-index: 1;
}.rf-stamp {
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 3px 8px;
}.rf-stamp-severe {
  background: var(--red);
  color: var(--white);
}.rf-stamp-warn {
  background: var(--grey-500);
  color: var(--ink);
}.rf-source {
  font-family: var(--font-mono);
  font-size: 8px;
  color: var(--grey-400);
  text-decoration: none;
}a.rf-source:hover {
  color: var(--red);
  text-decoration: underline;
}/* ── CARD TITLE ────────────────────────────────────────────── */
.rf-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(17px, 1.8vw, 21px);
  line-height: 1.15;
  letter-spacing: -0.5px;
  color: var(--ink);
  margin-bottom: 12px;
  position: relative;
  z-index: 1;
}.rf-divider {
  width: 32px;
  height: 2px;
  background: var(--red);
  margin-bottom: 14px;
  position: relative;
  z-index: 1;
}.rf-warning .rf-divider {
  background: var(--grey-500);
}/* ── CARD BODY ─────────────────────────────────────────────── */
.rf-body {
  font-family: var(--font-mono);
  font-size: 12.5px;
  line-height: 1.65;
  color: var(--grey-500);
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
  margin-bottom: 14px;
  position: relative;
  z-index: 1;
}.rf-body:last-of-type {
  margin-bottom: 0;
}.rf-kicker {
  color: var(--ink);
  font-size: 12px;
  line-height: 1.6;
}.rf-kicker strong {
  color: var(--red);
}/* ── FINE AMOUNT ───────────────────────────────────────────── */
.rf-fine {
  font-family: var(--font-display);
  font-weight: 900;
  color: var(--red);
  margin-top: 16px;
  line-height: 1;
  position: relative;
  z-index: 1;
  font-size: 22px;
  font-variant-numeric: tabular-nums lining-nums;
}.rf-fine-dominant {
  font-size: 38px;
  letter-spacing: -1px;
}.rf-fine-pct {
  font-size: 56px;
  letter-spacing: -2px;
  color: var(--red);
}.rf-fine-cascade {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 15px;
  color: var(--grey-500);
}.rf-fine-plus {
  color: var(--grey-400);
  font-size: 13px;
  font-family: var(--font-mono);
}/* ============================================================
   TIMELINE SECTION
   ============================================================ */
.timeline-section {
  max-width: var(--container);
  margin: 0 auto;
  padding: var(--section-gap) var(--container-pad);
}/* ── COLUMN HEADERS ────────────────────────────────────────── */
.tl-col-headers {
  display: grid;
  grid-template-columns: 140px 1fr 180px;
  gap: 0;
  padding: 8px 0;
  border-bottom: 2px solid var(--ink);
  margin-bottom: 0;
}.tl-col-headers > div {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--grey-400);
  padding: 0 16px 8px;
}.tl-col-date {
  padding-left: 0;
}.tl-col-fine {
  text-align: right;
  padding-right: 0;
}/* ── TABLE ─────────────────────────────────────────────────── */
.tl-table {
  border-bottom: 1px solid var(--grey-200);
}/* ── ROW BASE ──────────────────────────────────────────────── */
.tl-row {
  display: grid;
  grid-template-columns: 140px 1fr 180px;
  gap: 0;
  padding: 28px 0;
  border-bottom: 1px solid var(--grey-100);
  align-items: center;
  position: relative;
  transition: background var(--transition-fast);
}.tl-row:hover {
  background: rgba(0,0,0,0.02);
}/* Left accent bar by row type */
.tl-row::before {
  content: '';
  position: absolute;
  left: -var(--container-pad);
  top: 0;
  bottom: 0;
  width: 3px;
}.tl-regulatory::before {
  background: var(--red);
}.tl-financial::before {
  background: var(--red);
}.tl-corporate::before {
  background: var(--grey-500);
}.tl-career::before {
  background: var(--grey-200);
}/* Highlight rows get subtle background tint */
.tl-highlight {
  background: rgba(204,0,0,0.025);
}.tl-highlight:hover {
  background: rgba(204,0,0,0.04);
}/* Dominant row — the $3M fine */
.tl-dominant {
  background: rgba(204,0,0,0.05);
}.tl-dominant:hover {
  background: rgba(204,0,0,0.08);
}/* ── DATE CELL ─────────────────────────────────────────────── */
.tl-date {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  color: var(--grey-500);
  padding-right: 16px;
  line-height: 1.4;
}.tl-dominant .tl-date {
  color: var(--red);
  font-weight: 600;
}/* ── ROLE CELL ─────────────────────────────────────────────── */
.tl-role {
  padding: 0 16px;
}.tl-event {
  font-family: var(--font-body);
  font-size: clamp(13px, 1.4vw, 15px);
  font-weight: 700;
  color: var(--ink);
  line-height: 1.3;
  margin-bottom: 4px;
}.tl-dominant .tl-event {
  font-size: clamp(15px, 1.6vw, 17px);
  color: var(--red);
}.tl-sub {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--grey-400);
  line-height: 1.5;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}/* ── FINE CELL ─────────────────────────────────────────────── */
.tl-fine {
  text-align: right;
  padding-left: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
}.tl-fine-none {
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--grey-200);
  justify-content: center;
}.tl-fine-amt {
  font-family: var(--font-display);
  font-weight: 900;
  color: var(--red);
  line-height: 1;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums lining-nums;
}.tl-fine-gold {
  color: var(--grey-500);
}.tl-fine-dominant-val {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 48px;
  color: var(--red);
  line-height: 1;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums lining-nums;
}.tl-fine-label {
  font-family: var(--font-mono);
  font-size: 8px;
  color: var(--grey-400);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}/* ── TOTAL ROW ─────────────────────────────────────────────── */
.tl-total-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 20px 0;
  border-top: 3px solid var(--ink);
  margin-top: 0;
}.tl-total-label {
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--grey-500);
}.tl-total-val {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 32px;
  color: var(--red);
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums lining-nums;
}/* ============================================================
   INDUSTRY BASELINE CONTEXT PANEL
   Emotional recovery beat — restores dynamic range before Players
   ============================================================ */
.context-break {
  background: var(--white);
  border-left: 6px solid var(--grey-300, #bbb);
  border-top: 1px solid var(--grey-100);
  border-bottom: 1px solid var(--grey-100);
  padding: 48px var(--container-pad) 48px calc(var(--container-pad) + 24px);
  margin: 0;
}
.context-break-inner {
  max-width: 720px;
}
.context-label {
  display: inline-block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.65rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 12px;
}
.context-stat {
  font-family: var(--font-mono);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ink);
  margin-bottom: 10px;
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}
.context-stat strong {
  font-weight: 600;
}
.context-source {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--grey-500);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
/* Inline variant — sits inside hero column */
.context-break-inline {
  padding: 28px 0 28px 20px;
  margin: 32px auto 0;
  max-width: 640px;
  border-top: none;
  border-bottom: none;
}
.context-break-inline .context-break-inner {
  max-width: 100%;
}

/* ============================================================
   KEY PLAYERS SECTION
   ============================================================ */
.players-section {
  margin: 0 auto;
  padding: var(--section-gap) var(--container-pad);
  background: var(--grey-900);
  max-width: 100%;
}.players-section .section-header {
  max-width: var(--container);
  margin: 0 auto 36px;
}.players-section .section-title {
  color: var(--newsprint);
}.players-section .section-num {
  color: var(--grey-500);
  border-color: var(--grey-700);
}.players-section .section-tag {
  color: var(--grey-500);
  border-color: rgba(201,168,76,0.4);
}.players-section .section-rule {
  background: var(--grey-700);
}/* ── GRID: 3 + 2 ───────────────────────────────────────────── */
.players-grid {
  max-width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.player-card {
  background: var(--grey-800);
  display: grid;
  grid-template-columns: 280px 1fr;
  transition: transform var(--transition-mid);
  position: relative;
  overflow: hidden;
}.player-card:hover {
  transform: translateY(-2px);
}/* Severity left border */
.player-severe {
  border-left: 3px solid var(--red);
}.player-moderate {
  border-left: 3px solid var(--grey-500);
}.player-unrated {
  border-left: 3px solid var(--grey-700);
}/* ── PHOTO AREA ────────────────────────────────────────────── */
.player-photo {
  background: linear-gradient(160deg, #1c1c1c 0%, #111 60%, #0a0a0a 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
  min-height: unset;
  height: 100%;
}/* Cards with real photo: square aspect ratio */
.player-photo.player-photo-img {
  display: block;
  min-height: 0;
  aspect-ratio: unset;
  height: 100%;
  overflow: hidden;
}
/* Initials-only cards: fills height in horizontal layout */
.player-photo:not(.player-photo-img) {
  aspect-ratio: unset;
  height: 100%;
}
.player-photo::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 3px,
    rgba(255,255,255,0.012) 3px,
    rgba(255,255,255,0.012) 4px
  );
  pointer-events: none;
}.player-initials {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 72px;
  color: rgba(255,255,255,0.06);
  letter-spacing: -3px;
  line-height: 1;
  user-select: none;
  position: relative;
  z-index: 1;
}.player-photo-tag {
  position: absolute;
  bottom: 10px;
  left: 12px;
  font-family: var(--font-mono);
  font-size: 9px;
  color: rgba(255,255,255,0.3);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  z-index: 2;
}.player-photo-tag-alert {
  color: var(--red) !important;
  font-weight: 600;
}/* ── RISK BADGE ────────────────────────────────────────────── */
.player-risk-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  font-family: var(--font-display);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 9px;
  z-index: 3;
}.badge-severe {
  background: var(--red);
  color: var(--white);
}.badge-moderate {
  background: var(--grey-500);
  color: var(--white);
}.badge-unrated {
  background: var(--grey-700);
  color: var(--grey-400);
}/* ── CARD BODY ─────────────────────────────────────────────── */
.player-body {
  padding: 32px 28px 32px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
  min-width: 0;        /* prevent grid blowout — child must be able to shrink */
  overflow: hidden;
}.player-name {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(16px, 1.6vw, 20px);
  color: var(--white);
  line-height: 1.2;
  margin-bottom: 4px;
  letter-spacing: -0.3px;
}
/* Linked player name */
.player-name-link {
  color: var(--white);
  text-decoration: none;
  transition: color 0.15s ease;
}
.player-name-link:hover {
  color: var(--red);
}
.player-name-link:focus-visible {
  outline: 2px solid var(--grey-500);
  outline-offset: 2px;
}
/* Linked player photo area */
.player-photo-link {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
.player-photo-link:hover {
  filter: brightness(1.1);
}
.player-photo-link:focus-visible {
  outline: 2px solid var(--grey-500);
  outline-offset: -2px;
}
.player-role {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 700;
  color: var(--grey-500);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.4;
  margin-bottom: 14px;
  word-break: break-word;
  overflow-wrap: break-word;
}.player-moderate .player-role {
  color: var(--grey-500);
}.player-unrated  .player-role {
  color: var(--grey-500);
}.player-divider {
  width: 28px;
  height: 2px;
  background: var(--red);
  margin-bottom: 14px;
}.player-divider-gold {
  background: var(--grey-500);
}.player-divider-grey {
  background: var(--grey-700);
}.player-bio {
  font-family: var(--font-mono);
  font-size: 11px;
  line-height: 1.6;
  color: var(--grey-400);
  margin-bottom: 20px;
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}/* ── FLAG BOX ──────────────────────────────────────────────── */
.player-flag {
  background: rgba(204,0,0,0.08);
  border-left: 3px solid var(--red);
  padding: 16px 20px;
  margin-bottom: 20px;
  font-family: var(--font-mono);
  font-size: 10.5px;
  line-height: 1.7;
  color: var(--grey-300, #ccc);
  flex: 1;
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}.player-flag strong {
  color: var(--white);
}.player-flag em {
  color: var(--newsprint);
  font-style: italic;
}.player-flag-neutral {
  background: rgba(255,255,255,0.03);
  border-left-color: var(--grey-700);
}.player-flag-label {
  display: block;
  font-family: var(--font-display);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 6px;
}.player-flag-neutral .player-flag-label {
  color: var(--grey-500);
}/* ── CONNECTION LINE ───────────────────────────────────────── */
.player-connection {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--grey-400-inv);
  line-height: 1.6;
  border-top: 1px solid var(--grey-700);
  padding-top: 10px;
  margin-top: auto;
}/* ============================================================
   PENALTY CHART
   ============================================================ */
.penalty-chart-panel {
  margin-top: 36px;
  padding: 28px 24px 20px;
  background: var(--white);
  border: 1px solid var(--grey-100);
}.penalty-chart-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 6px;
}.penalty-chart-title {
  font-family: var(--font-body);
  font-size: clamp(13px, 1.4vw, 15px);
  font-weight: 700;
  color: var(--ink);
}.penalty-chart-sub {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--grey-400);
}.penalty-chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 16px;
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--grey-500);
}.penalty-chart-legend span {
  display: flex;
  align-items: center;
  gap: 5px;
}.penalty-chart-swatch {
  width: 10px;
  height: 10px;
  border-radius: 2px;
  display: inline-block;
}.penalty-chart-wrap {
  position: relative;
  width: 100%;
  min-height: 200px;
}

/* CSS Penalty Bar Chart */
.penalty-bars {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 16px 0;
}
.penalty-bar-row {
  display: grid;
  grid-template-columns: 70px 130px 1fr 100px;
  align-items: center;
  gap: 10px;
  transition: opacity 0.3s ease, max-height 0.3s ease;
  max-height: 60px;
  overflow: hidden;
}
.penalty-bar-row.hidden {
  opacity: 0;
  max-height: 0;
  margin: 0;
  padding: 0;
}
.penalty-bar-date {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--grey-400);
  letter-spacing: 0.03em;
}
.penalty-bar-source {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink);
}
.proximity-tag {
  font-weight: 400;
  font-style: italic;
  text-transform: none;
  color: var(--grey-400);
  margin-left: 4px;
  font-size: 9px;
}
.penalty-bar-track {
  height: 28px;
  background: var(--grey-50, #f5f5f5);
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.penalty-bar-fill {
  height: 100%;
  border-radius: 2px;
  transition: width 0.5s ease;
  min-width: 3px;
}
.bar-finra { background: #CC0000; }
.bar-cboe  { background: #C9A84C; }
.bar-sec   { background: #888; }
.penalty-bar-val {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  text-align: right;
  color: var(--ink);
}
.penalty-bar-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-top: 12px;
  border-top: 2px solid var(--ink);
  margin-top: 4px;
}
.penalty-bar-total-label {
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.penalty-bar-total-val {
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 900;
  color: var(--red);
}.penalty-chart-toggle {
  display: flex;
  gap: 6px;
  margin-top: 14px;
}.penalty-chart-btn {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 700;
  padding: 4px 12px;
  background: transparent;
  color: var(--grey-500);
  border: 1px solid var(--grey-200);
  cursor: pointer;
  transition: all 0.15s ease;
}.penalty-chart-btn:hover {
  color: var(--ink);
  border-color: var(--grey-400);
}.penalty-chart-btn.active {
  background: var(--ink);
  color: var(--white);
  border-color: var(--ink);
}.penalty-chart-btn:focus-visible {
  outline: 2px solid var(--grey-500);
  outline-offset: 2px;
}

@media (max-width: 600px) {.penalty-chart-wrap {
  min-height: 160px;
}.penalty-bar-row {
  grid-template-columns: 1fr 80px;
  gap: 6px;
}.penalty-bar-date,
.penalty-bar-source {
  grid-column: 1 / -1;
}.penalty-bar-date { display: none; }
.penalty-bar-total-val { font-size: 22px; }
.penalty-chart-panel {
  padding: 20px 16px 16px;
}
}/* ============================================================
   FOLLOW THE MONEY SECTION
   ============================================================ */
.money-section {
  max-width: var(--container);
  margin: 0 auto;
  padding: var(--section-gap) var(--container-pad);
}.money-deck {
  font-family: var(--font-display);
  font-size: clamp(17px, 1.9vw, 22px);
  font-style: normal;
  font-weight: 700;
  color: var(--grey-400-inv);
  line-height: 1.5;
  padding-left: 18px;
  border-left: 4px solid var(--grey-300, #bbb);
  margin-bottom: 40px;
  max-width: 760px;
}/* ── 2×2 GRID ──────────────────────────────────────────────── */
.money-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
}/* ── PANEL BASE ────────────────────────────────────────────── */
.money-panel {
  background: var(--white);
  padding: 36px 32px 36px;
  border: 1px solid var(--grey-100);
  transition: box-shadow var(--transition-mid);
}.money-panel:hover {
  box-shadow: var(--shadow-card-hover);
}.money-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 2px solid var(--ink);
  flex-wrap: wrap;
}.money-panel-title {
  font-family: var(--font-body);
  font-size: clamp(14px, 1.5vw, 17px);
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink);
}.money-panel-body {
  font-family: var(--font-mono);
  font-size: 12px;
  line-height: 1.8;
  color: var(--grey-500);
  margin-bottom: 14px;
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}/* Risk panel — red tint */
.panel-risk {
  background: var(--red-tint);
  border: 1px solid var(--red-border);
  border-top: 4px solid var(--red);
}/* ── STATS ROW ─────────────────────────────────────────────── */
.money-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  margin: 20px 0;
  background: var(--grey-100);
}.money-stat {
  background: var(--white);
  padding: 14px 12px;
  text-align: center;
}.money-stat-val {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(20px, 2.2vw, 28px);
  color: var(--red);
  line-height: 1;
  letter-spacing: -0.5px;
  margin-bottom: 4px;
}.money-stat-warn {
  color: var(--grey-500);
}.money-stat-bench {
  color: var(--grey-400);
}.money-stat-sm {
  font-size: clamp(18px, 2vw, 24px);
  color: var(--ink);
}.money-stat-label {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--grey-400);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.3;
}/* ── RETURN COMPARISON BAR ─────────────────────────────────── */
.return-compare {
  margin-top: 20px;
}.return-bar-label {
  display: flex;
  justify-content: space-between;
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--grey-500);
  margin-bottom: 5px;
}.return-pct {
  font-weight: 600;
}.return-pct.red {
  color: var(--red);
}.return-pct.grey {
  color: var(--grey-400);
}.return-bar-track {
  width: 100%;
  height: 6px;
  background: var(--grey-100);
  overflow: hidden;
}.return-bar-fill {
  height: 100%;
  transition: width 1.2s cubic-bezier(0.4, 0, 0.2, 1);
}.return-bar-fund {
  background: var(--red);
}.return-bar-spy {
  background: var(--grey-200);
}.return-note {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--grey-400);
  margin-top: 12px;
}/* ── CORPORATE STRUCTURE DIAGRAM ───────────────────────────── */
.struct-diagram {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}.struct-node {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--grey-200);
  text-align: center;
  position: relative;
}.struct-person {
  background: var(--grey-900);
  border-color: var(--red);
}.struct-holding {
  background: var(--grey-800);
  border-color: var(--grey-700);
}.struct-adviser {
  background: var(--grey-800);
  border-color: var(--grey-700);
}.struct-master {
  background: var(--grey-700);
  border-color: var(--grey-600, #555);
}.struct-feeder {
  background: var(--grey-800);
  border-color: var(--grey-700);
  flex: 1;
}.struct-label {
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 700;
  color: var(--white);
  margin-bottom: 2px;
}.struct-sub {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--grey-400);
}.struct-arrow {
  font-size: 16px;
  color: var(--red);
  line-height: 1.2;
  text-align: center;
  font-family: var(--font-mono);
  padding: 2px 0;
}.struct-split {
  width: 100%;
}.struct-split-line {
  width: 1px;
  height: 16px;
  background: var(--red);
  margin: 0 auto;
}.struct-split-children {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
}/* ── LEIBOWITZ STRIP ───────────────────────────────────────── */
.leibowitz-strip {
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--grey-100);
  padding: 14px 16px;
  margin-top: 20px;
  border-left: 3px solid var(--grey-500);
}.leibowitz-initial {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 28px;
  color: rgba(0,0,0,0.12);
  flex-shrink: 0;
  line-height: 1;
  letter-spacing: -1px;
}.leibowitz-info {
  flex: 1;
}.leibowitz-name {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 3px;
}.leibowitz-roles {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--grey-500);
  line-height: 1.5;
}.leibowitz-stake {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 22px;
  color: var(--grey-500);
  text-align: right;
  line-height: 1;
  flex-shrink: 0;
}.leibowitz-stake span {
  display: block;
  font-family: var(--font-mono);
  font-size: 8px;
  font-weight: 400;
  color: var(--grey-400);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-top: 2px;
}/* ── RISK BOXES ────────────────────────────────────────────── */
.risk-boxes {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
  margin-top: 20px;
}.risk-box {
  padding: 14px 16px;
  text-align: center;
}.risk-box-red {
  background: rgba(204,0,0,0.08);
  border: 1px solid var(--red-border);
}.risk-box-amber {
  background: rgba(201,168,76,0.06);
  border: 1px solid rgba(201,168,76,0.25);
}.risk-box-val {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(20px, 2vw, 26px);
  color: var(--red);
  line-height: 1;
  letter-spacing: -0.5px;
  margin-bottom: 4px;
}.risk-box-amber .risk-box-val {
  color: var(--grey-500);
}.risk-box-label {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--grey-500);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.3;
}/* ============================================================
   DISCLAIMER / FOOTER
   ============================================================ */
.disclaimer {
  background: var(--grey-100);
  border-top: 1px solid var(--grey-200);
  padding: 28px 0;
}.disclaimer-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--container-pad);
}.disclaimer-left {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}.disclaimer-pub {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 14px;
  color: var(--ink);
  letter-spacing: -0.3px;
}.disclaimer-sep {
  color: var(--grey-200);
}.disclaimer-tag {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--grey-400);
}.disclaimer-text {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--grey-500);
  line-height: 1.8;
  max-width: 860px;
}.disclaimer-link {
  color: var(--red);
  text-decoration: none;
  border-bottom: 1px solid var(--red-border);
  transition: color var(--transition-fast);
}.disclaimer-link:hover {
  color: var(--red-dark);
}/* ── REAL PHOTO STYLES ─────────────────────────────────────── */
.photo-area-img {
  position: relative;
  overflow: hidden;
}.subject-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  filter: grayscale(25%) contrast(1.08);
  display: block;
  transition: filter 0.3s ease;
}.photo-area-img:hover .subject-photo {
  filter: grayscale(0%) contrast(1.05);
}.player-photo-real {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center top;
  filter: grayscale(100%) contrast(1.15) brightness(0.9);
  transition: filter 0.4s ease;
}
/* Duotone red overlay — sits above the greyscale photo */
.player-photo-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(180, 20, 20, 0.28);
  mix-blend-mode: multiply;
  pointer-events: none;
  transition: opacity 0.4s ease;
  z-index: 1;
}
/* On hover: lift the red tint and restore some colour */
.player-photo-img:hover .player-photo-real {
  filter: grayscale(20%) contrast(1.08) brightness(1.0);
}
.player-photo-img:hover::after {
  opacity: 0;
}/* ============================================================
   ACCESSIBILITY: Skip link + focus-visible
   ============================================================ */
.skip-link {
  position: absolute;
  top: -100px;
  left: 16px;
  z-index: 10000;
  background: var(--grey-500);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 700;
  padding: 8px 18px;
  text-decoration: none;
  border-radius: 0 0 4px 4px;
  transition: top 0.15s ease;
}.skip-link:focus {
  top: 0;
  outline: 2px solid var(--grey-500);
  outline-offset: 2px;
}*:focus-visible {
  outline: 2px solid var(--grey-500);
  outline-offset: 2px;
}/* ============================================================
   WCAG AA CONTRAST OVERRIDES — dark backgrounds
   Placed here (after all originals) so cascade order wins.
   --grey-400 (#636363) passes on newsprint/white/grey-100
     but fails on ink (#0A0A0A), grey-900, grey-800, grey-700.
   --grey-500 (#6A6A6A) passes on newsprint/white
     but fails on ink, grey-900 (3.22:1), grey-800 (2.65:1).
   Fix: --grey-400-inv (#A8A8A8) passes on all dark bgs
     (ink: 8.33 · grey-900: 7.32 · grey-800: 6.04 · grey-700: 4.78).
   ============================================================ */

/* grey-400 on ink (masthead) */
.pub-edition {
  color: var(--grey-400-inv);
}.nav-link {
  color: var(--grey-400-inv);
}.hamburger span {
  background: var(--grey-400-inv);
}/* grey-400 on grey-800 (cards, photo captions, struct boxes) */
.photo-caption {
  color: var(--grey-400-inv);
}.player-bio {
  color: var(--grey-400-inv);
}.struct-sub {
  color: var(--grey-400-inv);
}/* grey-400 on grey-700 (badges) */
.badge-unrated {
  color: var(--grey-400-inv);
}/* grey-500 on grey-900 (stats widget, section numbers) */
.stat-label {
  color: var(--grey-400-inv);
}.stat-badge {
  color: var(--grey-400-inv);
}.players-section .section-num {
  color: var(--grey-400-inv);
}/* grey-500 on grey-800 (player cards) */
.player-unrated .player-role {
  color: var(--grey-400-inv);
}.player-flag-neutral .player-flag-label {
  color: var(--grey-400-inv);
}

/* ============================================================
   ANIMATIONS
   ============================================================ */
@keyframes ticker {0% {
  transform: translateX(0);
}100% {
  transform: translateX(-50%);
}
}
@keyframes titleReveal {from {
  opacity: 0;
  transform: translateY(-6px);
}to {
  opacity: 1;
  transform: translateY(0);
}
}
@keyframes tickerLoad {from {
  opacity: 0;
}to {
  opacity: 1;
}
}
@keyframes pulse {0%, 100% {
  opacity: 1;
  transform: scale(1);
}50% {
  opacity: 0.5;
  transform: scale(0.8);
}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1199px) {:root {
  --container-pad: 20px;
}.nav-link {
  padding: 8px 10px;
}.redflag-grid {
  grid-template-columns: repeat(2, 1fr);
}.tl-col-headers {
  grid-template-columns: 120px 1fr 160px;
}.tl-row {
  grid-template-columns: 120px 1fr 160px;
}.tl-fine-dominant-val {
  font-size: 38px;
}.money-stats {
  grid-template-columns: repeat(2, 1fr);
}
}

@media (max-width: 900px) {:root {
  --section-gap: 64px;
  --card-gap: 24px;
  --card-pad: 24px 20px 22px;
}.nav {
  display: none;
}.hamburger {
  display: flex;
}.section-header { margin-bottom: 32px; }
.number-callout { margin-bottom: 36px; }
.context-break { padding: 40px var(--container-pad) 40px calc(var(--container-pad) + 20px); }
.pullquote { padding: 16px 20px; margin-top: 28px; }
.hero-photo-full .subject-photo {
  max-height: 400px;
}.tl-col-headers {
  grid-template-columns: 100px 1fr 130px;
}.tl-row {
  grid-template-columns: 100px 1fr 130px;
}.tl-fine-dominant-val {
  font-size: 30px;
}.money-grid {
  grid-template-columns: 1fr;
}.money-stats {
  grid-template-columns: repeat(4, 1fr);
}

  .player-card {
    grid-template-columns: 1fr;
  }
  .player-photo.player-photo-img {
    aspect-ratio: 1 / 1;
    height: auto;
  }

}

@media (max-width: 600px) {:root {
  --container-pad: 16px;
  --section-gap: 48px;
  --card-gap: 20px;
  --card-pad: 20px 16px 18px;
}.section-header { margin-bottom: 24px; }
.number-callout { margin-bottom: 28px; }
.context-break { padding: 32px var(--container-pad) 32px calc(var(--container-pad) + 16px); }
.pullquote { padding: 14px 16px; margin-top: 20px; }
.player-body { padding: 20px 18px 22px; }.pub-divider, .pub-meta {
  display: none;
}.pub-title {
  font-size: clamp(28px, 8vw, 42px);
}.hero-photo-full .subject-photo {
  max-height: 320px;
}.hero-context-bar {
  flex-direction: column;
  gap: 8px;
}.ticker-item {
  font-size: 11px;
  padding: 0 36px 0 0;
}.redflag-grid {
  grid-template-columns: 1fr;
}.rf-fine-pct {
  font-size: 42px;
}.rf-fine-dominant {
  font-size: 30px;
}.tl-col-headers {
  display: none;
}.tl-row {
  grid-template-columns: 1fr;
  grid-template-rows: auto auto auto;
  gap: 4px;
  padding: 16px 0 16px 14px;
  border-left: 3px solid var(--grey-100);
  margin-left: 0;
}.tl-row::before {
  left: -3px;
  width: 3px;
}.tl-date {
  font-size: 10px;
  padding-right: 0;
  order: -1;
}.tl-role {
  padding: 0;
}.tl-fine {
  display: flex;
  align-items: baseline;
  flex-direction: row;
  gap: 8px;
  text-align: left;
  padding-left: 0;
  padding-top: 4px;
}.tl-fine-none {
  font-size: 0;
  line-height: 0;
  height: 0;
  overflow: hidden;
  padding: 0;
}.tl-fine-dominant-val {
  font-size: 28px;
}.tl-fine-amt {
  font-size: 14px !important;
}.tl-fine-label {
  font-size: 8px;
}.tl-total-val {
  font-size: 24px;
}.players-grid {
  grid-template-columns: 1fr;
}.money-panel {
  padding: 20px 18px 24px;
}.risk-boxes {
  grid-template-columns: repeat(2, 1fr);
}.leibowitz-strip {
  flex-wrap: wrap;
}.struct-split-children {
  grid-template-columns: 1fr;
}
}
/* Duplicate :root token block REMOVED — was overriding tabloid tokens.
   All tokens are defined once at the top of this file. */
/* ============================================================
   MASTHEAD — shared with index.html
   ============================================================ */
.masthead {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--ink);
  border-bottom: var(--rule-masthead);
  box-shadow: var(--shadow-masthead);
}.pub-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(32px, 5.5vw, 64px);
  letter-spacing: -1.5px;
  line-height: 1;
  color: var(--white);
  white-space: nowrap;
  position: relative;
  padding-bottom: 6px;
  text-decoration: none;
}.pub-edition {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--grey-400-inv);
}.nav-link {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 700;
  color: var(--grey-400-inv);
  text-decoration: none;
  padding: 8px 14px;
  position: relative;
  transition: color var(--transition-fast);
  white-space: nowrap;
}.nav-link.active-page {
  color: var(--grey-500);
}.nav-link.active-page::after {
  transform: scaleX(1);
  background: var(--grey-500);
}.nav-link.back-home {
  color: var(--grey-500);
  border: 1px solid rgba(201,168,76,0.3);
  padding: 6px 14px;
  margin-left: 8px;
  transition: all var(--transition-fast);
}.nav-link.back-home:hover {
  color: var(--white);
  background: rgba(100,100,100,0.08);
  border-color: var(--grey-500);
}.nav-link.back-home::after {
  display: none;
}/* ============================================================
   VAULT HERO
   ============================================================ */
.vault-hero {
  background: var(--ink);
  border-bottom: 1px solid var(--grey-800);
  padding: 56px var(--container-pad) 52px;
}.vault-hero-inner {
  max-width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 48px;
  align-items: start;
}.vault-label {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}.vault-label-line {
  width: 32px;
  height: 2px;
  background: var(--grey-500);
  flex-shrink: 0;
}.vault-label-text {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--grey-500);
}.vault-title {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(36px, 5vw, 72px);
  letter-spacing: -0.02em;
  text-transform: uppercase;
  line-height: 0.95;
  color: var(--white);
  margin-bottom: 20px;
}.vault-title span {
  color: var(--grey-500);
}.vault-desc {
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 1.8;
  color: var(--grey-400);
  max-width: 560px;
}/* Methodology box */
.vault-methodology {
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--grey-700);
  border-left: 3px solid var(--grey-500);
  padding: 20px;
  align-self: start;
}.vault-meth-title {
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--grey-500);
  margin-bottom: 12px;
}.vault-meth-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}.vault-meth-list li {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--grey-400);
  line-height: 1.5;
  padding-left: 14px;
  position: relative;
}.vault-meth-list li::before {
  content: '◆';
  position: absolute;
  left: 0;
  font-size: 6px;
  color: var(--grey-500);
  top: 4px;
}/* Stats strip */
.vault-stats-strip {
  max-width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--grey-800);
  margin-top: 40px;
}.vault-stat {
  padding: 16px 0;
  border-right: 1px solid var(--grey-800);
  text-align: center;
}.vault-stat:last-child {
  border-right: none;
}.vault-stat-val {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 28px;
  color: var(--grey-500);
  letter-spacing: -0.5px;
  line-height: 1;
  margin-bottom: 4px;
}.vault-stat-label {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--grey-500);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}/* ============================================================
   FILTER BAR
   ============================================================ */
.filter-bar {
  background: var(--white);
  border-bottom: 1px solid var(--grey-100);
  position: sticky;
  top: 78px;
  z-index: 100;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}.filter-bar-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--container-pad);
  display: flex;
  align-items: center;
  gap: 0;
  overflow-x: auto;
  scrollbar-width: none;
}.filter-bar-inner::-webkit-scrollbar {
  display: none;
}.filter-label {
  font-family: var(--font-body);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--grey-400);
  padding: 14px 16px 14px 0;
  white-space: nowrap;
  border-right: 1px solid var(--grey-100);
  margin-right: 8px;
  flex-shrink: 0;
}.filter-btn {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 700;
  color: var(--grey-500);
  background: none;
  border: none;
  padding: 14px 16px;
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--transition-fast);
  position: relative;
  flex-shrink: 0;
}.filter-btn::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 16px;
  right: 16px;
  height: 2px;
  background: var(--red);
  transform: scaleX(0);
  transition: transform 0.2s ease;
}.filter-btn:hover {
  color: var(--ink);
}.filter-btn:hover::after {
  transform: scaleX(1);
}.filter-btn.active {
  color: var(--red);
  font-weight: 900;
}.filter-btn.active::after {
  transform: scaleX(1);
}.filter-count {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--grey-400);
  background: var(--grey-100);
  padding: 1px 5px;
  margin-left: 4px;
  vertical-align: middle;
}.filter-btn.active .filter-count {
  background: var(--red-tint);
  color: var(--red);
}/* ============================================================
   SOURCE CARDS
   ============================================================ */
.sources-body {
  max-width: var(--container);
  margin: 0 auto;
  padding: 40px var(--container-pad) 60px;
}.sources-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
}/* ── CARD ──────────────────────────────────────────────────── */
.source-card {
  background: var(--white);
  border: 1px solid var(--grey-100);
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--transition-mid), transform var(--transition-mid);
  position: relative;
  overflow: hidden;
}.source-card:hover {
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-2px);
  z-index: 2;
}/* Source number — large ghost behind content */
.source-num-bg {
  position: absolute;
  bottom: -10px;
  right: 8px;
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 96px;
  color: rgba(0,0,0,0.03);
  pointer-events: none;
  user-select: none;
  line-height: 1;
}/* Type colour strip on top */
.source-card[data-type="regulatory"] {
  border-top: 3px solid var(--red);
}.source-card[data-type="court"] {
  border-top: 3px solid #8B0000;
}.source-card[data-type="corporate"] {
  border-top: 3px solid var(--grey-500);
}.source-card[data-type="press"] {
  border-top: 3px solid var(--grey-400);
}.source-card[data-type="financial"] {
  border-top: 3px solid var(--ink);
}.source-card-head {
  padding: 16px 18px 12px;
  border-bottom: 1px solid var(--grey-100);
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}.source-num {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 22px;
  color: var(--red);
  line-height: 1;
  flex-shrink: 0;
}.source-card[data-type="corporate"] .source-num {
  color: var(--grey-500);
}.source-card[data-type="press"]     .source-num {
  color: var(--grey-500);
}.source-card[data-type="financial"] .source-num {
  color: var(--ink);
}.source-type-badge {
  font-family: var(--font-body);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 3px 8px;
  white-space: nowrap;
}.badge-regulatory {
  background: var(--red);
  color: var(--white);
}.badge-court {
  background: #8B0000;
  color: var(--white);
}.badge-corporate {
  background: var(--grey-500);
  color: var(--ink);
}.badge-press {
  background: var(--grey-400);
  color: var(--white);
}.badge-financial {
  background: var(--ink);
  color: var(--white);
}.source-card-body {
  padding: 16px 18px;
  flex: 1;
  position: relative;
  z-index: 1;
}.source-title {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.3;
  margin-bottom: 8px;
}.source-desc {
  font-family: var(--font-mono);
  font-size: 11px;
  line-height: 1.7;
  color: var(--grey-500);
  margin-bottom: 12px;
}.source-ref {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--grey-400);
  margin-bottom: 4px;
}.source-ref strong {
  color: var(--grey-700);
  font-weight: 600;
}.source-card-foot {
  padding: 12px 18px;
  border-top: 1px solid var(--grey-100);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}.source-url {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--grey-400);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
}.source-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--red);
  text-decoration: none;
  border: 1px solid var(--red-border);
  padding: 5px 12px;
  white-space: nowrap;
  transition: all var(--transition-fast);
  flex-shrink: 0;
}.source-btn:hover {
  background: var(--red);
  color: var(--white);
  border-color: var(--red);
}.source-card[data-type="corporate"] .source-btn {
  color: var(--grey-500);
  border-color: rgba(201,168,76,0.4);
}.source-card[data-type="corporate"] .source-btn:hover {
  background: var(--grey-500);
  color: var(--ink);
  border-color: var(--grey-500);
}.source-card[data-type="press"] .source-btn,
.source-card[data-type="financial"] .source-btn {
  color: var(--grey-500);
  border-color: var(--grey-200);
}.source-card[data-type="press"] .source-btn:hover,
.source-card[data-type="financial"] .source-btn:hover {
  background: var(--ink);
  color: var(--white);
  border-color: var(--ink);
}.source-btn-archive {
  color: var(--grey-500) !important;
  border-color: var(--grey-200) !important;
  font-size: 9px;
}.source-btn-archive:hover {
  background: var(--grey-800) !important;
  color: var(--white) !important;
  border-color: var(--grey-800) !important;
}/* Hidden state for filter */
.source-card.hidden {
  display: none;
}/* ============================================================
   DISCLAIMER FOOTER
   ============================================================ */
.disclaimer {
  background: var(--grey-100);
  border-top: 1px solid var(--grey-200);
  padding: 28px 0;
}.disclaimer-pub {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 14px;
  color: var(--ink);
}.disclaimer-link {
  color: var(--red);
  text-decoration: none;
  border-bottom: 1px solid var(--red-border);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1199px) {.sources-grid {
  grid-template-columns: repeat(2, 1fr);
}.vault-hero-inner {
  grid-template-columns: 1fr;
  gap: 32px;
}.vault-methodology {
  max-width: 560px;
}.vault-stats-strip {
  grid-template-columns: repeat(4, 1fr);
}
}

@media (max-width: 900px) {.vault-stats-strip {
  grid-template-columns: repeat(2, 1fr);
}
}

@media (max-width: 600px) {.sources-grid {
  grid-template-columns: 1fr;
}.vault-hero {
  padding: 36px var(--container-pad) 36px;
}.vault-title {
  font-size: clamp(32px, 8vw, 48px);
}.filter-bar-inner {
  gap: 0;
}
}

/* ── SECTION PHOTO BREAK ─────────────────────────────────── */
.section-photo-break {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--container-pad);
  overflow: hidden;
}
.subject-break-img {
  width: 66%;
  height: auto;
  display: block;
  margin: 0 auto;
  filter: grayscale(25%) contrast(1.08);
  transition: filter 0.3s ease;
}
.subject-break-img:hover {
  filter: grayscale(0%) contrast(1.05);
}

/* ============================================================
   UTILITY CLASSES — extracted from inline styles
   ============================================================ */

/* Timeline fine-amount size variants */
.tl-fine-amt-lg   { font-size: 28px; }
.tl-fine-amt-md   { font-size: 28px; color: var(--red); }
.tl-fine-amt-sm   { font-size: 28px; color: var(--red); }

/* Inline text accent (red highlight) */
.text-red         { color: var(--red); }

/* Context-bar source link */
.context-link {
  color: var(--red);
  text-decoration: none;
  border-bottom: 1px solid var(--red-border);
}

/* Agency logos — inline SVG */
.agency-logo {
  width: 18px;
  height: 18px;
  display: inline-block;
  vertical-align: middle;
  margin-right: 2px;
  flex-shrink: 0;
}
.agency-finra { color: #CC0000; }
.agency-sec   { color: #555; }
.agency-nasdaq { color: #0B6CDA; }
.agency-cboe  { color: #C9A84C; }

/* Context-specific logo sizing */
.stamp .agency-logo { width: 14px; height: 14px; margin-right: 3px; vertical-align: -1px; }
.tl-fine-label .agency-logo { width: 14px; height: 14px; margin-right: 3px; vertical-align: -2px; }
.source-card-head .agency-logo { width: 20px; height: 20px; margin-right: 4px; }

/* Return-comparison bar widths */
.return-bar-w43   { width: 43%; }
.return-bar-w100  { width: 100%; }

/* Return-bar spacing */
.return-bar-label-gap { margin-top: 8px; }

/* Performance chart image */
.perf-chart-wrap {
  margin-top: 20px;
  border: 1px solid var(--grey-100);
  border-radius: 4px;
  overflow: hidden;
}
.perf-chart-img { width: 100%; height: auto; display: block; }
.perf-chart-caption {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--grey-400);
  padding: 8px 12px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Screen-reader only (visually hidden, accessible to AT) */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
