/* ════════════════════════════════════════════════════════════════════
   SymposiON — Home Revamp · TOKENS
   Real --sym-* theme tokens (light-first) + derived semantic tokens.
   Apply a .theme-* class to the home root (#sym-home). The whole token
   tree switches — drop-in compatible with the production theme engine.
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   HOUSE RULE — Greek in caps.   (F-019 · διορθωμένο σκεπτικό, T-01)
   ────────────────────────────────────────────────────────────────────
   ΠΡΟΣΟΧΗ: το αρχικό σκεπτικό αυτού του κανόνα ΗΤΑΝ ΛΑΘΟΣ. Έλεγε ότι
   «το uppercase πετάει τον τόνο, που δεν είναι έτσι γραμμένη η λέξη».
   Αλλά το πέταγμα του τόνου ΕΙΝΑΙ η σωστή ελληνική ορθογραφία στα
   κεφαλαία: «Απόκτησέ το» → «ΑΠΟΚΤΗΣΕ ΤΟ», σωστό.

   ΤΙ ΙΣΧΥΕΙ ΠΡΑΓΜΑΤΙΚΑ — μετρημένο με getBoundingClientRect σε 16px
   serif, σε αυτόν τον Chromium:

     CSS uppercase «λειτουργία», <html lang="el">    93,53px  ─┐ ίδια
     κυριολεκτικό «ΛΕΙΤΟΥΡΓΙΑ»  (άτονο, σωστό)       93,53px  ─┘ ΣΩΣΤΟ
     κυριολεκτικό «ΛΕΙΤΟΥΡΓΊΑ»  (τονισμένο, λάθος)   94,78px
     CSS uppercase με lang="en" ή χωρίς lang         94,78px    ΛΑΘΟΣ

   Δηλαδή:
     • Η CSS ΕΙΝΑΙ ΣΩΣΤΗ όσο το στοιχείο είναι σε ελληνικό context.
       Και οι 54 σελίδες έχουν <html lang="el"> — εκτός από το
       games/hagia-sophia/index.html (lang="en"), που δεν δείχνει
       τονισμένα ελληνικά κάτω από uppercase. Άρα το σφάλμα της CSS
       είναι ΛΑΝΘΑΝΟΝ: ένα άλλαγμα του lang μακριά.
     • Η JAVASCRIPT ΕΙΝΑΙ ΛΑΘΟΣ, πάντα:
         'ενότητα'.toUpperCase()            → ΕΝΌΤΗΤΑ    ΛΑΘΟΣ
         'ενότητα'.toLocaleUpperCase('el')  → ΕΝΟΤΗΤΑ    ΣΩΣΤΟ
         'Ξενοφῶν'.toUpperCase()            → ΞΕΝΟΦΩ͂Ν    ΛΑΘΟΣ
         'Ξενοφῶν'.toLocaleUpperCase('el')  → ΞΕΝΟΦΩΝ     ΣΩΣΤΟ
       Το locale 'el' καθαρίζει και τα πνεύματα/υπογεγραμμένες.

   ΟΙ ΔΥΟ ΚΑΝΟΝΕΣ, λοιπόν:
     1. ΣΕ JS: ΠΟΤΕ .toUpperCase() σε ελληνικά — πάντα
        .toLocaleUpperCase('el').
     2. ΣΕ CSS: προτίμησε κεφαλαία γραμμένα στην πηγή. Δεν είναι λάθος
        το text-transform, αλλά τα γραμμένα κεφαλαία δεν εξαρτώνται από
        το lang και σου αφήνουν τον έλεγχο εκεί που ο τόνος ΠΡΕΠΕΙ να
        μείνει — π.χ. το διαζευκτικό «Ή», που αλλιώς διαβάζεται ως το
        άρθρο «Η» (games/adidakto/exam.html).

   Stripped in this pass: 251 rules across 22 files under css/, plus 16
   in games/lyo/game.css (the shared grammar chrome behind nine games)
   and 6 in games/iliada-trivia/game.css — 273 in all. Every one of them
   already carried `letter-spacing` (exactly two did not, .st-badge and
   .sc-lu__ttl, and were given it), so the small / wide / quiet label
   look the caps were standing in for survives on tracking + size +
   weight alone. Verified by DOM sweep: 0 Greek nodes with
   `text-transform !== 'none'`.

   If caps are genuinely wanted, AUTHOR them in the source string — that
   way a human chose them and the accents are dropped deliberately.
   Latin-only labels (the `*-en` / `*__en` classes) may keep `uppercase`;
   seven do.
   ════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════
   BREAKPOINTS — the ONE scale.   (F-006)
   ────────────────────────────────────────────────────────────────────
   Before this block the CSS carried FIFTEEN different max-widths
   (430 460 480 520 560 600 640 680 720 760 820 880 940 1024 1100), so
   two components that both meant "phone" flipped 120px apart. Every
   width media query under css/ now sits on one of the six steps below.

     --bp-xs   480px  small phone             (was 430 · 460 · 480)
     --bp-sm   600px  phone                   (was 520 · 560 · 600)
     --bp-md   720px  large phone / phablet   (was 640 · 680 · 720)
     --bp-lg   940px  tablet portrait         (was 760 · 820 · 880 · 940)
     --bp-xl  1100px  tablet landscape        (was 1024 · 1100)
     --bp-nav 1280px  the width below which the site nav cannot fit its
                      bar (measured: it needs 1357px) and collapses
                      to the burger drawer                   (F-020)

   Custom properties CANNOT be used inside @media — no browser supports
   `@media (max-width: var(--bp-sm))`, and this project has no build
   step. So these tokens are the declared source of truth (and the value
   JS reads via getComputedStyle); each media query repeats the literal.
   Rule for editors: never invent a new number. Pick a step. If none
   fits, add it HERE first, with a reason.

   Convergence rounded every old value UP to its step. Rounding up only
   ever makes the simpler / stacked layout apply at MORE widths, so it
   can never introduce horizontal overflow; rounding down could.
   ════════════════════════════════════════════════════════════════════ */
:root {
  --bp-xs:  480px;
  --bp-sm:  600px;
  --bp-md:  720px;
  --bp-lg:  940px;
  --bp-xl: 1100px;
  --bp-nav:1280px;
}

/* ─── LIGHT · ALABASTER (default) — Pentelic marble ─────────────────── */
.theme-alabaster {
  --sym-bg-dark:  #F7F3EA;
  --sym-bg-panel: #FFFFFF;
  --sym-ink:      #1E1810;
  --sym-cream:    #FBF8F1;
  --sym-stone:    #8C7F6B;
  --sym-terra:    #C5572F;
  --sym-terra-dk: #9C3F1F;
  --sym-gold:     #A2862F;
  --sym-sage:     #5B7544;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-ink);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: light;
}

/* ─── LIGHT · PAPYRUS — warm daylight classroom ─────────────────────── */
.theme-papyrus {
  --sym-bg-dark:  #EFE7D6;
  --sym-bg-panel: #FBF6EA;
  --sym-ink:      #2A2012;
  --sym-cream:    #FBF6EA;
  --sym-stone:    #93826A;
  --sym-terra:    #C25A33;
  --sym-terra-dk: #9A4222;
  --sym-gold:     #9C7E2C;
  --sym-sage:     #5E7642;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-ink);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: light;
}

/* ─── LIGHT · AEGEAN MIST — cool marble + sea ───────────────────────── */
.theme-aegeanlight {
  --sym-bg-dark:  #EDF1F2;
  --sym-bg-panel: #FBFCFC;
  --sym-ink:      #16242C;
  --sym-cream:    #FBFCFC;
  --sym-stone:    #6E8189;
  --sym-terra:    #C7672F;
  --sym-terra-dk: #9E4E22;
  --sym-gold:     #93823A;
  --sym-sage:     #3E7E86;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-ink);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: light;
}

/* ─── DARK · HEARTH — warm dark + terra ─────────────────────────────── */
.theme-hearth {
  --sym-bg-dark:  #18120A;
  --sym-bg-panel: #241A11;
  --sym-ink:      #221B10;
  --sym-cream:    #F0EBE0;
  --sym-stone:    #95826A;
  --sym-terra:    #D97B5C;
  --sym-terra-dk: #C05535;
  --sym-gold:     #C9A44A;
  --sym-sage:     #87A06B;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── DARK · AEGEAN — midnight sea + copper ─────────────────────────── */
.theme-aegean {
  --sym-bg-dark:  #0B1018;
  --sym-bg-panel: #131F2D;
  --sym-ink:      #0F1620;
  --sym-cream:    #E9E2D2;
  --sym-stone:    #85909E;
  --sym-terra:    #E0894C;
  --sym-terra-dk: #B86A35;
  --sym-gold:     #D6B66E;
  --sym-sage:     #6FA0AB;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── DARK · AMPHORA — black-figure ink + Attic red ─────────────────── */
.theme-amphora {
  --sym-bg-dark:  #14100A;
  --sym-bg-panel: #1F1810;
  --sym-ink:      #171008;
  --sym-cream:    #ECDDBE;
  --sym-stone:    #998760;
  --sym-terra:    #D6502088;
  --sym-terra:    #D75321;
  --sym-terra-dk: #AC3719;
  --sym-gold:     #D6A02C;
  --sym-sage:     #94863F;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── DARK · OLIVE — grove green + gold ─────────────────────────────── */
.theme-olive {
  --sym-bg-dark:  #14180E;
  --sym-bg-panel: #1E2415;
  --sym-ink:      #141810;
  --sym-cream:    #ECEAD7;
  --sym-stone:    #8C926F;
  --sym-terra:    #C98A3A;
  --sym-terra-dk: #A06A26;
  --sym-gold:     #BFAE4C;
  --sym-sage:     #8AA84E;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── DARK · ORPHIC — black + iridescent violet ─────────────────────── */
.theme-orphic {
  --sym-bg-dark:  #07080C;
  --sym-bg-panel: #12131D;
  --sym-ink:      #06080C;
  --sym-cream:    #E7E4F0;
  --sym-stone:    #8782A0;
  --sym-terra:    #C97FB0;
  --sym-terra-dk: #A85C92;
  --sym-gold:     #C9B36A;
  --sym-sage:     #8E7FD6;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ════════════════════════════════════════════════════════════════════
   UNLOCKABLE THEMES — earned, like acroteria. Distinct, luminous palettes.
   ════════════════════════════════════════════════════════════════════ */

/* ─── ACROTERION · gilded temple roofline at night (bronze + verdigris) ─ */
.theme-acroterion {
  --sym-bg-dark:  #08110F;
  --sym-bg-panel: #102420;
  --sym-ink:      #06100D;
  --sym-cream:    #F0E9D2;
  --sym-stone:    #7E948A;
  --sym-terra:    #E0B24C;
  --sym-terra-dk: #BE9230;
  --sym-gold:     #E8C766;
  --sym-sage:     #3E9183;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── TYRIAN · the murex purple (royal violet + magenta) ────────────── */
.theme-tyrian {
  --sym-bg-dark:  #140A18;
  --sym-bg-panel: #1F1226;
  --sym-ink:      #100612;
  --sym-cream:    #EDE2F2;
  --sym-stone:    #8C7AA2;
  --sym-terra:    #CA64B2;
  --sym-terra-dk: #A8478F;
  --sym-gold:     #CBA86A;
  --sym-sage:     #9C7FD6;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── GOLDEN FLEECE · pure radiant gold ─────────────────────────────── */
.theme-golden-fleece {
  --sym-bg-dark:  #161003;
  --sym-bg-panel: #241906;
  --sym-ink:      #120C02;
  --sym-cream:    #F4EACE;
  --sym-stone:    #AC9966;
  --sym-terra:    #E2A93C;
  --sym-terra-dk: #BE8A26;
  --sym-gold:     #F2C44C;
  --sym-sage:     #CBA64C;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── ELYSIUM · pastel meadow + gold-green (light) ──────────────────── */
.theme-elysium {
  --sym-bg-dark:  #F1F4E6;
  --sym-bg-panel: #FBFCF4;
  --sym-ink:      #1E2418;
  --sym-cream:    #FBFCF4;
  --sym-stone:    #8A9478;
  --sym-terra:    #C58A3A;
  --sym-terra-dk: #9E6C26;
  --sym-gold:     #6F9E6A;
  --sym-sage:     #7FAE84;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-ink);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: light;
}

/* ─── DARK · OBSIDIAN — the original black + gold ───────────────────── */
.theme-obsidian {
  --sym-bg-dark:  #0A0907;
  --sym-bg-panel: #15120D;
  --sym-ink:      #080705;
  --sym-cream:    #F1E9D6;
  --sym-stone:    #897A5A;
  --sym-terra:    #E07A3C;
  --sym-terra-dk: #C05A24;
  --sym-gold:     #D2A24A;
  --sym-sage:     #8A9B5A;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── VIVID · VENETIAN — purple · gold · magenta ────────────────────── */
.theme-venetian {
  --sym-bg-dark:  #160A1E;
  --sym-bg-panel: #241036;
  --sym-ink:      #11061A;
  --sym-cream:    #F1E6F0;
  --sym-stone:    #9A7FA8;
  --sym-terra:    #D4499A;
  --sym-terra-dk: #B12F7E;
  --sym-gold:     #E3BB4B;
  --sym-sage:     #5E73D6;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── VIVID · SAFFRON — orange · amber ──────────────────────────────── */
.theme-saffron {
  --sym-bg-dark:  #1A1006;
  --sym-bg-panel: #271709;
  --sym-ink:      #150C03;
  --sym-cream:    #F8E9D2;
  --sym-stone:    #B0906A;
  --sym-terra:    #E8732A;
  --sym-terra-dk: #C2591A;
  --sym-gold:     #E8A23A;
  --sym-sage:     #D6A93E;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ════════════════════════════════════════════════════════════════════
   SEASONAL THEMES — re-tint + drive a matching flourish (js/seasons.js)
   ════════════════════════════════════════════════════════════════════ */

/* HALLOWEEN · mythic underworld (Katabasis) */
.theme-halloween {
  --sym-bg-dark:  #120A18;
  --sym-bg-panel: #1C1226;
  --sym-ink:      #0D0712;
  --sym-cream:    #F2E7D8;
  --sym-stone:    #8A7596;
  --sym-terra:    #ED7A28;
  --sym-terra-dk: #C85E12;
  --sym-gold:     #E0962E;
  --sym-sage:     #7E5AA6;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* CHRISTMAS · winter (Solstice) — light */
.theme-christmas {
  --sym-bg-dark:  #FAF5EE;
  --sym-bg-panel: #FFFFFF;
  --sym-ink:      #2A1713;
  --sym-cream:    #FFFFFF;
  --sym-stone:    #8A6F62;
  --sym-terra:    #B5302A;
  --sym-terra-dk: #8E211D;
  --sym-gold:     #BC9438;
  --sym-sage:     #2F6B47;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-ink);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: light;
}

/* EASTER · spring (Anastasi) — light */
.theme-easter {
  --sym-bg-dark:  #F6F6EC;
  --sym-bg-panel: #FFFFFF;
  --sym-ink:      #243218;
  --sym-cream:    #FFFFFF;
  --sym-stone:    #7E8568;
  --sym-terra:    #DE7E6A;
  --sym-terra-dk: #C25C48;
  --sym-gold:     #C9A93F;
  --sym-sage:     #5FA05A;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-ink);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: light;
}

/* CARNIVAL · Apokries — Venetian dark */
.theme-carnival {
  --sym-bg-dark:  #160A1E;
  --sym-bg-panel: #241036;
  --sym-ink:      #11061A;
  --sym-cream:    #F1E6F0;
  --sym-stone:    #9A7FA8;
  --sym-terra:    #D4499A;
  --sym-terra-dk: #B12F7E;
  --sym-gold:     #E3BB4B;
  --sym-sage:     #3FA396;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── LIGHT · CYCLADIC — whitewashed walls + Aegean blue ────────────── */
.theme-cycladic {
  --sym-bg-dark:  #EAF1F5;
  --sym-bg-panel: #FFFFFF;
  --sym-ink:      #13283A;
  --sym-cream:    #FFFFFF;
  --sym-stone:    #6E8597;
  --sym-terra:    #2E7BB5;
  --sym-terra-dk: #205C8C;
  --sym-gold:     #4DA3C7;
  --sym-sage:     #3E8E86;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-ink);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: light;
}

/* ─── DARK · PORPHYRY — imperial burgundy + gold ────────────────────── */
.theme-porphyry {
  --sym-bg-dark:  #180A0E;
  --sym-bg-panel: #251018;
  --sym-ink:      #12060A;
  --sym-cream:    #F1E1DE;
  --sym-stone:    #A07F86;
  --sym-terra:    #C13B57;
  --sym-terra-dk: #9C2A42;
  --sym-gold:     #CB8F4C;
  --sym-sage:     #B06A86;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── DARK · BRONZE — patinated bronze + verdigris ──────────────────── */
.theme-bronze {
  --sym-bg-dark:  #12120E;
  --sym-bg-panel: #1E1D15;
  --sym-ink:      #0E0E09;
  --sym-cream:    #EDE6D2;
  --sym-stone:    #94896E;
  --sym-terra:    #B5894C;
  --sym-terra-dk: #93692F;
  --sym-gold:     #CDA85A;
  --sym-sage:     #4E9B8E;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── VIVID · CORAL — coral red + teal ──────────────────────────────── */
.theme-coral {
  --sym-bg-dark:  #1C0E10;
  --sym-bg-panel: #2B1418;
  --sym-ink:      #160809;
  --sym-cream:    #FAE6E2;
  --sym-stone:    #B08882;
  --sym-terra:    #F0674E;
  --sym-terra-dk: #C94A36;
  --sym-gold:     #E8A24C;
  --sym-sage:     #3FA39A;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── SEASONAL · SPRING — Πρωτομαγιά, meadow + blossom (light) ───────── */
.theme-spring {
  --sym-bg-dark:  #EFF4E6;
  --sym-bg-panel: #FBFCF5;
  --sym-ink:      #23301B;
  --sym-cream:    #FBFCF5;
  --sym-stone:    #86977A;
  --sym-terra:    #E0759A;
  --sym-terra-dk: #C2557C;
  --sym-gold:     #C9A93F;
  --sym-sage:     #6FA85A;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-ink);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: light;
}

/* ─── SEASONAL · SUMMER — Πανηγύρι, sun + Aegean (light) ────────────── */
.theme-summer {
  --sym-bg-dark:  #FBF6E6;
  --sym-bg-panel: #FFFFFF;
  --sym-ink:      #1C3A47;
  --sym-cream:    #FFFFFF;
  --sym-stone:    #7E8B7E;
  --sym-terra:    #2E94B5;
  --sym-terra-dk: #1F7290;
  --sym-gold:     #E0A52E;
  --sym-sage:     #3FA38E;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-ink);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: light;
}

/* ─── SEASONAL · AUTUMN — Τρύγος, vintage amber + rust (dark) ───────── */
.theme-autumn {
  --sym-bg-dark:  #1A1008;
  --sym-bg-panel: #271810;
  --sym-ink:      #150B04;
  --sym-cream:    #F4E6CE;
  --sym-stone:    #AB8C66;
  --sym-terra:    #C86A2E;
  --sym-terra-dk: #A24E1E;
  --sym-gold:     #D49A38;
  --sym-sage:     #9A8A3E;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── SEASONAL · NEW YEAR — Πρωτοχρονιά, midnight + gold (dark) ──────── */
.theme-newyear {
  --sym-bg-dark:  #0A0F1C;
  --sym-bg-panel: #121A2E;
  --sym-ink:      #070B16;
  --sym-cream:    #ECE7D6;
  --sym-stone:    #7E889E;
  --sym-terra:    #E0B24C;
  --sym-terra-dk: #BE9230;
  --sym-gold:     #F2CD78;
  --sym-sage:     #5E73C6;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ════════════════════════════════════════════════════════════════════
   DERIVED SEMANTIC TOKENS — every theme inherits these computed values
   ════════════════════════════════════════════════════════════════════ */
[class*="theme-"] {
  /* font tokens — sane defaults so body-level popups (onboarding, consent,
     guide, search, notifications) that carry only a theme-* class still get the
     classical type. Direction classes (.dir-*) override these where present. */
  --disp:  'Oswald', 'Alegreya Sans', sans-serif;
  /* Alegreya Sans is the design-handoff UI face and the sans companion to
     Alegreya (same superfamily), so body copy and headings share a voice.
     Montserrat is kept as a fallback for anything still asking for it. */
  --sans:  'Alegreya Sans', 'Montserrat', system-ui, sans-serif;
  --serif: 'Alegreya', Georgia, serif;

  /* ── ΠΟΛΥΤΟΝΙΚΟ ΑΡΧΑΙΟ ΚΕΙΜΕΝΟ ──────────────────────────────────────
     Ίδια όψη με το --serif (η Alegreya μένει πρώτη· έχει και τους 233
     γλύφους του Greek Extended). Αλλάζει μόνο η ΟΥΡΑ.

     Το πρόβλημα που λύνει: αν η Alegreya δεν προλάβει να φορτώσει —
     αργό δίκτυο, font-display:swap, αποκλεισμένο CDN — η επόμενη στη
     σειρά ήταν η Georgia, που ΔΕΝ έχει καθόλου ελληνικά. Ο browser
     έπεφτε στη γενική serif και, όπου ούτε εκείνη είχε τον σύνθετο
     χαρακτήρα, αποσύνθετε το «τοὺς» σε «του» + χωριστή βαρεία: «του`ς».
     Τα δασυνόμενα φαίνονταν σωστά και μόνο η βαρεία έσπαγε, γι' αυτό
     έμοιαζε με σφάλμα δεδομένων ενώ ήταν σφάλμα γραμματοσειράς.

     Οι τέσσερις που ακολουθούν έχουν ΟΛΕΣ πλήρες πολυτονικό και καλύπτουν
     Windows, macOS, Linux και Android. Η Georgia δεν μπαίνει καθόλου. */
  --greek: 'Alegreya', 'Palatino Linotype', 'Times New Roman',
           'Noto Serif', 'DejaVu Serif', 'FreeSerif', serif;

  --bg:        var(--sym-bg);
  --card:      var(--sym-bg-card);
  --fg:        var(--sym-fg);
  --muted:     var(--sym-fg-muted);
  --terra:     var(--sym-terra);
  --terra-dk:  var(--sym-terra-dk);
  --gold:      var(--sym-gold);
  --sage:      var(--sym-sage);
  --stone:     var(--sym-stone);

  /* hairlines + tints derived from foreground so they self-adapt */
  --line:      color-mix(in srgb, var(--sym-fg) 13%, transparent);
  --line-soft: color-mix(in srgb, var(--sym-fg) 7%,  transparent);
  --line-bold: color-mix(in srgb, var(--sym-fg) 24%, transparent);
  --raise:     color-mix(in srgb, var(--sym-fg) 4%,  var(--sym-bg-card));
  --sink:      color-mix(in srgb, var(--sym-fg) 5%,  var(--sym-bg));
  --gold-soft: color-mix(in srgb, var(--sym-gold) 16%, transparent);
  --terra-soft:color-mix(in srgb, var(--sym-terra) 14%, transparent);
  --fg-70:     color-mix(in srgb, var(--sym-fg) 70%, transparent);
  --fg-50:     color-mix(in srgb, var(--sym-fg) 50%, transparent);
  --shadow:    color-mix(in srgb, var(--sym-ink, #000) 30%, transparent);
}

/* class-accent helper — set --ca on any element, get soft/line variants */
.has-accent {
  --ca-soft: color-mix(in srgb, var(--ca) 14%, transparent);
  --ca-mid:  color-mix(in srgb, var(--ca) 28%, transparent);
  --ca-ink:  color-mix(in srgb, var(--ca) 72%, var(--fg));
  --ca-tint: color-mix(in srgb, var(--ca) 9%, var(--card));
}

/* ─── LIGHT · MARBLE — cool white + slate blue ──────────────────────── */
.theme-marble {
  --sym-bg-dark:  #F2F4F7;
  --sym-bg-panel: #FFFFFF;
  --sym-ink:      #1B2430;
  --sym-cream:    #FFFFFF;
  --sym-stone:    #76808E;
  --sym-terra:    #4A6B8A;
  --sym-terra-dk: #345470;
  --sym-gold:     #9C8746;
  --sym-sage:     #4E8A86;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-ink);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: light;
}

/* ─── DARK · EMERALD — deep green + gold ────────────────────────────── */
.theme-emerald {
  --sym-bg-dark:  #08130E;
  --sym-bg-panel: #0F2018;
  --sym-ink:      #060F0B;
  --sym-cream:    #E7F0E6;
  --sym-stone:    #7E988A;
  --sym-terra:    #2FA36F;
  --sym-terra-dk: #1F7E52;
  --sym-gold:     #D8B45A;
  --sym-sage:     #2FA38E;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── DARK · MIDNIGHT — indigo + silver-gold ────────────────────────── */
.theme-midnight {
  --sym-bg-dark:  #090B16;
  --sym-bg-panel: #131730;
  --sym-ink:      #06070F;
  --sym-cream:    #E7E9F2;
  --sym-stone:    #7E889E;
  --sym-terra:    #6E7BD6;
  --sym-terra-dk: #5260BE;
  --sym-gold:     #CBB36A;
  --sym-sage:     #5E8AD6;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── VIVID · ROSEWOOD — rose + blush ───────────────────────────────── */
.theme-rose {
  --sym-bg-dark:  #1A0E12;
  --sym-bg-panel: #28141B;
  --sym-ink:      #14080C;
  --sym-cream:    #F8E2E6;
  --sym-stone:    #B0858E;
  --sym-terra:    #E0617E;
  --sym-terra-dk: #C0445F;
  --sym-gold:     #E0A24C;
  --sym-sage:     #C07FA8;
  --sym-bg:       var(--sym-bg-dark);
  --sym-bg-card:  var(--sym-bg-panel);
  --sym-fg:       var(--sym-cream);
  --sym-fg-muted: var(--sym-stone);
  color-scheme: dark;
}

/* ─── LIGHT · LINEN — warm ivory + sage ─────────────────────────────── */
.theme-linen { --sym-bg-dark:#F4EFE3; --sym-bg-panel:#FCFAF3; --sym-ink:#2A2A1E; --sym-cream:#FCFAF3; --sym-stone:#8C8770; --sym-terra:#5E7F52; --sym-terra-dk:#46633C; --sym-gold:#A98B3E; --sym-sage:#6E8B54; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-ink); --sym-fg-muted:var(--sym-stone); color-scheme:light; }
/* ─── LIGHT · PEARL — rose-grey + mauve ─────────────────────────────── */
.theme-pearl { --sym-bg-dark:#F2EEF0; --sym-bg-panel:#FCFAFB; --sym-ink:#2A2230; --sym-cream:#FCFAFB; --sym-stone:#8C8290; --sym-terra:#9C5E84; --sym-terra-dk:#7C4668; --sym-gold:#A98B5E; --sym-sage:#7E7AA0; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-ink); --sym-fg-muted:var(--sym-stone); color-scheme:light; }
/* ─── LIGHT · HONEY — cream + amber ─────────────────────────────────── */
.theme-honey { --sym-bg-dark:#F6EEDB; --sym-bg-panel:#FDF8EC; --sym-ink:#2E2410; --sym-cream:#FDF8EC; --sym-stone:#978B6A; --sym-terra:#C8862E; --sym-terra-dk:#A06820; --sym-gold:#C89A3A; --sym-sage:#6E8B4E; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-ink); --sym-fg-muted:var(--sym-stone); color-scheme:light; }
/* ─── DARK · INK — black + steel ────────────────────────────────────── */
.theme-darkink { --sym-bg-dark:#0B0D12; --sym-bg-panel:#15171E; --sym-ink:#07080C; --sym-cream:#E6E9F0; --sym-stone:#828A9A; --sym-terra:#9AA6BC; --sym-terra-dk:#6E7C92; --sym-gold:#C9B36A; --sym-sage:#6E8FA0; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
/* ─── DARK · OXBLOOD — wine + gold ──────────────────────────────────── */
.theme-wine { --sym-bg-dark:#160A0C; --sym-bg-panel:#221013; --sym-ink:#100608; --sym-cream:#F0E0DE; --sym-stone:#A07F82; --sym-terra:#9C3A3F; --sym-terra-dk:#7C2A2E; --sym-gold:#C99A4A; --sym-sage:#9C6A5E; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
/* ─── DARK · FOREST — deep green + copper ───────────────────────────── */
.theme-forest { --sym-bg-dark:#0C140E; --sym-bg-panel:#16221A; --sym-ink:#080F0A; --sym-cream:#E6EFE2; --sym-stone:#809080; --sym-terra:#C97D45; --sym-terra-dk:#A0602F; --sym-gold:#C9A85A; --sym-sage:#5E9B6E; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
/* ─── VIVID · FLAMINGO — magenta + cyan ─────────────────────────────── */
.theme-flamingo { --sym-bg-dark:#1C0A14; --sym-bg-panel:#2A1020; --sym-ink:#14060E; --sym-cream:#FAE2EE; --sym-stone:#B07F98; --sym-terra:#E84C8A; --sym-terra-dk:#C2356E; --sym-gold:#E0A24C; --sym-sage:#3FB0C0; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
/* ─── VIVID · ELECTRIC — blue + lime ────────────────────────────────── */
.theme-electric { --sym-bg-dark:#08101C; --sym-bg-panel:#101C2E; --sym-ink:#060B14; --sym-cream:#E2ECF8; --sym-stone:#7E90AA; --sym-terra:#3E7BE0; --sym-terra-dk:#2E5EBE; --sym-gold:#A8D24C; --sym-sage:#4CC0B0; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
/* ─── VIVID · ULTRAVIOLET — violet + teal ───────────────────────────── */
.theme-ultraviolet { --sym-bg-dark:#120A1E; --sym-bg-panel:#1E1232; --sym-ink:#0C0614; --sym-cream:#ECE2FA; --sym-stone:#9080B0; --sym-terra:#7E3CE0; --sym-terra-dk:#6230BE; --sym-gold:#C9A85A; --sym-sage:#3FB0A0; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
/* ─── SEASONAL · EPIPHANY (Φώτα) — icy blue, light ──────────────────── */
.theme-epiphany { --sym-bg-dark:#EAF2F6; --sym-bg-panel:#FBFDFE; --sym-ink:#16323E; --sym-cream:#FBFDFE; --sym-stone:#6E8894; --sym-terra:#2E86B5; --sym-terra-dk:#1F6790; --sym-gold:#5BA3C7; --sym-sage:#3E9186; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-ink); --sym-fg-muted:var(--sym-stone); color-scheme:light; }
/* ─── SEASONAL · ASSUMPTION (Δεκαπενταύγουστος) — Aegean, light ──────── */
.theme-assumption { --sym-bg-dark:#EFF4F7; --sym-bg-panel:#FFFFFF; --sym-ink:#163040; --sym-cream:#FFFFFF; --sym-stone:#6E8597; --sym-terra:#2E7BB5; --sym-terra-dk:#205C8C; --sym-gold:#C9A93F; --sym-sage:#3E8E86; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-ink); --sym-fg-muted:var(--sym-stone); color-scheme:light; }
/* ─── SEASONAL · LENT (Σαρακοστή) — austere lavender-grey, light ─────── */
.theme-lent { --sym-bg-dark:#ECEAEF; --sym-bg-panel:#F8F7FA; --sym-ink:#2A2632; --sym-cream:#F8F7FA; --sym-stone:#847E92; --sym-terra:#7E6F9C; --sym-terra-dk:#5F5280; --sym-gold:#9C8B5E; --sym-sage:#6E8B7A; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-ink); --sym-fg-muted:var(--sym-stone); color-scheme:light; }

/* ════════════════════════════════════════════════════════════════════
   COMBOS — familiar two-colour kits (sport-inspired, named by colour) */
.theme-royalcourt { --sym-bg-dark:#19102C; --sym-bg-panel:#241640; --sym-ink:#0F0820; --sym-cream:#F0E8FA; --sym-stone:#9686B4; --sym-terra:#E0B24C; --sym-terra-dk:#BE9230; --sym-gold:#F2CD78; --sym-sage:#8E6AD0; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-parquet { --sym-bg-dark:#0B0F0B; --sym-bg-panel:#141A12; --sym-ink:#070A07; --sym-cream:#E6F0E2; --sym-stone:#7E8C78; --sym-terra:#3FA35E; --sym-terra-dk:#2E7E46; --sym-gold:#C9A85A; --sym-sage:#4CC080; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-rosso { --sym-bg-dark:#160A0A; --sym-bg-panel:#221010; --sym-ink:#100606; --sym-cream:#F4E2DE; --sym-stone:#A87F7C; --sym-terra:#E0322E; --sym-terra-dk:#B8241F; --sym-gold:#E0B24C; --sym-sage:#E0635E; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-petrol { --sym-bg-dark:#0A1416; --sym-bg-panel:#10201F; --sym-ink:#060F10; --sym-cream:#E2F0EE; --sym-stone:#7E9694; --sym-terra:#2EC4B6; --sym-terra-dk:#1F9488; --sym-gold:#C4CDD6; --sym-sage:#6FD0C4; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-papaya { --sym-bg-dark:#0B1020; --sym-bg-panel:#121C2E; --sym-ink:#070A14; --sym-cream:#F4E8DE; --sym-stone:#8E8C9A; --sym-terra:#F0701E; --sym-terra-dk:#C25714; --sym-gold:#E0A52E; --sym-sage:#3E86E0; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-onyxgold { --sym-bg-dark:#0C0C0A; --sym-bg-panel:#18180F; --sym-ink:#080806; --sym-cream:#F4EEDE; --sym-stone:#9A8E68; --sym-terra:#F2C81E; --sym-terra-dk:#C2A015; --sym-gold:#F2D85E; --sym-sage:#BCA82E; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-navygarnet { --sym-bg-dark:#0A1024; --sym-bg-panel:#121A38; --sym-ink:#060A18; --sym-cream:#EAE2F0; --sym-stone:#8088A8; --sym-terra:#A6324C; --sym-terra-dk:#832539; --sym-gold:#D8A24C; --sym-sage:#3E5AC2; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-crimsononyx { --sym-bg-dark:#120A0C; --sym-bg-panel:#1E1012; --sym-ink:#0C0608; --sym-cream:#F4E2E4; --sym-stone:#A87F84; --sym-terra:#D42C3A; --sym-terra-dk:#A8202C; --sym-gold:#C9A85A; --sym-sage:#E0606A; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-verdeoro { --sym-bg-dark:#0A140C; --sym-bg-panel:#122010; --sym-ink:#060F08; --sym-cream:#E8F0DE; --sym-stone:#82906E; --sym-terra:#2FA85E; --sym-terra-dk:#1F7E44; --sym-gold:#F2C81E; --sym-sage:#5EC080; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-skynavy { --sym-bg-dark:#0A1420; --sym-bg-panel:#122030; --sym-ink:#060E16; --sym-cream:#E2EEF6; --sym-stone:#7E94A6; --sym-terra:#3EA8E0; --sym-terra-dk:#2E80B8; --sym-gold:#E0B24C; --sym-sage:#5EC0E0; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-crimsonwhite { --sym-bg-dark:#160C0D; --sym-bg-panel:#221416; --sym-ink:#0E0708; --sym-cream:#F4E6E6; --sym-stone:#A88A8C; --sym-terra:#E02230; --sym-terra-dk:#B41824; --sym-gold:#ECECEC; --sym-sage:#E0606A; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-goldazure { --sym-bg-dark:#0A1020; --sym-bg-panel:#121A30; --sym-ink:#060A14; --sym-cream:#EFEAD8; --sym-stone:#8E8C78; --sym-terra:#E0B22E; --sym-terra-dk:#BE9220; --sym-gold:#2E6FD0; --sym-sage:#3E86E0; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-claretsky { --sym-bg-dark:#140A10; --sym-bg-panel:#201018; --sym-ink:#0C060A; --sym-cream:#F0E2E8; --sym-stone:#A0808C; --sym-terra:#8E2A44; --sym-terra-dk:#6E1E33; --sym-gold:#6FB0E0; --sym-sage:#B04A64; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-onyxivory { --sym-bg-dark:#0C0C0C; --sym-bg-panel:#171717; --sym-ink:#080808; --sym-cream:#EFEFEF; --sym-stone:#9A9A9A; --sym-terra:#E6E6E6; --sym-terra-dk:#B8B8B8; --sym-gold:#C9A85A; --sym-sage:#B0B0B0; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-viola { --sym-bg-dark:#140E20; --sym-bg-panel:#1F1632; --sym-ink:#0C0814; --sym-cream:#EDE4FA; --sym-stone:#9286B0; --sym-terra:#8E5AC2; --sym-terra-dk:#6E40A0; --sym-gold:#ECECEC; --sym-sage:#A87FD6; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }

/* ── COMBOS · game & screen vibes (3-colour) ── */
.theme-whitewolf { --sym-bg-dark:#0C0D0F; --sym-bg-panel:#16181B; --sym-ink:#070809; --sym-cream:#ECEEF0; --sym-stone:#8A9096; --sym-terra:#C8312A; --sym-terra-dk:#A0211C; --sym-gold:#C0C6CC; --sym-sage:#8A9096; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-warforged { --sym-bg-dark:#100A06; --sym-bg-panel:#1D140C; --sym-ink:#0A0704; --sym-cream:#F0E6D6; --sym-stone:#A08C6E; --sym-terra:#E0541E; --sym-terra-dk:#B43E12; --sym-gold:#C8922E; --sym-sage:#6FA83E; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-wallcrawler { --sym-bg-dark:#0A0A12; --sym-bg-panel:#14141F; --sym-ink:#06060C; --sym-cream:#ECEEF4; --sym-stone:#8488A0; --sym-terra:#E01E2E; --sym-terra-dk:#B41420; --sym-gold:#2E5AE0; --sym-sage:#E0E0E6; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-flux { --sym-bg-dark:#0A0C10; --sym-bg-panel:#141A22; --sym-ink:#06080C; --sym-cream:#E6ECF2; --sym-stone:#8A98A6; --sym-terra:#FF7A1E; --sym-terra-dk:#D45E10; --sym-gold:#6FA8D0; --sym-sage:#C6CDD6; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-hyrule { --sym-bg-dark:#0A1209; --sym-bg-panel:#142013; --sym-ink:#060F06; --sym-cream:#EEF0DC; --sym-stone:#8A926E; --sym-terra:#2F9E4F; --sym-terra-dk:#1F7A3A; --sym-gold:#E0B82E; --sym-sage:#9A7A4E; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-plumber { --sym-bg-dark:#0E0A0A; --sym-bg-panel:#1A1210; --sym-ink:#080606; --sym-cream:#F4ECE2; --sym-stone:#A0908C; --sym-terra:#E0301E; --sym-terra-dk:#B42214; --sym-gold:#F2C81E; --sym-sage:#2E6FD0; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-parisian { --sym-bg-dark:#08101C; --sym-bg-panel:#121A2A; --sym-ink:#050A12; --sym-cream:#EAEEF4; --sym-stone:#7E8AA0; --sym-terra:#C8313F; --sym-terra-dk:#A02230; --sym-gold:#ECECEC; --sym-sage:#2E4FA0; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-royalblue { --sym-bg-dark:#0A1024; --sym-bg-panel:#121A38; --sym-ink:#060A18; --sym-cream:#E6ECF6; --sym-stone:#8088A6; --sym-terra:#2E5AE0; --sym-terra-dk:#2244B4; --sym-gold:#ECECEC; --sym-sage:#5E86E0; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-empire { --sym-bg-dark:#0A1430; --sym-bg-panel:#122247; --sym-ink:#060C1E; --sym-cream:#F4EADC; --sym-stone:#9C8E78; --sym-terra:#F57920; --sym-terra-dk:#D45E10; --sym-gold:#F59A2E; --sym-sage:#3E72D6; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
/* SEASONAL · AUTUMN — falling leaves, warm rust */
.theme-fall { --sym-bg-dark:#1A1206; --sym-bg-panel:#271B0C; --sym-ink:#120C04; --sym-cream:#F4E6CE; --sym-stone:#A88E66; --sym-terra:#C8641E; --sym-terra-dk:#A04E14; --sym-gold:#D4A02E; --sym-sage:#8A7A3E; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }

/* ── NEON · saturated accents on near-black ── */
.theme-neonpink { --sym-bg-dark:#0B0610; --sym-bg-panel:#160C1C; --sym-ink:#07040C; --sym-cream:#FCE6F2; --sym-stone:#A87FA0; --sym-terra:#FF2E88; --sym-terra-dk:#D41E6E; --sym-gold:#FF6AB0; --sym-sage:#2EE6FF; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-neoncyan { --sym-bg-dark:#04100F; --sym-bg-panel:#0A1E1D; --sym-ink:#020A0A; --sym-cream:#DCFAF6; --sym-stone:#6FA8A2; --sym-terra:#00F0FF; --sym-terra-dk:#00B8C4; --sym-gold:#5EFFE0; --sym-sage:#FF2E88; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-neonlime { --sym-bg-dark:#0A0F04; --sym-bg-panel:#141E0A; --sym-ink:#060A02; --sym-cream:#EEFAD6; --sym-stone:#94A86E; --sym-terra:#B6FF1A; --sym-terra-dk:#8AC410; --sym-gold:#E6FF66; --sym-sage:#19E0C0; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-neonviolet { --sym-bg-dark:#0A0614; --sym-bg-panel:#150C26; --sym-ink:#06040C; --sym-cream:#EEE2FC; --sym-stone:#9080B0; --sym-terra:#9B5CFF; --sym-terra-dk:#7A3EE0; --sym-gold:#C9A0FF; --sym-sage:#2EE6FF; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-neonmagenta { --sym-bg-dark:#100410; --sym-bg-panel:#1E0A1E; --sym-ink:#0A020A; --sym-cream:#FCE2FA; --sym-stone:#A87FA6; --sym-terra:#FF2EE6; --sym-terra-dk:#D41EC0; --sym-gold:#FF7AF0; --sym-sage:#2EE6FF; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-neonorange { --sym-bg-dark:#100802; --sym-bg-panel:#1E1006; --sym-ink:#0A0502; --sym-cream:#FCEAD6; --sym-stone:#A8906E; --sym-terra:#FF6A00; --sym-terra-dk:#D45400; --sym-gold:#FFA63E; --sym-sage:#00F0FF; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-synthwave { --sym-bg-dark:#0C0618; --sym-bg-panel:#170C2A; --sym-ink:#07040E; --sym-cream:#F4E2FC; --sym-stone:#9C82B0; --sym-terra:#FF2E88; --sym-terra-dk:#D41E6E; --sym-gold:#2EE6FF; --sym-sage:#9B5CFF; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }
.theme-vapor { --sym-bg-dark:#0A0A16; --sym-bg-panel:#141426; --sym-ink:#06060E; --sym-cream:#F0E6FC; --sym-stone:#8E88A8; --sym-terra:#FF6AD5; --sym-terra-dk:#D44EAE; --sym-gold:#8AC6FF; --sym-sage:#C77DFF; --sym-bg:var(--sym-bg-dark); --sym-bg-card:var(--sym-bg-panel); --sym-fg:var(--sym-cream); --sym-fg-muted:var(--sym-stone); color-scheme:dark; }