@font-face { font-family: "Bebas Neue"; src: url("/assets/fonts/bebas-neue.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Source Serif 4"; src: url("/assets/fonts/source-serif-4.woff2") format("woff2"); font-weight: 200 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Source Serif 4"; src: url("/assets/fonts/source-serif-4-italic.woff2") format("woff2"); font-weight: 200 900; font-style: italic; font-display: swap; }

:root {
  --navy: #14284B;
  --navy-deep: #0F1F3B;
  --navy-map: #1D3562;
  --lake: #6FB1E0;
  --lake-soft: #E3F0F9;
  --paper: #F7F7F5;
  --white: #FFFFFF;
  --ink: #1A2233;
  --muted: #545E70;
  --rule: #DADDE3;
  --display: "Bebas Neue", Impact, "Arial Narrow", sans-serif;
  --serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --wrap: 1120px;
  --gutter: clamp(16px, 4vw, 40px);
  --radius: 6px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--serif); font-size: 1.125rem; line-height: 1.65; font-optical-sizing: auto; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--navy); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { text-decoration-color: var(--lake); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--lake); outline-offset: 2px; border-radius: 2px; }
h1, h2 { font-family: var(--display); font-weight: 400; letter-spacing: 0.01em; line-height: 0.98; color: var(--navy); margin: 0 0 0.4em; }
h1 { font-size: clamp(2.75rem, 7vw, 4.75rem); }
h2 { font-size: clamp(1.9rem, 4vw, 2.6rem); }
h3 { font-family: var(--serif); font-size: 1.15rem; line-height: 1.3; font-weight: 700; margin: 0 0 0.3em; color: var(--ink); }
p { margin: 0 0 1em; }
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.skip { position: absolute; left: -9999px; top: 0; background: var(--navy); color: var(--white); padding: 8px 14px; z-index: 10; font-family: var(--sans); }
.skip:focus { left: 8px; top: 8px; }
.muted { color: var(--muted); }
.lede { font-size: clamp(1.15rem, 2vw, 1.3rem); color: var(--muted); max-width: 40em; }

/* Buttons */
.btn, .signup button, .contact button, .segment button { font-family: var(--sans); font-weight: 650; font-size: 1rem; border: 0; border-radius: var(--radius); background: var(--navy); color: var(--white); padding: 0.8em 1.3em; cursor: pointer; text-decoration: none; display: inline-block; line-height: 1.2; }
.btn:hover, .signup button:hover, .contact button:hover { background: var(--navy-deep); color: var(--white); }
.btn--small { padding: 0.55em 1em; font-size: 0.9rem; }

/* Announcement */
.announce { background: var(--lake); color: var(--navy-deep); text-align: center; font-family: var(--sans); font-size: 0.9rem; padding: 8px var(--gutter); }
.announce a { color: inherit; font-weight: 600; }

/* Masthead */
.masthead { background: var(--white); border-bottom: 1px solid var(--rule); }
.masthead__inner { display: flex; align-items: center; gap: 24px; min-height: 68px; }
.brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--navy); }
.brand:hover { text-decoration: none; }
.mark { width: 30px; height: 31px; color: currentColor; flex: none; }
.brand__word { font-family: var(--display); font-size: 1.75rem; letter-spacing: 0.02em; line-height: 1; padding-top: 3px; white-space: nowrap; }
.nav { margin-left: auto; }
.nav ul { display: flex; gap: 22px; list-style: none; margin: 0; padding: 0; }
.nav a { font-family: var(--sans); font-size: 0.95rem; font-weight: 550; color: var(--ink); text-decoration: none; padding: 6px 0; border-bottom: 2px solid transparent; }
.nav a:hover, .nav a[aria-current="page"] { border-bottom-color: var(--lake); }
@media (max-width: 760px) {
  .masthead__inner { flex-wrap: wrap; gap: 0 12px; padding-top: 12px; }
  .masthead__cta { margin-left: auto; }
  .nav { order: 3; width: 100%; margin: 6px 0 0; border-top: 1px solid var(--rule); }
  .nav ul { justify-content: space-between; gap: 8px; }
  .nav a { display: block; padding: 10px 0; font-size: 0.92rem; }
  .brand__word { font-size: 1.5rem; }
  .mark { width: 26px; height: 27px; }
}

/* Signup form */
.signup { max-width: 520px; }
.signup__row { display: flex; gap: 8px; }
.signup input[type="email"] { flex: 1; min-width: 0; font: 1rem var(--sans); padding: 0.8em 0.9em; border: 1px solid #B9BFCA; border-radius: var(--radius); background: var(--white); color: var(--ink); }
.signup input[type="email"]::placeholder { color: #8A92A1; }
.signup__msg { font-family: var(--sans); font-size: 0.88rem; color: var(--muted); margin: 10px 0 0; min-height: 1.3em; }
.signup__msg.is-error { color: #B42318; font-weight: 600; }
.signup--dark input[type="email"] { border-color: transparent; }
.signup--dark button { background: var(--lake); color: var(--navy-deep); }
.signup--dark button:hover { background: #8BC2E8; color: var(--navy-deep); }
.signup--dark .signup__msg { color: #C5D2E6; }
.signup--dark .signup__msg.is-error { color: #FFD3CF; }
.signup.is-busy button { opacity: 0.7; cursor: progress; }
@media (max-width: 480px) { .signup__row { flex-direction: column; } .signup button { width: 100%; } }

/* Hero */
.hero { position: relative; overflow: hidden; background: var(--navy); color: var(--white); padding: clamp(56px, 9vw, 112px) 0 clamp(56px, 8vw, 96px); }
.hero__map { position: absolute; right: -6%; top: 50%; width: min(620px, 62vw); height: auto; aspect-ratio: 241 / 250; transform: translateY(-50%); color: var(--navy-map); pointer-events: none; }
.hero__inner { position: relative; }
.hero__kicker { font-family: var(--sans); font-size: 0.95rem; font-weight: 600; color: var(--lake); margin-bottom: 18px; }
.hero h1 { color: var(--white); max-width: 11.5em; font-size: clamp(3rem, 8.2vw, 6rem); }
.hero__text { font-size: clamp(1.1rem, 2vw, 1.3rem); max-width: 34em; color: #DCE4F0; margin-bottom: 28px; }
.hero__proof { font-family: var(--sans); font-size: 0.9rem; color: #C5D2E6; margin-top: 18px; }
@media (max-width: 760px) { .hero__map { right: -30%; width: 110vw; opacity: 0.7; } }

/* Issue preview */
.issue-preview { display: grid; grid-template-columns: 1fr 1.25fr; gap: clamp(32px, 6vw, 80px); align-items: center; padding-top: clamp(56px, 8vw, 96px); padding-bottom: clamp(56px, 8vw, 96px); }
.issue-preview__copy p { color: var(--muted); max-width: 26em; }
.email { background: var(--white); border: 1px solid var(--rule); border-radius: 10px; box-shadow: 0 1px 0 var(--rule), 0 18px 40px -24px rgba(20, 40, 75, 0.35); overflow: hidden; }
.email__top { display: flex; justify-content: space-between; align-items: center; padding: 14px 20px; border-bottom: 3px solid var(--lake); font-family: var(--sans); font-size: 0.85rem; color: var(--muted); }
.email__from { display: inline-flex; align-items: center; gap: 8px; font-weight: 650; color: var(--navy); }
.email__from .mark { width: 18px; height: 19px; }
.email__sections { list-style: none; margin: 0; padding: 6px 20px 10px; counter-reset: s; }
.email__sections li { padding: 16px 0 14px; border-bottom: 1px solid var(--rule); }
.email__sections li:last-child { border-bottom: 0; }
.email__sections h3 { font-family: var(--display); font-weight: 400; font-size: 1.45rem; letter-spacing: 0.02em; color: var(--navy); margin-bottom: 2px; }
.email__sections p { margin: 0; color: var(--muted); font-size: 1rem; }
@media (max-width: 860px) { .issue-preview { grid-template-columns: 1fr; } }

/* Audience */
.audience { background: var(--white); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: clamp(48px, 7vw, 80px) 0; }
.audience__list { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.audience__list li { padding: 4px 24px 4px 0; margin-right: 24px; border-right: 1px solid var(--rule); }
.audience__list li:last-child { border-right: 0; margin-right: 0; }
.audience__list p { color: var(--muted); font-size: 1rem; margin: 0; }
@media (max-width: 860px) {
  .audience__list { grid-template-columns: 1fr 1fr; gap: 24px; }
  .audience__list li { border-right: 0; margin: 0; padding: 0; }
}
@media (max-width: 520px) { .audience__list { grid-template-columns: 1fr; } }

/* Home split */
.home-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 80px); padding-top: clamp(56px, 8vw, 96px); padding-bottom: clamp(56px, 8vw, 96px); }
.section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.section-head a { font-family: var(--sans); font-size: 0.92rem; font-weight: 600; white-space: nowrap; }
@media (max-width: 860px) { .home-split { grid-template-columns: 1fr; } }
.issue-list, .guide-list { list-style: none; margin: 0; padding: 0; }
.issue-list li, .guide-list li { border-top: 1px solid var(--rule); }
.issue-list a, .guide-list a { display: block; padding: 18px 0; text-decoration: none; color: var(--ink); }
.issue-list a:hover h3, .issue-list a:hover h2, .guide-list a:hover h3 { text-decoration: underline; text-decoration-color: var(--lake); text-decoration-thickness: 2px; text-underline-offset: 0.15em; }
.issue-list time { font-family: var(--sans); font-size: 0.82rem; font-weight: 600; color: var(--muted); display: block; margin-bottom: 4px; }
.issue-list p, .guide-list p { color: var(--muted); font-size: 1rem; margin: 4px 0 0; }
.issue-list--full h2 { font-family: var(--serif); font-size: 1.35rem; font-weight: 700; color: var(--ink); line-height: 1.3; margin: 0; }
.empty { border: 1px dashed #B9BFCA; border-radius: var(--radius); padding: 20px; color: var(--muted); background: var(--white); }

/* Editor */
.editor { display: grid; grid-template-columns: 160px 1fr; gap: 32px; align-items: center; padding-top: 8px; padding-bottom: clamp(56px, 8vw, 96px); }
.editor img { border-radius: 50%; width: 160px; height: 160px; object-fit: cover; }
.editor p { color: var(--muted); max-width: 38em; }
@media (max-width: 600px) { .editor { grid-template-columns: 1fr; } .editor img { width: 112px; height: 112px; } }

/* Bands */
.band { background: var(--navy); color: var(--white); padding: clamp(48px, 7vw, 80px) 0; }
.band h2 { color: var(--white); }
.band p { color: #DCE4F0; }
.band--soft { background: var(--lake-soft); color: var(--ink); }
.band--soft h2 { color: var(--navy); }
.band--soft p { color: var(--muted); }

/* Pages */
.page__head { padding-top: clamp(40px, 7vw, 80px); padding-bottom: 24px; }
.page__head .signup { margin-top: 20px; }
.page__body { padding-bottom: clamp(48px, 7vw, 80px); }
.prose { max-width: 42rem; }
.prose h2 { margin-top: 1.6em; }
.prose h3 { margin-top: 1.4em; font-size: 1.25rem; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li { margin-bottom: 0.4em; }
.prose table { border-collapse: collapse; width: 100%; font-size: 1rem; margin: 1.2em 0; font-family: var(--sans); }
.prose th, .prose td { text-align: left; border-bottom: 1px solid var(--rule); padding: 10px 12px 10px 0; vertical-align: top; }
.prose th { font-weight: 650; color: var(--navy); }
.prose blockquote { margin: 1.4em 0; padding: 4px 0 4px 18px; border-left: 3px solid var(--lake); color: var(--muted); }
.prose img { border-radius: var(--radius); }
.table-scroll { overflow-x: auto; }
.callout { background: var(--white); border: 1px solid var(--rule); border-left: 4px solid var(--lake); border-radius: 0 var(--radius) var(--radius) 0; padding: 16px 20px; }
.profile { display: flex; gap: 20px; align-items: center; margin: 1.5em 0; }
.profile img { width: 112px; height: 112px; border-radius: 50%; object-fit: cover; flex: none; }
.profile p { margin: 0; }

/* Guides */
.guide__head { padding-top: clamp(32px, 6vw, 64px); padding-bottom: 8px; }
.guide__head h1 { max-width: 14em; }
.crumbs { font-family: var(--sans); font-size: 0.88rem; margin-bottom: 18px; display: flex; gap: 8px; color: var(--muted); }
.byline { display: flex; align-items: center; gap: 12px; font-family: var(--sans); font-size: 0.9rem; margin-top: 8px; }
.byline img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.byline p { margin: 0; line-height: 1.35; }
.byline span { color: var(--muted); }
.guide__layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; padding-top: 24px; padding-bottom: 64px; }
.guide__side { position: relative; }
.sidecard { position: sticky; top: 24px; background: var(--white); border: 1px solid var(--rule); border-top: 4px solid var(--navy); border-radius: var(--radius); padding: 22px; }
.sidecard h2 { font-size: 1.7rem; }
.sidecard p { font-size: 1rem; color: var(--muted); }
.sidecard .signup__row { flex-direction: column; }
.sidecard button { width: 100%; }
@media (max-width: 960px) { .guide__layout { grid-template-columns: 1fr; } .sidecard { position: static; } }
.answer { background: var(--white); border: 1px solid var(--rule); border-left: 4px solid var(--lake); border-radius: 0 var(--radius) var(--radius) 0; padding: 20px 24px; margin-bottom: 32px; max-width: 42rem; }
.answer h2 { font-family: var(--sans); font-size: 0.9rem; font-weight: 700; color: var(--navy); letter-spacing: 0; margin-bottom: 6px; line-height: 1.3; }
.answer p { margin: 0; font-size: 1.1rem; }
.faq { max-width: 42rem; margin-top: 48px; }
.faq details { border-top: 1px solid var(--rule); }
.faq details:last-child { border-bottom: 1px solid var(--rule); }
.faq summary { cursor: pointer; padding: 16px 32px 16px 0; font-weight: 700; position: relative; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 4px; top: 12px; font-family: var(--sans); font-size: 1.4rem; color: var(--navy); }
.faq details[open] summary::after { content: "\2212"; }
.faq .prose { padding-bottom: 8px; }
.sources { max-width: 42rem; margin-top: 40px; font-size: 0.98rem; }
.sources ol { padding-left: 1.3em; }
.sources li { margin-bottom: 0.4em; }
.disclaimer { max-width: 42rem; margin-top: 32px; font-size: 0.92rem; color: var(--muted); border-top: 1px solid var(--rule); padding-top: 16px; }
.related { padding-bottom: 72px; }

/* Cards */
.cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.card { background: var(--white); border: 1px solid var(--rule); border-radius: var(--radius); }
.card a { display: flex; flex-direction: column; height: 100%; padding: 22px; text-decoration: none; color: var(--ink); }
.card a:hover { box-shadow: inset 0 -3px 0 var(--lake); }
.card h2, .card h3 { font-family: var(--serif); font-size: 1.3rem; font-weight: 700; color: var(--navy); line-height: 1.25; letter-spacing: 0; }
.card p { color: var(--muted); font-size: 1rem; flex: 1; }
.card__meta { font-family: var(--sans); font-size: 0.82rem; color: var(--muted); }
.cards--guides { padding-bottom: 64px; }

/* Subscribe landing */
.landing { padding: clamp(48px, 8vw, 96px) 0; }
.landing__inner { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(32px, 6vw, 80px); align-items: start; }
.landing h1 { font-size: clamp(2.8rem, 7vw, 5rem); }
.checks { list-style: none; padding: 0; margin: 24px 0 0; font-family: var(--sans); font-size: 0.95rem; }
.checks li { padding-left: 26px; position: relative; margin-bottom: 8px; }
.checks li::before { content: ""; position: absolute; left: 2px; top: 0.35em; width: 12px; height: 7px; border-left: 2px solid var(--navy); border-bottom: 2px solid var(--navy); transform: rotate(-45deg); }
.landing__format { list-style: none; margin: 0; padding: 24px; background: var(--white); border: 1px solid var(--rule); border-top: 4px solid var(--lake); border-radius: var(--radius); }
.landing__format li { padding: 12px 0; border-bottom: 1px solid var(--rule); }
.landing__format li:last-child { border-bottom: 0; }
.landing__format h2 { font-size: 1.5rem; margin: 0; }
.landing__format p { margin: 0; color: var(--muted); font-size: 1rem; }
@media (max-width: 860px) { .landing__inner { grid-template-columns: 1fr; } }

/* Welcome */
.welcome__inner { padding-top: clamp(48px, 8vw, 96px); padding-bottom: clamp(48px, 8vw, 96px); max-width: 760px; margin: 0 auto; }
.segment { background: var(--white); border: 1px solid var(--rule); border-radius: var(--radius); padding: 24px; margin: 32px 0; }
.segment h2 { font-size: 1.8rem; }
.segment__options { display: flex; flex-wrap: wrap; gap: 10px; }
.segment button { background: var(--white); color: var(--navy); border: 1px solid var(--navy); font-weight: 600; font-size: 0.95rem; padding: 0.65em 1em; }
.segment button:hover, .segment button[aria-pressed="true"] { background: var(--navy); color: var(--white); }
.segment__msg { font-family: var(--sans); font-size: 0.9rem; color: var(--muted); margin: 12px 0 0; min-height: 1.3em; }

/* Contact form */
.contact { margin-top: 24px; max-width: 42rem; }
.contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.contact label { display: block; font-family: var(--sans); font-size: 0.9rem; font-weight: 600; margin-bottom: 14px; color: var(--ink); }
.contact input, .contact textarea { display: block; width: 100%; margin-top: 6px; font: 1rem var(--sans); padding: 0.7em 0.8em; border: 1px solid #B9BFCA; border-radius: var(--radius); background: var(--white); }
.contact__msg { font-family: var(--sans); font-size: 0.92rem; margin-top: 12px; }
@media (max-width: 600px) { .contact__grid { grid-template-columns: 1fr; } }

/* Footer */
.footer { background: var(--navy-deep); color: #C5D2E6; padding: 56px 0 32px; font-family: var(--sans); font-size: 0.92rem; }
.footer a { color: var(--white); text-decoration: none; }
.footer a:hover { text-decoration: underline; text-decoration-color: var(--lake); }
.footer__grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 40px; }
.brand--light { color: var(--white); }
.footer__brand p { margin-top: 12px; max-width: 26em; }
.footer__links { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.footer__links ul, .socials { list-style: none; margin: 0; padding: 0; }
.footer__links li { margin-bottom: 10px; }
.socials { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 12px; }
.footer__fine { border-top: 1px solid #2A3B5E; margin-top: 40px; padding-top: 20px; font-size: 0.82rem; color: #9DAAC2; }
.footer__fine p { max-width: 60em; }
.footer__fine a { color: #C5D2E6; text-decoration: underline; }
@media (max-width: 700px) { .footer__grid { grid-template-columns: 1fr; } }

@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
@media print { .masthead, .footer, .guide__side, .band, .signup { display: none; } body { background: #fff; } }


/* ==========================================================================
   EDITORIAL EDITION — The Mitten Mile
   Newspaper-led presentation: ink, type, hairline rules, no app-style cards.
   ========================================================================== */
:root {
  --paper: #F7F7F5;
  --white: #F7F7F5;
  --ink: #14284B;
  --muted: #536071;
  --rule: #BFC6CC;
  --radius: 0px;
  --wrap: 1240px;
}
body {font-size:1.08rem;line-height:1.6;background:var(--paper);}
h1,h2 {line-height:1.04;}
a:hover {text-decoration-color:var(--lake);}
.masthead {background:var(--paper);border-bottom:3px double var(--navy);}
.masthead__inner {min-height:105px;gap:28px;}
.brand {gap:12px;}
.brand .mark {width:42px;height:44px;}
.brand__word {font-size:clamp(2rem,3.6vw,3.15rem);letter-spacing:0.016em;}
.nav a {font-family:var(--sans);font-size:.76rem;letter-spacing:.11em;text-transform:uppercase;font-weight:750;}
.nav ul {gap:23px;}
.masthead__cta {font-family:var(--sans);text-transform:uppercase;letter-spacing:.11em;font-size:.72rem;background:var(--navy);padding:11px 17px;}
.btn,.signup button,.contact button,.segment button {border-radius:0;}
.signup input[type=email] {border-radius:0;}
.footer {background:var(--navy);border-top:4px double var(--lake);}
.footer .brand__word {font-size:2.2rem;}
.footer .brand .mark {width:34px;height:36px;}

.front-label {font:750 .68rem/1.25 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--navy);margin:0 0 18px;}
.front-lead {padding-top:15px;padding-bottom:65px;}
.front-lead__eyebrow {display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 0 14px;border-bottom:1px solid var(--navy);font:700 .68rem/1.3 var(--sans);letter-spacing:.13em;text-transform:uppercase;}
.front-lead__eyebrow span:last-child {font-weight:500;letter-spacing:.06em;}
.front-lead__grid {display:grid;grid-template-columns:minmax(0,1.57fr) minmax(295px,.83fr);gap:48px;padding-top:55px;}
.front-lead__main {padding:15px 26px 25px 0;}
.front-lead h1 {font-family:var(--serif);font-weight:780;font-size:clamp(3.05rem,5.2vw,5.65rem);line-height:.99;letter-spacing:-.042em;max-width:820px;margin:0 0 28px;}
.front-lead__intro {font-family:var(--serif);font-size:clamp(1.18rem,1.5vw,1.47rem);line-height:1.52;max-width:620px;margin:0 0 31px;}
.front-lead__meta {border-top:1px solid var(--rule);padding-top:13px;display:flex;flex-wrap:wrap;gap:10px 18px;color:var(--muted);font:650 .7rem/1.3 var(--sans);text-transform:uppercase;letter-spacing:.08em;}
.front-lead__meta span+span::before {content:"/";margin-right:18px;color:var(--lake);}
.front-lead__aside {padding:22px 0 0 33px;border-left:1px solid var(--navy);}
.front-lead__aside-top {display:flex;justify-content:space-between;gap:10px;padding:0 0 13px;border-bottom:4px solid var(--navy);font:750 .7rem var(--sans);letter-spacing:.09em;}
.front-lead__aside h2 {font-family:var(--display);font-size:clamp(2.1rem,3.15vw,3.1rem);line-height:1.02;margin:23px 0 12px;letter-spacing:.018em;}
.front-lead__aside>p {font-size:1rem;line-height:1.57;margin-bottom:22px;}
.front-lead__aside .signup__row {flex-direction:column;gap:10px;}
.front-lead__aside .signup button {width:100%;font:750 .77rem var(--sans);letter-spacing:.1em;text-transform:uppercase;}
.front-lead__aside .signup input[type=email] {background:#fff;}
.front-lead__aside .signup__msg {font-size:.77rem;}
.editorial-heading {display:flex;align-items:baseline;gap:15px;border-top:3px solid var(--navy);border-bottom:1px solid var(--rule);padding:13px 0 11px;margin-bottom:26px;}
.editorial-heading h2 {font-family:var(--display);font-size:clamp(1.8rem,3.1vw,2.55rem);line-height:1;margin:0;letter-spacing:.02em;}
.editorial-heading__number {font:700 .7rem var(--sans);color:var(--muted);}
.editorial-heading__aside,.editorial-heading>a {margin-left:auto;font:650 .7rem var(--sans);letter-spacing:.05em;text-transform:uppercase;}
.editorial-heading>a {text-decoration:none;border-bottom:1px solid var(--navy);}
.dispatch {padding-bottom:70px;}
.dispatch__grid {display:grid;grid-template-columns:1.55fr 1fr;gap:45px;}
.dispatch__lead {padding-right:37px;border-right:1px solid var(--rule);}
.dispatch a {display:block;color:inherit;text-decoration:none;}
.dispatch a:hover h3 {text-decoration:underline;text-decoration-color:var(--lake);}
.dispatch time {display:block;font:650 .7rem var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:11px;}
.dispatch__lead h3 {font:780 clamp(1.75rem,3vw,2.75rem)/1.09 var(--serif);letter-spacing:-.025em;}
.dispatch__lead p {max-width:42rem;}
.dispatch__more>a:not(.dispatch__archive) {padding:13px 0 16px;border-top:1px solid var(--rule);}
.dispatch__more h3 {font:730 1.17rem/1.3 var(--serif);}
.dispatch__archive {font:750 .75rem var(--sans);margin-top:17px;text-transform:uppercase;letter-spacing:.07em;}
.dispatch__empty {max-width:650px;padding:25px 0 8px;}
.dispatch__empty h3 {font:750 clamp(1.6rem,3vw,2.25rem)/1.2 var(--serif);}
.text-link {font:750 .75rem/1.3 var(--sans);letter-spacing:.07em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--navy);display:inline-block;margin-top:8px;padding-bottom:4px;color:var(--navy);}
.coverage {padding-bottom:75px;}
.coverage__grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--rule);}
.coverage__item {padding:12px 19px 26px 0;margin-right:19px;border-right:1px solid var(--rule);}
.coverage__item:last-child {border-right:0;margin-right:0;}
.coverage__index {font:750 .69rem var(--sans);color:var(--muted);letter-spacing:.12em;}
.coverage__item h3 {font:400 clamp(1.55rem,2vw,1.9rem)/1.08 var(--display);margin:12px 0;}
.coverage__item p {font-size:.94rem;line-height:1.57;color:var(--muted);margin:0;}
.reading {padding-bottom:76px;}
.reading__intro {font-size:1rem;color:var(--muted);max-width:50rem;margin-bottom:23px;}
.reading__grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;}
.reading__story {padding:21px 0 0;border-top:1px solid var(--navy);}
.reading__story h3 {font:750 clamp(1.3rem,1.8vw,1.65rem)/1.2 var(--serif);margin-bottom:14px;}
.reading__story h3 a {color:var(--ink);text-decoration:none;}
.reading__story h3 a:hover {text-decoration:underline;text-decoration-color:var(--lake);}
.reading__story p {font-size:.97rem;color:var(--muted);}
.editor-note {border-top:3px double var(--navy);padding-top:35px;padding-bottom:65px;display:grid;grid-template-columns:125px minmax(0,1fr);gap:30px;max-width:900px;}
.editor-note__image img {width:125px;height:125px;object-fit:cover;filter:grayscale(1);}
.editor-note h2 {font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.55rem);font-weight:750;letter-spacing:-.028em;line-height:1.15;margin-bottom:15px;}
.editor-note p:not(.front-label) {max-width:46rem;font-size:1rem;}
.last-word {padding:50px 0 54px;background:var(--navy);color:var(--paper);}
.last-word__inner {display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:52px;}
.last-word h2 {font-family:var(--serif);font-weight:750;font-size:clamp(2rem,3.5vw,3rem);color:var(--paper);line-height:1.1;}
.last-word p {color:#DDE7F2;font-size:1rem;}
.last-word .front-label {color:var(--lake);}
.last-word .signup input {background:#fff;}
.last-word .signup button {background:var(--lake);color:var(--navy);font-weight:800;}
.last-word .signup__msg {color:#DDE7F2;}
.last-word .signup__msg.is-error {color:#FFD3CF;}
/* Keep secondary pages in the same print-led system */
.card,.email,.sidecard,.answer,.callout,.segment,.landing__format,.empty {border-radius:0;box-shadow:none;}
.profile img,.byline img,.editor img {border-radius:0;}
.page__head h1,.guide__head h1,.landing h1 {font-family:var(--serif);font-weight:760;letter-spacing:-.035em;line-height:1.06;}
.card h2,.card h3 {font-family:var(--serif);}
.page__head,.guide__head {border-bottom:1px solid var(--rule);margin-bottom:20px;}
@media(max-width:950px) {
 .front-lead__grid {gap:26px;grid-template-columns:minmax(0,1.25fr) minmax(260px,.85fr);}
 .front-lead__aside {padding-left:22px;}
 .coverage__grid {grid-template-columns:repeat(2,minmax(0,1fr));row-gap:25px;}
 .coverage__item:nth-child(2) {border-right:0;}
 .reading__grid {gap:20px;}
}
@media(max-width:760px) {
 .masthead__inner {min-height:0;padding-top:15px;}
 .brand .mark {width:32px;height:34px;}
 .brand__word {font-size:clamp(1.75rem,6.1vw,2.25rem);}
 .masthead__cta {padding:9px 12px;}
 .nav {margin-top:12px;}
 .nav ul {gap:8px;}
 .nav a {font-size:.7rem;}
 .front-lead {padding-bottom:45px;}
 .front-lead__eyebrow span:last-child {display:none;}
 .front-lead__grid {grid-template-columns:1fr;gap:25px;padding-top:29px;}
 .front-lead__main {padding:0;}
 .front-lead h1 {font-size:clamp(2.75rem,9vw,4.7rem);}
 .front-lead__aside {border-left:0;border-top:1px solid var(--navy);padding:20px 0 0;}
 .front-lead__aside .signup__row {flex-direction:row;}
 .front-lead__aside .signup button {width:auto;}
 .dispatch__grid {grid-template-columns:1fr;gap:24px;}
 .dispatch__lead {border-right:0;border-bottom:1px solid var(--rule);padding:0 0 24px;}
 .reading__grid {grid-template-columns:1fr;}
 .reading__story {padding-bottom:12px;}
 .last-word__inner {grid-template-columns:1fr;gap:18px;}
 .editorial-heading__aside {display:none;}
}
@media(max-width:520px) {
 .front-lead__meta {gap:6px 12px;}
 .front-lead__meta span+span::before {margin-right:11px;}
 .front-lead__aside .signup__row {flex-direction:column;}
 .front-lead__aside .signup button {width:100%;}
 .coverage__grid {grid-template-columns:1fr;gap:0;}
 .coverage__item {border-right:0;border-top:1px solid var(--rule);margin:0;padding:21px 0;}
 .editor-note {grid-template-columns:1fr;gap:16px;}
 .editor-note__image img {width:90px;height:90px;}
 .editorial-heading {flex-wrap:wrap;}
 .editorial-heading>a {font-size:.66rem;}
}

/* Dynamic newsroom content; articles, sponsors and notices update without rebuilding. */
.live-articles[hidden],.live-sponsors[hidden],.live-modules[hidden],[data-static-stories][hidden],[data-static-archive][hidden],[data-live-archive][hidden]{display:none!important}
.live-articles{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(250px,.8fr);gap:48px}
.live-articles article{border-top:1px solid var(--rule);padding:18px 0}
.live-articles article:first-child{border-top:3px solid var(--navy);padding-top:24px}
.live-articles article h3{font-size:1.3rem;margin:6px 0}
.live-articles article:first-child h3{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.18}
.live-articles article a{text-decoration:none;color:var(--ink)}
.live-articles article a:hover{text-decoration:underline}
.live-articles article p{color:var(--muted);font-size:1rem}
.live-articles article .meta,.live-sponsors__label,.live-modules__label{font:800 .7rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--navy)}
.live-sponsors{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding-top:25px;padding-bottom:25px;margin-bottom:72px}
.live-sponsors__grid,.live-modules__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:25px}
.live-sponsors article{padding:12px 0;border-top:2px solid var(--lake)}
.live-sponsors article h3,.live-modules article h3{font:750 1.3rem/1.25 var(--serif);margin:12px 0 6px}
.live-sponsors article p,.live-modules article p{font-size:.98rem;color:var(--muted)}
.live-sponsors article a,.live-modules article a{font:750 .76rem var(--sans);text-transform:uppercase;letter-spacing:.06em}
.live-modules{padding-top:35px;padding-bottom:55px}
.live-modules__grid article{border-top:1px solid var(--navy);padding-top:16px}
.story-page{padding-top:65px;padding-bottom:110px}
.story-page h1{font:760 clamp(2.8rem,6.5vw,5.4rem)/1.07 var(--serif);letter-spacing:-.045em;max-width:1000px}
.story-page__dek{font-size:clamp(1.1rem,2vw,1.48rem);color:var(--muted);max-width:760px}
.story-page__byline{font:750 .76rem var(--sans);letter-spacing:.04em;text-transform:uppercase;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:14px 0;margin:30px 0}
.story-page__body{max-width:720px;font-size:1.17rem;line-height:1.8}
.story-page__body h2{font:750 2rem/1.2 var(--serif);letter-spacing:-.02em;margin-top:1.5em}
.story-page__body h3{font-size:1.4rem;margin-top:1.3em}
.story-page__bottom,.source-line{border-top:1px solid var(--rule);padding-top:18px;font:700 .88rem var(--sans);margin-top:40px}
@media(max-width:760px){.live-articles{grid-template-columns:1fr;gap:0}.story-page{padding-top:35px}}

/* ===== Editorial system, Nov 2026 =====
   Modeled on newsletter-first newsrooms: serif headlines in sentence case,
   one quiet sans for labels and navigation, thin rules, content first. */
:root { --paper:#FFFFFF; --ink:#111827; --muted:#5B6474; --rule:#E2E5EA; --navy:#14284B; --accent:#1F5FA8; --wrap:1180px; }
body { background:#fff; font-size:1.0625rem; }
h1, h2 { font-family:var(--serif); font-weight:700; letter-spacing:-0.012em; line-height:1.12; text-transform:none; color:var(--ink); }
h1 { font-size:clamp(2rem,3.6vw,2.75rem); }
h2 { font-size:clamp(1.35rem,2.2vw,1.6rem); }
a { color:inherit; }
.page__head h1, .guide__head h1, .landing h1 { font-family:var(--serif); text-transform:none; letter-spacing:-0.015em; color:var(--ink); }
.card h2, .card h3 { font-family:var(--serif); text-transform:none; letter-spacing:-0.005em; }

/* Masthead */
.masthead { background:#fff; border-bottom:1px solid var(--ink); }
.topbar { border-bottom:1px solid var(--rule); font-family:var(--sans); font-size:.8rem; color:var(--muted); }
.topbar__inner { display:flex; justify-content:space-between; align-items:center; min-height:36px; gap:16px; }
.topbar__links { display:flex; gap:18px; align-items:center; }
.topbar__links a { text-decoration:none; color:var(--ink); }
.topbar__links a:hover { text-decoration:underline; }
.topbar__cta { background:var(--navy); color:#fff !important; padding:5px 12px; border-radius:3px; font-weight:600; }
.topbar__cta:hover { background:#0F1F3B; text-decoration:none !important; }
.masthead__brand { display:flex; justify-content:center; padding:22px 0 16px; }
.brand { gap:12px; color:var(--navy); }
.brand .mark { width:34px; height:36px; color:var(--navy); }
.brand__word { font-family:var(--serif); font-weight:800; font-size:clamp(2rem,4.2vw,3.1rem); letter-spacing:-0.025em; text-transform:none; padding:0; }
.masthead__inner, .masthead__cta { display:none; }
.nav { margin:0; border-top:1px solid var(--rule); }
.nav ul { display:flex; justify-content:center; gap:30px; list-style:none; margin:0 auto; padding:0 var(--gutter); }
.nav a { display:block; font-family:var(--sans); font-size:.9rem; font-weight:600; letter-spacing:0; text-transform:none; color:var(--ink); padding:11px 0; border-bottom:3px solid transparent; }
.nav a:hover, .nav a[aria-current="page"] { border-bottom-color:var(--navy); }
.signup-strip { background:#F3F5F8; border-top:1px solid var(--rule); font-family:var(--sans); font-size:.9rem; }
.signup-strip__inner { display:flex; align-items:center; justify-content:center; gap:20px; padding-top:10px; padding-bottom:10px; }
.signup-strip p { margin:0; color:var(--muted); }
.signup-strip strong { color:var(--ink); margin-right:6px; }
.signup-strip .signup { margin:0; width:min(420px,100%); }
.signup-strip .signup__msg:not(.is-error):not(.is-shown) { display:none; }

/* Forms */
.signup__row { display:flex; gap:8px; }
.signup input[type=email] { flex:1; min-width:0; font:inherit; font-family:var(--sans); font-size:.95rem; padding:9px 12px; border:1px solid #C9CED6; border-radius:3px; background:#fff; }
.btn, .signup button, .contact button, .segment button { font-family:var(--sans); font-size:.9rem; font-weight:600; letter-spacing:0; text-transform:none; background:var(--navy); color:#fff; border:0; border-radius:3px; padding:9px 16px; }
.signup__msg { font-family:var(--sans); font-size:.8rem; color:var(--muted); margin:6px 0 0; }

/* Front page */
.front { padding-top:28px; }
.front__grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr) 300px; gap:0; }
.front__lead { padding-right:28px; border-right:1px solid var(--rule); }
.front__side { padding:0 28px; border-right:1px solid var(--rule); }
.front__rail { padding-left:28px; }
.kicker { display:inline-block; font-family:var(--sans); font-size:.78rem; font-weight:700; color:var(--accent); text-decoration:none; margin-bottom:8px; }
.kicker:hover { text-decoration:underline; }
.lead-story__title { font-size:clamp(2rem,3.4vw,2.7rem); margin:0 0 12px; }
.lead-story__title a, .side-story h2 a, .headline-list a, .latest a { text-decoration:none; }
.lead-story__title a:hover, .side-story h2 a:hover, .headline-list a:hover h3, .latest a:hover { text-decoration:underline; text-decoration-thickness:1px; }
.lead-story__dek { font-size:1.2rem; line-height:1.45; color:#2B3343; margin:0 0 14px; }
.byline-line { font-family:var(--sans); font-size:.85rem; color:var(--muted); margin:0 0 18px; }
.byline-line a { color:var(--ink); font-weight:600; text-decoration:none; }
.lead-story__summary { border-top:1px solid var(--rule); padding-top:16px; color:#2B3343; }
.side-story { padding-bottom:20px; margin-bottom:20px; border-bottom:1px solid var(--rule); }
.side-story:last-child { border-bottom:0; margin-bottom:0; }
.side-story h2 { font-size:1.3rem; line-height:1.2; margin:0 0 8px; }
.side-story p { font-size:.98rem; line-height:1.5; color:#3A4252; margin:0; }
.rail-head { font-family:var(--sans); font-size:.95rem; font-weight:700; letter-spacing:0; color:var(--ink); border-bottom:2px solid var(--ink); padding-bottom:6px; margin:0 0 4px; }
.latest { list-style:none; margin:0 0 28px; padding:0; }
.latest li { border-bottom:1px solid var(--rule); }
.latest a { display:block; padding:11px 0; font-family:var(--serif); font-size:1rem; font-weight:600; line-height:1.3; color:var(--ink); }
.latest time { display:block; font-family:var(--sans); font-size:.75rem; font-weight:500; color:var(--muted); margin-bottom:2px; }
.rail-box { background:#F3F5F8; padding:16px 18px 18px; }
.rail-box .rail-head { border-bottom-color:var(--navy); }
.rail-box p { font-size:.95rem; line-height:1.5; margin:10px 0 12px; }
.section-block { border-top:1px solid var(--ink); margin-top:44px; padding-top:14px; }
.section-block__head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; }
.section-block__head h2 { font-family:var(--sans); font-size:1rem; font-weight:700; letter-spacing:0; margin:0; }
.section-block__head a { font-family:var(--sans); font-size:.85rem; color:var(--accent); text-decoration:none; }
.section-block__note { color:var(--muted); margin:10px 0 0; }
.headline-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:32px; }
.headline-list--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.headline-list li { border-bottom:1px solid var(--rule); }
.headline-list a { display:block; padding:16px 0; color:var(--ink); }
.headline-list h3 { font-size:1.15rem; line-height:1.25; margin:0 0 6px; }
.headline-list p { font-size:.95rem; line-height:1.5; color:#3A4252; margin:0 0 8px; }
.headline-list time { font-family:var(--sans); font-size:.75rem; color:var(--muted); }
.about-strip { display:flex; gap:16px; align-items:center; padding-bottom:8px; margin-bottom:48px; }
.about-strip img { width:56px; height:56px; border-radius:50%; object-fit:cover; flex:none; }
.about-strip p { margin:0; font-size:.98rem; color:#2B3343; }
.about-strip a { color:var(--accent); }

/* Retire template-style elements from the previous design */
.front-label, .editorial-heading__number, .front-lead__eyebrow, .front-lead__meta, .coverage__index { display:none !important; }

/* Live newsroom blocks */
.live-sponsors, .live-modules { margin-top:36px; }
.live-sponsors article, .live-modules article { border:1px solid var(--rule); padding:16px 18px; }
.live-sponsors__label, .live-modules__label { font-family:var(--sans); font-size:.72rem; color:var(--muted); }
.live-sponsors__grid, .live-modules__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; }

/* Footer */
.footer { background:#fff; color:var(--muted); border-top:1px solid var(--ink); padding:36px 0 28px; }
.footer a { color:var(--ink); }
.footer .brand, .brand--light { color:var(--navy); }
.footer .brand__word { font-size:1.6rem; }
.footer .brand .mark { width:26px; height:28px; }
.footer__fine { border-top:1px solid var(--rule); color:var(--muted); }
.footer__fine a { color:var(--ink); }

@media (max-width: 1020px) {
  .front__grid { grid-template-columns:minmax(0,1fr) 280px; }
  .front__lead { grid-column:1; }
  .front__side { grid-column:1; grid-row:2; padding:24px 28px 0 0; border-right:1px solid var(--rule); border-top:1px solid var(--rule); margin-top:24px; }
  .front__rail { grid-column:2; grid-row:1 / span 2; }
  .headline-list--three { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .topbar__date { display:none; }
  .topbar__inner { justify-content:center; }
  .masthead__brand { padding:16px 0 12px; }
  .nav ul { justify-content:flex-start; overflow-x:auto; gap:22px; white-space:nowrap; }
  .signup-strip__inner { flex-direction:column; align-items:stretch; gap:8px; }
  .front__grid { display:block; }
  .front__lead, .front__side, .front__rail { padding:0; border:0; }
  .front__side { border-top:1px solid var(--rule); margin-top:24px; padding-top:20px; }
  .front__rail { margin-top:28px; }
  .headline-list, .headline-list--three { grid-template-columns:1fr; }
}
.section-block { border-top:0; padding-top:0; }
.section-block__head { border-top:1px solid var(--ink); padding-top:14px; }
.about-strip { border-top:0; }
.about-strip__inner { display:flex; gap:16px; align-items:center; border-top:1px solid var(--rule); padding-top:18px; width:100%; }
.rail-box .signup__row { flex-direction:column; }
.rail-box .signup button { width:100%; }
@media (max-width: 760px) { .lead-story__summary { display:none; } .signup-strip p { font-size:.85rem; } }

/* ===== Sections, topics, search, articles ===== */
.topbar__search { display:flex; align-items:center; border:1px solid #C9CED6; border-radius:3px; background:#fff; }
.topbar__search input { border:0; font:inherit; font-size:.8rem; padding:4px 8px; width:150px; background:transparent; }
.topbar__search input:focus { outline:none; }
.topbar__search:focus-within { outline:2px solid var(--accent); outline-offset:1px; }
.topbar__search button { border:0; background:transparent; color:var(--muted); padding:4px 8px; cursor:pointer; display:flex; }
.nav ul { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
.nav ul::-webkit-scrollbar { display:none; }
.nav a { white-space:nowrap; }

.page-front { padding-top:28px; padding-bottom:56px; }
.front-head { border-bottom:1px solid var(--ink); padding-bottom:18px; margin-bottom:8px; }
.front-head h1 { font-size:clamp(2rem,4vw,3rem); margin:6px 0 8px; }
.front-head__eyebrow { font-family:var(--sans); font-size:.8rem; font-weight:700; color:var(--accent); margin:10px 0 0; }
.front-head__dek { font-size:1.1rem; color:#2B3343; max-width:44em; margin:0 0 12px; }
.front-head__dek a { color:var(--accent); }
.front-head__topics, .search-topics { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin-top:8px; }
.front-head__topics > span, .search-topics > span, .story__tags > span { font-family:var(--sans); font-size:.8rem; font-weight:700; color:var(--muted); }
.crumbs { font-family:var(--sans); font-size:.82rem; color:var(--muted); display:flex; gap:8px; flex-wrap:wrap; }
.crumbs a { color:var(--muted); }

.chips { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.chips a { display:inline-block; font-family:var(--sans); font-size:.82rem; font-weight:500; color:var(--ink); text-decoration:none; border:1px solid #CDD3DC; border-radius:999px; padding:4px 11px; background:#fff; }
.chips a:hover { border-color:var(--navy); background:#F3F5F8; }
.chips a span { color:var(--muted); font-size:.75rem; margin-left:3px; }

.river-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:40px; }
.river-item { border-bottom:1px solid var(--rule); padding:18px 0; }
.river-item__top { display:flex; gap:10px; align-items:baseline; }
.river-item h2 { font-size:1.3rem; line-height:1.25; margin:2px 0 6px; }
.river-item h2 a { text-decoration:none; color:var(--ink); }
.river-item h2 a:hover { text-decoration:underline; text-decoration-thickness:1px; }
.river-item p { margin:0 0 6px; font-size:.98rem; line-height:1.5; color:#3A4252; }
.river-item .byline-line { margin:4px 0 0; font-size:.8rem; }
.river-lead .river-item h2 { font-size:clamp(1.6rem,2.6vw,2.1rem); }
.river-lead .river-item > p:not(.byline-line):not(.tag-row) { font-size:1.08rem; }
.row-type { font-family:var(--sans); font-size:.72rem; color:var(--muted); border:1px solid var(--rule); border-radius:3px; padding:0 6px; }
.kicker--muted { color:var(--muted); }
.tag-row { display:flex; flex-wrap:wrap; gap:4px 12px; margin-top:6px !important; }
.tag-row a { font-family:var(--sans); font-size:.76rem; color:var(--muted); text-decoration:none; }
.tag-row a::before { content:"#"; opacity:.5; }
.tag-row a:hover { color:var(--accent); text-decoration:underline; }
.river--grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:32px; }
.river-rail { padding-top:18px; display:flex; flex-direction:column; gap:20px; }
.rail-links { list-style:none; margin:0; padding:0; }
.rail-links li { border-bottom:1px solid var(--rule); }
.rail-links a { display:block; padding:9px 0; font-family:var(--sans); font-size:.92rem; color:var(--ink); text-decoration:none; }
.rail-links a:hover { color:var(--accent); }
.rail-more a { font-family:var(--sans); font-size:.88rem; color:var(--accent); }
.empty-note { color:var(--muted); padding:24px 0; }
mark { background:#FFF1B8; color:inherit; padding:0 1px; }

/* Topics A to Z */
.inline-search, .search-form { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; max-width:760px; }
.inline-search input, .search-form input { flex:1 1 260px; font:inherit; font-family:var(--sans); font-size:1rem; padding:10px 12px; border:1px solid #C9CED6; border-radius:3px; }
.search-form select { font-family:var(--sans); font-size:.92rem; padding:9px 10px; border:1px solid #C9CED6; border-radius:3px; background:#fff; }
.inline-search button, .search-form button { font-family:var(--sans); font-weight:600; background:var(--navy); color:#fff; border:0; border-radius:3px; padding:10px 18px; cursor:pointer; }
.az-sections { margin:28px 0 36px; }
.section-tiles { list-style:none; margin:10px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:12px; }
.section-tiles a { display:flex; flex-direction:column; gap:4px; height:100%; border:1px solid var(--rule); padding:14px 16px; text-decoration:none; color:var(--ink); }
.section-tiles a:hover { border-color:var(--navy); }
.section-tiles strong { font-family:var(--serif); font-size:1.15rem; }
.section-tiles span { font-size:.88rem; color:#3A4252; line-height:1.45; }
.section-tiles em { font-family:var(--sans); font-style:normal; font-size:.75rem; color:var(--muted); margin-top:auto; padding-top:6px; }
.az-jump { display:flex; flex-wrap:wrap; gap:2px; margin:12px 0 18px; font-family:var(--sans); font-weight:700; }
.az-jump a, .az-jump span { width:30px; height:30px; display:grid; place-items:center; font-size:.9rem; border-radius:3px; text-decoration:none; }
.az-jump a { color:var(--navy); background:#F3F5F8; }
.az-jump a:hover { background:var(--navy); color:#fff; }
.az-jump span { color:#C2C8D0; }
.az-group { display:grid; grid-template-columns:48px 1fr; border-top:1px solid var(--rule); padding:12px 0; scroll-margin-top:20px; }
.az-group h3 { font-family:var(--serif); font-size:1.5rem; margin:0; color:var(--navy); }
.az-group ul { list-style:none; margin:0; padding:0; columns:3 200px; column-gap:28px; }
.az-group li { padding:3px 0; break-inside:avoid; }
.az-group a { color:var(--ink); text-decoration:none; }
.az-group a:hover { text-decoration:underline; color:var(--accent); }
.az-group li span { font-family:var(--sans); font-size:.75rem; color:var(--muted); }

/* Search */
.search-meta { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px; margin:14px 0 6px; font-family:var(--sans); font-size:.92rem; }
.search-meta p { margin:0; }
.filter-chips { display:flex; flex-wrap:wrap; gap:6px; }
.filter-chips a { font-family:var(--sans); font-size:.8rem; color:var(--ink); text-decoration:none; border:1px solid #CDD3DC; border-radius:999px; padding:3px 10px; }
.filter-chips a[aria-current] { background:var(--navy); border-color:var(--navy); color:#fff; }
.search-start { margin-top:24px; }
.search-start .chips { margin:12px 0 16px; }
.search-start p a { font-family:var(--sans); color:var(--accent); }

/* Articles (newsroom stories and guides) */
.story__head { padding-top:26px; }
.story__head h1, .guide__head h1 { font-size:clamp(2rem,4.2vw,3rem); max-width:22em; margin:10px 0 12px; }
.story__dek { font-size:1.22rem; line-height:1.45; color:#2B3343; max-width:38em; margin:0 0 18px; }
.story__meta { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:14px; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); padding:12px 0; margin-bottom:28px; }
.story__meta .byline { margin:0; }
.story__meta .byline-line { margin:0; }
.share { display:flex; flex-wrap:wrap; gap:6px; }
.share a, .share button { font-family:var(--sans); font-size:.8rem; font-weight:600; color:var(--ink); background:#fff; border:1px solid #CDD3DC; border-radius:3px; padding:5px 10px; text-decoration:none; cursor:pointer; }
.share a:hover, .share button:hover { border-color:var(--navy); }
.story__layout { display:grid; grid-template-columns:minmax(0,680px) 300px; justify-content:space-between; gap:48px; padding-bottom:20px; }
.story__main { font-size:1.12rem; }
.story__main h2 { font-size:1.45rem; margin-top:1.6em; }
.source-line { font-family:var(--sans); font-size:.9rem; font-weight:400; border-top:0; border-left:3px solid var(--navy); padding:2px 0 2px 12px; margin-top:28px; }
.story__tags { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; border-top:1px solid var(--rule); padding-top:16px; margin:28px 0 8px; }
.story__side .rail-box { position:sticky; top:20px; }
.guide__head .story__meta { margin-top:14px; }

.author-head { display:flex; gap:22px; align-items:flex-start; }
.author-head img { width:96px; height:96px; border-radius:50%; object-fit:cover; flex:none; margin-top:14px; }
.author-links { display:flex; gap:16px; font-family:var(--sans); font-size:.88rem; }
.author-links a { color:var(--accent); }

@media (max-width: 960px) {
  .river-layout, .story__layout { grid-template-columns:1fr; gap:12px; }
  .river--grid { grid-template-columns:1fr; }
  .story__side .rail-box { position:static; }
}
@media (max-width: 760px) {
  .topbar__search input { width:110px; }
  .topbar__links > a:not(.topbar__cta) { display:none; }
  .author-head { flex-direction:column; gap:4px; }
  .az-group { grid-template-columns:36px 1fr; }
  .story__meta { flex-direction:column; align-items:flex-start; }
}

/* ===== Games ===== */
.rail-games { margin-bottom:24px; }
.rail-games a { display:block; padding:10px 0; border-bottom:1px solid var(--rule); text-decoration:none; color:var(--ink); }
.rail-games strong { display:block; font-family:var(--serif); font-size:1.02rem; }
.rail-games span { font-size:.88rem; color:var(--muted); }
.rail-games a:hover strong { text-decoration:underline; }

.game-wrap { max-width:620px; padding-top:20px; padding-bottom:60px; }
.game__head { display:flex; justify-content:space-between; align-items:flex-end; gap:12px; border-bottom:1px solid var(--ink); padding-bottom:12px; margin-bottom:18px; }
.game__head h1 { font-size:clamp(1.7rem,5vw,2.2rem); margin:0; }
.game__head h1 span { color:var(--muted); font-weight:400; }
.game__kicker { margin:0; font-family:var(--sans); font-size:.8rem; font-weight:700; }
.game__kicker a { color:var(--accent); text-decoration:none; }
.game__date { margin:2px 0 0; font-family:var(--sans); font-size:.82rem; color:var(--muted); }
.game__tools { display:flex; align-items:center; gap:6px; }
.game__timer { display:inline-flex; align-items:center; gap:5px; font-family:var(--sans); font-variant-numeric:tabular-nums; font-weight:700; font-size:.95rem; padding:5px 10px; background:#F3F5F8; border-radius:4px; margin-right:4px; }
.game-icon { background:none; border:1px solid var(--rule); border-radius:4px; color:var(--ink); width:34px; height:34px; display:grid; place-items:center; cursor:pointer; }
.game-icon:hover { border-color:var(--navy); }
.game__board { opacity:0; transition:opacity .2s; }
.game.is-ready .game__board { opacity:1; }
.game__error { color:#B42318; }
.game__input { margin-top:16px; }
.game__left { font-family:var(--sans); font-size:.82rem; color:var(--muted); margin:0 0 6px; }
.game__field { position:relative; }
.game__field input { width:100%; box-sizing:border-box; font:inherit; font-family:var(--sans); font-size:1.05rem; padding:12px 14px; border:2px solid var(--ink); border-radius:4px; }
.game__field input:focus { outline:none; border-color:var(--accent); }
.game__suggest { position:absolute; z-index:5; left:0; right:0; top:100%; margin:2px 0 0; padding:4px 0; list-style:none; background:#fff; border:1px solid #C9CED6; border-radius:4px; box-shadow:0 8px 24px rgba(17,24,39,.12); max-height:300px; overflow:auto; }
.game__suggest li { padding:9px 14px; font-family:var(--sans); cursor:pointer; }
.game__suggest li span { color:var(--muted); font-size:.82rem; }
.game__suggest li[aria-selected="true"], .game__suggest li:hover { background:#EEF3FA; }
.game__msg { font-family:var(--sans); font-size:.88rem; color:#B42318; min-height:1.3em; margin:6px 0 0; }
.game__hints { font-family:var(--sans); font-size:.92rem; margin:10px 0; }
.game__hints p { margin:4px 0; }
.game__hints .muted { color:var(--muted); font-size:.85rem; }
.game__reveal { margin-top:18px; border-top:1px solid var(--rule); padding-top:16px; text-align:center; }
.game__reveal h2 { font-size:1.8rem; margin:4px 0 6px; }
.game__eyebrow { font-family:var(--sans); font-size:.8rem; font-weight:700; color:var(--accent); margin:0; text-transform:uppercase; letter-spacing:.06em; }
.game__actions { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:14px; }
.game-btn { display:inline-block; font-family:var(--sans); font-size:.95rem; font-weight:700; background:var(--navy); color:#fff; border:2px solid var(--navy); border-radius:999px; padding:10px 20px; cursor:pointer; text-decoration:none; }
.game-btn:hover { background:#0F1F3B; }
.game-btn--ghost { background:#fff; color:var(--navy); }
.game-btn--ghost:hover { background:#F3F5F8; }

/* Mitten Map */
.mm-outline { background:#F3F5F8; border-radius:6px; display:grid; place-items:center; padding:14px; }
.mm-outline svg { width:min(240px,70vw); height:auto; display:block; }
.mm-outline path { fill:var(--navy); fill-rule:evenodd; }
.mm-guesses { list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.mm-row { display:grid; grid-template-columns:minmax(0,1fr) 64px 34px 90px; align-items:center; gap:8px; border:1px solid var(--rule); border-radius:4px; padding:7px 10px; font-family:var(--sans); font-size:.92rem; min-height:44px; box-sizing:border-box; }
.mm-row--empty { border-style:dashed; color:#C2C8D0; grid-template-columns:1fr; }
.mm-row__name { font-weight:700; line-height:1.2; }
.mm-row__name small { display:block; font-weight:400; color:var(--muted); font-size:.75rem; }
.mm-row__dist { text-align:right; font-variant-numeric:tabular-nums; }
.mm-row__dir { display:grid; place-items:center; }
.mm-row__dir svg { width:20px; height:20px; fill:var(--navy); }
.mm-row__prox { position:relative; height:22px; background:#EEF0F3; border-radius:3px; overflow:hidden; }
.mm-row__prox i { position:absolute; inset:0 auto 0 0; background:#9DC3E8; }
.mm-row__prox b { position:relative; display:block; text-align:center; font-size:.8rem; line-height:22px; }
.mm-row.is-correct { border-color:#1E7D45; background:#E9F6EE; }
.mm-row.is-correct .mm-row__prox i { background:#4CAF73; }
.mm-michigan { width:100%; max-width:360px; height:auto; margin:12px auto 0; display:block; }
.mm-michigan path { fill:#EEF1F5; stroke:#fff; stroke-width:1; }
.mm-dot { fill:#9AA3B2; }
.mm-answer { fill:#C0392B; }
.mm-answer-ring { fill:none; stroke:#C0392B; stroke-width:2; opacity:.5; }
.mm-label { font-family:var(--sans); font-size:18px; font-weight:700; fill:var(--ink); paint-order:stroke; stroke:#fff; stroke-width:4px; }

/* Road Trip */
.rt-route { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px; font-family:var(--sans); font-weight:700; margin:0 0 4px; }
.rt-pin { background:var(--navy); color:#fff; padding:6px 12px; border-radius:999px; font-size:.95rem; }
.rt-arrow { color:var(--muted); font-size:1.2rem; }
.rt-goal { text-align:center; font-family:var(--sans); font-size:.85rem; color:var(--muted); margin:0 0 10px; }
.rt-map svg { width:100%; height:auto; display:block; background:#F7F9FB; border-radius:6px; }
.rt-map path { fill:#E3E7EC; stroke:#fff; stroke-width:1.2; transition:fill .2s; }
.rt-map path.is-end { fill:var(--navy); }
.rt-map path.is-good { fill:#4CAF73; }
.rt-map path.is-near { fill:#E9B949; }
.rt-map path.is-far { fill:#D9675B; }
.rt-map path.on-route:not(.is-end):not(.is-good) { fill:#CFE6D7; stroke:#4CAF73; stroke-width:2; }
.rt-label { font-family:var(--sans); font-size:11px; font-weight:700; text-anchor:middle; dominant-baseline:middle; fill:var(--ink); paint-order:stroke; stroke:#fff; stroke-width:3px; pointer-events:none; }
.rt-label--end { fill:#fff; stroke:var(--navy); }
.rt-guesses { list-style:none; margin:10px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
.rt-guesses li { font-family:var(--sans); font-size:.85rem; font-weight:600; padding:4px 10px; border-radius:999px; color:#fff; }
.rt-guesses li.is-good { background:#2E8B57; }
.rt-guesses li.is-near { background:#B8860B; }
.rt-guesses li.is-far { background:#C0392B; }
.rt-key { display:inline-block; width:12px; height:12px; border-radius:2px; vertical-align:-1px; margin-right:4px; }
.rt-key.is-good { background:#4CAF73; } .rt-key.is-near { background:#E9B949; } .rt-key.is-far { background:#D9675B; }

/* Results and help dialogs */
.game-dialog { border:0; border-radius:10px; padding:26px 24px 22px; width:min(440px,92vw); box-shadow:0 20px 60px rgba(17,24,39,.3); font-family:var(--sans); color:var(--ink); }
.game-dialog::backdrop { background:rgba(15,31,59,.45); }
.game-dialog h2 { font-family:var(--serif); font-size:1.5rem; margin:4px 0 8px; }
.game-dialog h3 { font-size:.85rem; margin:16px 0 6px; }
.game-dialog ul { padding-left:18px; } .game-dialog li { margin:4px 0; }
.game-dialog__close { position:absolute; top:10px; right:12px; background:none; border:0; font-size:1.6rem; cursor:pointer; color:var(--muted); }
.game-dialog__eyebrow { margin:0; font-size:.78rem; font-weight:700; color:var(--accent); text-transform:uppercase; letter-spacing:.06em; }
.game-dialog__detail p { margin:0 0 8px; }
.game-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:14px 0 6px; text-align:center; }
.game-stats strong { display:block; font-size:1.5rem; font-variant-numeric:tabular-nums; }
.game-stats span { font-size:.72rem; color:var(--muted); }
.game-dist div { display:grid; grid-template-columns:52px 1fr; gap:6px; align-items:center; margin:3px 0; font-size:.8rem; }
.game-dist i { display:block; font-style:normal; background:var(--navy); color:#fff; text-align:right; padding:1px 6px; border-radius:2px; font-size:.75rem; min-width:16px; box-sizing:border-box; }
.game-share { width:100%; margin-top:16px; }
.game-dialog__next { text-align:center; font-size:.85rem; color:var(--muted); margin:14px 0 0; }
.game-dialog__next a, .game-dialog__sub a { color:var(--accent); }
.game-dialog__sub { font-size:.82rem; color:var(--muted); text-align:center; margin:8px 0 0; }

/* Games hub */
.games-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:22px; }
.game-card { display:grid; grid-template-columns:110px 1fr; gap:16px; align-items:center; border:1px solid var(--rule); border-radius:8px; padding:18px; text-decoration:none; color:var(--ink); transition:border-color .15s, box-shadow .15s; }
.game-card:hover { border-color:var(--navy); box-shadow:0 6px 20px rgba(17,24,39,.08); }
.game-card h2 { margin:0 0 6px; font-size:1.5rem; }
.game-card p { margin:0 0 8px; font-size:.95rem; color:#3A4252; }
.game-card__art { width:110px; height:110px; border-radius:8px; }
.game-card--map .game-card__art { background:#E7EEF7; } .game-card--map .game-card__art path { fill:var(--navy); }
.game-card--trip .game-card__art { background:#E9F6EE; } .game-card--trip .game-card__art path { stroke:#2E8B57; } .game-card--trip .game-card__art circle { fill:var(--navy); }
.game-card__status { font-family:var(--sans); font-size:.8rem !important; font-weight:700; color:var(--accent) !important; margin:0 !important; }
.games-archive { display:flex; flex-wrap:wrap; align-items:center; gap:10px; font-family:var(--sans); font-size:.9rem; margin-top:12px; }
.games-archive select { font:inherit; padding:8px 10px; border:1px solid #C9CED6; border-radius:4px; background:#fff; }
@media (max-width:700px) { .games-grid { grid-template-columns:1fr; } .game-card { grid-template-columns:80px 1fr; } .game-card__art { width:80px; height:80px; } .mm-row { grid-template-columns:minmax(0,1fr) 56px 26px 64px; font-size:.85rem; } }

/* ===== Admin-published content: types, images, writers, ads ===== */
.kind-label { display:inline-block; font-family:var(--sans); font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); margin:14px 0 0; }
.kind-label--opinion { color:#8A3B12; }
.kind-label--sponsored { color:#6B4E00; background:#FFF4D6; padding:2px 8px; border-radius:3px; }
.story--opinion .story__head h1 { font-style:italic; font-weight:700; }
.row-type--opinion { color:#8A3B12; border-color:#E8C9B8; }
.row-type--sponsored { color:#6B4E00; border-color:#EBD9A6; background:#FFF8E6; }
.kind-note { font-family:var(--sans); font-size:.9rem; color:#3A4252; background:#F3F5F8; border-radius:4px; padding:12px 14px; margin:28px 0 0; }
.kind-note--sponsored { background:#FFF8E6; }
.writer-box { display:flex; gap:14px; align-items:flex-start; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); padding:16px 0; margin:24px 0 0; }
.writer-box img { width:64px; height:64px; border-radius:50%; object-fit:cover; flex:none; }
.writer-box p { margin:0 0 4px; font-size:.98rem; }
.writer-box a { color:var(--ink); text-decoration:none; }
.writer-list { list-style:none; margin:0 0 6px; padding:0; }
.writer-list a { display:flex; gap:10px; align-items:center; padding:8px 0; border-bottom:1px solid var(--rule); text-decoration:none; color:var(--ink); }
.writer-list img { width:40px; height:40px; border-radius:50%; object-fit:cover; }
.writer-list small { display:block; font-family:var(--sans); font-size:.78rem; color:var(--muted); }
.story__image { margin:0 auto 28px; }
.story__image img { width:100%; max-height:620px; object-fit:cover; display:block; }
.story__image figcaption, .story-figure figcaption { font-family:var(--sans); font-size:.8rem; color:var(--muted); margin-top:6px; }
.story-figure { margin:1.6em 0; }
.story-figure img { width:100%; height:auto; display:block; }
.prose blockquote { border-left:3px solid var(--navy); margin:1.4em 0; padding:2px 0 2px 18px; font-size:1.15em; color:#2B3343; }
.story__sticky { position:sticky; top:20px; display:flex; flex-direction:column; gap:20px; }
.story__side .rail-box { position:static; }
.preview-bar { background:#FFF4D6; border:1px solid #EBD9A6; border-radius:4px; font-family:var(--sans); font-size:.9rem; padding:10px 14px; margin-top:16px; }
.river-item--img { display:grid; grid-template-columns:minmax(0,1fr) 180px; column-gap:20px; }
.river-item--img > :not(.river-item__img) { grid-column:1; }
.river-item__img { grid-column:2; grid-row:1 / span 6; align-self:start; margin-top:4px; }
.river-item__img img { width:100%; aspect-ratio:3/2; object-fit:cover; display:block; }
.lead-story__img img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; margin-bottom:14px; }

.ad-slot { margin:0; }
.ad-slot--top { margin-top:20px; }
.prose .ad-slot { margin:2em 0; }
.ad-unit { display:block; position:relative; border:1px solid var(--rule); border-radius:4px; overflow:hidden; background:#fff; font-family:var(--sans); text-decoration:none; color:var(--ink); }
.ad-unit:hover { border-color:#AEB6C2; }
.ad-unit__label { display:block; font-size:.68rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); padding:8px 12px 0; }
.ad-unit img { width:100%; max-height:220px; object-fit:cover; display:block; margin-top:8px; }
.ad-unit__body { display:block; padding:10px 12px 12px; }
.ad-unit__body strong { display:block; font-family:var(--serif); font-size:1.1rem; line-height:1.25; }
.ad-unit__body > span { display:block; margin:4px 0 6px; font-size:.9rem; color:#3A4252; }
.ad-unit__cta { font-style:normal; font-size:.85rem; font-weight:700; color:var(--accent); }
.ad-unit--home-top, .ad-unit--article-inline { display:grid; grid-template-columns:auto 1fr; align-items:center; }
.ad-unit--home-top .ad-unit__label, .ad-unit--article-inline .ad-unit__label { grid-column:1 / -1; }
.ad-unit--home-top img, .ad-unit--article-inline img { width:200px; height:100%; max-height:150px; margin:8px 0 0; }
.ad-unit--home-top:not(:has(img)), .ad-unit--article-inline:not(:has(img)) { grid-template-columns:1fr; }
@media (max-width:760px) {
  .river-item--img { grid-template-columns:minmax(0,1fr) 96px; column-gap:12px; }
  .ad-unit--home-top, .ad-unit--article-inline { grid-template-columns:1fr; }
  .ad-unit--home-top img, .ad-unit--article-inline img { width:100%; max-height:180px; }
  .story__sticky { position:static; }
}
