:root{
/* Families */
--font-display:"Archivo","Helvetica Neue",Arial,sans-serif;
--font-sans:"Archivo","Helvetica Neue",Arial,sans-serif;
--font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
--font-serif:"Newsreader",Georgia,"Times New Roman",serif;

/* Size scale — ~1.25 ratio, hand-corrected for UI legibility */
--text-2xs:10px;--text-xs:11px;--text-sm:13px;--text-base:15px;--text-md:17px;
--text-lg:20px;--text-xl:25px;--text-2xl:31px;--text-3xl:39px;--text-4xl:49px;
--text-5xl:62px;--text-6xl:78px;

/* Weights */
--weight-light:300;--weight-regular:400;--weight-medium:500;
--weight-semibold:600;--weight-bold:700;--weight-black:800;

/* Line heights */
--leading-none:1;--leading-tight:1.14;--leading-snug:1.3;
--leading-normal:1.55;--leading-relaxed:1.7;

/* Tracking — display tightens, mono eyebrows open right up */
--tracking-display:-.03em;--tracking-heading:-.022em;--tracking-normal:0;
--tracking-wide:.04em;--tracking-eyebrow:.16em;--tracking-caps:.22em;

/* Archivo width axis — the display voice widens, UI stays normal */
--width-display:112; /* @kind other */
--width-normal:100; /* @kind other */
--width-condensed:88; /* @kind other */

/* Composed roles */
--type-display:var(--weight-bold) var(--text-5xl)/var(--leading-tight) var(--font-display);
--type-h1:var(--weight-bold) var(--text-3xl)/var(--leading-tight) var(--font-display);
--type-h2:var(--weight-bold) var(--text-2xl)/var(--leading-snug) var(--font-display);
--type-h3:var(--weight-semibold) var(--text-lg)/var(--leading-snug) var(--font-sans);
--type-h4:var(--weight-semibold) var(--text-md)/var(--leading-snug) var(--font-sans);
--type-body:var(--weight-regular) var(--text-base)/var(--leading-normal) var(--font-sans);
--type-body-sm:var(--weight-regular) var(--text-sm)/var(--leading-normal) var(--font-sans);
--type-ui:var(--weight-medium) var(--text-sm)/1.2 var(--font-sans);
--type-caption:var(--weight-regular) var(--text-xs)/var(--leading-snug) var(--font-sans);
--type-eyebrow:var(--weight-semibold) var(--text-2xs)/1 var(--font-mono);
--type-data:var(--weight-medium) var(--text-sm)/1.5 var(--font-mono);
--type-metric:var(--weight-semibold) var(--text-3xl)/1 var(--font-display);
--type-quote:var(--weight-regular) var(--text-xl)/var(--leading-snug) var(--font-serif);
}
