:root {
  --color-paper: oklch(98.5% 0.004 250);
  --color-paper-2: oklch(95.5% 0.009 250);
  --color-paper-3: oklch(91% 0.012 250);
  --color-rule: oklch(82% 0.016 252);
  --color-ink: oklch(24% 0.02 258);
  --color-ink-2: oklch(34% 0.018 257);
  --color-muted: oklch(45% 0.018 257);
  --color-graphite: oklch(22% 0.016 260);
  --color-graphite-2: oklch(28% 0.016 260);
  --color-on-dark: oklch(96% 0.005 250);
  --color-accent: oklch(50% 0.19 256);
  --color-accent-ink: oklch(99% 0.002 256);
  --color-focus: oklch(48% 0.20 256);
  --color-error: oklch(52% 0.20 28);
  --color-success: oklch(48% 0.14 152);
  --color-warning: oklch(48% 0.12 65); /* "ตรวจอีกครั้ง": AI was unsure; text on paper passes 4.5:1 */
  --color-warning-bg: oklch(95% 0.045 85);
  --color-line: #06c755; /* LINE brand green: only for the LINE mark, per LINE brand rules */
  --font-display: "Sarabun", "Noto Sans Thai", sans-serif;
  --font-body: "Noto Sans Thai", "IBM Plex Sans Thai", sans-serif;
  --font-mono: "IBM Plex Mono", monospace;
  --text-xs: .78rem; --text-sm: .9rem; --text-base: 1rem; --text-md: 1.2rem;
  --text-lg: 1.45rem; --text-xl: 1.9rem; --text-2xl: 2.5rem;
  --text-display: clamp(2.3rem, 4.5vw + 1rem, 4.6rem);
  --space-3xs: .125rem; --space-2xs: .25rem; --space-xs: .5rem; --space-sm: .75rem;
  --space-md: 1rem; --space-lg: 1.5rem; --space-xl: 2.5rem; --space-2xl: 4rem; --space-3xl: 6rem;
  --radius-sm: .38rem; --radius-md: .62rem;
  --dur-micro: 120ms; --dur-short: 220ms; --dur-long: 420ms;
  --ease-out: cubic-bezier(.16,1,.3,1); --ease-in: cubic-bezier(.7,0,.84,0); --ease-in-out: cubic-bezier(.65,0,.35,1);
  --z-base: 1; --z-raised: 10; --z-dropdown: 100; --z-sticky: 200; --z-modal: 400; --z-toast: 500;
}
