/*
 * Shared cross-document transitions for every public AquaGib theme view.
 * Native links, history and scroll restoration remain browser-owned.
 * Unsupported browsers and reduced-motion users retain ordinary navigation.
 */
@media (prefers-reduced-motion: no-preference) {
	@view-transition {
		navigation: auto;
	}

	#main-content {
		view-transition-name: aquagib-page-content;
	}

	/* Home overlays its header on the hero: keep it above content snapshots. */
	.site-header {
		view-transition-name: aquagib-site-header;
	}

	/* Leave the shared header and other page chrome steady and immediately live. */
	::view-transition {
		pointer-events: none;
	}

	::view-transition-group(root),
	::view-transition-group(aquagib-site-header),
	::view-transition-group(aquagib-page-content) {
		animation: none;
	}

	::view-transition-group(root) {
		z-index: 0;
	}

	::view-transition-group(aquagib-page-content) {
		z-index: 1;
	}

	::view-transition-group(aquagib-site-header) {
		z-index: 2;
	}

	::view-transition-old(root),
	::view-transition-old(aquagib-site-header) {
		display: none;
	}

	::view-transition-new(root),
	::view-transition-new(aquagib-site-header) {
		animation: none;
	}

	/* Natural snapshot heights avoid stretching pages of different lengths. */
	::view-transition-old(aquagib-page-content),
	::view-transition-new(aquagib-page-content) {
		height: auto;
		mix-blend-mode: normal;
	}

	::view-transition-old(aquagib-page-content) {
		animation: aquagib-page-out 80ms ease-out both;
	}

	::view-transition-new(aquagib-page-content) {
		/* A short handover prevents two different headings ghosting together. */
		animation: aquagib-page-in 220ms cubic-bezier(0.22, 1, 0.36, 1) 80ms both;
	}

	@keyframes aquagib-page-out {
		to { opacity: 0; }
	}

	@keyframes aquagib-page-in {
		from { opacity: 0; transform: translateY(8px); }
		to { opacity: 1; transform: translateY(0); }
	}
}
