:root {
  --amber: #ffb000;
  --amber-dark: #cc8800;
  --amber-glow: #ffd966;
  --mahogany: #4a2c2a;
  --mahogany-light: #6b3e3a;
  --cream: #f5e6c8;
  --cream-dark: #d4c4a8;
  --cyan: #00ffff;
  --magenta: #ff00ff;
  --dark-bg: #1a0f0a;
  --crt-green: #33ff33;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  background: var(--dark-bg);
  font-family: 'VT323', monospace;
  color: var(--cream);
  min-height: 100vh;
  overflow-x: hidden;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.pixel-font {
  font-family: 'Press Start 2P', cursive;
}

.vt323 {
  font-family: 'VT323', monospace;
}

@keyframes glow-pulse {
  0%, 100% { text-shadow: 0 0 10px var(--amber), 0 0 20px var(--amber), 0 0 30px var(--amber); }
  50% { text-shadow: 0 0 20px var(--amber-glow), 0 0 40px var(--amber-glow), 0 0 60px var(--amber-glow); }
}

@keyframes crt-flicker {
  0% { opacity: 0.97; }
  50% { opacity: 1; }
  100% { opacity: 0.98; }
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-5px); }
  75% { transform: translateX(5px); }
}

@keyframes correct-glow {
  0% { box-shadow: 0 0 0 rgba(0, 255, 0, 0); }
  50% { box-shadow: 0 0 30px rgba(0, 255, 0, 0.8); }
  100% { box-shadow: 0 0 0 rgba(0, 255, 0, 0); }
}

@keyframes wrong-flash {
  0%, 100% { background-color: transparent; }
  50% { background-color: rgba(255, 0, 0, 0.4); }
}

@keyframes float-up {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  100% { transform: translateY(-100px) scale(1.5); opacity: 0; }
}

@keyframes confetti-fall {
  0% { transform: translateY(-100%) rotate(0deg); opacity: 1; }
  100% { transform: translateY(100vh) rotate(720deg); opacity: 0; }
}

.glow-text {
  animation: glow-pulse 2s ease-in-out infinite;
}

.crt-effect {
  animation: crt-flicker 0.1s infinite;
}

.shake-animation {
  animation: shake 0.3s ease-in-out;
}

.correct-animation {
  animation: correct-glow 0.6s ease-out;
}

.wrong-animation {
  animation: wrong-flash 0.3s ease-in-out 2;
}

.pixel-border {
  border: 4px solid var(--amber);
  box-shadow: 
    inset -4px -4px 0 var(--mahogany),
    inset 4px 4px 0 var(--amber-glow),
    0 0 20px rgba(255, 176, 0, 0.3);
}

.pixel-button {
  font-family: 'Press Start 2P', cursive;
  background: linear-gradient(180deg, var(--amber) 0%, var(--amber-dark) 100%);
  border: 3px solid var(--amber-glow);
  color: var(--dark-bg);
  padding: 8px 16px;
  font-size: 10px;
  cursor: pointer;
  text-transform: uppercase;
  transition: all 0.1s ease;
  box-shadow: 
    4px 4px 0 var(--mahogany),
    0 0 10px rgba(255, 176, 0, 0.3);
}

.pixel-button:hover {
  transform: translate(-2px, -2px);
  box-shadow: 
    6px 6px 0 var(--mahogany),
    0 0 25px rgba(255, 176, 0, 0.6);
}

.pixel-button:active {
  transform: translate(2px, 2px);
  box-shadow: 
    2px 2px 0 var(--mahogany),
    0 0 5px rgba(255, 176, 0, 0.2);
}

.pixel-button.active {
  background: linear-gradient(180deg, var(--cyan) 0%, #008888 100%);
  border-color: var(--cyan);
  box-shadow: 
    4px 4px 0 var(--mahogany),
    0 0 20px rgba(0, 255, 255, 0.5);
}

.chess-square-light {
  background: linear-gradient(135deg, var(--cream) 0%, var(--cream-dark) 100%);
}

.chess-square-dark {
  background: linear-gradient(135deg, var(--mahogany-light) 0%, var(--mahogany) 100%);
}

.square-highlight {
  box-shadow: inset 0 0 0 4px var(--cyan);
}

.square-valid-move {
  position: relative;
}

.square-valid-move::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 30%;
  height: 30%;
  background: radial-gradient(circle, rgba(0, 255, 255, 0.8) 0%, transparent 70%);
  border-radius: 50%;
}

.led-display {
  font-family: 'VT323', monospace;
  background: #1a0a00;
  border: 2px solid var(--amber-dark);
  color: var(--amber);
  padding: 4px 8px;
  box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.8);
  text-shadow: 0 0 10px var(--amber);
}

.piece-dragging {
  transform: scale(1.15);
  filter: drop-shadow(0 8px 8px rgba(0, 0, 0, 0.5));
  z-index: 1000;
}

.scanline-border {
  border-top: 2px solid var(--amber);
  background: var(--dark-bg);
}

img {
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.star-rating {
  color: var(--amber-dark);
}

.star-rating .filled {
  color: var(--amber);
  text-shadow: 0 0 5px var(--amber);
}

.confetti-particle {
  position: fixed;
  width: 10px;
  height: 10px;
  pointer-events: none;
  animation: confetti-fall 3s linear forwards;
}

::-webkit-scrollbar {
  width: 12px;
}

::-webkit-scrollbar-track {
  background: var(--mahogany);
}

::-webkit-scrollbar-thumb {
  background: var(--amber);
  border: 2px solid var(--mahogany);
}