/* ==========================================================================
   Real World Wire: site.css
   1) Brand tokens (copied verbatim from brands/realworldwire/tokens.css)
   2) Layout + components (header, ticker, story card, label badge, legend, footer...)
   Rule: --hivis (#FFCC00) is used for FILLS only (kicker, ticker, buttons, bars), never as text on light.
   ========================================================================== */
/* Real World Wire — design tokens. Google Fonts: Barlow Condensed + Inter + IBM Plex Mono */
@import url("https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;700&display=swap");

/* ---- Shared base (identical in both publications) ---- */
:root {
  --paper: #F7F5F0;      /* page background */
  --ink: #16181D;        /* body text (16.30:1 on paper) */
  --graphite: #5A606B;   /* muted text, meta (5.81:1 on paper) */
  --rule: #DAD6CC;       /* borders/dividers only, non-text */
  --white: #FFFFFF;

  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* type scale: 1.250 (major third), 18px body */
  --step--1: 0.889rem;  /* 14.2px meta, captions */
  --step-0: 1.125rem;   /* 18px body */
  --step-1: 1.406rem;   /* 22.5px */
  --step-2: 1.758rem;   /* 28.1px h3 */
  --step-3: 2.197rem;   /* 35.2px h2 */
  --step-4: 2.747rem;   /* 44px h1 */
  --step-5: 3.433rem;   /* 55px display */
  --leading-body: 1.6;
  --leading-head: 1.12;
  --measure: 68ch;
  --radius: 6px;
}
body { background: var(--paper); color: var(--ink); font-family: var(--font-body); font-size: var(--step-0); line-height: var(--leading-body); }
small, .meta { font-size: var(--step--1); color: var(--graphite); }
code, .label { font-family: var(--font-mono); }
hr { border: 0; border-top: 1px solid var(--rule); }

/* ---- Real World Wire accents ---- */
:root {
  --font-head: "Barlow Condensed", "Arial Narrow", Impact, sans-serif;
  --asphalt: #23262B;    /* primary: logo, headlines, header/footer bars (13.93:1 on paper) */
  --hivis: #FFCC00;      /* accent FILL only: WIRE tag, ticker, underline bars. Never text on light (1.39:1). Asphalt on it 10.04:1 */
  --concrete: #ECEAE4;   /* tint: cards, evidence boxes */
  --verified: #1E6B3A;   /* evidence tier: Verified (5.99:1) */
  --reported: #2B5797;   /* evidence tier: Reported; also links (6.62:1) */
  --claim: #6A6F78;      /* evidence tier: Vendor or builder claim (4.64:1) */
  --alert: #B3202A;      /* "What went wrong", corrections (6.11:1) */
  --accent: var(--hivis);
}
h1, h2, h3, .display { font-family: var(--font-head); font-weight: 800; text-transform: uppercase; letter-spacing: .01em; color: var(--asphalt); line-height: 1.02; }
h1 { font-size: var(--step-5); } h2 { font-size: var(--step-4); } h3 { font-size: var(--step-2); font-weight: 700; }
.dek { font-family: var(--font-head); font-weight: 600; font-size: var(--step-2); color: var(--graphite); text-transform: none; }
a { color: var(--reported); text-underline-offset: 3px; }
.kicker { display: inline-block; background: var(--hivis); color: var(--asphalt); font-family: var(--font-mono); font-weight: 700; font-size: var(--step--1); letter-spacing: .1em; text-transform: uppercase; padding: .15em .5em; }
.dateline { font-family: var(--font-mono); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.tier { font-family: var(--font-mono); font-size: var(--step--1); text-transform: uppercase; letter-spacing: .06em; border: 1.5px solid currentColor; padding: .05em .45em; }
.tier--verified { color: var(--verified); } .tier--reported { color: var(--reported); } .tier--claim { color: var(--claim); }
.went-wrong { border-left: 4px solid var(--alert); background: var(--concrete); padding: 1rem 1.25rem; }
.went-wrong strong { color: var(--alert); }
.sponsor-label { font-family: var(--font-mono); font-size: var(--step--1); text-transform: uppercase; letter-spacing: .08em; color: var(--graphite); border: 1px solid var(--rule); padding: .1em .5em; }

/* Extra label colors for the 5-label scheme (Researcher). Unconfirmed + Disputed are NOT in the brand kit yet:
   chosen from existing kit tokens (graphite, alert). Pending Branding Bot confirmation. */
:root { --unconfirmed: var(--graphite); --disputed: var(--alert); }

/* ---- Base / layout ---- */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
img, svg { max-width: 100%; height: auto; display: block; }
h1, h2, h3 { margin: 0 0 .45em; text-wrap: balance; }
p { margin: 0 0 1em; }
.wrap { width: min(1160px, 100% - 2.5rem); margin-inline: auto; }
.prose { max-width: var(--measure); }
.skip-link { position: absolute; left: -999px; top: 0; background: var(--hivis); color: var(--asphalt); padding: .6rem 1rem; z-index: 10; font-weight: 700; }
.skip-link:focus { left: 1rem; top: 1rem; }
:focus-visible { outline: 3px solid var(--asphalt); outline-offset: 2px; box-shadow: 0 0 0 6px var(--hivis); border-radius: 1px; }
.site-header :focus-visible, .site-footer :focus-visible { outline-color: var(--hivis); box-shadow: none; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.section { padding-block: clamp(2.25rem, 5vw, 4rem); }
.section + .section { border-top: 1px solid var(--rule); }
.section-head { display: flex; justify-content: space-between; align-items: baseline; gap: .75rem 1rem; flex-wrap: wrap; margin-bottom: 1.25rem; border-bottom: 4px solid var(--asphalt); padding-bottom: .4rem; }
.section-head h2 { margin: 0; font-size: var(--step-3); }
.eyebrow, .label-mono { font-family: var(--font-mono); font-size: var(--step--1); letter-spacing: .08em; text-transform: uppercase; color: var(--graphite); }
.btn { display: inline-flex; align-items: center; justify-content: center; font: 700 var(--step-0)/1.2 var(--font-body); padding: .8em 1.2em; border-radius: var(--radius); border: 2px solid var(--asphalt); background: var(--hivis); color: var(--asphalt); text-decoration: none; cursor: pointer; }
.btn:hover { background: #ffd633; }
.btn--dark { background: var(--asphalt); color: var(--white); }
.btn--dark:hover { background: #000; }
.btn--ghost { background: transparent; color: var(--asphalt); }
.btn--ghost:hover { background: var(--white); }
.grid { display: grid; gap: 1.25rem; }
.grid--3 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.grid--4 { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
.layout-article { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 3rem; align-items: start; }

.sample-tag { display: inline-block; font-family: var(--font-mono); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--asphalt); background: var(--white); border: 1.5px dashed var(--asphalt); padding: 0 .45em; border-radius: 3px; vertical-align: middle; }
.sample-banner { background: var(--hivis); color: var(--asphalt); font-family: var(--font-mono); font-size: var(--step--1); font-weight: 500; text-align: center; padding: .45rem 1rem; margin: 0; }
.draft-note { border: 2px dashed var(--alert); background: var(--white); padding: 1rem 1.25rem; border-radius: var(--radius); margin-bottom: 2rem; }
.draft-note strong { color: var(--alert); }
.placeholder { color: var(--graphite); font-style: italic; }

/* ---- Header ---- */
.site-header { background: var(--asphalt); color: var(--white); }
.site-header .bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem 2rem; padding-block: .9rem; flex-wrap: wrap; }
.brand img { width: 300px; }
.site-nav { min-width: 0; }
.site-nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; margin: 0; padding: 0; align-items: center; }
.site-nav a { color: var(--white); text-decoration: none; font-family: var(--font-head); font-weight: 700; text-transform: uppercase; letter-spacing: .03em; font-size: 1.15rem; padding: .2rem 0; border-bottom: 3px solid transparent; }
.site-nav a:hover, .site-nav a[aria-current="page"] { border-bottom-color: var(--hivis); }
.site-nav .btn { font-family: var(--font-body); text-transform: none; letter-spacing: 0; font-size: 1rem; padding: .5em .9em; border-color: var(--hivis); }
.site-nav .btn:hover { border-bottom-color: var(--hivis); }
.ticker { background: var(--hivis); color: var(--asphalt); font-family: var(--font-mono); font-weight: 700; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; overflow: hidden; padding: .4rem 0; }
.ticker span + span::before { content: "·"; margin: 0 .9em; }

/* ---- Kicker / dateline / labels ---- */
.kicker { text-decoration: none; }
a.kicker:hover { background: #ffd633; }
.dateline { font-size: var(--step--1); color: var(--asphalt); }
/* component: VerificationLabel */
.vlabel { display: inline-flex; align-items: center; gap: .4em; font-family: var(--font-mono); font-weight: 700; font-size: var(--step--1); text-transform: uppercase; letter-spacing: .06em; border: 1.5px solid currentColor; padding: .05em .5em; border-radius: 3px; background: var(--white); line-height: 1.5; }
.vlabel .g { font-size: .9em; }
/* Labels: always symbol + text, never color alone. Verified/Reported/Vendor claim = solid fill, white text;
   Unconfirmed = graphite dashed border; Disputed = red outline only (not solid). */
.vlabel--verified { background: var(--verified); border-color: var(--verified); color: var(--white); }
.vlabel--reported { background: var(--reported); border-color: var(--reported); color: var(--white); }
.vlabel--claim { background: var(--claim); border-color: var(--claim); color: var(--white); }
.vlabel--unconfirmed { color: var(--unconfirmed); border-style: dashed; }
.vlabel--disputed { color: var(--disputed); border-width: 2px; }
.vlabel--lg { font-size: 1rem; padding: .2em .7em; }
/* component: HowWeKnow */
.label-block { border: 1px solid var(--rule); border-left: 6px solid currentColor; background: var(--white); padding: .9rem 1.1rem; border-radius: var(--radius); margin: 1rem 0 1.5rem; }
.label-block.is-verified { border-left-color: var(--verified); } .label-block.is-reported { border-left-color: var(--reported); }
.label-block.is-claim { border-left-color: var(--claim); } .label-block.is-unconfirmed { border-left-color: var(--unconfirmed); } .label-block.is-disputed { border-left-color: var(--disputed); }
.label-block p { margin: .5rem 0 0; font-size: 1rem; color: var(--ink); }
.label-block p strong { font-family: var(--font-mono); font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; }
.label-block .legend-link { font-size: var(--step--1); }

/* ---- Story card (component: StoryCard) ---- */
.story-card { background: var(--white); border: 1px solid var(--rule); border-radius: var(--radius); padding: 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .55rem; }
.story-card .row { display: flex; flex-wrap: wrap; gap: .4rem .6rem; align-items: center; }
.story-card h3 { font-size: var(--step-2); margin: 0; line-height: 1.02; }
.story-card h3 a { color: var(--asphalt); text-decoration: none; }
.story-card h3 a:hover { text-decoration: underline; text-decoration-color: var(--hivis); text-decoration-thickness: 4px; }
.story-card p { margin: 0; font-size: 1rem; }
.story-card .meta { font-family: var(--font-mono); font-size: .8rem; }
.feed { display: grid; gap: 0; }
.feed .story-card { border-radius: 0; border-width: 0 0 1px; background: transparent; padding: 1.1rem 0; }
.lead-story { display: grid; grid-template-columns: 1.4fr 1fr; gap: 2rem; background: var(--asphalt); color: var(--white); border-radius: var(--radius); padding: clamp(1.25rem, 3vw, 2.25rem); }
.lead-story h2 { color: var(--white); font-size: var(--step-5); }
.lead-story h2 a { color: inherit; text-decoration: none; }
.lead-story h2 a:hover { text-decoration: underline; text-decoration-color: var(--hivis); }
.lead-story .dek { color: #C9CDD3; }
.lead-story .facts { border-left: 4px solid var(--hivis); padding-left: 1.25rem; }
.lead-story .facts dt { font-family: var(--font-mono); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: #C9CDD3; }
.lead-story .facts dd { margin: 0 0 .8rem; font-family: var(--font-head); font-weight: 700; font-size: var(--step-2); text-transform: uppercase; color: var(--white); line-height: 1.05; }
.lead-story a:not(.kicker) { color: var(--white); }
.lead-story :focus-visible { outline-color: var(--hivis); box-shadow: none; }

/* ---- Story page ---- */
.story-head { padding-block: 2rem 0; }
.story-head h1 { max-width: 20ch; }
.byline { font-family: var(--font-mono); font-size: var(--step--1); color: var(--graphite); display: flex; flex-wrap: wrap; gap: .25rem 1.2rem; }
.story-body > * + * { margin-top: 1.5rem; }
.story-body h2 { font-size: var(--step-3); margin-top: 2.25rem; }
.lede .dateline { margin-right: .4em; }
.outcome { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--rule); border: 1px solid var(--rule); border-radius: var(--radius); overflow: hidden; }
.outcome div { background: var(--concrete); padding: 1rem; }
.outcome dt { font-family: var(--font-mono); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--graphite); }
.outcome dd { margin: .25rem 0 0; font-family: var(--font-head); font-weight: 800; font-size: var(--step-2); text-transform: uppercase; color: var(--asphalt); line-height: 1.05; }
.outcome dd .vlabel { margin-top: .35rem; }
.went-wrong h2 { font-size: var(--step-2); color: var(--alert); margin: 0 0 .4rem; }
.went-wrong p:last-child { margin: 0; }
.correction { border-left: 4px solid var(--alert); border-radius: 0; padding: .75rem 1rem; font-size: 1rem; background: var(--white); }
.correction strong { color: var(--alert); font-family: var(--font-mono); text-transform: uppercase; letter-spacing: .06em; font-size: .85rem; }
.crosslink { border: 1px solid var(--rule); border-radius: var(--radius); padding: .75rem 1rem; background: var(--white); font-size: 1rem; }
.crosslink .label-mono { display: block; }
blockquote.quote { margin: 0; border-left: 4px solid var(--hivis); padding: .25rem 0 .25rem 1.1rem; font-family: var(--font-head); font-weight: 600; font-size: var(--step-2); line-height: 1.15; color: var(--asphalt); }
blockquote.quote footer { font-family: var(--font-mono); font-size: .8rem; color: var(--graphite); margin-top: .5rem; letter-spacing: .04em; }
.sidebox { background: var(--white); border: 1px solid var(--rule); border-radius: var(--radius); padding: 1.1rem 1.25rem; }
.sidebox h2 { font-size: var(--step-2); }
.sidebox + .sidebox { margin-top: 1.25rem; }

/* ---- Legend (component: LabelLegend) ---- */
.legend { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem; }
.legend li { font-size: .95rem; }
.legend li .vlabel { margin-bottom: .2rem; }
.legend p { margin: .2rem 0 0; }
.legend--wide { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; }
.legend--wide li { background: var(--white); border: 1px solid var(--rule); border-radius: var(--radius); padding: 1rem 1.1rem; }
.legend--wide h3 { font-size: var(--step-1); margin: .5rem 0 .2rem; }
.legend--wide ul { padding-left: 1.1rem; margin: .4rem 0 0; }

/* ---- Newsletter signup (beehiiv placeholder) ---- */
.signup { background: var(--asphalt); color: var(--white); border-radius: var(--radius); padding: clamp(1.25rem, 3vw, 2rem); border-top: 8px solid var(--hivis); }
.signup h2 { color: var(--white); font-size: var(--step-3); }
.signup p { color: #C9CDD3; }
.signup form { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.signup label { flex-basis: 100%; font-family: var(--font-mono); font-size: var(--step--1); letter-spacing: .08em; text-transform: uppercase; color: #C9CDD3; }
.signup input[type=email] { flex: 1 1 220px; min-width: 0; font: 400 var(--step-0) var(--font-body); padding: .75em .9em; border-radius: var(--radius); border: 2px solid var(--white); background: var(--white); color: var(--ink); }
.signup :focus-visible { outline-color: var(--hivis); box-shadow: none; }
.embed-note { margin: .9rem 0 0; font-family: var(--font-mono); font-size: .8rem; color: #C9CDD3; border-top: 1px dashed #4b5059; padding-top: .7rem; }

/* ---- Forms (submit-a-story; Tally placeholder) ---- */
.form-card { background: var(--white); border: 1px solid var(--rule); border-radius: var(--radius); padding: clamp(1.1rem, 3vw, 1.75rem); }
.embed-banner { background: var(--concrete); border: 2px dashed var(--asphalt); border-radius: var(--radius); padding: .8rem 1rem; font-size: 1rem; margin-bottom: 1.25rem; }
.embed-banner strong { font-family: var(--font-mono); text-transform: uppercase; letter-spacing: .06em; font-size: .85rem; }
.field { margin-bottom: 1.1rem; }
.field label, .field legend { display: block; font-weight: 600; font-size: 1rem; margin-bottom: .3rem; }
.field .hint { display: block; font-size: var(--step--1); color: var(--graphite); font-weight: 400; margin-bottom: .35rem; }
.field input[type=text], .field input[type=email], .field input[type=url], .field select, .field textarea { width: 100%; font: 400 var(--step-0) var(--font-body); padding: .6em .75em; border: 1.5px solid var(--graphite); border-radius: var(--radius); background: var(--white); color: var(--ink); }
.field textarea { min-height: 8rem; resize: vertical; }
fieldset.field { border: 0; padding: 0; margin: 0 0 1.1rem; }
.choice { display: flex; gap: .5rem; align-items: flex-start; font-weight: 400; margin: .3rem 0; }
.choice input { margin-top: .35rem; width: 1.1rem; height: 1.1rem; accent-color: var(--asphalt); }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }

/* ---- Sponsor slot (shared treatment) ---- */
.sponsor-slot { border: 1px solid var(--rule); border-radius: var(--radius); background: var(--white); padding: 1.1rem 1.25rem; }
.sponsor-slot .sponsor-label { display: inline-block; margin-bottom: .6rem; }
.sponsor-slot h3 { font-family: var(--font-body); text-transform: none; font-weight: 600; color: var(--ink); font-size: var(--step-0); letter-spacing: 0; margin: 0 0 .25rem; line-height: 1.4; }
.sponsor-slot p { margin: 0 0 .5rem; font-size: 1rem; }
.sponsor-slot .sponsor-note { font-size: .82rem; color: var(--graphite); border-top: 1px solid var(--rule); padding-top: .6rem; margin: .75rem 0 0; }

/* ---- Tables / chips / hubs ---- */
.table-wrap { position: relative; overflow-x: auto; border: 1px solid var(--rule); border-radius: var(--radius); background: var(--white); }
table.log { width: 100%; border-collapse: collapse; min-width: 640px; font-size: 1rem; }
.log caption { caption-side: bottom; text-align: left; padding: .8rem 1rem; font-family: var(--font-mono); font-size: var(--step--1); color: var(--graphite); border-top: 1px solid var(--rule); }
.log th, .log td { padding: .8rem 1rem; text-align: left; border-bottom: 1px solid var(--rule); vertical-align: top; }
.log thead th { font-family: var(--font-mono); font-weight: 500; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--graphite); background: var(--paper); }
.chips { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0 0 1.5rem; }
.chips a { display: inline-block; font-family: var(--font-mono); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; padding: .35em .8em; border: 1.5px solid var(--asphalt); border-radius: 3px; color: var(--asphalt); text-decoration: none; background: var(--white); }
.chips a[aria-current="true"] { background: var(--asphalt); color: var(--white); }
.hub-head { padding-block: 2rem 1rem; }
.checklist { padding-left: 1.2rem; } .checklist li + li { margin-top: .4rem; }
.legal h2 { font-size: var(--step-3); margin-top: 2rem; }
.legal .toc { background: var(--white); border: 1px solid var(--rule); border-radius: var(--radius); padding: 1rem 1.25rem 1rem 2.25rem; }

/* ---- Cookie banner (hidden by default) ---- */
.cookie-banner { position: fixed; inset: auto 1rem 1rem 1rem; max-width: 720px; margin-inline: auto; background: var(--white); border: 2px solid var(--asphalt); border-radius: var(--radius); padding: 1rem 1.25rem; display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: center; z-index: 20; font-size: 1rem; box-shadow: 0 6px 24px rgba(22,24,29,.15); }
.cookie-banner[hidden] { display: none; }
.cookie-banner p { margin: 0; flex: 1 1 300px; }
.cookie-actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.cookie-actions .btn { padding: .55em .9em; font-size: 1rem; }
.cookie-banner--demo { position: static; box-shadow: none; margin-bottom: 1.5rem; max-width: none; }

/* ---- Sister publication (shared, from README; neutral colors only) ---- */
.sister { border-top: 1px solid var(--rule); padding: 1.25rem 0; display: flex; gap: 1rem; align-items: center; font-size: var(--step--1); color: var(--graphite); flex-wrap: wrap; }
.sister .label { font-family: var(--font-mono); text-transform: uppercase; letter-spacing: .08em; }
.sister img { height: 24px; width: auto; }
.sister p { margin: 0; }

/* ---- Footer ---- */
.site-footer { background: var(--asphalt); color: #C9CDD3; padding-block: 2.5rem 2rem; font-size: 1rem; border-top: 6px solid var(--hivis); }
.site-footer a { color: var(--white); }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2rem; }
.footer-grid img { width: 260px; margin-bottom: 1rem; }
.footer-grid h2 { font-family: var(--font-mono); font-size: .8rem; letter-spacing: .08em; color: #C9CDD3; font-weight: 500; margin-bottom: .75rem; }
.footer-grid ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.footer-legal { border-top: 1px solid #3a3e45; margin-top: 2rem; padding-top: 1rem; font-size: .85rem; }

@media (max-width: 900px) {
  .layout-article, .split, .footer-grid, .lead-story { grid-template-columns: 1fr; }
  .outcome { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  :root { --step-5: 2.6rem; --step-4: 2.3rem; --step-3: 1.9rem; }
  .brand img { width: 230px; }
  .site-nav { flex: 1 1 100%; }
  .site-nav ul { flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; padding-bottom: .3rem; }
  .two { grid-template-columns: 1fr; }
}
.ff { margin: 0; } .ff dt { margin-top: .6rem; font-size: .78rem; } .ff dd { margin: .1rem 0 0; font-size: 1rem; }
.feed > li { list-style: none; }
.layout-article > *, .split > *, .grid > * { min-width: 0; }
.split > .sidebox + .sidebox, .split > .sidebox { margin-top: 0; }
.field label.choice, label.choice { font-weight: 400; } .vlabel { white-space: nowrap; }
/* ---- Real-story components: series marker, cost/outcome box (list form), sources, later developments ---- */
.series { border: 1px solid var(--rule); border-left: 6px solid var(--asphalt); background: var(--white); padding: .6rem 1rem; border-radius: var(--radius); margin: .75rem 0 1rem; font-size: 1rem; }
.series ul { margin: .25rem 0 0; padding-left: 1.1rem; }
.costbox { background: var(--concrete); border: 1px solid var(--rule); border-top: 6px solid var(--asphalt); border-radius: var(--radius); padding: 1rem 1.25rem; }
.costbox h2 { font-size: var(--step-2) !important; margin: 0 0 .5rem !important; }
.costbox ul { margin: 0; padding-left: 1.1rem; } .costbox li + li { margin-top: .35rem; }
.went-wrong ul { margin: 0; padding-left: 1.1rem; } .went-wrong li + li { margin-top: .35rem; }
.sources ol { padding-left: 1.3rem; font-size: 1rem; } .sources li + li { margin-top: .5rem; }
.sources a, .story-body a { overflow-wrap: anywhere; }
.later { border: 1px solid var(--rule); border-radius: var(--radius); background: var(--white); padding: .75rem 1rem; }
.later h2 { font-size: var(--step-2) !important; margin-top: 0 !important; }
.later ul { margin: 0; padding-left: 1.1rem; }

/* StoryCopyright: quiet line at the foot of each story/review body. Date = when the piece was written, never the dateline. */
.story-copyright { margin: 1.75rem 0 0; padding-top: .75rem; border-top: 1px solid var(--rule); font-family: var(--font-mono); font-size: .8rem; letter-spacing: .04em; line-height: 1.5; color: var(--graphite); }
.story-copyright .sample-tag { margin-left: .35em; }

/* SourcesList styles (add_sources_bylines.py): end-of-story source list, RWW brand */
.sources { border-top: 2px solid var(--ink, #111); margin-top: 2.5rem; padding-top: .75rem; }
.sources h2 { font-family: var(--font-head, "Barlow Condensed", sans-serif); text-transform: uppercase; letter-spacing: .04em; margin-top: 0 !important; }
.sources .src-title { font-weight: 600; }
.sources .src-host { font-family: var(--font-mono); font-size: .8em; color: var(--graphite); white-space: nowrap; }
.sources .sample-tag { vertical-align: middle; }
/* Nov 3, 2026: founder's note on /about/ (build_about.py); section spacing below its (c) line, this block only */
.founders-note { margin-bottom: clamp(2.25rem, 5vw, 4rem); }
