/* ==========================================================================
   SiteSentryLabs — Animation Keyframes
   All motion favors transform/opacity for 60fps performance.
   ========================================================================== */

@keyframes loader-reveal {
  0% {
    opacity: 0;
    transform: scale(0.7);
    filter: drop-shadow(0 0 0 rgba(139, 92, 246, 0));
  }
  55% {
    opacity: 1;
    transform: scale(1.06) rotate(6deg);
    filter: drop-shadow(0 0 30px rgba(139, 92, 246, 0.75));
  }
  100% {
    opacity: 1;
    transform: scale(1) rotate(0deg);
    filter: drop-shadow(0 0 24px rgba(139, 92, 246, 0.6));
  }
}

@keyframes float-y {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-16px);
  }
}

@keyframes float-particle {
  0% {
    transform: translate3d(0, 0, 0);
    opacity: 0.15;
  }
  50% {
    opacity: 0.65;
  }
  100% {
    transform: translate3d(var(--drift-x, 20px), var(--drift-y, -60px), 0);
    opacity: 0.1;
  }
}

@keyframes spin-slow {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@keyframes spin-slow-reverse {
  from {
    transform: rotate(360deg);
  }
  to {
    transform: rotate(0deg);
  }
}

@keyframes pulse-glow {
  0%,
  100% {
    opacity: 0.55;
    transform: scale(1);
  }
  50% {
    opacity: 0.85;
    transform: scale(1.08);
  }
}

@keyframes scroll-line {
  0% {
    transform: scaleY(0);
    transform-origin: top;
  }
  50% {
    transform: scaleY(1);
    transform-origin: top;
  }
  51% {
    transform-origin: bottom;
  }
  100% {
    transform: scaleY(0);
    transform-origin: bottom;
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
