.vtpl-page-is-loading {
	overflow: hidden !important;
}

.vtpl-loader,
.vtpl-loader * {
	box-sizing: border-box;
}

.vtpl-loader {
	--vtpl-background: #061b35;
	--vtpl-background-opacity: 1;
	--vtpl-plane-color: #fff;
	--vtpl-plane-size: 82px;
	--vtpl-plane-size-mobile: 54px;
	--vtpl-fly-duration: 1600ms;
	--vtpl-blur-duration: 650ms;
	--vtpl-blur-amount: 16px;
	--vtpl-globe-size: 160px;
	--vtpl-globe-size-mobile: 112px;
	--vtpl-globe-ocean: #0b73b9;
	--vtpl-globe-land: #f3b43f;
	--vtpl-globe-grid: #bce6ff;
	--vtpl-spin-duration: 2600ms;
	--vtpl-spin-direction: normal;
	--vtpl-exit-duration: 450ms;
	--vtpl-text-color: #fff;
	--vtpl-text-size: 18px;
	--vtpl-text-size-mobile: 15px;
	--vtpl-z-index: 999999;
	position: fixed;
	inset: 0;
	z-index: var(--vtpl-z-index);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	height: 100dvh;
	margin: 0;
	padding: 0;
	overflow: hidden;
	isolation: isolate;
	visibility: visible;
	opacity: 1;
	transition: opacity var(--vtpl-exit-duration) ease, visibility 0s linear var(--vtpl-exit-duration);
	touch-action: none;
}

.vtpl-loader[data-vtpl-auto="0"]:not(.vtpl-is-running),
.vtpl-loader.vtpl-is-hidden {
	display: none;
}

.vtpl-loader.vtpl-is-exiting {
	pointer-events: none;
	visibility: hidden;
	opacity: 0;
}

.vtpl-loader__backdrop {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--vtpl-background);
	opacity: var(--vtpl-background-opacity);
}

.vtpl-loader__stage,
.vtpl-planes {
	position: absolute;
	inset: 0;
}

.vtpl-loader__stage {
	display: flex;
	align-items: center;
	justify-content: center;
}

.vtpl-plane {
	--vtpl-start-x: 0;
	--vtpl-start-y: 0;
	--vtpl-angle: 0deg;
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--vtpl-plane-size);
	height: var(--vtpl-plane-size);
	color: var(--vtpl-plane-color);
	opacity: 0;
	filter: blur(0);
	transform: translate(-50%, -50%) translate(var(--vtpl-start-x), var(--vtpl-start-y)) rotate(var(--vtpl-angle)) scale(.55);
	transform-origin: center;
	will-change: transform, opacity, filter;
}

.vtpl-plane svg,
.vtpl-plane img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	filter: drop-shadow(0 7px 13px rgba(0, 0, 0, .28));
}

.vtpl-plane--top-left {
	--vtpl-start-x: calc(-50vw - var(--vtpl-plane-size));
	--vtpl-start-y: calc(-50vh - var(--vtpl-plane-size));
	--vtpl-angle: 45deg;
}

.vtpl-plane--top-right {
	--vtpl-start-x: calc(50vw + var(--vtpl-plane-size));
	--vtpl-start-y: calc(-50vh - var(--vtpl-plane-size));
	--vtpl-angle: 135deg;
}

.vtpl-plane--bottom-left {
	--vtpl-start-x: calc(-50vw - var(--vtpl-plane-size));
	--vtpl-start-y: calc(50vh + var(--vtpl-plane-size));
	--vtpl-angle: -45deg;
}

.vtpl-plane--bottom-right {
	--vtpl-start-x: calc(50vw + var(--vtpl-plane-size));
	--vtpl-start-y: calc(50vh + var(--vtpl-plane-size));
	--vtpl-angle: -135deg;
}

.vtpl-loader.vtpl-is-flying .vtpl-plane {
	animation: vtpl-fly-to-center var(--vtpl-fly-duration) cubic-bezier(.2, .75, .18, 1) both;
}

.vtpl-loader.vtpl-is-blurring .vtpl-plane {
	animation: none;
	opacity: 0;
	filter: blur(var(--vtpl-blur-amount));
	transform: translate(-50%, -50%) rotate(var(--vtpl-angle)) scale(.25);
	transition: opacity var(--vtpl-blur-duration) ease, filter var(--vtpl-blur-duration) ease, transform var(--vtpl-blur-duration) cubic-bezier(.4, 0, .2, 1);
}

@keyframes vtpl-fly-to-center {
	0% {
		opacity: 0;
		transform: translate(-50%, -50%) translate(var(--vtpl-start-x), var(--vtpl-start-y)) rotate(var(--vtpl-angle)) scale(.55);
	}
	9% {
		opacity: 1;
	}
	75% {
		opacity: 1;
		filter: blur(0);
	}
	100% {
		opacity: 1;
		filter: blur(0);
		transform: translate(-50%, -50%) translate(0, 0) rotate(var(--vtpl-angle)) scale(1);
	}
}

.vtpl-globe-stage {
	position: relative;
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 24px;
	opacity: 0;
	filter: blur(calc(var(--vtpl-blur-amount) * .75));
	transform: scale(.6);
	pointer-events: none;
	transition: opacity var(--vtpl-blur-duration) ease, filter var(--vtpl-blur-duration) ease, transform var(--vtpl-blur-duration) cubic-bezier(.2, .8, .2, 1);
}

.vtpl-loader.vtpl-is-globe .vtpl-globe-stage {
	opacity: 1;
	filter: blur(0);
	transform: scale(1);
}

.vtpl-globe {
	position: relative;
	width: var(--vtpl-globe-size);
	height: var(--vtpl-globe-size);
	overflow: hidden;
	border: 2px solid rgba(255, 255, 255, .44);
	border-radius: 50%;
	background:
		radial-gradient(circle at 31% 24%, rgba(255, 255, 255, .35), transparent 25%),
		var(--vtpl-globe-ocean);
	box-shadow:
		0 0 0 8px rgba(255, 255, 255, .07),
		0 0 44px rgba(82, 196, 255, .4),
		inset -24px -10px 30px rgba(0, 0, 0, .25);
	transform: translateZ(0);
}

.vtpl-globe__map {
	position: absolute;
	inset: 0 auto 0 0;
	display: flex;
	width: 200%;
	height: 100%;
	animation: vtpl-spin-map var(--vtpl-spin-duration) linear infinite;
	animation-direction: var(--vtpl-spin-direction);
	will-change: transform;
}

.vtpl-globe__hemisphere {
	position: relative;
	flex: 0 0 50%;
	height: 100%;
}

.vtpl-land {
	position: absolute;
	display: block;
	background: var(--vtpl-globe-land);
	box-shadow: inset -4px -4px 8px rgba(116, 68, 0, .18);
}

.vtpl-land--1 {
	top: 15%;
	left: 7%;
	width: 39%;
	height: 26%;
	border-radius: 57% 32% 62% 24% / 54% 33% 66% 41%;
	transform: rotate(13deg);
}

.vtpl-land--2 {
	top: 40%;
	left: 28%;
	width: 23%;
	height: 42%;
	border-radius: 60% 35% 70% 28% / 25% 45% 65% 75%;
	transform: rotate(-15deg);
}

.vtpl-land--3 {
	top: 18%;
	right: 3%;
	width: 35%;
	height: 23%;
	border-radius: 45% 65% 40% 55% / 52% 38% 61% 42%;
	transform: rotate(-10deg);
}

.vtpl-land--4 {
	top: 40%;
	right: 17%;
	width: 22%;
	height: 34%;
	border-radius: 40% 62% 25% 72% / 35% 32% 70% 64%;
	transform: rotate(19deg);
}

.vtpl-land--5 {
	right: 6%;
	bottom: 12%;
	width: 19%;
	height: 13%;
	border-radius: 68% 40% 52% 34%;
	transform: rotate(-14deg);
}

.vtpl-globe__grid,
.vtpl-globe__shine {
	position: absolute;
	inset: 0;
	display: block;
	border-radius: inherit;
	pointer-events: none;
}

.vtpl-globe__grid {
	background:
		repeating-radial-gradient(ellipse at center, transparent 0 16%, color-mix(in srgb, var(--vtpl-globe-grid) 32%, transparent) 17% 18%, transparent 19% 33%),
		linear-gradient(90deg, transparent 48.7%, color-mix(in srgb, var(--vtpl-globe-grid) 45%, transparent) 49.3% 50.7%, transparent 51.3%);
	opacity: .75;
}

@supports not (color: color-mix(in srgb, white, black)) {
	.vtpl-globe__grid {
		background: repeating-radial-gradient(ellipse at center, transparent 0 16%, rgba(255, 255, 255, .2) 17% 18%, transparent 19% 33%);
	}
}

.vtpl-globe__shine {
	background: radial-gradient(circle at 29% 22%, rgba(255, 255, 255, .38), transparent 19%), linear-gradient(102deg, rgba(255, 255, 255, .08), transparent 42%, rgba(0, 0, 0, .2));
	box-shadow: inset -17px -3px 22px rgba(0, 0, 0, .2);
}

.vtpl-globe--custom {
	border: 0;
	background: transparent;
	box-shadow: none;
	overflow: visible;
}

.vtpl-globe--custom img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	filter: drop-shadow(0 14px 22px rgba(0, 0, 0, .28));
	animation: vtpl-spin-image var(--vtpl-spin-duration) linear infinite;
	animation-direction: var(--vtpl-spin-direction);
}

.vtpl-loading-text {
	max-width: min(82vw, 600px);
	margin: 0;
	padding: 0;
	color: var(--vtpl-text-color);
	font: 600 var(--vtpl-text-size)/1.35 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	letter-spacing: .04em;
	text-align: center;
	text-shadow: 0 2px 14px rgba(0, 0, 0, .3);
}

@keyframes vtpl-spin-map {
	from { transform: translate3d(0, 0, 0); }
	to { transform: translate3d(-50%, 0, 0); }
}

@keyframes vtpl-spin-image {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

.vtpl-loader.vtpl-reduced-motion .vtpl-plane {
	--vtpl-start-x: 0;
	--vtpl-start-y: 0;
}

.vtpl-loader.vtpl-reduced-motion.vtpl-is-flying .vtpl-plane {
	animation-timing-function: ease;
}

.vtpl-loader.vtpl-reduced-motion .vtpl-globe__map,
.vtpl-loader.vtpl-reduced-motion .vtpl-globe--custom img {
	animation-duration: calc(var(--vtpl-spin-duration) * 2.5);
}

@media (max-width: 767px) {
	.vtpl-plane {
		width: var(--vtpl-plane-size-mobile);
		height: var(--vtpl-plane-size-mobile);
	}

	.vtpl-plane--top-left {
		--vtpl-start-x: calc(-50vw - var(--vtpl-plane-size-mobile));
		--vtpl-start-y: calc(-50vh - var(--vtpl-plane-size-mobile));
	}

	.vtpl-plane--top-right {
		--vtpl-start-x: calc(50vw + var(--vtpl-plane-size-mobile));
		--vtpl-start-y: calc(-50vh - var(--vtpl-plane-size-mobile));
	}

	.vtpl-plane--bottom-left {
		--vtpl-start-x: calc(-50vw - var(--vtpl-plane-size-mobile));
		--vtpl-start-y: calc(50vh + var(--vtpl-plane-size-mobile));
	}

	.vtpl-plane--bottom-right {
		--vtpl-start-x: calc(50vw + var(--vtpl-plane-size-mobile));
		--vtpl-start-y: calc(50vh + var(--vtpl-plane-size-mobile));
	}

	.vtpl-globe-stage {
		gap: 18px;
	}

	.vtpl-globe {
		width: var(--vtpl-globe-size-mobile);
		height: var(--vtpl-globe-size-mobile);
	}

	.vtpl-loading-text {
		font-size: var(--vtpl-text-size-mobile);
	}
}

@media (prefers-reduced-motion: reduce) {
	.vtpl-loader[data-reduced-motion="1"] .vtpl-plane,
	.vtpl-loader[data-reduced-motion="1"] .vtpl-globe-stage,
	.vtpl-loader[data-reduced-motion="1"] .vtpl-globe__map,
	.vtpl-loader[data-reduced-motion="1"] .vtpl-globe--custom img {
		animation-iteration-count: 1;
	}
}
