/* ==========================================================================
   K GREY RESOLUTE — ANIMATIONS & MOTION
   ========================================================================== */

/* ==================== Keyframes ==================== */

/* Scan line animation for CCTV monitor */
@keyframes scan {
  0%   { top: 0; }
  50%  { top: 100%; }
  100% { top: 0; }
}

/* Optional: Fade up keyframes */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Optional: Pulse for attention */
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}

/* ==================== IntersectionObserver Utilities ==================== */

/* Base state — hidden & shifted down */
.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity var(--duration-slow) var(--ease-out),
              transform var(--duration-slow) var(--ease-out);
}

/* Active state — visible */
.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Staggered delays for sequential reveals */
.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; }

