/* css/animations.css */

/* Entry Animations */
.reveal {
  opacity: 0;
  transition: opacity var(--transition-slow), transform var(--transition-slow);
}

.reveal-up {
  transform: translateY(30px);
}

.reveal-down {
  transform: translateY(-30px);
}

.reveal-left {
  transform: translateX(-40px);
}

.reveal-right {
  transform: translateX(40px);
}

.reveal.active {
  opacity: 1;
  transform: translate(0, 0);
}

/* Stagger Delay Utilities */
.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
.delay-400 { transition-delay: 400ms; }
.delay-500 { transition-delay: 500ms; }

/* Pulse Animation for glowing badges or indicators */
@keyframes pulse-glow {
  0% {
    box-shadow: 0 0 0 0 rgba(0, 242, 254, 0.4);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(0, 242, 254, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(0, 242, 254, 0);
  }
}

.pulse-indicator {
  animation: pulse-glow 2s infinite;
  border-radius: var(--radius-full);
}

/* Float Animation */
@keyframes float {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0px); }
}

.float-animation {
  animation: float 4s ease-in-out infinite;
}

/* Typing Effect (for hero header, optional display element) */
@keyframes blink {
  50% { border-color: transparent }
}

.cursor-blink::after {
  content: '|';
  animation: blink 1s step-end infinite;
  color: var(--accent-cyan);
}
