/* ============================================================
   ModigenceVision — Typography
   ENGLISH-FIRST, collaboration-safe. IBM Plex Sans carries Latin
   — a widely-available, free, professional grotesk (Google Fonts,
   Google Slides, PowerPoint) that shares a family with IBM Plex
   Mono for system coherence. Noto Sans KR carries Korean via
   per-glyph fallback. IBM Plex Mono for figures/data (tabular).
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=Noto+Sans+KR:wght@400;500;700;900&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root {
  /* ---- Families ----
     IBM Plex Sans (EN, primary) · Noto Sans KR (KR) · IBM Plex Mono (data).
     --font-sans / --font-display lead with the English (Latin) set;
     browsers fall back to Noto Sans KR per-glyph for Hangul, so a
     bilingual line renders Latin in IBM Plex Sans + Korean in Noto.
     Use --font-kr only when a Korean-only block must lead with Noto. */
  --font-en:   'IBM Plex Sans', system-ui, sans-serif;
  --font-kr:   'Noto Sans KR', -apple-system, 'Apple SD Gothic Neo',
               'Malgun Gothic', sans-serif;
  --font-sans: 'IBM Plex Sans', 'Noto Sans KR', -apple-system,
               'Apple SD Gothic Neo', 'Segoe UI', system-ui, sans-serif;
  --font-display: 'IBM Plex Sans', 'Noto Sans KR', -apple-system,
                  'Apple SD Gothic Neo', system-ui, sans-serif;
  --font-mono: 'IBM Plex Mono', 'SFMono-Regular', ui-monospace, Menlo, monospace;

  /* ---- Weights (IBM Plex Sans tops out at 700) ---- */
  --weight-regular: 400;
  --weight-medium:  500;
  --weight-semibold:600;
  --weight-bold:    700;
  --weight-black:   700;

  /* ---- Type scale (1.250 major-third, 16px base) ---- */
  --text-2xs: 0.6875rem;  /* 11px — labels, legal */
  --text-xs:  0.75rem;    /* 12px */
  --text-sm:  0.875rem;   /* 14px */
  --text-base:1rem;       /* 16px — body */
  --text-md:  1.125rem;   /* 18px — lead body */
  --text-lg:  1.375rem;   /* 22px */
  --text-xl:  1.75rem;    /* 28px */
  --text-2xl: 2.25rem;    /* 36px — H2 */
  --text-3xl: 2.875rem;   /* 46px — H1 */
  --text-4xl: 3.75rem;    /* 60px — hero */
  --text-5xl: 4.75rem;    /* 76px — display */

  /* ---- Line heights ---- */
  --leading-tight:  1.12;
  --leading-snug:   1.28;
  --leading-normal: 1.55;
  --leading-relaxed:1.72;

  /* ---- Letter spacing ---- */
  --tracking-tighter: -0.022em;  /* display headings */
  --tracking-tight:   -0.012em;  /* headings */
  --tracking-normal:  0;
  --tracking-wide:    0.04em;
  --tracking-eyebrow: 0.16em;    /* uppercase eyebrows / labels */
}
