:root {
  --ruby-red: #C62828;
  --ruby-dark: #8E0000;
  --sapphire-blue: #1565C0;
  --steel-dark: #1a1a2e;
  --steel-mid: #16213e;
  --steel-light: #0f3460;
  --gold-accent: #FFD54F;
  --text-primary: #FAFAFA;
  --text-muted: #90A4AE;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  background: var(--steel-dark);
  color: var(--text-primary);
  font-family: 'Exo 2', sans-serif;
  min-height: 100vh;
}

::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--steel-dark); }
::-webkit-scrollbar-thumb { background: var(--ruby-red); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--ruby-dark); }

@keyframes bounceIn {
  0% { transform: scale(0.3) translateY(20px); opacity: 0; }
  50% { transform: scale(1.05) translateY(-5px); opacity: 0.8; }
  100% { transform: scale(1) translateY(0); opacity: 1; }
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes statFill {
  from { width: 0; }
}

@keyframes fadeIn {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes pokeballPulse {
  0%, 100% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(-10deg) scale(1.1); }
  75% { transform: rotate(10deg) scale(1.1); }
}

@keyframes slideUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

.bounce-in { animation: bounceIn 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards; }
.fade-in { animation: fadeIn 0.3s ease-out forwards; }
.slide-up { animation: slideUp 0.4s ease-out forwards; }

.shimmer-bg {
  background: linear-gradient(90deg, #1e2a4a 25%, #2a3a5e 50%, #1e2a4a 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}

.pokeball-spin { animation: pokeballPulse 2s ease-in-out infinite; }

.stat-bar-fill { animation: statFill 0.8s ease-out forwards; }

.card-hover-effect {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.card-hover-effect:hover {
  transform: translateY(-6px) scale(1.02);
}

.glow-input:focus {
  box-shadow: 0 0 0 3px rgba(198, 40, 40, 0.4), 0 0 20px rgba(198, 40, 40, 0.15);
}

.header-gradient {
  background: linear-gradient(135deg, #8E0000 0%, #C62828 30%, #37474F 70%, #1a1a2e 100%);
}

.metallic-sheen {
  position: relative;
  overflow: hidden;
}
.metallic-sheen::after {
  content: '';
  position: absolute;
  top: 0; left: -100%; width: 50%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.05), transparent);
  animation: shimmer 4s infinite;
}

.modal-backdrop {
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(8px);
}

.type-pill { 
  font-size: 0.65rem; 
  letter-spacing: 0.05em; 
  text-shadow: 0 1px 2px rgba(0,0,0,0.5); 
}

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