@keyframes boop {
  0% {
    transform: scale(1);
  }
  25% {
    transform: scale(0.98);
  }
  75% {
    transform: scale(1.025);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes bounce-enter {
  0% {
    opacity: 0;
    transform: scale(0.5);
  }
  70% {
    opacity: 1;
    transform: scale(1.2);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes bounce-enter-strong {
  0% {
    opacity: 0;
    transform: scale(0.5);
  }
  70% {
    opacity: 1;
    transform: scale(1.5);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes bounce-exit {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(0.5);
  }
}

@keyframes filling {
  0% {
    transform: scaleX(0);
  }
  100% {
    transform: scaleX(1);
  }
}

@keyframes loader-dash {
  0% {
    stroke-dashoffset: 38;
    stroke-dasharray: 38;
  }
  50% {
    stroke-dashoffset: 70;
    stroke-dasharray: 70;
    transform: rotate(180deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes pulsation {
  50% {
    opacity: 0.5;
  }
}

@keyframes pulse {
  25% {
    transform: scale(1.25);
  }
  50% {
    transform: scale(1);
  }
}

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

@keyframes slide-down {
  0% {
    transform: translateY(var(--tw-slide-down, -100%));
  }
  100% {
    transform: translateY(0%);
  }
}

@keyframes slide-right-enter {
  0% {
    transform: translateX(100%);
    opacity: 0;
  }
  100% {
    transform: translateX(0%);
    opacity: 1;
  }
}

@keyframes slide-right-exit {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(101%);
  }
}

@keyframes slide-up {
  0% {
    transform: translateY(var(--tw-slide-up, 100%));
  }
  100% {
    transform: translateY(0%);
  }
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes tick {
  0% {
    transform: rotateX(0deg);
  }
  100% {
    transform: rotateX(-180deg);
  }
}

@keyframes tock {
  0% {
    transform: rotateX(180deg);
  }
  100% {
    transform: rotateX(0deg);
  }
}

@keyframes wave {
  0% {
    transform: translate(100px, 140px);
  }
  10% {
    transform: translate(100px, 140px);
  }
  100% {
    transform: translate(0px, 0px);
  }
}

@keyframes backdrop-fade-in {
  0% {
    backdrop-filter: blur(0px);
    opacity: 0;
  }
  100% {
    backdrop-filter: blur(10px);
    opacity: 0.8;
  }
}

@keyframes backdrop-fade-out {
  0% {
    backdrop-filter: blur(10px);
    opacity: 0.8;
  }
  100% {
    backdrop-filter: blur(0px);
    opacity: 0;
  }
}

@keyframes backdrop-sweep-in {
  0% {
    backdrop-filter: blur(0px);
    opacity: 0;
    transform: translateX(-100%);
  }
  100% {
    backdrop-filter: blur(10px);
    opacity: 0.8;
    transform: translateX(0%);
  }
}

@keyframes backdrop-sweep-out {
  0% {
    backdrop-filter: blur(10px);
    opacity: 0.8;
    transform: translateX(0%);
  }
  100% {
    backdrop-filter: blur(0px);
    opacity: 0;
    transform: translateX(100%);
  }
}

@keyframes bounce {
  0%,
  100% {
    transform: translateY(-25%);
    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
  }
  50% {
    transform: none;
    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
  }
}

@keyframes ping {
  75%,
  100% {
    transform: scale(2);
    opacity: 0;
  }
}

@keyframes toast-enter {
  0% {
    transform: translateX(100%);
    opacity: 0;
  }
  100% {
    transform: translateX(0%);
    opacity: 1;
  }
}

@keyframes toast-exit {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(101%);
  }
}

@keyframes zoom-in {
  0% {
    transform: scale(0.3);
    opacity: 0.3;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes zoom-out {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(0.9);
    opacity: 0;
  }
}

@keyframes wiggle {
  0% {
    transform: translateX(0px);
  }
  50% {
    transform: translateX(10px);
  }
  100% {
    transform: translateX(0px);
  }
}
