:root {
  /* surface */
  --bg: #050f1f;
  --surface: #0a1a30;
  --surface-raised: #12263f;
  --surface-inset: #071426;
  --surface-dim: #08182a;
  --text: #e9f4ef;
  --muted: #8ba1a6;
  --border: rgba(255, 255, 255, .08);
  --border-strong: rgba(255, 255, 255, .14);

  /* brand */
  --primary: #33c46b;
  --primary-dark: #1e8f4f;
  --primary-tint: #78db7a;
  --primary-deep: #0d3a26;
  --primary-soft: rgba(51, 196, 107, .16);
  --primary-edge: rgba(51, 196, 107, .32);
  --on-primary: #04140b;

  /* status */
  --accent: #2fd0bb;
  --success: #4ade80;
  --danger: #f87171;
  --danger-soft: rgba(248, 113, 113, .10);
  --danger-border: rgba(248, 113, 113, .38);
  --gold: #fbbf24;
  --gold-border: rgba(251, 191, 36, .55);

  /* trait */
  --diamond: #67e8f9;
  --candy: #f472b6;
  --cursed: #c084fc;
  --cyber: #38bdf8;
  --yinyang: #2dd4bf;
  --divine: #e2e8f0;

  /* type */
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-display: var(--font-body);
  --font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;
  --fs-xs: .6875rem;
  --fs-sm: .8125rem;
  --fs-md: .875rem;
  --fs-lg: 1rem;
  --fs-xl: 1.375rem;
  --fs-2xl: 1.75rem;
  --ls-caps: .09em;

  /* space */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-7: 32px;

  /* radius */
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 16px;
  --r-pill: 999px;

  /* effect */
  --gradient-primary: linear-gradient(135deg, var(--primary), var(--primary-dark));
  --shadow-card: 0 8px 24px rgba(0, 0, 0, .35);
  --shadow-pop: 0 4px 14px rgba(120, 219, 122, .42);

  /* layout */
  --panel-w: 312px;
  --profile-w: 300px;
  --header-h: 56px;
  --ticker-speed: 80s;
  --ticker-speed-slow: 100s;
  --page-gap: var(--sp-6);
  --page-pad: var(--sp-5);
}
