/******/
/*** MOTION ***/
/******/

.js .js-scroll { opacity: 0; will-change: opacity, transform; }
.js .js-scroll.fade-in.scrolled { animation: stonecrest-fade-in 0.7s var(--ease-out) both; }
.js .js-scroll.fade-in-bottom.scrolled { animation: stonecrest-fade-in-bottom 0.8s var(--ease-out) both; }

.js .js-scroll.wipe-and-zoom {
	clip-path: inset(100% 0 0 0);
	transform: translate3d(0, 0, 0) scale(1.04);
	overflow: clip;
}

.js .js-scroll.wipe-and-zoom.scrolled { animation: stonecrest-wipe-and-zoom 0.95s var(--ease-out) var(--animation-delay, 0ms) both; }
.js .js-scroll.scrolled-complete { opacity: 1; transform: none; will-change: auto; }

@keyframes stonecrest-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes stonecrest-fade-in-bottom { from { opacity: 0; transform: translate3d(0, 1.5rem, 0); } to { opacity: 1; transform: none; } }
@keyframes stonecrest-wipe-and-zoom { from { clip-path: inset(100% 0 0 0); transform: scale(1.04); opacity: 0; } to { clip-path: inset(0); transform: scale(1); opacity: 1; } }

.split-line-mask { display: block; width: 100%; overflow: hidden; }
.split-line { display: block !important; width: 100%; text-align: inherit !important; will-change: transform, opacity; }

@media (prefers-reduced-motion: reduce), print {
	*,
	*::before,
	*::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
	.js .js-scroll,
	.js .js-scroll.scrolled,
	.js .js-scroll.wipe-and-zoom,
	.js .js-scroll.wipe-and-zoom.scrolled,
	.split-line { opacity: 1 !important; transform: none !important; clip-path: none !important; animation: none !important; transition: none !important; will-change: auto !important; }
	.word-reveal__word { --word-opacity: 1 !important; }
	.market-gallery-track { transform: none !important; }
}
