/* ============================================================
   DOMAIN · TYPOGRAPHY TOKENS
   Geist for UI/text, Geist Mono for data, codes, identifiers.
   ============================================================ */
:root {
  --font-sans: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "Geist Mono", ui-monospace, "SFMono-Regular", "Menlo", monospace;

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

  /* Type scale (desktop-first, dense-but-comfortable) */
  --text-2xs:  11px;   /* micro labels, table meta */
  --text-xs:   12px;   /* pills, captions, secondary meta */
  --text-sm:   13px;   /* dense UI default (rows, controls) */
  --text-base: 14px;   /* body / primary UI text */
  --text-md:   16px;   /* emphasised body, section leads */
  --text-lg:   18px;   /* card titles */
  --text-xl:   22px;   /* panel / view titles */
  --text-2xl:  28px;   /* page headers */
  --text-3xl:  36px;   /* greetings, hero numbers */
  --text-4xl:  46px;   /* display */

  /* Line heights */
  --leading-tight:   1.15;
  --leading-snug:    1.3;
  --leading-normal:  1.5;
  --leading-relaxed: 1.65;

  /* Letter spacing */
  --tracking-tight:  -0.02em;
  --tracking-snug:   -0.01em;
  --tracking-normal: 0;
  --tracking-wide:   0.02em;
  --tracking-caps:   0.06em;  /* uppercase eyebrows / section labels */

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