/**
 * assets/css/layout/loading-screen.css
 *
 * Ecrã de loading — cobre a página até o carregamento inicial (window
 * "load") terminar, depois desaparece com fade. Reaproveita o selo
 * SVG giratório já usado em .sobre-sticker (sobre.css) como motivo
 * visual, só que mais rápido (é um indicador de carregamento, não um
 * detalhe decorativo passivo) — dá continuidade de marca sem introduzir
 * um asset novo.
 *
 * Gate de sessão: html.loader-skip é aplicado por um script inline em
 * header.php (tem de correr antes deste CSS pintar) sempre que
 * sessionStorage já regista uma visita nesta sessão — evita mostrar o
 * ecrã de loading em todas as páginas que o visitante navegar a seguir.
 *
 * Nota: isto é só ordem cosmética de primeira impressão. Não está a
 * mascarar nenhum problema real de performance (o site já carrega
 * rápido — ver PROJECT_REVIEW.md, Fase 3) nem o iframe do hero (esse é
 * deliberadamente adiado via requestIdleCallback, e só entra depois
 * deste ecrã já ter desaparecido).
 */

.loading-screen {
	position: fixed;
	inset: 0;
	z-index: 10000; /* acima do header/menu (9999, o valor mais alto usado até agora) — tem de cobrir tudo */
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-bg);
	transition: opacity var(--dur-lg) var(--ease-premium), visibility 0s linear var(--dur-lg);
}

.loading-screen.is-hidden {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.loading-screen-selo {
	width: 120px;
	height: 120px;
	animation: loading-screen-spin 1.1s linear infinite;
}

.loading-screen-selo-disc {
	fill: var(--color-text);
}

@keyframes loading-screen-spin {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

/* html.loader-skip = já visto nesta sessão (ver header.php) — nunca chega
   a pintar-se, não só "desaparece rápido" */
html.loader-skip .loading-screen {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	.loading-screen-selo {
		animation: none;
	}

	.loading-screen {
		transition: opacity var(--dur-sm) ease, visibility 0s linear var(--dur-sm);
	}
}
