@keyframes glitch {
  0%,
  90%,
  100% {
    transform: translate(0);
    filter: none;
  }
  91% {
    transform: translate(-3px, 1px);
    filter: hue-rotate(30deg);
  }
  93% {
    transform: translate(3px, -1px);
    filter: hue-rotate(-30deg);
  }
  95% {
    transform: translate(-2px, 2px);
    filter: none;
  }
  97% {
    transform: translate(2px, -2px);
  }
}
@keyframes float {
  0% {
    transform: translateY(110vh) scale(0);
    opacity: 0;
  }
  10% {
    opacity: 0.35;
  }
  90% {
    opacity: 0.15;
  }
  100% {
    transform: translateY(-10vh) scale(1);
    opacity: 0;
  }
}

@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes waPulse {
  0%,
  100% {
    box-shadow: 0 4px 20px rgba(37, 211, 102, 0.45);
  }
  50% {
    box-shadow:
      0 4px 32px rgba(37, 211, 102, 0.75),
      0 0 0 10px rgba(37, 211, 102, 0.08);
  }
}

@keyframes ccm-slide-up {
  from {
    transform: translateY(40px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
@keyframes pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.3;
  }
}
@keyframes marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@keyframes shake {
  0%,
  100% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-6px);
  }
  75% {
    transform: translateX(6px);
  }
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
