/* Motion is progressive: content remains visible until JavaScript observes it. */
.motion-reveal {
	transition: opacity 600ms ease, transform 600ms cubic-bezier(.2,.75,.25,1);
	transition-delay: var(--motion-delay, 0ms);
}
.motion-reveal.is-pending {
	opacity: 0;
	transform: translateY(24px);
}

.hero__content > h1,
.hero__content > p,
.hero__content > .text-link {
	animation: levefort-hero-enter 750ms cubic-bezier(.2,.75,.25,1) both;
}
.hero__content > p { animation-delay: 110ms; }
.hero__content > .text-link { animation-delay: 220ms; }
@keyframes levefort-hero-enter {
	from { opacity: 0; transform: translateY(24px); }
	to { opacity: 1; transform: translateY(0); }
}

.text-link::after,
.button::after {
	display: inline-block;
	transition: transform 220ms cubic-bezier(.2,.75,.25,1);
}
.text-link:hover::after,
.text-link:focus-visible::after,
.button:hover::after,
.button:focus-visible::after { transform: translate(3px, 3px); }
.button:active { transform: translateY(0) scale(.98); }

.models__panel.is-active:not([hidden]) {
	animation: levefort-panel-enter 380ms cubic-bezier(.2,.75,.25,1) both;
}
@keyframes levefort-panel-enter {
	from { opacity: .55; transform: translateY(10px); }
	to { opacity: 1; transform: translateY(0); }
}
.models__choices button {
	transition: color 180ms ease, transform 180ms ease;
}
.models__choices button:hover,
.models__choices button:focus-visible { transform: translateX(4px); }
.models__image img { transition: transform 500ms cubic-bezier(.2,.75,.25,1), opacity 180ms ease; }
.models__image:hover img { transform: scale(1.025); }
.models__image img.is-changing { opacity: .35; }

.product-card a { display: block; transition: transform 250ms ease; }
.product-card a:hover,
.product-card a:focus-visible { transform: translateY(-5px); }
.product-card a:active { transform: translateY(-1px); }
.product-card img { transition: transform 450ms cubic-bezier(.2,.75,.25,1); }
.product-card a:hover img,
.product-card a:focus-visible img { transform: scale(1.055); }

@media (prefers-reduced-motion: reduce) {
	.motion-reveal,
	.models__choices button,
	.models__image img,
	.product-card a,
	.product-card img,
	.text-link::after,
	.button::after { transition: none !important; }
	.motion-reveal.is-pending { opacity: 1; transform: none; }
	.hero__content > h1,
	.hero__content > p,
	.hero__content > .text-link,
	.models__panel.is-active:not([hidden]) { animation: none; }
	.models__choices button:hover,
	.models__choices button:focus-visible,
	.models__image:hover img,
	.button:hover,
	.button:focus-visible,
	.button:active,
	.product-card a:hover,
	.product-card a:focus-visible,
	.product-card a:hover img,
	.product-card a:focus-visible img,
	.text-link:hover::after,
	.text-link:focus-visible::after,
	.button:hover::after,
	.button:focus-visible::after { transform: none; }
	.models__image img.is-changing { opacity: 1; }
}
