:root {
  --bg-0: #090C13;
  --bg-1: #0F1420;
  --bg-2: #14192B;
  --bg-3: #1C2238;
  --bg-4: #242B47;
  --bg-inset: #060810;
  --bg-overlay: rgba(6, 8, 16, 0.76);

  --line: #1E2540;
  --line-strong: #2E3860;
  --line-soft: rgba(255, 255, 255, 0.05);
  --line-hairline: rgba(255, 255, 255, 0.03);

  --ink-1: #EEF0F7;
  --ink-2: #9BA6C4;
  --ink-3: #626F90;
  --ink-mute: #404D6A;
  --ink-on-accent: #090C13;

  --accent: #00E5C4;
  --accent-hot: #3DFFD7;
  --accent-deep: #00A88F;
  --accent-soft: rgba(0, 229, 196, 0.12);
  --accent-glow: rgba(0, 229, 196, 0.38);

  --up: #2EE887;
  --up-soft: rgba(46, 232, 135, 0.13);
  --up-strong: #1BD673;
  --down: #FF4D5E;
  --down-soft: rgba(255, 77, 94, 0.13);
  --down-strong: #E63348;
  --warn: #FFAB2E;
  --warn-soft: rgba(255, 171, 46, 0.13);
  --live: #FF3558;
  --live-soft: rgba(255, 53, 88, 0.13);
  --lock: #525E7A;

  --font-display: "Inter Tight", "Helvetica Neue", "Segoe UI", system-ui, sans-serif;
  --font-body: ui-sans-serif, system-ui, -apple-system, "Segoe UI", "Helvetica Neue", sans-serif;
  --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Consolas, monospace;

  --t-2xs: 10px;
  --t-xs: 11px;
  --t-sm: 13px;
  --t-base: 14px;
  --t-md: 15px;
  --t-lg: 17px;
  --t-xl: 20px;
  --t-2xl: 26px;
  --t-3xl: 34px;
  --t-4xl: 48px;
  --t-5xl: 68px;
  --t-6xl: 104px;

  --lh-tight: 1.05;
  --lh-snug: 1.2;
  --lh-base: 1.42;
  --lh-loose: 1.6;

  --tr-tight: -0.02em;
  --tr-snug: -0.01em;
  --tr-wide: 0.04em;
  --tr-wider: 0.08em;
  --tr-widest: 0.14em;

  --s-0: 0;
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 20px;
  --s-6: 24px;
  --s-7: 28px;
  --s-8: 32px;
  --s-10: 40px;
  --s-12: 48px;
  --s-14: 56px;
  --s-16: 64px;
  --s-20: 80px;
  --s-24: 96px;
  --s-32: 128px;

  --r-xs: 2px;
  --r-sm: 4px;
  --r-md: 8px;
  --r-lg: 12px;
  --r-xl: 18px;
  --r-2xl: 24px;
  --r-pill: 999px;

  --sh-flat: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  --sh-sheet: 0 1px 0 rgba(255, 255, 255, 0.04) inset, 0 8px 24px rgba(0, 0, 0, 0.50);
  --sh-raised: 0 16px 40px rgba(0, 0, 0, 0.60), 0 2px 6px rgba(0, 0, 0, 0.40);
  --sh-glow: 0 0 0 1px rgba(0, 229, 196, 0.36), 0 8px 28px rgba(0, 229, 196, 0.16);
  --sh-up: 0 0 0 1px rgba(46, 232, 135, 0.42) inset;
  --sh-down: 0 0 0 1px rgba(255, 77, 94, 0.42) inset;
  --sh-focus: 0 0 0 2px var(--bg-0), 0 0 0 4px var(--accent);

  --ease-std: cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-emph: cubic-bezier(0.05, 0.7, 0.1, 1);
  --ease-decel: cubic-bezier(0, 0, 0.2, 1);
  --ease-accel: cubic-bezier(0.4, 0, 1, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  --d-instant: 80ms;
  --d-fast: 150ms;
  --d-base: 220ms;
  --d-slow: 380ms;
  --d-expr: 560ms;

  --z-base: 1;
  --z-rail: 30;
  --z-sticky: 40;
  --z-drawer: 60;
  --z-toast: 80;
  --z-modal: 90;
  --z-overlay: 100;

  --grid-max: 1440px;
  --grid-gutter: 24px;
  --rail-w: 360px;
  --side-w: 240px;
  --header-h: 64px;
  --subnav-h: 44px;

  --bp-sm: 480px;
  --bp-md: 720px;
  --bp-lg: 1024px;
  --bp-xl: 1280px;
  --bp-2xl: 1480px;
}

@media (max-width: 1024px) {
  :root {
    --grid-gutter: 16px;
    --header-h: 56px;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --d-instant: 0ms;
    --d-fast: 0ms;
    --d-base: 0ms;
    --d-slow: 0ms;
    --d-expr: 0ms;
  }
}
