* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: 'Baloo 2', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

.nav-glow:hover {
  text-shadow: 0 0 8px rgba(56, 220, 255, 0.7);
}

/* Mascot glow */
.mascot-glow {
  position: absolute;
  top: 45%;
  left: 50%;
  width: 340px;
  height: 340px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(46, 235, 180, 0.35) 0%, rgba(56, 160, 255, 0.15) 40%, transparent 70%);
  filter: blur(20px);
  animation: pulseGlow 4s ease-in-out infinite;
}
@keyframes pulseGlow {
  0%, 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 0.9; transform: translate(-50%, -50%) scale(1.12); }
}

/* Mascot idle bob */
.mascot-bob {
  animation: bob 5s ease-in-out infinite;
}
@keyframes bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

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

/* Confetti */
.confetti-piece {
  position: absolute;
  width: 9px;
  height: 9px;
  border-radius: 2px;
  opacity: 0;
  animation: confettiFly 1.1s ease-out forwards;
}
@keyframes confettiFly {
  0% { opacity: 1; transform: translate(-50%, -50%) rotate(0deg); }
  100% { opacity: 0; transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) rotate(540deg); }
}

::selection { background: rgba(56, 220, 255, 0.35); }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #061c32; }
::-webkit-scrollbar-thumb { background: #1a4a7a; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #2a6aaa; }