/* ============================================================
   ScaleRetain — Typography tokens
   Geist (neutral grotesque) for everything; Geist Mono for
   numerals, eyebrow labels and code. Tight display headings,
   relaxed body. Matches the SF-Pro-like feel of the site.
   ============================================================ */
:root {
  /* Families */
  --font-sans: 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-mono: 'Geist Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --font-display: var(--font-sans);

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

  /* Fluid display scale (hero / section titles) */
  --fs-display-2xl: clamp(3rem, 1.8rem + 5.2vw, 5.5rem);   /* @kind other */
  --fs-display-xl:  clamp(2.5rem, 1.6rem + 3.8vw, 4rem);   /* @kind other */
  --fs-display-lg:  clamp(2rem, 1.4rem + 2.6vw, 3rem);     /* @kind other */
  --fs-display-md:  clamp(1.6rem, 1.2rem + 1.6vw, 2.25rem);/* @kind other */

  /* Static text scale */
  --fs-xs:   0.75rem;   /* 12 */
  --fs-sm:   0.875rem;  /* 14 */
  --fs-base: 1rem;      /* 16 */
  --fs-md:   1.125rem;  /* 18 */
  --fs-lg:   1.25rem;   /* 20 */
  --fs-xl:   1.5rem;    /* 24 */
  --fs-2xl:  1.875rem;  /* 30 */

  /* Line heights */
  --lh-tight:   1.04;   /* @kind other */
  --lh-snug:    1.2;    /* @kind other */
  --lh-normal:  1.5;    /* @kind other */
  --lh-relaxed: 1.65;   /* @kind other */

  /* Letter spacing */
  --ls-tighter: -0.03em;  /* @kind other */
  --ls-tight:   -0.018em; /* @kind other */
  --ls-normal:  0em;      /* @kind other */
  --ls-wide:    0.04em;   /* @kind other */
  --ls-eyebrow: 0.14em;   /* @kind other */

  /* Semantic roles */
  --text-eyebrow-size: var(--fs-xs);
  --text-body-size:    var(--fs-md);
  --text-label-size:   var(--fs-sm);
}
