		:root {
			--nav-height: 100px;
			--nav-blue-dark: #004565;
			--nav-blue: #004565;
			--topic-blue: #166a8f;
			--topic-ink: #19313f;
			--topic-line: rgba(22, 106, 143, 0.18);
		}

		body {
			margin: 0;
			padding-top: var(--nav-height);
			background: #eaf5fd;
		}

		.nav {
			position: fixed;
			top: 0;
			left: 0;
			right: 0;
			z-index: 20;
			height: var(--nav-height);
			color: #fff;
			font-family: "Open Sans", sans-serif;
			background: linear-gradient(90deg, var(--nav-blue-dark) 0%, var(--nav-blue) 100%);
			box-shadow: 0 8px 24px rgba(15, 77, 117, 0.16);
		}

		.nav-bar {
			position: relative;
			z-index: 1;
			display: grid;
			grid-template-columns: 1fr auto 1fr;
			align-items: start;
			gap: 1rem;
			padding: 18px 28px 0;
		}

		.nav-left,
		.nav-right {
			display: flex;
			align-items: center;
			gap: 16px;
		}

		.nav-right {
			justify-content: flex-end;
		}

		.nav-icon {
			width: 48px;
			height: 48px;
			display: inline-flex;
			align-items: center;
			justify-content: center;
			color: #fff;
		}

		.icon-btn {
			padding: 0;
			border: 0;
			background: transparent;
			cursor: pointer;
		}

		.icon-btn:focus-visible {
			outline: 2px solid #fff;
			outline-offset: 3px;
			border-radius: 6px;
		}

		.nav-icon svg {
			width: 100%;
			height: 100%;
			display: block;
		}

		.brand {
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			white-space: nowrap;
		}

		.brand-logo {
			width: clamp(110px, 12vw, 150px);
			height: auto;
			display: block;
		}

		.back-link {
			color: #fff;
			font-size: 0.95rem;
			font-weight: 800;
			text-decoration: none;
			white-space: nowrap;
		}

		.menu-language-button {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			min-height: 44px;
			padding: 6px 10px;
			border: 2px solid rgba(255, 255, 255, 0.78);
			border-radius: 999px;
			background: rgba(255, 255, 255, 0.96);
			text-decoration: none;
		}

		.menu-language-button:focus-visible {
			outline: 2px solid #fff;
			outline-offset: 3px;
		}

		.menu-language-button svg {
			width: 32px;
			height: auto;
			display: block;
		}

		.menu-language-dialog {
			width: min(26rem, calc(100vw - 2rem));
			padding: 1.1rem;
			border: 0;
			border-radius: 14px;
			box-shadow: 0 20px 44px rgba(0, 24, 38, 0.28);
		}

		.menu-language-dialog::backdrop {
			background: rgba(4, 26, 40, 0.4);
		}

		.menu-language-dialog h2 {
			margin: 0 0 1rem;
			color: #083a5e;
			font-size: 1.1rem;
		}

		.menu-language-dialog mrc-button-outline,
		.menu-language-dialog mrc-button-secondary {
			display: block;
			margin-top: 0.6rem;
		}

		.menu-language-dialog a,
		.menu-language-dialog button {
			width: 100%;
			padding: 0.7rem 0.9rem;
			display: block;
			border: 1px solid rgba(8, 58, 94, 0.18);
			border-radius: 10px;
			background: #fff;
			color: #083a5e;
			font: inherit;
			text-align: left;
			text-decoration: none;
			cursor: pointer;
		}

		.menu-language-dialog button {
			background: #083a5e;
			color: #fff;
			text-align: center;
		}

		.screenreader-only {
			position: absolute;
			width: 1px;
			height: 1px;
			padding: 0;
			margin: -1px;
			overflow: hidden;
			clip: rect(0, 0, 0, 0);
			white-space: nowrap;
			border: 0;
		}

		.full-btn {
			position: fixed;
			top: calc(var(--nav-height) + 14px);
			right: 16px;
			z-index: 35;
			width: 56px;
			height: 56px;
			padding: 0;
			display: inline-flex;
			align-items: center;
			justify-content: center;
			border: 0;
			border-radius: 10px;
			background: transparent;
			color: #083a5e;
			cursor: pointer;
		}

		.full-btn svg {
			width: 56px;
			height: 56px;
			display: block;
			stroke: currentColor;
		}

		.full-btn:hover {
			background: rgba(8, 58, 94, 0.1);
		}

		.full-btn:focus-visible {
			outline: 2px solid #083a5e;
			outline-offset: 2px;
		}

		.nav-menu {
			position: fixed;
			z-index: 30;
			width: 25vw;
			max-height: calc(100vh - var(--nav-height) - 20px);
			overflow-y: auto;
			padding: 22px 0;
			background: #004565;
			box-shadow: 0 16px 36px rgba(0, 41, 63, 0.42);
			opacity: 0;
			transform: translateY(-10px);
			pointer-events: none;
			visibility: hidden;
			transition: opacity 180ms ease, transform 220ms ease, visibility 0ms linear 220ms;
		}

		.nav-menu.is-open {
			opacity: 1;
			transform: translateY(0);
			pointer-events: auto;
			visibility: visible;
			transition: opacity 180ms ease, transform 220ms ease;
		}

		.nav-list {
			margin: 0;
			padding: 0;
			list-style: none;
		}

		.nav-list li,
		.nav-submenu li {
			margin: 0;
			padding: 0;
			line-height: 1;
		}

		.nav-list li:has(> .nav-link:only-child),
		.nav-submenu li:has(> .nav-link:only-child) {
			display: flex;
		}

		.nav-link {
			box-sizing: border-box;
			width: 100%;
			display: flex;
			align-items: center;
			padding: 12px 50px;
			color: #f2f8ff;
			text-decoration: none;
			font-family: "Open Sans", sans-serif;
			font-size: clamp(1.15rem, 1.35vw, 1.45rem);
			font-weight: 500;
			line-height: 1;
			letter-spacing: 0.01em;
			position: relative;
		}

		.nav-toggle {
			width: 100%;
			border: 0;
			background: transparent;
			font-family: "Open Sans", sans-serif;
			text-align: left;
			cursor: pointer;
		}

		.nav-link::after {
			content: "";
			position: absolute;
			left: 50px;
			right: 50px;
			bottom: 0;
			height: 2px;
			background: #d6ebfb;
		}

		.nav-link--active {
			color: #ffe66d;
			font-weight: 700;
		}

		.nav-link--sub {
			padding-left: 108px;
		}

		.nav-link--leaf {
			padding-left: 144px;
		}

		.nav-caret {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			font-size: 0.88em;
			margin-left: 16px;
			line-height: 1;
			transform: rotate(0deg);
			transform-origin: center;
			transition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
			will-change: transform;
		}

		.link-arrow {
			width: 1.05em;
			height: 1.05em;
			margin-right: 0.45em;
			flex: 0 0 auto;
		}

		.nav-toggle[aria-expanded="true"] .nav-caret {
			transform: rotate(180deg);
		}

		.nav-submenu {
			margin: 0;
			padding: 0;
			list-style: none;
			max-height: 0;
			overflow: hidden;
			opacity: 0;
			transition: max-height 240ms ease, opacity 180ms ease;
		}

		.nav-submenu.is-open {
			max-height: 460px;
			opacity: 1;
		}

		.reveal {
			height: calc(100vh - var(--nav-height));

			& .slides>section.slide,
			& .slides>section.topic-slide,
			& .slides>section>section.slide,
			& .slides>section>section.topic-slide {
				box-sizing: border-box;
				display: flex;
				flex-direction: column;
				gap: 1.25rem;
				height: 100%;
				overflow-y: auto;

				& h1,
				& h2,
				& h3 {
					color: var(--topic-blue);
					text-transform: none;
				}

				&.cover {
					display: flex !important;
					justify-content: center;
				}
			}
		}

		.topic-lead {
			color: var(--topic-blue);
			font-size: clamp(1.25rem, 2.4vw, 2rem);
			font-weight: 700;
			line-height: 1.18;
		}

		.topic-media {
			position: relative;
			width: 100%;
			height: min(24rem, 58vh);
			border: 1px solid var(--topic-line);
			border-radius: 8px;
			display: block;
			object-fit: cover;
		}

		.topic-copy {
			margin: 0;
			color: var(--topic-ink);
			font-size: clamp(0.78rem, 1.35vw, 1.05rem);
			line-height: 1.35;
		}

		.map-slide {
			align-items: center;
			justify-content: center;
			padding: clamp(2rem, 4vw, 3rem);
		}

		.map-panel {
			width: min(26rem, 52vw);
			margin: 0 auto;
			padding: 1rem 0;
			border: 2px solid #5ab9f3;
			border-radius: 12px;
			background: #0f597a;
			box-shadow: 0 12px 24px rgba(7, 54, 78, 0.2);
		}

		.map-panel .nav-link {
			color: #f3f8fd;
			font-size: clamp(0.95rem, 1.1vw, 1.2rem);
			font-weight: 500;
			padding-top: 0.7rem;
			padding-bottom: 0.7rem;
			padding-left: 1.15rem;
		}

		.map-panel .nav-link::after {
			left: 1.15rem;
			right: 1.15rem;
			height: 2px;
			background: rgba(245, 243, 250, 0.92);
		}

		.map-panel .nav-link--active {
			color: #ffe66d;
			font-weight: 700;
		}

		.map-panel .nav-link--sub {
			padding-left: 3rem;
		}

		.map-panel .nav-link--leaf {
			padding-left: 3.45rem;
		}

		.map-panel .nav-submenu.is-open {
			display: block;
			max-height: 1000px;
		}

		.map-panel .nav-submenu {
			display: none;
			width: 100%;
			margin: 0;
			padding-left: 0;
		}

		.map-panel .nav-submenu > li {
			width: 100%;
		}

		@media (max-width: 900px) {
			:root {
				--nav-height: 88px;
			}

			.nav-bar {
				grid-template-columns: 1fr auto 1fr;
				align-items: center;
				padding: 14px 18px;
				gap: 12px;
			}

			.nav-left {
				width: 100%;
				justify-content: flex-start;
			}

			.nav-right {
				width: 100%;
				justify-content: flex-end;
				gap: 12px;
			}

			.brand-logo {
				width: 118px;
			}

			.back-link {
				display: none;
			}

			.nav-menu {
				top: var(--nav-height);
				left: 6px;
				width: calc(60vw - 12px);
				max-height: calc(100vh - var(--nav-height) - 14px);
				padding: 14px 0;
			}

			.nav-link {
				padding: 9px 14px 9px 24px;
				font-size: 1rem;
			}

			.nav-link::after {
				left: 14px;
				right: 14px;
				height: 1px;
			}

			.nav-link--sub {
				padding-left: 42px;
			}

			.nav-link--leaf {
				padding-left: 58px;
			}

			.full-btn {
				top: calc(var(--nav-height) + 10px);
				right: 10px;
				width: 48px;
				height: 48px;
			}

			.full-btn svg {
				width: 50px;
				height: 50px;
			}

		}

		@media (max-width: 640px) {
			:root {
				--nav-height: 72px;
			}

			.nav-bar {
				grid-template-columns: 1fr auto 1fr;
				align-items: center;
				padding: 10px 12px;
				gap: 8px;
			}

			.brand-logo {
				width: 96px;
			}

			.nav-left,
			.nav-right {
				gap: 8px;
			}

			.nav-icon {
				width: 36px;
				height: 36px;
			}

			.nav-left .nav-icon[aria-hidden="true"] {
				display: none;
			}

			.menu-language-button {
				min-height: 34px;
				padding: 3px 7px;
			}

			.menu-language-button svg {
				width: 28px;
			}

			.full-btn {
				top: calc(var(--nav-height) + 8px);
				right: 8px;
				width: 40px;
				height: 40px;
			}

			.full-btn svg {
				width: 40px;
				height: 40px;
			}

			.nav-menu {
				top: var(--nav-height);
				left: 4px;
				width: calc(100vw - 8px);
				max-height: calc(100vh - var(--nav-height) - 10px);
				padding: 10px 0;
			}

			.nav-link {
				padding: 8px 12px 8px 18px;
				font-size: 0.98rem;
			}

			.nav-link::after {
				left: 12px;
				right: 12px;
			}

			.nav-link--sub {
				padding-left: 32px;
			}

			.nav-link--leaf {
				padding-left: 44px;
			}

			.map-slide {
				padding: 1rem;
			}

			.map-panel {
				width: min(88vw, 18rem);
				padding: 0.7rem 0;
				border-width: 2px;
				border-radius: 10px;
			}

			.map-panel .nav-link {
				font-size: 0.86rem;
				padding-top: 0.55rem;
				padding-bottom: 0.55rem;
				padding-left: 0.95rem;
			}

			.map-panel .nav-link::after {
				left: 0.95rem;
				right: 0.95rem;
				height: 2px;
			}

			.map-panel .nav-link--sub {
				padding-left: 2.3rem;
			}

			.map-panel .nav-link--leaf {
				padding-left: 2.75rem;
			}
		}
