/* Door-factory NEWS chrome — broadsheet-newsroom treatment (DESIGN_SYSTEM.md
   2026-08-02: "SmogNews" serif masthead, ink-on-paper palette, signal-red
   accent, kickers, datelines, 65ch article measure). Theme tokens resolve
   from config.theme over build_door.py THEME_DEFAULTS — smognews.com.json
   maps the shared token slots to ink/paper/red (gold_* slots carry the red).
   System serif stack on purpose: no webfont CDNs on the news door. */

:root{
  --ink:#1c1914; --ink-2:#3a352c; --wash:#efece3;
  --head:#1c1914;
  --red:#b3211a; --red-deep:#8c1a14; --red-ink:#8c1a14;
  --red-bg:#f9eae7; --red-line:#ecccc6;
  --paper:#f7f5ef; --surface:#fdfcf8; --mut:#5f594c; --line:#e3ded1;
  --maxw:860px; --measure:700px;
  --f-serif:Georgia,"Iowan Old Style","Times New Roman",Times,serif;
  --f-sans:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font:16px/1.65 var(--f-sans);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}
::selection{background:var(--red);color:#fff}

/* ── masthead (broadsheet: hairline · wordmark · folio line · double rule) ── */
.masthead{max-width:var(--maxw);margin:0 auto;padding:26px 16px 0;text-align:center;border-bottom:3px double var(--ink)}
.masthead::before{content:"";display:block;border-top:1px solid var(--ink);margin-bottom:22px}
.logo{font-family:var(--f-serif);font-weight:700;font-size:clamp(36px,8vw,56px);letter-spacing:-.03em;line-height:1;text-decoration:none;display:inline-block}
.logo .lg-a{color:var(--head)}.logo .lg-b{color:var(--red)}
.tag{font-family:var(--f-sans);font-size:11.5px;letter-spacing:.17em;text-transform:uppercase;color:var(--mut);margin:10px auto 0;max-width:64ch}
.mh-nav{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 26px;margin-top:14px;padding:9px 0;border-top:1px solid var(--line);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.mh-nav a{color:var(--ink);text-decoration:none;font-weight:600}
.mh-nav a:hover{color:var(--red-deep)}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 16px}
.crumb{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin:16px auto 4px;max-width:var(--measure)}
.crumb:not(:has(a)){display:none} /* front page: linkless "Home" crumb is noise */
.crumb a{color:var(--mut);text-decoration:none;font-weight:600}
.crumb a:hover{color:var(--red-deep)}

/* ── front page (index) ── */
.front-date{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);text-align:center;margin:14px 0 2px}
.front-date b{color:var(--ink);font-weight:700}
h1{font-family:var(--f-serif);font-weight:700;color:var(--head);letter-spacing:-.015em;line-height:1.12;font-size:clamp(28px,5.6vw,42px);margin:10px auto 8px;max-width:var(--measure)}
/* front h1 = the tagline again (already in the masthead) — keep for
   a11y/SEO, hide visually; the folio dateline carries the divider role */
h1.front-label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.plist{list-style:none;margin:10px 0 8px;display:grid;grid-template-columns:1fr 1fr;column-gap:40px;border-top:1px solid var(--line)}
@media(max-width:640px){.plist{grid-template-columns:1fr}}
.pcard{display:flex;flex-direction:column;padding:20px 0 18px;border-bottom:1px solid var(--line)}
.pcard .pm{order:-1;font-family:var(--f-sans);font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--mut);margin:0 0 7px}
.pcard .pm .cat{color:var(--red-deep);font-weight:700;margin-right:10px;letter-spacing:.13em}
.pcard .pt{font-family:var(--f-serif);font-size:21px;font-weight:700;line-height:1.22;letter-spacing:-.012em}
.pcard .pt a{color:var(--head);text-decoration:none}
.pcard .pt a:hover{color:var(--red-deep)}
.pcard .ps{font-family:var(--f-serif);font-size:15px;color:var(--ink-2);margin-top:8px;line-height:1.55}
/* lead story: full width, display headline, standfirst-size summary */
.pcard:first-child{grid-column:1/-1;padding:26px 0 24px;border-bottom:2px solid var(--ink)}
.pcard:first-child .pt{font-size:clamp(27px,5.2vw,40px);line-height:1.1;max-width:26ch}
.pcard:first-child .ps{font-size:17px;max-width:62ch;line-height:1.6}
.pcard:first-child .pm .cat{color:var(--red)}

/* ── article pages ── */
.kicker{font-family:var(--f-sans);font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--red-deep);margin:18px auto 0;max-width:var(--measure)}
.kicker::after{content:"";display:block;width:44px;height:3px;background:var(--red);margin-top:8px}
.pmeta{font-family:var(--f-sans);font-size:13px;color:var(--mut);margin:2px auto 22px;max-width:var(--measure);display:flex;gap:6px;flex-wrap:wrap;align-items:baseline}
.pmeta .byl{color:var(--ink);font-weight:700}
.pmeta .cat{color:var(--red-deep);font-weight:700;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase}
.pmeta time{letter-spacing:.02em}

article{font-family:var(--f-serif);font-size:17.5px;line-height:1.75;color:var(--ink);max-width:var(--measure);margin:0 auto;padding:4px 0 8px;border-top:1px solid var(--line)}
article p{margin:18px 0}
article p:first-child{margin-top:22px}
article p:first-child strong:first-child{color:var(--red-deep)}
article h2{font-family:var(--f-serif);font-size:23px;font-weight:700;color:var(--head);letter-spacing:-.012em;line-height:1.25;margin:34px 0 6px}
article h2::before{content:"";display:block;width:44px;height:3px;background:var(--red);margin:0 0 12px}
article h3{font-family:var(--f-serif);font-size:18.5px;font-weight:700;color:var(--head);margin:24px 0 4px}
article ul,article ol{margin:16px 0;padding-left:26px}
article li{margin-bottom:8px}
article a{color:var(--red-deep);text-decoration:underline;text-decoration-color:var(--red-line);text-underline-offset:3px}
article a:hover{text-decoration-color:var(--red-deep)}
article strong{color:var(--head)}
article table{width:100%;border-collapse:collapse;margin:14px 0 20px;font-family:var(--f-sans);font-size:14px;font-variant-numeric:tabular-nums}
article th,article td{padding:9px 12px;border-bottom:1px solid var(--line);text-align:left}
article thead th{color:var(--red-deep);font-size:11px;text-transform:uppercase;letter-spacing:.09em;border-bottom:2px solid var(--ink)}
article blockquote{margin:22px 0;padding-left:18px;border-left:3px solid var(--red);color:var(--ink-2);font-style:italic}

/* ── static doc pages (/about/ /privacy/) ── */
.doc{font-family:var(--f-serif);font-size:16.5px;line-height:1.7;max-width:var(--measure);margin:0 auto;padding-top:6px}
.doc p{margin:14px 0}
.doc h2{font-family:var(--f-serif);font-size:21px;font-weight:700;color:var(--head);margin:28px 0 4px}
.doc h2::before{content:"";display:block;width:44px;height:3px;background:var(--red);margin:0 0 10px}
.doc a{color:var(--red-deep);text-decoration:underline;text-decoration-color:var(--red-line);text-underline-offset:3px}
.doc .updated{font-family:var(--f-sans);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}

/* ── footer (sections + provenance) ── */
footer{margin:44px auto 50px;padding-top:18px;border-top:3px double var(--ink);text-align:center;font-size:13px;line-height:1.8;color:var(--mut)}
footer a{color:var(--ink);font-weight:600;text-decoration:none}
footer a:hover{color:var(--red-deep)}
.fnav{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 22px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px}
.fprov{font-size:12px;color:var(--mut);margin-top:10px}
.fprov,.fnav+*{font-family:var(--f-sans)}
