:root{
/* three faces, three jobs: serif states, sans explains, mono measures */
--font-serif-display:"Source Serif 4",Georgia,"Times New Roman",serif;
--font-sans:"Geist","Neue Haas Grotesk Display","Helvetica Neue",Arial,sans-serif;
--font-mono:"Geist Mono",ui-monospace,"SF Mono",monospace;
--font-core:var(--font-sans);

--weight-body:400;
--weight-ui:500;
--weight-heading:600;

/* display sizes — the site runs a wide clamp; the hero is meant to fill the frame */
--size-hero:clamp(48px,8.4vw,158px);
--size-display:clamp(40px,5.4vw,88px);
--size-headline:clamp(30px,3.6vw,54px);
--size-subhead:clamp(22px,2vw,30px);
--size-stat:clamp(28px,2.7vw,40px);
--size-figure:clamp(40px,5vw,76px);

--size-body-lg:18px;
--size-body:17px;
--size-body-sm:15px;
--size-data:13px;
--size-label:10px;
--size-label-lg:11px;
--size-micro:9px;

--leading-hero:0.86;
--leading-display:0.94;
--leading-headline:1.04;
--leading-body:1.7;
--leading-body-lg:1.65;
--leading-tight:1.35;
--leading-flush:1;

--tracking-hero:-0.038em;
--tracking-display:-0.03em;
--tracking-headline:-0.024em;
--tracking-stat:-0.024em;
--tracking-body:0;
--tracking-label:0.18em;
--tracking-label-lg:0.16em;
--tracking-micro:0.17em;

/* measure caps — statements run short, prose never full-width */
--measure:58ch;
--measure-lede:52ch;
--measure-headline:20ch;
--measure-hero:15ch;

/* composed roles */
--text-hero:var(--weight-heading) var(--size-hero)/var(--leading-hero) var(--font-serif-display);
--text-display:var(--weight-heading) var(--size-display)/var(--leading-display) var(--font-serif-display);
--text-headline:var(--weight-heading) var(--size-headline)/var(--leading-headline) var(--font-serif-display);
--text-subhead:var(--weight-heading) var(--size-subhead)/1.18 var(--font-serif-display);
--text-stat:var(--weight-heading) var(--size-stat)/var(--leading-flush) var(--font-serif-display);
--text-figure:var(--weight-heading) var(--size-figure)/var(--leading-flush) var(--font-serif-display);
--text-body-role:var(--weight-body) var(--size-body)/var(--leading-body) var(--font-sans);
--text-lede-role:var(--weight-body) var(--size-body-lg)/var(--leading-body-lg) var(--font-sans);
--text-label-role:var(--weight-body) var(--size-label)/1.4 var(--font-mono);
--text-data-role:var(--weight-body) var(--size-data)/1.5 var(--font-mono);
}
h1,h2,h3{font-family:var(--font-serif-display);font-weight:var(--weight-heading);letter-spacing:var(--tracking-headline)}
