/*
 * Academy of Justice Press - site loading overlay.
 *
 * Enqueued on every front-end request. Uses the brand palette with fallbacks
 * so it still renders on pages that do not load the shared base stylesheet.
 */

html.ajp-loading,
html.ajp-loading body {
	overflow: hidden;
}

.ajp-loader {
	align-items: center;
	background: var(--ajp-primary, #0b211b);
	display: flex;
	flex-direction: column;
	gap: 1.4rem;
	inset: 0;
	justify-content: center;
	position: fixed;
	transition: opacity 0.45s ease, visibility 0.45s ease;
	z-index: 999999;
}

.ajp-loader--hidden {
	opacity: 0;
	pointer-events: none;
	visibility: hidden;
}

.ajp-loader__mark {
	animation: ajp-loader-pulse 1.6s ease-in-out infinite;
	border: 2px solid rgba(169, 120, 42, 0.35);
	border-radius: 50%;
	height: 4.5rem;
	position: relative;
	width: 4.5rem;
}

.ajp-loader__ring {
	animation: ajp-loader-spin 1s linear infinite;
	border: 3px solid transparent;
	border-radius: 50%;
	border-top-color: var(--ajp-gold, #a9782a);
	inset: -3px;
	position: absolute;
}

.ajp-loader__label {
	color: var(--ajp-cream, #f5f0e7);
	font-family: var(--ajp-font-heading, "Cormorant Garamond", Georgia, serif);
	font-size: 1.05rem;
	letter-spacing: 0.14em;
	margin: 0;
	text-transform: uppercase;
}

@keyframes ajp-loader-spin {
	to {
		transform: rotate( 360deg );
	}
}

@keyframes ajp-loader-pulse {
	0%,
	100% {
		transform: scale( 1 );
	}
	50% {
		transform: scale( 1.08 );
	}
}

@media ( prefers-reduced-motion: reduce ) {
	.ajp-loader__mark,
	.ajp-loader__ring {
		animation: none;
	}
}
