/* Season Vibe by iSoftMark - front-end animation styles */

.svibe-overlay {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	pointer-events: none;
	z-index: 2147483000; /* stays above builder content (incl. Divi) without fighting native browser UI */
}

.svibe-item {
	position: absolute;
	top: -10%;
	display: block;
	line-height: 1;
	user-select: none;
	will-change: transform, opacity;
}

.svibe-item img {
	display: block;
	width: 100%;
	height: auto;
}

/* Winter / Fall / Spring petals: fall from top to bottom, fading out near the end. */
@keyframes svibe-fall {
	0% {
		transform: translateY(-10vh) translateX(0) rotate(0deg);
		opacity: 0;
	}
	8% {
		opacity: 1;
	}
	85% {
		opacity: 1;
	}
	100% {
		transform: translateY(110vh) translateX(var(--svibe-drift, 0)) rotate(360deg);
		opacity: 0;
	}
}

.svibe-fall {
	animation-name: svibe-fall;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}

/* Summer: icons fade/blink gently in place. */
@keyframes svibe-fade {
	0%,
	100% {
		opacity: 0.15;
		transform: scale(0.92);
	}
	50% {
		opacity: 1;
		transform: scale(1);
	}
}

.svibe-fade {
	animation-name: svibe-fade;
	animation-timing-function: ease-in-out;
	animation-iteration-count: infinite;
}

/* Spring butterflies: flutter across the screen with a light zig-zag path. */
@keyframes svibe-flutter {
	0% {
		transform: translate(-10vw, 0) rotate(0deg);
		opacity: 0;
	}
	10% {
		opacity: 1;
	}
	25% {
		transform: translate(20vw, -4vh) rotate(10deg);
	}
	50% {
		transform: translate(50vw, 3vh) rotate(-8deg);
	}
	75% {
		transform: translate(80vw, -3vh) rotate(10deg);
	}
	90% {
		opacity: 1;
	}
	100% {
		transform: translate(110vw, 0) rotate(0deg);
		opacity: 0;
	}
}

.svibe-flutter {
	top: var(--svibe-top, 20%);
	animation-name: svibe-flutter;
	animation-timing-function: ease-in-out;
	animation-iteration-count: infinite;
}

@media (prefers-reduced-motion: reduce) {
	.svibe-overlay.svibe-respect-reduced-motion .svibe-item {
		animation: none !important;
		opacity: 0 !important;
	}
}
