/**
 * Entrance animation effects for the floating box.
 *
 * Class names match the production animate enum from features.md.
 *
 * @package ZhaketAds
 */

@keyframes zads-wobble-vertical {
	16.65% { transform: translateY(8px); }
	33.3% { transform: translateY(-6px); }
	49.95% { transform: translateY(4px); }
	66.6% { transform: translateY(-2px); }
	83.25% { transform: translateY(1px); }
	100% { transform: translateY(0); }
}

@keyframes zads-pulse-shrink {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(0.92); }
}

@keyframes zads-wobble-top {
	16.65% { transform: skew(-12deg); }
	33.3% { transform: skew(10deg); }
	49.95% { transform: skew(-6deg); }
	66.6% { transform: skew(4deg); }
	83.25% { transform: skew(-2deg); }
	100% { transform: skew(0); }
}

@keyframes zads-bob {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-8px); }
}

@keyframes zads-wobble-to-top-right {
	16.65% { transform: translate(8px, -8px); }
	33.3% { transform: translate(-6px, 6px); }
	49.95% { transform: translate(4px, -4px); }
	66.6% { transform: translate(-2px, 2px); }
	83.25% { transform: translate(1px, -1px); }
	100% { transform: translate(0, 0); }
}

@keyframes zads-buzz-out {
	10%, 30%, 50%, 70%, 90% { transform: translateX(3px) rotate(2deg); }
	20%, 40%, 60%, 80% { transform: translateX(-3px) rotate(-2deg); }
	100% { transform: translateX(0) rotate(0); }
}

@keyframes zads-present-shake {
	0%, 100% { transform: rotate(0); }
	25% { transform: rotate(4deg); }
	75% { transform: rotate(-4deg); }
}

.float-ad.on.zads-animate-wobble-vertical {
	animation: zads-wobble-vertical 0.9s ease both;
}

.float-ad.on.zads-animate-pulse-shrink {
	animation: zads-pulse-shrink 0.8s ease both;
}

.float-ad.on.zads-animate-wobble-top {
	animation: zads-wobble-top 0.9s ease both;
	transform-origin: top center;
}

.float-ad.on.zads-animate-bob {
	animation: zads-bob 0.8s ease both;
}

.float-ad.on.zads-animate-wobble-to-top-right {
	animation: zads-wobble-to-top-right 0.9s ease both;
}

.float-ad.on.zads-animate-buzz-out {
	animation: zads-buzz-out 0.75s linear both;
}

.float-ad.on.zads-animate-present-shake {
	animation: zads-present-shake 0.7s ease both;
}

@media (prefers-reduced-motion: reduce) {
	.float-ad.on[class*="zads-animate-"] {
		animation: none !important;
	}
}
