@font-face { font-family: Geist; src: url('/assets/fonts/geist-var.woff2') format('woff2'); font-weight: 100 900; font-display: optional; }
@font-face { font-family: Bricolage; src: url('/assets/fonts/bricolage-var.woff2') format('woff2'); font-weight: 200 800; font-display: optional; }
@font-face { font-family: 'Geist Mono'; src: url('/assets/fonts/geist-mono-var.woff2') format('woff2'); font-weight: 100 900; font-display: optional; }
:root { --bg: #f5f7fb; --surface: #fff; --ink: #0a0f1f; --muted: #566078; --line: #e2e6ef; --signal: #2f4bff; color-scheme: light; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 17px/1.7 Geist, system-ui, sans-serif; }
a { color: var(--signal); text-underline-offset: .2em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible { outline: 3px solid var(--signal); outline-offset: 5px; border-radius: 2px; }
h1, h2, p { margin: 0; }
h1, h2 { font-family: Bricolage, Geist, system-ui, sans-serif; letter-spacing: -.035em; }
.wrap { width: min(1120px, calc(100% - 64px)); margin-inline: auto; }
.reading { max-width: 780px; }
.skip { position: absolute; z-index: 3; top: -80px; left: 20px; padding: 10px 16px; background: var(--surface); }
.skip:focus { top: 12px; }
.site-header { border-bottom: 1px solid var(--line); background: var(--surface); }
.header-inner { min-height: 80px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand, .footer-brand { font: 750 21px/1 Geist, system-ui, sans-serif; letter-spacing: -.05em; text-decoration: none; }
.brand { display: flex; gap: 10px; align-items: center; color: var(--ink); }
.brand img { flex-shrink: 0; }
.header-link { font-size: 14px; font-weight: 600; text-decoration: none; }
.masthead { padding-block: 60px 70px; }
.set-line { display: flex; justify-content: space-between; gap: 20px; padding-top: 12px; margin-bottom: 26px; border-top: 1px solid var(--line); color: var(--muted); font: 400 11px/1.5 'Geist Mono', monospace; letter-spacing: .035em; text-transform: uppercase; }
.masthead h1 { max-width: 18ch; font-size: clamp(42px, 6vw, 76px); font-weight: 750; line-height: 1.03; }
.intro { max-width: 54ch; margin-top: 25px; color: var(--muted); font-size: 20px; line-height: 1.6; }
.byline { margin-top: 24px; color: var(--muted); font-size: 13px; }
.report-index { padding-block: 40px 70px; background: var(--surface); border-top: 1px solid var(--line); }
.report-index .set-line { border: 0; padding: 0; margin-bottom: 16px; }
.report-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.report-list li { display: grid; grid-template-columns: 58px minmax(0, 1fr) 65px; gap: 24px; align-items: start; padding-block: 29px 31px; border-bottom: 1px solid var(--line); }
.report-number { padding-top: 4px; color: var(--muted); font: 400 15px/1.5 'Geist Mono', monospace; }
.category { color: var(--muted); font: 400 11px/1.5 'Geist Mono', monospace; text-transform: uppercase; letter-spacing: .04em; }
.report-list h2 { margin-top: 7px; font-size: clamp(24px, 3vw, 33px); font-weight: 700; line-height: 1.2; }
.report-list h2 a { color: var(--ink); text-decoration: none; }
.report-list h2 a:hover { text-decoration: underline; text-decoration-color: var(--signal); text-underline-offset: .18em; }
.report-list li p:last-child { max-width: 72ch; margin-top: 10px; color: var(--muted); font-size: 15px; line-height: 1.65; }
.read-label { padding-top: 28px; color: var(--signal); font-size: 13px; white-space: nowrap; }
.editorial-note { max-width: 80ch; margin-top: 30px; color: var(--muted); font-size: 13px; }
.article-head { padding-block: 30px 40px; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 38px; color: var(--muted); font-size: 12px; }
.breadcrumbs a { color: inherit; }
.article-head h1 { font-size: clamp(34px, 5vw, 56px); line-height: 1.08; font-weight: 750; }
.article-description { margin-top: 22px; color: var(--muted); font-size: 19px; line-height: 1.65; }
.article-head .byline { margin-top: 20px; }
.article-body { padding-block: 42px 65px; border-top: 1px solid var(--line); background: var(--surface); }
.prose { overflow-wrap: anywhere; }
.prose p + p { margin-top: 21px; }
.prose h2 { margin-top: 36px; margin-bottom: 16px; font-size: 29px; line-height: 1.2; }
.table-scroll { margin-block: 25px; overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; }
table { width: 100%; border-collapse: collapse; font-size: 15px; }
caption { text-align: left; padding: 15px 18px; font-size: 12px; color: var(--muted); background: var(--bg); }
th, td { padding: 14px 18px; text-align: left; vertical-align: top; border-top: 1px solid var(--line); }
th { font-size: 12px; }
td.money { white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 650; }
tbody tr:last-child { background: var(--bg); }
.source-note { margin-top: 36px; padding-top: 22px; border-top: 1px solid var(--line); color: var(--muted); }
.source-note h2 { font: 600 13px/1.6 Geist, system-ui, sans-serif; letter-spacing: 0; }
.source-note p { margin-top: 6px; font-size: 13px; line-height: 1.75; }
.next-report { display: grid; gap: 9px; margin-top: 38px; padding-top: 24px; border-top: 1px solid var(--line); }
.next-report > a { width: fit-content; font-weight: 600; font-size: 17px; }
.site-footer { padding-block: 36px; color: #b5bfd2; background: #0a0f1f; }
.footer-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px 55px; }
.footer-brand { color: #eef2fb; }
.site-footer p { max-width: 62ch; margin-top: 14px; font-size: 12px; line-height: 1.8; }
.site-footer nav { display: flex; flex-wrap: wrap; align-content: start; gap: 10px 18px; }
.site-footer nav a { color: #eef2fb; font-size: 12px; }
.site-footer .copyright { grid-column: 1 / -1; margin: 0; color: #b5bfd2; }
.not-found { min-height: 50vh; padding-block: 70px; }
.not-found h1 { margin-block: 12px 25px; line-height: 1.1; }
@media (max-width: 600px) {
  .wrap { width: calc(100% - 40px); }
  .header-inner { min-height: 68px; gap: 12px; }
  .brand { font-size: 18px; gap: 7px; }
  .brand img { width: 24px; height: 24px; }
  .header-link { font-size: 12px; }
  .masthead { padding-block: 36px 43px; }
  .set-line { gap: 10px; font-size: 9px; }
  .intro { font-size: 17px; }
  .report-index { padding-block: 28px 45px; }
  .report-list li { grid-template-columns: 24px minmax(0, 1fr); gap: 14px; padding-block: 23px 26px; }
  .report-list h2 { font-size: 25px; }
  .read-label { display: none; }
  .article-head { padding-block: 24px 30px; }
  .breadcrumbs { margin-bottom: 27px; }
  .article-description { font-size: 17px; }
  .article-body { padding-block: 30px 45px; }
  .prose { font-size: 16px; }
  .prose h2 { font-size: 25px; }
  th, td { padding: 12px; }
  .footer-inner { grid-template-columns: 1fr; gap: 22px; }
}
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
