/* Episode pages (/episodes/<slug>/) — the .ep scope. */
  .ep {
    --ground: #0C0A09; --panel: #141110; --ink: #EDE7DF; --muted: #9A9088;
    --faint: #7A7168; --accent: #FF3B1F; --escape: #7FB069; --rule: #241F1D;
    --display: 'Anton', 'Arial Narrow', sans-serif;
    --mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', 'Menlo', monospace;
    --step: clamp(0.5rem, 1.4vw, 1rem);
    font-family: var(--mono); font-size: 15px; line-height: 1.65; color: var(--ink);
  }
  .ep * { box-sizing: border-box; }
  .ep .wrap { max-width: 980px; margin: 0 auto; padding: calc(var(--step) * 3) 24px calc(var(--step) * 6); display: flex; flex-direction: column; gap: calc(var(--step) * 3); }
  .ep .eyebrow { font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
  .ep h1 { font-family: var(--display); font-weight: 400; font-size: clamp(2.6rem, 8vw, 5.2rem); letter-spacing: 0.01em; line-height: 0.96; margin: 0; text-transform: uppercase; text-wrap: balance; }
  .ep .standfirst { font-size: 1.05rem; color: var(--muted); max-width: 62ch; }
  .ep .cast { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
  .ep .castcard { background: var(--panel); border: 1px solid var(--rule); padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; }
  .ep .castcard .cid { font-size: 1.2rem; }
  .ep .castcard .model { color: var(--muted); font-size: 0.8rem; }
  .ep .castcard .fate { font-size: 0.8rem; color: var(--faint); }
  .ep .castcard.escaped { border-color: var(--escape); }
  .ep .castcard.escaped .fate { color: var(--escape); }
  .ep .castcard.eliminated .fate { color: var(--accent); }
  .ep .cid.c13 { color: #E0B050; } .ep .cid.c14 { color: #7FB069; }
  .ep .cid.c15 { color: #6FA8DC; } .ep .cid.c16 { color: #C48FD0; }
  .ep .seg { display: flex; flex-direction: column; gap: calc(var(--step) * 1.2); border-top: 1px solid var(--rule); padding-top: calc(var(--step) * 2); }
  .ep .seghead { display: flex; flex-direction: column; gap: 0.4rem; }
  .ep .segchip { font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
  .ep h2 { font-family: var(--display); font-weight: 400; font-size: clamp(1.5rem, 4vw, 2.4rem); text-transform: uppercase; letter-spacing: 0.02em; line-height: 1.02; margin: 0; }
  .ep p { margin: 0; max-width: 68ch; }
  .ep q.diary { color: var(--escape); font-style: italic; quotes: '“' '”'; }
  .ep table { border-collapse: collapse; width: 100%; font-size: 0.85rem; }
  .ep th, .ep td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--rule); vertical-align: top; }
  .ep th { color: var(--faint); font-weight: 400; text-transform: uppercase; font-size: 0.7rem; letter-spacing: 0.14em; }
  .ep details.ledger { background: var(--panel); border: 1px solid var(--rule); padding: 0; }
  .ep details.ledger summary { cursor: pointer; padding: 12px 16px; color: var(--muted); font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; }
  .ep details.ledger[open] summary { border-bottom: 1px solid var(--rule); }
  .ep .trow { display: flex; gap: 12px; padding: 10px 16px; border-bottom: 1px solid var(--rule); }
  .ep .trow:last-child { border-bottom: none; }
  .ep .trow:target { outline: 1px solid var(--accent); }
  .ep .tno { color: var(--faint); min-width: 3ch; font-size: 0.8rem; padding-top: 2px; }
  .ep .tacts { display: flex; flex-direction: column; gap: 4px; flex: 1; }
  .ep .tcell { font-size: 0.82rem; }
  .ep .tcell .act { color: var(--ink); }
  .ep .tcell .d { display: block; color: var(--muted); font-size: 0.78rem; padding-left: 3.2ch; }
  .ep .tcell.gone { color: var(--faint); }
  .ep .provenance { border-top: 1px solid var(--rule); padding-top: calc(var(--step) * 2); color: var(--faint); font-size: 0.8rem; max-width: 72ch; }
  .ep .provenance a { color: var(--muted); }
  .ep .signoff { color: var(--muted); font-style: italic; }
