:root{
--font-display:"Manrope","Neue Montreal","Helvetica Neue",Arial,sans-serif;
--font-body:"General Sans","Manrope", "Manrope","Helvetica Neue",Arial,sans-serif;
--font-mono:"JetBrains Mono","Söhne Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

--weight-regular:400;
--weight-medium:500;
--weight-semibold:600;
--weight-bold:700;
--weight-extrabold:800;

/* Display scale — tight tracking, tight leading, engineered feel */
--text-display-1:clamp(48px,6.4vw,96px);
--text-display-2:clamp(40px,4.8vw,68px);
--text-display-3:clamp(32px,3.4vw,48px);
--text-heading-1:32px;
--text-heading-2:24px;
--text-heading-3:20px;
--text-body-lg:18px;
--text-body:16px;
--text-body-sm:14px;
--text-caption:13px;
--text-label:11px;

--leading-tight:0.98;
--leading-snug:1.1;
--leading-heading:1.2;
--leading-body:1.55;
--leading-relaxed:1.7;

--tracking-hero:-0.04em;
--tracking-display:-0.03em;
--tracking-heading:-0.02em;
--tracking-body:0;
--tracking-label:0.08em;
--tracking-mono:0.02em;

/* Semantic type aliases */
/* Hero statements: Manrope 800, -0.04em, near-solid leading. Pair with letter-spacing:var(--tracking-hero). */
--type-hero:var(--weight-extrabold) var(--text-display-1)/var(--leading-tight) var(--font-display);
--type-display-2:var(--weight-extrabold) var(--text-display-2)/var(--leading-tight) var(--font-display);
--type-section:var(--weight-medium) var(--text-display-3)/var(--leading-snug) var(--font-display);
--type-h1:var(--weight-medium) var(--text-heading-1)/var(--leading-heading) var(--font-display);
--type-h2:var(--weight-medium) var(--text-heading-2)/var(--leading-heading) var(--font-display);
--type-h3:var(--weight-semibold) var(--text-heading-3)/var(--leading-heading) var(--font-body);
--type-body:var(--weight-regular) var(--text-body)/var(--leading-body) var(--font-body);
--type-body-sm:var(--weight-regular) var(--text-body-sm)/var(--leading-body) var(--font-body);
--type-data:var(--weight-medium) var(--text-body-sm)/1.4 var(--font-mono);
--type-eyebrow:var(--weight-medium) var(--text-label)/1.2 var(--font-mono);
}
