/* ============================================================================
   GRUPO EDU — Animaciones (clases auxiliares)
   Los estados iniciales los fija GSAP en JS, de modo que sin JS o con
   prefers-reduced-motion el contenido se ve completo (sin riesgo de FOUC).
   ============================================================================ */

[data-reveal], [data-reveal-stagger] { will-change: transform, opacity; }
.hero__title .line em { display: inline-block; }

/* Estrella del hero: giro lento y flotación (se desactiva en reduced-motion) */
.hero__star { animation: starSpin 90s linear infinite; transform-origin: 50% 50%; }
@keyframes starSpin { to { transform: translateY(-50%) rotate(360deg); } }

.ecosystem__star { animation: starSpinSlow 120s linear infinite reverse; transform-origin: 50% 50%; }
@keyframes starSpinSlow { to { transform: rotate(360deg); } }

/* Botón magnético: micro-transform manejado por JS */
.magnetic { will-change: transform; }
