/* ============================================================
   Numeris — Typography tokens
   Display/Heading: Outfit · Body/UI: Hanken Grotesk · Mono: JetBrains Mono
   ============================================================ */

:root {
  /* ---- Families -------------------------------------------- */
  --font-display: 'Outfit', system-ui, sans-serif;
  --font-body: 'Hanken Grotesk', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', monospace;

  /* ---- Weights --------------------------------------------- */
  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;   /* Outfit Medium — logo weight */
  --weight-semibold: 600;
  --weight-bold: 700;

  /* ---- Type scale (px → rem, 16px base) -------------------- */
  --text-xs: 0.75rem;     /* 12 */
  --text-sm: 0.875rem;    /* 14 */
  --text-base: 1rem;      /* 16 */
  --text-md: 1.125rem;    /* 18 */
  --text-lg: 1.375rem;    /* 22 */
  --text-xl: 1.75rem;     /* 28 */
  --text-2xl: 2.25rem;    /* 36 */
  --text-3xl: 3rem;       /* 48 */
  --text-4xl: 4rem;       /* 64 */
  --text-5xl: 5.25rem;    /* 84 */

  /* ---- Line heights ---------------------------------------- */
  --leading-tight: 1.05;
  --leading-snug: 1.2;
  --leading-normal: 1.5;
  --leading-relaxed: 1.65;

  /* ---- Letter spacing -------------------------------------- */
  --tracking-tight: -0.03em;   /* large display */
  --tracking-snug: -0.015em;   /* headings */
  --tracking-normal: 0em;
  --tracking-wide: 0.04em;
  --tracking-caps: 0.12em;     /* eyebrow / all-caps labels */

  /* ---- Semantic roles -------------------------------------- */
  --role-display-font: var(--font-display);
  --role-heading-font: var(--font-display);
  --role-body-font: var(--font-body);
  --role-label-font: var(--font-body);
  --role-mono-font: var(--font-mono);
}
