html {
  scroll-behavior: smooth;
}

.fade-in-section {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-in-section.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.fade-in-section:nth-child(1) {
  transition-delay: 0.1s;
}

.fade-in-section:nth-child(2) {
  transition-delay: 0.2s;
}

.fade-in-section:nth-child(3) {
  transition-delay: 0.3s;
}

.fade-in-section:nth-child(4) {
  transition-delay: 0.4s;
}

.fade-in-section:nth-child(5) {
  transition-delay: 0.5s;
}

@keyframes float-1 {

  0%,
  100% {
    transform: translateY(0px) translateX(0px) scale(1);
  }

  25% {
    transform: translateY(-20px) translateX(10px) scale(1.05);
  }

  50% {
    transform: translateY(-10px) translateX(-5px) scale(0.95);
  }

  75% {
    transform: translateY(-15px) translateX(8px) scale(1.02);
  }
}

@keyframes float-2 {

  0%,
  100% {
    transform: translateY(0px) translateX(0px) scale(1);
  }

  25% {
    transform: translateY(15px) translateX(-8px) scale(0.98);
  }

  50% {
    transform: translateY(8px) translateX(12px) scale(1.03);
  }

  75% {
    transform: translateY(12px) translateX(-6px) scale(0.97);
  }
}

@keyframes float-mobile {

  0%,
  100% {
    transform: translateY(0px) scale(1);
  }

  25% {
    transform: translateY(-15px) scale(1.05);
  }

  50% {
    transform: translateY(-8px) scale(0.95);
  }

  75% {
    transform: translateY(-12px) scale(1.02);
  }
}

.animate-float-1 {
  animation: float-1 8s ease-in-out infinite;
}

.animate-float-2 {
  animation: float-2 10s ease-in-out infinite;
}

.animate-float-mobile {
  animation: float-mobile 6s ease-in-out infinite;
}

.hero-image-container svg.hero-image {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.success-gradient {
  background: linear-gradient(127deg, #F9FFD6 1.63%, #D4FCE2 51.05%, #CCF5FF 100%);
}

/* Success section animation styles */
.success-section-hidden {
  opacity: 0;
  visibility: hidden;
}

.character-bounce {
  animation: characterBounce 0.8s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
  z-index: 50;
  position: relative;
}

@keyframes characterBounce {
  0% {
    opacity: 0;
    transform: translateY(100px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.text-slide-left {
  animation: slideInLeft 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
}

@keyframes slideInLeft {
  0% {
    opacity: 0;
    transform: translateX(-30px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

.text-slide-right {
  animation: slideInRight 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
}

@keyframes slideInRight {
  0% {
    opacity: 0;
    transform: translateX(30px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

.text-slide-right-bounce {
  animation: slideInRightBounce 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
}

@keyframes slideInRightBounce {
  0% {
    opacity: 0;
    transform: translateX(50px) scale(0.8);
  }
  60% {
    opacity: 1;
    transform: translateX(-5px) scale(1.05);
  }
  80% {
    transform: translateX(2px) scale(0.98);
  }
  100% {
    opacity: 1;
    transform: translateX(0) scale(1);
  }
}

.speech-bubble-fade {
  animation: speechBubbleFade 0.4s ease-in-out forwards;
}

@keyframes speechBubbleFade {
  0% {
    opacity: 0;
    transform: scale(0.8);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

.buttons-bounce {
  animation: buttonsBounce 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
}

@keyframes buttonsBounce {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.success-gif-background {
  background-image: url('images/success.gif');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: opacity 0.5s ease-in-out;
}

.speech-bubble-bg-fade {
  animation: speechBubbleBgFade 0.4s ease-in-out forwards;
}

@keyframes speechBubbleBgFade {
  0% {
    opacity: 0;
    transform: scale(0.8);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
