/* Design system — Golden Hour tokens, single source of truth (2026-10-07) */
@import url('/css/design-system.css');

/* ============ PREVIOUSLY EDITORIAL — article redesign (James, 2026-10-02) ============
   Cinematic hero, editorial typography, sticky sidebar, curated related.
   Desktop enhancements gated at min-width:1021px; the stacked editorial
   system below (max-width:1020px / max-width:680px) carries the same design
   to tablet and phone — mobile audit 2026-10-03 (m2 lane styles;served
   under ?v=20261003m5 after the m5 lane's bump).

   JAMES 2026-10-06 ARTICLE POLISH:
   - Hero text uses hardcoded #f4efe6 (not var(--desert-ink)) — the desert
     theme redefined --text-on-dark to dark ink, which rendered hero headlines
     unreadable over the dark scrim. Hero text is ALWAYS light on the dark
     scrim, regardless of theme. Guaranteed contrast, no exceptions.
   - .pv-site-head .topbar and .brand hidden on article pages — James ordered
     the broken "Live / Previously. / News" stack removed from the article
     template. Nav Menu (pvn-mount) and bottom nav are unaffected. */

/* James 2026-10-06: remove the topbar/brand stack from article pages.
   The "Live / Previously. / News" lines rendered as a broken unstyled stack.
   Article pages keep the nav Menu (pvn-mount) and the bottom tab bar. */
.pv-site-head .topbar,
.pv-site-head .brand{display:none!important}:root{
  --ed-page:var(--desert-bg); --ed-surface:transparent; --ed-surface-2:transparent;
  --ed-ink:var(--desert-ink); --ed-copy:var(--desert-ink); --ed-muted:var(--desert-ink-dim); --ed-faint:var(--desert-ink-dim);
  /* 2026-10-08 root fix: --ed-ink was mapped to --desert-pressed (#F3EDE0, near-white),
     rendering ledes/headlines/blockquotes invisible on the cream background.
     Ink must always be the darkest text token. */
  --ed-line:rgba(var(--desert-pressed-rgb), .13); --ed-line-strong:rgba(var(--desert-pressed-rgb), .3);
  --ed-accent:var(--brand-red); --ed-amber:var(--color-warn);--ed-dropcap:#E10600;
  --ed-serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --ed-sans:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Roboto,sans-serif;
}/* ---------- cinematic hero (desktop) ---------- */
@media(min-width:1021px){
  .ed-hero{position:relative;max-width:1440px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
  .ed-hero-media{position:relative;border-radius:20px;overflow:hidden;min-height:min(72vh,640px);display:flex;align-items:flex-end;background:var(--surface-black)}
  .ed-hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  /* Strengthened scrim — text pops on ANY background (James 2026-10-02) */
  .ed-hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(var(--desert-bg-rgb), .62) 0%,rgba(var(--desert-bg-rgb), .14) 28%,rgba(var(--desert-bg-rgb), .38) 56%,rgba(var(--desert-bg-rgb), .97) 100%)}
  .ed-hero-scrim::after{content:"";position:absolute;inset:auto 0 0 0;height:64%;background:radial-gradient(120% 95% at 22% 100%,rgba(var(--desert-shadow-rgb), .6) 0%,rgba(var(--desert-shadow-rgb), 0) 72%)}
  .ed-hero-copy{position:relative;z-index:2;padding:clamp(30px,4vw,58px);max-width:1020px}
  /* Text shadow stack — guarantees legibility over bright/busy photos */
  .ed-hero-copy .ed-kicker,.ed-hero-copy h1,.ed-hero-copy .ed-deck,.ed-hero-copy .ed-dek,.ed-hero-copy .ed-byline-row{
    text-shadow:0 2px 20px rgba(var(--desert-shadow-rgb), .8),0 1px 5px rgba(var(--desert-shadow-rgb), .95),0 0 2px rgba(var(--desert-shadow-rgb), .9)}
  .ed-kicker{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;margin-bottom:18px;color:var(--desert-ink)}
  .ed-kicker::before{content:"";width:34px;height:3px;background:var(--ed-accent);border-radius:2px}
  .ed-kicker .ed-live{color:var(--desert-ink);background:var(--ed-accent);padding:3px 10px;border-radius:4px;letter-spacing:.18em;font-size:10px;text-shadow:none}
  .ed-hero-copy h1{font-family:var(--ed-serif);font-weight:800;font-size:clamp(42px,4.6vw,72px);line-height:1.04;letter-spacing:-.015em;margin:0 0 18px;color:var(--desert-ink);text-wrap:pretty}
  .ed-hero-copy .ed-deck,.ed-hero-copy .ed-dek{font-size:clamp(17px,1.6vw,21px);line-height:1.55;color:var(--desert-ink);max-width:62ch;margin-bottom:26px}
  .ed-byline-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
  .ed-avatar{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--ed-accent),var(--desert-accent-deep));display:grid;place-items:center;font-weight:800;font-size:15px;color:var(--desert-ink);flex:none;text-shadow:none}
  .ed-byline{font-size:14px;line-height:1.5;color:var(--desert-ink)}
  .ed-byline b{font-weight:700}
  .ed-byline .ed-sub{color:var(--ed-faint)}
  .ed-share{display:flex;gap:10px;margin-left:auto}
  .ed-share a,.ed-share button{width:40px;height:40px;border:1px solid rgba(var(--desert-card-rgb), .3);border-radius:50%;display:grid;place-items:center;font-size:14px;color:var(--desert-ink);text-decoration:none;backdrop-filter:blur(6px);background:transparent;text-shadow:none;cursor:pointer;padding:0}
  .ed-share a:hover,.ed-share button:hover{background:rgba(var(--brand-red-rgb),.85);border-color:rgba(var(--brand-red-rgb),.9)}
  .ed-share svg{width:16px;height:16px;fill:currentColor}
  /* Sticky share rail — desktop, floats left of the article column */
  .ed-share-rail{position:sticky;top:120px;align-self:start;display:flex;flex-direction:column;gap:12px;align-items:center;padding-top:8px}
  .ed-share-rail .ed-rail-label{font-size:10px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--ed-faint);writing-mode:vertical-rl;margin-bottom:4px}
  .ed-share-rail a,.ed-share-rail button{width:44px;height:44px;border-radius:50%;border:1px solid var(--ed-line-strong);background:var(--ed-surface);color:var(--ed-muted);display:grid;place-items:center;cursor:pointer;transition:all .2s;padding:0}
  .ed-share-rail a:hover,.ed-share-rail button:hover{background:var(--ed-accent);border-color:var(--ed-accent);color:var(--desert-ink);transform:translateY(-2px)}
  .ed-share-rail svg{width:17px;height:17px;fill:currentColor}
  .ed-share-rail .ed-count{font-size:11px;color:var(--ed-faint);font-variant-numeric:tabular-nums}
  .ed-share-toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--desert-ink);border:1px solid var(--ed-line-strong);color:var(--ed-ink);font-size:13.5px;font-weight:600;padding:12px 22px;border-radius:4px;opacity:0;pointer-events:none;transition:all .3s;z-index:200;box-shadow:0 12px 40px rgba(var(--desert-shadow-rgb), .5)}
  .ed-share-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
  .ed-photo-credit{position:absolute;right:18px;bottom:14px;z-index:2;font-size:11.5px;color:var(--ed-faint);letter-spacing:.04em;text-shadow:0 1px 4px rgba(var(--desert-shadow-rgb), .8)}

  /* ---------- body grid ---------- */
  .ed-grid{max-width:1440px;margin:0 auto;padding:44px clamp(20px,4vw,48px) 0;display:grid;grid-template-columns:56px minmax(0,1fr) 320px;gap:clamp(24px,3vw,56px);align-items:start}
  /* SAFETY NET (James 2026-10-03): if a pipeline-generated article ships without
     the share-rail/sidebar siblings, the lone .ed-prose must NOT collapse into
     the 56px rail track. A lone prose child spans the content columns. */
  .ed-grid>.ed-prose:only-child{grid-column:1/-1;max-width:760px;margin:0 auto;width:100%}
  .ed-prose{max-width:700px;min-width:0}
  .ed-prose>p{font-size:19px;line-height:1.78;color:var(--ed-copy);margin:0 0 1.5em}
  .ed-prose>p.ed-lede{font-size:22px;line-height:1.65;color:var(--ed-ink)}
  .ed-prose .ed-dropcap{font-family:var(--ed-serif);font-weight:800;font-size:3.3em;float:left;line-height:.74;padding:.03em .085em 0 0;color:var(--ed-dropcap)}
  .ed-prose>p.ed-dateline-line{font-family:var(--ed-sans);font-size:12.5px;font-weight:600;line-height:1.6;letter-spacing:.15em;text-transform:uppercase;color:var(--ed-faint);margin:0 0 1.7em}.ed-prose>p.ed-dateline-line::before{content:"";display:block;width:54px;height:2px;border-radius:1px;background:var(--ed-accent);margin:0 0 9px}.ed-dateline-place{color:var(--ed-accent);font-weight:800}.ed-dateline-rest{color:var(--ed-faint)}.ed-dateline{font-weight:700;letter-spacing:inherit;color:var(--ed-ink)}
  .ed-prose h2.ed-subhead{font-family:var(--ed-serif);font-weight:700;font-size:31px;line-height:1.2;margin:2.2em 0 .8em;letter-spacing:-.01em;color:var(--ed-ink)}
  .ed-prose h2.ed-subhead .ed-sk{display:block;font-family:var(--ed-sans);font-size:12px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--ed-accent);margin-bottom:10px}
  .ed-prose a{color:var(--ed-amber);text-decoration:underline;text-underline-offset:3px}
  .ed-prose blockquote{border-left:3px solid var(--ed-accent);margin:1.8em 0;padding:.4em 0 .4em 20px;font-style:italic;color:var(--ed-ink);font-size:19px;font-family:var(--font-serif);line-height:1.65}
  .ed-prose blockquote cite{display:block;font-style:normal;font-family:var(--ed-sans);font-size:12.5px;color:var(--ed-faint);margin-top:10px;letter-spacing:.04em}

  /* pull quote */
  .ed-pullquote{margin:2.6em 0;padding:0 0 0 28px;border-left:3px solid var(--ed-accent);max-width:820px}
  .ed-pullquote p{font-family:var(--ed-serif);font-style:italic;font-weight:600;font-size:clamp(24px,2.4vw,33px);line-height:1.35;color:var(--ed-ink)}
  .ed-pullquote cite{display:block;margin-top:14px;font-family:var(--ed-sans);font-style:normal;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ed-muted)}

  /* full-bleed inline image */
  .ed-fig-wide{margin:2.4em 0}
  .ed-fig-wide img{width:100%;border-radius:14px}
  .ed-fig-wide figcaption{font-size:13px;color:var(--ed-muted);padding:12px 4px 0;line-height:1.6}
  .ed-fig-wide figcaption .ed-cred{color:var(--ed-faint)}

  /* key facts panel */
  .ed-facts{margin:2.6em 0;background:linear-gradient(160deg,rgba(var(--color-warn-rgb), .07),rgba(var(--color-warn-rgb), .015));border:1px solid rgba(var(--color-warn-rgb), .28);border-radius:16px;padding:clamp(22px,3vw,36px)}
  .ed-facts h3{font-family:var(--ed-sans);font-size:12px;font-weight:800;letter-spacing:.26em;text-transform:uppercase;color:var(--ed-amber);margin:0 0 20px;display:flex;align-items:center;gap:12px}
  .ed-facts h3::after{content:"";flex:1;height:1px;background:rgba(var(--color-warn-rgb), .25)}
  .ed-facts-grid{display:grid;grid-template-columns:1fr;gap:2px 32px}
  @media(min-width:900px){.ed-facts-grid{grid-template-columns:1fr 1fr}}
  .ed-fact{display:flex;gap:16px;padding:13px 0;border-bottom:1px solid rgba(var(--color-warn-rgb), .12);font-size:15px}
  .ed-fact .ed-k{flex:0 0 150px;font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ed-muted);padding-top:3px}
  .ed-fact .ed-v{color:var(--ed-ink);line-height:1.6}

  /* sources — discreet fine print (James 2026-10-03) */
  .ed-sources{margin:3em 0 0;max-width:760px;padding-top:16px;border-top:1px solid var(--ed-line);font-size:12px;color:var(--ed-faint);line-height:1.7}
  .ed-sources h3{font-family:var(--ed-sans);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ed-faint);margin:0 0 8px}
  .ed-sources ul{list-style:none;margin:0;padding:0}
  .ed-sources li{display:inline;font-size:12px;color:var(--ed-faint)}
  .ed-sources li+li::before{content:" · ";color:var(--ed-faint)}
  .ed-sources li a{color:var(--ed-faint);text-decoration:underline;text-decoration-color:rgba(var(--desert-card-rgb), .2);text-underline-offset:2px;font-weight:400}
  .ed-sources li a:hover{color:var(--ed-muted)}
  .ed-sources .ed-pub{font-size:12px;color:var(--ed-faint)}

  /* ---------- sidebar ---------- */
  .ed-side{position:sticky;top:88px;display:flex;flex-direction:column;gap:28px;min-width:0}
  .ed-side-card{background:var(--ed-surface);border:1px solid var(--ed-line);border-radius:16px;padding:24px}
  .ed-side-card h4{font-size:11px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--ed-muted);margin:0 0 16px}
  .ed-author-card{display:flex;gap:14px;align-items:center;margin-bottom:14px}
  .ed-author-card .ed-avatar{width:52px;height:52px}
  .ed-author-card b{display:block;font-size:15px;color:var(--ed-ink)}
  .ed-author-card span{font-size:13px;color:var(--ed-muted)}
  .ed-side-card p.ed-bio{font-size:14px;line-height:1.65;color:var(--ed-muted);margin:0}
  .ed-toc a{display:block;padding:9px 0;border-bottom:1px solid var(--ed-line);font-size:14.5px;color:var(--ed-copy);text-decoration:none}
  .ed-toc a:last-child{border:0}
  .ed-toc a:hover{color:var(--ed-amber)}
  .ed-mini-story{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--ed-line);text-decoration:none}
  .ed-mini-story:last-child{border:0;padding-bottom:0}
  .ed-mini-story img{width:74px;height:74px;object-fit:cover;border-radius:10px;flex:none}
  .ed-mini-story b{display:block;font-size:14px;line-height:1.4;margin-bottom:4px;color:var(--ed-ink)}
  .ed-mini-story span{font-size:12px;color:var(--ed-faint)}
  .ed-newsletter p{font-size:14px;color:var(--ed-muted);margin:0 0 14px;line-height:1.6}
  .ed-newsletter .ed-row{display:flex;gap:8px;min-width:0}
  .ed-newsletter input{flex:1;min-width:0;background:var(--ed-page);border:1px solid var(--ed-line);border-radius:10px;padding:11px 14px;color:var(--ed-ink);font-size:16px} /* 16px kills iOS auto-zoom (2026-10-03 mobile audit) */
  .ed-newsletter button{flex:none;white-space:nowrap;background:var(--ed-accent);border:0;color:var(--desert-ink);font-weight:800;font-size:13px;letter-spacing:.06em;padding:0 18px;border-radius:10px;cursor:pointer;align-self:stretch}

  /* ---------- more from newsroom ---------- */
  .ed-more{max-width:1440px;margin:0 auto;padding:72px clamp(20px,4vw,48px) 84px}
  .ed-more-head{display:flex;align-items:baseline;gap:18px;margin-bottom:28px}
  .ed-more-head .ed-kicker{margin:0;color:var(--brand-red-deep)}
  .ed-more-head .ed-kicker::before{background:var(--brand-red-deep)}
  .ed-more-head h2{font-family:var(--ed-serif);font-size:clamp(30px,3vw,44px);font-weight:800;letter-spacing:-.01em;color:var(--ed-ink);margin:0}
  .ed-more-head a{margin-left:auto;font-size:14px;color:var(--ed-amber);text-decoration:none;font-weight:600}
  .ed-more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
  .ed-mcard{border-radius:16px;overflow:hidden;background:var(--ed-surface);border:1px solid var(--ed-line);text-decoration:none;transition:transform .25s,border-color .25s;display:flex;flex-direction:column;height:100%}
  .ed-mcard:hover{transform:translateY(-4px);border-color:var(--ed-line-strong)}
  .ed-mcard .ed-art{position:relative;aspect-ratio:16/10;overflow:hidden}
  .ed-mcard .ed-art img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
  .ed-mcard:hover .ed-art img{transform:scale(1.04)}
  .ed-mcard .ed-cat{position:absolute;left:14px;top:14px;color:var(--well-text);text-shadow:0 1px 6px rgba(var(--desert-shadow-rgb),.55);font-size:10.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;background:rgba(var(--desert-shadow-rgb), .62);backdrop-filter:blur(6px);padding:5px 12px;border-radius:4px}
  .ed-mcard .ed-tb{padding:20px 22px 24px;flex:1;display:flex;flex-direction:column}
  .ed-mcard .ed-tb b{font-family:var(--ed-serif);font-size:20px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:10px;color:var(--ed-ink)}
  .ed-mcard .ed-tb span{font-size:13px;color:var(--ed-faint);margin-top:auto}

  /* Hide legacy stacked title/hero on desktop — the cinematic hero replaces them */
  .ed-redesign .pvn-title-zone{display:none}
  .ed-redesign .pv-feature--title .pv-feature__meta{display:none}
  .ed-redesign .pv-feature--title .news-hero{display:none}
  /* Keep legacy body styles from fighting the new prose */
  .ed-redesign .news-body{max-width:none}
  .ed-redesign .news-body p{font-size:19px;line-height:1.78;color:var(--ed-copy);margin:0 0 1.5em;font-family:var(--ed-sans)}
  
}/* ---------- tablet: stack sidebar ---------- */
@media(min-width:681px) and (max-width:1020px){
  .ed-grid{grid-template-columns:1fr}
  .ed-share-rail{display:none}
  .ed-side{position:static;display:grid;grid-template-columns:1fr 1fr;gap:20px}
  .ed-more-grid{grid-template-columns:1fr 1fr}
  .ed-redesign .pvn-title-zone{display:none}
  .ed-redesign .pv-feature--title .pv-feature__meta{display:none}
  .ed-redesign .pv-feature--title .news-hero{display:none}
}@media(max-width:1020px){
  /* ============ STACKED EDITORIAL (tablet + phone) — mobile audit 2026-10-03 =
     The desktop system above is min-width:1021px-gated, so below that the
     hero, prose, facts, sources, pull-quotes and cards rendered unstyled
     (and at <=680px the hero/headline was display:none entirely). This block
     restates the editorial system stacked single-column. Tablet keeps its
     own 2-col sidebar / keep-reading grids from the query above;phones get
     the single-column rules in the max-width:680px block below. */
  .ed-hero{display:block}.ed-hero-media{position:relative;border-radius:16px;overflow:hidden;min-height:min(118vw,520px);display:flex;align-items:flex-end;background:var(--surface-black)}.ed-hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.ed-hero-media picture{position:absolute;inset:0}.ed-hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(var(--desert-bg-rgb), .62) 0%,rgba(var(--desert-bg-rgb), .14) 28%,rgba(var(--desert-bg-rgb), .38) 56%,rgba(var(--desert-bg-rgb), .97) 100%)}.ed-hero-copy{position:relative;z-index:2;padding:clamp(24px,6vw,40px);max-width:1020px}.ed-hero-copy .ed-kicker,.ed-hero-copy h1,.ed-hero-copy .ed-deck,.ed-hero-copy .ed-dek,.ed-hero-copy .ed-byline-row{
    text-shadow:0 2px 20px rgba(var(--desert-shadow-rgb), .8),0 1px 5px rgba(var(--desert-shadow-rgb), .95),0 0 2px rgba(var(--desert-shadow-rgb), .9)}.ed-kicker{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;margin-bottom:18px;color:var(--desert-ink)}.ed-kicker::before{content:"";width:34px;height:3px;background:var(--ed-accent);border-radius:2px}.ed-kicker .ed-live{color:var(--desert-ink);background:var(--ed-accent);padding:3px 10px;border-radius:4px;letter-spacing:.18em;font-size:10px;text-shadow:none}.ed-hero-copy h1{font-family:var(--ed-serif);font-weight:800;font-size:clamp(30px,8.6vw,40px);line-height:1.08;letter-spacing:-.015em;margin:0 0 16px;color:var(--desert-ink);text-wrap:pretty}.ed-hero-copy .ed-deck,.ed-hero-copy .ed-dek{font-size:17px;line-height:1.55;color:var(--desert-ink);max-width:62ch;margin-bottom:24px}.ed-byline-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.ed-avatar{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--ed-accent),var(--desert-accent-deep));display:grid;place-items:center;font-weight:800;font-size:15px;color:var(--desert-ink);flex:none;text-shadow:none}.ed-byline{font-size:14px;line-height:1.5;color:var(--desert-ink)}.ed-byline b{font-weight:700}.ed-byline .ed-sub{color:var(--ed-faint)}.ed-share{display:flex;gap:10px;margin-left:auto}.ed-share a,.ed-share button{width:44px;height:44px;border:1px solid rgba(var(--desert-card-rgb), .3);border-radius:50%;display:grid;place-items:center;font-size:14px;color:var(--desert-ink);text-decoration:none;backdrop-filter:blur(6px);background:transparent;text-shadow:none;cursor:pointer;padding:0}.ed-share svg{width:16px;height:16px;fill:currentColor}.ed-photo-credit{position:absolute;right:14px;bottom:10px;z-index:2;font-size:11px;color:var(--ed-faint);letter-spacing:.04em;text-shadow:0 1px 4px rgba(var(--desert-shadow-rgb), .8);max-width:60%;text-align:right}/* Audit 2026-10-03: byline was overlapping the photo credit on mobile.
     Give the hero copy bottom clearance for the credit. */
  .ed-hero-copy{padding-bottom:54px}.ed-share-toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--desert-ink);border:1px solid var(--ed-line-strong);color:var(--ed-ink);font-size:13.5px;font-weight:600;padding:12px 22px;border-radius:4px;opacity:0;pointer-events:none;transition:all .3s;z-index:200;box-shadow:0 12px 40px rgba(var(--desert-shadow-rgb), .5)}.ed-share-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}/* ---------- body ---------- */
  .ed-grid{display:block;padding:0 20px}.ed-prose{min-width:0;overflow-wrap:break-word;word-wrap:break-word;max-width:700px;margin:0 auto}.ed-prose>p{font-size:17.5px;line-height:1.75;color:var(--ed-copy);margin:0 0 1.5em}.ed-prose>p.ed-lede{font-size:19px;line-height:1.65;color:var(--ed-ink)}.ed-prose .ed-dropcap{font-family:var(--ed-serif);font-weight:800;font-size:3.3em;float:left;line-height:.74;padding:.03em .085em 0 0;color:var(--ed-dropcap)}.ed-prose>p.ed-dateline-line{font-family:var(--ed-sans);font-size:12.5px;font-weight:600;line-height:1.6;letter-spacing:.15em;text-transform:uppercase;color:var(--ed-faint);margin:0 0 1.7em}.ed-prose>p.ed-dateline-line::before{content:"";display:block;width:54px;height:2px;border-radius:1px;background:var(--ed-accent);margin:0 0 9px}.ed-dateline-place{color:var(--ed-accent);font-weight:800}.ed-dateline-rest{color:var(--ed-faint)}.ed-dateline{font-weight:700;letter-spacing:inherit;color:var(--ed-ink)}.ed-prose h2.ed-subhead{font-family:var(--ed-serif);font-weight:700;font-size:clamp(24px,6.4vw,30px);line-height:1.2;margin:2em 0 .7em;letter-spacing:-.01em;color:var(--ed-ink)}.ed-prose h2.ed-subhead .ed-sk{display:block;font-family:var(--ed-sans);font-size:12px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--ed-accent);margin-bottom:10px}.ed-prose a{color:var(--ed-amber);text-decoration:underline;text-underline-offset:3px}.ed-prose blockquote{border-left:3px solid var(--ed-accent);margin:1.8em 0;padding:.4em 0 .4em 18px;font-style:italic;color:var(--ed-ink);font-size:18px;font-family:var(--font-serif);line-height:1.65}.ed-prose blockquote cite{display:block;font-style:normal;font-family:var(--ed-sans);font-size:12.5px;color:var(--ed-faint);margin-top:10px;letter-spacing:.04em}.ed-prose iframe{max-width:100%}.ed-prose table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%}/* pull quote */
  .ed-pullquote{margin:2.2em 0;padding:0 0 0 20px;border-left:3px solid var(--ed-accent)}.ed-pullquote p{font-family:var(--ed-serif);font-style:italic;font-weight:600;font-size:clamp(21px,5.9vw,27px);line-height:1.35;color:var(--ed-ink)}.ed-pullquote cite{display:block;margin-top:12px;font-family:var(--ed-sans);font-style:normal;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ed-muted)}/* full-bleed inline image */
  .ed-fig-wide{margin:2.2em 0}.ed-fig-wide img{display:block;width:100%;height:auto;border-radius:12px}.ed-fig-wide figcaption{font-size:13px;color:var(--ed-muted);padding:10px 4px 0;line-height:1.6}.ed-fig-wide figcaption .ed-cred{color:var(--ed-faint)}/* key facts panel */
  .ed-facts{margin:2.4em 0;background:linear-gradient(160deg,rgba(var(--color-warn-rgb), .07),rgba(var(--color-warn-rgb), .015));border:1px solid rgba(var(--color-warn-rgb), .28);border-radius:16px;padding:22px}.ed-facts h3{font-family:var(--ed-sans);font-size:12px;font-weight:800;letter-spacing:.26em;text-transform:uppercase;color:var(--ed-amber);margin:0 0 16px;display:flex;align-items:center;gap:12px}.ed-facts h3::after{content:"";flex:1;height:1px;background:rgba(var(--color-warn-rgb), .25)}.ed-facts-grid{display:grid;grid-template-columns:1fr;gap:2px}.ed-fact{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid rgba(var(--color-warn-rgb), .12);font-size:15px}.ed-fact .ed-k{flex:0 0 104px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ed-muted);padding-top:3px}.ed-fact .ed-v{color:var(--ed-ink);line-height:1.6;min-width:0}/* sources — discreet fine print (James 2026-10-03) */
  .ed-sources{margin:2.8em 0 0;padding-top:14px;border-top:1px solid var(--ed-line);font-size:12px;color:var(--ed-faint);line-height:1.7}.ed-sources h3{font-family:var(--ed-sans);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ed-faint);margin:0 0 8px}.ed-sources ul{list-style:none;margin:0;padding:0}.ed-sources li{display:inline;font-size:12px;color:var(--ed-faint)}.ed-sources li+li::before{content:" · ";color:var(--ed-faint)}.ed-sources li a{color:var(--ed-faint);text-decoration:underline;text-decoration-color:rgba(var(--desert-card-rgb), .2);text-underline-offset:2px;font-weight:400}.ed-sources .ed-pub{font-size:12px;color:var(--ed-faint)}/* ---------- sidebar cards (visible when stacked below content) ---------- */
  .ed-side{min-width:0}.ed-side-card{background:var(--ed-surface);border:1px solid var(--ed-line);border-radius:16px;padding:22px}.ed-side-card h4{font-size:11px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--ed-muted);margin:0 0 14px}.ed-author-card{display:flex;gap:14px;align-items:center;margin-bottom:12px}.ed-author-card .ed-avatar{width:48px;height:48px}.ed-author-card b{display:block;font-size:15px;color:var(--ed-ink)}.ed-author-card span{font-size:13px;color:var(--ed-muted)}.ed-side-card p.ed-bio{font-size:14px;line-height:1.65;color:var(--ed-muted);margin:0}.ed-toc a{display:block;padding:9px 0;border-bottom:1px solid var(--ed-line);font-size:14.5px;color:var(--ed-copy);text-decoration:none}.ed-toc a:last-child{border:0}.ed-mini-story{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--ed-line);text-decoration:none}.ed-mini-story:last-child{border:0;padding-bottom:0}.ed-mini-story img{width:74px;height:74px;object-fit:cover;border-radius:10px;flex:none}.ed-mini-story b{display:block;font-size:14px;line-height:1.4;margin-bottom:4px;color:var(--ed-ink)}.ed-mini-story span{font-size:12px;color:var(--ed-faint)}.ed-newsletter p{font-size:14px;color:var(--ed-muted);margin:0 0 14px;line-height:1.6}.ed-newsletter .ed-row{display:flex;gap:8px;min-width:0}.ed-newsletter input{flex:1;min-width:0;background:var(--ed-page);border:1px solid var(--ed-line);border-radius:10px;padding:11px 14px;color:var(--ed-ink);font-size:16px}.ed-newsletter button{flex:none;white-space:nowrap;background:var(--ed-accent);border:0;color:var(--desert-ink);font-weight:800;font-size:13px;letter-spacing:.06em;padding:0 18px;border-radius:10px;cursor:pointer;align-self:stretch;min-height:48px}/* ---------- more from newsroom ---------- */
  .ed-more{padding:56px 0 64px}.ed-more-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:24px}.ed-more-head .ed-kicker{margin:0;color:var(--brand-red-deep)}.ed-more-head .ed-kicker::before{background:var(--brand-red-deep)}.ed-more-head h2{font-family:var(--ed-serif);font-size:clamp(26px,7vw,34px);font-weight:800;letter-spacing:-.01em;color:var(--ed-ink);margin:0}.ed-more-head a{margin-left:auto;font-size:14px;color:var(--ed-amber);text-decoration:none;font-weight:600}.ed-mcard{border-radius:16px;overflow:hidden;background:var(--ed-surface);border:1px solid var(--ed-line);text-decoration:none;display:flex;flex-direction:column;height:100%}.ed-mcard .ed-art{position:relative;aspect-ratio:16/10;overflow:hidden}.ed-mcard .ed-art img{width:100%;height:100%;object-fit:cover;display:block}.ed-mcard .ed-cat{position:absolute;left:14px;top:14px;color:var(--well-text);text-shadow:0 1px 6px rgba(var(--desert-shadow-rgb),.55);font-size:10.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;background:rgba(var(--desert-shadow-rgb), .62);padding:5px 12px;border-radius:4px}.ed-mcard .ed-tb{padding:18px 20px 22px;flex:1;display:flex;flex-direction:column}.ed-mcard .ed-tb b{font-family:var(--ed-serif);font-size:19px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:8px;color:var(--ed-ink)}.ed-mcard .ed-tb span{font-size:13px;color:var(--ed-faint);margin-top:auto}
}@media(max-width:680px){
  /* ============ PHONE (<=680px) — single-column stacking ============
     Share rail becomes a horizontal strip (44px targets); the trending
     sidebar stacks below the article instead of vanishing;keep-reading
     goes single column instead of vanishing. */
  .ed-share-rail{display:flex;flex-direction:row;align-items:center;gap:10px;margin:20px 0 4px}.ed-share-rail .ed-rail-label{font-size:10px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--ed-faint);writing-mode:horizontal-tb;margin:0}.ed-share-rail a,.ed-share-rail button{width:44px;height:44px;border-radius:50%;border:1px solid var(--ed-line-strong);background:var(--ed-surface);color:var(--ed-muted);display:grid;place-items:center;cursor:pointer;padding:0;flex:none}.ed-share-rail svg{width:17px;height:17px;fill:currentColor}.ed-share-rail .ed-count{font-size:11px;color:var(--ed-faint);font-variant-numeric:tabular-nums}.ed-side{position:static;display:flex;flex-direction:column;gap:20px;margin-top:48px}.ed-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ed-mcard .ed-tb{padding:14px 14px 16px}.ed-mcard .ed-tb b{font-size:15.5px}.ed-mcard .ed-cat{left:10px;top:10px;font-size:9.5px;padding:4px 9px;letter-spacing:.14em}.crumb .here{overflow-wrap:break-word}
}/* ============ IN-ARTICLE INLINE PHOTOS (.inline-photo) ============
   HARDENING (James, 2026-10-03 — PERMANENT): these figures shipped with ZERO
   shared rules, so any odd intrinsic size, slow load, or missing dimension
   could blow an in-article image into a giant black box on phones (seen on
   the Rick Ross article). Locked at the shared level, not per-page:
   natural aspect ratio always, never wider than the prose column. */
.ed-prose figure.inline-photo{margin:2em 0;max-width:100%}.ed-prose figure.inline-photo img{display:block;width:100%;height:auto;border-radius:12px;background:var(--desert-bg)}.ed-prose figure.inline-photo figcaption{font-size:13px;color:var(--ed-muted);padding:10px 4px 0;line-height:1.6}/* Universal guard: no image inside article prose may ever exceed the column
   width or distort its aspect ratio, at any viewport. */
.ed-prose img{max-width:100%;height:auto}/* ============ LIGHT THEME (prefers-color-scheme) — color-only overrides ============ */
@media (prefers-color-scheme:light){
  :root {
    --ed-page:var(--desert-bg);
    --ed-surface:transparent;
    --ed-surface-2: var(--desert-pressed);
    --ed-ink:var(--desert-ink);
    --ed-copy:var(--desert-ink);
    --ed-muted:rgba(var(--desert-ink-rgb), .72);
    --ed-faint:rgba(var(--desert-ink-rgb), .68);
    --ed-line:rgba(var(--desert-ink-rgb), .14);
    --ed-line-strong:rgba(var(--desert-ink-rgb), .30);
    --ed-accent:var(--brand-red);   /* fills stay Signal Red */
    --ed-amber:var(--color-warn);--ed-dropcap:#E10600;    /* signal red #E10600 (James 2026-10-16) */
  }
  /* share toast is UI chrome, not media */
  .ed-share-toast { background:var(--surface-light); }
  /* NOTE (kept dark by design): .ed-hero-scrim is a photo scrim; hero copy
     shadows + .ed-photo-credit sit on photos; .ed-share buttons sit on the
     hero art; .ed-facts keeps its amber tint wash (tints, not text);
     .ed-mcard .ed-cat sits on card art. */
}/* ---------- The Short Version (James, 2026-10-03) — 30-second summary box, light card ---------- */
.ed-short{background:var(--desert-pressed);color:var(--desert-ink);border-radius:16px;padding:clamp(20px,3vw,32px);margin:clamp(28px,4vw,48px) auto;max-width:800px;box-shadow:0 8px 32px rgba(var(--desert-shadow-rgb), .35)}.ed-short-label{font-family:var(--ed-sans);font-size:12px;font-weight:800;letter-spacing:.26em;text-transform:uppercase;color:var(--color-warn);margin:0 0 16px;display:flex;align-items:center;gap:12px}.ed-short-label::after{content:"";flex:1;height:1px;background:rgba(var(--color-warn-rgb), .3)}.ed-short ul{margin:0;padding:0;list-style:none}.ed-short li{font-family:var(--ed-sans);font-size:15.5px;line-height:1.6;margin:0 0 10px;padding-left:22px;position:relative}.ed-short li:last-child{margin-bottom:0}.ed-short li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:50%;background:var(--ed-accent,var(--brand-red))}.ed-short li strong{font-weight:700}/* ---------- Bottom share bar (James, 2026-10-03) — every article ends with share ---------- */
.ed-share-bottom{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:2.5em 0 0;padding:20px 0;border-top:1px solid var(--ed-line,var(--desert-pressed));border-bottom:1px solid var(--ed-line,var(--desert-pressed));max-width:720px}.ed-share-bottom-label{font-family:var(--ed-sans,Arial,Helvetica,sans-serif);font-size:11px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--ed-muted,var(--desert-ink-dim))}.ed-share-bottom .ed-share{margin-left:0}@media (max-width:560px){.ed-share-bottom{gap:12px}.ed-share-bottom .ed-share a,.ed-share-bottom .ed-share button{width:48px;height:48px}
}

/* ============ UNIFIED GOLDEN DESIGN (James, 2026-10-08) ============
   One cream background (#FAF6EE) everywhere. Cards/modules are
   transparent with the thin rule border — no white fills, no dark
   patches. All text dark ink — zero exceptions. (Text over dark
   image areas keeps white + shadow per the text-over-image rule.) */
body{color:var(--desert-ink)}
.crumb .here{color:var(--desert-ink)}
.ed-side-card{background:transparent}
.ed-mcard{background:transparent}
.ed-newsletter input{background:transparent}
.ed-share-rail a,.ed-share-rail button{background:transparent}
.ed-short{background:transparent;border:1px solid var(--ed-line)}
.ed-share-toast{background:var(--desert-bg);color:var(--desert-ink);border:1px solid var(--ed-line-strong)}
.story-video{background:transparent}

/* ============ ARTICLE HOUSE AD (James, 2026-10-12) ============
   One sponsored slot at the top of the article sidebar column (grid
   column 3) — the dead space beside the article body. House creative
   today ("Your brand here" -> /contact/); a network unit (AdSense)
   drops into the same reserved box later with no redesign. The
   300x250 creative area is reserved in CSS: zero layout shift.
   On pages whose sidebar already carries the network card
   (.pv-adslot), the house creative renders as the fallback layer
   inside that same card until the network fills it. */
.pv-housead{padding:0;overflow:hidden;background:linear-gradient(165deg,rgba(var(--desert-card-rgb),.5),rgba(var(--desert-card-rgb),.14))}
.pv-housead-k{display:block;font-family:var(--ed-sans);font-size:10px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--ed-faint);padding:14px 16px 0}
.pv-housead-creative{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;text-decoration:none;color:var(--ed-ink);width:min(300px,100%);height:250px;margin:4px auto 16px;padding:20px}
.pv-housead-word{font-family:var(--ed-serif);font-weight:800;font-size:36px;line-height:1;letter-spacing:-.01em;color:var(--ed-ink)}
.pv-housead-word em{font-style:normal;color:var(--ed-accent)}
.pv-housead-tag{font-family:var(--ed-sans);font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ed-muted)}
.pv-housead-cta{font-family:var(--ed-sans);font-size:13.5px;font-weight:700;color:var(--ed-accent);border-bottom:2px solid var(--ed-accent);padding-bottom:2px}
/* fallback layer inside the existing network sidebar card */
.ed-side .pv-adslot-body{position:relative;min-height:250px}
.ed-side .pv-adslot-body>.pv-housead-creative{position:absolute;top:0;left:0;right:0;height:250px;width:100%;margin:0}
.ed-side .pv-adslot-body>ins.adsbygoogle[data-ad-status="unfilled"]{height:250px!important;overflow:hidden;pointer-events:none}
.ed-side .pv-adslot-body>ins.adsbygoogle[data-ad-status="unfilled"] iframe{height:250px!important}
.ed-side .pv-adslot-body>ins.adsbygoogle{position:relative;z-index:1}
/* rail-less articles: keep the prose wide when the sidebar joins it */
.ed-grid:has(>.ed-side)>.ed-prose:first-child{grid-column:1/3}
@media(max-width:1020px){.ed-side .pv-housead{max-width:340px;margin-left:auto;margin-right:auto;width:100%}}

/* ============ ARTICLE HOUSE AD - SECOND SIDEBAR UNIT (James, 2026-10-12) ============
   The legacy lower sidebar unit (.ad-slot.ad-sidebar) is managed by
   adsense-slots.js: an unfilled slot collapses to zero space (James
   2026-10-06 rule), and AdSense sizes this unit's unfilled frame beyond
   any stylesheet cap — so the house fallback for this position is the
   same standalone sidebar card the first house-ad job used, placed
   directly after the managed slot. If the network unit ever fills
   (data-ad-status="filled"), the card hides and the real ad takes the
   position; otherwise the card is the persistent house unit for that
   position at the 250px standard. The managed slot itself keeps its
   exact fill/collapse behavior. */
.ed-side .ad-slot.ad-sidebar:has(> ins.adsbygoogle[data-ad-status="filled"]) + .pv-housead-2{display:none}
/* ============ MOBILE STORY LAYOUT (2026-10-12) — visual-first phone story ============
   Direction (James, 2026-10-12, pointing at a local-TV mobile story page):
   headline block first, then a full-width photo with its caption, then the
   body — visuals carry the story on phones.
   PHONE ONLY (<=680px): the cinematic overlay hero becomes a stacked
   editorial hero — copy on the page background (prose ink tokens, no scrim,
   no text-shadow), the photo below it at 16/10, the credit as a caption line
   under the photo. Two layers: (1) a descendant-:has layer that un-overlays
   ANY ed-hero whose copy lives inside the media block (readable in both
   color schemes, photo becomes a real visual instead of a backdrop);
   (2) a direct-child layer for the canonical template nesting that also
   reorders — copy first, photo second, credit third. Desktop and tablet
   heroes are untouched. */

/* Builder inline figures (.ed-photo — emitted by the overnight-builder from
   spec figures) previously had ZERO shared rules. Give them the same
   treatment as figure.inline-photo at every width: full column width,
   natural aspect, styled caption + credit. */
.ed-prose figure.ed-photo{margin:2.2em 0;max-width:100%}
.ed-prose figure.ed-photo img{display:block;width:100%;height:auto;border-radius:12px;background:var(--desert-bg)}
.ed-prose figure.ed-photo figcaption{font-size:13px;color:var(--ed-muted);padding:10px 4px 0;line-height:1.6}
.ed-prose figure.ed-photo figcaption .pc{color:var(--ed-faint)}

@media(max-width:680px){
  /* (1) un-overlay: any hero whose copy nests inside the media block */
  .ed-hero-media:has(.ed-hero-copy){display:block;min-height:0;background:transparent;overflow:visible;border-radius:0}
  .ed-hero-media:has(.ed-hero-copy) .ed-hero-scrim{display:none}
  .ed-hero-media:has(.ed-hero-copy) .ed-hero-copy{position:relative;z-index:auto;padding:30px 20px 20px;max-width:none}
  .ed-hero-media:has(.ed-hero-copy) .ed-hero-copy .ed-kicker,
  .ed-hero-media:has(.ed-hero-copy) .ed-hero-copy h1,
  .ed-hero-media:has(.ed-hero-copy) .ed-hero-copy .ed-deck,
  .ed-hero-media:has(.ed-hero-copy) .ed-hero-copy .ed-dek,
  .ed-hero-media:has(.ed-hero-copy) .ed-hero-copy .ed-byline-row{text-shadow:none}
  .ed-hero-media:has(.ed-hero-copy) .ed-kicker{color:var(--ed-ink)}
  .ed-hero-media:has(.ed-hero-copy) .ed-hero-copy h1{color:var(--ed-ink);margin:0 0 14px}
  .ed-hero-media:has(.ed-hero-copy) .ed-hero-copy .ed-deck,
  .ed-hero-media:has(.ed-hero-copy) .ed-hero-copy .ed-dek{color:var(--ed-copy);margin-bottom:22px}
  .ed-hero-media:has(.ed-hero-copy) .ed-byline{color:var(--ed-copy)}
  .ed-hero-media:has(.ed-hero-copy) .ed-share a,
  .ed-hero-media:has(.ed-hero-copy) .ed-share button{border-color:var(--ed-line-strong);color:var(--ed-ink);backdrop-filter:none;background:var(--ed-surface)}
  .ed-hero-media:has(.ed-hero-copy)>img{position:relative;inset:auto;display:block;width:calc(100% - 40px);height:auto;aspect-ratio:16/10;object-fit:cover;margin:0 20px;border-radius:14px}
  .ed-hero-media:has(.ed-hero-copy)>picture{position:relative;inset:auto;display:block;width:calc(100% - 40px);margin:0 20px;border-radius:14px;overflow:hidden;aspect-ratio:16/10}
  .ed-hero-media:has(.ed-hero-copy)>picture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .ed-hero-media:has(.ed-hero-copy) .ed-photo-credit{position:static;max-width:none;text-align:left;padding:8px 24px 0;color:var(--ed-faint);text-shadow:none;font-size:11.5px}
  .ed-hero-media:has(.ed-hero-copy) .ed-photo-credit:empty{display:none}
  /* (2) canonical nesting: headline block above the photo */
  .ed-hero-media:has(> .ed-hero-copy){display:flex;flex-direction:column;align-items:stretch}
  .ed-hero-media:has(> .ed-hero-copy) .ed-hero-copy{order:1}
  .ed-hero-media:has(> .ed-hero-copy)>img{order:2}
  .ed-hero-media:has(> .ed-hero-copy)>picture{order:2}
  .ed-hero-media:has(> .ed-hero-copy) .ed-photo-credit{order:3}
  /* Ad rhythm: air between the hero block and the leaderboard; deeper
     spacing for in-body units so ads punctuate instead of interrupt. */
  .ad-leaderboard{margin-top:30px}
  .ed-prose .ad-slot{margin:2.6em auto}
  /* Visual beats: a touch more air around in-body figures on phones. */
  .ed-prose figure.inline-photo,.ed-prose figure.ed-photo,.ed-prose .ed-fig-wide{margin:2.4em 0}
}

/* ==========================================================================
   EMPTY-MODULE FAIL-SAFES (2026-10-12) — no shell renders without content.
   1) .facts key-points box: REMOVED 2026-10-15 — the labeled facts box is
      BANNED (James, 2026-10-15 19:53 PT: "developer talk"). The fleet was
      stripped, article_template.py folds any box at publish, and the
      fail-safe rules that used to sit here were deleted with the component.
   2) Trending Now sidebar shell: hidden until trending-now.js populates it
      (the script sets inline display:block when it renders real stories,
      display:none when it cannot). An unpopulated shell never shows.
   ========================================================================== */
.ed-side-card[data-trending-now]{display:none}
/* === House fallback: leaderboard + in-article (2026-10-12 ads-everywhere) ===
   The sidebar units carry house creative for no-fill impressions; now the
   two most visible positions do too. The engine still collapses a slot
   whose network unit never fills - for the leaderboard that collapse is
   overridden (the slot re-opens around its house creative), and a filled
   unit always covers/hides the creative. Reserved heights: no shift. */
.ad-slot.ad-leaderboard{position:relative;min-height:118px}
.ad-slot.ad-leaderboard>.pv-housead-creative--wide{position:absolute;inset:0;width:100%;height:100%;margin:0;flex-direction:row;gap:20px;padding:10px 20px}
.ad-slot.ad-leaderboard[data-pv-adsense-empty="true"]{display:block!important}
.ad-slot.ad-leaderboard[data-pv-adsense-empty="true"] .ad-label{visibility:visible}
.ad-slot.ad-leaderboard.pv-ad-filled>.pv-housead-creative--wide{display:none}
.ad-slot.ad-leaderboard>ins.adsbygoogle{position:relative;z-index:1}
.pv-housead-creative--wide .pv-housead-word{font-size:30px;white-space:nowrap}
.pv-housead--inflow{width:100%;max-width:720px;margin:0 0 2em}
.pv-adslot--inflow:has(> .pv-adslot-body > ins.adsbygoogle[data-ad-status="filled"]) + .pv-housead--inflow{display:none}
@media(max-width:640px){.pv-housead-creative--wide .pv-housead-tag{display:none}.pv-housead-creative--wide .pv-housead-word{font-size:24px}}

/* ==========================================================================
   DIRECTION A SKIN — CANVA WAVE 1, STORY PAGE FAMILY (2026-10-14)
   Package A "The Editorial Standard" (James picked 2026-10-14 ~09:42 PT).
   Append-only: this section restyles via existing selectors and wins by
   file order + body.ed-redesign specificity. Earlier rules are untouched;
   .ed-more grid/selection rules are NOT redefined here (furniture only);
   .ed-dateline-line is intentionally NOT restyled (sibling crew owns it).
   Tokens: cream #FAF6EE · card #FFFDF8 · ink #1B1712 · brick #C0391B ·
   press red #9E2B12 · sand #F2E9D7 · hairline #D9D0BE · hairline-soft
   #E0D7C3 · muted #8A7F6D · body-muted #6E6557 · dek #3A322A ·
   body ink #241D16 · dotted #A99E8A.
   ========================================================================== */
body.ed-redesign{background:#FAF6EE;color:#1B1712}

/* ---------- 1. HERO — copy flows ABOVE the photo, photo is a plain block */
body.ed-redesign .ed-hero{background:#FAF6EE}
body.ed-redesign .ed-hero-media,
body.ed-redesign .ed-hero-media:has(.ed-hero-copy),
body.ed-redesign .ed-hero-media:has(> .ed-hero-copy){
  display:flex!important;flex-direction:column!important;align-items:stretch!important;
  position:relative;min-height:0!important;background:transparent!important;
  overflow:visible!important;border-radius:0!important}
body.ed-redesign .ed-hero-scrim{display:none!important}
body.ed-redesign .ed-hero-copy{
  order:1;position:relative!important;z-index:auto;inset:auto;
  padding:26px 0 0;max-width:920px;background:transparent}
body.ed-redesign .ed-hero-media>img,
body.ed-redesign .ed-hero-media:has(> .ed-hero-copy)>img{
  order:2;position:static!important;inset:auto!important;display:block;
  width:100%!important;height:auto!important;max-height:none;
  object-fit:initial;margin:0;border-radius:0!important}
body.ed-redesign .ed-hero-media>picture,
body.ed-redesign .ed-hero-media:has(> .ed-hero-copy)>picture{
  order:2;position:static!important;inset:auto!important;display:block;
  width:100%!important;margin:0;border-radius:0!important;overflow:visible;aspect-ratio:auto}
body.ed-redesign .ed-hero-media>picture img{
  position:static!important;inset:auto!important;display:block;width:100%;height:auto!important;border-radius:0!important}
body.ed-redesign .ed-hero-copy .ed-kicker,
body.ed-redesign .ed-hero-copy h1,
body.ed-redesign .ed-hero-copy .ed-deck,
body.ed-redesign .ed-hero-copy .ed-dek,
body.ed-redesign .ed-hero-copy .ed-byline-row{text-shadow:none!important}
body.ed-redesign .ed-kicker{
  display:inline-block;font-family:var(--ed-sans);font-size:12px;font-weight:700;
  letter-spacing:.30em;text-transform:uppercase;color:#C0391B;margin:0 0 14px}
body.ed-redesign .ed-kicker::before{display:none!important}
body.ed-redesign .ed-hero-copy h1{
  font-family:var(--ed-serif);font-weight:700;font-size:39px;line-height:1.16;
  letter-spacing:0;color:#1B1712;margin:0 0 14px}
body.ed-redesign .ed-hero-copy .ed-deck,
body.ed-redesign .ed-hero-copy .ed-dek{
  font-family:var(--ed-serif);font-size:18.5px;line-height:1.52;color:#3A322A;
  max-width:68ch;margin:0 0 20px}
@media(max-width:680px){
  body.ed-redesign .ed-hero-copy{padding:20px 0 0}
  body.ed-redesign .ed-hero-copy h1{font-size:30px;line-height:1.16}
  body.ed-redesign .ed-hero-copy .ed-deck,
  body.ed-redesign .ed-hero-copy .ed-dek{font-size:17px}
  body.ed-redesign .ed-hero-media>img,
  body.ed-redesign .ed-hero-media:has(> .ed-hero-copy)>img{width:100%!important;margin:0}
  body.ed-redesign .ed-hero-media>picture,
  body.ed-redesign .ed-hero-media:has(> .ed-hero-copy)>picture{width:100%!important;margin:0}
}
/* Photo credit — A caption style, under the photo wherever it sits */
body.ed-redesign .ed-photo-credit,
body.ed-redesign .ed-hero-media .ed-photo-credit{
  order:3;position:static!important;max-width:none;text-align:left;
  font-family:var(--ed-sans);font-size:11.5px;line-height:1.5;color:#6E6557;
  padding:8px 0 0;margin:0;text-shadow:none;background:transparent}
body.ed-redesign .ed-photo-credit b,
body.ed-redesign .ed-photo-credit strong{color:#1B1712}

/* ---------- 2. BYLINE ROW — A band */
body.ed-redesign .ed-byline-row{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  border-top:1px solid #D9D0BE;border-bottom:1px solid #D9D0BE;
  padding:13px 0;margin:0 0 22px}
body.ed-redesign .ed-avatar{
  width:42px;height:42px;border-radius:50%;background:#1B1712;color:#FAF6EE;
  font-family:var(--ed-serif);font-size:15px;font-weight:700;overflow:hidden;flex:none}
body.ed-redesign .ed-byline{font-family:var(--ed-sans);font-size:14.5px;line-height:1.35;color:#1B1712}
body.ed-redesign .ed-byline b{font-size:14.5px;font-weight:700;color:#1B1712}
body.ed-redesign .ed-byline .ed-sub{
  font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8A7F6D}
body.ed-redesign .ed-hero .ed-share a,
body.ed-redesign .ed-hero .ed-share button{
  border:1px solid #D9D0BE;border-radius:0;background:transparent;color:#1B1712;backdrop-filter:none}

/* ---------- 3. SHORT VERSION — sand box */
body.ed-redesign .ed-short{
  background:#F2E9D7;color:#1B1712;border:0;border-radius:0;box-shadow:none}
body.ed-redesign .ed-short-label{
  font-family:var(--ed-sans);font-size:11px;font-weight:700;letter-spacing:.28em;
  text-transform:uppercase;color:#C0391B}
body.ed-redesign .ed-short-label::after{background:#A99E8A}
body.ed-redesign .ed-short li{
  font-family:var(--ed-sans);font-size:14.5px;line-height:1.5;color:#1B1712}
body.ed-redesign .ed-short li::before{background:#C0391B;border-radius:0}

/* ---------- 4. PROSE */
body.ed-redesign .ed-prose>p,
body.ed-redesign .ed-prose>p.ed-lede{
  font-family:var(--ed-serif);font-size:17.5px;line-height:1.66;color:#241D16}
body.ed-redesign .ed-prose .ed-dropcap{color:#E10600}
body.ed-redesign .ed-prose h2.ed-subhead{color:#1B1712}
body.ed-redesign .ed-prose h2.ed-subhead .ed-sk{color:#C0391B}
body.ed-redesign .ed-prose figure.inline-photo,
body.ed-redesign .ed-prose figure.ed-photo{border-radius:0}
body.ed-redesign .ed-prose figure.inline-photo img,
body.ed-redesign .ed-prose figure.ed-photo img{border-radius:0!important}
body.ed-redesign .ed-prose figure.inline-photo figcaption,
body.ed-redesign .ed-prose figure.ed-photo figcaption{font-size:11.5px;color:#6E6557}
body.ed-redesign .ed-prose figure figcaption .pc{color:#6E6557}

/* ---------- 5. PULL QUOTES + SOURCES */
body.ed-redesign .ed-pullquote,
body.ed-redesign .ed-prose blockquote{
  border-left:3px solid #C0391B;margin:26px 0;padding:4px 0 4px 20px;background:transparent}
body.ed-redesign .ed-pullquote p,
body.ed-redesign .ed-prose blockquote,
body.ed-redesign .ed-prose blockquote p{
  font-family:var(--ed-serif);font-style:italic;font-size:21px;line-height:1.45;color:#1B1712}
body.ed-redesign .ed-pullquote cite,
body.ed-redesign .ed-prose blockquote cite{
  font-family:var(--ed-sans);font-style:normal;font-size:12.5px;color:#6E6557}
body.ed-redesign .news-sources,
body.ed-redesign .ed-prose .news-sources,
body.ed-redesign section.news-sources{
  border-top:1px solid #D9D0BE;padding-top:12px;font-size:12px;line-height:1.7;color:#6E6557}
body.ed-redesign .news-sources h2{
  font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#1B1712}
body.ed-redesign .news-sources li,
body.ed-redesign .news-sources a,
body.ed-redesign .news-sources .pub{font-size:12px;color:#6E6557}

/* ---------- 6. SIDEBAR — A rail furniture (ads keep working; borders/labels only) */
body.ed-redesign .ed-side-card{
  background:#FFFDF8;border:1px solid #D9D0BE;border-radius:0}
body.ed-redesign .ed-side-card h4{
  font-family:var(--ed-serif);font-size:19px;font-weight:600;color:#1B1712;
  border-bottom:2px solid #1B1712;padding-bottom:8px}
body.ed-redesign .ed-side .ad-slot,
body.ed-redesign .ed-side .pv-adslot{border:1px solid #D9D0BE;border-radius:0;background:transparent}
body.ed-redesign .ad-label,
body.ed-redesign .pv-adslot-label{
  font-family:var(--ed-sans);font-size:11px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:#8A7F6D}
body.ed-redesign .ad-slot.ad-leaderboard{border:1px solid #D9D0BE;border-radius:0}

/* ---------- 7. MORE FROM — furniture only (grid + selection untouched) */
body.ed-redesign .ed-more-head h2{
  font-family:var(--ed-serif);font-weight:600;color:#1B1712}
body.ed-redesign .ed-more-head a{color:#9E2B12}
body.ed-redesign .ed-mcard{
  background:#FFFDF8;border:1px solid #D9D0BE;border-radius:0;overflow:hidden}
body.ed-redesign .ed-mcard .ed-art{border-radius:0}
body.ed-redesign .ed-mcard .ed-art img{border-radius:0}
body.ed-redesign .ed-mcard .ed-cat{
  background:#C0391B;color:#FAF6EE;border-radius:0;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
body.ed-redesign .ed-mcard .ed-tb b{
  font-family:var(--ed-serif);font-weight:600;color:#1B1712}
body.ed-redesign .ed-mcard .ed-tb span{color:#8A7F6D}

/* ---------- 8. SHARE RAIL — A label styling, functions untouched */
body.ed-redesign .ed-share-rail .ed-rail-label{
  font-family:var(--ed-sans);font-size:11px;font-weight:700;letter-spacing:.22em;
  text-transform:uppercase;color:#6E6557}
body.ed-redesign .ed-share-rail a,
body.ed-redesign .ed-share-rail button{
  border:1px solid #D9D0BE;border-radius:0;background:transparent;color:#1B1712}
body.ed-redesign .ed-share-bottom{border-top:1px solid #D9D0BE;border-bottom:1px solid #D9D0BE}

/* Dateline component — house brick pin (James, 2026-10-14): the place
   name and the short rule wear the site brick #C0391B, not the article
   accent red. Scoped to the dateline component only. */
.ed-dateline-place{color:#C0391B}
.ed-prose>p.ed-dateline-line::before{background:#C0391B}

/* DIRECTION A SKIN — amendment (2026-10-14): later-loaded theme sheets were
   repainting the hero H1/kicker/dek #2A1C11 at <=680px. Direction A ink and
   brick hold at ALL widths. */
body.ed-redesign .ed-hero-copy h1{color:#1B1712!important}
body.ed-redesign .ed-kicker{color:#C0391B!important}
body.ed-redesign .ed-hero-copy .ed-deck,
body.ed-redesign .ed-hero-copy .ed-dek{color:#3A322A!important}

/* Dateline component — redesign-scope strength (2026-10-14): the generic
   body.ed-redesign prose rule (0,2,2) outranks the base component rule
   (0,2,1) and was setting the line in body serif at body size. Re-state
   the component under the redesign scope (0,3,2) so the filing stamp
   renders small letterspaced sans at every width. */
body.ed-redesign .ed-prose>p.ed-dateline-line{font-family:var(--ed-sans);font-size:12.5px;font-weight:600;line-height:1.6;letter-spacing:.15em;text-transform:uppercase;color:var(--ed-faint);margin:0 0 1.7em}
/* ==========================================================================
   POLISH PASS — HOME/NEWS CREW (2026-10-15)
   Two surgical fixes, story pages only:
   1) KEEP READING gutter: the <=1020px .ed-more rule zeroed horizontal
      padding, so the block's kicker/headline/cards touched the screen
      edges while every other block on the page sits in a 20px gutter
      (the "KEEP READING" kicker rendered clipped at the left edge).
      Restore the family's 20px gutter inside the sand band.
   2) BYLINE META ORPHAN: the date/time/read-time line wrapped with a
      lone "READ" on its own line at phone widths. Balance the wrap.
   ========================================================================== */
@media (max-width:1020px){
  .ed-more{padding-left:20px;padding-right:20px}
}
.ed-byline .ed-sub{text-wrap:balance}

/* ---------- Byline strip (2026-10-15): replaces the author card ---------- */
body .ed-side-card.ed-byline-strip{padding:16px 18px}
.ed-byline-strip .ed-author-card{margin-bottom:0}
.ed-byline-strip .ed-avatar{background:#FAF6EE;border:1px solid var(--ed-line);overflow:hidden}
body.ed-redesign .ed-byline-strip .ed-avatar{background:#FAF6EE;border-color:#D9D0BE}
.ed-byline-strip .ed-avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}

/* CRISP EDGES (2026-10-17, James's order - supersedes the soft-edge
   tuning of 2026-10-15): hero photos no longer feather into the page.
   On the black scheme the masked fade read as a blurred edge; article
   photos now render with crisp edges. The --hero-fade variable and the
   mask rules are removed. .pv-softedge remains as a no-op name so any
   page still carrying the class renders crisp instead of feathered. */
.ed-hero-media{background:transparent}
.pv-softedge{}

/* ============ PROSE GRID GUARD (2026-10-15) ============
   The layout grid (.ed-grid) belongs outside the article. A stray
   .ed-grid nested inside .ed-prose (hand-composed body fragment)
   must never become a layout grid: at desktop widths it squeezed
   body copy into the 56px and 320px tracks (Paul Kim story,
   2026-10-15). Neutralize any such nesting outright. */
.ed-prose .ed-grid{display:block;max-width:none;margin:0;padding:0}

/* --- Sources collapse (2026-10-15): tap-to-expand disclosure --- */
details.pv-sources>summary.pv-sources-summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;margin:0;padding:2px 0}
details.pv-sources>summary.pv-sources-summary::-webkit-details-marker{display:none}
.news-sources details.pv-sources>summary.pv-sources-summary{font-family:var(--font-sans);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.ed-sources details.pv-sources>summary.pv-sources-summary{font-family:var(--ed-sans);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
details.pv-sources>summary .pv-sources-count{letter-spacing:.05em;text-transform:none;font-weight:600;white-space:nowrap}
details.pv-sources>summary::after{content:"";margin-left:auto;flex:0 0 auto;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .18s ease}
details.pv-sources[open]>summary::after{transform:rotate(225deg)}
details.pv-sources[open]>summary.pv-sources-summary{margin-bottom:8px}
details.pv-sources>summary:focus-visible{outline:2px solid #C0391B;outline-offset:3px}
/* Header separator — James spec 2026-10-16: ONE single solid white line (the 2026-10-15 14px stripe, reduced 2026-10-16) */
.pv-site-head{border-bottom:1px solid #FFFFFF}

/* ============================================================================
   D3 CINEMATIC HYBRID — ARTICLE FAMILY (2026-10-15, UI overhaul live build)
   ----------------------------------------------------------------------------
   OPT-IN: every rule below is scoped under html[data-theme="d3"], set by
   the article template + article_template.py (_normalize_d3). Pages
   without the attribute render EXACTLY as before — the unscoped rules
   above are untouched. D3 vars come from /css/design-tokens-d3.css
   (linked by the template/enforcer). This section ALSO remaps the
   desert/ed token chain on the html element, so every var-consuming
   component on an opted-in page (nav mount, bottom nav, polls, ads,
   footer) resolves to the D3 palette; #EC4634 (drift red) is replaced
   by brick #C0391B for --brand-red on opted pages only.
   Palette: ground #171310 · surface #241C15 / #2E241B · inset #0D0A07 ·
   text #F4EFE6 · secondary #CBBFA9 · muted #A2937D · brick #C0391B
   (fills/rules/display only) · accent text #E0684B. Every text pairing
   >= 4.5:1. Radii 2px. One pinned dark scheme.
   ========================================================================== */
html[data-theme="d3"]{
  color-scheme:dark;
  --desert-bg:#171310; --desert-bg-rgb:23,19,16;
  --desert-card:#241C15; --desert-card-rgb:36,28,21;
  --desert-pressed:#0D0A07; --desert-pressed-rgb:13,10,7;
  --desert-ink:#F4EFE6; --desert-ink-rgb:244,239,230;
  --desert-ink-dim:#CBBFA9; --desert-ink-faint:#A2937D;
  --desert-rule:#3A2E21;
  --desert-accent:#C0391B; --desert-accent-rgb:192,57,27;
  --desert-accent-deep:#A93212; --desert-accent-deep-rgb:169,50,18;
  --desert-accent-ember:#E0684B; --desert-accent-ember-rgb:224,104,75;
  --desert-accent-soft:rgba(192,57,27,.16); --desert-accent-faint:rgba(192,57,27,.08);
  --desert-accent-glow:rgba(192,57,27,.35); --desert-accent-glow-lg:rgba(192,57,27,.5);
  --desert-shadow:rgba(0,0,0,.45); --desert-shadow-rgb:0,0,0;
  --desert-glass:rgba(23,19,16,.92);
  --desert-scrim-strong:rgba(13,10,7,.92); --desert-scrim-mid:rgba(13,10,7,.5); --desert-scrim-soft:rgba(13,10,7,.06);
  --brand-red:#C0391B; --brand-red-rgb:192,57,27; --brand-red-deep:#E0684B; --brand-red-ember:#E0684B;
  --color-warn:#E0684B; --color-warn-rgb:224,104,75;
  --color-text:#F4EFE6; --color-bg:#171310; --color-surface:#241C15; --color-surface-deep:#0D0A07;
  --color-line:#3A2E21; --color-on-accent:#F4EFE6;
  --surface-black:#0D0A07; --surface-light:#241C15; --surface-cream:#241C15;
  --surface-sand:#0D0A07; --surface-paper:#171310; --surface-dark:#171310;
  --text-on-dark:#F4EFE6; --text-on-dark-muted:#CBBFA9; --text-on-dark-faint:#A2937D;
  --well-gold:#E0684B;
  --font-serif:"Fraunces",Georgia,"Times New Roman",serif;
  --ed-page:#171310; --ed-surface:#241C15; --ed-surface-2:#2E241B;
  --ed-ink:#F4EFE6; --ed-copy:#F4EFE6; --ed-muted:#CBBFA9; --ed-faint:#A2937D;
  --ed-line:#3A2E21; --ed-line-strong:#5A4630;
  --ed-accent:#C0391B; --ed-amber:#E0684B; --ed-dropcap:#E10600;
  --ed-serif:"Fraunces",Georgia,"Times New Roman",serif;
  --ed-sans:"Inter",-apple-system,"Segoe UI",Roboto,sans-serif;
  background:#171310;
}
html[data-theme="d3"] body{background:#171310;color:#F4EFE6}

/* ---------- masthead / chrome (pv-site-head structure kept, D3 restyle) --- */
html[data-theme="d3"] .pv-site-head{background:#000000}
html[data-theme="d3"] .pv-site-head .topbar{color:#A5ACAF}
html[data-theme="d3"] .pv-site-head .brand .word{color:#A5ACAF;font-family:"Fraunces",Georgia,serif}
html[data-theme="d3"] .pv-site-head .brand .desk{color:#8C9399}
html[data-theme="d3"] footer{background:#000000;color:#A5ACAF;border-top:1px solid #2C2C2C}
html[data-theme="d3"] footer a{color:#A5ACAF}
html[data-theme="d3"] footer .wordmark,html[data-theme="d3"] footer a.wordmark{color:#A5ACAF;font-family:"Fraunces",Georgia,serif}
html[data-theme="d3"] .ad-label,html[data-theme="d3"] .pv-adslot-label{color:#A2937D}
/* Ad-slot box containment (2026-10-15 overflow fix): the legacy article
   stack gets border-box sizing from /title.css's universal reset, which
   the D3 stack does not load. Without it, the leaderboard house creative
   (width:100% + 20px side padding, content-box by default) rendered 40px
   wider than its slot - a 39px horizontal page overflow on D3 articles.
   Border-box restores the exact legacy rendered size. Scoped to D3 pages
   and to the house-creative box only; no creative or legacy rule changed. */
html[data-theme="d3"] .pv-housead-creative{box-sizing:border-box}

/* ---------- hero ---------- */
html[data-theme="d3"] .ed-hero-media{border-radius:2px;background:#0D0A07}
html[data-theme="d3"] .ed-hero-scrim{background:linear-gradient(180deg,rgba(13,10,7,.55) 0%,rgba(13,10,7,.16) 28%,rgba(13,10,7,.45) 56%,rgba(13,10,7,.97) 100%)}
html[data-theme="d3"] .ed-hero-scrim::after{background:radial-gradient(120% 95% at 22% 100%,rgba(0,0,0,.6) 0%,rgba(0,0,0,0) 72%)}
html[data-theme="d3"] .ed-kicker{color:#E0684B}
html[data-theme="d3"] .ed-kicker::before{background:#C0391B;border-radius:2px}
html[data-theme="d3"] .ed-hero-copy h1{font-family:"Fraunces",Georgia,serif;color:#F4EFE6}
html[data-theme="d3"] .ed-hero-copy .ed-deck,html[data-theme="d3"] .ed-hero-copy .ed-dek{color:#F4EFE6}
html[data-theme="d3"] .ed-byline{color:#F4EFE6}
html[data-theme="d3"] .ed-byline .ed-sub{color:#CBBFA9}
html[data-theme="d3"] .ed-photo-credit{color:#CBBFA9}
html[data-theme="d3"] .ed-share a,html[data-theme="d3"] .ed-share button{border-radius:2px;border-color:rgba(244,239,230,.4);color:#F4EFE6}
html[data-theme="d3"] .ed-share a:hover,html[data-theme="d3"] .ed-share button:hover{background:#C0391B;border-color:#C0391B}

/* ---------- reading body: serif 17.5/1.65, ~700px measure ---------- */
html[data-theme="d3"] .ed-prose{max-width:720px}
html[data-theme="d3"] .ed-prose>p{font-family:"Fraunces",Georgia,"Times New Roman",serif;font-size:17.5px;line-height:1.65;color:#F4EFE6}
html[data-theme="d3"] .ed-prose>p.ed-lede{font-size:19.5px;line-height:1.6;color:#F4EFE6}
html[data-theme="d3"] .ed-redesign .news-body p,html[data-theme="d3"] .news-body p{font-family:"Fraunces",Georgia,"Times New Roman",serif;font-size:17.5px;line-height:1.65;color:#F4EFE6}
html[data-theme="d3"] .ed-prose .ed-dropcap{font-family:"Fraunces",Georgia,serif;color:#E10600}
html[data-theme="d3"] .ed-prose>p.ed-dateline-line{font-family:"Inter",sans-serif;color:#A2937D}
html[data-theme="d3"] .ed-prose>p.ed-dateline-line::before{background:#C0391B;border-radius:2px}
html[data-theme="d3"] .ed-dateline-place{color:#E0684B}
html[data-theme="d3"] .ed-dateline-rest{color:#A2937D}
html[data-theme="d3"] .ed-dateline{color:#F4EFE6}
html[data-theme="d3"] .ed-prose h2.ed-subhead{font-family:"Fraunces",Georgia,serif;color:#F4EFE6}
html[data-theme="d3"] .ed-prose h2.ed-subhead .ed-sk{color:#E0684B}
html[data-theme="d3"] .ed-prose a{color:#E0684B}
html[data-theme="d3"] .ed-prose blockquote{border-left-color:#C0391B;color:#F4EFE6;font-family:"Fraunces",Georgia,serif}
html[data-theme="d3"] .ed-prose blockquote cite{color:#A2937D;font-family:"Inter",sans-serif}
html[data-theme="d3"] .ed-pullquote{border-left-color:#C0391B}
html[data-theme="d3"] .ed-pullquote p{font-family:"Fraunces",Georgia,serif;color:#F4EFE6}
html[data-theme="d3"] .ed-pullquote cite{color:#CBBFA9}
html[data-theme="d3"] .ed-prose table{color:#F4EFE6}
html[data-theme="d3"] .ed-prose th,html[data-theme="d3"] .ed-prose td{border-color:#3A2E21}
html[data-theme="d3"] .ed-photo{border-color:#3A2E21;border-radius:2px}
html[data-theme="d3"] .ed-photo figcaption{color:#CBBFA9}
html[data-theme="d3"] .ed-photo figcaption .pc{color:#A2937D}
html[data-theme="d3"] .news-hero{border-color:#3A2E21}
html[data-theme="d3"] .news-hero figcaption{color:#A2937D}
html[data-theme="d3"] .ed-fig-wide figcaption,html[data-theme="d3"] .ed-prose figure.inline-photo figcaption{color:#CBBFA9}
html[data-theme="d3"] .ed-fig-wide figcaption .ed-cred,html[data-theme="d3"] .ed-prose figure.inline-photo figcaption .ed-cred{color:#A2937D}
html[data-theme="d3"] .ed-fig-wide img,html[data-theme="d3"] .ed-prose figure.inline-photo img{border-radius:2px}
html[data-theme="d3"] .wire-item{color:#F4EFE6;font-family:"Fraunces",Georgia,serif}
html[data-theme="d3"] .wire-item b.wire-tag{color:#E0684B}

/* ---------- key facts ---------- */
html[data-theme="d3"] .ed-facts{background:#241C15;border-color:#3A2E21;border-radius:2px}
html[data-theme="d3"] .ed-facts h3{color:#E0684B}
html[data-theme="d3"] .ed-facts h3::after{background:#3A2E21}
html[data-theme="d3"] .ed-fact{border-bottom-color:#3A2E21}
html[data-theme="d3"] .ed-fact .ed-k{color:#CBBFA9}
html[data-theme="d3"] .ed-fact .ed-v{color:#F4EFE6}

/* ---------- Short Version: the inset well #0D0A07 ---------- */
html[data-theme="d3"] .ed-short{background:#0D0A07;color:#F4EFE6;border:1px solid #3A2E21;border-radius:2px;box-shadow:none}
html[data-theme="d3"] .ed-short-label{color:#E0684B}
html[data-theme="d3"] .ed-short-label::after{background:#3A2E21}
html[data-theme="d3"] .ed-short li{color:#F4EFE6}
html[data-theme="d3"] .ed-short li::before{background:#C0391B;border-radius:2px}

/* ---------- share rail / toast / bottom bar ---------- */
html[data-theme="d3"] .ed-share-rail .ed-rail-label{color:#A2937D}
html[data-theme="d3"] .ed-share-rail a,html[data-theme="d3"] .ed-share-rail button{border-radius:2px;background:#241C15;border-color:#3A2E21;color:#CBBFA9}
html[data-theme="d3"] .ed-share-rail a:hover,html[data-theme="d3"] .ed-share-rail button:hover{background:#C0391B;border-color:#C0391B;color:#F4EFE6}
html[data-theme="d3"] .ed-share-toast{background:#2E241B;color:#F4EFE6;border-color:#3A2E21;border-radius:2px}
html[data-theme="d3"] .ed-share-bottom{border-top-color:#3A2E21;border-bottom-color:#3A2E21}
html[data-theme="d3"] .ed-share-bottom-label{color:#A2937D}

/* ---------- side rail ---------- */
html[data-theme="d3"] .ed-side-card{background:#241C15;border-color:#3A2E21;border-radius:2px}
html[data-theme="d3"] .ed-side-card h4{color:#CBBFA9}
html[data-theme="d3"] .ed-author-card b{color:#F4EFE6}
html[data-theme="d3"] .ed-author-card span{color:#CBBFA9}
html[data-theme="d3"] .ed-side-card p.ed-bio{color:#CBBFA9}
html[data-theme="d3"] .ed-toc a{color:#F4EFE6;border-bottom-color:#3A2E21}
html[data-theme="d3"] .ed-toc a:hover{color:#E0684B}
html[data-theme="d3"] .ed-mini-story{border-bottom-color:#3A2E21}
html[data-theme="d3"] .ed-mini-story b{color:#F4EFE6}
html[data-theme="d3"] .ed-mini-story span{color:#A2937D}
html[data-theme="d3"] .ed-mini-story img{border-radius:2px}
html[data-theme="d3"] .ed-newsletter p{color:#CBBFA9}
html[data-theme="d3"] .ed-newsletter input{background:#0D0A07;border-color:#3A2E21;color:#F4EFE6;border-radius:2px}
html[data-theme="d3"] .ed-newsletter button{background:#C0391B;color:#F4EFE6;border-radius:2px}

/* ---------- sources (collapsed disclosure) ---------- */
html[data-theme="d3"] .ed-sources{border-top-color:#3A2E21;color:#A2937D}
html[data-theme="d3"] .ed-sources h3{color:#A2937D}
html[data-theme="d3"] .ed-sources li,html[data-theme="d3"] .ed-sources .ed-pub{color:#A2937D}
html[data-theme="d3"] .ed-sources li a{color:#A2937D}
html[data-theme="d3"] .ed-sources li a:hover{color:#CBBFA9}
html[data-theme="d3"] .news-sources{border-top-color:#3A2E21;color:#A2937D}
html[data-theme="d3"] .news-sources h2{color:#A2937D}
html[data-theme="d3"] .news-sources li,html[data-theme="d3"] .news-sources .pub{color:#A2937D}
html[data-theme="d3"] .news-sources a{color:#A2937D}
html[data-theme="d3"] .news-sources a:hover{color:#CBBFA9}

/* ---------- related rail (More from the newsroom) ---------- */
html[data-theme="d3"] .ed-more-head h2{font-family:"Fraunces",Georgia,serif;color:#F4EFE6}
html[data-theme="d3"] .ed-more-head a{color:#E0684B}
html[data-theme="d3"] .ed-mcard{background:#241C15;border-color:#3A2E21;border-radius:2px}
html[data-theme="d3"] .ed-mcard:hover{border-color:#5A4630}
html[data-theme="d3"] .ed-mcard .ed-cat{background:rgba(13,10,7,.78);color:#F4EFE6;border-radius:2px}
html[data-theme="d3"] .ed-mcard .ed-tb b{font-family:"Fraunces",Georgia,serif;color:#F4EFE6}
html[data-theme="d3"] .ed-mcard .ed-tb span{color:#A2937D}

/* ---------- take box / misc prose furniture ---------- */
html[data-theme="d3"] .pv-take{background:#241C15;border-color:#3A2E21;border-radius:2px;color:#F4EFE6}
html[data-theme="d3"] .ed-avatar{background:#C0391B;color:#F4EFE6}

/* ---- D3 fix block (2026-10-15): the Direction A layer in this file uses
   body.ed-redesign-prefixed rules (specificity (0,2,x)/(0,3,x)) and three
   !important ink rules (h1 #1B1712, kicker brick-as-text, deck #3A322A)
   written for the cream ground. On D3 pages those specific rules are
   overridden here with stronger scoped selectors; everything else in the
   D3 section above already wins or ties-and-postdates. ---- */
html[data-theme="d3"] body.ed-redesign{background:#171310;color:#F4EFE6}
html[data-theme="d3"] body.ed-redesign .ed-hero{background:transparent}
html[data-theme="d3"] body.ed-redesign .ed-hero-copy h1{color:#F2F2F2!important}
html[data-theme="d3"] body.ed-redesign .ed-kicker{color:#E10600!important}
html[data-theme="d3"] body.ed-redesign .ed-hero-copy .ed-deck,
html[data-theme="d3"] body.ed-redesign .ed-hero-copy .ed-dek{color:#C9CCCE!important}
html[data-theme="d3"] body.ed-redesign .ed-hero .ed-share a,
html[data-theme="d3"] body.ed-redesign .ed-hero .ed-share button{background:transparent;border-color:#2C2C2C;color:#A5ACAF}
html[data-theme="d3"] body.ed-redesign .ed-hero .ed-share a:hover,
html[data-theme="d3"] body.ed-redesign .ed-hero .ed-share button:hover{background:#E10600;border-color:#E10600}
html[data-theme="d3"] body.ed-redesign .ed-byline-row{border-top-color:#3A2E21;border-bottom-color:#3A2E21}
html[data-theme="d3"] body.ed-redesign .ed-byline b{color:#F4EFE6}
html[data-theme="d3"] body.ed-redesign .ed-photo-credit{color:#A2937D}
html[data-theme="d3"] body.ed-redesign .ed-photo-credit b,
html[data-theme="d3"] body.ed-redesign .ed-photo-credit strong{color:#CBBFA9}
html[data-theme="d3"] body.ed-redesign .ed-prose figure.inline-photo figcaption,
html[data-theme="d3"] body.ed-redesign .ed-prose figure.ed-photo figcaption{color:#CBBFA9}
html[data-theme="d3"] body.ed-redesign .ed-prose figure figcaption .pc{color:#A2937D}
html[data-theme="d3"] body.ed-redesign .ed-prose blockquote cite,
html[data-theme="d3"] body.ed-redesign .ed-pullquote cite{color:#A2937D}
html[data-theme="d3"] body.ed-redesign .news-sources{color:#A2937D;border-top-color:#3A2E21}
html[data-theme="d3"] body.ed-redesign .news-sources h2{color:#CBBFA9}
html[data-theme="d3"] body.ed-redesign .news-sources li,
html[data-theme="d3"] body.ed-redesign .news-sources a,
html[data-theme="d3"] body.ed-redesign .news-sources .pub{color:#A2937D}
html[data-theme="d3"] body.ed-redesign .ed-byline-strip .ed-avatar{background:#241C15;border-color:#3A2E21}
html[data-theme="d3"] body.ed-redesign .ed-side-card h4{border-bottom-color:#3A2E21}

/* ---- D3 fix block 2 (2026-10-15): pv-widgets.css (bundled into the
   article head) redefines the whole desert palette ON body
   (body{--desert-bg:#FAF6EE; --desert-ink:#2A1C11; color-scheme:light}),
   shadowing the html-level D3 remap for every var() consumer below body
   (the .pvn nav chrome, the pv-social comments layer, the podcast
   player). Re-assert the full D3 token chain on body scope, scoped to
   opted pages only. Specificity (0,1,2) beats the bundle's body (0,0,1)
   at any load order. ---- */
html[data-theme="d3"] body{
  color-scheme:dark;
  --desert-bg:#171310; --desert-bg-rgb:23,19,16;
  --desert-card:#241C15; --desert-card-rgb:36,28,21;
  --desert-pressed:#0D0A07; --desert-pressed-rgb:13,10,7;
  --desert-ink:#F4EFE6; --desert-ink-rgb:244,239,230;
  --desert-ink-dim:#CBBFA9; --desert-ink-faint:#A2937D;
  --desert-rule:#3A2E21;
  --desert-accent:#C0391B; --desert-accent-rgb:192,57,27;
  --desert-accent-deep:#A93212; --desert-accent-deep-rgb:169,50,18;
  --desert-accent-ember:#E0684B; --desert-accent-ember-rgb:224,104,75;
  --desert-shadow:rgba(0,0,0,.45); --desert-shadow-rgb:0,0,0;
  --desert-glass:rgba(23,19,16,.92);
  --brand-red:#C0391B; --brand-red-rgb:192,57,27; --brand-red-deep:#E0684B; --brand-red-ember:#E0684B;
  --color-warn:#E0684B; --color-warn-rgb:224,104,75;
  --pv-noir:#171310; --pv-noir-2:#241C15; --pv-noir-3:#2E241B;
  --pv-ivory:#F4EFE6; --pv-ivory-dim:#CBBFA9; --pv-ivory-faint:#A2937D;
  --pv-rule:#3A2E21; --pv-red:#C0391B; --pv-red-deep:#E0684B; --pv-red-ember:#E0684B;
  --pv-accent:#C0391B; --pv-bg:#171310; --pv-card:#241C15;
  --pv-text:#F4EFE6; --pv-text-dim:#CBBFA9; --pv-text-faint:#A2937D;
  --pv-glass:rgba(23,19,16,.92);
  --surface-black:#0D0A07; --surface-light:#241C15; --surface-cream:#241C15;
  --surface-sand:#0D0A07; --surface-paper:#171310; --surface-dark:#171310;
  --text-on-dark:#F4EFE6; --text-on-dark-muted:#CBBFA9; --text-on-dark-faint:#A2937D;
}
/* comments layer (pv-social) — explicit anchors where its own vars point
   at fixed light values (avatar initials were cream-on-cream) */
html[data-theme="d3"] .pvs-avatar-init{background:#C0391B;color:#F4EFE6}
html[data-theme="d3"] .pvs-root{color:#F4EFE6}

/* ---------- Short Version tightening (James, 2026-10-15) ----------
   His order, from the Bend article on his phone: the heading sits on
   ONE line, and the dead space at the top of the box goes away.
   Root cause: the desk/breaking template heads this box with a bare
   <h2> inside .ed-prose, so it took the prose-subhead treatment
   (serif at prose size, 2em top margin) on top of the box padding.
   The Rewind variant heads it with .ed-short-label and shares the box.
   These rules pin the component geometry for both variants and both
   themes, and outrank the per-page inline styles. Bullet text size
   and line-height are NOT touched. */
.ed-short.ed-short{padding:16px 20px 14px}
.ed-short.ed-short h2{
  font-family:var(--font-serif),"Fraunces",var(--ed-serif),Georgia,serif;
  font-size:clamp(19px,5.2vw,24px);font-weight:800;line-height:1.15;
  letter-spacing:.13em;text-transform:uppercase;white-space:nowrap;
  margin:0 0 10px}
.ed-short .ed-short-label{margin:0 0 10px}
.ed-short.ed-short li{margin-bottom:8px}
.ed-short.ed-short li:last-child{margin-bottom:0}

/* ALL-RED WORDMARK STRAGGLER FIX (James, 2026-10-16 06:22 PT): the
   article masthead brand (hidden on articles since 2026-10-06, but live
   in this component's other mounts) and the D3 article footer wordmark
   render entirely in signal red #E10600. */
html[data-theme="d3"] .pv-site-head .brand .word{color:#E10600}
html[data-theme="d3"] .pv-site-head .brand .word em{color:#E10600}
html[data-theme="d3"] footer .wordmark,html[data-theme="d3"] footer a.wordmark{color:#E10600}
html[data-theme="d3"] footer .wordmark em{color:#E10600}

/* ALL-RED WORDMARK STRAGGLER FIX 2 (James, 2026-10-16 06:22 PT): the
   house-ad brand lockup renders entirely in signal red #E10600. */
.pv-housead-word{color:#E10600}
.pv-housead-word em{color:#E10600}

/* 2026-10-16 drop-cap fix (James): letter tightened to its word (3.3em/.74, padding .03em .085em 0 0), signal red #E10600. */
