/* Generated from src/design/tokens.json by scripts/build-web.mjs. Edit the JSON, then run npm run build:web. */
:root {
  --font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-display: ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, "Segoe UI Variable Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --text-xs: 12px;
  --text-sm: 14px;
  --text-md: 16px;
  --text-lg: 18px;
  --text-xl: 22px;
  --text-2xl: 28px;
  --text-3xl: 40px;
  --text-display: clamp(36px, 5.2vw, 60px);
  --leading-tight: 1.15;
  --leading-snug: 1.3;
  --leading-normal: 1.5;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --tracking-tight: -0.02em;
  --tracking-caps: 0.06em;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --target: 44px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --radius-xl: 24px;
  --radius-pill: 999px;
  --dur-instant: 90ms;
  --dur-fast: 140ms;
  --dur-base: 220ms;
  --dur-slow: 360ms;
  --dur-slower: 560ms;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --rise: 8px;
  --bg: #f6f6f9;
  --surface: #ffffff;
  --surface-2: #f0eff5;
  --line: #e4e3ec;
  --line-strong: #8d8b9e;
  --fg: #16151c;
  --fg-muted: #5d5b6b;
  --accent: #5338e0;
  --accent-hover: #4529c9;
  --accent-fg: #ffffff;
  --accent-soft: #eeebfe;
  --accent-ink: #4329c4;
  --good: #16794a;
  --good-soft: #e3f4ea;
  --warn: #8f5300;
  --warn-soft: #fdf0dc;
  --danger: #c0261c;
  --danger-soft: #fde7e4;
  --danger-fg: #ffffff;
  --scrim: rgba(22, 21, 28, 0.04);
  --shadow-1: 0 1px 2px rgba(22, 21, 28, 0.06), 0 1px 1px rgba(22, 21, 28, 0.04);
  --shadow-2: 0 2px 6px rgba(22, 21, 28, 0.06), 0 8px 24px rgba(22, 21, 28, 0.08);
  --shadow-3: 0 12px 40px rgba(22, 21, 28, 0.14), 0 2px 8px rgba(22, 21, 28, 0.06);
  --glow: 0 6px 20px rgba(83, 56, 224, 0.32);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0d0c12;
    --surface: #17161e;
    --surface-2: #201f29;
    --line: #2c2a37;
    --line-strong: #77748a;
    --fg: #eeedf3;
    --fg-muted: #a6a3b5;
    --accent: #a898ff;
    --accent-hover: #bbaeff;
    --accent-fg: #150d3d;
    --accent-soft: #251f47;
    --accent-ink: #c4b9ff;
    --good: #5ccf8f;
    --good-soft: #123222;
    --warn: #f2b350;
    --warn-soft: #33240c;
    --danger: #ff8a7f;
    --danger-soft: #3a1714;
    --danger-fg: #2a0704;
    --scrim: rgba(0, 0, 0, 0.25);
    --shadow-1: 0 1px 2px rgba(0, 0, 0, 0.5);
    --shadow-2: 0 2px 6px rgba(0, 0, 0, 0.4), 0 8px 24px rgba(0, 0, 0, 0.35);
    --shadow-3: 0 12px 40px rgba(0, 0, 0, 0.55), 0 2px 8px rgba(0, 0, 0, 0.4);
    --glow: 0 6px 22px rgba(168, 152, 255, 0.28);
    color-scheme: dark;
  }
}
:root[data-theme="dark"], .theme-dark {
  --bg: #0d0c12;
  --surface: #17161e;
  --surface-2: #201f29;
  --line: #2c2a37;
  --line-strong: #77748a;
  --fg: #eeedf3;
  --fg-muted: #a6a3b5;
  --accent: #a898ff;
  --accent-hover: #bbaeff;
  --accent-fg: #150d3d;
  --accent-soft: #251f47;
  --accent-ink: #c4b9ff;
  --good: #5ccf8f;
  --good-soft: #123222;
  --warn: #f2b350;
  --warn-soft: #33240c;
  --danger: #ff8a7f;
  --danger-soft: #3a1714;
  --danger-fg: #2a0704;
  --scrim: rgba(0, 0, 0, 0.25);
  --shadow-1: 0 1px 2px rgba(0, 0, 0, 0.5);
  --shadow-2: 0 2px 6px rgba(0, 0, 0, 0.4), 0 8px 24px rgba(0, 0, 0, 0.35);
  --shadow-3: 0 12px 40px rgba(0, 0, 0, 0.55), 0 2px 8px rgba(0, 0, 0, 0.4);
  --glow: 0 6px 22px rgba(168, 152, 255, 0.28);
  color-scheme: dark;
}
@media (prefers-reduced-motion: reduce) {
  :root { --dur-instant: 0ms; --dur-fast: 0ms; --dur-base: 0ms; --dur-slow: 0ms; --dur-slower: 0ms; --rise: 0px; }
}
