.animate-float {
  animation: float 6s ease-in-out infinite;
}
/* Apply the animations with a delay */
.animate\:fadein-left {
//  opacity: 0;
  animation: fadeinFromLeft 1.2s ease-out forwards;
}
.animate\:fadein-right {
//  opacity: 0;
  animation: fadeinFromRight 1.2s ease-out 0.1s forwards;
}
.animate\:fadein-top {
//  opacity: 0;
  animation: fadeinFromTop 1.2s ease-out 0.1s forwards;
}
.animate\:fadein-bottom {
//  opacity: 0;
  animation: fadeinFromBottom 1.2s ease-out 0.1s forwards;
}
/* Class to trigger the fade-out animation */
.animate\:fadeout {
  animation: fadeOut 0.5s ease-out forwards;
}

.scroll-to-top {
  position: fixed;
  right: 1rem;
  bottom: 2rem;
  display: block;
  width: 2.75rem;
  height: 2.75rem;
  text-align: center;
  color: #fff;
  background: rgba(90, 92, 105, 0.5);
  line-height: 46px;
}
.scroll-to-top:focus,
.scroll-to-top:hover {
  color: #fff;
}
.scroll-to-top:hover {
  background: #5a5c69;
}
.scroll-to-top i {
  font-weight: 800;
}
.animate\:grow-in {
  -webkit-animation-name: growIn;
  animation-name: growIn;
  -webkit-animation-duration: 0.2s;
  animation-duration: 0.2s;
  -webkit-animation-timing-function:
    transform cubic-bezier(0.18, 1.25, 0.4, 1),
    opacity cubic-bezier(0, 1, 0.4, 1);
  animation-timing-function:
    transform cubic-bezier(0.18, 1.25, 0.4, 1),
    opacity cubic-bezier(0, 1, 0.4, 1);
}

.animate\:fade-in {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
  -webkit-animation-duration: 0.2s;
  animation-duration: 0.2s;
  -webkit-animation-timing-function: opacity cubic-bezier(0, 1, 0.4, 1);
  animation-timing-function: opacity cubic-bezier(0, 1, 0.4, 1);
}
@keyframes float {
  0%,
  to {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-20px);
  }
}

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes fadeinFromLeft {
  0% {
    opacity: 0;
    transform: translateX(-100%);
  }

  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fadeinFromRight {
  0% {
    opacity: 0;
    transform: translateX(100%);
  }

  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fadeinFromTop {
  0% {
    opacity: 0;
    transform: translateY(-100%);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fadeinFromBottom {
  0% {
    opacity: 0;
    transform: translateY(100%);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@-webkit-keyframes growIn {
  0% {
    transform: scale(0.9);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes growIn {
  0% {
    transform: scale(0.9);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
/* Keyframes for the scroll-based animations */
@keyframes slideFromLeft {
  0% {
    transform: translateX(-100px);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes slideFromRight {
  0% {
    transform: translateX(100px);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes slideFromTop {
  0% {
    transform: translateY(-100px);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes slideFromBottom {
  0% {
    transform: translateY(100px);
  }
  100% {
    transform: translateY(0);
  }
}
/* Initial state for all animated elements */
.animated-element {
  opacity: 0;
  transition:
    opacity 1s ease-out,
    transform 1s ease-out;
}

/* Final state when the element is visible in the viewport */
.animated-element.is-visible {
  opacity: 1;
}

/* Apply the specific animation based on the data attribute */
.animated-element.is-visible[data-animation-type="slide-left"] {
  animation: slideFromLeft 1s forwards;
}
.animated-element.is-visible[data-animation-type="slide-right"] {
  animation: slideFromRight 1s forwards;
}
.animated-element.is-visible[data-animation-type="slide-top"] {
  animation: slideFromTop 1s forwards;
}
.animated-element.is-visible[data-animation-type="slide-bottom"] {
  animation: slideFromBottom 1s forwards;
}


    /* CSS Kustom untuk Animasi */
    .marquee-wrapper {
        overflow: hidden;
        white-space: nowrap;
    }
    .marquee-content {
        display: inline-block;
        animation: marquee-animation 20s linear infinite;
    }
    @keyframes marquee-animation {
        from { transform: translateX(100%); }
        to { transform: translateX(-100%); }
    }
    /* Berhenti saat hover */
    .marquee-wrapper:hover .marquee-content {
        animation-play-state: paused;
    }

