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

body {
  background: linear-gradient(135deg, #0f0f23 0%, #1a1a2e 40%, #16213e 100%);
  min-height: 100vh;
}

/* Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #0f0f23; }
::-webkit-scrollbar-thumb { background: #EE1515; border-radius: 4px; }

/* Pokeball spinner */
@keyframes pokespin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes pokebounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-20px); }
}

@keyframes spriteBob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

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

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

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 10px rgba(238, 21, 21, 0.3); }
  50% { box-shadow: 0 0 25px rgba(238, 21, 21, 0.6); }
}

@keyframes starFloat {
  0%, 100% { opacity: 0.3; transform: translateY(0) scale(1); }
  50% { opacity: 1; transform: translateY(-10px) scale(1.3); }
}

.pokeball-spin {
  animation: pokespin 1s linear infinite;
}

.pokeball-bounce {
  animation: pokebounce 0.8s ease-in-out infinite;
}

.sprite-bob {
  animation: spriteBob 3s ease-in-out infinite;
}

.fade-slide-up {
  animation: fadeSlideUp 0.6s ease-out forwards;
  opacity: 0;
}

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

.glass-card {
  background: rgba(22, 33, 62, 0.6);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.glass-card-bright {
  background: rgba(30, 40, 70, 0.7);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.stat-bar {
  height: 6px;
  border-radius: 3px;
  background: rgba(255,255,255,0.1);
  overflow: hidden;
}

.stat-bar-fill {
  height: 100%;
  border-radius: 3px;
  transition: width 1s ease-out;
}

/* Type badge colors */
.type-normal { background: #A8A77A; }
.type-fire { background: #F08030; }
.type-water { background: #6890F0; }
.type-electric { background: #F8D030; color: #333; }
.type-grass { background: #78C850; }
.type-ice { background: #98D8D8; color: #333; }
.type-fighting { background: #C03028; }
.type-poison { background: #A040A0; }
.type-ground { background: #E0C068; color: #333; }
.type-flying { background: #A890F0; }
.type-psychic { background: #F85888; }
.type-bug { background: #A8B820; }
.type-rock { background: #B8A038; }
.type-ghost { background: #705898; }
.type-dragon { background: #7038F8; }
.type-dark { background: #705848; }
.type-steel { background: #B8B8D0; color: #333; }
.type-fairy { background: #EE99AC; color: #333; }

/* Shiny sparkle */
@keyframes sparkle {
  0%, 100% { opacity: 0; transform: scale(0) rotate(0deg); }
  50% { opacity: 1; transform: scale(1) rotate(180deg); }
}

.shiny-badge {
  background: linear-gradient(135deg, #FFD700, #FFA500, #FFD700);
  background-size: 200% 200%;
  animation: shimmer 2s linear infinite;
}

/* Drag and drop zone */
.drop-zone {
  border: 2px dashed rgba(255,255,255,0.25);
  transition: all 0.3s ease;
}
.drop-zone:hover, .drop-zone.drag-over {
  border-color: #EE1515;
  background: rgba(238, 21, 21, 0.05);
}

/* Star particles background */
.star-particle {
  position: fixed;
  width: 2px;
  height: 2px;
  background: white;
  border-radius: 50%;
  pointer-events: none;
  animation: starFloat 4s ease-in-out infinite;
}

/* Mechanic selection glow effects */
.mechanic-mega { border-color: #F08030; box-shadow: 0 0 15px rgba(240, 128, 48, 0.4); }
.mechanic-zmove { border-color: #F8D030; box-shadow: 0 0 15px rgba(248, 208, 48, 0.4); }
.mechanic-dynamax { border-color: #C850C0; box-shadow: 0 0 15px rgba(200, 80, 192, 0.4); }
.mechanic-tera { border-color: #40C8E0; box-shadow: 0 0 15px rgba(64, 200, 224, 0.4); }