@font-face {
  font-family: Handjet;
  src: url('../fonts/handjet-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
}

:root {
  --paper: #ffffff;
  --white: #ffffff;
  --ink: #101010;
  --muted: #686868;
  --line: #dedede;
  --line-strong: #b9b9b9;
  --blue: #0867f2;
  --editorial-blue: #285eb8;
  --green: #0867f2;
  --forest: #101010;
  --amber: #686868;
  --yellow: #0867f2;
  --soft: #f5f8ff;
  --source: #eef4ff;
  --closing: #101010;
  --pixel: 'Handjet', 'Courier New', monospace;
  --radius: 2px;
}

body {
  background: var(--paper);
  color: var(--ink);
}

::selection {
  background: var(--blue);
  color: #fff;
}

html {
  scrollbar-color: #999 #fff;
}

.site-header {
  background: rgba(255, 255, 255, .97);
  border-color: var(--line);
}

.brand-mark {
  display: none;
}

.brand {
  color: var(--editorial-blue);
  font: 500 24px/1 var(--pixel);
}

.site-header nav {
  color: #555;
}

.site-header nav a:hover,
.contents a:hover {
  color: var(--blue);
}

.hero {
  padding-top: 76px;
  padding-bottom: 50px;
  text-align: left;
}

.hero h1 {
  max-width: 980px;
  color: var(--ink);
  font-family: var(--pixel);
  font-size: clamp(60px, 7.2vw, 96px);
  font-weight: 400;
  line-height: .82;
}

.hero h1 span {
  color: var(--editorial-blue);
}

.hero > p,
.hero .lead {
  max-width: 760px;
  margin-left: 0;
  margin-right: 0;
  color: #454545;
  font-size: 17px;
}

.hero-actions,
.meta-line {
  justify-content: flex-start;
}

.hero-grid {
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
  gap: 72px;
}

.record-note {
  border-color: var(--line-strong);
}

.record-note span,
.label,
.meta-line,
.source-id,
.report-topline,
.ledger-meta,
.window-grid span,
.method-item span,
.planning-note dt,
.step-number,
.step-cell span {
  font-family: var(--pixel);
  font-size: 14px;
  line-height: 1.25;
}

.button {
  border-radius: 2px;
  background: var(--ink);
  color: #fff;
}

.button:hover {
  background: var(--blue);
  color: #fff;
}

.button-light {
  background: var(--blue);
  color: #fff;
}

.button-light:hover {
  background: #fff;
  color: var(--ink);
}

.dossier,
.summary,
.lane-table,
.ledger-item,
.signal-list,
.question-matrix,
.source-band,
.window-grid,
.relation-map {
  border-color: var(--line-strong);
  border-radius: 0;
}

.report-category,
.method .label,
.method-item span,
.step-number {
  color: var(--editorial-blue);
}

.lane-row a,
.ledger-columns a,
.signal-row a,
.source-band a {
  color: var(--blue);
}

.report-heading h2,
.brief-grid h3,
.section-head h2,
.summary-top h2,
.map-copy h3,
.limits h2,
.closing h2,
.archive-band h2,
.ledger-item h2 {
  font-family: var(--pixel);
  font-weight: 400;
  letter-spacing: 0;
}

.report-heading h2 {
  font-size: 46px;
  line-height: .94;
}

.section-head h2,
.limits h2 {
  font-size: 46px;
  line-height: .95;
}

.summary-top h2 {
  font-size: 48px;
  line-height: .95;
}

.brief-grid h3,
.map-copy h3,
.ledger-item h2 {
  font-size: 28px;
  line-height: 1;
}

.metric strong {
  color: var(--editorial-blue);
  font-family: var(--pixel);
  font-size: 40px;
  line-height: .9;
}

.callout,
.planning-note {
  border-color: #bfd0f3;
  border-radius: 0;
  background: var(--source);
}

.status,
.status.unknown,
.status-line,
.status-line.unknown,
.matrix-row .decision,
.step-cell.decision strong {
  color: var(--editorial-blue);
}

.section.white,
.contents {
  background: #f7f8fa;
}

.contents-inner strong {
  color: var(--editorial-blue);
  font-family: var(--pixel);
  font-size: 15px;
  font-weight: 500;
}

.relation-map .edge.strong {
  stroke: var(--editorial-blue);
}

.relation-map .hot rect {
  fill: var(--source);
  stroke: #8badf3;
}

.relation-map .core rect {
  fill: var(--editorial-blue);
  stroke: var(--editorial-blue);
}

.archive-band,
.closing {
  background: var(--ink);
}

.archive-band p,
.closing p {
  color: #d8d8d8;
}

.archive-band h2,
.closing h2 {
  font-size: 40px;
  line-height: .95;
}

.footer {
  border-top: 1px solid var(--line);
}

@media (max-width: 960px) {
  .hero-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

@media (max-width: 680px) {
  .brand {
    font-size: 20px;
  }

  .hero {
    padding-top: 48px;
    padding-bottom: 32px;
  }

  .hero h1 {
    font-size: 58px;
    line-height: .84;
  }

  .hero > p,
  .hero .lead {
    font-size: 15px;
  }

  .report-heading h2,
  .summary-top h2,
  .section-head h2,
  .limits h2 {
    font-size: 36px;
  }

  .archive-band h2,
  .closing h2 {
    font-size: 34px;
  }
}

/* Readability floor shared by briefs, ledgers, and full analysis records. */
body { font-size: 17px; }

.site-header nav,
.button,
.text-link,
.closing .text-link { font-size: 15px; }

.hero > p,
.hero .lead { font-size: 19px; }

.record-note strong,
.report-heading p,
.section-head p,
.summary-top p { font-size: 16px; }

.report-category,
.metric span,
.brief-grid p,
.section p,
.question span,
.status,
.lane-row p,
.lane-row a,
.method p,
.not-list p,
details p,
.ledger-columns p,
.ledger-columns a,
.summary-bottom p,
.signal-row p,
.signal-row a,
.map-copy > p,
.map-key dd,
.question-step p,
.step-cell strong,
.source-band a,
.method-item strong,
.method-item p,
.planning-note dd,
.meeting-question p,
.limit-list p { font-size: 15px; }

.question strong,
.lane-row strong,
.method h3,
.not-list strong,
summary,
.summary-bottom h3,
.window-grid strong,
.signal-row h3,
.map-key dt,
.question-step h3,
.planning-note h3,
.limit-list strong { font-size: 17px; }

.report-topline,
.label,
.meta-line,
.ledger-meta,
.window-grid span,
.method-item span,
.planning-note dt,
.step-number,
.step-cell span,
.source-band span,
.footer { font-size: 14px; }

.status-line,
.matrix-row > div,
.matrix-row strong { font-size: 15px; }

@media (max-width: 680px) {
  body { font-size: 16px; }
  .site-header nav,
  .button,
  .text-link { font-size: 14px; }
  .hero > p,
  .hero .lead { font-size: 17px; }
  .report-heading p,
  .brief-grid p,
  .section p,
  .ledger-columns p,
  .summary-top p,
  .summary-bottom p,
  .signal-row p,
  .question-step p,
  .step-cell strong,
  .method-item p,
  .limit-list p { font-size: 15px; }
  .report-topline,
  .label,
  .meta-line,
  .ledger-meta,
  .footer { font-size: 13px; }
}
