/* ============================================================
   CCSentry — Typography tokens
   Hanken Grotesk (UI/body/display) + Spline Sans Mono (data/audit).
   Mono is intentional: claim IDs, $ exposure, dates, codes read as
   "audit evidence", reinforcing the compliance posture.
   ============================================================ */

:root {
  /* Families */
  --font-sans: 'Hanken Grotesk', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'Spline Sans Mono', ui-monospace, 'SF Mono', 'Cascadia Code', monospace;
  --font-display: var(--font-sans);

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

  /* Type scale (px → rem at 16px base) */
  --text-2xs: 0.6875rem;  /* 11 — micro labels, table meta */
  --text-xs:  0.75rem;    /* 12 — captions, badges */
  --text-sm:  0.8125rem;  /* 13 — dense UI, secondary */
  --text-base:0.875rem;   /* 14 — default body/UI */
  --text-md:  1rem;       /* 16 — comfortable body */
  --text-lg:  1.125rem;   /* 18 — lead, card titles */
  --text-xl:  1.375rem;   /* 22 — section headings */
  --text-2xl: 1.75rem;    /* 28 — page titles */
  --text-3xl: 2.25rem;    /* 36 — display small */
  --text-4xl: 3rem;       /* 48 — display */
  --text-5xl: 3.75rem;    /* 60 — hero */
  --text-6xl: 4.5rem;     /* 72 — hero large */

  /* Line heights */
  --leading-tight:   1.1;
  --leading-snug:    1.25;
  --leading-normal:  1.5;
  --leading-relaxed: 1.65;

  /* Letter spacing */
  --tracking-tight:  -0.02em;   /* display / large headings */
  --tracking-snug:   -0.01em;   /* headings */
  --tracking-normal: 0;
  --tracking-wide:   0.04em;    /* eyebrows, all-caps labels */
  --tracking-mono:   -0.01em;   /* tabular data */

  /* Semantic roles */
  --type-hero:        var(--fw-extrabold) var(--text-5xl)/var(--leading-tight) var(--font-display);
  --type-display:     var(--fw-bold) var(--text-4xl)/var(--leading-tight) var(--font-display);
  --type-page-title:  var(--fw-bold) var(--text-2xl)/var(--leading-snug) var(--font-display);
  --type-section:     var(--fw-semibold) var(--text-xl)/var(--leading-snug) var(--font-sans);
  --type-card-title:  var(--fw-semibold) var(--text-lg)/var(--leading-snug) var(--font-sans);
  --type-body:        var(--fw-regular) var(--text-base)/var(--leading-normal) var(--font-sans);
  --type-body-lg:     var(--fw-regular) var(--text-md)/var(--leading-relaxed) var(--font-sans);
  --type-label:       var(--fw-semibold) var(--text-sm)/var(--leading-snug) var(--font-sans);
  --type-caption:     var(--fw-medium) var(--text-xs)/var(--leading-snug) var(--font-sans);
  --type-mono:        var(--fw-medium) var(--text-sm)/var(--leading-snug) var(--font-mono);
  --type-mono-lg:     var(--fw-semibold) var(--text-xl)/var(--leading-snug) var(--font-mono);
}
