/* ============================================================
 * Hoags — site-level styles. Builds on tokens.css.
 * Editorial weight, restrained color, type-driven.
 * ============================================================ */

:root {
  --th-font-display: "Newsreader", "Source Serif Pro", Georgia, serif;
  --th-font-serif:   "Newsreader", "Source Serif Pro", Georgia, serif;
  --th-font-sans:    "Inter Tight", "Inter", -apple-system, sans-serif;
  --th-font-mono:    "JetBrains Mono", ui-monospace, monospace;

  --th-page-max:    1200px;
  --th-prose-max:   780px;
}

html, body {
  background: var(--th-stone);
  color: var(--th-ink-soft);
  font-family: var(--th-font-serif);
  font-feature-settings: "kern", "liga", "calt", "ss01";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
*, *::before, *::after { box-sizing: border-box; }

/* subtle paper grain */
body::before {
  content: "";
  position: fixed; inset: 0;
  pointer-events: none;
  z-index: 1000;
  opacity: 0.035;
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNjAnIGhlaWdodD0nMTYwJz48ZmlsdGVyIGlkPSduJz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nMC44NScgbnVtT2N0YXZlcz0nMicgc3RpdGNoVGlsZXM9J3N0aXRjaCcvPjxmZUNvbG9yTWF0cml4IHZhbHVlcz0nMCAwIDAgMCAwICAwIDAgMCAwIDAgIDAgMCAwIDAgMCAgMCAwIDAgMC43IDAnLz48L2ZpbHRlcj48cmVjdCB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJyBmaWx0ZXI9J3VybCgjbiknLz48L3N2Zz4=");
  mix-blend-mode: multiply;
}

.th-app { min-height: 100vh; display: flex; flex-direction: column; }
.th-main { flex: 1; }

/* ====================== ARTICLES DROPDOWN ====================== */
.th-articles-wrap { position: relative; }
.th-articles-trigger {
  background: transparent; border: 0; padding: 0 0 4px;
  font: inherit; color: var(--th-ink-soft); cursor: pointer;
  display: inline-flex; align-items: center;
  border-bottom: 1px solid transparent;
  transition: color 160ms, border-color 160ms;
}
.th-articles-trigger:hover, .th-articles-trigger.is-open, .th-articles-trigger.is-active {
  color: var(--th-hunter); border-bottom-color: var(--th-navy);
}
.th-articles-menu {
  position: absolute; top: calc(100% + 14px); left: 50%;
  transform: translateX(-50%);
  width: 340px;
  background: var(--th-stone);
  border: 1px solid rgba(31,61,46,0.18);
  border-radius: 6px;
  box-shadow: 0 16px 40px rgba(18,35,24,0.12);
  padding: 14px 8px 8px;
  z-index: 50;
}
.th-articles-menu-eyebrow { display: block; padding: 0 14px 8px; }
.th-articles-item {
  display: block; padding: 10px 14px;
  text-decoration: none; color: var(--th-hunter);
  border-radius: 4px; transition: background 140ms;
}
.th-articles-item:hover { background: rgba(31,61,46,0.06); }
.th-articles-item.is-all { border-top: 1px solid rgba(31,61,46,0.1); margin-top: 6px; padding-top: 14px; border-radius: 0 0 4px 4px; color: var(--th-navy); }
.th-projects-menu { width: 380px; }
.th-projects-item { position: relative; }
.th-projects-kind { position: absolute; top: 12px; right: 14px; font-family: var(--th-font-mono); font-size: 9.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--th-ink-quiet); }

/* Projects page */
.th-projects { max-width: 1080px; margin: 0 auto; padding: 64px 40px 96px; }
.th-projects-head { padding-bottom: 32px; border-bottom: 1px solid rgba(31,61,46,0.12); margin-bottom: 48px; }
.th-projects-head h1 { font-family: var(--th-font-display); font-weight: 500; font-size: clamp(48px, 6vw, 76px); line-height: 1.04; letter-spacing: -0.025em; color: var(--th-hunter); margin: 14px 0 20px; }
.th-projects-sub { font-family: var(--th-font-serif); font-size: 19px; line-height: 1.55; color: var(--th-ink-soft); max-width: 60ch; margin: 0 0 28px; }
.th-projects-filters { display: flex; flex-wrap: wrap; gap: 8px; }

.th-projects-list { display: flex; flex-direction: column; }
.th-project-row { border-top: 1px solid rgba(31,61,46,0.14); }
.th-project-row:last-child { border-bottom: 1px solid rgba(31,61,46,0.14); }
.th-project-row-trigger { display: grid; grid-template-columns: 56px 1fr auto; gap: 28px; align-items: flex-start; width: 100%; padding: 28px 0; background: transparent; border: 0; text-align: left; cursor: pointer; color: var(--th-hunter); transition: padding 200ms; }
.th-project-row.is-open .th-project-row-trigger { padding-bottom: 18px; }
.th-project-row-trigger:hover { color: var(--th-navy); }
.th-project-num { font-family: var(--th-font-mono); font-size: 12px; letter-spacing: 0.18em; color: var(--th-ink-quiet); padding-top: 10px; }
.th-project-row-main { display: flex; flex-direction: column; gap: 8px; }
.th-project-row-top { display: flex; align-items: baseline; gap: 16px; }
.th-project-name { font-family: var(--th-font-display); font-weight: 500; font-size: 32px; line-height: 1.1; letter-spacing: -0.02em; margin: 0; color: inherit; }
.th-project-row.is-open .th-project-name { font-style: italic; color: var(--th-navy); }
.th-project-kind { font-family: var(--th-font-mono); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--th-ink-quiet); padding: 3px 8px; border: 1px solid rgba(31,61,46,0.18); border-radius: 2px; }
.th-project-summary { font-family: var(--th-font-serif); font-size: 17px; line-height: 1.5; color: var(--th-ink-soft); margin: 0; max-width: 60ch; }
.th-project-row-side { display: flex; align-items: center; gap: 16px; padding-top: 6px; }
.th-project-status { font-family: var(--th-font-mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; padding: 4px 9px; border-radius: 2px; }
.th-project-status--active { background: var(--th-navy); color: var(--th-stone); }
.th-project-status--quiet { background: rgba(31,61,46,0.08); color: var(--th-ink-quiet); }
.th-project-status--selective { background: transparent; color: var(--th-hunter); border: 1px solid rgba(31,61,46,0.3); }
.th-project-status--closedtonewlps { background: rgba(31,61,46,0.08); color: var(--th-ink-quiet); }

.th-project-detail { display: grid; grid-template-columns: 56px 1fr 320px; gap: 28px; padding: 0 0 32px 0; animation: th-fade 200ms ease; }
@keyframes th-fade { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.th-project-detail::before { content: ""; }
.th-project-detail-prose { grid-column: 2; }
.th-project-detail-prose p { font-family: var(--th-font-serif); font-size: 18px; line-height: 1.6; color: var(--th-ink); margin: 0 0 18px; max-width: 56ch; }
.th-project-links { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 8px; }
.th-project-link { font-family: var(--th-font-sans); font-size: 14px; color: var(--th-navy); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 1px; transition: opacity 140ms; }
.th-project-link:hover { opacity: 0.7; }
.th-project-meta { grid-column: 3; margin: 0; padding: 18px 22px; background: rgba(31,61,46,0.04); border-radius: 4px; align-self: start; }
.th-project-meta-row { display: flex; justify-content: space-between; gap: 16px; padding: 7px 0; border-bottom: 1px dashed rgba(31,61,46,0.12); }
.th-project-meta-row:last-child { border-bottom: 0; }
.th-project-meta-row dt { font-family: var(--th-font-mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--th-ink-quiet); margin: 0; }
.th-project-meta-row dd { font-family: var(--th-font-sans); font-size: 13px; color: var(--th-hunter); margin: 0; text-align: right; }

.th-projects-foot { display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: center; margin-top: 64px; padding: 36px; background: var(--th-hunter); color: var(--th-stone); border-radius: 6px; }
.th-projects-foot .th-eyebrow { color: rgba(245,239,220,0.65); }
.th-projects-foot p { font-family: var(--th-font-serif); font-size: 18px; line-height: 1.55; color: rgba(245,239,220,0.92); margin: 12px 0 0; }
.th-projects-foot strong { color: var(--th-stone); font-weight: 500; font-style: italic; }
.th-projects-foot-cta { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.th-projects-foot-cta .th-btn-primary { background: var(--th-stone); color: var(--th-hunter); }
.th-projects-foot-cta .th-link-arrow { color: rgba(245,239,220,0.85); }

@media (max-width: 860px) {
  .th-project-row-trigger { grid-template-columns: 36px 1fr auto; gap: 16px; }
  .th-project-detail { grid-template-columns: 1fr; }
  .th-project-detail-prose, .th-project-meta { grid-column: 1; }
  .th-projects-foot { grid-template-columns: 1fr; }
}
.th-articles-item-label { display: block; font-family: var(--th-font-display); font-size: 16px; line-height: 1.2; }
.th-articles-item-desc { display: block; font-family: var(--th-font-serif); font-style: italic; font-size: 13px; color: var(--th-ink-quiet); margin-top: 2px; line-height: 1.4; }
.th-navlink-cta {
  background: var(--th-hunter);
  color: var(--th-stone) !important;
  padding: 6px 14px !important;
  border-radius: 3px;
  border-bottom: 0 !important;
}
.th-navlink-cta:hover { background: var(--th-hunter-deep); border-color: transparent !important; }

/* ====================== LOGO LAB ====================== */
.logo-lab { max-width: var(--th-page-max); margin: 0 auto; padding: 0 48px 96px; }
.logo-lab-head { padding: 64px 0 32px; border-bottom: 1px solid rgba(31,61,46,0.12); }
.logo-lab-head .th-eyebrow { display: block; margin-bottom: 20px; }
.logo-lab-head h1 { font-family: var(--th-font-display); font-size: clamp(40px, 5.4vw, 72px); line-height: 1.05; letter-spacing: -0.022em; color: var(--th-hunter); font-weight: 400; margin: 0 0 18px; }
.logo-lab-sub { font-family: var(--th-font-serif); font-size: 19px; line-height: 1.55; color: var(--th-ink-soft); max-width: 64ch; margin: 0 0 28px; }
.logo-lab-sub em { font-style: italic; color: var(--th-navy); }
.logo-lab-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.logo-filter { font-family: var(--th-font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; padding: 7px 12px; border: 1px solid rgba(31,61,46,0.2); border-radius: 2px; background: transparent; color: var(--th-ink-soft); cursor: pointer; transition: all 140ms; }
.logo-filter:hover { border-color: var(--th-navy); color: var(--th-navy); }
.logo-filter.is-on { background: var(--th-hunter); color: var(--th-stone); border-color: var(--th-hunter); }
@keyframes th-blink { 50% { opacity: 0; } }
/* ALC ref panel removed — Hoags is the byline, not the fund */
.logo-lab-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; padding: 40px 0; }
.logo-card {
  text-align: left; background: white; border: 1px solid rgba(31,61,46,0.14);
  border-radius: 6px; padding: 22px 22px 24px; cursor: pointer;
  display: flex; flex-direction: column; gap: 16px;
  transition: all 160ms; font-family: inherit;
}
.logo-card:hover { border-color: var(--th-navy); transform: translateY(-2px); box-shadow: 0 12px 28px rgba(18,35,24,0.06); }
.logo-card.is-on { border-color: var(--th-hunter); box-shadow: 0 0 0 2px rgba(31,61,46,0.12); }
.logo-card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.logo-card-family { font-family: var(--th-font-mono); font-size: 9px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--th-navy); border: 1px solid rgba(32,53,79,0.3); padding: 3px 6px; border-radius: 2px; }
.logo-card-rec { font-family: var(--th-font-mono); font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--th-stone); background: var(--th-hunter); padding: 3px 7px; border-radius: 2px; }
.logo-card-stage {
  height: 110px; display: flex; align-items: center; justify-content: center;
  background: var(--th-stone); border: 1px solid rgba(31,61,46,0.08);
  border-radius: 4px;
}
.logo-card-marks { display: flex; align-items: center; gap: 14px; padding: 4px 0; }
.logo-card-rationale { font-family: var(--th-font-serif); font-size: 14.5px; line-height: 1.5; color: var(--th-ink-soft); margin: 0; }
.logo-context { padding: 32px 0; }
.logo-context-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; padding-top: 20px; }
.logo-context-card { background: white; border: 1px solid rgba(31,61,46,0.14); border-radius: 6px; padding: 20px; display: flex; flex-direction: column; gap: 12px; }
.logo-context-label { display: block; }
.logo-context-stage { min-height: 130px; display: flex; align-items: center; justify-content: center; padding: 16px; border-radius: 4px; }
.stage-header { background: var(--th-stone); justify-content: space-between; padding: 18px 22px; border: 1px solid rgba(31,61,46,0.08); }
.stage-header-nav { display: flex; gap: 16px; font-family: var(--th-font-sans); font-size: 12px; color: var(--th-ink-soft); }
.stage-email { background: var(--th-stone); justify-content: space-between; padding: 24px; border-bottom: 2px solid var(--th-hunter); flex-direction: column; align-items: flex-start; gap: 8px; }
.stage-email-meta { font-family: var(--th-font-mono); font-size: 11px; color: var(--th-ink-quiet); letter-spacing: 0.1em; }
.stage-og { background: var(--th-stone); flex-direction: column; align-items: flex-start; padding: 22px; gap: 14px; aspect-ratio: 1.91/1; min-height: 0; }
.stage-og-top { display: flex; justify-content: space-between; align-items: center; width: 100%; font-family: var(--th-font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--th-navy); }
.stage-og-title { font-family: var(--th-font-display); font-size: 22px; line-height: 1.2; color: var(--th-hunter); letter-spacing: -0.015em; }
.stage-og-meta { font-family: var(--th-font-mono); font-size: 10.5px; color: var(--th-ink-quiet); margin-top: auto; letter-spacing: 0.06em; }
.stage-inverse { background: var(--th-hunter); }
.stage-favicon { background: var(--th-stone); gap: 18px; }
.stage-avatar { background: var(--th-stone); }
.logo-lab-note { background: white; border: 1px solid rgba(31,61,46,0.12); border-radius: 6px; padding: 20px 24px; margin-top: 32px; }
.logo-lab-note p { font-family: var(--th-font-serif); font-size: 16px; line-height: 1.55; color: var(--th-ink-soft); margin: 0; }
.logo-lab-note strong { color: var(--th-hunter); font-weight: 500; }
@media (max-width: 980px) {
  .logo-lab-grid, .logo-context-grid { grid-template-columns: 1fr 1fr; }
  .th-articles-menu { width: 280px; }
}

/* ====================== TOPBAR ====================== */
.th-topbar {
  max-width: 1480px;
  margin: 0 auto;
  align-items: center;
  padding: 20px 64px 18px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 64px;
  border-bottom: 1px solid rgba(31, 61, 46, 0.08);
}
.th-topbar > a:first-child { padding-left: 0; }
.th-topbar-nav { display: flex; align-items: center; gap: 30px; font-family: var(--th-font-sans); font-size: 14.5px; flex-wrap: nowrap; white-space: nowrap; margin-left: 56px; margin-right: auto; }
.th-topbar > .th-navlink-cta { margin-left: 0; }
.th-search-btn { margin-left: 20px; min-width: 180px; justify-content: center; padding: 8px 14px; font-size: 13px; gap: 10px; }
.th-search-btn span { flex: none; }

/* Hoags circular seal — top of every page */
.th-hoags-lockup {
  display: inline-flex; align-items: center;
  padding: 0;
  line-height: 1;
}
.th-hoags-seal { display: block; }
.th-hoags-lockup:hover .th-hoags-seal { transform: rotate(-6deg); }
.th-hoags-seal { transition: transform 320ms ease; transform-origin: center; }
@media (max-width: 720px) { .th-hoags-seal { width: 84px; height: 84px; } .th-hoags-wordmark { font-size: 26px !important; } }

/* legacy lockup — still used by old code paths if any */
.th-loop-lockup {
  display: inline-flex; align-items: baseline; gap: 12px;
  padding: 4px 0;
  color: var(--th-hunter);
  font-family: var(--th-font-display);
}
.th-loop-mark {
  width: 38px; height: 22px;
  align-self: center;
  flex: none;
  color: var(--th-hunter);
}
.th-loop-word {
  font-size: 26px; font-weight: 500; letter-spacing: -0.01em;
  color: var(--th-ink); line-height: 1;
}
.th-loop-word-h { font-style: italic; font-weight: 400; }
.th-loop-tag {
  font-family: var(--th-font-mono);
  font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--th-ink-quiet);
  padding-left: 12px;
  border-left: 1px solid rgba(31, 61, 46, 0.2);
  align-self: center;
}
@media (max-width: 720px) { .th-loop-tag { display: none; } }

.th-loop-menu { min-width: 380px; }
.th-loop-menu-head { padding: 4px 4px 14px; border-bottom: 1px solid rgba(31,61,46,0.1); margin-bottom: 8px; }
.th-loop-menu-blurb { font-family: var(--th-font-sans); font-size: 13.5px; line-height: 1.5; color: var(--th-ink-quiet); margin: 8px 0 0; }

/* legacy placeholder — kept harmless */
.th-logo-placeholder {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 10px 16px;
  border: 1.5px dashed rgba(31,61,46,0.4);
  border-radius: 4px;
  background: rgba(31,61,46,0.025);
  font-family: var(--th-font-mono);
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.th-logo-placeholder-mark { font-size: 12px; font-weight: 600; color: var(--th-hunter); }
.th-logo-placeholder-tag { font-size: 10.5px; color: var(--th-ink-quiet); letter-spacing: 0.08em; text-transform: none; }
.th-wordmark-tag { margin-left: 0 !important; padding-left: 18px !important; }

@media (max-width: 1180px) {
  .th-topbar { padding: 24px 32px 20px; gap: 20px; }
  .th-topbar-nav { gap: 18px; font-size: 13px; }
  .th-wordmark-tag { display: none !important; }
}
.th-navlink {
  color: var(--th-ink-soft);
  text-decoration: none;
  letter-spacing: 0.005em;
  padding-bottom: 4px;
  border-bottom: 1px solid transparent;
  transition: color 160ms, border-color 160ms;
}
.th-navlink:hover { color: var(--th-stone); border-bottom-color: var(--th-sky); }
.th-navlink.is-active { color: var(--th-stone); border-bottom-color: var(--th-sky); }

.th-search-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: transparent;
  border: 1px solid rgba(31,61,46,0.22);
  padding: 7px 10px 7px 9px;
  border-radius: 4px;
  font-family: var(--th-font-sans); font-size: 12.5px;
  color: var(--th-ink-soft);
  cursor: pointer;
  transition: background 160ms, border-color 160ms;
}
.th-search-btn:hover { background: rgba(31,61,46,0.04); border-color: rgba(31,61,46,0.4); color: var(--th-hunter); }
.th-search-btn kbd {
  font-family: var(--th-font-mono); font-size: 10.5px;
  padding: 1px 5px; border: 1px solid rgba(31,61,46,0.2); border-radius: 3px;
  color: var(--th-ink-quiet); background: rgba(31,61,46,0.03);
  margin-left: 2px;
}

/* ====================== EYEBROW + COMMON ====================== */
.th-eyebrow {
  font-family: var(--th-font-mono);
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--th-ink-quiet);
  font-weight: 500;
}
.th-dot { color: var(--th-ink-quiet); padding: 0 2px; }
.th-divider { border: 0; border-top: 1px solid rgba(31,61,46,0.1); margin: 24px 0; }
.th-link-quiet {
  font-family: var(--th-font-sans); font-size: 13px; color: var(--th-navy);
  text-decoration: none; letter-spacing: 0.005em;
}
.th-link-quiet:hover { color: var(--th-navy-soft); text-decoration: underline; text-decoration-color: var(--th-sky); text-underline-offset: 4px; }

/* ====================== HOME ====================== */
.th-home { max-width: var(--th-page-max); margin: 0 auto; padding: 0 48px; }

/* Hero */
.th-hero { padding: 72px 0 56px; border-bottom: 1px solid rgba(31,61,46,0.1); }
.th-hero .th-eyebrow { display: block; margin-bottom: 32px; font-size: 16px; letter-spacing: 0.18em; }
.th-hero-title {
  font-family: var(--th-font-display);
  font-size: clamp(40px, 4.0vw, 58px);
  text-indent: -0.04em;
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--th-hunter);
  font-weight: 400;
  margin: 0;
  max-width: 22ch;
}
.th-hero-italic { font-style: italic; color: var(--th-navy); font-weight: 400; }
.th-hero-foot {
  display: grid; grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.04fr) minmax(0, 0.92fr);
  gap: 52px; margin-top: 44px; align-items: stretch;
  padding-left: 0;
}
.th-hero-foot > div:first-child { display: flex; flex-direction: column; height: 100%; }
.th-hero-sub {
  font-family: var(--th-font-serif);
  font-size: 21px; line-height: 1.55; color: var(--th-ink);
  margin: 0 0 32px; max-width: 64ch;
}
.th-hero-sub-lead { display: block; margin-bottom: 0.55em; text-wrap: balance; }
.th-recent-empty {
  padding: 40px 0; border-top: 1px solid rgba(31,61,46,0.12);
  display: flex; flex-direction: column; gap: 12px;
}
.th-recent-empty .th-eyebrow { color: #B85968; }
.th-recent-empty p {
  font-family: var(--th-font-serif); font-size: 20px; line-height: 1.5;
  color: var(--th-ink-soft); margin: 0; max-width: 52ch;
}
.th-hero-meta {
  display: flex; gap: 48px;
  font-family: var(--th-font-sans); font-size: 16px;
  margin-top: 4px;
  padding-top: 32px;
  border-top: 1px solid rgba(31,61,46,0.12);
  color: var(--th-ink);
}
.th-hero-meta > div { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.th-hero-meta-link, .th-hero-meta-val { white-space: nowrap; color: var(--th-ink); }
.th-hero-meta-link { border-bottom: none !important; padding-bottom: 0 !important; color: var(--th-ink) !important; font-weight: 600; }
.th-hero-meta-link:hover { color: var(--th-ink) !important; opacity: 0.7; }
.th-hero-meta .th-eyebrow { color: var(--th-ink-quiet); }

/* Right column — On the desk */
.th-hero-desk {
  font-family: var(--th-font-sans);
  border-left: 2px solid var(--th-ink);
  padding: 8px 0 8px 36px;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.th-hero-desk .th-eyebrow { display: block; margin-bottom: 24px; font-size: 14px; letter-spacing: 0.18em; color: var(--th-ink); font-weight: 600; }
.th-hero-desk-title { font-size: 16px !important; margin-bottom: 14px !important; }
.th-hero-desk .th-hero-dateline { font-size: 12px !important; font-weight: 400 !important; }
.th-hero-desk-list { display: flex; flex-direction: column; gap: 22px; }
.th-hero-desk-item { display: grid; grid-template-columns: 100px 1fr; gap: 22px; align-items: baseline; font-size: 16.5px; line-height: 1.5; padding-bottom: 18px; border-bottom: 1px solid rgba(31,61,46,0.08); }
.th-hero-desk-item:last-child { border-bottom: none; padding-bottom: 0; }
.th-hero-desk-key { font-family: var(--th-font-mono); font-size: 13px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--th-ink-quiet); padding-top: 3px; }
.th-hero-desk-val { display: flex; flex-direction: column; gap: 2px; }
.th-hero-desk-val a { color: var(--th-ink); text-decoration: none; font-weight: 600; border-bottom: 1px solid rgba(31,61,46,0.3); padding-bottom: 1px; }
.th-hero-desk-val a:hover { opacity: 0.7; }
.th-hero-desk-val span { color: var(--th-ink); font-weight: 600; }
.th-hero-desk-val em { color: var(--th-ink-quiet); font-style: italic; font-weight: 400; font-size: 16.5px; }
.th-hero-desk-stack { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.th-hero-desk-stack li { display: grid; grid-template-columns: 28px 1fr auto; align-items: baseline; gap: 10px; padding: 2px 0; }
.th-hero-desk-stack li:not(:has(.th-hero-desk-rn)) { grid-template-columns: 1fr auto; }
.th-hero-desk-rn {
  font-family: var(--th-font-display); font-style: italic; font-weight: 400;
  font-size: 17px; color: var(--th-ink-quiet);
  line-height: 1; letter-spacing: 0.02em;
}
.th-hero-desk-stack a { color: var(--th-ink); text-decoration: none; font-weight: 600; font-size: 16px; border-bottom: 1px solid rgba(31,61,46,0.18); padding-bottom: 1px; min-width: 0; }
.th-hero-desk-stack a:hover { opacity: 0.7; }
.th-hero-desk-meta { font-family: var(--th-font-mono); font-size: 11.5px; color: var(--th-ink-quiet); letter-spacing: 0.04em; white-space: nowrap; }
.th-hero-desk-source { display: block; margin-top: 6px; font-family: var(--th-font-mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--th-ink-quiet); opacity: 0.55; }
.th-hero-dateline { display: block; margin: 0 0 22px !important; padding-bottom: 18px; border-bottom: 1px dashed rgba(31,61,46,0.2); color: var(--th-ink-quiet) !important; }
.th-hero-meta .th-eyebrow { display: block; margin-bottom: 0; }
.th-hero-meta-val { font-weight: 500; color: var(--th-ink); }

/* Hero centerpiece — auto-cycling latest-essay feature */
.th-latest-cycler { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.th-latest-head { display: flex; align-items: baseline; justify-content: space-between; }
.th-latest-head .th-eyebrow { font-size: 13px; letter-spacing: 0.18em; color: var(--th-ink); font-weight: 600; }
.th-latest-count { font-family: var(--th-font-mono); font-size: 12px; letter-spacing: 0.08em; color: var(--th-ink-quiet); }
.th-latest-stack {
  position: relative; min-height: 318px;
  border: 1px solid rgba(31,61,46,0.16);
  background: var(--th-surface-raised, #fff);
}
.th-latest-card {
  position: absolute; inset: 0;
  display: flex; flex-direction: column;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 520ms ease;
}
.th-latest-card.is-active { opacity: 1; visibility: visible; pointer-events: auto; }
.th-latest-img {
  display: block; width: 100%; height: 158px; overflow: hidden; flex: 0 0 auto;
  background:
    repeating-linear-gradient(135deg, rgba(31,61,46,0.05) 0 10px, rgba(31,61,46,0.02) 10px 20px),
    var(--th-stone);
}
.th-latest-img image-slot { width: 100%; height: 100%; }
.th-latest-body { display: flex; flex-direction: column; gap: 10px; padding: 18px 20px 20px; flex: 1 1 auto; }
.th-latest-meta { display: flex; align-items: center; gap: 12px; }
.th-latest-date { font-family: var(--th-font-mono); font-size: 11.5px; letter-spacing: 0.04em; color: var(--th-ink-quiet); white-space: nowrap; }
.th-latest-link { display: flex; flex-direction: column; gap: 12px; text-decoration: none; margin-top: 2px; }
.th-latest-title {
  font-family: var(--th-font-display); font-weight: 400;
  font-size: 22px; line-height: 1.2; letter-spacing: -0.015em;
  color: var(--th-hunter); text-wrap: balance;
}
.th-latest-link:hover .th-latest-title { color: var(--th-navy); }
.th-latest-read {
  font-family: var(--th-font-mono); font-size: 11.5px; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--th-oxblood-soft); margin-top: auto;
}
.th-latest-dots { display: flex; gap: 8px; justify-content: center; }
.th-latest-dot {
  width: 26px; height: 4px; border: none; padding: 0; cursor: pointer;
  background: rgba(31,61,46,0.18); transition: background 200ms ease;
}
.th-latest-dot.is-on { background: var(--th-oxblood-soft); }
.th-latest-dot:hover { background: rgba(31,61,46,0.4); }

/* Hero — mobile */
@media (max-width: 720px) {
  .th-hero { padding: 48px 0 40px; }
  .th-hero-foot { grid-template-columns: 1fr; gap: 36px; margin-top: 32px; }
  .th-hero-desk { border-left: none; border-top: 2px solid var(--th-ink); padding: 24px 0 0; }
  .th-hero-meta { flex-wrap: wrap; gap: 24px 36px; }
  .th-hero-desk-item { grid-template-columns: 80px 1fr; gap: 14px; }
  .th-hero-dateline { font-size: 11px !important; }
}

/* Featured */
.th-featured-block { padding: 72px 0; border-bottom: 1px solid rgba(31,61,46,0.1); }
.th-featured-rule .th-eyebrow { font-size: 14px; letter-spacing: 0.16em; }
.th-featured-rule {
  display: flex; gap: 24px; align-items: center;
  padding-bottom: 16px;
}
.th-featured-tag { color: #B85968 !important; }
.th-featured-link { text-decoration: none; }
.th-featured-title {
  font-family: var(--th-font-display);
  font-size: clamp(34px, 3.6vw, 52px);
  line-height: 1.12; letter-spacing: -0.018em;
  color: var(--th-hunter); font-weight: 400;
  margin: 0 0 20px; max-width: 24ch;
}
.th-featured-link:hover .th-featured-title { color: var(--th-navy); }
.th-featured-dek {
  font-family: var(--th-font-serif); font-style: italic;
  font-size: 21px; line-height: 1.5;
  color: var(--th-hunter-soft); max-width: 60ch;
  margin: 0 0 20px;
}
.th-featured-meta {
  font-family: var(--th-font-mono); font-size: 13px;
  color: var(--th-ink-quiet);
  display: flex; gap: 8px; align-items: center;
}
.th-featured-meta a { color: var(--th-navy); text-decoration: none; margin-left: 4px; }
.th-featured-meta a:hover { text-decoration: underline; }

/* Featured two-column layout */
.th-featured-grid {
  display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: 64px; align-items: start;
}
.th-featured-aside {
  font-family: var(--th-font-sans);
  border-left: 1px solid rgba(31,61,46,0.18);
  padding-left: 28px;
  display: flex; flex-direction: column; gap: 28px;
}
.th-featured-pull { position: relative; }
.th-featured-pull-mark {
  font-family: var(--th-font-display); font-style: italic;
  font-size: 64px; line-height: 0.6; color: var(--th-navy);
  display: block; margin-bottom: 8px;
}
.th-featured-pull-body {
  font-family: var(--th-font-serif); font-style: italic;
  font-size: 18px; line-height: 1.45; color: var(--th-ink);
  margin: 0 0 10px;
}
.th-featured-pull-attr {
  font-family: var(--th-font-mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.14em;
  color: var(--th-ink-quiet);
}
.th-featured-stats {
  display: flex; flex-direction: column; gap: 12px;
  padding-top: 20px; border-top: 1px dashed rgba(31,61,46,0.18);
}
.th-featured-stat { display: grid; grid-template-columns: 100px 1fr; gap: 16px; align-items: baseline; }
.th-featured-stat-key {
  font-family: var(--th-font-mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--th-ink-quiet);
}
.th-featured-stat-val { font-size: 14px; color: var(--th-ink); }

@media (max-width: 980px) {
  .th-featured-grid { grid-template-columns: 1fr; gap: 40px; }
  .th-featured-aside { border-left: none; padding-left: 0; border-top: 1px solid rgba(31,61,46,0.18); padding-top: 28px; }
}

/* Tickers strip — recurring working-notebook texture */
.th-featured-tickers {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px dashed rgba(31,61,46,0.18);
  font-family: var(--th-font-mono); font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--th-ink-quiet);
  text-transform: uppercase;
}
.th-featured-tickers-label { color: var(--th-ink-soft); }
.th-featured-ticker { color: var(--th-navy); font-weight: 600; }
.th-featured-tickers .th-dot { color: rgba(31,61,46,0.3); }

/* Two-up: recent + sidecard */
.th-recent-block {
  display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 80px; padding: 72px 0;
  border-bottom: 1px solid rgba(31,61,46,0.1);
}
.th-section-head {
  display: flex; align-items: baseline; justify-content: space-between;
  padding-bottom: 14px; margin-bottom: 8px;
  border-bottom: 1px solid rgba(31,61,46,0.18);
}

/* List rows — used in home + reader related + loop */
.th-list-row {
  display: grid;
  grid-template-columns: 110px 1fr auto;
  gap: 24px; align-items: baseline;
  padding: 20px 4px;
  border-bottom: 1px solid rgba(31,61,46,0.08);
  text-decoration: none; color: inherit;
  transition: background 160ms;
}
.th-list-row:hover { background: rgba(31,61,46,0.025); }
.th-list-row-lg { padding: 32px 12px; gap: 32px; grid-template-columns: 130px 1fr auto; border-bottom: 1px solid rgba(31,61,46,0.12); }
.th-list-row-lg:first-child { border-top: 1px solid rgba(31,61,46,0.12); }
.th-list-row-lg .th-list-title { font-size: 26px; line-height: 1.18; }
.th-list-row-lg .th-list-dek { font-size: 17px; line-height: 1.45; }
.th-list-row-lg .th-list-date { font-size: 12.5px; }

/* Coming soon */
.th-coming-soon { padding: 64px 0; border-bottom: 1px solid rgba(31,61,46,0.1); }
.th-coming-soon-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.th-coming-soon-card { background: var(--th-stone-dark); border: 1px solid rgba(31,61,46,0.14); padding: 40px 44px; }
.th-coming-soon-card--loop { background: var(--th-navy); color: var(--th-stone); border-color: var(--th-navy); }
.th-coming-soon-card--loop .th-coming-soon-title { color: var(--th-stone) !important; }
.th-coming-soon-card--loop .th-coming-soon-dek { color: rgba(245,239,220,0.88) !important; }
.th-coming-soon-card--loop .th-coming-soon-dek em { color: var(--th-stone); font-style: italic; font-weight: 500; }
.th-coming-soon-card--loop .th-coming-soon-tag { color: rgba(245,239,220,0.7) !important; }
.th-coming-soon-card--loop .th-link-arrow { color: var(--th-stone); }
.th-coming-soon-card--loop .th-coming-soon-meta { color: rgba(245,239,220,0.6); }
.th-coming-soon-card--rt { border-color: rgb(107, 34, 48) !important; }
.th-coming-soon-card--rt .th-coming-soon-dek em { color: rgb(232, 201, 138); font-style: italic; font-weight: 500; }
.th-coming-soon-tag { color: var(--th-navy); margin-bottom: 18px; display: block; }
.th-coming-soon-title { font-family: var(--th-font-display); font-size: clamp(28px, 2.8vw, 38px); line-height: 1.1; letter-spacing: -0.02em; color: var(--th-hunter); font-weight: 400; margin: 0 0 16px; }
.th-coming-soon-dek { font-family: var(--th-font-serif); font-size: 16px; line-height: 1.55; color: var(--th-ink-soft); margin: 0 0 28px; }
.th-coming-soon-actions { display: flex; gap: 24px; align-items: baseline; flex-wrap: wrap; }
.th-coming-soon-meta { font-family: var(--th-font-mono); font-size: 11.5px; color: var(--th-ink-quiet); letter-spacing: 0.04em; text-transform: uppercase; }

@media (max-width: 860px) {
  .th-coming-soon-grid { grid-template-columns: 1fr; gap: 16px; }
  .th-coming-soon-card { padding: 32px 28px; }
}

/* Latest essays full-width */
.th-recent-block-full { padding: 72px 0; border-bottom: 1px solid rgba(31,61,46,0.1); }
.th-section-head-lg { padding-bottom: 20px; margin-bottom: 12px; border-bottom: 1px solid rgba(31,61,46,0.18); }
.th-section-head-lg .th-eyebrow { font-size: 13px; }
.th-recent-rows { display: flex; flex-direction: column; }

/* Subscribe banner */
.th-sub-banner { background: var(--th-hunter); color: var(--th-stone); padding: 80px 0; margin: 0 -48px; }
.th-sub-banner-inner { max-width: var(--th-page-max); margin: 0 auto; padding: 0 48px; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 80px; align-items: center; }
.th-sub-banner-copy .th-eyebrow { color: rgba(237,236,241,0.6); display: block; margin-bottom: 18px; }
.th-sub-banner-title { font-family: var(--th-font-sans); font-size: clamp(36px, 4vw, 56px); line-height: 1.08; letter-spacing: -0.02em; font-weight: 600; margin: 0 0 16px; color: var(--th-stone); }
.th-sub-banner-title .th-h-italic { color: rgb(140, 190, 230); font-style: normal; font-weight: 600; }
.th-sub-banner-dek { font-family: var(--th-font-serif); font-size: 18px; line-height: 1.55; color: rgba(237,236,241,0.92); max-width: 50ch; margin: 0; }
.th-sub-banner-input { display: flex; gap: 8px; }
.th-sub-banner-input input { flex: 1; background: rgba(237,236,241,0.12); border: 1px solid rgba(237,236,241,0.4); color: var(--th-stone); padding: 14px 16px; font-family: var(--th-font-sans); font-size: 15px; border-radius: 3px; }
.th-sub-banner-input input::placeholder { color: rgba(237,236,241,0.7); }
.th-sub-banner-input button { background: var(--th-stone); color: var(--th-hunter); border: 0; padding: 14px 22px; font-family: var(--th-font-sans); font-size: 14px; font-weight: 500; border-radius: 3px; cursor: pointer; }
.th-sub-banner-input button:hover { background: #fff; }
.th-sub-banner-microcopy { color: rgba(237,236,241,0.82); margin-top: 12px; }
.th-sub-banner-microcopy a { color: var(--th-stone); border-bottom: 1px solid rgba(237,236,241,0.6); }
.th-list-date {
  font-family: var(--th-font-mono); font-size: 11.5px;
  color: var(--th-ink-quiet); letter-spacing: 0.04em;
  padding-top: 4px;
}
.th-list-body { display: flex; flex-direction: column; gap: 4px; }
.th-list-title {
  font-family: var(--th-font-display); font-size: 21px;
  line-height: 1.25; color: var(--th-hunter);
  letter-spacing: -0.012em;
}
.th-list-row:hover .th-list-title { color: var(--th-navy); }
.th-list-dek {
  font-family: var(--th-font-serif); font-style: italic;
  font-size: 15.5px; line-height: 1.4;
  color: var(--th-ink-quiet);
}
.th-list-meta { display: flex; align-items: center; gap: 12px; }
.th-list-min {
  font-family: var(--th-font-mono); font-size: 11px;
  color: var(--th-ink-quiet); min-width: 44px; text-align: right;
}
.th-list-lock { color: var(--th-ink-quiet); display: inline-flex; }
.th-list-row-locked { background: rgba(27,42,74,0.025); }

/* Tier pill */
.th-tier-pill {
  font-family: var(--th-font-mono); font-size: 10px;
  text-transform: uppercase; letter-spacing: 0.12em;
  padding: 3px 7px; border-radius: 2px;
  border: 1px solid currentColor;
}
.th-tier-free  { color: var(--th-hunter-soft); }
.th-tier-loop  { color: var(--th-navy); background: rgba(27,42,74,0.05); }
.th-tier-inner { color: var(--th-oxblood); background: rgba(107,34,48,0.05); }

/* Sidecard */
.th-sidecard { font-family: var(--th-font-sans); font-size: 14px; }
.th-sidecard-block .th-eyebrow { display: block; margin-bottom: 10px; }
.th-sidecard-block p { font-family: var(--th-font-serif); font-size: 16px; line-height: 1.55; color: var(--th-ink-soft); margin: 0 0 12px; }
.th-inline-sub { display: flex; flex-direction: column; gap: 8px; }
.th-inline-sub input {
  padding: 11px 14px; font-size: 14px; font-family: var(--th-font-sans);
  background: white; border: 1px solid rgba(31,61,46,0.2); color: var(--th-hunter);
  border-radius: 3px;
}
.th-inline-sub input:focus { outline: none; border-color: var(--th-navy); }
.th-inline-sub button {
  padding: 11px 14px; font-size: 13px; font-family: var(--th-font-sans);
  background: var(--th-hunter); color: var(--th-stone); border: 0; cursor: pointer;
  border-radius: 3px; letter-spacing: 0.02em;
}
.th-inline-sub button:hover { background: var(--th-hunter-deep); }
.th-inline-sub-done {
  font-family: var(--th-font-sans); font-size: 13px; color: var(--th-hunter);
  padding: 12px; background: rgba(31,61,46,0.06); border-radius: 3px;
}
.th-microcopy {
  font-family: var(--th-font-sans); font-size: 12px;
  color: var(--th-ink-quiet); margin: 8px 0 0;
}
.th-microcopy a { color: var(--th-navy); }
.th-elsewhere { list-style: none; padding: 0; margin: 0; }
.th-elsewhere li { padding: 6px 0; border-bottom: 1px solid rgba(31,61,46,0.08); }
.th-elsewhere a { color: var(--th-hunter); text-decoration: none; font-family: var(--th-font-sans); font-size: 14px; }
.th-elsewhere a:hover { color: var(--th-navy); }

/* ====================== TIER MODULE ====================== */
.th-tier-module { padding: 96px 0 80px; border-bottom: 1px solid rgba(31,61,46,0.1); }
.th-tier-head { max-width: 56ch; margin-bottom: 48px; }
.th-tier-head .th-eyebrow { display: block; margin-bottom: 16px; }
.th-tier-head h3 {
  font-family: var(--th-font-display);
  font-size: clamp(28px, 3.4vw, 44px);
  line-height: 1.1; letter-spacing: -0.02em;
  color: var(--th-hunter); font-weight: 400;
  margin: 0 0 18px;
}
.th-tier-head p { font-family: var(--th-font-serif); font-size: 18px; line-height: 1.55; color: var(--th-ink-soft); margin: 0; }

.th-tier-toggle-row { display: inline-flex; gap: 0; margin-bottom: 32px; border: 1px solid rgba(31,61,46,0.2); border-radius: 4px; padding: 3px; background: white; }
.th-toggle-pill {
  font-family: var(--th-font-sans); font-size: 13px;
  padding: 7px 14px; background: transparent; border: 0;
  color: var(--th-ink-soft); cursor: pointer; border-radius: 3px;
  transition: all 160ms;
}
.th-toggle-pill.is-on { background: var(--th-hunter); color: var(--th-stone); }
.th-toggle-save {
  font-family: var(--th-font-mono); font-size: 10px;
  text-transform: uppercase; letter-spacing: 0.1em;
  margin-left: 6px; opacity: 0.8;
}

.th-tier-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.th-tier-card {
  position: relative;
  background: white;
  border: 1px solid rgba(31,61,46,0.14);
  border-radius: 6px;
  padding: 32px 28px;
  display: flex; flex-direction: column;
}
.th-tier-card-loop { border-color: rgba(27,42,74,0.3); box-shadow: 0 1px 0 rgba(27,42,74,0.04), 0 12px 36px rgba(27,42,74,0.07); }
.th-tier-pop {
  position: absolute; top: -10px; left: 24px;
  font-family: var(--th-font-mono); font-size: 10px;
  text-transform: uppercase; letter-spacing: 0.16em;
  background: var(--th-navy); color: var(--th-stone);
  padding: 4px 10px; border-radius: 2px;
}
.th-tier-card-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.th-tier-rule { display: inline-block; width: 28px; height: 2px; }
.th-tier-card h4 {
  font-family: var(--th-font-display);
  font-size: 26px; font-weight: 500;
  margin: 0; letter-spacing: -0.01em;
}
.th-tier-blurb {
  font-family: var(--th-font-serif); font-style: italic;
  font-size: 15px; line-height: 1.45;
  color: var(--th-ink-quiet);
  margin: 0 0 24px;
}
.th-tier-price { display: flex; align-items: baseline; gap: 6px; margin-bottom: 24px; padding-bottom: 24px; border-bottom: 1px solid rgba(31,61,46,0.1); }
.th-tier-price-num { font-family: var(--th-font-display); font-size: 44px; font-weight: 400; color: var(--th-hunter); letter-spacing: -0.02em; }
.th-tier-price-cad { font-family: var(--th-font-mono); font-size: 12px; color: var(--th-ink-quiet); letter-spacing: 0.04em; }
.th-tier-features { list-style: none; padding: 0; margin: 0 0 28px; flex: 1; }
.th-tier-features li {
  display: flex; gap: 10px; align-items: baseline;
  font-family: var(--th-font-serif); font-size: 15.5px;
  line-height: 1.45; color: var(--th-ink-soft);
  padding: 7px 0;
}
.th-tier-bullet { display: inline-block; width: 5px; height: 5px; flex: none; transform: translateY(-2px); border-radius: 0; }
.th-tier-cta {
  font-family: var(--th-font-sans); font-size: 13.5px; font-weight: 500;
  letter-spacing: 0.01em;
  padding: 13px 18px; border: 0;
  color: var(--th-stone); cursor: pointer;
  border-radius: 3px;
  transition: filter 160ms;
}
.th-tier-cta:hover { filter: brightness(0.92); }

/* ====================== FOOTER — sky bookend (LOCKED) ===============
 * Sky ground (#7DD3FC) with a navy hairline top rule — the value-inverted
 * mirror of the navy masthead. Logo left · The Roundtable cornerstone ·
 * Sign In / Subscribe stacked · big navy one-liner · base row + socials.
 * ------------------------------------------------------------------ */
.th-footer-block {
  background: #A8D8F0;
  color: var(--th-hunter);
  padding: 40px 48px 30px;
  margin-top: 80px;
  border-top: 3px solid var(--th-navy);
}
.th-footer-main {
  max-width: var(--th-page-max); margin: 0 auto;
  display: flex; align-items: center; gap: 36px;
}
.th-footer-logo {
  font-family: var(--th-font-display, var(--th-font-serif));
  font-style: italic; font-weight: 500; font-size: 35px; line-height: 1;
  letter-spacing: -0.025em; color: var(--th-hunter);
  text-decoration: none; flex-shrink: 0; margin-left: 8px;
}
.th-footer-logo-dot { color: #B85968; font-style: normal; }
.th-footer-logo:hover { color: var(--th-hunter-soft); }

.th-footer-roundtable { flex: 1; display: flex; flex-direction: column; align-items: center; }
.th-footer-rt-head {
  font-family: var(--th-font-mono); font-size: 16px; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase; color: #B85968;
  text-align: center; padding-bottom: 9px; margin-bottom: 16px;
  border-bottom: 1px solid rgba(27,42,74,0.3);
}
.th-footer-rt-grid {
  display: grid; grid-template-columns: repeat(3, auto);
  gap: 11px 44px; justify-content: center;
}
.th-footer-rt-link {
  font-family: var(--th-font-sans); font-size: 14px; color: var(--th-hunter);
  text-decoration: none; white-space: nowrap;
}
.th-footer-rt-link:hover { color: var(--th-navy); }

.th-footer-cta { display: flex; flex-direction: column; gap: 9px; flex-shrink: 0; align-items: stretch; min-width: 118px; }
.th-footer-btn {
  font-family: var(--th-font-sans); font-size: 13px; font-weight: 500;
  padding: 8px 18px; border-radius: 4px; text-align: center;
  text-decoration: none; white-space: nowrap; transition: background 150ms, color 150ms;
}
.th-footer-btn-signin { color: var(--th-navy); border: 1px solid var(--th-navy); }
.th-footer-btn-signin:hover { background: var(--th-navy); color: var(--th-stone); }
.th-footer-btn-subscribe { color: var(--th-stone); background: #B85968; border: 1px solid #B85968; padding: 9px 18px; }
.th-footer-btn-subscribe:hover { background: #9c4150; border-color: #9c4150; }

.th-footer-oneliner {
  max-width: var(--th-page-max); margin: 26px auto 0;
  padding-top: 20px; border-top: 1px solid rgba(27,42,74,0.22); text-align: center;
}
.th-footer-oneliner p {
  font-family: var(--th-font-display, var(--th-font-serif));
  font-style: italic; font-size: 20px; line-height: 1.4; color: var(--th-navy); margin: 0;
}

.th-footer-base {
  max-width: var(--th-page-max); margin: 22px auto 0;
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
}
.th-footer-base-left {
  font-family: var(--th-font-mono); font-size: 10.5px; letter-spacing: 0.06em;
  color: rgba(27,42,74,0.62); display: inline-flex; gap: 14px; align-items: baseline; flex-wrap: wrap;
}
.th-footer-rss { color: var(--th-hunter); text-decoration: none; }
.th-footer-rss:hover { color: var(--th-navy); }
.th-footer-socials { display: inline-flex; align-items: center; gap: 16px; flex-shrink: 0; }
.th-footer-social { color: var(--th-hunter); display: inline-flex; transition: color 140ms, transform 140ms; }
.th-footer-social:hover { color: #B85968; transform: translateY(-1px); }

@media (max-width: 820px) {
  .th-footer-main { flex-wrap: wrap; gap: 28px; }
  .th-footer-roundtable { order: 3; flex-basis: 100%; }
  .th-footer-cta { margin-left: auto; }
}
@media (max-width: 560px) {
  .th-footer-base { flex-direction: column; align-items: flex-start; gap: 14px; }
  .th-footer-rt-grid { grid-template-columns: repeat(2, auto); }
}

/* ====================== ESSAY READER ====================== */
.th-progressbar {
  position: fixed; top: 0; left: 0; right: 0; height: 2px;
  background: var(--th-hunter); z-index: 100;
  transform-origin: 0 0;
  transition: transform 80ms linear;
}
.th-reader { max-width: var(--th-page-max); margin: 0 auto; padding: 0 48px; }
.th-reader-back { padding: 24px 0 0; }
.th-back-link {
  font-family: var(--th-font-sans); font-size: 13px;
  color: var(--th-ink-quiet); text-decoration: none;
}
.th-back-link:hover { color: var(--th-hunter); }

.th-article { padding: 48px 0 96px; }
.th-article-head {
  max-width: 760px; margin: 0 auto 56px;
  padding-bottom: 40px; border-bottom: 1px solid rgba(31,61,46,0.12);
}
.th-article-rail { display: flex; gap: 18px; align-items: center; margin-bottom: 28px; }
.th-article-title {
  font-family: var(--th-font-display);
  font-size: clamp(40px, 5.4vw, 72px);
  line-height: 1.04; letter-spacing: -0.024em;
  color: var(--th-hunter); font-weight: 400;
  margin: 0 0 24px;
}
.th-article-dek {
  font-family: var(--th-font-serif); font-style: italic;
  font-size: 22px; line-height: 1.45; color: var(--th-hunter-soft);
  margin: 0 0 28px; max-width: 56ch;
}
.th-article-meta { font-family: var(--th-font-mono); font-size: 11.5px; color: var(--th-ink-quiet); letter-spacing: 0.04em; display: flex; gap: 8px; align-items: center; }

.th-article-body { max-width: var(--th-prose-max); margin: 0 auto; font-family: var(--th-font-serif); font-size: 19px; line-height: 1.65; color: var(--th-ink-soft); }
.th-article-body p { margin: 0 0 1.4em; }
.th-h2 { font-family: var(--th-font-display); font-size: 30px; line-height: 1.2; letter-spacing: -0.018em; color: var(--th-hunter); font-weight: 400; margin: 2em 0 0.6em; }
.th-pullquote { position: relative; padding: 0 0 0 32px; margin: 2em 0 2em -32px; border-left: 2px solid var(--th-navy); color: var(--th-hunter); font-family: var(--th-font-display); font-style: italic; font-size: 24px; line-height: 1.4; }
.th-pullquote-mark { display: none; }
.th-signoff { font-family: var(--th-font-display); font-style: italic; font-size: 22px; color: var(--th-hunter); margin-top: 2.4em; }

/* Auto-disclosure — compliance fine print at the foot of every essay */
.th-disclosure { max-width: var(--th-prose-max); margin: 56px auto 0; }
.th-disclosure-inner {
  border-top: 1px solid rgba(31,61,46,0.16);
  padding-top: 22px;
}
.th-disclosure-label {
  display: block;
  font-family: var(--th-font-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--th-ink-quiet);
  margin-bottom: 14px;
}
.th-disclosure-body p {
  font-family: var(--th-font-mono);
  font-size: 12px;
  line-height: 1.7;
  color: var(--th-ink-quiet);
  margin: 0 0 12px;
}
.th-disclosure-body p:last-child { margin-bottom: 0; }
.th-disclosure-positions { color: var(--th-ink-soft) !important; }
.th-disclosure-positions strong { color: var(--th-hunter); font-weight: 600; }
.th-disclosure-positions em { font-style: italic; color: var(--th-oxblood); }
.th-disclosure-body a { color: var(--th-navy); text-decoration: underline; text-underline-offset: 2px; }
.th-disclosure-body a:hover { color: var(--th-hunter); }


.th-eop { max-width: var(--th-prose-max); margin: 0 auto 64px; }
.th-eop-card {
  background: white; border: 1px solid rgba(31,61,46,0.14);
  border-radius: 6px; padding: 36px 40px;
  position: relative;
}
.th-eop-card .th-eyebrow { display: block; margin-bottom: 12px; color: var(--th-navy); }
.th-eop-card h3 { font-family: var(--th-font-display); font-size: 30px; line-height: 1.15; color: var(--th-hunter); font-weight: 400; margin: 0 0 8px; letter-spacing: -0.015em; }
.th-eop-card p { font-family: var(--th-font-serif); font-size: 16px; line-height: 1.5; color: var(--th-ink-soft); margin: 0 0 18px; }
.th-eop-form { display: flex; gap: 8px; }
.th-eop-form input { flex: 1; padding: 12px 14px; font-size: 14px; font-family: var(--th-font-sans); background: var(--th-stone); border: 1px solid rgba(31,61,46,0.2); border-radius: 3px; color: var(--th-hunter); }
.th-eop-form input:focus { outline: none; border-color: var(--th-hunter); }
.th-eop-form button { padding: 12px 20px; font-size: 13px; font-family: var(--th-font-sans); font-weight: 500; background: var(--th-hunter); color: var(--th-stone); border: 0; border-radius: 3px; cursor: pointer; }
.th-eop-form button:hover { background: var(--th-hunter-deep); }

.th-related { max-width: var(--th-page-max); padding: 64px 0; border-top: 1px solid rgba(31,61,46,0.1); }

/* ====================== ARCHIVE ====================== */
.th-archive { max-width: var(--th-page-max); margin: 0 auto; padding: 0 48px; }
.th-archive-head { padding: 88px 0 32px; border-bottom: 1px solid rgba(31,61,46,0.12); }
.th-archive-head .th-eyebrow { display: block; margin-bottom: 24px; }
.th-archive-title { font-family: var(--th-font-display); font-size: clamp(48px, 6vw, 80px); line-height: 1.04; letter-spacing: -0.024em; color: var(--th-hunter); font-weight: 400; margin: 0 0 20px; }
.th-archive-sub { font-family: var(--th-font-serif); font-size: 19px; line-height: 1.5; color: var(--th-ink-soft); margin: 0; max-width: 56ch; }

.th-archive-controls {
  display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) minmax(0,0.7fr);
  gap: 32px;
  padding: 32px 0;
  border-bottom: 1px solid rgba(31,61,46,0.12);
}
.th-control-block { display: flex; flex-direction: column; gap: 10px; }
.th-control-block .th-eyebrow { display: block; }
.th-chiprow { display: flex; flex-wrap: wrap; gap: 6px; }
.th-tagchip {
  font-family: var(--th-font-sans); font-size: 12.5px;
  background: transparent; border: 1px solid rgba(31,61,46,0.18);
  color: var(--th-ink-soft); padding: 5px 11px; border-radius: 999px;
  cursor: pointer; transition: all 160ms;
}
.th-tagchip:hover { border-color: var(--th-navy); color: var(--th-navy); }
.th-tagchip.is-on { background: var(--th-hunter); border-color: var(--th-hunter); color: var(--th-stone); }
.th-archive-search {
  width: 100%; padding: 9px 12px;
  font-family: var(--th-font-sans); font-size: 13.5px;
  background: white; border: 1px solid rgba(31,61,46,0.2); border-radius: 3px;
  color: var(--th-hunter);
}
.th-archive-search:focus { outline: none; border-color: var(--th-navy); }

.th-archive-results { padding: 32px 0 96px; }
.th-archive-year { margin-bottom: 48px; }
.th-archive-year-head {
  display: flex; align-items: baseline; gap: 16px;
  margin-bottom: 12px;
}
.th-archive-year-num {
  font-family: var(--th-font-display); font-size: 44px; font-weight: 400;
  color: var(--th-hunter); letter-spacing: -0.02em; line-height: 1;
}
.th-archive-year-rule { flex: 1; height: 1px; background: rgba(31,61,46,0.18); }
.th-archive-year-count { font-family: var(--th-font-mono); font-size: 11px; color: var(--th-ink-quiet); letter-spacing: 0.06em; }

.th-arc-row {
  display: grid;
  grid-template-columns: 80px 90px 1fr 80px 50px;
  gap: 24px; align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid rgba(31,61,46,0.07);
  text-decoration: none; color: inherit;
  transition: background 160ms;
}
.th-arc-row:hover { background: rgba(31,61,46,0.025); }
.th-arc-date { font-family: var(--th-font-mono); font-size: 11px; color: var(--th-ink-quiet); letter-spacing: 0.04em; }
.th-arc-tag { font-family: var(--th-font-mono); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--th-navy); }
.th-arc-title-col { display: flex; flex-direction: column; gap: 3px; }
.th-arc-title { font-family: var(--th-font-display); font-size: 19px; line-height: 1.25; color: var(--th-hunter); letter-spacing: -0.012em; }
.th-arc-row:hover .th-arc-title { color: var(--th-navy); }
.th-arc-dek { font-family: var(--th-font-serif); font-style: italic; font-size: 14px; line-height: 1.4; color: var(--th-ink-quiet); }
.th-arc-min { font-family: var(--th-font-mono); font-size: 11px; color: var(--th-ink-quiet); text-align: right; }
.th-archive-empty { font-family: var(--th-font-serif); font-style: italic; color: var(--th-ink-quiet); padding: 32px 0; }

/* ====================== ABOUT ====================== */
.th-about { max-width: var(--th-page-max); margin: 0 auto; padding: 0 48px; }
.th-about-head { padding: 88px 0 32px; border-bottom: 1px solid rgba(31,61,46,0.12); }
.th-about-head .th-eyebrow { display: block; margin-bottom: 24px; }
.th-about-head h1 { font-family: var(--th-font-display); font-size: clamp(48px, 6vw, 80px); line-height: 1.04; letter-spacing: -0.024em; color: var(--th-hunter); font-weight: 400; margin: 0; }
.th-h-italic { font-style: italic; color: var(--th-navy); }

.th-about-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.4fr); gap: 64px; padding: 64px 0 48px; }
.th-about-photo .th-photo-placeholder {
  aspect-ratio: 4/5; width: 100%;
  background-image: repeating-linear-gradient(135deg, rgba(31,61,46,0.06) 0 8px, transparent 8px 16px);
  background-color: var(--th-stone-dark);
  border: 1px solid rgba(31,61,46,0.14);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  color: var(--th-ink-quiet);
  font-family: var(--th-font-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
}
.th-about-photo .th-photo-frame {
  width: 100%; aspect-ratio: 4/5; overflow: hidden;
  background: var(--th-stone-dark);
  border: 1px solid rgba(31,61,46,0.14);
  filter: saturate(0.92) contrast(1.02);
}
.th-about-photo .th-photo-frame img {
  width: 100%; height: 100%; object-fit: cover; object-position: center 35%;
  display: block;
}
.th-photo-cap { font-family: var(--th-font-mono); font-size: 10.5px; color: var(--th-ink-quiet); margin-top: 12px; line-height: 1.5; }
.th-about-prose p, .th-about-prose .th-h2 { max-width: 56ch; }
.th-about-prose p { margin: 0 0 1.2em; }
.th-about-lead {
  font-family: var(--th-font-display) !important; font-style: italic;
  font-size: 26px; line-height: 1.32; letter-spacing: -0.01em;
  color: var(--th-hunter); margin: 0 0 1em !important;
  padding-bottom: 0.7em; border-bottom: 1px solid rgba(31,61,46,0.14);
}
.th-about-cta { display: flex; gap: 16px; padding: 32px 0 96px; border-top: 1px solid rgba(31,61,46,0.12); }
.th-btn-primary { font-family: var(--th-font-sans); font-size: 13.5px; font-weight: 500; padding: 12px 22px; background: var(--th-hunter); color: var(--th-stone); border: 0; border-radius: 3px; cursor: pointer; }
.th-btn-primary:hover { background: var(--th-hunter-deep); }
.th-btn-ghost { font-family: var(--th-font-sans); font-size: 13.5px; padding: 12px 22px; background: transparent; color: var(--th-hunter); border: 1px solid rgba(31,61,46,0.25); border-radius: 3px; cursor: pointer; }
.th-btn-ghost:hover { border-color: var(--th-hunter); }

/* ====================== SUBSCRIBE / LOOP ====================== */
.th-subscribe-page, .th-loop-page { max-width: var(--th-page-max); margin: 0 auto; padding: 0 48px; }
.th-sub-head, .th-loop-head { padding: 88px 0 48px; border-bottom: 1px solid rgba(31,61,46,0.12); }
.th-sub-head h1, .th-loop-head h1 { font-family: var(--th-font-display); font-size: clamp(44px, 5.6vw, 72px); line-height: 1.05; letter-spacing: -0.022em; color: var(--th-hunter); font-weight: 400; margin: 24px 0 20px; }
.th-sub-sub, .th-loop-sub { font-family: var(--th-font-serif); font-size: 19px; line-height: 1.55; color: var(--th-ink-soft); margin: 0; max-width: 60ch; }
.th-subscribe-page .th-tier-wrap { padding: 56px 0; }
.th-sub-faq { padding: 32px 0 96px; border-top: 1px solid rgba(31,61,46,0.12); }
.th-faq-row { border-bottom: 1px solid rgba(31,61,46,0.08); padding: 18px 0; }
.th-faq-row summary { display: flex; justify-content: space-between; align-items: center; cursor: pointer; list-style: none; font-family: var(--th-font-display); font-size: 22px; color: var(--th-hunter); }
.th-faq-row summary::-webkit-details-marker { display: none; }
.th-faq-plus { font-family: var(--th-font-mono); font-size: 18px; color: var(--th-ink-quiet); transition: transform 160ms; }
.th-faq-row[open] .th-faq-plus { transform: rotate(45deg); color: var(--th-navy); }
.th-faq-row p { font-family: var(--th-font-serif); font-size: 17px; line-height: 1.55; color: var(--th-ink-soft); margin: 12px 0 0; max-width: 60ch; }
.th-loop-cta-row { display: flex; gap: 16px; align-items: center; margin-top: 24px; }
.th-loop-preview { padding: 48px 0 96px; }

/* ====================== SEARCH OVERLAY ====================== */
.th-search-overlay {
  position: fixed; inset: 0;
  background: rgba(18,35,24,0.45);
  backdrop-filter: blur(2px);
  z-index: 200;
  display: flex; align-items: flex-start; justify-content: center;
  padding-top: 80px;
}
.th-search-panel {
  width: min(640px, calc(100vw - 32px));
  background: var(--th-stone);
  border: 1px solid rgba(31,61,46,0.2);
  border-radius: 6px;
  box-shadow: 0 24px 60px rgba(18,35,24,0.3);
  overflow: hidden;
}
.th-search-input-row {
  display: flex; align-items: center; gap: 12px;
  padding: 16px 18px;
  border-bottom: 1px solid rgba(31,61,46,0.12);
  color: var(--th-ink-quiet);
}
.th-search-input-row input {
  flex: 1; background: transparent; border: 0; outline: none;
  font-family: var(--th-font-display); font-size: 22px;
  color: var(--th-hunter);
}
.th-kbd-esc {
  font-family: var(--th-font-mono); font-size: 11px;
  padding: 3px 8px; border: 1px solid rgba(31,61,46,0.2); border-radius: 3px;
  background: white; color: var(--th-ink-quiet); cursor: pointer;
}
.th-search-tags { display: flex; gap: 6px; padding: 12px 18px; border-bottom: 1px solid rgba(31,61,46,0.08); flex-wrap: wrap; }
.th-search-results { max-height: 360px; overflow-y: auto; }
.th-search-result {
  display: grid; grid-template-columns: 80px 1fr 80px;
  gap: 16px; align-items: baseline;
  padding: 12px 18px;
  text-decoration: none; color: inherit;
  border-bottom: 1px solid rgba(31,61,46,0.06);
}
.th-search-result:hover { background: rgba(31,61,46,0.04); }
.th-search-result-tag { font-family: var(--th-font-mono); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--th-navy); }
.th-search-result-title { font-family: var(--th-font-display); font-size: 16px; color: var(--th-hunter); line-height: 1.3; }
.th-search-result-date { font-family: var(--th-font-mono); font-size: 11px; color: var(--th-ink-quiet); text-align: right; }
.th-search-empty { padding: 32px 18px; font-family: var(--th-font-serif); font-style: italic; color: var(--th-ink-quiet); text-align: center; }
.th-search-empty a { color: var(--th-navy); }
.th-search-hint {
  display: flex; gap: 16px; align-items: center;
  padding: 10px 18px;
  border-top: 1px solid rgba(31,61,46,0.08);
  font-family: var(--th-font-mono); font-size: 10.5px; color: var(--th-ink-quiet);
}
.th-search-hint kbd {
  padding: 1px 5px; border: 1px solid rgba(31,61,46,0.2); border-radius: 2px;
  background: white; color: var(--th-ink-soft); margin-right: 4px;
}

/* ====================== MANIFESTO ====================== */
.th-manifesto { max-width: var(--th-page-max); margin: 0 auto; padding: 0 48px 96px; }

.th-mani-hero { padding: 88px 0 64px; border-bottom: 1px solid rgba(31,61,46,0.12); }
.th-mani-hero .th-eyebrow { display: block; margin-bottom: 28px; }
.th-mani-hero h1 {
  font-family: var(--th-font-display);
  font-size: clamp(44px, 5.6vw, 80px); line-height: 1.04;
  letter-spacing: -0.024em; color: var(--th-hunter);
  font-weight: 400; margin: 0 0 32px; max-width: 18ch;
}
.th-mani-lede {
  font-family: var(--th-font-serif); font-style: italic;
  font-size: 22px; line-height: 1.5; color: var(--th-ink-soft);
  max-width: 56ch; margin: 0 0 40px;
}
.th-mani-lede a { color: var(--th-navy); text-decoration: underline; text-decoration-color: rgba(27,42,74,0.3); text-underline-offset: 4px; }
.th-mani-meta {
  display: grid; grid-template-columns: repeat(3, auto); gap: 56px;
  font-family: var(--th-font-sans); font-size: 14px; color: var(--th-hunter);
  padding-top: 16px;
}
.th-mani-meta .th-eyebrow { display: block; margin-bottom: 6px; }

.th-mani-rules { padding: 56px 0 24px; }
.th-mani-rule {
  display: grid; grid-template-columns: 100px 1fr;
  gap: 56px; padding: 36px 0;
  border-bottom: 1px solid rgba(31,61,46,0.08);
  align-items: start;
}
.th-mani-rule:last-child { border-bottom: 0; }
.th-mani-num {
  font-family: var(--th-font-display); font-style: italic;
  font-size: 56px; line-height: 1; color: var(--th-navy);
  font-weight: 400; letter-spacing: -0.02em;
}
.th-mani-body { max-width: 60ch; }
.th-mani-body h2 {
  font-family: var(--th-font-display); font-weight: 500;
  font-size: 30px; line-height: 1.2; letter-spacing: -0.018em;
  color: var(--th-hunter); margin: 0 0 14px;
}
.th-mani-body p {
  font-family: var(--th-font-serif); font-size: 18px; line-height: 1.6;
  color: var(--th-ink-soft); margin: 0;
}

.th-mani-foot { padding: 56px 0 0; }
.th-mani-foot-rule { height: 1px; background: var(--th-hunter); width: 100%; margin-bottom: 40px; }
.th-mani-foot-grid {
  display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr);
  gap: 64px;
}
.th-mani-foot-grid .th-eyebrow { display: block; margin-bottom: 14px; }
.th-mani-signoff {
  font-family: var(--th-font-display); font-style: italic; font-weight: 400;
  font-size: 44px; line-height: 1.2; color: var(--th-hunter);
  margin: 0 0 28px; max-width: 26ch;
}
.th-mani-byline {
  font-family: var(--th-font-display); font-style: italic;
  font-size: 26px; color: var(--th-ink-soft); margin: 0;
}
.th-mani-foot-grid--solo { grid-template-columns: 1fr; }
.th-mani-alc {
  background: var(--th-navy); color: var(--th-stone);
  padding: 28px 28px 26px; border-radius: 6px;
}
.th-mani-alc .th-eyebrow { color: rgba(237,236,241,0.65); }
.th-mani-alc p {
  font-family: var(--th-font-serif); font-size: 15px; line-height: 1.55;
  color: rgba(237,236,241,0.88); margin: 0 0 16px;
}
.th-mani-alc a { color: var(--th-sky); }
.th-mani-alc .th-link-quiet { color: var(--th-sky); }
.th-mani-alc .th-link-quiet:hover { color: white; }

/* ====================== RESPONSIVE ====================== */
@media (max-width: 980px) {
  .th-topbar { padding: 20px 24px; flex-wrap: wrap; gap: 16px; }
  .th-topbar-nav { gap: 16px; font-size: 12.5px; flex-wrap: wrap; }
  .th-search-btn span { display: none; }
  .th-search-btn kbd { display: none; }
  .th-home, .th-archive, .th-about, .th-subscribe-page, .th-loop-page, .th-reader { padding: 0 24px; }
  .th-hero { padding: 56px 0 48px; }
  .th-hero-foot { grid-template-columns: 1fr; gap: 32px; }
  .th-hero-meta { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .th-recent-block { grid-template-columns: 1fr; gap: 56px; padding: 48px 0; }
  .th-tier-grid { grid-template-columns: repeat(3, 1fr); gap: 14px; }
  .th-footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .th-footer-base { flex-direction: column; gap: 6px; }
  .th-about-grid { grid-template-columns: 1fr; gap: 32px; }
  .th-archive-controls { grid-template-columns: 1fr; gap: 20px; }
  .th-arc-row { grid-template-columns: 70px 1fr auto; }
  .th-arc-tag, .th-arc-min { display: none; }
  .th-list-row { grid-template-columns: 80px 1fr auto; gap: 16px; }
  .th-list-min { display: none; }
  .th-pullquote { margin-left: 0; padding-left: 20px; font-size: 20px; }
  .th-search-panel { margin: 0 16px; }
}

/* ========================================================
 * Density tweak — overrides keyed off [data-th-density]
 * Three rhythms: generous (more air), standard (default),
 * compressed (newspaper). We override the most visible
 * spacing, leading, and heading sizes; the rest of the page
 * inherits the standard token values.
 * ======================================================== */

/* GENEROUS — more air everywhere */
:root[data-th-density="generous"] .th-prose { line-height: 1.78; font-size: 20px; }
:root[data-th-density="generous"] p { margin: 0 0 28px; }
:root[data-th-density="generous"] .th-projects { padding: 96px 40px 144px; }
:root[data-th-density="generous"] .th-projects-head { padding-bottom: 48px; margin-bottom: 72px; }
:root[data-th-density="generous"] .th-project-row-trigger { padding: 44px 0; }
:root[data-th-density="generous"] .th-project-row.is-open .th-project-row-trigger { padding-bottom: 28px; }
:root[data-th-density="generous"] .th-project-detail { padding: 0 0 56px 0; }
:root[data-th-density="generous"] .logo-lab { padding: 0 48px 144px; }
:root[data-th-density="generous"] .logo-lab-head { padding: 96px 0 48px; }
:root[data-th-density="generous"] .th-mani-body p { line-height: 1.78; font-size: 19px; }
:root[data-th-density="generous"] .th-mani-foot { padding: 88px 0 0; }
:root[data-th-density="generous"] h1 { font-size: clamp(48px, 6vw, 76px); line-height: 1.08; }
:root[data-th-density="generous"] h2 { font-size: 38px; line-height: 1.2; }
:root[data-th-density="generous"] h3 { font-size: 24px; line-height: 1.35; }
:root[data-th-density="generous"] .th-arc-row { padding: 22px 0; }
:root[data-th-density="generous"] .th-list-row { padding: 28px 0; }

/* COMPRESSED — newspaper-dense */
:root[data-th-density="compressed"] .th-prose { line-height: 1.42; font-size: 17.5px; }
:root[data-th-density="compressed"] p { margin: 0 0 14px; }
:root[data-th-density="compressed"] .th-projects { padding: 40px 40px 64px; }
:root[data-th-density="compressed"] .th-projects-head { padding-bottom: 18px; margin-bottom: 28px; }
:root[data-th-density="compressed"] .th-project-row-trigger { padding: 16px 0; }
:root[data-th-density="compressed"] .th-project-row.is-open .th-project-row-trigger { padding-bottom: 10px; }
:root[data-th-density="compressed"] .th-project-detail { padding: 0 0 18px 0; }
:root[data-th-density="compressed"] .th-project-detail-prose p { font-size: 16px; line-height: 1.45; margin: 0 0 10px; }
:root[data-th-density="compressed"] .logo-lab { padding: 0 48px 56px; }
:root[data-th-density="compressed"] .logo-lab-head { padding: 36px 0 18px; }
:root[data-th-density="compressed"] .th-mani-body p { line-height: 1.45; font-size: 16.5px; }
:root[data-th-density="compressed"] .th-mani-foot { padding: 28px 0 0; }
:root[data-th-density="compressed"] h1 { font-size: clamp(32px, 4.2vw, 52px); line-height: 1.04; }
:root[data-th-density="compressed"] h2 { font-size: 26px; line-height: 1.12; }
:root[data-th-density="compressed"] h3 { font-size: 19px; line-height: 1.25; }
:root[data-th-density="compressed"] .th-arc-row { padding: 10px 0; }
:root[data-th-density="compressed"] .th-list-row { padding: 14px 0; }
:root[data-th-density="compressed"] .th-projects-foot { margin-top: 36px; padding: 22px; }

/* ====================== MASTHEAD · LOCKED T1 ====================== */
/* Navy band carrying utility row (Vol/Date + Sign in) and main row (lockup + nav + Subscribe + Search) */
.th-masthead {
  background: var(--th-navy);
  color: var(--th-stone);
  padding: 0;
  border-bottom: 1px solid rgba(0,0,0,0.15);
}
.th-masthead-utility {
  max-width: 1480px;
  margin: 0 auto;
  padding: 14px 48px 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  font-family: var(--th-font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
  border-bottom: 1px solid rgba(184, 89, 104, 0.35);
}
.th-masthead-voldate { display: inline-flex; align-items: center; gap: 10px; color: var(--th-stone); }
.th-masthead-voldate strong { font-weight: 500; }
.th-masthead-dot { width: 5px; height: 5px; border-radius: 50%; background: #B85968; display: inline-block; }
.th-masthead-signin {
  font-family: var(--th-font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--th-stone);
  text-decoration: none;
  padding: 5px 14px;
  border: 1px solid #B85968;
  background: rgba(184, 89, 104, 0.12);
  border-radius: 2px;
  transition: background 160ms;
}
.th-masthead-signin:hover { background: rgba(184, 89, 104, 0.22); }

.th-masthead-main {
  max-width: 1480px;
  margin: 0 auto;
  padding: 22px 48px 22px;
  display: flex;
  align-items: center;
  gap: 32px;
}
.th-masthead-lockup-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  padding: 4px 0;
}
.th-masthead-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--th-font-sans);
  font-size: 16px;
  white-space: nowrap;
  flex: 1;
  justify-content: space-evenly;
  margin: 0 32px;
}
.th-masthead-nav .th-navlink {
  color: rgba(245, 239, 220, 0.88);
  background: transparent;
  border: 0;
  padding: 6px 4px 7px;
  font-size: 16px;
  font-family: var(--th-font-sans);
  font-weight: 400;
  letter-spacing: 0.01em;
  text-decoration: none;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color 140ms, border-color 140ms;
}
.th-masthead-nav .th-navlink:hover {
  color: var(--th-stone);
  border-bottom-color: rgba(125, 211, 252, 0.4);
}
.th-masthead-nav .th-navlink.is-active,
.th-masthead-nav .th-navlink.is-open {
  color: var(--th-stone);
  border-bottom-color: var(--th-sky);
}
.th-masthead-nav .th-articles-trigger {
  display: inline-flex;
  align-items: center;
}
.th-masthead-nav .th-articles-menu {
  background: var(--th-stone);
  color: var(--th-hunter);
  border: 1px solid var(--th-stone-dark);
  box-shadow: 0 12px 36px rgba(0,0,0,0.18);
}

.th-masthead-actions { display: flex; align-items: center; gap: 14px; }
.th-masthead-subscribe {
  font-family: var(--th-font-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--th-stone);
  text-decoration: none;
  padding: 8px 16px;
  border: 1px solid #B85968;
  background: rgba(184, 89, 104, 0.12);
  border-radius: 2px;
  transition: background 160ms;
}
.th-masthead-subscribe:hover { background: rgba(184, 89, 104, 0.22); }
.th-masthead-subscribe.is-active { background: rgba(184, 89, 104, 0.28); }

.th-masthead-search {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  color: rgba(245, 239, 220, 0.78);
  border: 1px solid rgba(245, 239, 220, 0.22);
  padding: 7px 11px;
  border-radius: 2px;
  font-family: var(--th-font-mono);
  font-size: 11px;
  cursor: pointer;
  transition: color 140ms, border-color 140ms, background 140ms;
}
.th-masthead-search:hover {
  color: var(--th-stone);
  border-color: rgba(245, 239, 220, 0.45);
  background: rgba(245, 239, 220, 0.05);
}
.th-masthead-search kbd {
  font-family: var(--th-font-mono);
  font-size: 10px;
  padding: 1px 5px;
  border: 1px solid rgba(245, 239, 220, 0.22);
  border-radius: 3px;
  color: rgba(245, 239, 220, 0.65);
}

@media (max-width: 1180px) {
  .th-masthead-utility { padding: 12px 32px 10px; font-size: 10px; }
  .th-masthead-main { padding: 18px 32px; gap: 18px; }
  .th-masthead-nav { font-size: 15px; margin: 0 20px; }
  .th-masthead-nav .th-navlink { font-size: 15px; }
}
@media (max-width: 980px) {
  .th-masthead-main { gap: 14px; }
  .th-masthead-nav { font-size: 13.5px; margin: 0 14px; }
  .th-masthead-nav .th-navlink { font-size: 13.5px; }
  .th-masthead-search kbd { display: none; }
}
@media (max-width: 760px) {
  .th-masthead-main { flex-wrap: wrap; gap: 14px; }
  .th-masthead-nav { gap: 14px; font-size: 13px; flex-wrap: wrap; order: 3; width: 100%; margin: 0; justify-content: flex-start; }
  .th-masthead-actions { margin-left: auto; }
}
@media (max-width: 720px) {
  .th-masthead-utility { padding: 10px 20px; font-size: 9px; letter-spacing: 0.14em; }
  .th-masthead-utility .th-masthead-voldate span:last-child { display: none; }
  .th-masthead-main { padding: 16px 20px; }
}

/* Footer social row — icons + name, oxblood on hover */
.th-footer-social-row {
  display: flex; flex-direction: column; gap: 10px;
  margin-bottom: 14px;
}
.th-footer-social-link {
  display: inline-flex !important;
  align-items: center;
  gap: 10px;
  color: var(--th-hunter) !important;
  text-decoration: none;
  transition: color 140ms;
  justify-content: flex-start !important;
}
.th-footer-social-link svg { flex-shrink: 0; opacity: 0.7; transition: opacity 140ms, color 140ms; }
.th-footer-social-link:hover { color: var(--th-orange) !important; }
.th-footer-social-link:hover svg { color: #B85968; opacity: 1; }
.th-footer-social-name {
  font-family: var(--th-font-sans); font-size: 13.5px;
  letter-spacing: 0.01em;
}
.th-footer-logo-link {
  margin-top: 8px;
  opacity: 0.55;
  font-family: var(--th-font-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.12em;
}
.th-footer-logo-link:hover { opacity: 0.85; }

/* === Lightness pass — page felt heavy on hunter (Tom) ===
 * Lift the page ground to a brighter warm cream, and soften all page
 * headings to hunter-soft (#2D5544) so the wordmark keeps the deepest
 * #1F3D2E to itself (the locked hunter-split). Logo mark is hardcoded
 * #1F3D2E and unaffected. */
html, body { background: #FAF6E8; }
.th-main h1, .th-main h2, .th-main h3, .th-main h4,
.th-hero-title, .th-h2, .th-h3 { color: var(--th-hunter-soft); }

/* === Home refinements (Tom's review pass) === */

/* Trader's principle — hangs at the very top of the page */
.th-principle-bar {
  display: flex; align-items: baseline; gap: 20px;
  padding: 18px 0 20px; margin-bottom: 8px;
  border-bottom: 1px solid rgba(31,61,46,0.12);
}
.th-principle-no {
  font-family: var(--th-font-mono); font-size: 11px; letter-spacing: 0.22em;
  text-transform: uppercase; color: #B85968; white-space: nowrap; flex-shrink: 0;
  padding-top: 4px;
}
.th-principle-line {
  font-family: var(--th-font-display); font-style: italic; font-weight: 400;
  font-size: clamp(22px, 2.2vw, 30px); line-height: 1.3;
  color: var(--th-hunter); margin: 0; letter-spacing: -0.01em; text-wrap: balance;
}

/* Hero title — shorter line, wraps to a tidy two lines in the 1200 grid */
.th-hero-title { font-size: clamp(40px, 4vw, 58px) !important; max-width: 22ch; text-wrap: balance; }

/* Byline · Beat · Cadence — spread out, underlined labels */
.th-hero-meta { gap: 0 !important; justify-content: space-between; max-width: 640px; }
.th-hero-meta > div { flex: 1; padding-right: 24px; }
.th-hero-meta .th-eyebrow {
  padding-bottom: 8px; margin-bottom: 8px;
  border-bottom: 1px solid rgba(31,61,46,0.28);
  display: block; width: 100%;
}

/* Desk title — centered, +2pt */
.th-hero-desk-title { font-size: 18px !important; text-align: center; margin-bottom: 12px !important; }
a.th-hero-dateline { text-decoration: none; transition: color 140ms; cursor: pointer; }
a.th-hero-dateline:hover { color: var(--th-navy) !important; }

/* Featured — positioning kicker + standout centered rule */
.th-featured-block { padding: 48px 0 !important; }
.th-featured-kicker {
  font-family: var(--th-font-display); font-style: italic; font-weight: 500;
  font-size: clamp(28px, 3vw, 38px); color: var(--th-hunter-soft); text-align: center;
  margin-bottom: 20px; letter-spacing: -0.015em;
}
.th-featured-rule {
  justify-content: center !important; gap: 18px !important;
  padding-bottom: 14px !important;
  border-bottom: 2px solid var(--th-navy) !important;
  flex-wrap: nowrap !important;
}
.th-featured-rule .th-eyebrow { font-size: 16px !important; letter-spacing: 0.2em !important; white-space: nowrap; }
/* Featured title — keep it to ~one line */
.th-featured-title { max-width: 34ch !important; font-size: clamp(26px, 2.6vw, 38px) !important; text-wrap: balance; }
/* Covered subjects — sibling of tickers, oxblood accents */
.th-featured-subjects { margin-top: 10px; }
.th-featured-subject { color: #B85968; font-weight: 600; }

/* Coming-soon card titles — institutional serif, italic accent word */
.th-coming-soon-title {
  font-family: var(--th-font-display) !important;
  font-style: normal !important; font-weight: 500 !important;
  letter-spacing: -0.015em !important;
}
.th-coming-soon-title .th-h-italic {
  font-family: var(--th-font-display) !important;
  font-style: italic !important; font-weight: 500 !important;
}
.th-coming-soon-title { font-size: clamp(30px, 3vw, 42px) !important; line-height: 1.1 !important; }

/* Latest essays — ghosted volume number on the right */
.th-list-row-lg { grid-template-columns: 130px 1fr auto 96px !important; align-items: center; }
.th-list-vol {
  display: flex; flex-direction: column; align-items: flex-end; justify-self: end;
  line-height: 0.9; opacity: 0.5; transition: opacity 160ms, color 160ms;
}
.th-list-row-lg:hover .th-list-vol { opacity: 1; color: var(--th-navy); }
.th-list-vol-no {
  font-family: var(--th-font-display); font-style: italic; font-weight: 500;
  font-size: 40px; color: var(--th-hunter-soft); letter-spacing: -0.03em;
}
.th-list-vol-lab {
  font-family: var(--th-font-mono); font-size: 9px; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--th-ink-quiet); margin-top: 2px;
}
@media (max-width: 980px) {
  .th-list-row-lg { grid-template-columns: 90px 1fr auto !important; }
  .th-list-vol { display: none; }
  .th-hero-meta { max-width: none; }
}
@media (max-width: 620px) {
  .th-tier-grid { grid-template-columns: 1fr; gap: 16px; }
}
