:root {
  --bg-base: #051623;
  --bg-surface: #0B2130;
  --bg-elevated: #12303E;
  --bg-grid: #ffffff09;
  --grad-start: #06f;
  --grad-end: #B53ED0;
  --grad-mid: #3E7DD0;
  --grad-signature: linear-gradient(135deg, #06f 0%, #3E7DD0 50%, #B53ED0 100%);
  --grad-path: linear-gradient(90deg,  #06f 0%, #3E7DD0 55%, #B53ED0 100%);
  --grad-glow: linear-gradient(135deg, #06f6 0%, #B53ED066 100%);
  --figure-color: #8FD3F2;
  --figure-glow: #0092D5b3;
  --figure-size: 28px;
  --figure-size-lg: 44px;
  --path-width: 6px;
  --path-glow-w: 24px;
  --path-y: 50vh;
  --station-bg: #ffffff0e;
  --station-border: #ffffff1a;
  --station-border-active: #0092D5b3;
  --station-blur: 12px;
  --station-scale-idle: .92;
  --station-opacity-idle: .4;
  --station-radius: 20px;
  --text-primary: #F6F9FC;
  --text-secondary: #F6F9FC8c;
  --text-muted: #F6F9FC47;
  --text-accent: #8FD3F2;
  --station-number-size: clamp(56px, 8vw, 96px);
  --station-number-weight: 700;
  --station-number-color: #F6F9FC1f;
  --station-number-active: #8FD3F28c;
  --font-display: "Lexend", sans-serif;
  --font-body: "Lexend", sans-serif;
  --size-display: clamp(36px, 6vw, 80px);
  --size-title: clamp(22px, 3vw, 42px);
  --size-body: clamp(14px, 1.2vw, 18px);
  --size-label: clamp(10px, .9vw, 13px);
  --weight-black: 700;
  --weight-regular: 300;
  --tracking-tight: -.03em;
  --tracking-wide: .08em;
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 32px;
  --space-xl: 64px;
  --space-2xl: 128px;
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-pill: 999px;
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-inout: cubic-bezier(.4, 0, .2, 1);
  --dur-fast: .18s;
  --dur-base: .35s;
  --dur-slow: .65s;
  --pulse-dur: 1.4s;
  --pulse-ease: cubic-bezier(.45, 0, .55, 1);
  --pulse-scale-min: 1;
  --pulse-scale-max: 1.55;
  --pulse-opacity-peak: .55;
  --pulse-color: #0092D58c;
  --trail-length: 40px;
  --trail-width: 6px;
  --trail-opacity: .55;
  --trail-decay: .22s;
  --trail-color-start: #8FD3F28c;
  --trail-color-end: #0092D500;
  --scrub-ease: none;
  --pin-snap: false;
  --zoom-scale-active: 1.1;
  --zoom-ease: cubic-bezier(.16, 1, .3, 1);
  --glow-figure: 0 0 40px #0092D5b3, 0 0 80px #0092D54d;
  --glow-station: 0 0 60px #0092D540, 0 24px 48px #0009;
  --glow-path: 0 0 20px #3E7DD099;
  --shadow-panel: 0 32px 64px #0009, 0 8px 24px #0006;
  --z-path: 1;
  --z-station: 2;
  --z-figure: 10;
  --z-ui: 20;
  --st1: #06f;
  --st2: #2e54ff;
  --st3: #3E7DD0;
  --st4: #5b3fe0;
  --st5: #6b36dc;
  --st6: #B53ED0;
  --beat-accent: var(--grad-mid);
  --beat-accent-soft: color-mix(in srgb, var(--beat-accent) 55%, #8FD3F2);
  --pain-coral: #e8736b;
  --pain-filter: saturate(1.04) brightness(.97);
  --pain-surface: linear-gradient(180deg, #3a161475, #160c0dd1);
  --pain-border: #e8736b5c;
  --pain-edge: #f4968c7a;
  --pain-text: #f8d6d1f2;
  --pain-text-dim: #e9bab5c2;
  --pain-num: #e8736b33;
  --pain-icon: #f0897e;
  --pain-dash: #e8736bd1;
  --pain-tag-bg: #e8736b2e;
  --pain-tag-text: #f4b3ac;
  --pain-glow: 0 0 0 1px #e8736b52,
                        0 0 56px #d8554d42,
                        0 18px 46px #00000080;
  --pain-backlight: radial-gradient(62% 72% at 50% 42%,
                          #e85a5247 0%, transparent 70%);
  --sol-filter: saturate(1) brightness(1);
  --sol-surface: var(--station-bg);
  --sol-border: color-mix(in srgb, var(--beat-accent) 70%, transparent);
  --sol-text: var(--text-primary);
  --sol-icon: var(--beat-accent-soft);
  --sol-dash: var(--beat-accent);
  --sol-glow: 0 0 0 1px color-mix(in srgb, var(--beat-accent) 30%, transparent),
                        0 0 64px color-mix(in srgb, var(--beat-accent) 28%, transparent),
                        0 24px 56px #0000008c;
  --sol-icon-glow: drop-shadow(0 0 10px color-mix(in srgb, var(--beat-accent) 60%, transparent));
  --sol-backlight: radial-gradient(60% 70% at 50% 42%,
                          color-mix(in srgb, var(--beat-accent) 22%, transparent) 0%,
                          transparent 70%);
  --sol-tag-bg: color-mix(in srgb, var(--beat-accent) 18%, transparent);
  --sol-tag-text: var(--text-primary);
  --ignite-dur: .72s;
  --ignite-ease: cubic-bezier(.16, 1, .3, 1);
  --metric-grad: linear-gradient(100deg,
                          var(--beat-accent) 0%,
                          color-mix(in srgb, var(--beat-accent) 40%, #8FD3F2) 100%);
  --metric-border: color-mix(in srgb, var(--beat-accent) 45%, transparent);
  --metric-bg: color-mix(in srgb, var(--beat-accent) 12%, #ffffff08);
  --metric-glow: 0 0 28px color-mix(in srgb, var(--beat-accent) 30%, transparent);
  --metric-num-size: clamp(34px, 4.4vw, 60px);
  --metric-radius: 14px;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-fast: 0s;
    --dur-base: 0s;
    --dur-slow: 0s;
    --pulse-dur: 0s;
    --trail-decay: 0s;
    --trail-opacity: 0;
    --ignite-dur: 0s;
  }
}
