/* Anti-FOUC: nascondi elementi finché GSAP non li inizializza */
[data-gsap]:not(.gsap-ready),
[class*="gsap-"]:not(.gsap-ready):not(.gsap-parallax):not(.gsap-pin):not(.gsap-marquee):not(.gsap-progress-bar):not(.gsap-magnetic):not(.gsap-line):not(.gsap-word):not(.gsap-char):not(.gsap-line-wrap):not(.gsap-marquee-track) {
	visibility: hidden;
}

/* Effetti visibili durante il caricamento (fanno affidamento sullo scroll o su hover) */
[data-gsap="parallax"]:not(.gsap-ready),
[data-gsap="pin"]:not(.gsap-ready),
[data-gsap="marquee"]:not(.gsap-ready),
[data-gsap="progress-bar"]:not(.gsap-ready),
[data-gsap="magnetic"]:not(.gsap-ready),
.gsap-parallax:not(.gsap-ready),
.gsap-pin:not(.gsap-ready),
.gsap-marquee:not(.gsap-ready),
.gsap-progress-bar:not(.gsap-ready),
.gsap-magnetic:not(.gsap-ready) {
	visibility: visible;
}

/* Wrapper e span generati dallo splitter */
[data-gsap] .gsap-line-wrap {
	overflow: hidden;
	display: block;
}
[data-gsap] .gsap-line,
[data-gsap] .gsap-word,
[data-gsap] .gsap-char {
	display: inline-block;
	will-change: transform, opacity;
}

/* Marquee */
[data-gsap="marquee"] {
	overflow: hidden;
}
.gsap-marquee-track {
	display: inline-flex;
	white-space: nowrap;
	will-change: transform;
}
.gsap-marquee-track > * {
	flex-shrink: 0;
	padding-right: 2rem;
}

/* Magnetic */
[data-gsap="magnetic"] {
	display: inline-block;
	will-change: transform;
}

/* Progress bar */
[data-gsap="progress-bar"] {
	transform-origin: left center;
}

@media (prefers-reduced-motion: reduce) {
	[data-gsap] {
		visibility: visible !important;
		opacity: 1 !important;
		transform: none !important;
		clip-path: none !important;
		filter: none !important;
	}
}
