.dp-preloader {
	--dp-preloader-background: #0b1020;
	--dp-preloader-accent: #fff;
	--dp-preloader-text: #fff;
	--dp-preloader-size: 64px;
	--dp-preloader-duration: 420ms;
	--dp-preloader-max-wait: 8000ms;
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	display: grid;
	min-width: 100%;
	min-height: 100vh;
	min-height: 100dvh;
	place-items: center;
	overflow: hidden;
	isolation: isolate;
	background: var(--dp-preloader-background);
	color: var(--dp-preloader-text);
	opacity: 1;
	visibility: visible;
	pointer-events: all;
	transform: translate3d(0, 0, 0);
	transition-duration: var(--dp-preloader-duration);
	transition-property: opacity, visibility, transform, clip-path;
	transition-timing-function: cubic-bezier(.22, .61, .36, 1);
	animation: dp-preloader-css-failsafe 1ms step-end var(--dp-preloader-max-wait) forwards;
	backface-visibility: hidden;
	will-change: opacity, transform, clip-path;
}

.dp-preloader.is-managed,
.dp-preloader--preview {
	animation: none;
}

.dp-preloader-skip-initial #dp-preloader,
.dp-preloader.is-hidden {
	display: none;
}

html.dp-preloader-active,
html.dp-preloader-active body {
	overflow: hidden !important;
	overscroll-behavior: none;
}

/* Lightweight presentations deliberately leave page scrolling and interaction alone. */
.dp-preloader--presentation-progress_bar {
	inset: auto 0;
	display: block;
	width: 100%;
	min-width: 0;
	height: var(--dp-preloader-bar-height, 4px);
	min-height: 0;
	overflow: hidden;
	background: transparent;
	pointer-events: none;
	transition-property: opacity, visibility, transform;
}

.dp-preloader--presentation-progress_bar.dp-preloader--position-top { top: 0; bottom: auto; }
.dp-preloader--presentation-progress_bar.dp-preloader--position-below_header { top: var(--dp-preloader-header-offset, 0); bottom: auto; }
.dp-preloader--presentation-progress_bar.dp-preloader--position-bottom { top: auto; bottom: 0; }

.dp-preloader__bar {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	border-radius: inherit;
	background: var(--dp-preloader-accent);
	box-shadow: 0 0 12px color-mix(in srgb, var(--dp-preloader-accent) 62%, transparent);
	transform: translate3d(0, 0, 0);
	will-change: transform, background-position, opacity;
}

.dp-preloader--bar-gradient_flow .dp-preloader__bar {
	background: linear-gradient(90deg, var(--dp-preloader-color-1), var(--dp-preloader-color-2), var(--dp-preloader-accent), var(--dp-preloader-color-1));
	background-size: 260% 100%;
	animation: dp-preloader-gradient-flow 1.15s linear infinite;
}

.dp-preloader--bar-indeterminate .dp-preloader__bar {
	left: -42%;
	width: 42%;
	background: linear-gradient(90deg, transparent, var(--dp-preloader-accent), var(--dp-preloader-color-2));
	animation: dp-preloader-indeterminate 1.05s cubic-bezier(.4, 0, .2, 1) infinite;
}

.dp-preloader--bar-solid_pulse .dp-preloader__bar {
	background: var(--dp-preloader-accent);
	animation: dp-preloader-solid-pulse 1.1s ease-in-out infinite alternate;
}

.dp-preloader--presentation-progress_bar .dp-preloader__content {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.dp-preloader--presentation-corner {
	inset: auto;
	display: grid;
	width: auto;
	min-width: 0;
	min-height: 0;
	max-width: min(420px, calc(100vw - 36px));
	place-items: center;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--dp-preloader-text) 16%, transparent);
	border-radius: 999px;
	background: var(--dp-preloader-background);
	box-shadow: 0 12px 38px rgba(8, 13, 30, .22);
	pointer-events: none;
	transition-property: opacity, visibility, transform;
}

.dp-preloader--presentation-corner.dp-preloader--position-top_left { top: 18px; left: 18px; }
.dp-preloader--presentation-corner.dp-preloader--position-top_right { top: 18px; right: 18px; }
.dp-preloader--presentation-corner.dp-preloader--position-bottom_left { bottom: 18px; left: 18px; }
.dp-preloader--presentation-corner.dp-preloader--position-bottom_right { right: 18px; bottom: 18px; }

.dp-preloader--presentation-corner .dp-preloader__content {
	max-width: 100%;
	flex-direction: row;
	gap: 11px;
	padding: 11px 16px;
	text-align: left;
}

.dp-preloader--presentation-corner .dp-preloader__loader {
	flex: 0 0 auto;
	width: clamp(22px, calc(var(--dp-preloader-size) * .5), 38px);
	height: clamp(22px, calc(var(--dp-preloader-size) * .5), 38px);
}

.dp-preloader--presentation-corner .dp-preloader__loader--image {
	width: clamp(30px, var(--dp-preloader-size), 58px);
	height: clamp(30px, var(--dp-preloader-size), 58px);
}

.dp-preloader--presentation-corner .dp-preloader__message {
	overflow: hidden;
	font-size: 14px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.dp-preloader::before,
.dp-preloader::after {
	content: "";
	position: absolute;
	z-index: -1;
	display: none;
	background: var(--dp-preloader-background);
	transition: transform var(--dp-preloader-duration) cubic-bezier(.76, 0, .24, 1);
}

.dp-preloader__content {
	display: flex;
	max-width: min(82vw, 560px);
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 22px;
	padding: 32px;
	text-align: center;
	transition: opacity calc(var(--dp-preloader-duration) * .72) ease, transform calc(var(--dp-preloader-duration) * .72) ease;
	backface-visibility: hidden;
	will-change: opacity, transform;
}

.dp-preloader__message {
	margin: 0;
	color: var(--dp-preloader-text);
	font: 600 clamp(14px, 1.5vw, 18px)/1.45 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	letter-spacing: .04em;
}

.dp-preloader__loader {
	position: relative;
	display: inline-block;
	box-sizing: border-box;
	width: var(--dp-preloader-size);
	height: var(--dp-preloader-size);
	color: var(--dp-preloader-accent);
	backface-visibility: hidden;
	will-change: transform, opacity;
}

.dp-preloader__loader span,
.dp-preloader__loader::before,
.dp-preloader__loader::after {
	box-sizing: border-box;
	backface-visibility: hidden;
	will-change: transform, opacity;
}

.dp-preloader__loader--spinner {
	border: max(3px, calc(var(--dp-preloader-size) * .075)) solid color-mix(in srgb, var(--dp-preloader-accent) 24%, transparent);
	border-top-color: var(--dp-preloader-accent);
	border-radius: 50%;
	animation: dp-preloader-spin .8s linear infinite;
}

@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
	.dp-preloader__loader--spinner { border-color: rgba(255,255,255,.28); border-top-color: var(--dp-preloader-accent); }
}

.dp-preloader__loader--dots {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.dp-preloader__loader--dots span {
	width: 23%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: currentColor;
	animation: dp-preloader-dot .9s ease-in-out infinite both;
}

.dp-preloader__loader--dots span:nth-child(2) { animation-delay: .12s; }
.dp-preloader__loader--dots span:nth-child(3) { animation-delay: .24s; }

.dp-preloader__loader--pulse {
	border-radius: 50%;
	background: currentColor;
	box-shadow: 0 0 0 0 currentColor;
	animation: dp-preloader-pulse 1.25s ease-out infinite;
}

.dp-preloader__loader--bars {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 7%;
}

.dp-preloader__loader--bars span {
	width: 13%;
	height: 72%;
	border-radius: 999px;
	background: currentColor;
	animation: dp-preloader-bars .9s ease-in-out infinite;
}

.dp-preloader__loader--bars span:nth-child(2), .dp-preloader__loader--bars span:nth-child(4) { animation-delay: .12s; }
.dp-preloader__loader--bars span:nth-child(3) { animation-delay: .24s; }

.dp-preloader__loader--orbit {
	border: max(2px, calc(var(--dp-preloader-size) * .035)) solid color-mix(in srgb, var(--dp-preloader-accent) 28%, transparent);
	border-radius: 50%;
	animation: dp-preloader-spin 1.15s linear infinite;
}

.dp-preloader__loader--orbit::before,
.dp-preloader__loader--orbit::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	border-radius: 50%;
	background: currentColor;
	transform: translate(-50%, -50%);
}

.dp-preloader__loader--orbit::before { width: 18%; height: 18%; }
.dp-preloader__loader--orbit::after { top: 2%; width: 15%; height: 15%; }

.dp-preloader__loader--grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10%;
}

.dp-preloader__loader--grid span {
	border-radius: 30%;
	background: currentColor;
	animation: dp-preloader-grid 1.05s ease-in-out infinite both;
}

.dp-preloader__loader--grid span:nth-child(2), .dp-preloader__loader--grid span:nth-child(4) { animation-delay: .08s; }
.dp-preloader__loader--grid span:nth-child(3), .dp-preloader__loader--grid span:nth-child(5), .dp-preloader__loader--grid span:nth-child(7) { animation-delay: .16s; }
.dp-preloader__loader--grid span:nth-child(6), .dp-preloader__loader--grid span:nth-child(8) { animation-delay: .24s; }
.dp-preloader__loader--grid span:nth-child(9) { animation-delay: .32s; }

.dp-preloader__loader--ripple span {
	position: absolute;
	inset: 8%;
	border: max(2px, calc(var(--dp-preloader-size) * .055)) solid currentColor;
	border-radius: 50%;
	animation: dp-preloader-ripple 1.25s cubic-bezier(0, .2, .8, 1) infinite;
}

.dp-preloader__loader--ripple span:nth-child(2) { animation-delay: -.6s; }

.dp-preloader__loader--image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(calc(var(--dp-preloader-size) * 2.25), 240px);
	height: min(calc(var(--dp-preloader-size) * 2.25), 240px);
}

.dp-preloader__image {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 100%;
	object-fit: contain;
	animation: dp-preloader-image-breathe 1.6s ease-in-out infinite alternate;
}

.dp-preloader--exit-fade.is-leaving { opacity: 0; visibility: hidden; }
.dp-preloader--exit-scale.is-leaving { opacity: 0; visibility: hidden; transform: scale(1.05); }
.dp-preloader--exit-slide_up.is-leaving { visibility: hidden; transform: translate3d(0, -102%, 0); }
.dp-preloader--exit-slide_down.is-leaving { visibility: hidden; transform: translate3d(0, 102%, 0); }
.dp-preloader--exit-slide_left.is-leaving { visibility: hidden; transform: translate3d(-102%, 0, 0); }
.dp-preloader--exit-slide_right.is-leaving { visibility: hidden; transform: translate3d(102%, 0, 0); }

.dp-preloader--exit-split_horizontal,
.dp-preloader--exit-split_vertical { background: transparent; }
.dp-preloader--exit-split_horizontal::before,
.dp-preloader--exit-split_horizontal::after,
.dp-preloader--exit-split_vertical::before,
.dp-preloader--exit-split_vertical::after { display: block; }
.dp-preloader--exit-split_horizontal::before { inset: 0 50% 0 0; }
.dp-preloader--exit-split_horizontal::after { inset: 0 0 0 50%; }
.dp-preloader--exit-split_vertical::before { inset: 0 0 50% 0; }
.dp-preloader--exit-split_vertical::after { inset: 50% 0 0; }
.dp-preloader--exit-split_horizontal.is-leaving::before { transform: translate3d(-101%, 0, 0); }
.dp-preloader--exit-split_horizontal.is-leaving::after { transform: translate3d(101%, 0, 0); }
.dp-preloader--exit-split_vertical.is-leaving::before { transform: translate3d(0, -101%, 0); }
.dp-preloader--exit-split_vertical.is-leaving::after { transform: translate3d(0, 101%, 0); }
.dp-preloader--exit-split_horizontal.is-leaving,
.dp-preloader--exit-split_vertical.is-leaving { visibility: hidden; transition-delay: var(--dp-preloader-duration); }
.dp-preloader--exit-split_horizontal.is-leaving .dp-preloader__content,
.dp-preloader--exit-split_vertical.is-leaving .dp-preloader__content { opacity: 0; transform: scale(.94); }

/* Compact modes always make a short, restrained exit regardless of overlay choice. */
.dp-preloader--presentation-progress_bar.is-leaving {
	opacity: 0;
	visibility: hidden;
	transform: scaleX(.985);
}

.dp-preloader--presentation-corner.is-leaving {
	opacity: 0;
	visibility: hidden;
	transform: translate3d(0, -6px, 0) scale(.98);
}

.dp-preloader--presentation-corner.dp-preloader--position-bottom_left.is-leaving,
.dp-preloader--presentation-corner.dp-preloader--position-bottom_right.is-leaving {
	transform: translate3d(0, 6px, 0) scale(.98);
}

.dp-preloader.is-leaving .dp-preloader__loader,
.dp-preloader.is-leaving .dp-preloader__loader span,
.dp-preloader.is-leaving .dp-preloader__loader::before,
.dp-preloader.is-leaving .dp-preloader__loader::after,
.dp-preloader.is-leaving .dp-preloader__image { animation-play-state: running !important; }

.dp-preloader .screen-reader-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

@keyframes dp-preloader-spin { to { transform: rotate(360deg); } }
@keyframes dp-preloader-dot { 0%, 80%, 100% { transform: translateY(28%) scale(.7); opacity: .4; } 40% { transform: translateY(-30%) scale(1); opacity: 1; } }
@keyframes dp-preloader-pulse { 0% { transform: scale(.55); opacity: .9; box-shadow: 0 0 0 0 currentColor; } 75%, 100% { transform: scale(.9); opacity: 0; box-shadow: 0 0 0 calc(var(--dp-preloader-size) * .38) transparent; } }
@keyframes dp-preloader-bars { 0%, 100% { transform: scaleY(.4); opacity: .5; } 50% { transform: scaleY(1); opacity: 1; } }
@keyframes dp-preloader-grid { 0%, 70%, 100% { transform: scale(.55); opacity: .35; } 35% { transform: scale(1); opacity: 1; } }
@keyframes dp-preloader-ripple { 0% { transform: scale(.08); opacity: 1; } 100% { transform: scale(1); opacity: 0; } }
@keyframes dp-preloader-image-breathe { from { transform: scale(.96); opacity: .78; } to { transform: scale(1); opacity: 1; } }
@keyframes dp-preloader-gradient-flow { to { background-position: -260% 0; } }
@keyframes dp-preloader-indeterminate { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(338%, 0, 0); } }
@keyframes dp-preloader-solid-pulse { from { opacity: .45; } to { opacity: 1; } }
@keyframes dp-preloader-css-failsafe { to { opacity: 0; visibility: hidden; pointer-events: none; } }

@media (prefers-reduced-motion: reduce) {
	.dp-preloader,
	.dp-preloader::before,
	.dp-preloader::after,
	.dp-preloader__content { transition-duration: 1ms !important; }
	.dp-preloader__loader,
	.dp-preloader__loader span,
	.dp-preloader__image,
	.dp-preloader__bar { animation: none !important; }
}

@media print {
	.dp-preloader { display: none !important; }
}
