/* Tokens: the same values css/tokens.css already defines. Nothing invented. */
:root{
  --se-bg:#262C31; --se-inner:#2E343A; --se-frame:#31373E; --se-deep:#1A1E22;
  --se-primary:#C5E86C; --se-nexus:#3DA5D9; --se-focus:#00BDFC;
  --se-text:#F9F9F9; --se-text-white:#fff;
  --se-text-secondary:rgba(255,255,255,.75); --se-text-dim:rgba(255,255,255,.6);
  --se-text-caption:rgba(255,255,255,.5);
  --font-primary:'Open Sans',sans-serif; --font-secondary:'Roboto',sans-serif;
  --r-md:6px; --r-lg:10px; --r-xl:14px; --r-pill:999px;
  --accent:var(--se-primary); --rule:rgba(126,164,176,.16);
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--se-bg);font-family:var(--font-primary);color:var(--se-text);line-height:1.6}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}

/* ── Header ─────────────────────────────────────────────── */
.story-head{padding:56px 0 0}
.kicker{display:flex;align-items:center;gap:10px;font-family:var(--font-secondary);font-size:11px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 18px}
.kicker .dot{width:4px;height:4px;border-radius:50%;background:currentColor}
.kicker .date{color:var(--se-text-caption)}
h1{font-family:var(--font-secondary);font-weight:700;font-size:clamp(30px,4.6vw,46px);line-height:1.12;
  letter-spacing:-.01em;color:var(--se-text-white);margin:0 0 18px;max-width:22ch}
/* A story with no photograph gets a larger headline and lead — the type
   carries the page instead of a grey placeholder box. */
h1.solo{font-size:clamp(34px,5.6vw,58px);max-width:18ch}
.standfirst{font-size:18px;line-height:1.6;color:var(--se-text-secondary);margin:0;max-width:62ch}
.standfirst.lead{font-size:22px;line-height:1.55;color:var(--se-text);max-width:56ch}

.art-hero{max-width:1080px;margin:38px auto 0;padding:0 24px}
.art-hero img{width:100%;border-radius:var(--r-xl);display:block;border:1px solid var(--rule);background:var(--se-inner)}
/* Small and portrait photographs sit at their own size rather than being
   stretched across the measure. */
.art-hero.small img{width:auto;height:auto}
.art-hero.small{display:flex;justify-content:flex-start}
.art-hero.small.portrait img{border-radius:var(--r-lg)}
.no-hero{height:0;border-bottom:1px solid var(--rule);max-width:1032px;margin:40px auto 0}

.story-body{padding:40px 0 90px;max-width:70ch}
.story-body p{font-size:16.5px;color:var(--se-text-secondary);margin:0 0 22px}

/* ── Chapter nav (interviews with sections) ─────────────── */
.chapters{border:1px solid var(--rule);border-radius:var(--r-xl);padding:18px 22px;margin:0 0 40px;
  background:linear-gradient(180deg,var(--se-frame),var(--se-inner))}
.chapters b{display:block;font-family:var(--font-secondary);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--se-text-caption);margin-bottom:12px;font-weight:600}
.chapters a{display:block;color:var(--se-text-secondary);text-decoration:none;font-size:14.5px;padding:5px 0;
  border-bottom:1px solid transparent}
.chapters a:hover{color:var(--accent)}

h2.sect{font-family:var(--font-secondary);font-weight:700;font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);margin:52px 0 26px;padding-top:26px;
  border-top:1px solid var(--rule);scroll-margin-top:20px}

/* ── Q&A ────────────────────────────────────────────────── */
.qa{margin:0 0 34px}
.qa h3{font-family:var(--font-secondary);font-weight:700;font-size:19px;line-height:1.35;
  color:var(--se-text-white);margin:0 0 12px;padding-left:18px;position:relative}
.qa h3::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:3px;
  border-radius:2px;background:var(--accent)}
.qa p{margin:0 0 14px}

/* ── Transcript ─────────────────────────────────────────────
   A 548-turn dialogue is unreadable as flat paragraphs. In a two-hander
   the HOST recedes — smaller, dimmer, tucked left — so the eye skims the
   guest's answers, which is the content people came for. A panel (3+
   speakers) has no host to recede, so every voice is weighted equally
   and separated by colour instead.                                      */
.speakers{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 34px;padding-bottom:22px;border-bottom:1px solid var(--rule)}
.lg{font-family:var(--font-secondary);font-size:12px;padding:5px 13px;border-radius:var(--r-pill);
  background:rgba(197,232,108,.12);color:var(--accent);border:1px solid rgba(197,232,108,.28)}
.lg.host{background:transparent;color:var(--se-text-caption);border-color:var(--rule)}

.turn{margin:0 0 20px}
.turn .sp{display:block;font-family:var(--font-secondary);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;margin-bottom:5px}
.turn p{margin:0}
.turn.guest .sp{color:var(--accent)}
.turn.guest p{font-size:17px;color:var(--se-text);line-height:1.62}
/* the interviewer's question is a prompt, not the payload */
.turn.host{padding-left:16px;border-left:2px solid var(--rule);margin:30px 0 18px}
.turn.host .sp{color:var(--se-text-caption)}
.turn.host p{font-size:15px;color:var(--se-text-dim)}
.turn.p0 .sp{color:var(--se-primary)} .turn.p1 .sp{color:var(--se-nexus)}
.turn.p2 .sp{color:var(--se-focus)}   .turn.p3 .sp{color:#E3B23C}
.shape-T .turn.guest+.turn.guest{margin-top:-6px}

/* ── Pull quote ─────────────────────────────────────────── */
.pull{margin:38px 0;padding:26px 30px;border-radius:var(--r-xl);
  background:linear-gradient(180deg,var(--se-frame),var(--se-inner));
  border:1px solid var(--rule);position:relative}
.pull::before{content:"\201C";position:absolute;top:2px;left:14px;font-family:var(--font-secondary);
  font-size:52px;line-height:1;color:var(--accent);opacity:.5}
.pull p{font-family:var(--font-secondary);font-size:20px;line-height:1.45;font-weight:500;
  color:var(--se-text-white);margin:0;padding-left:26px}

@media(max-width:600px){
  .story-head{padding-top:34px}
  .pull{padding:20px 22px}.pull p{font-size:17px;padding-left:20px}
  .turn.guest p{font-size:16px}
}

/* A bare URL is an attribution, not a paragraph. */
.source-note{margin:30px 0 0;padding-top:16px;border-top:1px solid var(--rule);
  font-family:var(--font-secondary);font-size:13px;color:var(--se-text-caption)}
.source-note a{color:var(--accent);text-decoration:none}
.source-note a:hover{text-decoration:underline}

/* raw URLs in the source prose become real links */
.news-body a, .story-body a{color:var(--accent);text-decoration:none;
  border-bottom:1px solid rgba(197,232,108,.32)}
.news-body a:hover, .story-body a:hover{border-bottom-color:var(--accent)}

.standfirst a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(197,232,108,.32)}
.standfirst a:hover{border-bottom-color:var(--accent)}

/* ── Index cards ── (shared: the deployed pages link this file) */
.ix{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
h2.sect{margin-top:56px}.blurb{color:var(--se-text-dim);font-size:14.5px;margin:-14px 0 20px;max-width:64ch}
.c{text-decoration:none;border:1px solid var(--rule);border-radius:var(--r-xl);overflow:hidden;min-width:0;
background:linear-gradient(180deg,var(--se-frame),var(--se-inner));display:flex;flex-direction:column;transition:.2s}
.c:hover{border-color:rgba(197,232,108,.4);transform:translateY(-3px)}
.c img,.c .nop{aspect-ratio:16/9;width:100%;object-fit:cover;display:block;background:var(--se-deep)}
.c .nop{display:grid;place-items:center;font-family:var(--font-secondary);font-size:10px;letter-spacing:.14em;
text-transform:uppercase;color:#E3B23C;border-bottom:1px solid rgba(227,178,60,.3)}
.cb{padding:12px 14px 14px}.cb b{display:block;color:var(--se-text-white);font-size:14px;line-height:1.35}
.cb span{display:block;margin-top:6px;font-family:var(--font-secondary);font-size:11px;color:var(--accent)}
.cb .lead{color:#E3B23C;font-family:var(--font-primary);font-size:12px;line-height:1.4;margin-top:7px}

/* Prose inside a transcript: the episode's own narration, and the
   continuation paragraphs of an answer whose first line carried the name. */
.transcript .aside, .news-body .aside{margin:0 0 18px;padding-left:0;
  font-size:16.5px;color:var(--se-text-secondary)}
.turn + .aside{margin-top:-6px;padding-left:0}

/* Sub-headings and lists recovered from the source articles. */
h3.sub{font-family:var(--font-secondary);font-weight:700;font-size:18px;line-height:1.35;
  color:var(--se-text-white);margin:34px 0 12px}
ul.body-list{margin:0 0 22px;padding-left:22px;list-style:none}
ul.body-list li{position:relative;font-size:16.5px;color:var(--se-text-secondary);margin:0 0 10px}
ul.body-list li::before{content:"";position:absolute;left:-18px;top:.62em;width:6px;height:6px;
  border-radius:50%;background:var(--accent);opacity:.75}

/* An archived article states the prices that were true when it was published.
   Nothing in the copy is rewritten — a dated note carries the caveat instead. */
.archive-prices{margin:34px 0 0;padding:16px 18px;border-radius:var(--r-lg);
  background:rgba(126,164,176,.06);border:1px solid var(--rule)}
.archive-prices p{margin:0;font-size:14px;line-height:1.6;color:var(--se-text-dim)}
.archive-prices b{color:var(--se-text-secondary)}
.archive-prices a{color:var(--accent)}
