:root {
  /* Display scale — Source Serif 4 at 600. Fluid, so one token serves every
     breakpoint; the mobile/tablet steps below are the legacy fixed ladder. */
  --text-hero: clamp(44px, 5.4vw, 104px);      /* page-owning headline */
  --text-h2: clamp(28px, 3.1vw, 56px);         /* section title */
  --text-h3: clamp(19px, 1.4vw, 26px);         /* card / stage title */
  --text-figure: clamp(22px, 1.9vw, 30px);     /* a number in a figure row */
  --text-figure-hero: clamp(46px, 5.6vw, 92px);/* the one number a page is about */
  --tracking-hero: -0.028em;
  --tracking-h2: -0.022em;
  --leading-hero: 1.02;
  --leading-h2: 1.1;

  /* Legacy fixed display ladder (Karla) — ui_kits/marketing-site only */
  --text-display: 66px;
  --text-display-tablet: 48px;
  --text-display-mobile: 36px;
  --text-display-lh: 1.1;
  --text-subhead: 32px;

  /* Portal scale (Geist) */
  --text-page-title: 20px;        /* dashboard top bar */
  --text-page-title-legacy: 24px; /* deposit/statements top bar */
  --text-auth-title: 1.85rem;
  --text-card-title: 18px;
  --text-stat-hero: 38px;
  --text-stat: 30px;
  --text-section-title: 15px;
  --text-body: 16px;
  --text-body-sm: 14px;
  --text-label: 12px;
  --text-eyebrow: 11.5px;
  --text-nav-eyebrow: 11px;

  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;

  /* Tracking — negative on headings, wide on eyebrows */
  --tracking-tight: -0.025em;
  --tracking-title: -0.02em;
  --tracking-body: -0.005em;
  --tracking-eyebrow: 0.1em;
  --tracking-eyebrow-wide: 0.18em;   /* section eyebrows */
  --tracking-eyebrow-label: 0.13em;  /* table headers, field labels */
  --tracking-nav-eyebrow: 0.5px;
  --tracking-code: 0.3em;

  --leading-tight: 1.15;
  --leading-snug: 1.45;
  --leading-body: 1.6;
  --leading-nav: 126%;
}
