/* DS Page Loaders — frontend overlay tweaks */

.dspl-loader.site-loader {
	position: fixed;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: all;
}

.dspl-loader .boot-spinner {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: 3px solid rgba(255, 255, 255, 0.15);
	border-top-color: var(--ldr-accent, #5eead4);
	animation: ldr-rot 0.8s linear infinite;
}

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

/* Cycle duration drives preset animations */
.dspl-loader .ldr-preset,
.dspl-loader .ldr-custom,
.loader-preview .ldr-preset,
.loader-preview .ldr-custom {
	--_cycle: var(--ldr-cycle, 1200ms);
}

.ldr-custom--flip3d img {
	animation: ldr-flip3d var(--ldr-cycle, 1200ms) ease-in-out infinite;
	transform-style: preserve-3d;
}

.ldr-custom--morph img {
	animation: ldr-morph-img var(--ldr-cycle, 1200ms) ease-in-out infinite;
}

@keyframes ldr-flip3d {
	0% { transform: perspective(240px) rotateY(0deg); }
	50% { transform: perspective(240px) rotateY(180deg); }
	100% { transform: perspective(240px) rotateY(360deg); }
}

@keyframes ldr-morph-img {
	0%, 100% { transform: scale(1) rotate(0deg); border-radius: 0; }
	33% { transform: scale(0.88) rotate(6deg); }
	66% { transform: scale(1.06) rotate(-4deg); }
}

/* Scale common preset durations with --ldr-cycle when set on overlay */
.site-loader .ldr-preset--ring .ldr-shape,
.site-loader .ldr-preset--dual .ldr-shape,
.site-loader .ldr-preset--arc .ldr-shape,
.site-loader .ldr-preset--dashed .ldr-shape,
.site-loader .ldr-preset--gear .ldr-shape,
.site-loader .ldr-preset--orbit .ldr-shape,
.site-loader .ldr-preset--concentric .ldr-shape,
.site-loader .ldr-preset--crescent .ldr-shape,
.site-loader .ldr-preset--pie .ldr-shape,
.site-loader .ldr-preset--infinity .ldr-shape,
.site-loader .ldr-custom--spin img {
	animation-duration: var(--ldr-cycle, 1200ms) !important;
}

.site-loader .ldr-preset--bounce .ldr-dots i,
.site-loader .ldr-preset--pulse .ldr-dots i,
.site-loader .ldr-preset--wave .ldr-dots i,
.site-loader .ldr-preset--eq .ldr-bars span,
.site-loader .ldr-cube,
.site-loader .ldr-preset--morph .ldr-shape,
.site-loader .ldr-atom,
.site-loader .ldr-flower,
.site-loader .ldr-spiral i {
	animation-duration: var(--ldr-cycle, 1200ms) !important;
}

.site-loader.is-exiting {
	animation-duration: var(--ldr-exit, 480ms) !important;
}
