@keyframes zoomIn {
  from {
    opacity: 0;
    transform: scale(0.3);
  }
  50% {
    opacity: 1;
  }
  to {
    transform: scale(1);
  }
}

@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInTop {
  from {
    opacity: 0;
    transform: translateY(-50px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInBottom {
  from {
    opacity: 0;
    transform: translateY(50px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Zoom */
.zoom-in {
  animation: zoomIn 600ms ease 700ms both;
}

/* Base class for staggered animations */
.staggered > * {
  opacity: 0; /* Ensure hidden before animation */
  animation-duration: 600ms;
  animation-timing-function: ease;
  animation-fill-mode: both;
}

/* Slide in left */
.staggered-left > * {
  animation-name: slideInLeft;
}

/* Slide in right */
.staggered-right > * {
  animation-name: slideInRight;
}

/* Slide in top */
.staggered-top > * {
  animation-name: slideInTop;
}

/* Slide in bottom */
.staggered-bottom > * {
  animation-name: slideInBottom;
}

.staggered > *:nth-child(1) {
  animation-delay: 0ms;
}
.staggered > *:nth-child(2) {
  animation-delay: 100ms;
}
.staggered > *:nth-child(3) {
  animation-delay: 200ms;
}
.staggered > *:nth-child(4) {
  animation-delay: 300ms;
}
.staggered > *:nth-child(5) {
  animation-delay: 400ms;
}
.staggered > *:nth-child(6) {
  animation-delay: 500ms;
}
.staggered > *:nth-child(7) {
  animation-delay: 600ms;
}
.staggered > *:nth-child(8) {
  animation-delay: 700ms;
}
.staggered > *:nth-child(9) {
  animation-delay: 800ms;
}
.staggered > *:nth-child(10) {
  animation-delay: 900ms;
}

@keyframes pulseScale {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1); /* Increase size */
  }
  100% {
    transform: scale(1);
  }
}

.pulse-animation {
  animation: pulseScale 30s ease-in-out infinite; /* smooth loop */
  transform-origin: center; /* make sure scaling happens from the center */
}
