/* Orchestrateur Wellsy — primitives d'animation (transform/opacity uniquement). */

/* Pré-masquage AVANT JS : seulement si html.wy-anim (posé en <head>) et JS animant.
   Sans JS / sans la classe => contenu visible (SEO + accessibilité préservés). */
html.wy-anim [data-reveal],
html.wy-anim [data-split],
html.wy-anim [data-img-reveal],
html.wy-anim [data-reveal-item] {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .8s ease, transform .9s cubic-bezier(.2, .7, .2, 1);
	will-change: opacity, transform;
}
html.wy-anim [data-line] { transform: scaleX(0); transform-origin: left center; }
html.wy-anim [data-reveal][data-reveal="down"]  { transform: translateY(-28px); }
html.wy-anim [data-reveal][data-reveal="left"]  { transform: translateX(-32px); }
html.wy-anim [data-reveal][data-reveal="right"] { transform: translateX(32px); }
html.wy-anim [data-reveal][data-reveal="fade"]  { transform: none; }

html.wy-anim [data-reveal].is-visible,
html.wy-anim [data-split].is-visible,
html.wy-anim [data-img-reveal].is-visible,
html.wy-anim [data-reveal-item].is-visible {
	opacity: 1;
	transform: none;
}

/* Quand GSAP gère le tween, il pilote l'inline style ; la classe is-visible
   sert de filet (état final). */

/* Hero Solenne : pré-masquage anti-flash des lignes de titre + éléments staggered. */
html.wy-anim [data-wy-hero] [data-hline] { opacity: 0; }
html.wy-anim [data-wy-hero] [data-hero-stagger] { opacity: 0; }

/* WebGL du Hero : le canvas se superpose à l'image de fond, sous l'overlay. */
.wy-hero__gl {
	position: absolute;
	inset: 0;
	z-index: -2;
	display: block;
}
.wy-hero--gl .wy-hero__bg {
	opacity: 0; /* le canvas a pris le relais ; l'image reste le fallback si le canvas échoue */
}

/* Accessibilité : aucune animation si l'utilisateur la refuse. */
@media (prefers-reduced-motion: reduce) {
	html.wy-anim [data-reveal],
	html.wy-anim [data-split],
	html.wy-anim [data-img-reveal],
	html.wy-anim [data-reveal-item],
	html.wy-anim [data-line],
	html.wy-anim [data-wy-hero] [data-hline],
	html.wy-anim [data-wy-hero] [data-hero-stagger] {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
	.wy-hero__bg, [data-parallax], [data-float] { transform: none !important; }
}
