/* Custom Animation Library - animation-lib.css */

/* Sway (goyang kiri-kanan, base) */
@keyframes anim-sway {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-8deg); }
}
.anim-sway {
  /* base, jangan dipakai langsung */
}

/* Sway ke kiri (arah awal -8deg) */
.anim-sway-left {
  animation: anim-sway 4s ease-in-out infinite;
  transform-origin: top center;
}

/* Sway ke kanan (arah awal 8deg, kebalikan) */
@keyframes anim-sway-reverse {
  0% { transform: rotate(8deg); }
  50% { transform: rotate(-8deg); }
  100% { transform: rotate(8deg); }
}
.anim-sway-right {
  animation: anim-sway-reverse 3.8s ease-in-out infinite;
  transform-origin: top center;
}

/* Flip horizontal (X) */
@keyframes anim-flip-x {
  0% { transform: rotateY(0deg); }
  100% { transform: rotateY(180deg); }
}
.anim-flip-x {
  animation: anim-flip-x 0.6s cubic-bezier(0.4,0.2,0.2,1) both;
}

/* Spin (berputar) */
@keyframes anim-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
.anim-spin {
  animation: anim-spin 2.5s linear infinite;
}

/* Fade in */
@keyframes anim-fade-in {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
.anim-fade-in {
  animation: anim-fade-in 1s ease both;
}

/* Bounce (loncat) */
@keyframes anim-bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-20px); }
}
.anim-bounce {
  animation: anim-bounce 1.2s cubic-bezier(.68,-0.55,.27,1.55) infinite;
}

/* Utility: delay & duration */
.anim-delay-200 { animation-delay: 0.2s; }
.anim-delay-400 { animation-delay: 0.4s; }
.anim-delay-600 { animation-delay: 0.6s; }
.anim-duration-500 { animation-duration: 0.5s; }
.anim-duration-1000 { animation-duration: 1s; } 