/* =============================================================================
   thedimode.com Typography System v1.
   Stage 3 implementation by Codex-Site, 2026-05-27.
   Source: Helvetia Typography_System_2026-05-27.md.
   Loaded by all 5 public surfaces.

   Three fonts: Geist Sans (variable), Pretendard Variable, Geist Mono (variable).
   No italic anywhere (Geist has no italic; Pretendard has no italic axis).
============================================================================= */

@font-face {
  font-family: "Geist";
  src: url("https://cdn.jsdelivr.net/npm/geist@1.3.1/dist/fonts/geist-sans/Geist-Variable.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Geist Mono";
  src: url("https://cdn.jsdelivr.net/npm/geist@1.3.1/dist/fonts/geist-mono/GeistMono-Variable.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Stacks */
  --font-sans: "Geist", "Pretendard Variable", -apple-system, BlinkMacSystemFont,
               "Apple SD Gothic Neo", "Malgun Gothic", "Segoe UI", sans-serif;
  --font-mono: "Geist Mono", "JetBrains Mono", ui-monospace, "SF Mono",
               "Consolas", monospace;

  /* Sizes. Mobile baseline (375px). */
  --text-hero: 40px;
  --text-display: 28px;
  --text-h2: 24px;
  --text-h3: 18px;
  --text-body-lg: 17px;
  --text-body: 16px;
  --text-body-sm: 14px;
  --text-caption: 12px;
  --text-button: 15px;
  --text-eyebrow: 11px;
  --text-mono-meta: 11px;

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

  /* Line-heights. EN defaults. */
  --leading-tight: 1.05;
  --leading-snug: 1.15;
  --leading-mid: 1.25;
  --leading-relaxed: 1.35;
  --leading-base: 1.65;
  --leading-body-sm: 1.60;
  --leading-caption: 1.50;
  --leading-flat: 1.00;

  /* Letter-spacing */
  --tracking-tighter: -0.035em;
  --tracking-tight: -0.03em;
  --tracking-snug: -0.025em;
  --tracking-soft: -0.02em;
  --tracking-mild: -0.015em;
  --tracking-base: -0.01em;
  --tracking-body: -0.005em;
  --tracking-normal: 0;
  --tracking-meta: 0.01em;
  --tracking-mono-meta: 0.04em;
  --tracking-eyebrow: 0.14em;
}

/* Desktop overrides */
@media (min-width: 768px) {
  :root {
    --text-hero: 64px;
    --text-display: 44px;
    --text-h2: 32px;
    --text-h3: 22px;
    --text-body-lg: 19px;
    --text-body: 17px;
    --text-body-sm: 15px;
    --text-caption: 13px;
    --text-mono-meta: 12px;

    --tracking-tight: -0.035em;
    --tracking-snug: -0.03em;
    --tracking-soft: -0.025em;
    --tracking-mild: -0.02em;
  }
}

/* Korean breathing room: +0.05 over EN */
html[lang="ko"], html[data-lang="ko"] {
  --leading-tight: 1.10;
  --leading-snug: 1.20;
  --leading-mid: 1.30;
  --leading-relaxed: 1.40;
  --leading-base: 1.70;
  --leading-body-sm: 1.65;
  --leading-caption: 1.55;
}

/* Italic kill. Geist has no italic, Pretendard has no italic axis. */
em, i { font-style: normal; }
/* Accent applies only inside body prose, not in hero/section headings. */
p em, li em { color: var(--accent); }
