/**
 * Divine Ledger — full-page preloader (navy / gold / cream).
 */

.dl-preloader {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	background:
		radial-gradient(ellipse 80% 60% at 50% 40%, rgb(28 55 96 / 55%) 0%, transparent 70%),
		linear-gradient(165deg, #0a1730 0%, #050d1c 55%, #122544 100%);
	color: #faf8f4;
	opacity: 1;
	visibility: visible;
	transition:
		opacity 0.48s cubic-bezier(0.22, 1, 0.36, 1),
		visibility 0.48s step-end;
}

.dl-preloader.is-done {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.dl-preloader__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.75rem;
	padding: 1.5rem;
	text-align: center;
}

.dl-preloader__mark {
	width: 4.25rem;
	height: 4.25rem;
	border-radius: 50%;
	border: 1px solid rgb(198 166 103 / 42%);
	background:
		radial-gradient(circle at 40% 35%, rgb(240 226 188 / 18%), transparent 55%),
		rgb(10 23 48 / 80%);
	box-shadow: 0 0 0 8px rgb(198 166 103 / 6%);
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}

.dl-preloader__mark::after {
	content: "";
	position: absolute;
	inset: -6px;
	border-radius: 50%;
	border: 1px solid transparent;
	border-top-color: #c6a667;
	border-right-color: rgb(198 166 103 / 35%);
	animation: dl-preloader-spin 1.05s linear infinite;
}

.dl-preloader__glyph {
	width: 2.15rem;
	height: 2.15rem;
	color: #dec894;
}

.dl-preloader__glyph svg {
	display: block;
	width: 100%;
	height: 100%;
}

.dl-preloader__label {
	margin: 0;
	font-family: jost, "Century Gothic", "Helvetica Neue", helvetica, arial, sans-serif;
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgb(250 248 244 / 72%);
}

.dl-preloader__bar {
	width: min(11rem, 42vw);
	height: 2px;
	border-radius: 999px;
	background: rgb(198 166 103 / 18%);
	overflow: hidden;
}

.dl-preloader__bar-fill {
	display: block;
	height: 100%;
	width: 40%;
	border-radius: inherit;
	background: linear-gradient(90deg, #a5854a, #f0e2bc, #c6a667);
	animation: dl-preloader-bar 1.15s cubic-bezier(0.45, 0, 0.2, 1) infinite;
}

@keyframes dl-preloader-spin {
	to {
		transform: rotate(360deg);
	}
}

@keyframes dl-preloader-bar {
	0% {
		transform: translateX(-120%);
	}
	100% {
		transform: translateX(280%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.dl-preloader__mark::after,
	.dl-preloader__bar-fill {
		animation: none;
	}

	.dl-preloader__mark::after {
		border-top-color: #c6a667;
		border-right-color: #c6a667;
		opacity: 0.65;
	}

	.dl-preloader__bar-fill {
		width: 100%;
		transform: none;
	}

	.dl-preloader {
		transition-duration: 0.01ms;
	}
}

html.dl-preloading,
html.dl-preloading body {
	overflow: hidden;
}
