:root {
	--reveal-distance: 26px;
	--reveal-distance-card: 22px;
	--reveal-distance-minor: 16px;
	--reveal-duration-section: 680ms;
	--reveal-duration-card: 520ms;
	--reveal-duration-minor: 420ms;
	--reveal-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

:where([data-reveal]) {
	--reveal-delay: 0ms;
	--reveal-duration: var(--reveal-duration-section);
	--reveal-scale: 1;
	--reveal-y: var(--reveal-distance);
	opacity: 0;
	transform: translate3d(0, var(--reveal-y), 0) scale(var(--reveal-scale));
	transition-delay: var(--reveal-delay);
	transition-duration: var(--reveal-duration);
	transition-property: opacity, transform;
	transition-timing-function: var(--reveal-ease);
	will-change: opacity, transform;
}

:where([data-reveal="card"]) {
	--reveal-duration: var(--reveal-duration-card);
	--reveal-scale: 0.985;
	--reveal-y: var(--reveal-distance-card);
}

:where([data-reveal="minor"]) {
	--reveal-duration: var(--reveal-duration-minor);
	--reveal-y: var(--reveal-distance-minor);
}

:where([data-reveal="fade"]) {
	transform: none;
}

:where([data-reveal].is-revealed) {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
	will-change: auto;
}

:where([data-reveal="fade"].is-revealed) {
	transform: none;
}

body.woocommerce-shop .catalog-card[data-reveal],
body.post-type-archive-product .catalog-card[data-reveal],
body.tax-product_cat .catalog-card[data-reveal] {
	--reveal-scale: 1;
	--reveal-y: 0px;
	transform: none;
	transition-property: opacity;
	will-change: opacity;
}

body.woocommerce-shop .catalog-card[data-reveal].is-revealed,
body.post-type-archive-product .catalog-card[data-reveal].is-revealed,
body.tax-product_cat .catalog-card[data-reveal].is-revealed {
	transform: none;
	will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
	:where([data-reveal]) {
		opacity: 1;
		transform: none;
		transition: none;
		will-change: auto;
	}
}
