/* PEP/NEWS — self-hosted Google Fonts (latin subset).
   Source: https://fonts.googleapis.com/css2?family=EB+Garamond...
   Removes runtime fetch to fonts.gstatic.com, killing the
   IP-leak that German GDPR rulings flagged. */

/* latin */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ebgaramond_v32_SlGWmQSNjdsmc35JDF1K5GRweDs1ZyHKpWg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/ebgaramond_v32_SlGWmQSNjdsmc35JDF1K5GRweDs1ZyHKpWg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/ebgaramond_v32_SlGWmQSNjdsmc35JDF1K5GRweDs1ZyHKpWg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin */
@font-face {
  font-family: 'EB Garamond';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/ebgaramond_v32_SlGWmQSNjdsmc35JDF1K5GRweDs1ZyHKpWg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/ebgaramond_v32_SlGUmQSNjdsmc35JDF1K5GR1SDk_YAPI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/ebgaramond_v32_SlGUmQSNjdsmc35JDF1K5GR1SDk_YAPI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/ebgaramond_v32_SlGUmQSNjdsmc35JDF1K5GR1SDk_YAPI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin */
@font-face {
  font-family: 'EB Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/ebgaramond_v32_SlGUmQSNjdsmc35JDF1K5GR1SDk_YAPI.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/jetbrainsmono_v24_tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwgknk-4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/jetbrainsmono_v24_tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwgknk-4.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/sourceserif4_v14_vEF02_tTDB4M7-auWDN0ahZJW1ge6NmXpVAHV83Bfb_US2D2QYxoUKIkn98pRl9tDMQCjDDUXmAz.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/sourceserif4_v14_vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kDXr4Y3qwzQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/sourceserif4_v14_vEFF2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6kDXr4Y3qwzQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

    /* ──────────────────────────────────────────────────────────────────
       PEP/NEWS — Broadsheet theme (2026-05-07)
       Newspaper-of-record aesthetic: parchment, oxblood, italic serif.
       Data bindings unchanged from the prior dark theme — only styling.
       ────────────────────────────────────────────────────────────── */
    *,*::before,*::after { box-sizing: border-box; }
    html, body { margin: 0; padding: 0; }
    :root {
      --bg: #F4EBD8;            /* parchment */
      --bg-soft: #EFE5CD;       /* slightly toasted, used for cards/wells */
      --bg-deep: #E8DBBE;       /* deepest paper tone for hover/selected */
      --text: #1A1818;          /* warm near-black */
      --text-dim: #6B6056;      /* taupe-grey */
      --text-faint: #8B7E70;    /* fine print */
      --accent: #8B2E2E;        /* oxblood — frame, anchors, dingbats */
      --accent-dark: #6B1F1F;   /* hover state */
      --rule: #C8B89A;          /* warm hairline */
      --rule-strong: #8B7E70;   /* stronger rule */
      --link-underline: rgba(139, 46, 46, 0.35);
    }
    /* Subtle paper grain — single repeating SVG, 3% opacity */
    body::before {
      content: '';
      position: fixed; inset: 0; pointer-events: none; z-index: 0;
      background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.55, 0 0 0 0 0.45, 0 0 0 0 0.30, 0 0 0 0.06 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
      background-size: 240px 240px;
      mix-blend-mode: multiply;
      opacity: 0.55;
    }
    body {
      font-family: 'Source Serif 4', 'Source Serif Pro', 'Georgia', 'Times New Roman', serif;
      background: var(--bg);
      color: var(--text);
      font-size: 17px;
      line-height: 1.55;
      max-width: 1240px;
      margin: 0 auto;
      padding: 0 28px 80px;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
      position: relative;
    }
    main, header, section, .ticker, .hero, .features, .more, .footer { position: relative; z-index: 1; }
    a {
      color: var(--text);
      text-decoration: none;
      transition: color 0.18s ease;
    }
    a:hover { color: var(--accent); }
    *:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
    .sr-only {
      position: absolute !important;
      width: 1px; height: 1px;
      padding: 0; margin: -1px;
      overflow: hidden; clip: rect(0,0,0,0);
      white-space: nowrap; border: 0;
    }
    .skip-link {
      position: absolute; top: -100px; left: 14px;
      background: var(--accent); color: var(--bg); padding: 10px 16px;
      font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase;
      font-size: 12px; z-index: 1000;
      transition: top 0.18s ease;
      font-family: 'EB Garamond', Georgia, serif;
    }
    .skip-link:focus { top: 14px; color: var(--bg); }

    /* MASTHEAD — image-based, centered. Logo carries vol/no/edition lines. */
    .masthead {
      padding: 36px 0 18px;
      text-align: center;
      border-bottom: 3px double var(--accent);
      margin-bottom: 0;
    }
    .masthead-img {
      display: block;
      width: 100%;
      max-width: 760px;
      margin: 0 auto;
      height: auto;
    }
    .masthead a.brand-link { display: block; line-height: 0; }
    .masthead-edition {
      font-family: 'EB Garamond', Georgia, serif;
      font-size: 11px;
      letter-spacing: 0.3em;
      color: var(--text-dim);
      text-transform: uppercase;
      margin: 14px 0 0;
      font-weight: 500;
    }
    .masthead-edition strong { color: var(--accent); font-weight: 600; }

    /* TICKER — small-caps stat strip, like the bottom of a market page.
       Slow scroll (240s/cycle) so eyes can actually read it; larger type
       so it reads as editorial copy not a marquee. */
    .ticker {
      background: transparent;
      border-bottom: 1px solid var(--rule);
      color: var(--text);
      font-family: 'EB Garamond', Georgia, serif;
      font-size: 18px;
      font-weight: 500;
      padding: 18px 0;
      overflow: hidden;
      white-space: nowrap;
      letter-spacing: 0.10em;
      margin: 0 0 36px;
      text-transform: uppercase;
    }
    .ticker-inner {
      display: inline-block;
      padding-left: 100%;
      animation: tscroll 240s linear infinite;
      will-change: transform;
      transform: translateZ(0);    /* GPU layer = no sub-pixel blur */
      backface-visibility: hidden;
    }
    .ticker:hover .ticker-inner { animation-play-state: paused; }
    .ticker span { padding: 0 36px; }
    .ticker span::before { content: '❦ '; color: var(--accent); font-style: italic; letter-spacing: 0; margin-right: 6px; }
    @keyframes tscroll {
      from { transform: translate3d(0, 0, 0); }
      to { transform: translate3d(-100%, 0, 0); }
    }
    @media (max-width: 880px) {
      .ticker { font-size: 16px; padding: 14px 0; }
      .ticker-inner { animation-duration: 180s; }
    }

    /* HERO — image full, then italic serif headline below it on parchment */
    .hero {
      position: relative;
      margin: 28px 0 44px;
      background: transparent;
      text-align: center;
    }
    .hero .img-wrap {
      display: block;
      position: relative;
      aspect-ratio: 16/9;
      max-width: 1080px;
      margin: 0 auto;
      overflow: hidden;
      background: var(--bg-soft);
      border: 1px solid var(--rule);
    }
    .hero .img-wrap img {
      width: 100%; height: 100%;
      object-fit: cover; display: block;
      transition: transform 0.6s ease;
    }
    .hero:hover .img-wrap img { transform: scale(1.015); }
    .hero .body {
      position: static;
      padding: 28px 24px 0;
      max-width: 920px;
      margin: 0 auto;
    }
    .hero .kicker {
      font-family: 'EB Garamond', Georgia, serif;
      font-size: 11px;
      letter-spacing: 0.32em;
      color: var(--accent);
      text-transform: uppercase;
      font-weight: 600;
      margin-bottom: 14px;
    }
    .hero h1, .hero a.headline {
      display: block;
      font-family: 'EB Garamond', 'Adobe Caslon Pro', Georgia, serif;
      font-style: italic;
      font-size: 56px;
      font-weight: 500;
      letter-spacing: -0.01em;
      line-height: 1.06;
      color: var(--text);
      margin: 0 0 18px;
      text-transform: none;
    }
    .hero a.headline:hover { color: var(--accent); }
    .hero .gloss {
      font-family: 'EB Garamond', Georgia, serif;
      font-style: italic;
      font-size: 19px;
      color: var(--text-dim);
      max-width: 680px;
      margin: 0 auto 14px;
      font-weight: 400;
      line-height: 1.45;
    }
    .hero .source {
      font-family: 'EB Garamond', Georgia, serif;
      font-size: 11px;
      letter-spacing: 0.28em;
      color: var(--text-faint);
      text-transform: uppercase;
      font-weight: 600;
    }
    .hero.no-image .img-wrap { display: none; }
    .hero.no-image .body { padding: 32px 24px 0; }

    /* PLAY-ICON OVERLAY for video stories — paper-stamp circle in oxblood */
    .play-overlay {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      pointer-events: none;
      z-index: 1;
    }
    .play-overlay::before {
      content: '';
      width: 78px; height: 78px;
      border-radius: 50%;
      background: var(--accent);
      box-shadow: 0 6px 22px rgba(26, 24, 24, 0.35);
    }
    .play-overlay::after {
      content: '';
      position: absolute;
      width: 0; height: 0;
      border-left: 22px solid var(--bg);
      border-top: 14px solid transparent;
      border-bottom: 14px solid transparent;
      margin-left: 6px;
    }
    .feat .play-overlay::before { width: 54px; height: 54px; }
    .feat .play-overlay::after { border-left-width: 15px; border-top-width: 10px; border-bottom-width: 10px; margin-left: 4px; }

    /* SECTION HEADERS — small-caps serif with hairline rule */
    .features-h, .more-h {
      font-family: 'EB Garamond', Georgia, serif;
      font-size: 13px;
      letter-spacing: 0.32em;
      color: var(--text-dim);
      text-transform: uppercase;
      margin: 0 0 22px;
      padding-bottom: 14px;
      border-bottom: 1px solid var(--rule);
      font-weight: 600;
      text-align: center;
    }
    .features-h::before, .more-h::before {
      content: '— ';
      color: var(--accent);
      font-style: italic;
    }
    .features-h::after, .more-h::after {
      content: ' —';
      color: var(--accent);
      font-style: italic;
    }
    .features {
      display: grid;
      grid-template-columns: repeat(6, 1fr);   /* 6-col base; cards span 2 (standard) or 3-4 (wide) */
      grid-auto-rows: auto;
      gap: 22px;
      margin-bottom: 36px;
    }
    .feat {
      display: flex;
      flex-direction: column;
      background: transparent;
      border: none;
      grid-column: span 2;
      padding-bottom: 6px;
    }
    .feat--wide { grid-column: span 3; }
    .feat--hero-row { grid-column: span 6; }
    .feat .img-wrap {
      position: relative;
      display: block;
      aspect-ratio: 16/10;
      overflow: hidden;
      background: var(--bg-soft);
      border: 1px solid var(--rule);
    }
    .feat--wide .img-wrap { aspect-ratio: 16/9; }
    .feat .img-wrap img {
      width: 100%; height: 100%;
      object-fit: cover; display: block;
      filter: saturate(0.92);   /* gentle desaturation = old-paper feel */
      transition: transform 0.45s ease, filter 0.25s ease;
    }
    .feat:hover .img-wrap img { transform: scale(1.03); filter: saturate(1); }
    .feat .body { padding: 16px 0 0; }
    .feat--wide .body { padding: 20px 0 0; }
    .feat .kind-tag {
      font-family: 'EB Garamond', Georgia, serif;
      font-size: 11px;
      letter-spacing: 0.28em;
      color: var(--accent);
      font-weight: 600;
      margin-bottom: 10px;
      text-transform: uppercase;
    }
    .feat a.headline {
      display: block;
      font-family: 'EB Garamond', 'Adobe Caslon Pro', Georgia, serif;
      font-style: italic;
      font-size: 22px;
      font-weight: 500;
      line-height: 1.18;
      letter-spacing: -0.005em;
      text-transform: none;
      color: var(--text);
      margin-bottom: 10px;
    }
    .feat--wide a.headline { font-size: 28px; line-height: 1.14; }
    .feat a.headline:hover { color: var(--accent); }
    /* Anchored — peptide name detected & linked to RV. Goes oxblood + dingbat. */
    .feat.anchored a.headline { color: var(--accent); }
    .feat.anchored a.headline::before {
      content: '✦  ';
      color: var(--accent);
      font-style: normal;
      font-size: 0.85em;
      vertical-align: 0.06em;
    }
    .feat.anchored a.headline:hover { color: var(--accent-dark); }
    .feat .blurb {
      font-family: 'Source Serif 4', 'Source Serif Pro', Georgia, serif;
      font-size: 14.5px;
      color: var(--text-dim);
      line-height: 1.55;
      margin: 0 0 12px;
      font-weight: 400;
    }
    .feat--wide .blurb { font-size: 16px; line-height: 1.6; }
    .feat .source {
      font-family: 'EB Garamond', Georgia, serif;
      font-size: 11px;
      letter-spacing: 0.26em;
      color: var(--text-faint);
      text-transform: uppercase;
      font-weight: 600;
    }
    .feat.no-image .img-wrap { display: none; }
    /* Inline peptide-anchor — oxblood, italic, hairline underline */
    .pep-anchor {
      color: var(--accent);
      font-weight: 600;
      font-style: italic;
      border-bottom: 1px solid var(--link-underline);
      transition: color 0.15s ease, border-color 0.15s ease;
    }
    .pep-anchor:hover {
      color: var(--accent-dark);
      border-bottom-color: var(--accent);
    }
    .feat a.headline .pep-anchor { font-style: italic; }

    /* PULL-QUOTE divider — italic serif blockquote between sections */
    .pull-divider {
      border-top: 1px solid var(--rule);
      border-bottom: 1px solid var(--rule);
      padding: 32px 0 28px;
      margin: 16px 0 44px;
      text-align: center;
      position: relative;
    }
    .pull-divider::before, .pull-divider::after {
      content: '';
      display: block;
      height: 1px;
      background: var(--rule);
      width: 60%;
      margin: 6px auto;
    }
    .pull-divider blockquote {
      font-family: 'EB Garamond', 'Adobe Caslon Pro', Georgia, serif;
      font-size: 26px;
      font-weight: 500;
      font-style: italic;
      color: var(--text);
      letter-spacing: -0.005em;
      line-height: 1.35;
      margin: 14px auto;
      max-width: 760px;
    }
    .pull-divider blockquote::before {
      content: '“';
      color: var(--accent);
      font-style: italic;
      font-size: 1.6em;
      line-height: 0;
      vertical-align: -0.25em;
      margin-right: 0.05em;
    }
    .pull-divider blockquote::after {
      content: '”';
      color: var(--accent);
      font-style: italic;
      font-size: 1.6em;
      line-height: 0;
      vertical-align: -0.25em;
      margin-left: 0.05em;
    }
    .pull-divider .attr {
      display: block;
      font-family: 'EB Garamond', Georgia, serif;
      font-size: 11px;
      letter-spacing: 0.32em;
      color: var(--text-faint);
      text-transform: uppercase;
      margin-top: 14px;
      font-style: normal;
      font-weight: 600;
    }

    /* MORE — two-column dense list, hairline rules between */
    .more {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0 56px;
    }
    .more ul {
      list-style: none;
      padding: 0; margin: 0;
    }
    .more li {
      padding: 16px 0;
      border-bottom: 1px solid var(--rule);
    }
    .more li:last-child { border-bottom: none; }
    .more li.has-blurb { padding: 20px 0 22px; }
    .more li a.headline {
      display: block;
      font-family: 'EB Garamond', 'Adobe Caslon Pro', Georgia, serif;
      font-style: italic;
      font-size: 19px;
      font-weight: 500;
      line-height: 1.22;
      letter-spacing: -0.005em;
      text-transform: none;
      color: var(--text);
      margin-bottom: 6px;
    }
    .more li a.headline:hover { color: var(--accent); }
    .more li.anchored a.headline { color: var(--accent); }
    .more li.anchored a.headline::before {
      content: '✦  ';
      color: var(--accent);
      font-style: normal;
      font-size: 0.85em;
    }
    .more li.anchored a.headline:hover { color: var(--accent-dark); }
    .more li .blurb {
      font-family: 'Source Serif 4', 'Source Serif Pro', Georgia, serif;
      font-size: 14px;
      color: var(--text-dim);
      line-height: 1.55;
      margin: 6px 0 6px;
      font-weight: 400;
    }
    .more li .source {
      font-family: 'EB Garamond', Georgia, serif;
      font-size: 11px;
      letter-spacing: 0.26em;
      color: var(--text-faint);
      text-transform: uppercase;
      font-weight: 600;
    }

    /* MOBILE */
    @media (max-width: 880px) {
      body { font-size: 16px; padding: 0 18px 50px; }
      .masthead { padding-top: 22px; padding-bottom: 14px; }
      .masthead-img { max-width: 100%; }
      .hero { margin: 24px 0 32px; }
      .hero h1, .hero a.headline { font-size: 32px; }
      .hero .gloss { font-size: 16px; }
      .hero .body { padding: 22px 6px 0; }
      .features { grid-template-columns: 1fr; gap: 28px; }
      .feat { grid-column: span 1 !important; }
      .feat--wide a.headline { font-size: 24px; }
      .feat a.headline { font-size: 21px; }
      .more { grid-template-columns: 1fr; gap: 0; }
      .pull-divider blockquote { font-size: 21px; }
      .play-overlay::before { width: 54px; height: 54px; }
      .play-overlay::after { border-left-width: 15px; border-top-width: 10px; border-bottom-width: 10px; }
    }

    /* FOOTER */
    .footer {
      margin-top: 72px;
      padding: 40px 0 18px;
      border-top: 3px double var(--accent);
      font-family: 'EB Garamond', Georgia, serif;
      font-size: 12px;
      letter-spacing: 0.18em;
      color: var(--text-dim);
      text-transform: uppercase;
      line-height: 1.9;
      text-align: center;
    }
    .footer .promise {
      font-family: 'EB Garamond', 'Adobe Caslon Pro', Georgia, serif;
      font-style: italic;
      font-size: 26px;
      font-weight: 500;
      color: var(--accent);
      letter-spacing: -0.005em;
      margin: 0 0 14px;
      text-transform: none;
    }
    .footer .nav-line { margin-bottom: 18px; letter-spacing: 0.22em; }
    .footer .nav-line a { color: var(--text); font-weight: 600; }
    .footer .nav-line a:hover { color: var(--accent); }
    .footer .masthead-block {
      font-style: normal;
      font-family: 'Source Serif 4', Georgia, serif;
      font-size: 13px;
      letter-spacing: 0.04em;
      color: var(--text-dim);
      margin: 8px auto 18px;
      max-width: 520px;
      text-transform: none;
      line-height: 1.6;
    }
    .footer .masthead-block strong { color: var(--text); }
    .footer .masthead-block a { color: var(--accent-dark); border-bottom: 1px solid var(--link-underline); }
    .footer .ruo {
      max-width: 720px;
      margin: 22px auto 0;
      font-size: 12px;
      color: var(--text-faint);
      letter-spacing: 0.01em;
      text-transform: none;
      font-family: 'Source Serif 4', Georgia, serif;
      font-style: italic;
      line-height: 1.55;
    }

    /* VIDEO MODAL */
    .video-overlay {
      display: none;
      position: fixed; inset: 0;
      background: rgba(26, 24, 24, 0.88);
      z-index: 999;
      align-items: center; justify-content: center;
      padding: 20px;
    }
    .video-overlay.open { display: flex; }
    .video-overlay .frame-wrap {
      width: 100%; max-width: 1080px;
      aspect-ratio: 16/9;
      background: #000;
      border: 1px solid var(--accent);
      box-shadow: 0 30px 80px rgba(26, 24, 24, 0.6);
      position: relative;
    }
    .video-overlay iframe { width: 100%; height: 100%; border: 0; }
    .video-overlay .close-btn {
      position: absolute; top: -42px; right: 0;
      background: none; border: 0; color: var(--bg);
      font-family: 'EB Garamond', Georgia, serif;
      font-size: 13px;
      letter-spacing: 0.28em; text-transform: uppercase; font-weight: 600;
      cursor: pointer; padding: 6px 10px;
    }
    .video-overlay .close-btn:hover { color: var(--accent); }

/* Utility class — replaces inline style on feature card <h3> */
.feat-h { margin: 0; font-weight: inherit; font-size: inherit; line-height: inherit; }

/* Reset browser defaults on blockquote.gloss and blockquote.blurb so the
   citation-chain markup doesn't shift layout vs the prior <p class="gloss">. */
blockquote.gloss, blockquote.blurb {
  margin: 0;
  padding: 0;
  quotes: none;
}
blockquote.gloss > p, blockquote.blurb > p {
  margin: inherit;
}
/* <cite> keeps semantic meaning but we don't want extra italic on top of
   the source span — the broadsheet theme handles its own styling. */
cite { font-style: inherit; }

/* Discreet research-base footer line — peer-reviewed source list */
.footer .research-base {
  font-size: 11px;
  color: var(--text-faint);
  letter-spacing: 0.04em;
  margin: 8px 0 6px;
}
.footer .research-base a {
  color: var(--accent-dark);
  border-bottom: 1px dotted var(--link-underline);
}

/* "As of" freshness line — small, italic, restrained */
.brief-as-of {
  font-family: 'Source Serif 4', Georgia, serif;
  font-style: italic;
  font-size: 13px;
  color: var(--text-dim);
  text-align: center;
  margin: 0 0 18px;
  letter-spacing: 0.02em;
}

/* Pinned "More Headlines" item — Research Vials network anchor.
   Visually identical to surrounding entries; the pin is positional only. */
