/* ==========================================================================
   Jighyasha Creator — Animations
   Subtle, premium, performance-conscious: transform/opacity only, driven
   by a small IntersectionObserver in assets/js/animations.js that adds
   .is-visible to [data-animate] elements as they scroll into view.
   Fully disabled under prefers-reduced-motion.
   ========================================================================== */

[data-animate] {
	opacity: 0;
	transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}
[data-animate="fade-up"] { transform: translateY(28px); }
[data-animate="reveal"] { transform: scale(0.97); }

[data-animate].is-visible {
	opacity: 1;
	transform: none;
}

/* Stagger children of grids slightly for a more editorial feel */
.video-grid [data-animate],
.collab-grid [data-animate],
.gallery-grid [data-animate] {
	transition-delay: calc(var(--stagger-index, 0) * 60ms);
}

/* Counting number fade for social stats */
.social-stat__number { transition: color 0.4s ease; }

/* Entrance keyframe used by the mobile nav panel */
@keyframes jighyasha-fade-in {
	from { opacity: 0; }
	to { opacity: 1; }
}
.mobile-nav.is-open { animation: jighyasha-fade-in 0.25s ease both; }

/* ----- Reduced motion ----- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
	[data-animate] {
		opacity: 1 !important;
		transform: none !important;
	}
}
