/* Loading indicator for navigation without reload (js/swup-nav.js) */
.bw-nav-progress {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100000;
	width: 100%;
	height: 3px;
	background-color: #3855FC;
	transform: scaleX(0);
	transform-origin: left center;
	opacity: 0;
	pointer-events: none;
}

html[data-color-scheme="red"] .bw-nav-progress {
	background-color: #A43A35;
}

html[data-color-scheme="purple"] .bw-nav-progress {
	background-color: #8936AD;
}

html[data-color-scheme="green"] .bw-nav-progress {
	background-color: #65A33F;
}

/* Shown after a short delay so fast transitions don't flash */
html.is-changing .bw-nav-progress {
	opacity: 1;
	transform: scaleX(0.9);
	transition: opacity 0.1s linear 0.15s, transform 4s cubic-bezier(0.1, 0.6, 0.2, 1) 0.15s;
}

html.is-changing,
html.is-changing * {
	cursor: progress;
}

/* Page transition: the current page stays visible while the next one loads, then the new content enters.
   Link clicks only; back/forward is instant. Duration matches ENTER_MS in js/swup-nav.js */
html.bw-nav-enter .swup-transition-main {
	animation: bw-content-enter 0.2s ease-out;
}

@keyframes bw-content-enter {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	html.is-changing .bw-nav-progress {
		transform: scaleX(1);
		transition: opacity 0.1s linear 0.15s;
	}

	/* Fade only, no movement */
	html.bw-nav-enter .swup-transition-main {
		animation-name: bw-content-fade-in;
	}

	@keyframes bw-content-fade-in {
		from { opacity: 0; }
		to { opacity: 1; }
	}
}
