/* The Bell Post — refined editorial, wider responsive shell */

:root {
  --ink: #0f1c2e;
  --ink-muted: #5c6b7a;
  --paper: #f7f3eb;
  --paper-elevated: #fffcf7;
  --rule: #e4ddd0;
  --brass: #b08d57;
  --brass-deep: #8c6d3f;
  --brass-soft: #e8d9bc;
  --navy: #0f1c2e;
  --navy-mid: #1a3354;
  --teal: #3d6b6a;
  --teal-deep: #2c5150;
  --burgundy: #7a3b4a;
  --burgundy-soft: #ead9dd;
  --up: #1a7a4c;
  --down: #b42318;
  --disclaimer-bg: #efeae0;
  --radius: 10px;
  --shadow: 0 6px 24px rgba(15, 28, 46, 0.07);
  --font-serif: "Source Serif 4", "Iowan Old Style", Palatino, Georgia, serif;
  --font-sans: "DM Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --max: 1200px;
  --max-article: 720px;
  --page-pad: clamp(20px, 4vw, 48px);
}

@media (prefers-color-scheme: dark) {
  :root {
    --ink: #f3efe6;
    --ink-muted: #9aa3ad;
    --paper: #0c1219;
    --paper-elevated: #141c27;
    --rule: #2a3544;
    --brass: #c9a66b;
    --brass-deep: #e0c08a;
    --brass-soft: #3a3224;
    --navy: #c5d4e8;
    --navy-mid: #8eabcc;
    --teal: #7ea3a2;
    --teal-deep: #b3d0cf;
    --burgundy: #c98996;
    --burgundy-soft: #3a2a2e;
    --up: #3dcf8e;
    --down: #f07167;
    --disclaimer-bg: #171e28;
    --shadow: 0 6px 24px rgba(0, 0, 0, 0.35);
  }
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--navy-mid); text-underline-offset: 0.15em; }
a:hover { color: var(--brass-deep); }

.skip-link {
  position: absolute; left: -999px; top: 0;
  background: var(--navy); color: #fff; padding: 0.5rem 1rem; z-index: 100;
}
.skip-link:focus { left: 0.5rem; top: 0.5rem; }

.container,
.container-narrow,
.article-layout {
  width: 100%;
  margin-inline: auto;
  padding-inline: var(--page-pad);
  box-sizing: border-box;
}
.container { max-width: calc(var(--max) + 2 * var(--page-pad)); }
.container-narrow { max-width: calc(var(--max-article) + 2 * var(--page-pad)); }

/* ===== Yahoo-style horizontal index bar ===== */
.index-bar {
  background: var(--paper-elevated);
  border-bottom: 1px solid var(--rule);
}
.index-bar__row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}
.index-bar__item {
  padding: 0.7rem 0.85rem;
  border-right: 1px solid var(--rule);
  min-width: 0;
}
.index-bar__item:last-child { border-right: none; }
@media (max-width: 560px) {
  .index-bar { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .index-bar__row {
    display: flex; width: max-content; min-width: 100%;
  }
  .index-bar__item {
    flex: 0 0 auto; min-width: 9.5rem; padding: 0.65rem 1rem;
  }
}
.index-bar__name {
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em;
  text-transform: uppercase; color: var(--ink-muted); margin: 0 0 0.15rem;
}
.index-bar__price {
  font-variant-numeric: tabular-nums; font-weight: 700;
  font-size: 1.05rem; margin: 0; color: var(--ink);
}
.index-bar__chg {
  font-variant-numeric: tabular-nums; font-size: 0.82rem;
  font-weight: 600; margin: 0.1rem 0 0;
}
.is-up { color: var(--up); }
.is-down { color: var(--down); }

/* ===== Biggest movers ===== */
.movers {
  border-bottom: 1px solid var(--rule);
  background: var(--paper);
  padding: 0.85rem 0 1rem;
}
.movers__head {
  display: flex; flex-wrap: wrap; align-items: baseline;
  justify-content: space-between; gap: 0.5rem;
  margin-bottom: 0.55rem;
}
.movers__head h2 {
  font-family: var(--font-serif);
  font-size: 1.05rem; margin: 0; font-weight: 700;
}
.movers__cite { font-size: 0.72rem; color: var(--ink-muted); }
.movers__block { margin-top: 0.55rem; }
.movers__label {
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.07em;
  text-transform: uppercase; color: var(--brass-deep); margin: 0 0 0.4rem;
}
.movers__row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.5rem;
}
@media (max-width: 900px) {
  .movers__row {
    display: flex; overflow-x: auto; gap: 0.5rem;
    -webkit-overflow-scrolling: touch; padding-bottom: 0.25rem;
  }
  .mover-card { flex: 0 0 7.5rem; }
}
.mover-card {
  background: var(--paper-elevated);
  border: 1px solid var(--rule);
  border-radius: 8px;
  padding: 0.55rem 0.6rem;
  text-align: center;
  min-width: 0;
}
.mover-card__sym {
  font-weight: 800; font-size: 0.88rem; margin: 0;
  letter-spacing: 0.02em; color: var(--ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mover-card__name {
  font-size: 0.65rem; color: var(--ink-muted); margin: 0.1rem 0 0.35rem;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mover-card__pct {
  font-variant-numeric: tabular-nums; font-weight: 700;
  font-size: 0.95rem; margin: 0;
}

/* Masthead */
.site-header {
  border-bottom: 2px solid var(--ink);
  background: var(--paper-elevated);
  padding: 1rem 0 0;
}
.masthead-top {
  display: flex; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: 0.5rem 1rem;
  margin-bottom: 0.5rem;
  font-size: 0.78rem; color: var(--ink-muted);
  letter-spacing: 0.04em; text-transform: uppercase;
}
.masthead-top__left {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}
.masthead-top__mark {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  text-decoration: none;
  color: inherit;
}
.masthead-top__mark img {
  width: 24px;
  height: 24px;
  display: block;
  background: none;
  border: 0;
  box-shadow: none;
  border-radius: 0;
}
.masthead { text-align: center; padding: 0.25rem 0 0.85rem; }
.masthead__rule {
  display: flex; align-items: center; gap: 0.75rem;
  justify-content: center; margin-bottom: 0.45rem;
}
.masthead__rule::before,
.masthead__rule::after {
  content: ""; flex: 1; max-width: 140px; height: 1px;
  background: var(--brass); opacity: 0.7;
}
.masthead__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  text-decoration: none;
  color: inherit;
  max-width: 100%;
}
.masthead__name {
  font-family: var(--font-serif);
  font-size: clamp(2.15rem, 6vw, 3.5rem);
  font-weight: 700; letter-spacing: -0.02em;
  margin: 0; color: var(--ink); line-height: 1.02;
}
.masthead__tagline {
  margin: 0.35rem 0 0; font-size: 1rem; color: var(--ink-muted);
}
.masthead-top__schedule {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.15rem 0.4rem;
  min-width: 0;
  line-height: 1.35;
  text-wrap: balance;
}
.masthead-top__dot { display: inline; }
@media (max-width: 640px) {
  .masthead-top {
    font-size: 0.68rem;
    letter-spacing: 0.03em;
    align-items: flex-start;
  }
  .masthead-top__left {
    flex: 1 1 12rem;
  }
  .masthead-top__schedule {
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    max-width: calc(100% - 2rem);
  }
  .masthead-top__dot { display: none; }
  .masthead-top__mark img { width: 22px; height: 22px; }
}


/* Tabs — a scrollable row on a narrow phone, never a page-level sideways scroll */
.tabs {
  display: flex; flex-wrap: nowrap; gap: 0;
  border-top: 1px solid var(--rule);
  margin: 0; padding: 0; list-style: none;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  max-width: 100%;
}
.tabs a {
  flex: 1 0 auto; text-align: center;
  padding: 0.75rem 0.85rem;
  text-decoration: none; color: var(--ink-muted);
  font-weight: 700; font-size: 0.9rem;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}
.tabs a:hover { color: var(--ink); }
.tabs a.is-active {
  color: var(--ink);
  border-bottom-color: var(--brass);
}
@media (max-width: 639px) {
  .tabs a {
    flex: 0 0 auto;
    padding: 0.7rem 0.4rem;
    font-size: 0.78rem;
  }
}

.label {
  display: inline-block;
  font-size: 0.7rem; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--brass-deep);
  border: 1px solid var(--brass-soft);
  background: var(--brass-soft);
  padding: 0.2rem 0.5rem; border-radius: 999px;
}

/* Hero */
.hero { padding: 1.5rem 0 0.5rem; }
.hero-split {
  display: grid; grid-template-columns: 1fr; gap: 0;
  background: var(--paper-elevated);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  overflow: hidden; box-shadow: var(--shadow);
}
@media (min-width: 840px) {
  .hero-split { grid-template-columns: 1.1fr 1fr; }
}
.hero-split__photo { margin: 0; background: #1a2433; }
.hero-split__photo img {
  width: 100%; height: 100%; min-height: 220px;
  object-fit: cover; aspect-ratio: 16/10;
}
@media (min-width: 840px) {
  .hero-split__photo img { aspect-ratio: auto; min-height: 100%; }
}
.hero-split__body {
  padding: 1.35rem 1.5rem 1.5rem;
  display: flex; flex-direction: column; justify-content: center;
}
.hero-split__body h2 {
  font-family: var(--font-serif);
  font-size: clamp(1.45rem, 3vw, 2rem);
  line-height: 1.18; margin: 0.45rem 0 0.55rem; letter-spacing: -0.015em;
}
.hero-split__body h2 a { color: inherit; text-decoration: none; }
.hero-split__body h2 a:hover { color: var(--brass-deep); }
.hero-prelaunch {
  max-width: 42rem;
  padding: 1.35rem 0 1.75rem;
}
.hero-prelaunch h2 {
  font-family: var(--font-serif);
  font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem);
  line-height: 1.1;
  text-wrap: balance;
  margin: 0.45rem 0 0.55rem;
  letter-spacing: -0.015em;
}
.hero-prelaunch .dek {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  line-height: 1.45;
  text-wrap: balance;
}
.dek { color: var(--ink-muted); margin: 0 0 0.85rem; }
.meta-row {
  display: flex; flex-wrap: wrap; gap: 0.35rem 1rem;
  font-size: 0.88rem; color: var(--ink-muted);
}
.meta-row strong { color: var(--ink); font-weight: 600; }
.photo-credit {
  font-size: 0.75rem; color: var(--ink-muted); margin: 0.5rem 0 0;
}
.photo-credit a { color: inherit; }

.data-cite { font-size: 0.78rem; color: var(--ink-muted); margin: 0.35rem 0 0; }

/* Articles + about graphic */
.section { padding: 1.5rem 0 2rem; }
.section__head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 1rem; border-bottom: 2px solid var(--ink);
  margin-bottom: 1rem; padding-bottom: 0.35rem;
}
.section__head h2 {
  font-family: var(--font-serif); font-size: 1.5rem; margin: 0;
}

.articles-grid {
  display: grid; grid-template-columns: 1fr; gap: 1.25rem;
}
@media (min-width: 900px) {
  .articles-grid { grid-template-columns: 1.45fr 0.9fr; align-items: start; }
}
.archive-list { list-style: none; margin: 0; padding: 0; }
.archive-list li {
  border-bottom: 1px solid var(--rule);
  padding: 1rem 0;
}
.archive-list li:first-child { padding-top: 0.15rem; }
.archive-list a {
  color: inherit; text-decoration: none;
  font-family: var(--font-serif);
  font-size: clamp(1.15rem, 2vw, 1.3rem); font-weight: 600;
}
.archive-list a:hover { color: var(--brass-deep); }
.archive-meta {
  display: block; margin-top: 0.3rem;
  font-size: 0.85rem; color: var(--ink-muted);
}

.about-card {
  background: var(--paper-elevated);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: 1.25rem 1.2rem 1.35rem;
  box-shadow: var(--shadow);
  text-align: center;
}
.about-card__bell { width: 88px; height: 88px; margin: 0 auto 0.85rem; }
.about-card h3 {
  font-family: var(--font-serif); font-size: 1.2rem; margin: 0 0 0.45rem;
}
.about-card p {
  margin: 0; font-size: 0.92rem; color: var(--ink-muted); text-align: left;
}

/* Signup */
.signup-panel {
  background: var(--paper-elevated);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: 1.35rem 1.3rem 1.45rem;
  box-shadow: var(--shadow);
  margin: 0.5rem 0 2rem;
}
.signup-panel h2, .signup-panel h3 {
  font-family: var(--font-serif); margin: 0 0 0.35rem;
}
.signup-panel p.lede { margin: 0 0 1rem; color: var(--ink-muted); font-size: 0.95rem; }
.signup-form { display: grid; gap: 0.75rem; }
@media (min-width: 640px) {
  .signup-form { grid-template-columns: 1fr 1.2fr auto; align-items: end; }
  .signup-form .field-full { grid-column: 1 / -1; }
}
.field label { display: block; font-size: 0.8rem; font-weight: 600; margin-bottom: 0.3rem; }
.field input {
  width: 100%; border: 1px solid var(--rule); background: var(--paper);
  color: var(--ink); border-radius: 8px; padding: 0.65rem 0.75rem; font: inherit;
}
.field input:focus { outline: 2px solid var(--brass); outline-offset: 1px; }
.btn {
  appearance: none; border: none; cursor: pointer;
  font: inherit; font-weight: 700;
  border-radius: 8px; padding: 0.7rem 1.1rem;
  background: var(--navy); color: #f7f3eb;
}
.btn:hover { background: var(--navy-mid); }
.btn:focus-visible { outline: 2px solid var(--brass); outline-offset: 2px; }
@media (prefers-color-scheme: dark) {
  .btn { color: #0c1219; background: var(--brass); }
  .btn:hover { background: var(--brass-deep); }
}
.signup-status { margin: 0.75rem 0 0; font-size: 0.92rem; font-weight: 600; }
.signup-status.is-success { color: var(--up); }
.signup-status.is-error { color: var(--down); }
.signup-note { margin: 0.75rem 0 0; font-size: 0.78rem; color: var(--ink-muted); }

/* Article */
.article-top-note {
  background: var(--disclaimer-bg);
  border-left: 3px solid var(--brass);
  padding: 0.75rem 1rem; margin: 1.15rem 0; font-size: 0.9rem;
}
.article-header { padding: 1.4rem 0 0.4rem; }
.article-kicker {
  color: var(--brass-deep);
  font-size: 0.78rem; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase; margin: 0 0 0.5rem;
}
.headline {
  font-family: var(--font-serif);
  font-size: clamp(1.85rem, 4.5vw, 2.75rem);
  line-height: 1.12; letter-spacing: -0.02em; margin: 0 0 0.7rem;
}
.byline { margin: 1rem 0 0; font-size: 0.95rem; color: var(--ink-muted); }
.byline strong { color: var(--ink); }

.lead-photo {
  margin: 1rem 0 0.35rem;
  border-radius: var(--radius); overflow: hidden; border: 1px solid var(--rule);
}
.lead-photo img { width: 100%; aspect-ratio: 2/1; object-fit: cover; }
.inline-photo {
  margin: 1.5rem 0 0.35rem;
  border-radius: var(--radius); overflow: hidden; border: 1px solid var(--rule);
}
.inline-photo img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }

.article-body {
  font-family: var(--font-serif);
  font-size: 1.125rem; line-height: 1.75; padding-bottom: 1rem;
}
.article-body p { margin: 0 0 1.15rem; }
.article-body h2 {
  font-family: var(--font-serif);
  font-size: 1.4rem; margin: 1.75rem 0 0.65rem; line-height: 1.25;
}
.article-body h3 {
  font-size: 1.1rem; margin: 1.35rem 0 0.5rem; font-family: var(--font-sans);
}
.pull-quote {
  margin: 1.75rem 0; padding: 1.1rem 1.25rem;
  border-left: 3px solid var(--brass);
  background: var(--paper-elevated);
  border-radius: 0 var(--radius) var(--radius) 0;
  font-family: var(--font-serif);
  font-size: 1.3rem; line-height: 1.4; font-style: italic; color: var(--ink);
}
.pull-quote cite {
  display: block; margin-top: 0.65rem;
  font-style: normal; font-size: 0.85rem;
  font-family: var(--font-sans); color: var(--ink-muted);
}

.disclaimer {
  background: var(--disclaimer-bg);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: 1rem 1.15rem; margin: 2rem 0 1.5rem;
  font-size: 0.88rem; color: var(--ink-muted);
}
.disclaimer strong {
  display: block; color: var(--ink);
  font-size: 0.78rem; letter-spacing: 0.06em;
  text-transform: uppercase; margin-bottom: 0.35rem;
}

.recap-table {
  width: 100%; border-collapse: collapse;
  font-variant-numeric: tabular-nums;
  background: var(--paper-elevated);
  border: 1px solid var(--rule); border-radius: 8px; overflow: hidden;
}
.recap-table th, .recap-table td {
  padding: 0.75rem 0.9rem; text-align: left; border-bottom: 1px solid var(--rule);
}
.recap-table th {
  font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--ink-muted); background: var(--disclaimer-bg);
}
.recap-table tr:last-child td { border-bottom: none; }
.recap-table td:nth-child(n+2), .recap-table th:nth-child(n+2) { text-align: right; }

.site-footer {
  border-top: 2px solid var(--ink);
  padding: 1.5rem 0 2.5rem; margin-top: 1rem;
  font-size: 0.85rem; color: var(--ink-muted);
}
.site-footer strong { color: var(--ink); }
.site-footer a {
  color: inherit;
  text-decoration-color: var(--brass);
  text-decoration-thickness: 1px;
}
.site-footer a:hover { color: var(--brass-deep); }
.site-footer__contact { margin: 0.45rem 0 0; }
.about-card__contact {
  margin-top: 0.75rem !important;
  text-align: center;
}
.about-card__contact a {
  color: inherit;
  text-decoration-color: var(--brass);
  text-decoration-thickness: 1px;
}
.about-card__contact a:hover { color: var(--brass-deep); }

.panel-note {
  font-size: 0.9rem; color: var(--ink-muted); margin: 0 0 1rem;
}


/* ===== Compact mid-page market strip (front page) ===== */
.snap-strip {
  margin: 1.25rem 0 0.25rem;
  padding: 0.75rem 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.snap-strip__row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.5rem;
}
@media (max-width: 900px) {
  .snap-strip__row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 520px) {
  .snap-strip { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .snap-strip__row {
    display: flex; width: max-content; min-width: 100%;
    gap: 0.45rem;
  }
  .snap-cell { flex: 0 0 7.25rem; }
}
.snap-cell {
  background: var(--paper-elevated);
  border: 1px solid var(--rule);
  border-radius: 8px;
  padding: 0.5rem 0.55rem;
  text-align: center;
  min-width: 0;
}
.snap-cell__name {
  font-size: 0.65rem; font-weight: 700; letter-spacing: 0.04em;
  text-transform: uppercase; color: var(--ink-muted); margin: 0;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.snap-cell__val {
  font-variant-numeric: tabular-nums; font-weight: 700;
  font-size: 0.95rem; margin: 0.2rem 0 0; color: var(--ink);
}
.snap-cell__val.is-up, .snap-cell__sub.is-up { color: var(--up); }
.snap-cell__val.is-down, .snap-cell__sub.is-down { color: var(--down); }
.snap-cell__sub {
  font-size: 0.7rem; color: var(--ink-muted); margin: 0.1rem 0 0;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.snap-strip__cite {
  font-size: 0.7rem; color: var(--ink-muted); margin: 0.45rem 0 0;
}

/* Articles + about balanced */
.articles-grid {
  display: grid; grid-template-columns: 1fr; gap: 1.25rem;
  align-items: stretch;
}
@media (min-width: 900px) {
  .articles-grid {
    grid-template-columns: minmax(0, 2fr) minmax(240px, 1fr);
  }
}
.about-card {
  display: flex; flex-direction: column; justify-content: center;
  height: 100%;
  min-height: 100%;
}
.about-card__bell { width: 72px; height: 72px; margin: 0 auto 0.85rem; }

/* ===== Long-form article ===== */
:root { --max-article: 720px; }
.article-body {
  font-size: 1.125rem;
  line-height: 1.8;
}
.read-time {
  display: inline-block;
  font-size: 0.85rem;
  color: var(--ink-muted);
  font-weight: 600;
}
.edition-toc {
  background: var(--paper-elevated);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: 1rem 1.15rem;
  margin: 1.25rem 0 1.5rem;
}
.edition-toc__title {
  font-family: var(--font-sans);
  font-size: 0.72rem; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--brass-deep); margin: 0 0 0.55rem;
}
.edition-toc ol {
  margin: 0; padding-left: 1.15rem;
}
.edition-toc li { margin: 0.25rem 0; font-size: 0.95rem; }
.edition-toc a { color: var(--ink); text-decoration: none; font-weight: 600; }
.edition-toc a:hover { color: var(--brass-deep); text-decoration: underline; }
.example-label {
  display: inline-block;
  font-size: 0.68rem; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--brass-deep);
  background: var(--brass-soft);
  padding: 0.15rem 0.45rem; border-radius: 999px;
  margin: 0 0 0.65rem;
}
.back-to-top {
  display: inline-block;
  margin: 1.5rem 0 0.5rem;
  font-size: 0.9rem; font-weight: 700;
  color: var(--navy-mid); text-decoration: none;
}
.back-to-top:hover { color: var(--brass-deep); }

/* Retention UI — feedback + push (preview) */
.btn-quiet {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--rule);
  box-shadow: none;
}
.btn-quiet:hover { background: var(--disclaimer-bg); }
.push-panel,
.feedback-panel {
  background: var(--paper-elevated);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: 1.15rem 1.2rem 1.25rem;
  margin: 1.25rem 0;
  box-shadow: var(--shadow);
}
.push-panel h3,
.feedback-panel__q {
  font-family: var(--font-serif);
  margin: 0 0 0.4rem;
}
.push-panel__actions,
.feedback-panel__actions {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
  margin-top: 0.75rem;
}
.feedback-panel__thanks {
  margin: 0.5rem 0 0;
  font-weight: 600;
  color: var(--up);
}

/* ===== Edition side contents (desktop sidebar / mobile drawer) ===== */
.article-layout {
  position: relative;
  max-width: calc(var(--max) + 2 * var(--page-pad));
  padding-bottom: 1rem;
}

.article-main {
  width: 100%;
  max-width: var(--max-article);
  margin-inline: auto;
  min-width: 0;
}

/* iPad portrait/landscape: drawer only, generous centered column */
@media (min-width: 768px) and (max-width: 1199px) {
  .article-main {
    max-width: 720px;
    margin-inline: auto;
  }
}

.article-spacer { display: none; }

.toc-open {
  position: sticky;
  top: max(0.65rem, env(safe-area-inset-top, 0px));
  z-index: 40;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0.75rem 0 0.5rem;
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  border: 1px solid var(--rule);
  background: var(--paper-elevated);
  color: var(--ink);
  font: 700 0.78rem/1 var(--font-sans);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  box-shadow: var(--shadow);
  cursor: pointer;
}
.toc-open:focus-visible {
  outline: 2px solid var(--brass);
  outline-offset: 2px;
}
.toc-open__icon { font-size: 0.95rem; line-height: 1; }

.toc-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 28, 46, 0.45);
  z-index: 55;
  border: 0;
  padding: 0;
  cursor: pointer;
}
.toc-backdrop[hidden] { display: none !important; }

.edition-toc-panel {
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  height: 100dvh;
  width: min(18.5rem, calc(100vw - 2.5rem));
  max-width: 100%;
  z-index: 60;
  background: var(--paper-elevated);
  border-right: 1px solid var(--rule);
  box-shadow: 8px 0 28px rgba(15, 28, 46, 0.18);
  transform: translateX(-105%);
  transition: transform 0.22s ease;
  display: flex;
  flex-direction: column;
  padding: max(0.85rem, env(safe-area-inset-top, 0px)) 0.95rem max(1rem, env(safe-area-inset-bottom, 0px));
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.edition-toc-panel.is-open { transform: translateX(0); }

.edition-toc-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid var(--rule);
}
.edition-toc-panel__title {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brass-deep);
}
.toc-close {
  appearance: none;
  border: 1px solid var(--rule);
  background: var(--paper);
  color: var(--ink);
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
}
.toc-close:focus-visible {
  outline: 2px solid var(--brass);
  outline-offset: 2px;
}

.edition-toc-panel nav ol {
  list-style: none;
  margin: 0;
  padding: 0;
}
.edition-toc-panel nav li { margin: 0; }
.edition-toc-panel nav a {
  display: block;
  padding: 0.45rem 0.55rem;
  border-radius: 8px;
  color: var(--ink);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.35;
  border-left: 2px solid transparent;
}
.edition-toc-panel nav a:hover {
  background: var(--disclaimer-bg);
  color: var(--brass-deep);
}
.edition-toc-panel nav a.is-active {
  background: var(--brass-soft);
  border-left-color: var(--brass);
  color: var(--navy);
}

.reading-progress {
  margin-top: auto;
  padding-top: 0.85rem;
}
.reading-progress__track {
  height: 3px;
  background: var(--rule);
  border-radius: 999px;
  overflow: hidden;
}
.reading-progress__bar {
  height: 100%;
  width: 0%;
  background: var(--brass);
  border-radius: 999px;
  transition: width 0.1s linear;
}
.reading-progress__label {
  margin: 0.35rem 0 0;
  font-size: 0.68rem;
  color: var(--ink-muted);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: 700;
}

body.toc-drawer-open { overflow: hidden; }

/* Hide old inline TOC block if any leftover */
.edition-toc { display: none; }

/* Desktop: 3-col grid keeps the article in the true page center */
@media (min-width: 1200px) {
  .toc-open { display: none; }
  .toc-backdrop { display: none !important; }
  .toc-close { display: none; }

  .article-layout {
    display: grid;
    grid-template-columns: 220px minmax(0, 720px) 220px;
    column-gap: 20px;
    row-gap: 0;
    align-items: start;
    justify-content: center;
    max-width: 1200px;
    padding-inline: 0;
  }
  .edition-toc-panel {
    grid-column: 1;
    position: sticky;
    top: 1.25rem;
    left: auto;
    height: auto;
    max-height: calc(100vh - 2.5rem);
    width: auto;
    transform: none;
    box-shadow: none;
    border: 0;
    border-top: 2px solid var(--navy);
    border-radius: 0;
    background: transparent;
    z-index: 1;
    padding: var(--s3, 0.75rem) 0;
  }
  .article-main {
    grid-column: 2;
    width: 100%;
    max-width: 720px;
    margin-inline: 0;
    justify-self: stretch;
  }
  .article-spacer {
    display: block;
    grid-column: 3;
  }
}

@media (max-width: 767px) {
  .container,
  .container-narrow,
  .article-layout {
    padding-inline: 20px;
  }
  .article-main { max-width: none; }
  .figure,
  .figure--lead,
  .figure--wide,
  .lead-photo,
  .inline-photo,
  .figure__frame,
  .figure__frame img {
    width: 100%;
    max-width: 100%;
  }
}

/* ===================== v3 editorial polish ===================== */
:root{
  --s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.5rem;--s6:2rem;--s7:3rem;
  --fs-body:clamp(1.0625rem,.98rem + .35vw,1.1875rem);
  --fs-h1:clamp(2rem,1.4rem + 2.6vw,3.25rem);
  --fs-dek:clamp(1.125rem,1rem + .5vw,1.375rem);
  --fs-h2:clamp(1.375rem,1.2rem + .7vw,1.75rem);
  --fs-small:.8125rem;--measure:68ch;--gutter:clamp(1rem,2.5vw,2rem);
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{font-feature-settings:"kern","liga";text-rendering:optimizeLegibility}
.num,.data-table,.tick,.byline,time{font-variant-numeric:tabular-nums lining-nums}
.read-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:80;pointer-events:none}
.read-bar__fill{display:block;height:100%;width:0;background:var(--brass)}

/* header rhythm */
.article-header{padding:var(--s6) 0 var(--s4)}
.article-kicker{font:700 .75rem/1 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brass-deep);margin:0 0 var(--s3)}
.headline{font-size:var(--fs-h1);line-height:1.08;letter-spacing:-.022em;font-weight:700;margin:0 0 var(--s3);text-wrap:balance;max-width:22ch}
.article-dek{font-family:var(--font-serif);font-size:var(--fs-dek);line-height:1.4;color:var(--ink-muted);margin:0 0 var(--s4);text-wrap:balance;max-width:40ch}
.byline{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .6rem;font:500 var(--fs-small)/1.4 var(--font-sans);color:var(--ink-muted);padding-top:var(--s3);border-top:1px solid var(--rule);margin:0}
.byline strong{color:var(--ink);font-weight:700}
.byline__sep{width:3px;height:3px;border-radius:50%;background:var(--brass)}
.read-time{font-weight:500}

/* body */
.article-body{font-family:var(--font-serif);font-size:var(--fs-body);line-height:1.62;hanging-punctuation:first allow-end last}
.article-body>p,.article-body>ul,.article-body>ol,.article-body>h2,.article-body>h3,.article-body>.data-cite,.article-body>.pq,.article-body>.hot-off-the-press{max-width:var(--measure);margin-inline:auto}
.article-body p{margin:0 auto 1.05em;text-wrap:pretty}
.article-body ul{padding-left:1.1em}
.article-body li{margin:.3em 0}
.article-body a{color:inherit;text-decoration-color:var(--brass);text-decoration-thickness:1px;text-underline-offset:.18em}
.article-body a:hover{color:var(--brass-deep)}
.article-body h2.sec-head,.article-body h2{font-size:var(--fs-h2);line-height:1.2;letter-spacing:-.012em;margin:var(--s7) 0 var(--s4);padding-top:var(--s4);border-top:1px solid var(--brass);text-wrap:balance;scroll-margin-top:84px}
.article-body h3{font:700 1rem/1.3 var(--font-sans);letter-spacing:.01em;margin:var(--s6) 0 var(--s3);color:var(--ink);scroll-margin-top:84px;text-wrap:balance}
.h-tag{font-weight:400;color:var(--ink-muted)}

/* Hot Off the Press (optional trending section; style guide v2.9) */
.hot-off-the-press {
  margin: var(--s7) auto var(--s5);
  padding: var(--s4) 0 var(--s5);
  border-top: 1px solid var(--brass);
  border-bottom: 1px solid var(--rule);
  background: transparent;
}
.article-body .hot-off-the-press h2.sec-head,
.article-body .hot-off-the-press h2 {
  border-top: 0;
  margin-top: 0.35rem;
  margin-bottom: var(--s4);
  padding-top: 0;
}
.hot-off-the-press__kicker {
  margin: 0;
  font: 700 0.7rem/1.2 var(--font-sans);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brass-deep);
}
.hot-off-the-press p:last-child { margin-bottom: 0; }

.article-body p.lede::first-letter{float:left;font-family:var(--font-serif);font-weight:700;font-size:3.6em;line-height:.82;margin:.06em .1em 0 0;color:var(--navy)}
.data-cite{font:400 .78rem/1.5 var(--font-sans);color:var(--ink-muted)}
.table-source{margin:var(--s2) 0 var(--s5)!important}

/* quote of the day */
.qotd{margin:var(--s5) 0 var(--s6);padding:var(--s5) 0;border-top:2px solid var(--navy);border-bottom:1px solid var(--rule);max-width:var(--measure)}
.qotd__quote{margin:0}
.qotd__quote p{font-family:var(--font-serif);font-size:clamp(1.35rem,1.1rem + 1vw,1.75rem);line-height:1.3;font-style:italic;font-weight:600;margin:0;text-wrap:balance;hanging-punctuation:first}
.qotd__cite{margin-top:var(--s3);font:500 .85rem/1.45 var(--font-sans);color:var(--ink-muted)}
.qotd__cite::before{content:"— "}
.pull-quote{border-left:0;background:none;padding:0}
/* pull quote (FT/Bloomberg) */
.pq{margin:var(--s6) 0;padding:var(--s4) 0 var(--s4) var(--s5);border-left:3px solid var(--brass)}
.pq__text{margin:0}.pq__text p{font:600 clamp(1.25rem,1.05rem + .8vw,1.6rem)/1.3 var(--font-serif);margin:0;color:var(--navy);text-wrap:balance}
.pq__cite{margin-top:var(--s2);font:600 .75rem/1.4 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--brass-deep)}

/* figures */
.figure{margin:var(--s6) 0}
.figure--lead{margin:var(--s4) 0 var(--s5)}
.figure__frame{background:#d9d2c4;aspect-ratio:3/2;overflow:hidden;border-radius:2px}
.figure__frame--lead{aspect-ratio:2/1}
.figure__frame img{width:100%;height:100%;object-fit:cover;animation:imgfade .5s ease both}
@keyframes imgfade{from{opacity:0}to{opacity:1}}
.figure__cap{margin-top:var(--s2);font:400 .78rem/1.45 var(--font-sans);color:var(--ink-muted);padding-bottom:var(--s2);border-bottom:1px solid var(--rule)}
.figure__desc{color:var(--ink)}
.figure__credit{white-space:nowrap}
.figure__credit a{color:inherit}
.lead-photo,.inline-photo{border:0;border-radius:0}
.article-top-note{font:400 .85rem/1.5 var(--font-sans);max-width:var(--measure)}

/* tables */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--s4) 0 0;border-top:2px solid var(--navy);max-width:100%}
.table-wrap:focus-visible{outline:2px solid var(--brass)}
.data-table{width:100%;border-collapse:collapse;font:400 .9rem/1.35 var(--font-sans);background:transparent;min-width:28rem}
.data-table--compact{min-width:16rem}
.data-table th,.data-table td{padding:.6rem .75rem;border-bottom:1px solid var(--rule);text-align:left;vertical-align:baseline}
.data-table thead th{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);border-bottom:1px solid var(--ink)}
.data-table tbody th{font-weight:600;color:var(--ink)}
.data-table .num{text-align:right;white-space:nowrap}
.data-table td.is-up{color:var(--up);font-weight:700}.data-table td.is-down{color:var(--down);font-weight:700}
.data-table th:first-child{position:sticky;left:0;background:var(--paper);z-index:1;min-width:9rem}
.tkr{display:inline-block;font-weight:700;letter-spacing:.02em;margin-right:.35em;color:var(--navy)}

/* figures/tables may run wider than the text measure, still centered */
.figure,
.figure--lead,
.figure--wide,
.table-wrap {
  width: 100%;
  max-width: min(100%, 900px);
  margin-inline: auto;
}
.edition-toc-panel nav a{display:flex;flex-direction:column;border-radius:0;padding:.5rem .6rem;min-height:44px;justify-content:center}
.toc-name{font-weight:600}
.toc-tag{font-weight:400;font-size:.78rem;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.toc-open{min-height:44px}
.toc-close{width:44px;height:44px}

/* homepage ticker strip */
.ticker{margin:var(--s5) 0 var(--s2);border-top:2px solid var(--navy);border-bottom:1px solid var(--rule)}
.ticker__head{display:flex;justify-content:space-between;align-items:baseline;padding:var(--s2) 0}
.ticker__title{margin:0;font:700 .72rem/1 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brass-deep)}
.ticker__date{margin:0;font:500 .75rem/1 var(--font-sans);color:var(--ink-muted)}
.ticker__scroller{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain}
.ticker__scroller::-webkit-scrollbar{display:none}
.ticker__row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--rule)}
.tick{padding:var(--s3) var(--s4);border-left:1px solid var(--rule);scroll-snap-align:start;min-width:0}
.tick:first-child{border-left:0;padding-left:0}
.tick__label{margin:0;font:700 .68rem/1.2 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);white-space:nowrap}
.tick__val{margin:.3rem 0 .1rem;font:700 1.15rem/1.1 var(--font-sans);color:var(--ink)}
.tick__val abbr{text-decoration:none}
.tick__chg{margin:0;font:700 .85rem/1.2 var(--font-sans)}
.tick__arrow{font-size:.6rem;margin-right:.25rem;vertical-align:.1em}
.ticker__cite{margin:var(--s2) 0;font:400 .7rem/1.45 var(--font-sans);color:var(--ink-muted)}
.as-of{display:inline;margin-left:.35em;font:500 .72rem/1.3 var(--font-sans);color:var(--ink-muted);letter-spacing:0;text-transform:none;white-space:nowrap}
@media (max-width:767px){
  .ticker__row{display:flex;width:max-content}
  .tick{flex:0 0 9.25rem;padding:var(--s3)}
  .tick:first-child{padding-left:0}
}

/* homepage hero + lists */
.hero-split{border-radius:2px;box-shadow:none;border:0;border-top:2px solid var(--navy);background:transparent}
.hero-split__photo{background:#d9d2c4}
.hero-split__photo img{animation:imgfade .5s ease both}
.hero-split__body{padding:var(--s5) 0 var(--s4)}
@media (min-width:840px){.hero-split{grid-template-columns:7fr 5fr;column-gap:var(--gutter)}.hero-split__body{padding:var(--s5) 0}}
.hero-split__body h2{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem);line-height:1.1;text-wrap:balance}
.hero-split .dek{font-family:var(--font-serif);font-size:1.1rem;line-height:1.45;text-wrap:balance}
.hero-meta{margin:var(--s3) 0 0}
.hero-cta{margin:var(--s3) 0 0}
.hero-cta__link{display:inline-flex;align-items:center;min-height:44px;font:700 .9rem/1 var(--font-sans);color:var(--navy);text-decoration:none;border-bottom:2px solid var(--brass)}
.label{border-radius:0;background:none;border:0;padding:0;letter-spacing:.12em}
.photo-credit{font:400 .75rem/1.4 var(--font-sans)}
.section__more{font:600 .9rem/1 var(--font-sans);text-decoration:none}
.archive-list a{text-wrap:balance;line-height:1.25}
.about-card{border-radius:2px;box-shadow:none;border:0;border-top:2px solid var(--brass);padding:var(--s5)}
.about-card__bell{width:56px;height:56px;display:block;margin:0 auto 0.85rem;background:none;border:0;box-shadow:none}
.container-form{max-width:760px}
.signup-panel,.push-panel,.feedback-panel{border-radius:2px;box-shadow:none}
.btn{min-height:44px;border-radius:2px}
.field input{min-height:44px;border-radius:2px}
.tabs a{min-height:44px}

/* ===================== side photos + earnings scorecard ===================== */
/* Sit on the page cream (--paper). No panels, no off-tone frames, no boxes. */
.article-body > .article-flow,
.article-body > .roundup-block,
.article-body > .hot-off-the-press {
  max-width: var(--measure);
  margin-inline: auto;
  background: transparent;
}
.article-flow {
  background: transparent;
}
.article-flow::after {
  content: "";
  display: table;
  clear: both;
}

figure.side-pic {
  width: 240px;
  max-width: 42%;
  float: right;
  margin: 0.15rem 0 1rem 1.25rem;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 0;
}
figure.side-pic.side-pic--left {
  float: left;
  margin: 0.15rem 1.25rem 1rem 0;
}
figure.side-pic img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  background: transparent;
  border: 0;
  border-radius: 2px;
  vertical-align: top;
}
figure.side-pic.side-pic--portrait img {
  aspect-ratio: 4 / 5;
}
figure.side-pic .figure__cap {
  background: transparent;
  margin-top: var(--s2);
  padding-bottom: var(--s2);
  border-bottom: 1px solid var(--rule);
  font: 400 0.78rem/1.45 var(--font-sans);
  color: var(--ink-muted);
}
figure.side-pic .figure__credit {
  white-space: normal;
}

.roundup-block {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}
.roundup-lead {
  font-family: var(--font-serif);
  margin: 0 0 1rem !important;
  background: transparent;
}
.scorecard {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--rule);
  box-shadow: none;
  border-radius: 0;
  padding: 0.95rem 0 0.85rem;
  margin: 0;
}
.scorecard__hed {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-weight: 650;
  line-height: 1.35;
  margin: 0 0 0.2rem !important;
  background: transparent;
}
.scorecard__hed a { color: inherit; }
.chg-up { color: var(--up); font-variant-numeric: tabular-nums; }
.chg-down { color: var(--down); font-variant-numeric: tabular-nums; }
.tag {
  display: inline;
  margin: 0 0 0.35rem !important;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  font: 700 0.68rem/1.2 var(--font-sans);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.tag--up { color: var(--up); }
.tag--down { color: var(--down); }
.tag--mixed { color: var(--brass-deep); }
.scorecard__why {
  font-family: var(--font-serif);
  margin: 0.15rem 0 0.4rem !important;
  background: transparent;
}
.scorecard__why::before {
  content: "Why it moved ";
  font: 700 0.68rem/1 var(--font-sans);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-muted);
  margin-right: 0.25rem;
}
.scorecard ul {
  margin: 0;
  padding: 0 0 0 1.15rem;
  background: transparent;
  max-width: none;
}
.scorecard li {
  font-family: var(--font-serif);
  margin: 0 0 0.2rem;
  background: transparent;
}
.roundup-also {
  margin: 0 !important;
  padding: 1rem 0 0;
  border-top: 1px solid var(--rule);
  background: transparent;
  font-family: var(--font-serif);
}
.roundup-sources {
  margin-top: 1rem !important;
  background: transparent;
}

@media (max-width: 767px) {
  figure.side-pic,
  figure.side-pic.side-pic--left {
    float: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 1.15rem;
  }
  figure.side-pic img,
  figure.side-pic.side-pic--portrait img {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 16 / 9;
  }
}


/* ===== Teaser email gate ===== */
/* Default (no JS): article fully visible, gate hidden.
   html.is-gated is set by a tiny head script when JS runs and
   localStorage has no tbp_subscribed key. */
.teaser-gate {
  display: none;
  max-width: var(--measure);
  margin: 0 auto;
  padding: 1.75rem 0 1.15rem;
  border-top: 1px solid var(--brass);
  border-bottom: 1px solid var(--rule);
  background: var(--paper);
}
html.is-gated .teaser-gate { display: block; }

.teaser-gate__title {
  font-family: var(--font-serif);
  font-size: clamp(1.55rem, 1.25rem + 1.2vw, 2rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0 0 1.15rem;
  text-align: center;
  line-height: 1.15;
  text-wrap: balance;
}
.teaser-gate__sub {
  font-family: var(--font-serif);
  text-align: center;
  color: var(--ink-muted);
  margin: 0 0 1.25rem;
  font-size: 1.05rem;
}
.teaser-gate__form {
  display: grid;
  gap: 0.85rem;
  position: relative;
}
.teaser-gate__hp {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.teaser-gate .field label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  margin-bottom: 0.3rem;
  color: var(--ink);
}
.teaser-gate .field input {
  width: 100%;
  font-size: 16px; /* iOS: avoid input zoom */
  line-height: 1.3;
  min-height: 48px;
  padding: 0.7rem 0.8rem;
  border: 0;
  border-bottom: 1px solid var(--ink);
  border-radius: 0;
  background: var(--paper);
  color: var(--ink);
  box-shadow: none;
  box-sizing: border-box;
}
.teaser-gate .field input:focus {
  outline: none;
  border-bottom-color: var(--brass);
}
.teaser-gate .field input[aria-invalid="true"] {
  border-bottom-color: var(--down);
}
.teaser-gate__submit {
  width: 100%;
  min-height: 48px;
  font-size: 1rem;
  letter-spacing: 0.01em;
}
.teaser-gate__status {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--down);
  text-align: center;
}
.teaser-gate__fine {
  margin: 0.1rem 0 0;
  font-size: 0.78rem;
  color: var(--ink-muted);
  text-align: center;
  line-height: 1.45;
}
.teaser-gate__fine a {
  color: inherit;
  text-decoration-color: var(--brass);
  text-decoration-thickness: 1px;
  white-space: nowrap;
}
.teaser-gate__fine a:hover { color: var(--brass-deep); }
.teaser-gate__disclaimer {
  margin: 1.2rem 0 0;
  padding-top: 0.85rem;
  border-top: 1px solid var(--rule);
  font: 400 0.85rem/1.5 var(--font-sans);
  color: var(--ink-muted);
  text-align: center;
}
.teaser-gate__disclaimer strong { color: var(--ink); font-weight: 700; }

/* Post-submit success — visible after unlock, where the gate was */
.gate-success {
  max-width: var(--measure);
  margin: 0 auto 1.25rem;
  padding: 1.75rem 0 1.15rem;
  border-top: 1px solid var(--brass);
  border-bottom: 1px solid var(--rule);
  background: var(--paper);
  text-align: center;
}
.gate-success[hidden] { display: none !important; }
.gate-success__msg {
  font-family: var(--font-serif);
  font-size: var(--fs-dek, 1.15rem);
  line-height: 1.45;
  margin: 0 0 0.5rem;
  color: var(--ink);
  text-wrap: balance;
}
.gate-success__hint {
  margin: 0 0 1rem;
  font-size: 0.9rem;
  color: var(--ink-muted);
}
.gate-success__dismiss {
  appearance: none;
  background: none;
  border: 0;
  border-bottom: 1px solid var(--ink);
  border-radius: 0;
  color: var(--ink);
  font: 600 0.9rem/1.2 var(--font-sans);
  min-height: 44px;
  padding: 0.4rem 0.15rem;
  cursor: pointer;
}
.gate-success__dismiss:hover { border-bottom-color: var(--brass); color: var(--navy-mid); }

/* After the Big Story lede, the gate should sit immediately —
   do not preview Quote of the Day or later locked sections. */
html.is-gated .article-locked {
  position: relative;
  max-height: 0;
  overflow: hidden;
  margin: 0;
  padding: 0;
  border: 0;
}
html.is-gated .article-locked::after {
  content: none;
}
html.is-gated .article-locked-tail { display: none; }

/* Locked blocks keep the same measure as direct .article-body children */
.article-body > .article-locked > p,
.article-body > .article-locked > ul,
.article-body > .article-locked > ol,
.article-body > .article-locked > h2,
.article-body > .article-locked > h3,
.article-body > .article-locked > .data-cite,
.article-body > .article-locked > .pq,
.article-body > .article-locked > .article-flow,
.article-body > .article-locked > .roundup-block,
.article-body > .article-locked > .table-wrap,
.article-body > .article-locked > .hot-off-the-press {
  max-width: var(--measure);
  margin-inline: auto;
}

@media (min-width: 640px) {
  .teaser-gate__form {
    grid-template-columns: 1fr 1.25fr auto;
    align-items: end;
  }
  .teaser-gate__submit { width: auto; padding-inline: 1.25rem; }
  .teaser-gate__status,
  .teaser-gate__fine { grid-column: 1 / -1; }
}
@media (max-width: 639px) {
  .teaser-gate {
    padding: 1.5rem 0 1rem;
  }
}

/* Privacy note page */
.privacy-page {
  max-width: var(--measure);
  margin: 0 auto;
  padding: var(--s6) 0 var(--s7);
}
.privacy-page h1 {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 1.5rem + 2vw, 2.75rem);
  letter-spacing: -0.02em;
  margin: 0 0 1rem;
  line-height: 1.1;
}
.privacy-page p {
  font-family: var(--font-serif);
  font-size: var(--fs-body, 1.0625rem);
  line-height: 1.62;
  margin: 0 0 1em;
}
.privacy-page a {
  color: inherit;
  text-decoration-color: var(--brass);
  text-decoration-thickness: 1px;
}
.privacy-page a:hover { color: var(--brass-deep); }
.privacy-page .privacy-note {
  font-family: var(--font-sans);
  font-size: 0.85rem;
  color: var(--ink-muted);
  margin-top: 1.5rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--rule);
}


/* ===== Upgrade: recap / 60s / trivia / footer / calendar ===== */
.preview-placeholder {
  margin: 0.5rem 0 0;
  padding: 0.85rem 0;
  border-top: 1px solid var(--brass);
  border-bottom: 1px solid var(--rule);
  background: var(--paper);
  color: var(--ink-muted);
  font: 400 0.92rem/1.5 var(--font-sans);
}
.preview-placeholder strong { color: var(--ink); }

.recap-intro {
  max-width: var(--measure);
  margin: 1.25rem auto 1.5rem;
  padding: 0.25rem 0 1rem;
  border-top: 1px solid var(--brass);
  border-bottom: 1px solid var(--rule);
  background: var(--paper);
}
.recap-intro__title {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brass-deep);
  margin: 0.85rem 0 0.65rem;
}
.recap-intro__summary {
  font-family: var(--font-serif);
  font-size: var(--fs-body, 1.0625rem);
  line-height: 1.62;
  margin: 0 0 0.85rem;
  max-width: 100%;
}
.recap-intro__summary + .recap-intro__summary {
  margin-top: 0.35rem;
}
.recap-intro__summary:last-of-type {
  margin-bottom: 1.15rem;
}
.recap-intro__watch {
  font-family: var(--font-serif);
  font-size: var(--fs-body, 1.0625rem);
  line-height: 1.5;
  margin: 0;
}
@media (max-width: 560px) {
  .recap-intro {
    margin: 1rem auto 1.25rem;
    padding: 0.15rem 0 0.85rem;
  }
  .recap-intro__summary {
    line-height: 1.58;
  }
  .recap-intro__summary + .recap-intro__summary {
    margin-top: 0.45rem;
  }
}
.recap-intro__watch strong { font-family: var(--font-sans); font-size: 0.95em; }

.sixty-box {
  max-width: var(--measure);
  margin: var(--s6, 2rem) auto;
  padding: 0.25rem 0 0.5rem;
  background: var(--paper);
}
.sixty-box__list {
  margin: 0.5rem 0 0;
  padding: 0;
  list-style: none;
}
.sixty-box__list li {
  font-family: var(--font-serif);
  font-size: var(--fs-body, 1.0625rem);
  line-height: 1.5;
  margin: 0;
  padding: 0.7rem 0 0.7rem 1.1rem;
  border-top: 1px solid var(--rule);
  position: relative;
}
.sixty-box__list li:last-child { border-bottom: 1px solid var(--rule); }
.sixty-box__list li::before {
  content: "";
  position: absolute;
  left: 0; top: 1.15em;
  width: 0.45rem; height: 1px;
  background: var(--brass);
}

.sixty-home { padding-top: var(--s6, 2rem); }
.sixty-home__box {
  max-width: var(--measure);
  margin-inline: auto;
  padding: 0.25rem 0 0.5rem;
  border-top: 1px solid var(--brass);
}
.sixty-home__title {
  font-family: var(--font-serif);
  font-size: var(--fs-h2, 1.5rem);
  margin: 0.85rem 0 0.65rem;
  letter-spacing: -0.015em;
}
.sixty-home__p {
  max-width: none;
  font-family: var(--font-serif);
  font-size: var(--fs-dek, 1.15rem);
  line-height: 1.55;
  margin: 0;
}

.trivia-box {
  max-width: var(--measure);
  margin: 1.75rem auto;
  padding: 0.25rem 0 0.5rem;
  background: var(--paper);
  border-top: 1px solid var(--brass);
}
.trivia-box__title {
  font-family: var(--font-serif);
  font-size: var(--fs-h2, 1.5rem);
  margin: 0.85rem 0 0.4rem;
  letter-spacing: -0.015em;
}
.trivia-box__sub { color: var(--ink-muted); margin: 0 0 1rem; font-size: 0.95rem; }

/* This Week’s Calendar — Mon–Fri week view */
.week-cal {
  max-width: 100%;
  margin: 0 auto 2rem;
  padding: 0;
  background: var(--paper);
}
.week-cal__header {
  border-top: 1px solid var(--brass);
  padding-top: 0.85rem;
  margin-bottom: 1.1rem;
}
.week-cal__title {
  font-family: var(--font-serif);
  font-size: var(--fs-h2, 1.5rem);
  margin: 0 0 0.25rem;
  letter-spacing: -0.015em;
}
.week-cal__span {
  margin: 0;
  font: 500 0.9rem/1.4 var(--font-sans);
  color: var(--ink-muted);
}
.week-cal__chips {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  margin: 0.75rem 0 0;
  max-width: 100%;
}
.week-cal__chip {
  flex: 1 1 0;
  min-width: 0;
  min-height: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.12rem;
  padding: 0.45rem 0.15rem 0.4rem;
  text-decoration: none;
  color: var(--ink-muted);
  border-bottom: 2px solid transparent;
  font-family: var(--font-sans);
}
.week-cal__chip:hover { color: var(--ink); }
.week-cal__chip.is-today {
  color: var(--ink);
  border-bottom-color: var(--brass);
}
.week-cal__chip.is-past { opacity: 0.62; }
.week-cal__chip.is-past:hover { opacity: 1; }
.week-cal__pill {
  display: inline-block;
  padding: 0.12rem 0.5rem;
  border-radius: 999px;
  background: var(--brass-soft);
  color: var(--brass-deep);
  font: 700 0.65rem/1.2 var(--font-sans);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.week-cal__chip-dow {
  font: 700 0.65rem/1.2 var(--font-sans);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.week-cal__chip-num {
  font: 700 1rem/1.2 var(--font-serif);
  letter-spacing: -0.02em;
  color: inherit;
}
.week-cal__legend {
  margin: 0.85rem 0 0;
  padding-top: 0.65rem;
  border-top: 1px solid var(--rule);
}
.week-cal__legend-label {
  margin: 0 0 0.4rem;
  font: 700 0.65rem/1.2 var(--font-sans);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.week-cal__legend-list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.15rem;
  margin: 0;
  padding: 0;
}
.week-cal__legend-item {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0.35rem 0.7rem;
  margin: 0;
  font: 700 0.75rem/1.2 var(--font-sans);
  letter-spacing: 0.02em;
  color: var(--ink-muted);
  border-bottom: 2px solid transparent;
  background: transparent;
}
.week-cal__legend-item--earnings { color: var(--navy-mid); }
.week-cal__legend-item--economic { color: var(--brass-deep); }
.week-cal__legend-item--fed { color: var(--navy); }
.week-cal__legend-item--holiday { color: var(--ink-muted); }
.week-cal__legend-item.is-all { color: var(--ink); }
.week-cal__legend.is-interactive .week-cal__legend-item {
  cursor: pointer;
}
.week-cal__legend.is-interactive .week-cal__legend-item:hover,
.week-cal__legend-item.is-active {
  border-bottom-color: currentColor;
}
.week-cal__legend-item.is-all.is-active { border-bottom-color: var(--brass); }
.week-cal__event summary { min-height: 40px; }
.week-cal__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  align-items: start;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.week-cal__day {
  min-width: 0;
  width: 100%;
  padding: 0.7rem 0.65rem 0.85rem;
  background: var(--paper);
  border-left: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  scroll-margin-top: 84px;
}
.week-cal__day:first-child { border-left: 0; }
.week-cal__day.is-today {
  background: color-mix(in srgb, var(--brass) 7%, var(--paper));
  box-shadow: inset 0 2px 0 var(--brass);
}
.week-cal__day.is-past { opacity: 0.72; }
.week-cal__day.is-past.is-today { opacity: 1; }
.week-cal__day-head { margin-bottom: 0.45rem; }
.week-cal__today {
  display: inline-block;
  margin: 0 0 0.3rem;
  padding: 0.12rem 0.5rem;
  border-radius: 999px;
  background: var(--brass-soft);
  color: var(--brass-deep);
  font: 700 0.65rem/1.2 var(--font-sans);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.week-cal__dow {
  margin: 0;
  font: 700 0.8rem/1.2 var(--font-sans);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.week-cal__day.is-today .week-cal__dow { color: var(--ink); }
.week-cal__md {
  margin: 0.15rem 0 0;
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.week-cal__badge {
  margin: 0.45rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0.5rem;
  align-items: baseline;
}
.week-cal__badge-flag {
  font: 700 0.65rem/1.2 var(--font-sans);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brass-deep);
  border-bottom: 1px solid var(--brass);
  padding-bottom: 0.05rem;
}
.week-cal__holiday-name {
  font: 500 0.8rem/1.3 var(--font-sans);
  color: var(--ink-muted);
}
.week-cal__events {
  list-style: none;
  margin: 0;
  padding: 0;
}
.week-cal__events > li {
  margin: 0;
  padding: 0.4rem 0;
  border-top: 1px solid var(--rule);
}
.week-cal__events > li:first-child { border-top: 0; padding-top: 0; }
.week-cal__event { margin: 0; }
.week-cal__event:not(details) {
  display: flex;
  flex-wrap: wrap;
  column-gap: 0.45rem;
  row-gap: 0.06rem;
  align-items: baseline;
}
.week-cal__event summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  column-gap: 0.45rem;
  row-gap: 0.06rem;
  align-items: baseline;
}
.week-cal__event summary::-webkit-details-marker { display: none; }
.week-cal__event summary::after {
  content: "Details";
  flex: 1 0 100%;
  margin-top: 0.05rem;
  font: 700 0.62rem/1.2 var(--font-sans);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brass-deep);
}
.week-cal__event[open] summary::after { content: "Close"; }
.week-cal__event summary:hover::after { color: var(--ink); }
.week-cal__tag {
  display: inline-flex;
  align-items: center;
  gap: 0.28em;
  width: fit-content;
  font: 700 0.72rem/1.2 var(--font-sans);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.08rem 0;
}
.week-cal__mark {
  display: inline-block;
  flex: 0 0 auto;
  width: 0.62em;
  height: 0.62em;
}
.week-cal__tag--earnings,
.week-cal__legend-item--earnings { color: var(--navy-mid); }
.week-cal__tag--earnings .week-cal__mark,
.week-cal__legend-item--earnings .week-cal__mark {
  background: var(--navy-mid);
  border-radius: 1px;
}
.week-cal__tag--economic,
.week-cal__legend-item--economic { color: var(--brass-deep); }
.week-cal__tag--economic .week-cal__mark,
.week-cal__legend-item--economic .week-cal__mark {
  box-sizing: border-box;
  background: transparent;
  border: 2px solid var(--brass-deep);
  border-radius: 50%;
}
.week-cal__tag--fed {
  color: #fff;
  background: var(--burgundy);
  border-radius: 999px;
  padding: 0.14em 0.5em;
}
.week-cal__tag--fed .week-cal__mark { display: none; }
.week-cal__legend-item--fed { color: var(--burgundy); }
.week-cal__legend-item--fed .week-cal__mark {
  width: 0.95em;
  height: 0.5em;
  background: var(--burgundy);
  border-radius: 999px;
}
.week-cal__tag--holiday,
.week-cal__legend-item--holiday { color: var(--teal); }
.week-cal__tag--holiday .week-cal__mark,
.week-cal__legend-item--holiday .week-cal__mark {
  width: 0.5em;
  height: 0.5em;
  background: var(--teal);
  transform: rotate(45deg);
  border-radius: 1px;
}
.week-cal__legend-item { display: inline-flex; align-items: center; gap: 0.3em; }
.week-cal__time {
  display: inline;
  font: 600 0.72rem/1.25 var(--font-sans);
  color: var(--ink);
}
.week-cal__who {
  display: flex;
  flex-wrap: wrap;
  flex: 1 0 100%;
  gap: 0.2rem 0.35rem;
  align-items: baseline;
  font: 700 0.86rem/1.25 var(--font-sans);
  color: var(--ink);
}
.week-cal__name {
  color: inherit;
  text-decoration: none;
}
.week-cal__source {
  margin: 0.35rem 0 0;
  font: 600 0.78rem/1.4 var(--font-sans);
}
.week-cal__source a {
  color: var(--brass-deep);
  text-decoration-color: var(--brass);
  text-underline-offset: 0.18em;
}
.week-cal__fold { margin: 0; }
.week-cal__fold-summary {
  display: none;
  list-style: none;
}
.week-cal__fold-summary::-webkit-details-marker { display: none; }
.week-cal__ticker {
  font: 600 0.75rem/1.2 var(--font-sans);
  letter-spacing: 0.04em;
  color: var(--ink-muted);
}
.week-cal__summary {
  display: block;
  flex: 1 0 100%;
  margin-top: 0;
  font: 400 0.75rem/1.35 var(--font-sans);
  color: var(--ink-muted);
}
.week-cal__details {
  margin: 0.3rem 0 0;
  font: 400 0.75rem/1.4 var(--font-sans);
  color: var(--ink);
}
.week-cal__empty {
  margin: 0;
  font: 400 0.85rem/1.45 var(--font-sans);
  color: var(--ink-muted);
}
@media (max-width: 839px) {
  .week-cal__grid {
    display: flex;
    flex-direction: column;
    border-bottom: 0;
  }
  .week-cal__day {
    border-left: 0;
    border-bottom: 1px solid var(--rule);
    padding: 1rem 0;
  }
  .week-cal__day.is-today {
    box-shadow: inset 3px 0 0 var(--brass);
    padding-left: 0.75rem;
  }
  .week-cal__day-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.75rem;
  }
  .week-cal__md { font-size: 1.15rem; }
  .week-cal__chip,
  .week-cal__legend-item,
  .week-cal__event summary,
  .week-cal__fold-summary {
    min-height: 44px;
  }
  /* Past days collapse to one line on the phone. Today and later stay open. */
  .week-cal__day.is-past { padding: 0; opacity: 1; }
  .week-cal__day.is-past .week-cal__fold-summary {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.35rem 0;
    font: 600 0.9rem/1.3 var(--font-sans);
    color: var(--ink-muted);
    cursor: pointer;
  }
  .week-cal__day.is-past .week-cal__fold-summary::after {
    content: "▸";
    margin-left: auto;
    color: var(--brass-deep);
  }
  .week-cal__day.is-past .week-cal__fold[open] .week-cal__fold-summary::after { content: "▾"; }
  .week-cal__day.is-past .week-cal__fold[open] .week-cal__fold-summary {
    color: var(--ink);
    border-bottom: 1px solid var(--rule);
    margin-bottom: 0.65rem;
  }
  .week-cal__day.is-past .week-cal__day-body { padding-bottom: 0.85rem; }
}

.trivia-box__progress { font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-muted); margin: 0 0 0.6rem; font-weight: 700; }
.trivia-box__q { font-family: var(--font-serif); font-size: 1.15rem; margin: 0 0 0.85rem; font-weight: 600; }
.trivia-box__choices { display: grid; gap: 0.5rem; }
.trivia-box__choice {
  appearance: none;
  display: block;
  width: 100%;
  text-align: left;
  font: 500 1rem/1.4 var(--font-sans);
  color: var(--ink);
  background: var(--paper);
  border: 0;
  border-bottom: 1px solid var(--ink);
  border-radius: 0;
  padding: 0.75rem 0.15rem;
  min-height: 48px;
  cursor: pointer;
}
.trivia-box__choice:hover:not(:disabled) { border-bottom-color: var(--brass); color: var(--navy-mid); }
.trivia-box__choice:disabled { cursor: default; }
.trivia-box__choice.is-right { border-bottom-color: var(--up); color: var(--up); font-weight: 700; }
.trivia-box__choice.is-wrong { border-bottom-color: var(--down); color: var(--down); }
.trivia-box__choice.is-dim { opacity: 0.55; }
.trivia-box__choice.is-static { cursor: default; }
.trivia-box__explain { margin: 0.85rem 0 0; font-size: 0.95rem; color: var(--ink-muted); }
.trivia-box__next, .trivia-box__share { margin-top: 1rem; min-height: 48px; }
.trivia-box__score-num { font-family: var(--font-serif); font-size: 1.5rem; font-weight: 700; margin: 0.5rem 0 0.35rem; }
.trivia-box__streak { color: var(--ink-muted); margin: 0 0 0.75rem; }
.trivia-box__share-status { min-height: 1.3em; margin: 0.4rem 0 0; font-weight: 600; color: var(--up); }
.trivia-box__review { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--rule); }

.archive-empty {
  max-width: var(--measure);
  font-family: var(--font-serif);
  font-size: var(--fs-dek, 1.15rem);
  margin: 1rem 0 0;
}

/* Full footer */
.site-footer {
  border-top: 2px solid var(--ink);
  padding: 2rem 0 2.5rem;
  margin-top: 1.5rem;
  font-size: 0.9rem;
  color: var(--ink-muted);
  background: var(--paper);
}
.site-footer__grid {
  display: grid;
  gap: 1.25rem 2rem;
  grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 800px) {
  .site-footer__grid {
    grid-template-columns: 1.1fr 1fr;
    align-items: start;
  }
  .site-footer__legal { grid-column: 1 / -1; }
}
.site-footer__mark { display: inline-block; }
.site-footer__mark img { width: 40px; height: 40px; }
.site-footer__name {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0.4rem 0 0.15rem;
}
.site-footer__tagline { margin: 0; }
.site-footer__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 1rem;
  align-content: flex-start;
}
.site-footer__links a,
.site-footer a {
  color: inherit;
  text-decoration-color: var(--brass);
  text-decoration-thickness: 1px;
}
.site-footer a:hover { color: var(--brass-deep); }
.site-footer__social { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.site-footer__social-link {
  display: inline-flex;
  width: 44px; height: 44px;
  align-items: center; justify-content: center;
  color: var(--ink);
}
.site-footer__social-link svg { width: 22px; height: 22px; display: block; }
.site-footer__legal p { margin: 0.35rem 0 0; }
.site-footer__copy { margin-top: 0.75rem !important; color: var(--ink); }

/* Homepage modules share the article measure */
.section .sixty-home__box,
.section .trivia-box,
.section .calendar-box { margin-left: auto; margin-right: auto; }

/* Guard against horizontal scroll on small phones */
html, body { overflow-x: hidden; max-width: 100%; }
img, svg, table, .ticker__scroller, .table-wrap { max-width: 100%; }


.calendar-box__when {
  margin: 0 0 0.5rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brass-deep);
}
.calendar-box__notes {
  font-family: var(--font-serif);
  margin: 0 0 1rem;
  overflow-wrap: anywhere;
  line-height: 1.55;
}
.calendar-box__group { margin: 1.1rem 0 0; }
.calendar-box__group h3 {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brass-deep);
  margin: 0 0 0.25rem;
}
.calendar-box__list li {
  padding: 0.7rem 0;
  border-top: 1px solid var(--rule);
  overflow-wrap: anywhere;
}
.calendar-box__list li:last-child { border-bottom: 1px solid var(--rule); }
.calendar-box__name { grid-column: auto; }
.calendar-box__meta { margin: 0.15rem 0 0; font-size: 0.88rem; color: var(--ink-muted); }
.calendar-box__src { grid-column: auto; overflow-wrap: anywhere; }
.trivia-box__explain, .trivia-box__q { overflow-wrap: anywhere; }
.preview-placeholder {
  margin: 0.75rem 0;
  padding: 0.75rem 0;
  border-top: 1px solid var(--rule);
  color: var(--ink-muted);
  font-size: 0.95rem;
}

/* Homepage one-line teasers to Trivia and Calendar */
.home-teasers { padding-top: 0; }
.home-teasers__box {
  max-width: var(--measure);
  margin: 0 auto 0.5rem;
  padding: 0.25rem 0 0.5rem;
}
.home-teasers__line {
  margin: 0;
  font-family: var(--font-serif);
  font-size: var(--fs-dek, 1.15rem);
  padding: 0.65rem 0;
  border-top: 1px solid var(--rule);
}
.home-teasers__line:last-child { border-bottom: 1px solid var(--rule); }
.home-teasers__line a {
  color: inherit;
  text-decoration: none;
  text-decoration-color: var(--brass);
}
.home-teasers__line a:hover { color: var(--brass-deep); text-decoration: underline; }


/* Edition type tags (archive cards and homepage list) */
.archive-card {
  position: relative;
}
.edition-tag {
  display: inline-block;
  margin: 0 0 0.35rem;
  padding: 0.12rem 0.45rem;
  border: 1px solid var(--brass);
  border-radius: 999px;
  font-family: var(--font-sans);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--brass-deep);
  background: transparent;
  line-height: 1.3;
  vertical-align: middle;
}
.edition-tag--week_in_review {
  border-color: var(--navy, #0f1c2e);
  color: var(--navy, #0f1c2e);
}
.edition-tag--week_ahead {
  background: var(--brass-soft, rgba(176, 141, 87, 0.14));
}
.archive-list .edition-tag { margin-bottom: 0.4rem; }

.site-footer__schedule {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--ink-muted);
  line-height: 1.4;
  max-width: 22rem;
}

/* Long Week in Review TOC: keep the list scrolling, progress pinned */
.edition-toc-panel nav {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.edition-toc-panel .reading-progress {
  flex: 0 0 auto;
}


/* Subscribe page */
.subscribe-page {
  max-width: 36rem;
  margin: 0 auto;
  padding: 1.75rem 0 3rem;
  text-align: center;
}
.subscribe-page h1 {
  font-family: var(--font-serif);
  font-size: clamp(1.85rem, 4.5vw, 2.5rem);
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0 0 0.65rem;
  color: var(--ink);
}
.subscribe-page .page-rule {
  display: block;
  width: 4rem;
  height: 1px;
  background: var(--brass);
  margin: 0 auto 1.15rem;
  border: 0;
}
.subscribe-page .lede {
  margin: 0 0 1.35rem;
  color: var(--ink-muted);
  font-size: 1.02rem;
  line-height: 1.55;
  text-align: left;
}
.subscribe-page .signup-panel {
  text-align: left;
  margin: 0 auto;
  background: var(--paper);
  border: 1px solid var(--rule);
  box-shadow: none;
}
.subscribe-page .signup-form {
  grid-template-columns: 1fr;
}
@media (min-width: 640px) {
  .subscribe-page .signup-form {
    grid-template-columns: 1fr 1.2fr auto;
    align-items: end;
  }
}
.subscribe-page .signup-note { text-align: left; }
.subscribe-page .btn { min-height: 44px; }

/* Post-confirmation welcome page */
.welcome-page {
  max-width: 36rem;
  margin: 0 auto;
  padding: 1.5rem 0 2.5rem;
}
.welcome-page h1 {
  font-family: var(--font-serif);
  font-size: clamp(1.85rem, 4.5vw, 2.5rem);
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0 0 0.65rem;
  text-align: center;
  color: var(--ink);
}
.welcome-page .page-rule {
  display: block;
  width: 4rem;
  height: 1px;
  background: var(--brass);
  margin: 0 auto 1.15rem;
  border: 0;
}
.welcome-page h2 {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  letter-spacing: -0.01em;
  margin: 1.5rem 0 0.65rem;
  color: var(--ink);
}
.welcome-page p,
.welcome-page li {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--ink);
}
.welcome-page p { margin: 0 0 1em; }
.welcome-page ul,
.welcome-page ol {
  margin: 0 0 1.15rem;
  padding-left: 1.25rem;
}
.welcome-page li { margin: 0 0 0.55rem; }
.welcome-page a {
  color: inherit;
  text-decoration-color: var(--brass);
  text-decoration-thickness: 1px;
}
.welcome-page a:hover { color: var(--brass-deep, #8a6a3d); }
.welcome-page .welcome-cta {
  display: inline-block;
  font-family: var(--font-sans);
  font-weight: 700;
  background: var(--navy);
  color: #f7f3eb;
  text-decoration: none;
  padding: 0.7rem 1.15rem;
  min-height: 44px;
  line-height: 1.3;
}
.welcome-page .welcome-cta:hover { color: #f7f3eb; opacity: 0.92; }
.welcome-page .welcome-disclaimer {
  margin-top: 1.75rem;
  padding-top: 1rem;
  border-top: 1px solid var(--rule);
  font-family: var(--font-sans);
  font-size: 0.92rem;
  color: var(--ink-muted);
}
