/* ============================================================
   TYPOGRAPHY — Supplement Brand Accelerator
   One workhorse grotesque (Hanken) across display + body, with
   weight + size contrast doing the heavy lifting. Mono for
   numerics/metrics. Tight, confident headlines; relaxed body.
   ============================================================ */

:root {
  /* Brand Principles: Helvetica Neue (UI/body) · Newsreader (one statement/page) · JetBrains Mono (data) */
  --font-sans: 'Inter', 'Helvetica Neue', Helvetica, Arial, ui-sans-serif, system-ui, -apple-system, sans-serif;
  --font-serif: var(--font-sans);  /* serif RETIRED 2026-08-05 — two-font system; alias keeps stragglers safe */
  --font-mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  /* ---- Weights ---- */
  --fw-light: 300;      /* @kind font */
  --fw-regular: 400;    /* @kind font */
  --fw-medium: 500;     /* @kind font */
  --fw-semibold: 600;   /* @kind font */
  --fw-bold: 700;       /* @kind font */
  --fw-extrabold: 800;  /* @kind font */

  /* ---- Display scale (fluid, for marketing) ---- */
  --text-display-2xl: clamp(3rem, 1.6rem + 6vw, 6rem);      /* @kind other */
  --text-display-xl:  clamp(2.5rem, 1.4rem + 4.6vw, 4.5rem);  /* @kind other */
  --text-display-lg:  clamp(2rem, 1.3rem + 3vw, 3.25rem);     /* @kind other */
  --text-display-md:  clamp(1.75rem, 1.2rem + 2vw, 2.5rem);   /* @kind other */

  /* ---- UI / body scale (fixed) ---- */
  --text-2xl: 1.5rem;    /* 24 */
  --text-xl:  1.25rem;   /* 20 */
  --text-lg:  1.125rem;  /* 18 */
  --text-md:  1rem;      /* 16 — base */
  --text-sm:  0.875rem;  /* 14 */
  --text-xs:  0.75rem;   /* 12 */
  --text-2xs: 0.6875rem; /* 11 — eyebrows / labels */

  /* ---- Line heights ---- */
  --leading-tight: 1.04;
  --leading-snug: 1.18;
  --leading-normal: 1.5;
  --leading-relaxed: 1.65;

  /* ---- Tracking ---- */
  --tracking-tighter: -0.03em;
  --tracking-tight: -0.015em;
  --tracking-normal: 0;
  --tracking-wide: 0.04em;
  --tracking-eyebrow: 0.12em;  /* uppercase eyebrows */

  /* ---- Semantic roles ---- */
  --role-hero-size: var(--text-display-2xl);
  --role-hero-weight: var(--fw-extrabold);
  --role-hero-leading: var(--leading-tight);
  --role-hero-tracking: var(--tracking-tighter);

  --role-eyebrow-size: var(--text-2xs);
  --role-eyebrow-weight: var(--fw-bold);
  --role-eyebrow-tracking: var(--tracking-eyebrow);

  --role-body-size: var(--text-md);
  --role-body-leading: var(--leading-relaxed);
  --role-body-weight: var(--fw-regular);
}
