/**
 * Motion and micro-interactions.
 *
 * @package Psychologies
 */

@keyframes psy-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-6px); }
}

.psy-animate-float {
	animation: psy-float 4s ease-in-out infinite;
}

.psy-animate-lighten {
	transition: filter var(--psy-transition-base), transform var(--psy-transition-base);
}

.psy-animate-lighten:hover,
.psy-animate-lighten:focus-within {
	filter: brightness(1.08);
	transform: scale(1.02);
}

@media (hover: none) {
	.psy-animate-lighten:active {
		filter: brightness(1.08);
	}
}

.psy-fade-in {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.6s ease, transform 0.6s ease;
	/* Fallback if JS never runs — content must stay readable */
	animation: psy-fade-in-fallback 0.01s linear 1.25s forwards;
}

.psy-fade-in.is-visible {
	opacity: 1;
	transform: translateY(0);
	animation: none;
}

@keyframes psy-fade-in-fallback {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.psy-animate-float {
		animation: none;
	}

	.psy-animate-lighten:hover,
	.psy-animate-lighten:focus-within {
		transform: none;
	}

	.psy-fade-in {
		opacity: 1;
		transform: none;
		transition: none;
		animation: none;
	}
}
