.itm-page-loader {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #000;
	opacity: 1;
	visibility: visible;
	transition: opacity 0.4s ease, visibility 0.4s ease;
}

.itm-page-loader.is-done {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.itm-page-loader__mark {
	position: relative;
	width: 168px;
	height: 168px;
	display: grid;
	place-items: center;
}

.itm-page-loader__logo {
	width: 140px;
	height: 140px;
	object-fit: contain;
	animation: itm-loader-pulse 1.2s ease-in-out infinite;
}

.itm-page-loader.is-logo-missing .itm-page-loader__logo {
	display: none;
}

.itm-page-loader.is-logo-missing .itm-page-loader__mark::after {
	content: 'ITM';
	color: #ff0000;
	font-family: Arial, sans-serif;
	font-size: 42px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.itm-page-loader__ring {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 2px solid rgba(255, 0, 0, 0.18);
	border-top-color: #ff0000;
	animation: itm-loader-spin 0.85s linear infinite;
}

@keyframes itm-loader-spin {
	to { transform: rotate(360deg); }
}

@keyframes itm-loader-pulse {
	0%, 100% { transform: scale(1); opacity: 1; }
	50% { transform: scale(0.94); opacity: 0.82; }
}

@media (prefers-reduced-motion: reduce) {
	.itm-page-loader__logo,
	.itm-page-loader__ring {
		animation: none;
	}
}
