:root {
  --macro-ink: #1d2521;
  --macro-muted: #68716b;
  --macro-faint: #89918c;
  --macro-line: #d8ddd8;
  --macro-green: #176b4b;
  --macro-green-soft: #eaf2ed;
  --macro-red: #a84a35;
  --macro-red-soft: #f8ece7;
  --macro-gold: #8a651d;
  --macro-paper: #f7f7f3;
  --macro-serif: "Songti SC", "STSong", Georgia, serif;
}

.macro-shell {
  width: min(1180px, 100%);
  margin: 0 auto;
  padding: 16px 32px 64px;
}

.macro-shell > .site-nav {
  margin: -16px -32px 0;
}

.macro-shell > .section-nav {
  width: 100%;
  margin: 10px 0 0;
}

.macro-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 230px;
  align-items: end;
  gap: 50px;
  padding: 42px 0 38px;
  border-bottom: 1px solid var(--macro-line);
}

.macro-kicker,
.section-index {
  margin: 0 0 9px;
  color: var(--macro-green);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: 1px;
}

.macro-hero h1 {
  max-width: 800px;
  margin: 0;
  font-family: var(--macro-serif);
  font-size: 46px;
  font-weight: 600;
  line-height: 1.4;
}

.macro-hero p:not(.macro-kicker) {
  max-width: 710px;
  margin: 14px 0 0;
  color: var(--macro-muted);
  font-size: 15px;
  line-height: 1.95;
}

.macro-clock {
  padding: 17px 0 3px 22px;
  border-left: 1px solid var(--macro-line);
}

.macro-clock span,
.macro-clock strong,
.macro-clock small {
  display: block;
}

.macro-clock span,
.macro-clock small {
  color: var(--macro-muted);
  font-size: 10px;
}

.macro-clock strong {
  margin: 6px 0;
  font-size: 18px;
}

.macro-clock[data-status="unavailable"] strong,
.macro-clock[data-status="limited"] strong {
  color: var(--macro-red);
}

.macro-lead {
  padding: 38px 0;
  border-bottom: 1px solid var(--macro-line);
}

.macro-lead h2 {
  max-width: 850px;
  margin: 0;
  font-family: var(--macro-serif);
  font-size: 34px;
  font-weight: 600;
  line-height: 1.5;
}

.macro-lead > p:not(.section-index) {
  max-width: 820px;
  margin: 12px 0 0;
  color: #3f4943;
  font-size: 16px;
  line-height: 1.95;
}

.macro-lead-evidence {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 28px;
  border-top: 1px solid var(--macro-line);
}

.lead-evidence {
  min-width: 0;
  padding: 17px 18px 0 0;
}

.lead-evidence + .lead-evidence {
  padding-left: 18px;
  border-left: 1px solid var(--macro-line);
}

.lead-evidence span,
.lead-evidence strong,
.lead-evidence small {
  display: block;
}

.lead-evidence span,
.lead-evidence small {
  color: var(--macro-muted);
  font-size: 10px;
}

.lead-evidence strong {
  margin: 5px 0;
  font-size: 23px;
  font-variant-numeric: tabular-nums;
}

.macro-map,
.macro-ledger {
  padding: 38px 0;
  border-bottom: 1px solid var(--macro-line);
}

.macro-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 20px;
}

.macro-heading h2 {
  margin: 0;
  font-family: var(--macro-serif);
  font-size: 25px;
  font-weight: 600;
}

.macro-heading > p,
.macro-heading > a {
  max-width: 400px;
  margin: 0;
  color: var(--macro-muted);
  font-size: 11px;
  text-decoration: none;
}

.macro-lenses {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  border-bottom: 1px solid var(--macro-line);
}

.macro-lens {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 8px 0 11px;
  border: 0;
  border-bottom: 2px solid transparent;
  color: inherit;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.macro-lens:hover,
.macro-lens.active {
  color: var(--macro-green);
}

.macro-lens.active {
  border-bottom-color: var(--macro-green);
}

.macro-lens span {
  font-size: 13px;
  font-weight: 650;
  white-space: nowrap;
}

.macro-detail {
  padding: 40px 0;
  border-bottom: 1px solid var(--macro-line);
}

.macro-detail-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
}

.macro-detail-head h2 {
  max-width: 760px;
  margin: 0;
  font-family: var(--macro-serif);
  font-size: 31px;
  font-weight: 600;
  line-height: 1.5;
}

.macro-detail-head p:not(.section-index) {
  max-width: 780px;
  margin: 10px 0 0;
  color: var(--macro-muted);
  font-size: 14px;
  line-height: 1.85;
}

.macro-detail-head a {
  flex: 0 0 auto;
  color: var(--macro-green);
  font-size: 11px;
  text-decoration: none;
}

.macro-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 26px;
  border-top: 1px solid var(--macro-line);
  border-bottom: 1px solid var(--macro-line);
}

.macro-metric {
  min-width: 0;
  padding: 18px;
}

.macro-metric:first-child {
  padding-left: 0;
}

.macro-metric + .macro-metric {
  border-left: 1px solid var(--macro-line);
}

.macro-metric span,
.macro-metric strong,
.macro-metric small {
  display: block;
}

.macro-metric span,
.macro-metric small {
  color: var(--macro-muted);
  font-size: 10px;
}

.macro-metric strong {
  margin: 5px 0;
  font-size: 25px;
  font-variant-numeric: tabular-nums;
}

.macro-narrative {
  max-width: 780px;
  padding: 34px 0 28px;
}

.macro-narrative h3 {
  margin: 28px 0 10px;
  font-family: var(--macro-serif);
  font-size: 19px;
  font-weight: 600;
}

.macro-narrative h3:first-child {
  margin-top: 0;
}

.macro-paragraph {
  margin: 0 0 16px;
  color: #39433d;
  font-family: var(--macro-serif);
  font-size: 16px;
  line-height: 2;
}

.macro-paragraph strong {
  color: var(--macro-ink);
  font-weight: 650;
}

.macro-verification {
  margin-top: 30px;
  padding-top: 22px;
  border-top: 1px solid var(--macro-line);
}

#macro-conditions {
  margin: 0;
  padding-left: 22px;
  color: var(--macro-muted);
  font-size: 13px;
  line-height: 1.8;
}

#macro-conditions li {
  padding: 5px 0 5px 4px;
}

#macro-conditions strong {
  display: block;
  color: var(--macro-ink);
}

.macro-chart {
  margin: 0;
  padding-top: 22px;
}

.macro-chart figcaption {
  font-family: var(--macro-serif);
  font-size: 20px;
  font-weight: 600;
}

.macro-chart-controls {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 14px 0 8px;
  color: var(--macro-muted);
  font-size: 10px;
}

.macro-chart-controls select {
  min-height: 34px;
  padding: 5px 24px 5px 8px;
  border: 1px solid var(--macro-line);
  border-radius: 3px;
  background: #fff;
}

.macro-chart-frame {
  position: relative;
  height: 300px;
}

.macro-chart-frame canvas {
  width: 100%;
  height: 280px;
}

#macro-chart-empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--macro-muted);
  font-size: 12px;
}

#macro-chart-note {
  margin: 7px 0 0;
  color: var(--macro-muted);
  font-size: 10px;
}

.macro-ledger-list {
  border-top: 1px solid var(--macro-line);
}

.macro-appendix,
.macro-ledger {
  padding: 20px 0;
  border-bottom: 1px solid var(--macro-line);
}

.macro-appendix > summary,
.macro-ledger > summary {
  color: var(--macro-ink);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.macro-ledger > p {
  margin: 10px 0;
  font-size: 11px;
}

.macro-ledger-row {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) auto;
  gap: 18px;
  align-items: baseline;
  padding: 13px 0;
  border-bottom: 1px solid var(--macro-line);
  color: inherit;
  text-decoration: none;
}

.macro-ledger-row strong {
  font-size: 13px;
}

.macro-ledger-row span {
  color: var(--macro-muted);
  font-size: 11px;
}

.macro-ledger-row small {
  color: var(--macro-faint);
  font-size: 10px;
}

.macro-method {
  padding: 21px 0;
  border-bottom: 1px solid var(--macro-line);
}

.macro-method > summary {
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.macro-method > p,
#macro-source-links {
  color: var(--macro-muted);
  font-size: 11px;
  line-height: 1.85;
}

#macro-source-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
}

#macro-source-links a {
  color: var(--macro-green);
}

.macro-footer {
  padding-top: 24px;
  color: var(--macro-faint);
  font-size: 10px;
}

[hidden] {
  display: none !important;
}

@media (max-width: 620px) {
  .macro-shell {
    padding: 10px 18px 44px;
  }

  .macro-shell > .site-nav {
    margin: -10px -18px 0;
  }

  .macro-hero {
    display: block;
    padding: 28px 0;
  }

  .macro-hero h1 {
    font-size: 35px;
  }

  .macro-hero p:not(.macro-kicker) {
    font-size: 13px;
  }

  .macro-clock {
    margin-top: 22px;
    padding: 15px 0 0;
    border-top: 1px solid var(--macro-line);
    border-left: 0;
  }

  .macro-lead h2 {
    font-size: 28px;
  }

  .macro-lead-evidence,
  .macro-metrics {
    grid-template-columns: 1fr;
  }

  .lead-evidence,
  .lead-evidence + .lead-evidence,
  .macro-metric,
  .macro-metric:first-child,
  .macro-metric + .macro-metric {
    padding: 14px 0;
    border-left: 0;
  }

  .lead-evidence + .lead-evidence,
  .macro-metric + .macro-metric {
    border-top: 1px solid var(--macro-line);
  }

  .macro-heading,
  .macro-detail-head {
    display: block;
  }

  .macro-heading > p,
  .macro-heading > a,
  .macro-detail-head > a {
    display: block;
    margin-top: 10px;
  }

  .macro-lens {
    min-height: 40px;
  }

  .macro-detail-head h2 {
    font-size: 26px;
  }

  .macro-paragraph {
    font-size: 15px;
    line-height: 1.9;
  }

  .macro-chart-controls {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
  }

  .macro-chart-frame {
    height: 250px;
  }

  .macro-chart-frame canvas {
    height: 230px;
  }

  .macro-ledger-row {
    grid-template-columns: 105px minmax(0, 1fr);
    gap: 8px 12px;
  }

  .macro-ledger-row small {
    grid-column: 1 / -1;
  }
}
