/* Animations and Microinteractions */

/* Continuous Ticker */
@keyframes tickerLoop {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Pulsing Status Dot */
@keyframes pulseDot {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.3);
    opacity: 0.7;
  }
}

/* Diamond Pulse */
@keyframes pulseDiamond {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.35) rotate(10deg);
    opacity: 0.75;
  }
}

/* Scroll Arrow Bounce */
@keyframes bounceDown {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(6px);
  }
  60% {
    transform: translateY(3px);
  }
}

/* Mechanical Key Tap */
@keyframes keyTap {
  0%, 10%, 90%, 100% {
    transform: translate(0, 0);
    box-shadow: 2px 2px 0px var(--ink);
  }
  15%, 25% {
    transform: translate(1px, 1px);
    box-shadow: 1px 1px 0px var(--ink);
  }
}

/* Simulated Audio Bar Progress */
@keyframes barProgress {
  0% { width: 10%; }
  50% { width: 85%; }
  100% { width: 10%; }
}

/* Reticle Pulse */
@keyframes reticlePulse {
  0%, 100% {
    transform: scale(0.9);
    border-color: var(--pink);
  }
  50% {
    transform: scale(1.15);
    border-color: var(--orange);
  }
}

/* Scroll Reveal States */
.reveal-init {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Staggered Delays */
.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
.delay-400 { transition-delay: 400ms; }
