/* ============================================================
   Object — Typography tokens
   Single family: Pretendard Std (Korean + Latin).
   Tight tracking on display/wordmark, neutral on body.
   ============================================================ */

:root {
  /* ---------- Family ---------- */
  --font-sans: "Pretendard Std", -apple-system, BlinkMacSystemFont,
               "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;
  --font-mono: ui-monospace, "SFMono-Regular", "Menlo", "Consolas", monospace;

  /* ---------- Weights ---------- */
  --weight-thin:       100;
  --weight-extralight: 200;
  --weight-light:      300;
  --weight-regular:    400;
  --weight-medium:     500;
  --weight-semibold:   600;
  --weight-bold:       700;
  --weight-extrabold:  800;  /* wordmark */
  --weight-black:      900;

  /* ---------- Type scale (px) ---------- */
  --text-2xs:  12px;
  --text-xs:   13px;
  --text-sm:   14px;
  --text-base: 16px;
  --text-md:   18px;
  --text-lg:   20px;
  --text-xl:   24px;
  --text-2xl:  30px;
  --text-3xl:  38px;
  --text-4xl:  48px;
  --text-5xl:  64px;
  --text-6xl:  88px;

  /* ---------- Line heights ---------- */
  --leading-none:    1;
  --leading-tight:   1.2;
  --leading-snug:    1.35;
  --leading-normal:  1.5;
  --leading-relaxed: 1.7;   /* Korean body — give it air */

  /* ---------- Letter spacing ---------- */
  --tracking-tighter: -0.045em;  /* large wordmark / display */
  --tracking-tight:   -0.03em;   /* wordmark default */
  --tracking-snug:    -0.01em;   /* headings, names */
  --tracking-normal:  0;
  --tracking-wide:    0.01em;    /* Korean sub-label */
  --tracking-wider:   0.08em;    /* uppercase eyebrow labels */

  /* ---------- Numerics ---------- */
  --feature-tnum: "tnum" 1; /* @kind other */ /* tabular figures for contact/data */

  /* ============================================================
     SEMANTIC ROLES
     ============================================================ */

  /* Display / hero */
  --role-display-size:     var(--text-6xl);
  --role-display-weight:   var(--weight-extrabold);
  --role-display-tracking: var(--tracking-tighter);
  --role-display-leading:  var(--leading-none);

  /* Headings */
  --role-h1-size:    var(--text-4xl);
  --role-h1-weight:  var(--weight-bold);
  --role-h2-size:    var(--text-2xl);
  --role-h2-weight:  var(--weight-bold);
  --role-h3-size:    var(--text-xl);
  --role-h3-weight:  var(--weight-semibold);

  /* Body */
  --role-body-size:    var(--text-base);
  --role-body-weight:  var(--weight-regular);
  --role-body-leading: var(--leading-relaxed);

  /* Caption / label */
  --role-caption-size:   var(--text-sm);
  --role-caption-weight: var(--weight-medium);

  /* Eyebrow (uppercase Latin label) */
  --role-eyebrow-size:     var(--text-xs);
  --role-eyebrow-weight:   var(--weight-semibold);
  --role-eyebrow-tracking: var(--tracking-wider);
}
