.fs-page-loader {
	position: fixed;
	left: 50%;
	bottom: 28px;
	z-index: 2147483000;

	display: block;

	transform: translateX(-50%) translateY(8px);

	opacity: 0;
	visibility: hidden;
	pointer-events: none;

	transition:
		opacity .12s ease,
		transform .12s ease,
		visibility .12s ease;
}

.fs-page-loader.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

/*
 * Plus aucun fond fullscreen.
 * Le loader est juste une petite capsule rétro.
 */
.fs-page-loader__terminal {
	position: relative;

	display: flex;
	align-items: center;
	gap: 10px;

	min-width: 0;

	padding: 9px 14px;

	background: rgba(8, 12, 14, .94);

	border: 1px solid rgba(83, 255, 126, .35);
	border-radius: 999px;

	box-shadow:
		0 8px 22px rgba(0, 0, 0, .22),
		0 0 12px rgba(83, 255, 126, .08);

	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}

.fs-page-loader__terminal::before {
	display: none;
}

.fs-page-loader__spinner {
	flex: 0 0 auto;

	width: 18px;
	height: 18px;

	margin: 0;

	border: 2px solid rgba(83, 255, 126, .18);
	border-top-color: #53ff7e;
	border-right-color: #53ff7e;

	border-radius: 50%;

	box-shadow:
		0 0 7px rgba(83, 255, 126, .32);

	animation: fsLoaderSpin .7s linear infinite;
}

.fs-page-loader__title {
	display: none;
}

.fs-page-loader__sub {
	display: block;

	margin: 0;

	font-family: "Courier New", monospace;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .08em;

	color: #53ff7e;

	white-space: nowrap;

	text-shadow:
		0 0 5px rgba(83, 255, 126, .35);
}

.fs-page-loader__dots::after {
	content: "";
	animation: fsLoaderDots 1.1s steps(4, end) infinite;
}

@keyframes fsLoaderSpin {
	to {
		transform: rotate(360deg);
	}
}

@keyframes fsLoaderDots {
	0% {
		content: "";
	}

	25% {
		content: ".";
	}

	50% {
		content: "..";
	}

	75%,
	100% {
		content: "...";
	}
}

@media (max-width: 575px) {
	.fs-page-loader {
		bottom: 18px;
	}

	.fs-page-loader__terminal {
		padding: 8px 12px;
	}

	.fs-page-loader__sub {
		font-size: 10px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fs-page-loader {
		transition: none;
	}

	.fs-page-loader__spinner,
	.fs-page-loader__dots::after {
		animation: none;
	}
}