/* ==========================================================================
   Humberto Murillo Vargas - Modern Animations & Keyframes
   ========================================================================== */

/* Floating movement for Avatar */
@keyframes float-slow {
  0% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-12px) rotate(1deg);
  }
  100% {
    transform: translateY(0px) rotate(0deg);
  }
}

/* Floating movement for Badges */
@keyframes float-badge {
  0% {
    transform: translateY(0px);
  }
  100% {
    transform: translateY(-8px);
  }
}

/* Pulse Ring on Status Dots */
@keyframes pulse-ring {
  0% {
    transform: scale(0.9);
    opacity: 0.9;
  }
  50% {
    transform: scale(1.6);
    opacity: 0;
  }
  100% {
    transform: scale(0.9);
    opacity: 0;
  }
}

/* SVG Line Data Stream Animation for n8n */
@keyframes flow-dash {
  0% {
    stroke-dashoffset: 40;
  }
  100% {
    stroke-dashoffset: 0;
  }
}

/* Node Glow Pulse when executing */
@keyframes node-pulse {
  0% {
    box-shadow: 0 0 10px rgba(6, 182, 212, 0.4);
    transform: scale(1);
  }
  50% {
    box-shadow: 0 0 35px rgba(6, 182, 212, 0.8), 0 0 15px rgba(16, 185, 129, 0.5);
    transform: scale(1.03);
  }
  100% {
    box-shadow: 0 0 10px rgba(6, 182, 212, 0.4);
    transform: scale(1);
  }
}

/* Terminal Cursor Blink */
@keyframes blink {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
}

/* Shimmer Light on Buttons */
@keyframes btn-shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

/* Radar Scan Rotation for Cybersecurity */
@keyframes radar-scan {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* Scroll Reveal Base Classes (Fail-safe: default to visible) */
.reveal-item {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

body.has-scroll-reveal .reveal-item:not(.revealed) {
  opacity: 0;
  transform: translateY(28px);
}

.reveal-item.revealed {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

/* Floating WhatsApp Notification Badge Bounce */
@keyframes wa-bounce {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.08);
  }
}

.floating-wa-btn {
  animation: wa-bounce 3.5s ease-in-out infinite;
}

/* Data Packet Circle moving along connector */
.data-packet {
  fill: #00f2fe;
  filter: drop-shadow(0 0 8px #00f2fe);
  transition: all 0.5s linear;
}
