#fullscreen-loader {
	position: fixed;
	inset: 0;
	z-index: 1;
	display: grid;
	gap: 4px;
	grid-template-columns: auto auto;
	grid-template-rows: auto auto;
	inline-size: fit-content;
	block-size: fit-content;
	margin: auto;
	animation: fullscreen-loader-rotate 1.2s linear infinite;
}

#fullscreen-loader > i {
	aspect-ratio: 1 / 1;
	inline-size: 14px;
	background-color: var(--colorPrimary);
	rotate: 0turn;
	border-radius: 999rem;
	scale: 0.75;
	opacity: 0.3;
	animation: fullscreen-loader-opacity 1s linear infinite alternate;
}

#fullscreen-loader > i:nth-child(1) {
	animation-delay: 0s;
}

#fullscreen-loader > i:nth-child(2) {
	animation-delay: 0.4s;
}

#fullscreen-loader > i:nth-child(3) {
	animation-delay: 0.8s;
}

#fullscreen-loader > i:nth-child(4) {
	animation-delay: 1.2s;
}

@keyframes fullscreen-loader-opacity {
	to {
		opacity: 1;
	}
}

@keyframes fullscreen-loader-rotate {
	to {
		rotate: 1turn;
	}
}
