/* CommiTea typography tokens. Voices: Display serif (headlines, big numerals) · Reginald's voice (Caslon Text, upright) · Body sans (UI) · Mono (data: labels, estimates, dates, ids). */ :root { --font-serif-display: 'Libre Caslon Display', 'Libre Caslon Text', Georgia, serif; --font-serif-text: 'Libre Caslon Text', Georgia, serif; --font-sans: 'Instrument Sans', -apple-system, 'Segoe UI', sans-serif; --font-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', monospace; /* type scale */ --text-hero: 400 48px/1.08 var(--font-serif-display); /* big forecast numerals */ --text-display: 400 34px/1.15 var(--font-serif-display); /* page titles */ --text-title: 400 24px/1.2 var(--font-serif-display); /* card titles */ --text-agent: 400 16px/1.55 var(--font-serif-text); /* Reginald speaks — serif, upright */ --text-agent-lg: 400 20px/1.5 var(--font-serif-text); --text-body: 400 14px/1.5 var(--font-sans); --text-body-strong: 600 14px/1.5 var(--font-sans); --text-small: 400 13px/1.45 var(--font-sans); --text-caption: 400 12px/1.4 var(--font-sans); --text-data: 400 13px/1.4 var(--font-mono); /* dates, counts */ --text-label: 500 11.5px/1 var(--font-mono); /* chips: est/2d, p/1 */ --text-overline: 600 11px/1.2 var(--font-sans); /* + letter-spacing-wide */ /* tracking */ --letter-spacing-wide: 0.08em; /* overlines, uppercase */ --letter-spacing-label: 0.02em; /* mono chips */ /* weights (sans is variable 400–700) */ --weight-regular: 400; --weight-medium: 500; --weight-semibold: 600; --weight-bold: 700; }