html.els-pending,
html.els-revealing {
	overflow: hidden !important;
}

html.els-pending body,
html.els-revealing body {
	transform-origin: center center;
	transition: transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

html.els-pending body {
	overflow: hidden !important;
	transform: scale(0.965);
}

html.els-revealing body {
	transform: scale(1);
}

#els-loading-screen {
	animation: els-gradient-drift 8s ease-in-out infinite alternate;
	transition: opacity 900ms cubic-bezier(0.22, 1, 0.36, 1);
}

#els-loading-screen::after {
	position: absolute;
	inset: -25%;
	background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.11), transparent 42%);
	content: "";
	pointer-events: none;
	animation: els-light-drift 7s ease-in-out infinite alternate;
}

#els-loading-screen .els-content {
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	padding: 32px;
}

#els-loading-screen .els-logo,
#els-loading-screen .els-subheading {
	transform: translateY(12px);
	transition:
		opacity 650ms cubic-bezier(0.22, 1, 0.36, 1),
		transform 650ms cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}

#els-loading-screen .els-logo.els-is-visible,
#els-loading-screen .els-subheading.els-is-visible {
	opacity: 1;
	transform: translateY(0);
}

#els-loading-screen.els-is-leaving {
	opacity: 0;
	pointer-events: none;
}

@keyframes els-gradient-drift {
	0% {
		background-position: 0% 35%;
	}

	50% {
		background-position: 70% 65%;
	}

	100% {
		background-position: 100% 35%;
	}
}

@keyframes els-light-drift {
	from {
		transform: translate3d(-3%, -2%, 0) scale(1);
	}

	to {
		transform: translate3d(4%, 3%, 0) scale(1.08);
	}
}

@media (max-width: 600px) {
	#els-loading-screen .els-content {
		padding: 24px;
	}

	#els-loading-screen .els-subheading {
		margin-top: 18px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html.els-pending body,
	html.els-revealing body,
	#els-loading-screen,
	#els-loading-screen::after,
	#els-loading-screen .els-logo,
	#els-loading-screen .els-subheading {
		animation: none !important;
		transition-duration: 180ms !important;
	}

	html.els-pending body,
	html.els-revealing body {
		transform: none;
	}
}
