.xhose-preloader {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: grid;
	background:
		radial-gradient(circle at 50% 44%, rgba(255, 255, 255, .86), transparent 25%),
		linear-gradient(145deg, #fffaf6, #eadfd8);
	place-items: center;
	touch-action: none;
	animation: xhose-preloader-lifetime 2s linear forwards;
}

body.xhose-preloader-active {
	overflow: hidden;
}

.xhose-preloader.is-leaving {
	opacity: 0;
	pointer-events: none;
	transition: opacity .6s cubic-bezier(.4, 0, .2, 1);
}

.xhose-preloader__stage {
	position: relative;
	display: grid;
	width: min(72vw, 430px);
	aspect-ratio: 1;
	place-items: center;
}

.xhose-preloader__orbit {
	position: absolute;
	width: 82%;
	aspect-ratio: 1;
	border: 1px solid rgba(85, 25, 51, .3);
	border-radius: 50%;
	animation: xhose-preloader-orbit 2s linear infinite;
}

.xhose-preloader__orbit::before {
	position: absolute;
	top: -5px;
	left: calc(50% - 5px);
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #551933;
	box-shadow: 0 0 0 7px rgba(85, 25, 51, .06), 0 0 28px rgba(85, 25, 51, .42);
	content: "";
}

.xhose-preloader__orbit::after {
	position: absolute;
	inset: 11%;
	border: 1px solid rgba(85, 25, 51, .09);
	border-radius: inherit;
	content: "";
}

.xhose-preloader__logo {
	position: relative;
	z-index: 2;
	width: min(21%, 92px);
	height: auto;
	object-fit: contain;
	filter: sepia(1) saturate(3.7) hue-rotate(312deg) brightness(.58) drop-shadow(0 18px 22px rgba(85, 25, 51, .12));
	animation: xhose-preloader-pulse 2s cubic-bezier(.4, 0, .2, 1) infinite;
}

.xhose-preloader__progress {
	position: absolute;
	right: 9%;
	bottom: 2%;
	left: 9%;
	height: 1px;
	background: rgba(85, 25, 51, .14);
	overflow: hidden;
}

.xhose-preloader__progress span {
	display: block;
	width: 100%;
	height: 100%;
	background: #551933;
	transform: scaleX(0);
	transform-origin: left;
	animation: xhose-preloader-progress 2s linear forwards;
}

@keyframes xhose-preloader-lifetime {
	0%, 84% {
		opacity: 1;
		visibility: visible;
	}
	100% {
		opacity: 0;
		visibility: hidden;
	}
}

@keyframes xhose-preloader-orbit {
	to { transform: rotate(360deg); }
}

@keyframes xhose-preloader-pulse {
	0%, 100% {
		opacity: .84;
		transform: scale(.96);
	}
	50% {
		opacity: 1;
		transform: scale(1.045);
	}
}

@keyframes xhose-preloader-progress {
	to { transform: scaleX(1); }
}

@media (max-width: 600px) {
	.xhose-preloader__stage {
		width: min(86vw, 390px);
	}

	.xhose-preloader__logo {
		width: min(22%, 82px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.xhose-preloader {
		animation: xhose-preloader-reduced 2s step-end forwards;
	}

	.xhose-preloader.is-leaving {
		transition: none;
	}

	.xhose-preloader__orbit,
	.xhose-preloader__logo,
	.xhose-preloader__progress span {
		animation: none;
	}

	@keyframes xhose-preloader-reduced {
		0% { opacity: 1; visibility: visible; }
		100% { opacity: 0; visibility: hidden; }
	}
}
