/* ==========================================================================
   THEME.CSS
   Design tokens only. No layout, no components.
   Every other CSS file reads from these variables — nothing here should
   ever be duplicated or overridden ad-hoc elsewhere.
   ========================================================================== */

:root{
  /* ---- surfaces --------------------------------------------------- */
  --void:        #080b10;
  --bg:          #0a0e15;
  --panel:       #11161f;
  --panel-2:     #161d29;
  --border:      #232b3a;
  --border-soft: #1a2130;

  /* ---- text ---------------------------------------------------------- */
  --text:        #e9edf3;
  --text-dim:    #a7b0c0;
  --text-mute:   #6b7688;

  /* ---- accent triad (kept from the original build — this palette
     already reads as "gaming HUD" and is worth preserving) ------------- */
  --violet: #8b83ee;  --violet-rgb: 139,131,238;
  --teal:   #4bc9bb;  --teal-rgb:   75,201,187;
  --gold:   #d1a24e;  --gold-rgb:   209,162,78;
  --crimson:#e05a5a;  --crimson-rgb:224,90,90;
  --emerald:#10b981;  --emerald-rgb:16,185,129;

  /* active ambient accent — reassigned by theme.js only. Nothing else
     should ever write to --accent directly. */
  --accent:      var(--violet);
  --accent-rgb:  var(--violet-rgb);
  --accent-2:    var(--teal);
  --accent-2-rgb:var(--teal-rgb);

  /* ---- radius ---------------------------------------------------------- */
  --radius-s: 6px;
  --radius-m: 10px;
  --radius-l: 16px;
  --radius-full: 999px;

  /* ---- fluid type scale — clamp(min, preferred, max), 320px→1920px --- */
  --fs-xs:   clamp(0.72rem, 0.68rem + 0.2vw, 0.8rem);
  --fs-sm:   clamp(0.82rem, 0.78rem + 0.2vw, 0.92rem);
  --fs-body: clamp(0.95rem, 0.92rem + 0.15vw, 1.05rem);
  --fs-md:   clamp(1.05rem, 0.98rem + 0.35vw, 1.25rem);
  --fs-lg:   clamp(1.35rem, 1.15rem + 1vw, 1.75rem);
  --fs-xl:   clamp(1.75rem, 1.4rem + 1.75vw, 2.4rem);
  --fs-2xl:  clamp(2.1rem, 1.5rem + 3vw, 3.4rem);
  --fs-3xl:  clamp(2.6rem, 1.6rem + 5vw, 4.6rem);

  /* ---- fluid spacing scale ------------------------------------------- */
  --sp-3xs: clamp(0.25rem, 0.23rem + 0.1vw, 0.3rem);
  --sp-2xs: clamp(0.4rem,  0.36rem + 0.2vw, 0.5rem);
  --sp-xs:  clamp(0.6rem,  0.55rem + 0.25vw, 0.75rem);
  --sp-s:   clamp(0.9rem,  0.8rem + 0.4vw,  1.15rem);
  --sp-m:   clamp(1.4rem,  1.2rem + 0.8vw,  1.9rem);
  --sp-l:   clamp(2.2rem,  1.8rem + 1.6vw,  3.2rem);
  --sp-xl:  clamp(3.2rem,  2.4rem + 3vw,    5rem);
  --sp-2xl: clamp(4.5rem,  3.4rem + 4.5vw,  7rem);

  /* ---- fonts ----------------------------------------------------------- */
  --font-display: 'Rajdhani', sans-serif;
  --font-body:    'Inter', sans-serif;
  --font-mono:    'JetBrains Mono', monospace;

  /* ---- motion ------------------------------------------------------- */
  --ease:        cubic-bezier(.16,.8,.24,1);
  --ease-spring: cubic-bezier(.34,1.56,.64,1);
  --dur-fast: 0.22s;
  --dur-med:  0.45s;
  --dur-slow: 0.8s;

  /* ---- elevation / glow ----------------------------------------------- */
  --shadow-s: 0 2px 8px rgba(0,0,0,.25);
  --shadow-m: 0 10px 30px rgba(0,0,0,.35);
  --shadow-l: 0 24px 60px rgba(0,0,0,.5);
  --glow:        0 0 24px rgba(var(--accent-rgb), .35);
  --glow-strong: 0 0 42px rgba(var(--accent-rgb), .55);

  /* ---- z-index scale — prevents the "just add z-index:9999" drift ---- */
  --z-bg: 0;
  --z-content: 1;
  --z-nav: 100;
  --z-map: 200;
  --z-cursor: 999;
  --z-forge: 999;
  --z-progress: 1001;
  --z-toast: 1002;
  --z-matrix: 1003;
  --z-memory: 1004;
  --z-boot: 3000;
}

/* Named palettes for Theme Forge — theme.js swaps --accent* by reading
   these, so adding a new palette means adding one block here only. */
[data-palette="violet"]  { --accent:#8b83ee; --accent-rgb:139,131,238; --accent-2:#4bc9bb; --accent-2-rgb:75,201,187; }
[data-palette="gold"]    { --accent:#d1a24e; --accent-rgb:209,162,78;  --accent-2:#4bc9bb; --accent-2-rgb:75,201,187; }
[data-palette="crimson"] { --accent:#e05a5a; --accent-rgb:224,90,90;   --accent-2:#22d3ee; --accent-2-rgb:34,211,238; }
[data-palette="emerald"] { --accent:#10b981; --accent-rgb:16,185,129;  --accent-2:#8b83ee; --accent-2-rgb:139,131,238; }
[data-palette="synth"]   { --accent:#ff00aa; --accent-rgb:255,0,170;   --accent-2:#00f0ff; --accent-2-rgb:0,240,255; }
[data-palette="arctic"]  { --accent:#22d3ee; --accent-rgb:34,211,238;  --accent-2:#a78bfa; --accent-2-rgb:167,139,250; }
[data-palette="ocean"]   { --accent:#2f8fe0; --accent-rgb:47,143,224;  --accent-2:#38bdf8; --accent-2-rgb:56,189,248; }
[data-palette="royal"]   { --accent:#7c3aed; --accent-rgb:124,58,237; --accent-2:#c084fc; --accent-2-rgb:192,132,252; }
