/* tokens-core.css · CI v1 (docs/ci-v1.md §1.3) · source of truth: Source file/_ecosystem/tokens/ · copy with ../sync.sh, never edit the copies */
:root {
  /* type scale · fluid · ตัวไทยต้องใหญ่กว่าอังกฤษ 1 ขั้นเสมอ จึงเริ่ม body ที่ 17px */
  --text-xs: 0.8125rem;   /* 13px · fine print เท่านั้น ห้ามใช้กับย่อหน้าไทย */
  --text-sm: 0.9375rem;   /* 15px */
  --text-base: 1.0625rem; /* 17px · body ไทย */
  --text-lg: 1.1875rem;   /* 19px · lead */
  --text-xl: clamp(1.3rem, 1.1rem + 0.8vw, 1.6rem);
  --text-2xl: clamp(1.6rem, 1.25rem + 1.5vw, 2.3rem);
  --text-3xl: clamp(1.95rem, 1.4rem + 2.4vw, 3.1rem);
  --text-display: clamp(2.3rem, 1.5rem + 3.6vw, 4.2rem);
  --text-stat: clamp(3rem, 2rem + 6vw, 6.5rem);           /* ตัวเลขใหญ่ */
  --leading-body: 1.7;      /* ไทยต้อง ≥1.65 ไม่งั้นสระบน/วรรณยุกต์ชนบรรทัดบน */
  --leading-tight: 1.35;    /* หัวข้อย่อย */
  --leading-display: 1.22;  /* display · ต้องมี padding-block ≥ .1em กันโดน clip */

  /* spacing · 4pt */
  --space-1: 4px;  --space-2: 8px;  --space-3: 12px; --space-4: 16px;
  --space-5: 24px; --space-6: 32px; --space-7: 48px; --space-8: 64px;
  --space-9: 96px; --space-section: clamp(64px, 6vw + 32px, 112px);

  /* motion · แต่ละแบรนด์เลือกใช้คนละชุด (ดูข้อ motion ของแต่ละแบรนด์) */
  --dur-fast: 140ms; --dur-base: 220ms; --dur-slow: 320ms; --dur-count: 800ms;
  --ease-out: cubic-bezier(.22, 1, .36, 1);
  --ease-in-out: cubic-bezier(.65, 0, .35, 1);
  --ease-pop: cubic-bezier(.34, 1.56, .64, 1);   /* DIY เท่านั้น */

  /* layout */
  --wrap: 72rem; --wrap-narrow: 42rem; --wrap-wide: 80rem;
  --gutter: clamp(16px, 4vw, 40px);
  --radius-pill: 999px;
}
@media (prefers-reduced-motion: reduce) {
  :root { --dur-fast: 0ms; --dur-base: 0ms; --dur-slow: 0ms; --dur-count: 0ms; }
}
