/* enkali · Typography tokens
   Two-font system:
   • Outfit (geometric grotesque) — wordmark + display headings only. Brand voice.
   • Inter (neutral grotesque)    — body, UI, labels, data. Compact & legible at
                                    small sizes; real tabular figures for finance.
   Both loaded from Google Fonts. For offline/self-hosted, drop .woff2 files in
   assets/fonts and replace these @imports with @font-face rules. */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root {
  /* ---- Families ---- */
  --font-head: 'Outfit', ui-sans-serif, system-ui, sans-serif;     /* headings + wordmark */
  --font-text: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; /* body + UI */
  --font-wordmark: var(--font-head);
  /* Back-compat alias: --font-sans now resolves to the text (Inter) family.
     Use --font-head explicitly for headings. */
  --font-sans: var(--font-text);

  /* Weights */
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600; /* display + wordmark */
  --weight-bold: 700;

  /* Type scale. Body/UI (sm, base) trimmed for Inter's x-height; headings
     (lg–) contracted a step for a tighter, more compact feel. */
  --text-xs: 0.71875rem;    /* 11.5 — captions/badges */
  --text-sm: 0.78125rem;    /* 12.5 — body/UI text */
  --text-base: 0.8125rem;   /* 13 — body */
  --text-lg: 1rem;          /* 16 */
  --text-xl: 1.125rem;      /* 18 */
  --text-2xl: 1.3125rem;    /* 21 */
  --text-3xl: 1.625rem;     /* 26 */
  --text-4xl: 2rem;         /* 32 */
  --text-5xl: 2.5rem;       /* 40 */
  --text-6xl: 3.25rem;      /* 52 */

  /* Line heights */
  --leading-tight: 1.1;
  --leading-snug: 1.25;
  --leading-normal: 1.45;
  --leading-relaxed: 1.6;

  /* Letter spacing */
  --tracking-wordmark: -0.03em; /* the enkali wordmark */
  --tracking-display: -0.02em;  /* headlines */
  --tracking-normal: 0em;
  --tracking-wide: 0.04em;
  --tracking-caps: 0.14em;      /* eyebrow / overline labels */

  /* Semantic type roles (family baked in: display→Outfit, text→Inter) */
  --font-display: var(--weight-semibold) var(--text-4xl)/var(--leading-tight) var(--font-head);
  --font-title:   var(--weight-semibold) var(--text-2xl)/var(--leading-snug) var(--font-head);
  --font-body:    var(--weight-regular) var(--text-base)/var(--leading-normal) var(--font-text);
  --font-body-medium: var(--weight-medium) var(--text-base)/var(--leading-normal) var(--font-text);
  --font-caption: var(--weight-medium) var(--text-sm)/var(--leading-normal) var(--font-text);
}
