
:root {
  --paper: #F7F3E9; --raised: #FCF8F0; --wash: #F2E8D9;
  --brand: #96562F; --deep: #6E3D1F;
  --ink: #33302A; --muted: #77705F; --line: #E3DBC8;
  --display: "Fraunces", Georgia, serif;
  --serif: "Newsreader", Georgia, serif;
}
* { margin:0; padding:0; box-sizing:border-box; }
body { background: var(--paper); color: var(--ink);
  font-family: var(--serif); font-size: 1.05rem; line-height: 1.55;
  font-feature-settings: "kern" 1, "liga" 1, "onum" 1;
  -webkit-font-smoothing: antialiased; position: relative; min-height: 100vh;
  overflow-x: hidden; }
/* Sun-cast — drifting late-morning light, tinted by the place */
body::before { content:""; position: fixed; inset: -20%; pointer-events:none; z-index:0;
  background: radial-gradient(ellipse 1400px 900px at 12% 8%,
    color-mix(in srgb, var(--brand) 20%, transparent) 0%,
    color-mix(in srgb, var(--brand) 10%, transparent) 25%,
    color-mix(in srgb, var(--muted) 6%, transparent) 60%, transparent 85%); }
/* Paper grain */
body::after { content:""; position: fixed; inset:0; pointer-events:none; z-index:1;
  opacity:.5; mix-blend-mode:multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch' seed='4'/><feColorMatrix values='0 0 0 0 0.55 0 0 0 0 0.38 0 0 0 0 0.18 0 0 0 0.15 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"); }
main, header, footer { position: relative; z-index: 2; }
.wrap { max-width: 1120px; margin: 0 auto; padding: 0 28px; }
a { color: var(--brand); }

.masthead { padding: 30px 0 0; }
.masthead__row { display: flex; align-items: baseline; gap: 20px; flex-wrap: wrap;
  padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.masthead__kicker { font-size: .72rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--brand); font-weight: 600; width: 100%; }
.wordmark { font-family: var(--display); font-weight: 700;
  font-variation-settings: "opsz" 144, "SOFT" 70, "WONK" 1;
  font-size: clamp(2.1rem, 4.6vw, 3.4rem); letter-spacing: -.025em; line-height: .95; }
.wordmark a { color: var(--ink); text-decoration: none; }
.masthead__tagline { font-style: italic; font-size: 1.06rem; color: var(--muted);
  margin-left: auto; text-align: right; }

.navbar { display: flex; align-items: center; gap: 8px; padding: 13px 0;
  border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.nav { display: flex; gap: 4px; flex-wrap: wrap; }
.nav a { color: var(--muted); text-decoration: none; font-size: .95rem; font-weight: 500;
  padding: 5px 10px; border-radius: 3px; transition: color .15s, background .15s; }
.nav a:hover { background: var(--wash); color: var(--ink); }
.nav a.active { color: var(--brand); box-shadow: inset 0 -2px 0 var(--brand); }
.btn-sub { margin-left: auto; background: var(--brand); color: var(--raised);
  text-decoration: none; font-weight: 600; font-size: .92rem; padding: 8px 17px;
  border-radius: 3px; }
.btn-sub:hover { background: var(--deep); }

.edition { display: flex; align-items: center; gap: 14px; padding: 12px 0 0;
  font-size: .72rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--muted); font-weight: 600; }
.edition .rule { flex: 1; height: 1px; background: var(--line); }

.lead-grid { display: grid; grid-template-columns: 7fr 5fr; gap: 48px;
  padding: 34px 0 44px; }
.lead-grid.solo { grid-template-columns: 1fr; }
.lead { position: relative; }
.lead__sun { position: absolute; top: -6px; right: -30px; width: 104px; height: 104px;
  color: var(--brand); opacity: .85; }
.lead__kicker { font-size: .72rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--brand); font-weight: 700; margin-bottom: 14px; }
.lead__head { font-family: var(--display); font-weight: 700;
  font-variation-settings: "opsz" 144, "SOFT" 70, "WONK" 1;
  font-size: clamp(2.1rem, 4.2vw, 3.5rem); line-height: 1.02; letter-spacing: -.022em;
  margin-bottom: 16px; }
.lead__head a { color: var(--ink); text-decoration: none; }
.lead__head a:hover { color: var(--deep); }
.lead__dek { font-size: 1.2rem; font-style: italic; color: var(--muted);
  max-width: 33em; margin-bottom: 22px; }
.link-arrow { font-weight: 600; color: var(--brand); text-decoration: none;
  border-bottom: 2px solid var(--brand); padding-bottom: 2px; }
.link-arrow:hover { color: var(--deep); border-color: var(--deep); }

.rundown { background: var(--raised); border: 1px solid var(--line);
  border-top: 3px solid var(--brand); border-radius: 4px; padding: 20px 24px 12px;
  align-self: end; box-shadow: 0 2px 18px color-mix(in srgb, var(--ink) 6%, transparent); }
.rundown h2 { font-size: .74rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--muted); font-family: var(--serif); font-weight: 700; margin-bottom: 10px; }
.rundown ol { list-style: none; counter-reset: rd; }
.rundown li { counter-increment: rd; display: flex; gap: 12px; padding: 10px 0;
  border-top: 1px solid var(--wash); font-size: .97rem; line-height: 1.38; }
.rundown li::before { content: counter(rd); font-family: var(--display);
  font-weight: 700; font-variation-settings: "SOFT" 60, "WONK" 1; color: var(--brand);
  font-size: 1.1rem; line-height: 1.3; min-width: 16px; }
.rundown a { color: var(--ink); text-decoration: none; }
.rundown a:hover { color: var(--brand); }

.section-head { font-family: var(--display); font-weight: 600;
  font-variation-settings: "opsz" 72, "SOFT" 30;
  font-size: clamp(1.5rem, 2.6vw, 1.9rem); letter-spacing: -.012em;
  padding: 30px 0 16px; border-bottom: 1px solid var(--line); }
.across { display: grid; grid-template-columns: repeat(4, 1fr); }
.across .cell { padding: 18px 20px 24px 0; border-right: 1px solid var(--line); }
.across .cell + .cell { padding-left: 20px; }
.across .cell:last-child { border-right: none; }
.eyebrow { font-size: .68rem; letter-spacing: .16em; text-transform: uppercase;
  font-weight: 700; color: var(--brand); margin-bottom: 9px; }
.eyebrow.alt { color: var(--muted); }
.cell h3 { font-family: var(--display); font-weight: 600;
  font-variation-settings: "SOFT" 30; font-size: 1.16rem; line-height: 1.22;
  letter-spacing: -.01em; }
.cell h3 a { color: var(--ink); text-decoration: none; }
.cell h3 a:hover { color: var(--brand); }
.cell .meta { font-size: .82rem; color: var(--muted); margin-top: 7px; }

.recent { display: grid; grid-template-columns: 1fr 1fr; column-gap: 44px; }
.recent li { list-style: none; display: flex; gap: 14px; align-items: baseline;
  padding: 9px 0; border-top: 1px solid var(--line); }
.recent .d { font-size: .8rem; color: var(--muted); font-weight: 600; min-width: 92px;
  letter-spacing: .03em; }
.recent a { color: var(--ink); text-decoration: none; font-size: .98rem; line-height: 1.32; }
.recent a:hover { color: var(--brand); }
.see-all { padding: 16px 0 48px; }

/* article pages */
.story { max-width: 720px; padding: 34px 0 56px; }
.story .lead__head { font-size: clamp(1.9rem, 3.6vw, 2.9rem); }
.story article { font-size: 1.08rem; line-height: 1.62; padding-top: 6px; }
.story article h2 { font-family: var(--serif); font-weight: 700; font-size: .8rem;
  letter-spacing: .16em; text-transform: uppercase; color: var(--muted);
  margin: 26px 0 10px; }
.story article p { margin-bottom: 13px; }
.story article ul, .story article ol { margin: 0 0 13px 24px; }
.story article li { margin-bottom: 8px; }
.cite { font-size: .72rem; font-weight: 700; background: var(--wash);
  color: var(--deep); border: 1px solid var(--line); border-radius: 4px;
  padding: 0 5px; text-decoration: none; vertical-align: 2px; margin: 0 2px;
  font-family: var(--serif); }
.dateline { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--muted); font-weight: 600; margin-bottom: 22px; }

/* meetings */
.meet { display: flex; gap: 16px; align-items: flex-start; padding: 14px 0;
  border-top: 1px solid var(--line); }
.datechip { flex: none; width: 58px; text-align: center; background: var(--raised);
  border: 1px solid var(--line); border-top: 3px solid var(--brand);
  border-radius: 4px; padding: 6px 4px 8px; }
.datechip .mo { display: block; font-size: .62rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase; color: var(--brand); }
.datechip .dy { display: block; font-family: var(--display); font-weight: 700;
  font-variation-settings: "SOFT" 60; font-size: 1.5rem; line-height: 1.15; }
.meet h3 { font-family: var(--display); font-weight: 600;
  font-variation-settings: "SOFT" 30; font-size: 1.2rem; line-height: 1.2; }
.meet h3 a { color: var(--ink); text-decoration: none; }
.meet h3 a:hover { color: var(--brand); }
.meet .when { font-size: .88rem; color: var(--muted); margin-top: 4px; }

/* sources */
.src-group { padding-bottom: 10px; }
.src { padding: 10px 0; border-top: 1px solid var(--line); font-size: .98rem; }
.src .inst { font-size: .84rem; color: var(--muted); }
.badge { font-size: .66rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; background: var(--wash); color: var(--deep);
  border: 1px solid var(--line); border-radius: 999px; padding: 2px 9px;
  margin-left: 8px; white-space: nowrap; }
.empty-line { color: var(--muted); font-style: italic; padding: 10px 0; }

footer { border-top: 1px solid var(--line); }
.foot { display: flex; justify-content: space-between; gap: 16px;
  padding: 22px 0 44px; flex-wrap: wrap; font-size: .92rem; }
.foot .byline { font-style: italic; color: var(--muted); }
.foot .links a { color: var(--muted); text-decoration: none; margin-left: 18px; }
.foot .links a:hover { color: var(--brand); }

@media (max-width: 880px) {
  .masthead__tagline { margin-left: 0; text-align: left; width: 100%; }
  .lead-grid, .recent { grid-template-columns: 1fr; gap: 28px; }
  .lead__sun { display: none; }
  .across { grid-template-columns: 1fr 1fr; }
  .across .cell { border-right: none; padding-left: 0 !important;
    border-top: 1px solid var(--line); }
  .btn-sub { margin-left: 0; }
}
