:root {
  --paper: #f8f5ec;
  --paper-2: #fffdf6;
  --ink: #141414;
  --muted: #6f6b61;
  --line: #1c1c1c;
  --soft-line: #d9d2c3;
  --yellow: #ffe447;
  --red: #a43124;
  --black: #050505;
  --max: 1260px;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  letter-spacing: 0;
}
img { display: block; width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
p { line-height: 1.65; }
.announcement {
  background: var(--red);
  color: white;
  border-bottom: 2px solid var(--ink);
  min-height: 78px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  padding: 18px 24px;
  text-align: center;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 13px;
}
.announcement a { text-decoration: underline; text-underline-offset: 4px; }
.utility-bar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  background: var(--paper-2);
  border-bottom: 1px solid var(--line);
}
.utility-link,
.utility-cta {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 0 18px;
  border-left: 1px solid var(--line);
  font-size: 12px;
  font-weight: 850;
  text-transform: uppercase;
}
.utility-link:last-of-type { border-right: 1px solid var(--line); }
.utility-cta {
  background: var(--yellow);
  color: var(--black);
  border-right: 1px solid var(--line);
}
.masthead-wrap {
  max-width: var(--max);
  margin: 0 auto;
  padding: 34px 24px 26px;
  display: grid;
  grid-template-columns: minmax(120px, 1fr) auto minmax(120px, 1fr);
  gap: 24px;
  align-items: end;
}
.masthead {
  display: block;
  min-width: 0;
  font-family: var(--serif);
  font-weight: 900;
  text-transform: uppercase;
  text-align: center;
  font-size: clamp(48px, 7.2vw, 112px);
  line-height: .78;
  letter-spacing: 0;
  max-width: 840px;
}
.masthead span { display: block; }
.side-note {
  margin: 0 0 8px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
  text-transform: uppercase;
  font-weight: 800;
}
.side-note:last-child { text-align: right; }
.section-nav {
  max-width: var(--max);
  margin: 0 auto;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  border-top: 1px solid var(--line);
  border-bottom: 2px solid var(--line);
}
.section-nav a {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  padding: 0 16px;
  border-left: 1px solid var(--line);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.section-nav a:last-child { border-right: 1px solid var(--line); }
.section-nav a:hover,
.section-nav a[aria-current="page"] { background: var(--black); color: white; }
main { overflow: hidden; }
.hero-grid,
.lead-split,
.market-desk,
.route-feature,
.toolkit,
.commercial-notes,
.latest-archive,
.safe-append,
.category-hero,
.category-lead,
.dense-archive,
.article-shell,
.related-reading,
.fixed-page-shell,
.deals-page {
  max-width: var(--max);
  margin: 0 auto;
  padding-left: 24px;
  padding-right: 24px;
}
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, .96fr) minmax(320px, 1.04fr);
  gap: 34px;
  padding-top: 34px;
  padding-bottom: 42px;
  border-bottom: 1px solid var(--line);
}
.plate,
.category-plate {
  display: inline-flex;
  width: fit-content;
  background: var(--black);
  color: white;
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1;
  font-weight: 950;
  text-transform: uppercase;
}
.hero-copy h1,
.article-hero h1,
.category-hero h1,
.fixed-hero h1 {
  font-family: var(--serif);
  font-size: clamp(48px, 7vw, 106px);
  line-height: .92;
  letter-spacing: 0;
  margin: 20px 0 18px;
}
.hero-copy,
.article-hero > *,
.category-hero > *,
.fixed-hero,
.lead-story,
.route-copy,
.card,
.tool-card { min-width: 0; }
.article-hero h1 {
  font-size: clamp(42px, 5.4vw, 82px);
  line-height: .98;
}
.hero-copy p {
  max-width: 620px;
  font-size: 20px;
  color: var(--muted);
}
.hero-copy h1 span,
.hero-copy p span { display: inline; }
.hero-copy h1 span::after,
.hero-copy p span::after { content: " "; }
.hero-copy h1 span:last-child::after,
.hero-copy p span:last-child::after { content: ""; }
.button-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 18px;
  border: 1px solid var(--ink);
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.button.dark { background: var(--black); color: white; }
.button.light { background: var(--paper-2); }
.hero-visual {
  display: grid;
  grid-template-columns: 1fr .62fr;
  grid-template-rows: auto 1fr;
  gap: 12px;
  align-items: stretch;
}
.route-dossier {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, .74fr) minmax(190px, .36fr);
  gap: 18px;
  align-items: end;
  min-height: 178px;
  border: 1px solid var(--line);
  background:
    linear-gradient(90deg, rgba(255, 228, 71, .82) 0 38%, transparent 38%),
    var(--paper-2);
  padding: 20px;
}
.route-dossier span,
.briefing-strip strong {
  color: var(--red);
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.route-dossier h2 {
  grid-column: 1;
  font-family: var(--serif);
  font-size: clamp(28px, 3vw, 48px);
  line-height: .98;
  margin: 6px 0 0;
}
.route-dossier p {
  grid-column: 2;
  grid-row: 1 / span 2;
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}
.route-dossier a {
  grid-column: 2;
  display: inline-flex;
  width: fit-content;
  border-bottom: 2px solid var(--line);
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.hero-side-stack {
  display: grid;
  grid-template-rows: 1fr auto;
  gap: 12px;
}
.hero-visual img {
  object-fit: cover;
  border: 1px solid var(--line);
}
.hero-visual .hero-large { height: 430px; }
.hero-visual .hero-small { height: 282px; }
.briefing-strip {
  min-height: 136px;
  border: 1px solid var(--line);
  background: var(--black);
  color: white;
  padding: 14px;
  display: grid;
  gap: 8px;
  align-content: start;
}
.briefing-strip strong { color: var(--yellow); }
.briefing-strip a {
  border-top: 1px solid rgba(255,255,255,.25);
  padding-top: 8px;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.lead-split {
  display: grid;
  grid-template-columns: minmax(280px, .74fr) minmax(0, 1.26fr);
  gap: 26px;
  padding-top: 34px;
  padding-bottom: 42px;
  border-bottom: 1px solid var(--line);
}
.lead-story {
  border: 1px solid var(--line);
  background: var(--paper-2);
  padding: 24px;
}
.eyebrow {
  color: var(--red);
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: 0;
}
.lead-story h2,
.section-heading h2,
.market-desk h2,
.route-copy h2,
.fixed-copy h2 {
  font-family: var(--serif);
  font-size: clamp(34px, 4vw, 64px);
  line-height: .96;
  margin: 12px 0;
  letter-spacing: 0;
}
.text-link { font-weight: 900; text-decoration: underline; text-underline-offset: 4px; }
.rail-grid,
.append-grid,
.post-grid,
.toolkit-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.card {
  min-width: 0;
  display: grid;
  align-content: start;
  background: var(--paper-2);
  border: 1px solid var(--soft-line);
  overflow: hidden;
}
.card figure { margin: 0; overflow: hidden; border-bottom: 1px solid var(--soft-line); }
.card img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform .28s ease;
}
.card:hover img { transform: scale(1.035); }
.card span,
.card h3,
.card p,
.card time { margin-left: 14px; margin-right: 14px; }
.card span { margin-top: 14px; }
.card h3 {
  font-family: var(--serif);
  font-size: 25px;
  line-height: 1.05;
  margin-top: 8px;
  margin-bottom: 8px;
}
.card p { color: var(--muted); font-size: 14px; margin-top: 0; }
.card time { margin-bottom: 14px; color: var(--muted); font-size: 12px; text-transform: uppercase; font-weight: 800; }
.safe-append {
  padding-top: 42px;
  padding-bottom: 44px;
  background: #fffaf0;
  border-bottom: 1px solid var(--line);
}
.section-heading {
  display: grid;
  gap: 8px;
  margin-bottom: 24px;
  border-top: 4px solid var(--line);
  padding-top: 18px;
}
.section-heading span {
  color: var(--red);
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.section-heading p { max-width: 680px; margin: 0; color: var(--muted); }
.market-desk {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 24px;
  padding-top: 46px;
  padding-bottom: 46px;
  border-bottom: 1px solid var(--line);
}
.market-desk ol {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.market-desk li {
  border: 1px solid var(--line);
  background: var(--yellow);
  min-height: 96px;
  padding: 18px;
  display: grid;
  grid-template-columns: 170px 1fr;
  align-items: center;
  gap: 16px;
}
.market-desk strong { font-family: var(--serif); font-size: 32px; }
.route-feature,
.toolkit,
.commercial-notes,
.latest-archive,
.dense-archive,
.related-reading {
  padding-top: 44px;
  padding-bottom: 44px;
  border-bottom: 1px solid var(--line);
}
.route-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr);
  gap: 22px;
  align-items: stretch;
}
.route-layout img {
  height: 430px;
  object-fit: cover;
  border: 1px solid var(--line);
}
.route-copy {
  border: 1px solid var(--line);
  background: var(--paper-2);
  padding: 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.tool-card {
  display: grid;
  gap: 10px;
  border: 1px solid var(--soft-line);
  background: var(--paper-2);
  padding: 12px;
}
.tool-card img { aspect-ratio: 5 / 3; object-fit: cover; border: 1px solid var(--soft-line); }
.tool-card span { color: var(--red); font-size: 12px; font-weight: 950; text-transform: uppercase; }
.tool-card h3 { font-family: var(--serif); font-size: 29px; margin: 0; }
.tool-card p { color: var(--muted); margin: 0 0 8px; }
.note-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.note-grid article {
  padding: 22px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--paper-2);
}
.note-grid h3 { font-family: var(--serif); font-size: 34px; margin: 0 0 8px; }
.archive-list {
  display: grid;
  border-top: 1px solid var(--line);
}
.archive-list a {
  display: grid;
  grid-template-columns: 150px 1fr 150px;
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid var(--soft-line);
  align-items: center;
}
.archive-list span,
.archive-list time {
  color: var(--muted);
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 900;
}
.archive-list strong { font-family: var(--serif); font-size: 28px; line-height: 1.05; }
.category-hero {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(320px, 1.1fr);
  gap: 28px;
  padding-top: 34px;
  padding-bottom: 38px;
  border-bottom: 1px solid var(--line);
}
.category-hero img {
  height: 460px;
  object-fit: cover;
  border: 1px solid var(--line);
}
.category-hero p { max-width: 680px; color: var(--muted); font-size: 20px; }
.category-lead {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  gap: 22px;
  padding-top: 38px;
  padding-bottom: 42px;
  border-bottom: 1px solid var(--line);
}
.category-lead > div:first-child {
  background: var(--paper-2);
  border: 1px solid var(--line);
  padding: 24px;
}
.category-lead h2 { font-family: var(--serif); font-size: clamp(38px, 4.4vw, 70px); line-height: .96; }
.category-stack { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.post-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.article-shell {
  padding-top: 34px;
  padding-bottom: 28px;
}
.article-hero {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(320px, 1.05fr);
  gap: 32px;
  align-items: end;
  border-bottom: 1px solid var(--line);
  padding-bottom: 34px;
}
.article-hero p { color: var(--muted); font-size: 20px; }
.article-hero figure { margin: 0; }
.article-hero img { height: 470px; object-fit: cover; border: 1px solid var(--line); }
.article-hero figcaption { font-size: 12px; color: var(--muted); margin-top: 8px; }
.article-meta { display: flex; gap: 12px; flex-wrap: wrap; color: var(--muted); font-size: 12px; font-weight: 900; text-transform: uppercase; }
.article-layout {
  display: grid;
  grid-template-columns: 230px minmax(0, 760px);
  gap: 44px;
  align-items: start;
  padding-top: 38px;
}
.article-aside {
  position: sticky;
  top: 68px;
  border: 1px solid var(--line);
  background: var(--yellow);
  padding: 16px;
}
.article-aside strong { display: block; margin-bottom: 8px; }
.article-aside a { font-weight: 900; text-decoration: underline; }
.article-content {
  background: var(--paper-2);
  border-left: 1px solid var(--soft-line);
  padding-left: 34px;
  font-size: 18px;
  line-height: 1.75;
}
.article-content h2,
.article-content h3 {
  font-family: var(--serif);
  line-height: 1.08;
  letter-spacing: 0;
}
.article-content h2 { font-size: 44px; margin: 34px 0 12px; }
.article-content h3 { font-size: 30px; margin: 24px 0 8px; }
.article-content a { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.article-content img { max-width: 100%; border: 1px solid var(--soft-line); }
.fixed-page-shell {
  padding-top: 46px;
  padding-bottom: 68px;
}
.fixed-hero {
  max-width: 980px;
  padding-bottom: 24px;
}
.fixed-hero p {
  max-width: 760px;
  color: var(--muted);
  font-size: 20px;
}
.fixed-layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 840px);
  gap: 24px;
}
.fixed-layout aside {
  border: 1px solid var(--soft-line);
  background: #eee6d7;
  padding: 18px;
  height: fit-content;
  display: grid;
  gap: 8px;
}
.fixed-layout aside a { text-decoration: underline; overflow-wrap: anywhere; }
.fixed-copy {
  background: var(--paper-2);
  border: 1px solid var(--soft-line);
  padding: 36px;
}
.fixed-copy section + section {
  border-top: 1px solid var(--soft-line);
  margin-top: 24px;
  padding-top: 24px;
}
.fixed-copy h2 { font-size: 34px; }
.deal-board {
  display: grid;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.deal-row {
  display: grid;
  grid-template-columns: 180px minmax(220px, .4fr) 1fr;
  gap: 18px;
  padding: 20px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--paper-2);
  align-items: center;
}
.deal-row span { color: var(--red); font-weight: 950; text-transform: uppercase; font-size: 12px; }
.deal-row strong { font-family: var(--serif); font-size: 30px; }
.deal-row p { color: var(--muted); margin: 0; }
.site-footer {
  border-top: 2px solid var(--line);
  max-width: var(--max);
  margin: 0 auto;
  padding: 28px 24px 42px;
  display: grid;
  grid-template-columns: minmax(240px, .8fr) 1.2fr;
  gap: 24px;
}
.footer-brand { font-family: var(--serif); font-size: 34px; font-weight: 900; text-transform: uppercase; line-height: 1; }
.site-footer p { color: var(--muted); max-width: 430px; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: 12px 18px; justify-content: flex-end; align-content: start; }
.site-footer nav a { font-size: 12px; text-transform: uppercase; font-weight: 900; text-decoration: underline; text-underline-offset: 4px; }
.top-link {
  position: fixed;
  right: 24px;
  bottom: 24px;
  width: 56px;
  height: 40px;
  border-radius: 999px;
  background: var(--black);
  color: white;
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
@media (max-width: 980px) {
  .masthead-wrap { grid-template-columns: 1fr; text-align: center; }
  .side-note,
  .side-note:last-child { text-align: center; }
  .hero-grid,
  .lead-split,
  .market-desk,
  .route-layout,
  .category-hero,
  .category-lead,
  .article-hero,
  .article-layout,
  .fixed-layout,
  .site-footer { grid-template-columns: 1fr; }
  .rail-grid,
  .append-grid,
  .toolkit-grid,
  .category-stack,
  .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .article-aside { position: static; }
  .article-content { border-left: 0; padding-left: 0; }
  .deal-row,
  .archive-list a { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  body { overflow-x: hidden; }
  .announcement { min-height: 0; flex-direction: column; gap: 8px; }
  .announcement p { max-width: 32ch; margin: 0; }
  .utility-bar { overflow-x: auto; justify-content: flex-start; }
  .masthead-wrap { overflow: hidden; padding: 28px 16px 22px; }
  .masthead { width: 100%; max-width: 100%; font-size: 34px; line-height: .88; white-space: normal; overflow-wrap: normal; }
  .section-nav { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; }
  .hero-grid,
  .lead-split,
  .market-desk,
  .route-feature,
  .toolkit,
  .commercial-notes,
  .latest-archive,
  .safe-append,
  .category-hero,
  .category-lead,
  .dense-archive,
  .article-shell,
  .related-reading,
  .fixed-page-shell,
  .deals-page { padding-left: 16px; padding-right: 16px; }
  .hero-copy h1,
  .article-hero h1,
  .category-hero h1,
  .fixed-hero h1 { font-size: 40px; line-height: 1; overflow-wrap: break-word; }
  .hero-copy,
  .hero-copy h1,
  .hero-copy p,
  .button-row { width: 100%; max-width: calc(100vw - 32px); }
  .hero-copy h1 span,
  .hero-copy p span { display: block; }
  .hero-copy h1 span::after,
  .hero-copy p span::after { content: ""; }
  .hero-copy p,
  .category-hero p,
  .article-hero p,
  .fixed-hero p { font-size: 17px; max-width: 100%; }
  .button-row { display: grid; grid-template-columns: 1fr; }
  .button { width: 100%; }
  .plate,
  .category-plate { max-width: 100%; white-space: normal; line-height: 1.15; }
  .hero-visual,
  .rail-grid,
  .append-grid,
  .toolkit-grid,
  .category-stack,
  .post-grid,
  .note-grid { grid-template-columns: 1fr; }
  .route-dossier { grid-template-columns: 1fr; min-height: 0; background: var(--yellow); }
  .route-dossier h2,
  .route-dossier p,
  .route-dossier a { grid-column: auto; grid-row: auto; }
  .route-dossier h2 { font-size: 30px; }
  .hero-side-stack { grid-template-rows: auto; }
  .hero-visual img,
  .hero-visual .hero-small,
  .category-hero img,
  .article-hero img,
  .route-layout img { height: auto; max-height: 430px; }
  .market-desk li { grid-template-columns: 1fr; }
  .fixed-copy { padding: 22px; }
}