/* ═══════════════════════════════════════════
   GLOBAL RESET & VARIABLES
═══════════════════════════════════════════ */
*, *::before, *::after {
  box-sizing:border-box;
  margin:0;
  padding:0;
  scrollbar-width: thin;
}

html { scroll-behavior:smooth; }

:root {
  --bg:        #0c0c0a;
  --bg2:       #111110;
  --bg3:       #161614;
  --amber:     #e8930a;
  --amber-lt:  #f5aa30;
  --amber-dim: #7a4b05;
  --amber-rgb: 232,147,10;
  --amber-glow:rgba(var(--amber-rgb),.12);
  --text:      #f0ede6;
  --muted:     #7a756e;
  --muted2:    #3a3830;
  --border:    #222220;
  --border2:   #2a2a28;
  --rust:      #c0451a;
}

/* ── CRIMSON THEME ── */
:root.theme-crimson {
  --amber:     #dc143c;
  --amber-lt:  #e8385a;
  --amber-dim: #7a0a1e;
  --amber-rgb: 220,20,60;
  --amber-glow:rgba(220,20,60,.12);
  --rust:      #a00a28;
}

/* ── EMERALD THEME ── */
:root.theme-emerald {
  --amber:     #2ecc71;
  --amber-lt:  #4ddb88;
  --amber-dim: #0e6632;
  --amber-rgb: 46,204,113;
  --amber-glow:rgba(46,204,113,.12);
  --rust:      #1a8a48;
}

/* ── ROYAL PURPLE THEME ── */
:root.theme-purple {
  --amber:     #7b2ff7;
  --amber-lt:  #9b59f9;
  --amber-dim: #3d1a7a;
  --amber-rgb: 123,47,247;
  --amber-glow:rgba(123,47,247,.12);
  --rust:      #5a1dbf;
}

/* ── GLITCH OVERLAY — HORIZONTAL SLICES ── */
#glitch-overlay {
  position:fixed; inset:0; z-index:99998;
  pointer-events:none;
  opacity:0;
}
#glitch-overlay .g-slice {
  position:absolute; left:0; right:0;
  background:var(--bg);
}
#glitch-flash {
  position:fixed; inset:0; z-index:99997;
  background:var(--amber);
  opacity:0; pointer-events:none;
  mix-blend-mode:overlay;
}
@keyframes scanline-sweep {
  from { transform:translateY(-100%); }
  to   { transform:translateY(100vh); }
}
.scanline-sweep {
  position:fixed; left:0; right:0; height:3px;
  background:var(--amber); opacity:.6; z-index:99999;
  pointer-events:none;
  animation:scanline-sweep .4s ease-in forwards;
}
body.glitching::before {
  content:''; position:fixed; inset:0; z-index:99996;
  background:rgba(255,0,60,.06);
  pointer-events:none;
}
body.glitching::after {
  content:''; position:fixed; inset:0; z-index:99995;
  background:rgba(0,60,255,.05);
  pointer-events:none;
}

/* ── THEME TOGGLE BTN ── */
.theme-toggle {
  display:flex; align-items:center; gap:8px;
  background:transparent; border:1px solid var(--border);
  padding:8px 14px; cursor:none;
  transition:border-color .2s;
  position:relative; overflow:hidden;
}
.theme-toggle:hover { border-color:var(--amber-dim); }
.tt-dot {
  width:8px; height:8px; border-radius:50%;
  flex-shrink:0; transition:transform .15s;
}
.tt-dot.amber   { background:#e8930a; }
.tt-dot.crimson { background:#dc143c; }
.tt-label {
  font-family:'DM Mono',monospace; font-size:9px;
  letter-spacing:2px; text-transform:uppercase;
  color:var(--muted); transition:color .2s;
  white-space:nowrap;
}
.theme-toggle:hover .tt-label { color:var(--amber); }
