/* Minimal AOS-like CSS: initial states and transitions for common effects */
[data-aos] { opacity: 0; }
[data-aos].aos-init { will-change: transform, opacity; }

/* Fade up */
[data-aos="fade-up"].aos-init { transform: translateY(20px); }
[data-aos="fade-up"].aos-animate { transform: translateY(0); opacity:1; transition: transform var(--aos-duration,800ms) var(--aos-easing, ease-out), opacity var(--aos-duration,800ms) var(--aos-easing, ease-out); }

/* Fade down */
[data-aos="fade-down"].aos-init { transform: translateY(-20px); }
[data-aos="fade-down"].aos-animate { transform: translateY(0); opacity:1; transition: transform var(--aos-duration,800ms) var(--aos-easing, ease-out), opacity var(--aos-duration,800ms) var(--aos-easing, ease-out); }

/* Fade-left */
[data-aos="fade-left"].aos-init { transform: translateX(-20px); }
[data-aos="fade-left"].aos-animate { transform: translateX(0); opacity:1; transition: transform var(--aos-duration,800ms) var(--aos-easing, ease-out), opacity var(--aos-duration,800ms) var(--aos-easing, ease-out); }

/* Fade-right */
[data-aos="fade-right"].aos-init { transform: translateX(20px); }
[data-aos="fade-right"].aos-animate { transform: translateX(0); opacity:1; transition: transform var(--aos-duration,800ms) var(--aos-easing, ease-out), opacity var(--aos-duration,800ms) var(--aos-easing, ease-out); }

/* Zoom-in */
[data-aos="zoom-in"].aos-init { transform: scale(.96); }
[data-aos="zoom-in"].aos-animate { transform: scale(1); opacity:1; transition: transform var(--aos-duration,800ms) var(--aos-easing, ease-out), opacity var(--aos-duration,800ms) var(--aos-easing, ease-out); }

/* Utility: when no JS, show elements */
.no-js [data-aos] { opacity: 1; transform: none; }
