:root {
  /* Core neutrals */
  --ink-950: #02040a;
  --ink-900: #050913;
  --ink-850: #0a1020;
  --ink-800: #11192c;
  --ink-700: #1b2840;
  --ink-600: #2d3b57;
  --ink-500: #475a7b;
  --ink-400: #6d7e9c;
  --ink-300: #9aa8bf;
  --ink-200: #c6d0de;
  --ink-100: #ecf1fa;

  /* Accent */
  --accent: #7ce2c3;
  --accent-light: #b6f1df;
  --accent-dim: rgba(124, 226, 195, 0.18);
  --accent-glow: rgba(124, 226, 195, 0.32);
  --accent-alt: #ffb067;
  --accent-alt-light: #ffd3a6;

  /* Signals */
  --risk-neutral: #8ba0bb;
  --risk-amber: #f3a44a;
  --risk-red: #ef5e5e;
  --risk-amber-dim: rgba(243, 164, 74, 0.15);
  --risk-red-dim: rgba(239, 94, 94, 0.14);

  --sentiment-pos: #46d39a;
  --sentiment-neg: var(--risk-red);
  --sentiment-neutral: #f2bf52;

  /* Surfaces */
  --surface-base: #04070d;
  --surface-raised: #0c1220;
  --surface-overlay: rgba(8, 13, 24, 0.9);
  --surface-glass: rgba(14, 22, 38, 0.72);
  --surface-muted: #121b2d;

  /* Borders */
  --border-subtle: rgba(218, 232, 255, 0.07);
  --border-default: rgba(218, 232, 255, 0.12);
  --border-strong: rgba(218, 232, 255, 0.22);
  --border-accent: rgba(124, 226, 195, 0.4);

  /* Text */
  --text-primary: #f4f8ff;
  --text-secondary: #adc0dd;
  --text-tertiary: #7f93b2;
  --text-muted: #cdd8ea;

  /* Spacing */
  --sp-2: 2px;
  --sp-4: 4px;
  --sp-8: 8px;
  --sp-12: 12px;
  --sp-16: 16px;
  --sp-24: 24px;
  --sp-32: 32px;
  --sp-48: 48px;
  --sp-64: 64px;

  /* Radius */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --radius-xl: 24px;
  --radius-full: 9999px;

  /* Shadow */
  --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.28), 0 1px 1px rgba(0, 0, 0, 0.16);
  --shadow-md: 0 14px 30px rgba(1, 3, 8, 0.44), 0 2px 8px rgba(0, 0, 0, 0.26);
  --shadow-lg: 0 26px 56px rgba(0, 0, 0, 0.5), 0 8px 18px rgba(0, 0, 0, 0.36);
  --shadow-xl: 0 34px 80px rgba(0, 0, 0, 0.58), 0 12px 28px rgba(0, 0, 0, 0.4);
  --shadow-glow: 0 0 30px rgba(124, 226, 195, 0.18);
  --shadow-panel-hover: 0 22px 48px rgba(0, 0, 0, 0.48), 0 4px 12px rgba(0, 0, 0, 0.3);

  /* Motion */
  --duration-micro: 140ms;
  --duration-ui: 260ms;
  --duration-overlay: 360ms;
  --duration-page: 480ms;

  --ease-standard: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-subtle: cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);

  /* Typography */
  --font-sans: "Plus Jakarta Sans", "Segoe UI", sans-serif;
  --font-display: "Space Grotesk", "Plus Jakarta Sans", sans-serif;
  --font-mono: "IBM Plex Mono", "JetBrains Mono", monospace;

  --text-xs: 0.6875rem;
  --text-sm: 0.75rem;
  --text-base: 0.875rem;
  --text-md: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.5rem;
  --text-2xl: 2rem;
  --text-3xl: 2.5rem;
  --text-hero: 3.5rem;

  --leading-tight: 1.1;
  --leading-snug: 1.22;
  --leading-normal: 1.5;
  --leading-relaxed: 1.65;

  --tracking-tight: -0.03em;
  --tracking-normal: -0.01em;
  --tracking-wide: 0.06em;

  --z-base: 0;
  --z-raised: 10;
  --z-nav: 100;
  --z-sheet: 500;
  --z-overlay: 900;
  --z-modal: 1000;
  --z-toast: 1200;

  --topbar-h: 82px;
  --admin-pane-w: 360px;

  --noise-url: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.028'/%3E%3C/svg%3E");
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-micro: 0ms;
    --duration-ui: 0ms;
    --duration-overlay: 0ms;
    --duration-page: 0ms;
  }
}
