/* =========================================================================
   THE TYPE SCALE · eight steps, each with one job
   Loaded last, so this file is the single authority on size and weight.
   Before it, the page used 23 distinct sizes and ranked its headings by
   accident: the contact placeholder was set at 112px and the demo invitation
   at 101px, while the thesis — the actual argument — got 92px and the
   baseline 58px. Sections are told apart here by position, ground and
   colour, which the grid and the palette already do. Size is not asked to
   carry that too, so every heading on the page is one size.
   ========================================================================= */
:root{
  /* The hero stylesheet sets the final opening scale. */
  --t-display:clamp(72px,min(11.5vw,21vh),176px);
  --t-display-2:var(--t-display);

  --t-h2:clamp(38px,5vw,72px);   /* every heading on the page */
  --t-h3:clamp(19px,1.9vw,26px); /* the four channel names */
  --t-h4:19px;                   /* item titles inside dense lists */
  --t-body:17px;                 /* running prose */
  --t-small:13.5px;              /* item text in multi-column lists, captions */
  --t-micro:11px;                /* labels: mono eyebrows, chart annotation, nav numerals */

  /* Controls sit at the small step rather than owning one. Nav links, the
     hero button and the demo button were at 13, 13 and 14px — three sizes
     for one job, told apart by nothing a reader could use. They are already
     distinguished by ground, underline and colour. */
  --t-ui:var(--t-small);
}

/* ---- display: the hero ------------------------------------------------- */
.title .hero-beyond{font-size:var(--t-display-2)}
.title h1 em{font-size:var(--t-display)}
/* Both words at full strength. The smaller one had been set in --text-2, so
   the phrase was dim exactly where it carries its meaning. */
.title h1,.title h1 .hero-beyond,.title h1 em{color:var(--text)}

/* ---- one heading size -------------------------------------------------- */
/* The beat captions are the headings of the scroll stage, so they take the
   same step — but they sit in a sticky 100vh frame rather than a scrolling
   band, so the step is capped by the height actually available. Without the
   cap the longest caption ran 17px past the fold at 1440x700. */
.measurement-thesis h2,
.base#base .quiet-reference,
.output#output h2,
.output#output.demo-invitation h2,
.evidence-head h2,
.end-copy h2{font-size:var(--t-h2)}
.cap .cap-h{font-size:min(var(--t-h2),9vh)}
.cap .cap-h,
.measurement-thesis h2,
.base#base .quiet-reference,
.output#output h2,
.output#output.demo-invitation h2,
.evidence-head h2,
.end-copy h2{font-weight:400;line-height:1;letter-spacing:-.045em}
/* The evidence heading was the only 600 on a page otherwise entirely 400,
   which read as a slip rather than as emphasis. */

/* ---- sub-heads --------------------------------------------------------- */
.scale h3,
.efile-name{font-size:var(--t-h3)}
.pass-list b,
.contact-placeholder{font-size:var(--t-h4)}

/* ---- prose ------------------------------------------------------------- */
.hero-cta,
.cap p,
.relations-interlude .thesis-note,
.relations-interlude .relations-purpose,
.measurement-boundary,
.plate-k,
.base#base .baseline-intro,
.base#base .base-foot,
.pass .pass-foot,
.output#output.demo-invitation .output-intro,
.output#output.demo-invitation .local-note,
.output#output.demo-invitation .demo-lead,
.evidence-lede p,
.end-copy.contact-copy>p:not(.contact-status){font-size:var(--t-body)}

/* Item text inside dense multi-column lists stays at the small step: these
   sit in four- and five-column runs where body size would wrap to three
   words a line. */
.ch-head>p,
.pass-list span,
.efile-role,
.demo-invitation .board-cap-k,
.demo-invitation figcaption p,
.plate-spec dt,
.end-fine span,
.evidence-report-note,
.plate-spec dd,
.base#base .baseline-note,
.base#base .baseline-illustration figcaption,
.base#base .f-sub,
.base#base .reference-windows,
.method-detail summary,
.demo-entry p,
.end-copy .contact-status,
.contact-kind{font-size:var(--t-small)}

/* ---- mono labels ------------------------------------------------------- */
.ch-no,
.efile-count,
/* Set one step above --t-micro: these run vertically, and a vertical 11px
   mono label is read letter-by-letter rather than scanned. */
.ch-lanes>li>span{font-size:12px}
