/* ── Typography tokens ─────────────────────────────────────────────────────
   Two weights only: 400 (body/UI) and 600 (headings). 480 is a special display
   weight. Letter-spacing scales NEGATIVE with size; body stays at normal. */
:root {
  /* Family — Camera Plain Variable substituted by Hanken Grotesk */
  --font-sans: "Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, sans-serif;
  --font-display: var(--font-sans);

  /* Weights */
  --weight-body: 400;
  --weight-display-light: 480;  /* special display moments only */
  --weight-heading: 600;        /* maximum weight in the system — never 700 */

  /* Type scale (px) */
  --size-display: 60px;   /* hero */
  --size-section: 48px;   /* section heading */
  --size-subhead: 36px;   /* sub-heading */
  --size-card-title: 20px;
  --size-body-lg: 18px;
  --size-body: 16px;
  --size-small: 14px;     /* captions, small links/buttons */

  /* Line heights */
  --lh-display: 1.1; /* @kind other */
  --lh-tight: 1.0; /* @kind other */
  --lh-snug: 1.25; /* @kind other */
  --lh-body-lg: 1.38; /* @kind other */
  --lh-body: 1.5; /* @kind other */

  /* Letter spacing — tightens as size grows */
  --ls-display: -1.5px;   /* 60px */
  --ls-section: -1.2px;   /* 48px */
  --ls-subhead: -0.9px;   /* 36px */
  --ls-normal: normal; /* @kind other */


  /* ── Semantic roles ── */
  --text-hero-size: var(--size-display);
  --text-hero-weight: var(--weight-heading);
  --text-hero-ls: var(--ls-display);
  --text-hero-lh: var(--lh-display);
}
