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

.animate-fadeIn {
  animation: fadeIn 0.5s ease-out;
}

.confetti-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9999;
  overflow: hidden;
}

.confetti {
  position: absolute;
  width: 10px;
  height: 10px;
  background: linear-gradient(45deg, #8B5CF6, #EC4899);
  top: -10px;
  animation: confettiFall 3s linear forwards;
  opacity: 0;
}

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

.confetti:nth-child(odd) {
  background: linear-gradient(45deg, #3B82F6, #10B981);
}

.confetti:nth-child(3n) {
  background: linear-gradient(45deg, #F59E0B, #EF4444);
}

.confetti:nth-child(1) { left: 10%; animation-delay: 0s; }
.confetti:nth-child(2) { left: 20%; animation-delay: 0.1s; }
.confetti:nth-child(3) { left: 30%; animation-delay: 0.2s; }
.confetti:nth-child(4) { left: 40%; animation-delay: 0.3s; }
.confetti:nth-child(5) { left: 50%; animation-delay: 0.4s; }
.confetti:nth-child(6) { left: 60%; animation-delay: 0.1s; }
.confetti:nth-child(7) { left: 70%; animation-delay: 0.2s; }
.confetti:nth-child(8) { left: 80%; animation-delay: 0.3s; }
.confetti:nth-child(9) { left: 90%; animation-delay: 0.4s; }
.confetti:nth-child(10) { left: 15%; animation-delay: 0.5s; }
.confetti:nth-child(11) { left: 25%; animation-delay: 0.6s; }
.confetti:nth-child(12) { left: 35%; animation-delay: 0.7s; }
.confetti:nth-child(13) { left: 45%; animation-delay: 0.8s; }
.confetti:nth-child(14) { left: 55%; animation-delay: 0.9s; }
.confetti:nth-child(15) { left: 65%; animation-delay: 0.5s; }
.confetti:nth-child(16) { left: 75%; animation-delay: 0.6s; }
.confetti:nth-child(17) { left: 85%; animation-delay: 0.7s; }
.confetti:nth-child(18) { left: 95%; animation-delay: 0.8s; }
.confetti:nth-child(19) { left: 12%; animation-delay: 0.9s; }
.confetti:nth-child(20) { left: 22%; animation-delay: 1s; }
.confetti:nth-child(21) { left: 32%; animation-delay: 0.2s; }
.confetti:nth-child(22) { left: 42%; animation-delay: 0.4s; }
.confetti:nth-child(23) { left: 52%; animation-delay: 0.6s; }
.confetti:nth-child(24) { left: 62%; animation-delay: 0.8s; }
.confetti:nth-child(25) { left: 72%; animation-delay: 1s; }
.confetti:nth-child(26) { left: 82%; animation-delay: 0.3s; }
.confetti:nth-child(27) { left: 92%; animation-delay: 0.5s; }
.confetti:nth-child(28) { left: 18%; animation-delay: 0.7s; }
.confetti:nth-child(29) { left: 28%; animation-delay: 0.9s; }
.confetti:nth-child(30) { left: 38%; animation-delay: 0.1s; }
.confetti:nth-child(31) { left: 48%; animation-delay: 0.3s; }
.confetti:nth-child(32) { left: 58%; animation-delay: 0.5s; }
.confetti:nth-child(33) { left: 68%; animation-delay: 0.7s; }
.confetti:nth-child(34) { left: 78%; animation-delay: 0.9s; }
.confetti:nth-child(35) { left: 88%; animation-delay: 0.2s; }
.confetti:nth-child(36) { left: 8%; animation-delay: 0.4s; }
.confetti:nth-child(37) { left: 24%; animation-delay: 0.6s; }
.confetti:nth-child(38) { left: 34%; animation-delay: 0.8s; }
.confetti:nth-child(39) { left: 44%; animation-delay: 1s; }
.confetti:nth-child(40) { left: 54%; animation-delay: 0.2s; }
.confetti:nth-child(41) { left: 64%; animation-delay: 0.4s; }
.confetti:nth-child(42) { left: 74%; animation-delay: 0.6s; }
.confetti:nth-child(43) { left: 84%; animation-delay: 0.8s; }
.confetti:nth-child(44) { left: 94%; animation-delay: 1s; }
.confetti:nth-child(45) { left: 16%; animation-delay: 0.3s; }
.confetti:nth-child(46) { left: 26%; animation-delay: 0.5s; }
.confetti:nth-child(47) { left: 36%; animation-delay: 0.7s; }
.confetti:nth-child(48) { left: 46%; animation-delay: 0.9s; }
.confetti:nth-child(49) { left: 56%; animation-delay: 0.1s; }
.confetti:nth-child(50) { left: 66%; animation-delay: 0.3s; }

/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}

/* Better focus states */
button:focus,
textarea:focus,
input:focus {
  outline: none;
}

/* Mobile optimizations */
@media (max-width: 640px) {
  .confetti {
    width: 8px;
    height: 8px;
  }
}