/**
 * Shared entrance animations
 *
 * Used on registration and submit pages.
 * Loaded via josha-animations style handle.
 *
 * @package Josha
 */

@keyframes josha-fade-up {
	from {
		opacity: 0;
		transform: translateY(32px) scale(0.96);
		filter: blur(8px);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
		filter: blur(0px);
	}
}

.josha-animate {
	opacity: 0;
	animation: josha-fade-up 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
	will-change: opacity, transform, filter;
}

.josha-animate-delay-1 { animation-delay: 0.2s; }
.josha-animate-delay-2 { animation-delay: 0.38s; }
.josha-animate-delay-3 { animation-delay: 0.55s; }
.josha-animate-delay-4 { animation-delay: 0.72s; }
.josha-animate-delay-5 { animation-delay: 0.88s; }

/* === Floating blob animations (donation hero) === */
@keyframes josha-blob-drift-1 {
	0%   { transform: translate(0,      0)      scale(1);    }
	20%  { transform: translate(-70px,  50px)   scale(1.28); }
	45%  { transform: translate(55px,  -40px)   scale(0.78); }
	70%  { transform: translate(-30px,  70px)   scale(1.18); }
	100% { transform: translate(0,      0)      scale(1);    }
}
@keyframes josha-blob-drift-2 {
	0%   { transform: translate(0,      0)      scale(1);    }
	25%  { transform: translate(80px,  -55px)   scale(0.75); }
	50%  { transform: translate(-50px,  35px)   scale(1.32); }
	75%  { transform: translate(40px,   60px)   scale(0.85); }
	100% { transform: translate(0,      0)      scale(1);    }
}
.josha-blob-drift-1 {
	animation: josha-blob-drift-1 8s ease-in-out infinite;
}
.josha-blob-drift-2 {
	animation: josha-blob-drift-2 7s ease-in-out infinite;
	animation-delay: -2.5s;
}
