/* ============================================================
   Grand Massif — Typography
   Display & UI: IBM Plex Sans. Data / technical labels: IBM Plex Mono.
   Institutional voice = confident, structured, engineering-precise.
   ============================================================ */
:root {
  --font-sans: "IBM Plex Sans", ui-sans-serif, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;

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

  /* Type scale (1.250 major-third-ish, tuned for institutional layouts) */
  --fs-display: 4.5rem;   /* 72 — deck covers / hero */
  --fs-h1: 3rem;          /* 48 */
  --fs-h2: 2.25rem;       /* 36 */
  --fs-h3: 1.625rem;      /* 26 */
  --fs-h4: 1.25rem;       /* 20 */
  --fs-lead: 1.25rem;     /* 20 — intro paragraphs */
  --fs-body: 1rem;        /* 16 */
  --fs-sm: 0.875rem;      /* 14 */
  --fs-xs: 0.75rem;       /* 12 */
  --fs-eyebrow: 0.8125rem;/* 13 — wide-tracked label */

  /* Line heights */
  --lh-tight: 1.06; /* @kind other */
  --lh-heading: 1.14; /* @kind other */
  --lh-snug: 1.35; /* @kind other */
  --lh-body: 1.6; /* @kind other */

  /* Letter spacing */
  --ls-display: -0.02em; /* @kind other */
  --ls-heading: -0.01em; /* @kind other */
  --ls-body: 0; /* @kind other */
  --ls-eyebrow: 0.18em; /* @kind other */
  --ls-mono: 0.02em; /* @kind other */

  /* Semantic aliases */
  --text-display-family: var(--font-sans);
  --text-heading-family: var(--font-sans);
  --text-body-family:    var(--font-sans);
  --text-data-family:    var(--font-mono);
}
