/* ==========================================================================
   MiGoGraphy - Motion System & Animation Grammar
   ========================================================================== */

/* Reveal Attributes */
[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.8s var(--ease-glide), transform 0.8s var(--ease-glide);
  will-change: opacity, transform;
}

[data-reveal="fade"] {
  transform: none;
  transition: opacity 0.9s var(--ease-glide);
}

[data-reveal="clip-up"] {
  clip-path: inset(100% 0 0 0);
  transform: none;
  transition: clip-path 1s var(--ease-reveal), opacity 0.8s ease;
}

[data-reveal="scale"] {
  transform: scale(0.92);
  transition: transform 0.9s var(--ease-glide), opacity 0.9s var(--ease-glide);
}

/* When In View */
[data-reveal].is-in-view {
  opacity: 1;
  transform: translateY(0) scale(1);
  clip-path: inset(0% 0 0 0);
}

/* Stagger Delays */
[data-delay="100"] { transition-delay: 100ms; }
[data-delay="200"] { transition-delay: 200ms; }
[data-delay="300"] { transition-delay: 300ms; }
[data-delay="400"] { transition-delay: 400ms; }
[data-delay="500"] { transition-delay: 500ms; }

/* Subtle Ambient Grain Animation (Optional/Performant) */
@keyframes filmGrainDrift {
  0% { transform: translate(0, 0); }
  20% { transform: translate(-2px, 3px); }
  40% { transform: translate(3px, -1px); }
  60% { transform: translate(-3px, -2px); }
  80% { transform: translate(1px, 2px); }
  100% { transform: translate(0, 0); }
}

/* Stamp Rotate Floating Keyframe */
@keyframes stampDrift {
  0%, 100% { transform: rotate(-12deg) scale(1); }
  50% { transform: rotate(-8deg) scale(1.02); }
}

.hero-stamp-watermark {
  animation: stampDrift 12s ease-in-out infinite;
}

/* ==========================================================================
   Accessibility: Prefers-Reduced-Motion Overrides
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
  }

  .intro-curtain {
    display: none !important;
  }

  .custom-cursor-follower {
    display: none !important;
  }
}
