html {
	scroll-behavior: smooth;
}

html.dsm-js #main {
	opacity: 0;
	animation: dsm-page-enter 480ms cubic-bezier(0.22, 1, 0.36, 1) 80ms forwards;
}

html.dsm-js .dsm-reveal {
	opacity: 0;
	transform: translate3d(0, 24px, 0);
	transition:
		opacity 520ms cubic-bezier(0.22, 1, 0.36, 1),
		transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

html.dsm-js .dsm-reveal.is-revealed {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

html.dsm-js .dsm-reveal-stagger > * {
	transition-delay: calc(var(--dsm-reveal-index, 0) * 80ms);
}

@keyframes dsm-page-enter {
	from {
		opacity: 0;
		transform: translate3d(0, 18px, 0);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
		html {
			scroll-behavior: auto;
		}

		html.dsm-js #main {
			opacity: 1;
			animation: none;
		}

		html.dsm-js .dsm-reveal {
			opacity: 1;
			transform: none;
			transition: none;
		}

		html.dsm-js .dsm-reveal-stagger > * {
			transition-delay: 0ms;
		}
}
