/* ================================================
   THEME SYSTEM — Light & Dark mode
   Auto-detects OS preference, user can override.
   ================================================ */

/* ---- DARK THEME — "Digital Sanctuary" (default fallback) ---- */
:root {
  --bg: #0a1628;
  --bg2: #0f1d33;
  --surface: rgba(15, 29, 51, 0.85);
  --glass: rgba(15, 29, 51, 0.5);
  --glass-border: rgba(94, 170, 168, 0.15);
  --text: #e5e3ff;
  --text-dim: #a0a2bc;
  --neon-green: #5eaaa8;
  --neon-cyan: #81ecff;
  --neon-purple: #6b5b95;
  --neon-gold: #d4a574;
  --neon-red: #c9a0a0;
  --neon-pink: #b8a0c9;
  --shadow-color: rgba(0, 0, 0, 0.35);
  --scrollbar-bg: #0a1628;
  --scrollbar-thumb: rgba(94, 170, 168, 0.3);
  --canvas-bg: #0a1628;
  color-scheme: dark;
}

/* ---- DARK EXPLICIT ---- */
[data-theme="dark"] {
  --bg: #0a1628;
  --bg2: #0f1d33;
  --surface: rgba(15, 29, 51, 0.85);
  --glass: rgba(15, 29, 51, 0.5);
  --glass-border: rgba(94, 170, 168, 0.15);
  --text: #e5e3ff;
  --text-dim: #a0a2bc;
  --neon-green: #5eaaa8;
  --neon-cyan: #81ecff;
  --neon-purple: #6b5b95;
  --neon-gold: #d4a574;
  --neon-red: #c9a0a0;
  --neon-pink: #b8a0c9;
  --shadow-color: rgba(0, 0, 0, 0.35);
  --scrollbar-bg: #0a1628;
  --scrollbar-thumb: rgba(94, 170, 168, 0.3);
  --canvas-bg: #0a1628;
  color-scheme: dark;
}

/* ---- LIGHT THEME ---- */
[data-theme="light"] {
  --bg: #f0f2f5;
  --bg2: #ffffff;
  --surface: rgba(255, 255, 255, 0.88);
  --glass: rgba(255, 255, 255, 0.72);
  --glass-border: rgba(0, 80, 120, 0.12);
  --text: #1a1a2e;
  --text-dim: #46466a; /* darkened for WCAG AA contrast ≥4.5:1 on light glass */
  --neon-green: #00994d;
  --neon-cyan: #007aa3;
  --neon-purple: #7b00b0;
  --neon-gold: #b38600;
  --neon-red: #cc2222;
  --neon-pink: #b0306a;
  --shadow-color: rgba(0, 0, 0, 0.08);
  --scrollbar-bg: #f0f2f5;
  --scrollbar-thumb: rgba(0, 122, 163, 0.25);
  --canvas-bg: #e8ecf0;
  color-scheme: light;
}

/* ---- Auto: OS-level preference ---- */
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    --bg: #f0f2f5;
    --bg2: #ffffff;
    --surface: rgba(255, 255, 255, 0.88);
    --glass: rgba(255, 255, 255, 0.72);
    --glass-border: rgba(0, 80, 120, 0.12);
    --text: #1a1a2e;
    --text-dim: #46466a;
    --neon-green: #00994d;
    --neon-cyan: #007aa3;
    --neon-purple: #7b00b0;
    --neon-gold: #b38600;
    --neon-red: #cc2222;
    --neon-pink: #b0306a;
    --shadow-color: rgba(0, 0, 0, 0.08);
    --scrollbar-bg: #f0f2f5;
    --scrollbar-thumb: rgba(0, 122, 163, 0.25);
    --canvas-bg: #e8ecf0;
    color-scheme: light;
  }
}

/* ---- Light-mode overrides for elements that need special treatment ---- */
[data-theme="light"] .glitch::before { color: var(--neon-cyan); }
[data-theme="light"] .glitch::after  { color: var(--neon-pink); }
[data-theme="light"] #intro-screen {
  background: radial-gradient(ellipse at center, rgba(200,220,240,0.4) 0%, rgba(240,242,245,0.88) 70%);
}
[data-theme="light"] #game-nav {
  background: rgba(255, 255, 255, 0.95);
  border-bottom-color: rgba(0, 80, 120, 0.2);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
}
[data-theme="light"] .achievement-popup {
  background: linear-gradient(135deg, rgba(255,255,255,0.96), rgba(230,240,250,0.95));
}
[data-theme="light"] .terminal-body { background: rgba(245,247,250,0.5); }
[data-theme="light"] .terminal-bar  { background: rgba(230,232,238,0.6); }
[data-theme="light"] .memory-card-back {
  background: linear-gradient(135deg, rgba(0,122,163,0.12), rgba(123,0,176,0.12));
}
[data-theme="light"] .quiz-option { background: rgba(0,0,0,0.02); }
[data-theme="light"] .maze-dir-btn { background: rgba(0,0,0,0.03); }
[data-theme="light"] .char-avatar { box-shadow: 0 0 30px rgba(0,122,163,0.2); }
[data-theme="light"] ::selection { background: var(--neon-cyan); color: #fff; }
[data-theme="light"] .hero-name {
  background: linear-gradient(135deg, #1a1a2e 0%, var(--neon-cyan) 60%, var(--neon-purple) 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
}
[data-theme="light"] .hero-title { color: var(--text); opacity: 1; }
[data-theme="light"] .hero-tagline { color: #46466a; }
[data-theme="light"] .hero-badge { background: rgba(0,122,163,0.12); color: var(--neon-cyan); }
[data-theme="light"] .hero-bg-grid {
  background-image:
    linear-gradient(rgba(0,80,120,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,80,120,0.06) 1px, transparent 1px);
}
[data-theme="light"] .hero-code { color: rgba(0,80,120,0.12); }
[data-theme="light"] .hero-code .hc-kw { color: rgba(123,0,176,0.2); }
[data-theme="light"] .hero-code .hc-fn { color: rgba(0,153,77,0.18); }
[data-theme="light"] .hero-code .hc-str { color: rgba(179,134,0,0.2); }
[data-theme="light"] .hero-stat-num { color: var(--neon-cyan); }
[data-theme="light"] .hero-cta-primary { background: #007aa3; color: #fff; border-color: #007aa3; }
[data-theme="light"] .hero-cta-primary:hover { background: transparent; color: #007aa3; }
[data-theme="light"] .hero-cta-secondary { border-color: rgba(0,80,120,0.3); }

/* Light mode also handled by OS pref when no explicit data-theme */
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) .glitch::before { color: var(--neon-cyan); }
  :root:not([data-theme="dark"]) .glitch::after  { color: var(--neon-pink); }
  :root:not([data-theme="dark"]) #intro-screen {
    background: radial-gradient(ellipse at center, rgba(200,220,240,0.4) 0%, rgba(240,242,245,0.88) 70%);
  }
  :root:not([data-theme="dark"]) #game-nav {
    background: rgba(255, 255, 255, 0.95);
    border-bottom-color: rgba(0, 80, 120, 0.2);
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
  }
  :root:not([data-theme="dark"]) .char-avatar { box-shadow: 0 0 30px rgba(0,122,163,0.2); }
  :root:not([data-theme="dark"]) ::selection { background: var(--neon-cyan); color: #fff; }
  :root:not([data-theme="dark"]) .hero-name {
    background: linear-gradient(135deg, #1a1a2e 0%, var(--neon-cyan) 60%, var(--neon-purple) 100%);
    background-size: 200% 200%;
    -webkit-background-clip: text;
    background-clip: text;
  }
  :root:not([data-theme="dark"]) .hero-title { color: var(--text); opacity: 1; }
  :root:not([data-theme="dark"]) .hero-tagline { color: #46466a; }
  :root:not([data-theme="dark"]) .hero-badge { background: rgba(0,122,163,0.12); color: var(--neon-cyan); }
  :root:not([data-theme="dark"]) .hero-stat-num { color: var(--neon-cyan); }
  :root:not([data-theme="dark"]) .hero-cta-primary { background: #007aa3; color: #fff; border-color: #007aa3; }
  :root:not([data-theme="dark"]) .hero-cta-primary:hover { background: transparent; color: #007aa3; }
  :root:not([data-theme="dark"]) .hero-cta-secondary { border-color: rgba(0,80,120,0.3); }
}
