:root {
	--ks-gold: #e5a900;
	--ks-gold-light: #ffd45a;
	--ks-ink: #050608;
}

html.ks-preloader-active,
html.ks-preloader-active body {
	overflow: hidden !important;
}

.ks-preloader {
	position: fixed;
	inset: 0;
	z-index: 2147483647;
	display: grid;
	place-items: center;
	background:
		radial-gradient(circle at 50% 43%, rgba(229, 169, 0, 0.09), transparent 32%),
		linear-gradient(145deg, #0b0d10 0%, var(--ks-ink) 58%, #020202 100%);
	opacity: 1;
	visibility: visible;
	transition: opacity 0.65s ease, visibility 0.65s ease;
	isolation: isolate;
}

.ks-preloader::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px);
	background-size: 38px 38px;
	-webkit-mask-image: radial-gradient(circle, #000 0%, transparent 72%);
	mask-image: radial-gradient(circle, #000 0%, transparent 72%);
	pointer-events: none;
}

.ks-preloader.is-finished {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.ks-preloader__glow {
	position: absolute;
	width: min(68vw, 560px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: rgba(229, 169, 0, 0.08);
	filter: blur(80px);
	animation: ks-glow 2.2s ease-in-out infinite alternate;
}

.ks-preloader__content {
	position: relative;
	z-index: 1;
	display: flex;
	width: min(78vw, 390px);
	flex-direction: column;
	align-items: center;
	animation: ks-content-in 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.ks-preloader__logo-frame {
	position: relative;
	display: grid;
	width: min(65vw, 310px);
	aspect-ratio: 1;
	place-items: center;
}

.ks-preloader__orbit {
	position: absolute;
	inset: 1.5%;
	border-radius: 50%;
	background: conic-gradient(
		from 40deg,
		transparent 0 23%,
		rgba(229, 169, 0, 0.08) 31%,
		var(--ks-gold-light) 45%,
		transparent 55% 100%
	);
	-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 0);
	mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 0);
	filter: drop-shadow(0 0 8px rgba(229, 169, 0, 0.48));
	animation: ks-orbit 2.4s linear infinite;
}

.ks-preloader__logo {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
	filter: drop-shadow(0 16px 24px rgba(0, 0, 0, 0.48));
	animation: ks-logo-float 2s ease-in-out 0.55s infinite alternate;
}

.ks-preloader__message {
	margin: 11px 0 14px;
	color: rgba(255, 255, 255, 0.78);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.34em;
	line-height: 1.4;
	text-align: center;
	text-transform: uppercase;
	animation: ks-message 1.35s ease-in-out infinite alternate;
}

.ks-preloader__track {
	position: relative;
	width: min(62vw, 240px);
	height: 3px;
	overflow: hidden;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.09);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.025);
}

.ks-preloader__bar {
	position: absolute;
	inset: 0 auto 0 0;
	width: 42%;
	border-radius: inherit;
	background: linear-gradient(90deg, transparent, var(--ks-gold), var(--ks-gold-light), transparent);
	box-shadow: 0 0 14px rgba(229, 169, 0, 0.8);
	animation: ks-progress 1.15s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

@keyframes ks-content-in {
	from {
		opacity: 0;
		transform: translateY(18px) scale(0.92);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@keyframes ks-orbit {
	to { transform: rotate(1turn); }
}

@keyframes ks-logo-float {
	from { transform: translateY(0) scale(1); }
	to { transform: translateY(-5px) scale(1.015); }
}

@keyframes ks-glow {
	from { opacity: 0.5; transform: scale(0.9); }
	to { opacity: 1; transform: scale(1.08); }
}

@keyframes ks-message {
	from { opacity: 0.48; }
	to { opacity: 0.92; }
}

@keyframes ks-progress {
	0% { transform: translateX(-110%); }
	100% { transform: translateX(350%); }
}

@media (max-width: 480px) {
	.ks-preloader__content {
		width: min(82vw, 340px);
	}

	.ks-preloader__logo-frame {
		width: min(70vw, 270px);
	}

	.ks-preloader__message {
		font-size: 10px;
		letter-spacing: 0.27em;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ks-preloader__content {
		animation: none;
	}

	.ks-preloader__logo,
	.ks-preloader__glow,
	.ks-preloader__message {
		animation: none;
	}

	.ks-preloader__orbit {
		animation-duration: 5s;
	}

	.ks-preloader__bar {
		animation-duration: 2.5s;
	}
}

