/* GLAD — shared newspaper stylesheet */
:root{
  --paper:#f7f4ec; --ink:#14130f; --ink-soft:#4a473f;
  --rule:#cdc7b6; --rule-strong:#14130f; --accent:#8c2f22;
  --card:#fffdf7;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#12110e; --ink:#f2efe6; --ink-soft:#a8a296;
    --rule:#3a372f; --rule-strong:#f2efe6; --accent:#e08a7a; --card:#1a1814;
  }
}
:root[data-theme="dark"]{
  --paper:#12110e; --ink:#f2efe6; --ink-soft:#a8a296;
  --rule:#3a372f; --rule-strong:#f2efe6; --accent:#e08a7a; --card:#1a1814;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0}
body{
  background:var(--paper); color:var(--ink);
  font-family:"Source Serif 4",Georgia,serif;
  font-size:18px; line-height:1.62; -webkit-font-smoothing:antialiased;
}
img{max-width:100%}
a{color:inherit}
.sheet{max-width:1100px;margin:0 auto;padding:22px 16px 80px}
.sans{font-family:Inter,system-ui,-apple-system,sans-serif}

/* ---- top bar + masthead ---- */
.eyebrow{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;
  font-family:Inter,system-ui,sans-serif;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-soft);border-bottom:1px solid var(--rule);padding-bottom:8px;
}
.masthead{text-align:center;padding:16px 0 12px}
.masthead a.logo{text-decoration:none;display:inline-block}
.masthead h1{
  font-family:"Playfair Display",Georgia,serif;font-weight:900;
  font-size:clamp(50px,12vw,124px);line-height:.9;letter-spacing:.04em;margin:0;
}
.masthead .tag{
  font-family:Inter,system-ui,sans-serif;font-size:10px;letter-spacing:.34em;
  text-transform:uppercase;color:var(--ink-soft);margin-top:12px;
}
nav.sections{
  display:flex;justify-content:center;gap:26px;flex-wrap:wrap;
  border-top:1px solid var(--rule);border-bottom:3px double var(--rule-strong);
  padding:11px 0;margin-top:14px;
  font-family:Inter,system-ui,sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;
}
nav.sections a{text-decoration:none;color:var(--ink)}
nav.sections a:hover{color:var(--accent)}
nav.sections a[aria-current="page"]{color:var(--accent);border-bottom:2px solid var(--accent);padding-bottom:3px}

.crumbs{
  font-family:Inter,system-ui,sans-serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-soft);padding:16px 0 0;
}
.crumbs a{color:var(--ink-soft)}

/* ---- generic type ---- */
.kicker{
  font-family:Inter,system-ui,sans-serif;font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:12px;
}
h2.headline{
  font-family:"Playfair Display",Georgia,serif;font-weight:700;
  font-size:clamp(32px,5.6vw,62px);line-height:1.04;margin:0 0 16px;letter-spacing:-.01em;
}
.deck{font-size:clamp(18px,2.2vw,22px);line-height:1.5;color:var(--ink-soft);font-style:italic;margin:0;max-width:44em}
.byline{
  font-family:Inter,system-ui,sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-soft);margin-top:20px;display:flex;gap:10px;flex-wrap:wrap;
}
.byline b{color:var(--ink);font-weight:600}
.section-rule{border:0;border-top:3px double var(--rule-strong);margin:48px 0 0}

/* ---- front page grid ---- */
.front{display:grid;grid-template-columns:2.1fr 1fr;gap:0 40px;padding-top:26px}
.front .lead{border-right:1px solid var(--rule);padding-right:40px}
.front .rail{padding-top:4px}
figure.hero{margin:22px 0 0}
figure.hero img{width:100%;height:auto;display:block;filter:grayscale(100%) contrast(1.04);border:1px solid var(--rule)}
figcaption{
  font-family:Inter,system-ui,sans-serif;font-size:12px;line-height:1.5;color:var(--ink-soft);
  padding-top:8px;border-top:1px solid var(--rule);margin-top:8px;
}
.lead-body{margin-top:20px;columns:2;column-gap:36px;column-rule:1px solid var(--rule)}
.lead-body p{margin:0 0 1em;text-align:justify;hyphens:auto}
.lead-body p.first::first-letter{
  font-family:"Playfair Display",Georgia,serif;float:left;font-size:4em;line-height:.82;
  padding:6px 10px 0 0;font-weight:700;
}
.readon{
  display:inline-block;margin-top:6px;font-family:Inter,system-ui,sans-serif;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;
  color:var(--accent);text-decoration:none;border-bottom:2px solid var(--accent);padding-bottom:2px;
}

.rail h3, .block h3{
  font-family:Inter,system-ui,sans-serif;font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  border-bottom:2px solid var(--ink);padding-bottom:7px;margin:0 0 14px;
}
.rail-item{border-bottom:1px solid var(--rule);padding:0 0 14px;margin-bottom:14px}
.rail-item:last-child{border-bottom:none}
.rail-item .t{font-family:"Playfair Display",Georgia,serif;font-size:21px;line-height:1.2;margin:0 0 6px;font-weight:700}
.rail-item .t a{text-decoration:none}
.rail-item .t a:hover{color:var(--accent)}
.rail-item p{margin:0;font-size:15px;color:var(--ink-soft);line-height:1.5}
.rail-item .meta{
  font-family:Inter,system-ui,sans-serif;font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent);margin-bottom:6px;font-weight:700;
}

/* ---- series band ---- */
.band{
  margin-top:44px;border-top:3px double var(--rule-strong);border-bottom:1px solid var(--rule);
  padding:26px 0;
}
.band .row{display:grid;grid-template-columns:1.3fr 2fr;gap:36px;align-items:start}
.band h3.big{font-family:"Playfair Display",Georgia,serif;font-size:clamp(26px,3.4vw,38px);margin:0 0 10px;line-height:1.1}
.band p{margin:0 0 14px;color:var(--ink-soft)}

/* ---- cards ---- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:24px}
.card{border-top:2px solid var(--ink);padding-top:12px}
.card .n{font-family:Inter,system-ui,sans-serif;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:700}
.card h4{font-family:"Playfair Display",Georgia,serif;font-size:22px;line-height:1.18;margin:6px 0 8px;font-weight:700}
.card h4 a{text-decoration:none}
.card h4 a:hover{color:var(--accent)}
.card p{margin:0;font-size:15px;color:var(--ink-soft);line-height:1.5}
.card.empty{border-top-color:var(--rule)}
.card.empty h4{color:var(--ink-soft)}

/* ---- article body ---- */
article.body{margin-top:30px;columns:2;column-gap:44px;column-rule:1px solid var(--rule)}
article.body p{margin:0 0 1.05em;text-align:justify;hyphens:auto}
article.body p.first::first-letter{
  font-family:"Playfair Display",Georgia,serif;float:left;font-size:4.1em;line-height:.82;
  padding:6px 10px 0 0;font-weight:700;
}
article.body h3{
  font-family:Inter,system-ui,sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  margin:1.6em 0 .6em;color:var(--accent);break-after:avoid;
}
blockquote.pull{
  break-inside:avoid;margin:1.4em 0;padding:16px 0;
  border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);
  font-family:"Playfair Display",Georgia,serif;font-size:23px;line-height:1.3;font-style:italic;
}
blockquote.pull cite{
  display:block;font-family:Inter,system-ui,sans-serif;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;font-style:normal;color:var(--ink-soft);margin-top:10px;line-height:1.5;
}
aside.facts{break-inside:avoid;border:1px solid var(--ink);padding:18px 18px 16px;margin:0 0 1.2em;background:var(--card)}
aside.facts h4{font-family:Inter,system-ui,sans-serif;font-size:10px;letter-spacing:.24em;text-transform:uppercase;margin:0 0 4px}
aside.facts dl{margin:0;font-size:15px}
aside.facts dt{font-family:Inter,system-ui,sans-serif;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:10px}
aside.facts dd{margin:2px 0 0;font-weight:600;line-height:1.35}

.numbers{break-inside:avoid;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);padding:14px 0 12px;margin:1.3em 0}
.numbers h4{font-family:Inter,system-ui,sans-serif;font-size:10px;letter-spacing:.24em;text-transform:uppercase;margin:0 0 10px;color:var(--ink-soft)}
.numbers table{width:100%;border-collapse:collapse;font-size:14px}
.numbers td{padding:5px 0;border-bottom:1px dotted var(--rule);vertical-align:baseline}
.numbers td.v{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:10px}
.numbers tr:last-child td{border-bottom:none}
.numbers .src{font-family:Inter,system-ui,sans-serif;font-size:10px;color:var(--ink-soft);margin:8px 0 0;letter-spacing:.04em;line-height:1.5}

.sources{
  margin-top:38px;border-top:1px solid var(--rule);padding-top:14px;
  font-family:Inter,system-ui,sans-serif;font-size:11.5px;line-height:1.8;color:var(--ink-soft);
}
.sources b{color:var(--ink);letter-spacing:.14em;text-transform:uppercase;font-size:10px}

/* ---- roster list ---- */
.list-section{margin-top:46px;border-top:3px double var(--rule-strong);padding-top:24px}
.list-section h3.big{font-family:"Playfair Display",Georgia,serif;font-size:30px;margin:0 0 6px;font-weight:700}
.list-note{font-family:Inter,system-ui,sans-serif;font-size:12px;color:var(--ink-soft);margin:0 0 20px;max-width:62em;line-height:1.7}
ol.roster{columns:3;column-gap:36px;font-family:Inter,system-ui,sans-serif;font-size:13px;line-height:1.95;padding-left:22px;margin:0;color:var(--rule)}
ol.roster li.now{color:var(--ink);font-weight:700}
ol.roster li.now a{color:var(--ink)}
ol.roster li.now span{font-weight:400;color:var(--ink-soft)}

/* ---- footer ---- */
footer.colophon{
  margin-top:50px;border-top:3px double var(--rule-strong);padding-top:18px;
  font-family:Inter,system-ui,sans-serif;font-size:11px;letter-spacing:.06em;color:var(--ink-soft);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
footer.colophon a{color:var(--ink-soft)}
footer.colophon .fl{display:flex;gap:16px;flex-wrap:wrap}

@media (max-width:900px){
  .front{grid-template-columns:1fr;gap:0}
  .front .lead{border-right:none;padding-right:0;border-bottom:1px solid var(--rule);padding-bottom:22px;margin-bottom:22px}
  .band .row{grid-template-columns:1fr;gap:18px}
  .cards{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  body{font-size:17px}
  .lead-body,article.body{columns:1;column-rule:none}
  ol.roster{columns:2}
  .sheet{padding:18px 16px 56px}
  nav.sections{gap:16px}
}
@media (max-width:560px){
  .cards{grid-template-columns:1fr}
  ol.roster{columns:1}
}
@media print{ body{background:#fff} .sheet{max-width:none} nav.sections{display:none} }
