/* Base styles for celebration container */
.celebration-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9999;
  overflow: hidden;
}

/* Confetti piece styles */
.confetti {
  position: absolute;
  width: 10px;
  height: 10px;
  background-color: #f00;
  opacity: 0.8;
  transform-origin: center;
}

/* Emoji confetti styles */
.emoji-confetti {
  position: absolute;
  font-size: 20px;
  user-select: none;
  animation: fall 4s linear forwards;
  z-index: 9999;
}

/* Animations */
@keyframes fall {
  0% {
    transform: translateY(-100px) rotate(0deg);
    opacity: 1;
  }
  70% {
    opacity: 1;
  }
  100% {
    transform: translateY(calc(100vh + 100px)) rotate(360deg);
    opacity: 0;
  }
}

@keyframes physics-fall {
  0% {
    transform: translateY(-10vh) translateX(0) rotate(0deg);
    opacity: 1;
  }
  25% {
    transform: translateY(25vh) translateX(10vw) rotate(90deg);
  }
  50% {
    transform: translateY(50vh) translateX(-10vw) rotate(180deg);
  }
  75% {
    transform: translateY(75vh) translateX(10vw) rotate(270deg);
    opacity: 1;
  }
  100% {
    transform: translateY(100vh) translateX(0) rotate(360deg);
    opacity: 0;
  }
}

/* Success checkmark */
.success-checkmark {
  width: 80px;
  height: 80px;
  margin: 0 auto;
  position: relative;
}

.success-checkmark .check-icon {
  width: 80px;
  height: 80px;
  position: relative;
  border-radius: 50%;
  box-sizing: content-box;
  border: 4px solid #4caf50;
}

/* Rainbow text */
.rainbow-text {
  background: linear-gradient(to right, #ff3366, #ff7e33, #ffcc33, #33cc33, #3366ff, #9933ff);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: rainbow 4s linear infinite;
  background-size: 400% 100%;
}

@keyframes rainbow {
  0% {
    background-position: 0% 50%;
  }
  100% {
    background-position: 400% 50%;
  }
}
