/* ─────────────────────────────────────────────────────────────
   FEISTTECH — Shared theme tokens.
   Four palettes, one variable contract. Any page can link this
   file and switch look via [data-theme] on <html> — no layout
   rules live here, so it's safe to include on any page.
   ───────────────────────────────────────────────────────────── */

:root {
  --font-display: 'Cinzel', serif;
  --font-body: 'Cormorant Garamond', serif;
  --font-mono: 'Space Mono', 'Courier New', monospace;
}

/* PATINA — default. Bronze + verdigris + dark forest. */
:root,
[data-theme="patina"] {
  --bg-deep:    #0c0a07;
  --bg:         #14110b;
  --bg-soft:    #1c1812;
  --panel:      rgba(20,17,11,0.92);
  --panel-edge: rgba(166,112,65,0.22);
  --ink:        #d4c39a;
  --ink-dim:    #7a6a4e;
  --ink-mute:   #4a4030;
  --accent:     #c9a84c;          /* gold */
  --accent-2:   #e8c96d;          /* gold hi */
  --accent-3:   #438f7e;          /* verdigris */
  --warm:       #a67041;          /* bronze */
  --warm-dk:    #3e2208;
  --warm-lt:    #d4a373;
  --hot:        #c0392b;          /* sealing-wax red */
  --earth-land: #2b3a26;          /* dark green */
  --earth-line: #a67041;          /* bronze coastline */
  --earth-grid: rgba(166,112,65,0.10);
  --earth-bg:   #0a0805;
  --node-color: #d4a373;
  --node-glow:  #f0c38e;
  --star:       #f0e8c8;
  --constellation: rgba(67,143,126,0.42);
  --milky:      rgba(212,163,115,0.05);
  --vignette:   radial-gradient(ellipse at center, transparent 35%, rgba(0,0,0,0.55) 100%);
}

/* CYAN — strict blueprint directive. Cold engineering aesthetic. */
[data-theme="cyan"] {
  --bg-deep:    #02030a;
  --bg:         #060814;
  --bg-soft:    #0a0e1e;
  --panel:      rgba(6,8,20,0.92);
  --panel-edge: rgba(0,212,232,0.22);
  --ink:        #c9d1e0;
  --ink-dim:    #68778d;
  --ink-mute:   #2c3a4e;
  --accent:     #00e5ff;
  --accent-2:   #6ef4ff;
  --accent-3:   #00ff9d;
  --warm:       #4a82a6;
  --warm-dk:    #0a2030;
  --warm-lt:    #7ac0e8;
  --hot:        #e85050;
  --earth-land: transparent;
  --earth-line: #00e5ff;
  --earth-grid: rgba(0,229,255,0.08);
  --earth-bg:   #02030a;
  --node-color: #00ff9d;
  --node-glow:  #6effc8;
  --star:       #ffffff;
  --constellation: rgba(60,140,200,0.40);
  --milky:      rgba(160,220,255,0.04);
  --vignette:   radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,0.5) 100%);
}

/* IMPERIAL — gold leaf on velvet. Cathedral / chamber. */
[data-theme="imperial"] {
  --bg-deep:    #100706;
  --bg:         #1a0d09;
  --bg-soft:    #241410;
  --panel:      rgba(26,13,9,0.94);
  --panel-edge: rgba(212,170,93,0.30);
  --ink:        #e8d39a;
  --ink-dim:    #8a6c44;
  --ink-mute:   #4a3422;
  --accent:     #e8c46a;
  --accent-2:   #fbe09a;
  --accent-3:   #c9514b;
  --warm:       #b88a52;
  --warm-dk:    #422010;
  --warm-lt:    #f0c89a;
  --hot:        #a02828;
  --earth-land: #2a1810;
  --earth-line: #e8c46a;
  --earth-grid: rgba(232,196,106,0.10);
  --earth-bg:   #100706;
  --node-color: #fbe09a;
  --node-glow:  #ffeec0;
  --star:       #fff4d0;
  --constellation: rgba(184,138,82,0.40);
  --milky:      rgba(232,196,106,0.04);
  --vignette:   radial-gradient(ellipse at center, transparent 30%, rgba(0,0,0,0.7) 100%);
}

/* NIGHT PLATE — Mercator-on-parchment, chalk on slate. */
[data-theme="night"] {
  --bg-deep:    #050810;
  --bg:         #0b121f;
  --bg-soft:    #131c2d;
  --panel:      rgba(11,18,31,0.94);
  --panel-edge: rgba(180,200,225,0.18);
  --ink:        #d8e0ec;
  --ink-dim:    #7a8a9e;
  --ink-mute:   #3a4554;
  --accent:     #e8d39a;          /* warm chalk */
  --accent-2:   #fff0c4;
  --accent-3:   #88c0d0;
  --warm:       #b0c0d0;
  --warm-dk:    #2a3848;
  --warm-lt:    #e8eef6;
  --hot:        #d05050;
  --earth-land: #1a2436;
  --earth-line: #e8e0c8;
  --earth-grid: rgba(216,224,236,0.07);
  --earth-bg:   #060a14;
  --node-color: #e8d39a;
  --node-glow:  #fff4c8;
  --star:       #ffffff;
  --constellation: rgba(136,192,208,0.35);
  --milky:      rgba(216,224,236,0.05);
  --vignette:   radial-gradient(ellipse at center, transparent 35%, rgba(0,0,0,0.5) 100%);
}
