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

@keyframes loadingDot {
  0%,
  80%,
  100% {
    transform: scale(0.7);
    opacity: 0.48;
  }
  40% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes shakeX {
  0%,
  100% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-6px);
  }
  50% {
    transform: translateX(6px);
  }
  75% {
    transform: translateX(-4px);
  }
}

@keyframes pulseDot {
  0%,
  100% {
    box-shadow: inset 0 0 0 8px rgba(255, 255, 255, 0.32), 0 0 0 0 rgba(22, 160, 109, 0.35);
  }
  50% {
    box-shadow: inset 0 0 0 8px rgba(255, 255, 255, 0.32), 0 0 0 8px rgba(22, 160, 109, 0);
  }
}
