/* ───────────────────────────────────────────────────────────────
   Freedcamp — Typography tokens
   Inter at small, dense, UI-oriented sizes. Semibold (600) is the
   workhorse weight for headings and emphasis; 14px is the body base.
   ─────────────────────────────────────────────────────────────── */
:root {
  /* Weights */
  --fw-regular: 400; /* @kind font */
  --fw-medium: 500; /* @kind font */
  --fw-semibold: 600; /* @kind font */
  --fw-bold: 700; /* @kind font */

  /* Type scale (px values reflect the product's dense UI) */
  --fs-xs: 10px; /* micro labels, badges */
  --fs-sm: 12px; /* meta, captions, tags */
  --fs-base: 14px; /* body / default UI text */
  --fs-md: 16px; /* emphasized body, list titles */
  --fs-lg: 18px; /* card / section subtitles */
  --fs-xl: 20px; /* widget headings */
  --fs-2xl: 24px; /* page headings */
  --fs-3xl: 32px; /* hero / empty-state titles */

  /* Line heights */
  --lh-tight: 1.2; /* @kind font */
  --lh-snug: 1.35; /* @kind font */
  --lh-normal: 1.5; /* @kind font */

  /* Letter spacing */
  --ls-tight: -0.01em; /* @kind font */
  --ls-normal: 0; /* @kind font */
  --ls-wide: 0.02em; /* @kind font */

  /* Composed roles */
  --text-h1: var(--fw-semibold) var(--fs-2xl) / var(--lh-tight) var(--font-sans);
  --text-h2: var(--fw-semibold) var(--fs-xl) / var(--lh-snug) var(--font-sans);
  --text-h3: var(--fw-semibold) var(--fs-md) / var(--lh-snug) var(--font-sans);
  --text-body: var(--fw-regular) var(--fs-base) / var(--lh-normal) var(--font-sans);
  --text-body-strong: var(--fw-semibold) var(--fs-base) / var(--lh-normal) var(--font-sans);
  --text-meta: var(--fw-regular) var(--fs-sm) / var(--lh-snug) var(--font-sans);
  --text-label: var(--fw-bold) var(--fs-xs) / var(--lh-tight) var(--font-sans);
}
