/* ==========================================================================
   HSG - Hamdy Salem Group | Motion & Animations
   Architectural reveal masks, line transitions, & pure code motion.
   ========================================================================== */

/* Reveal Motion Classes triggered by IntersectionObserver */
[data-reveal] {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 800ms var(--ease-expo), transform 800ms var(--ease-expo);
  will-change: opacity, transform;
}

[data-reveal].revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger Children Motion */
[data-stagger] > * {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 600ms var(--ease-expo), transform 600ms var(--ease-expo);
}

[data-stagger].revealed > *:nth-child(1) { transition-delay: 60ms; }
[data-stagger].revealed > *:nth-child(2) { transition-delay: 140ms; }
[data-stagger].revealed > *:nth-child(3) { transition-delay: 220ms; }
[data-stagger].revealed > *:nth-child(4) { transition-delay: 300ms; }
[data-stagger].revealed > *:nth-child(5) { transition-delay: 380ms; }

[data-stagger].revealed > * {
  opacity: 1;
  transform: translateY(0);
}

/* Clip Path Architectural Image Reveal */
.reveal-mask {
  position: relative;
  overflow: hidden;
}

.reveal-mask::after {
  content: '';
  position: absolute;
  inset: 0;
  background-color: var(--ink);
  transform: scaleX(1);
  transform-origin: inset-inline-end;
  transition: transform 900ms var(--ease-expo);
  z-index: 2;
}

.reveal-mask.revealed::after {
  transform: scaleX(0);
}

/* Pulse Beacon Animation */
@keyframes pulseGlow {
  0%, 100% {
    opacity: 0.3;
    transform: scale(1);
  }
  50% {
    opacity: 0.7;
    transform: scale(1.05);
  }
}

.pulse-beacon {
  animation: pulseGlow 4s infinite ease-in-out;
}
