html.vx-loader-active body {
	overflow: hidden;
}

.vx-loader-overlay {
	position: fixed;
	inset: 0;
	z-index: 9999999999;
	display: grid;
	place-content: center;
	justify-items: center;
	gap: 18px;
	padding: 24px;
	background: rgba(255, 255, 255, 0.96);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	text-align: center;
}

html.vx-loader-active .vx-loader-overlay {
	opacity: 1;
	visibility: visible;
}

.vx-loader-overlay.is-hiding {
	opacity: 0;
	visibility: hidden;
}

.vx-loader-spinner {
	width: 50px;
	padding: 8px;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--vx-loader-color, #25b09b);
	--_m: conic-gradient(#0000 10%, #000), linear-gradient(#000 0 0) content-box;
	-webkit-mask: var(--_m);
	mask: var(--_m);
	-webkit-mask-composite: source-out;
	mask-composite: subtract;
	animation: vx-loader-spin 1s infinite linear;
}

.vx-loader-text {
	margin: 0;
	max-width: 320px;
	font: 600 14px/1.4 system-ui, sans-serif;
	letter-spacing: 0.04em;
	text-align: center;
	color: #1f2937;
}

@keyframes vx-loader-spin {
	to {
		transform: rotate(1turn);
	}
}
