*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  /* Canvas */
  --bg-void:#06060a;
  --bg-elevated:#0a0d15;
  --bg-card-top:#0e1220;
  --bg-card-bottom:#05070d;

  /* Text */
  --text-primary:#ffffff;
  --text-secondary:#a8a8b3;
  --text-tertiary:#5a5a66;
  --text-muted:#7a7a85;

  /* Accent */
  --accent-ice:#00d4ff;
  --accent-ice-glow:rgba(0,212,255,0.15);
  --accent-ice-dim:rgba(0,212,255,0.5);

  /* Financial semantics */
  --positive:#10b981;
  --negative:#ef4444;
  --severity:#f97316;

  /* Material shadows */
  --shadow-card:
    0 40px 100px -20px rgba(0,0,0,0.9),
    0 20px 40px -20px rgba(0,0,0,0.8),
    inset 0 1px 2px rgba(255,255,255,0.08),
    inset 0 -2px 4px rgba(0,0,0,0.8);
  --shadow-badge:
    0 0 0 1px rgba(255,255,255,0.08),
    0 25px 50px -12px rgba(0,0,0,0.8),
    inset 0 1px 1px rgba(255,255,255,0.15),
    inset 0 -1px 1px rgba(0,0,0,0.5);
  --shadow-btn-light:
    0 0 0 1px rgba(0,0,0,0.05),
    0 2px 4px rgba(0,0,0,0.1),
    0 12px 24px -4px rgba(0,0,0,0.3),
    inset 0 1px 1px rgba(255,255,255,1),
    inset 0 -3px 6px rgba(0,0,0,0.06);
  --shadow-btn-dark:
    0 0 0 1px rgba(255,255,255,0.1),
    0 2px 4px rgba(0,0,0,0.6),
    0 12px 24px -4px rgba(0,0,0,0.9),
    inset 0 1px 1px rgba(255,255,255,0.15),
    inset 0 -3px 6px rgba(0,0,0,0.8);

  /* Elevation system */
  --elevation-1:0 1px 2px rgba(0,0,0,0.3);
  --elevation-2:0 8px 16px rgba(0,0,0,0.4);
  --elevation-3:0 24px 48px rgba(0,0,0,0.5);
  --elevation-4:0 40px 100px rgba(0,0,0,0.7);

  /* Glass tiers */
  --glass-subtle:rgba(255,255,255,0.02);
  --glass-regular:rgba(255,255,255,0.04);
  --glass-prominent:rgba(255,255,255,0.06);
  --blur-subtle:blur(12px);
  --blur-regular:blur(20px);
  --blur-heavy:blur(40px);

  /* Typography */
  --font-display:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-mono:"IBM Plex Mono","SF Mono",Menlo,monospace;

  --fs-hero:clamp(3rem,8vw,6rem);
  --fs-headline:clamp(2.5rem,6vw,4.5rem);
  --fs-subhead:clamp(1.5rem,3vw,2.25rem);
  --fs-body-xl:1.25rem;
  --fs-body:1rem;
  --fs-small:0.875rem;
  --fs-eyebrow:0.6875rem;

  /* Spacing (8-point grid) */
  --space-0:0;
  --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-10:128px;

  /* Radius */
  --radius-sm:6px;
  --radius-md:12px;
  --radius-lg:20px;
  --radius-xl:32px;
  --radius-2xl:40px;

  /* Squircle radii (unitless px, passed to squirclePath) */
  --squircle-sm:8;
  --squircle-md:16;
  --squircle-lg:20;
  --squircle-xl:24;

  /* Motion */
  --ease-out:cubic-bezier(0.16,1,0.3,1);
  --ease-in-out:cubic-bezier(0.65,0,0.35,1);
  --ease-in:cubic-bezier(0.64,0,0.78,0);
  --ease-standard:cubic-bezier(0.4,0,0.2,1);
  --ease-accelerate:cubic-bezier(0.4,0,1,1);
  --ease-decelerate:cubic-bezier(0,0,0.2,1);
  --ease-spring:cubic-bezier(0.34,1.56,0.64,1);

  --duration-instant:100ms;
  --duration-fast:200ms;
  --duration-base:300ms;
  --duration-slow:500ms;
  --duration-cinematic:800ms;

  --transition-fast:150ms var(--ease-out);
  --transition-base:300ms var(--ease-out);
  --transition-slow:600ms var(--ease-out);
}

html{font-size:17px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}
body{font-family:var(--font-body);font-weight:400;background:var(--bg-void);color:var(--text-primary);overflow-x:hidden;line-height:1.6}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
img,svg{display:block;max-width:100%}
