/* Hormuz Home Hero v1.0.0 — extracted from the approved v3.0 snippet. */
/* Hormuz Hero Map v2.7 — fully scoped */
				.hzm-map,
				.hzm-map * {
					box-sizing: border-box;
				}

				.hzm-map {
					--hzm-brand: #008f8c;
					--hzm-brand-deep: #005e5b;
					--hzm-brand-soft: #69ddd2;
					--hzm-brand-pale: #c9f0eb;
					--hzm-ink: #10202f;
					--hzm-muted: #66788b;
					--hzm-port: #f4fbfa;
					--hzm-amber: #efb55b;
					--hzm-white: #ffffff;
					--hzm-land-start: #0aa39a;
					--hzm-land-mid: #008f8c;
					--hzm-land-end: #006965;
					--hzm-sea-dot: #9aeee5;
					--hzm-sea-dot-soft: #d8fbf7;
					--hzm-sea-dot-spark: #ffffff;
					--hzm-sea-glow: rgba(111, 246, 231, 0.46);
					--hzm-sea-glow-wide: rgba(62, 206, 194, 0.24);
					--hzm-province-stroke: rgba(255, 255, 255, 0.28);
					--hzm-province-stroke-active: rgba(255, 255, 255, 0.95);
					--hzm-province-active: #12a79f;
					--hzm-edge: #2dd4bf;
					--hzm-edge-active: #7be8dc;
					--hzm-label-fill: #ffffff;
					--hzm-label-stroke: rgba(0, 77, 74, 0.95);
					--hzm-node-glow: rgba(105, 221, 210, 0.55);
					--hzm-node-glow-active: rgba(105, 221, 210, 0.86);
					--hzm-capital-glow: rgba(239, 181, 91, 0.66);
					--hzm-particle-glow: rgba(45, 212, 191, 0.82);
					--hzm-particle-primary-glow: rgba(239, 181, 91, 0.88);

					position: relative;
					isolation: isolate;
					width: min(100%, var(--hzm-max-width, 560px));
					margin-inline: auto;
					font-family:
						Manrope,
						Inter,
						system-ui,
						-apple-system,
						BlinkMacSystemFont,
						"Segoe UI",
						sans-serif;
				}

				.hzm-map::before,
				.hzm-map::after {
					content: "";
					position: absolute;
					z-index: -1;
					pointer-events: none;
				}

				.hzm-map::before {
					inset: 11% 8% 7%;
					border-radius: 50%;
					background:
						radial-gradient(
							circle at 52% 45%,
							rgba(0, 143, 140, 0.15),
							rgba(0, 143, 140, 0.052) 45%,
							transparent 72%
						);
					filter: blur(20px);
				}

				.hzm-map::after {
					inset: 24% 18% 14%;
					border-radius: 50%;
					border: 1px solid rgba(0, 143, 140, 0.055);
					filter: blur(0.2px);
				}

				.hzm-stage {
					position: relative;
					width: 100%;
					aspect-ratio: 1200 / 1070.6;
				}

				.hzm-svg {
					position: absolute;
					inset: 0;
					display: block;
					width: 100%;
					height: 100%;
					overflow: visible;
					transform-origin: 50% 50%;
					transition:
						opacity 540ms ease,
						transform 760ms cubic-bezier(0.22, 0.78, 0.2, 1);
				}

				.hzm-map[data-motion="1"]:not(.is-visible) .hzm-svg {
					opacity: 0;
					transform: translateY(5px) scale(0.988);
				}

				/* Theme the embedded SVG gradient through CSS without mutating its geometry. */
				.hzm-map linearGradient[id$="-land"] stop:nth-child(1) {
					stop-color: var(--hzm-land-start);
				}

				.hzm-map linearGradient[id$="-land"] stop:nth-child(2) {
					stop-color: var(--hzm-land-mid);
				}

				.hzm-map linearGradient[id$="-land"] stop:nth-child(3) {
					stop-color: var(--hzm-land-end);
				}

				/* Sea geometry stays invisible; only the generated particle field is visible. */
				.hzm-seas path {
					fill: transparent;
					stroke: none;
					filter: none;
					pointer-events: none;
				}

				.hzm-sea-dot-field {
					pointer-events: none;
					filter:
						drop-shadow(0 0 1.4px var(--hzm-sea-glow))
						drop-shadow(0 0 4.2px var(--hzm-sea-glow-wide));
				}

				.hzm-sea-dot {
					fill: var(--hzm-sea-dot);
					stroke: rgba(218, 255, 250, 0.22);
					stroke-width: 0.34;
					vector-effect: non-scaling-stroke;
					transform-box: view-box;
					transform-origin: 0 0;
					will-change: transform;
				}

				.hzm-sea-dot.is-soft {
					fill: var(--hzm-sea-dot-soft);
				}

				.hzm-sea-dot.is-spark {
					fill: var(--hzm-sea-dot-spark);
					stroke: rgba(255, 255, 255, 0.58);
					stroke-width: 0.5;
				}

				.hzm-map[data-motion="1"] .hzm-sea-dot.is-spark {
					animation:
						hzm-sea-spark
						var(--hzm-spark-duration, 3.6s)
						ease-in-out
						infinite;
					animation-delay: var(--hzm-spark-delay, 0s);
				}

				.hzm-map.is-paused .hzm-sea-dot.is-spark {
					animation-play-state: paused;
				}

				@keyframes hzm-sea-spark {
					0%,
					100% {
						opacity: 0.74;
					}

					42% {
						opacity: 1;
					}

					58% {
						opacity: 0.84;
					}

					72% {
						opacity: 1;
					}
				}

				.hzm-map[data-motion="0"] .hzm-sea-dot,
				.hzm-map.is-paused .hzm-sea-dot {
					will-change: auto;
				}

				/* Islands */
				.hzm-islands {
					filter:
						drop-shadow(0 5px 9px rgba(0, 75, 72, 0.18));
				}

				.hzm-islands path,
				.hzm-islands polygon {
					fill: var(--hzm-brand-deep);
					stroke: rgba(255, 255, 255, 0.34);
					stroke-width: 0.62;
					vector-effect: non-scaling-stroke;
					transition:
						fill 180ms ease,
						filter 180ms ease;
				}

				.hzm-islands path:hover,
				.hzm-islands polygon:hover {
					fill: var(--hzm-brand);
					filter:
						drop-shadow(0 0 4px rgba(0, 143, 140, 0.5));
				}

				/* Provinces */
				.hzm-provinces {
					filter:
						drop-shadow(0 18px 28px rgba(0, 75, 72, 0.21));
					transition: opacity 220ms ease;
				}

				.hzm-provinces a {
					cursor: pointer;
					outline: none;
				}

				.hzm-province {
					fill: var(--hzm-land-fill);
					stroke: var(--hzm-province-stroke);
					stroke-width: 1.02;
					vector-effect: non-scaling-stroke;
					cursor: pointer;
					outline: none;
					opacity: 1;
					transition:
						opacity 280ms ease,
						fill 210ms ease,
						stroke 210ms ease,
						filter 210ms ease;
					transition-delay: var(--hzm-province-delay, 0ms);
				}

				.hzm-map[data-motion="1"]:not(.is-visible) .hzm-province {
					opacity: 0;
				}

				.hzm-map.has-province-focus .hzm-province {
					opacity: 0.69;
				}

				.hzm-map.has-province-focus .hzm-province.is-active,
				.hzm-province:hover,
				.hzm-provinces a:focus-visible .hzm-province {
					opacity: 1;
					fill: var(--hzm-province-active);
					stroke: var(--hzm-province-stroke-active);
					stroke-width: 1.55;
					filter:
						brightness(1.035)
						drop-shadow(0 0 5px rgba(0, 143, 140, 0.28));
				}
				/* Corridors — original visual language */
				.hzm-edges,
				.hzm-radar,
				.hzm-nodes {
					transition: opacity 220ms ease;
				}

				.hzm-edge {
					opacity: 0.82;
					transition:
						opacity 260ms ease,
						filter 200ms ease;
				}

				.hzm-edge-line {
					fill: none;
					stroke: var(--hzm-edge);
					stroke-width: 1.3;
					stroke-opacity: 0.8;
					stroke-linecap: round;
					stroke-linejoin: round;
					stroke-dasharray: 5 9;
					vector-effect: non-scaling-stroke;
					animation: hzm-edge-flow 1.4s linear infinite;
					transition:
						stroke 180ms ease,
						stroke-width 180ms ease,
						stroke-opacity 180ms ease;
				}

				@keyframes hzm-edge-flow {
					to {
						stroke-dashoffset: -28;
					}
				}

				.hzm-map[data-motion="0"] .hzm-edge-line,
				.hzm-map.is-paused .hzm-edge-line {
					animation-play-state: paused;
				}

				.hzm-map.has-node-focus .hzm-edge {
					opacity: 0.1;
				}

				.hzm-map.has-node-focus .hzm-edge.is-connected {
					opacity: 1;
					filter:
						drop-shadow(
							0 0 2px
							rgba(45, 212, 191, 0.32)
						);
				}

				.hzm-map.has-node-focus
					.hzm-edge.is-connected
					.hzm-edge-line {
					stroke: var(--hzm-edge-active);
					stroke-width: 1.55;
					stroke-opacity: 1;
				}


				/* Nodes */
				.hzm-node {
					cursor: pointer;
					transform-box: fill-box;
					transform-origin: center;
					opacity: 1;
					transition:
						opacity 280ms ease,
						transform 460ms
							cubic-bezier(0.22, 0.8, 0.2, 1);
				}

				.hzm-node-halo {
					fill: var(--hzm-brand-soft);
					opacity: 0.15;
					transform-box: fill-box;
					transform-origin: center;
				}

				.hzm-node.is-capital .hzm-node-halo,
				.hzm-node.is-port.is-primary .hzm-node-halo {
					animation:
						hzm-node-pulse
						var(--hzm-pulse-duration, 5.4s)
						ease-out
						infinite;
					animation-delay:
						var(--hzm-pulse-delay, 0s);
				}

				.hzm-node-ring {
					fill: none;
					stroke: rgba(255, 255, 255, 0.48);
					stroke-width: 0.75;
					vector-effect: non-scaling-stroke;
					opacity: 0.72;
					transition:
						opacity 180ms ease,
						transform 180ms ease,
						stroke 180ms ease;
					transform-box: fill-box;
					transform-origin: center;
				}

				.hzm-node.is-port .hzm-node-ring {
					stroke: rgba(255, 255, 255, 0.78);
					stroke-dasharray: 2.4 2.4;
				}

				.hzm-node-core {
					fill: var(--hzm-brand-soft);
					stroke: var(--hzm-brand-deep);
					stroke-width: 1.2;
					vector-effect: non-scaling-stroke;
					filter:
						drop-shadow(
							0 0 3px
							var(--hzm-node-glow)
						);
					transform-box: fill-box;
					transform-origin: center;
					transition:
						transform 180ms ease,
						filter 180ms ease,
						stroke 180ms ease,
						fill 180ms ease;
				}

				.hzm-node.is-capital .hzm-node-core {
					fill: var(--hzm-amber);
					filter:
						drop-shadow(
							0 0 5px
							var(--hzm-capital-glow)
						);
				}

				.hzm-node.is-capital .hzm-node-halo {
					fill: var(--hzm-amber);
				}

				.hzm-node.is-port .hzm-node-core {
					fill: var(--hzm-port);
					stroke: var(--hzm-brand);
				}

				.hzm-node-label {
					fill: var(--hzm-label-fill);
					stroke: var(--hzm-label-stroke);
					stroke-width: 2.65px;
					stroke-linejoin: round;
					paint-order: stroke fill;
					font-family:
						Manrope,
						Inter,
						system-ui,
						sans-serif;
					font-size: 10px;
					font-weight: 650;
					letter-spacing: -0.012em;
					pointer-events: none;
					user-select: none;
					transition:
						transform 180ms ease,
						opacity 180ms ease;
				}

				.hzm-node.is-primary .hzm-node-label {
					font-weight: 730;
				}

				.hzm-node:hover .hzm-node-core,
				.hzm-node:focus-visible .hzm-node-core,
				.hzm-node.is-active .hzm-node-core {
					transform: scale(1.3);
					stroke: #ffffff;
					filter:
						drop-shadow(
							0 0 7px
							var(--hzm-node-glow-active)
						);
				}

				.hzm-node:hover .hzm-node-ring,
				.hzm-node:focus-visible .hzm-node-ring,
				.hzm-node.is-active .hzm-node-ring {
					opacity: 1;
					transform: scale(1.13);
					stroke: #ffffff;
				}

				.hzm-node:hover .hzm-node-label,
				.hzm-node:focus-visible .hzm-node-label,
				.hzm-node.is-active .hzm-node-label {
					transform: translateY(-2px);
				}

				.hzm-node:focus-visible {
					outline: none;
				}

				.hzm-map.has-node-focus .hzm-node {
					opacity: 0.24;
				}

				.hzm-map.has-node-focus .hzm-node.is-active,
				.hzm-map.has-node-focus .hzm-node.is-related {
					opacity: 1;
				}

				@keyframes hzm-node-pulse {
					0% {
						transform: scale(1);
						opacity: 0.25;
					}
					65%,
					100% {
						transform: scale(2.25);
						opacity: 0;
					}
				}

				/* Tehran radar — immediate, calm and clearly visible */
				.hzm-radar-ring {
					fill: none;
					stroke: var(--hzm-amber);
					stroke-width: 0.92;
					vector-effect: non-scaling-stroke;
					opacity: 0;
					transform-box: fill-box;
					transform-origin: center;
					animation:
						hzm-radar
						4.05s
						cubic-bezier(0.2, 0.58, 0.36, 1)
						infinite;
					animation-delay:
						var(--hzm-radar-delay, 0s);
				}

				@keyframes hzm-radar {
					0% {
						transform: scale(0.5);
						opacity: 0.38;
					}
					72% {
						opacity: 0.12;
					}
					100% {
						transform: scale(4.5);
						opacity: 0;
					}
				}

				/* Periodic route particles — no Tehran flash */
				.hzm-particle {
					pointer-events: none;
					fill: var(--hzm-brand-soft);
					stroke: rgba(255, 255, 255, 0.9);
					stroke-width: 0.72;
					vector-effect: non-scaling-stroke;
					filter:
						drop-shadow(
							0 0 5px
							var(--hzm-particle-glow)
						);
				}

				.hzm-particle.is-first {
					fill: var(--hzm-amber);
					filter:
						drop-shadow(
							0 0 6px
							var(--hzm-particle-primary-glow)
						);
				}

				/* Tooltip */
				.hzm-tooltip {
					position: absolute;
					z-index: 20;
					top: 0;
					left: 0;
					width: max-content;
					max-width: min(265px, calc(100% - 20px));
					padding: 10px 12px 11px;
					border: 1px solid rgba(255, 255, 255, 0.16);
					border-radius: 12px;
					background:
						linear-gradient(
							145deg,
							rgba(15, 31, 46, 0.93),
							rgba(15, 31, 46, 0.77)
						);
					color: #ffffff;
					box-shadow:
						0 16px 34px rgba(16, 32, 47, 0.21),
						inset 0 1px 0 rgba(255, 255, 255, 0.1);
					backdrop-filter: blur(16px) saturate(125%);
					-webkit-backdrop-filter: blur(16px) saturate(125%);
					transform:
						translate(-50%, calc(-100% - 13px));
					opacity: 0;
					pointer-events: none;
					transition:
						opacity 130ms ease,
						transform 130ms ease;
				}

				.hzm-tooltip.is-visible {
					opacity: 1;
					transform:
						translate(-50%, calc(-100% - 17px));
				}

				.hzm-tooltip.is-below {
					transform:
						translate(-50%, 13px);
				}

				.hzm-tooltip.is-visible.is-below {
					transform:
						translate(-50%, 17px);
				}

				.hzm-tooltip small {
					display: block;
					margin-bottom: 3px;
					color: rgba(105, 221, 210, 0.9);
					font-size: 8.5px;
					font-weight: 800;
					letter-spacing: 0.1em;
					line-height: 1;
					text-transform: uppercase;
				}

				.hzm-tooltip strong {
					display: block;
					font-size: 12.5px;
					font-weight: 750;
					line-height: 1.25;
				}

				.hzm-tooltip span {
					display: block;
					margin-top: 3px;
					color: rgba(255, 255, 255, 0.72);
					font-size: 11px;
					line-height: 1.4;
				}

				.hzm-tooltip::after {
					content: "";
					position: absolute;
					left: 50%;
					bottom: -5px;
					width: 9px;
					height: 9px;
					border-right: 1px solid rgba(255, 255, 255, 0.14);
					border-bottom: 1px solid rgba(255, 255, 255, 0.14);
					background: rgba(15, 31, 46, 0.83);
					transform:
						translateX(-50%)
						rotate(45deg);
				}

				.hzm-tooltip.is-below::after {
					top: -5px;
					bottom: auto;
					border: 0;
					border-left: 1px solid rgba(255, 255, 255, 0.14);
					border-top: 1px solid rgba(255, 255, 255, 0.14);
				}

				/* Pause offscreen */
				.hzm-map.is-paused .hzm-node-halo,
				.hzm-map.is-paused .hzm-radar-ring {
					animation-play-state: paused !important;
				}

				@media (max-width: 520px) {
					.hzm-tooltip {
						max-width: min(225px, calc(100% - 18px));
						padding: 8px 10px 9px;
					}

					.hzm-tooltip strong {
						font-size: 11.5px;
					}

					.hzm-tooltip span {
						font-size: 10px;
					}

					.hzm-node-label {
						font-size: 9.4px;
						stroke-width: 2.45px;
					}

					.hzm-node.is-secondary .hzm-node-label {
						opacity: 0;
					}

					.hzm-node.is-secondary:hover .hzm-node-label,
					.hzm-node.is-secondary:focus-visible .hzm-node-label,
					.hzm-node.is-secondary.is-active .hzm-node-label {
						opacity: 1;
					}
				}

				@media (prefers-reduced-motion: reduce) {
					.hzm-map *,
					.hzm-map *::before,
					.hzm-map *::after {
						scroll-behavior: auto !important;
					}

					.hzm-svg,
					.hzm-province,
					.hzm-edge-line,
					.hzm-node,
					.hzm-node-core,
					.hzm-node-ring,
					.hzm-node-label,
					.hzm-tooltip {
						transition: none !important;
					}

					.hzm-map[data-motion="1"]:not(.is-visible) .hzm-svg,
					.hzm-map[data-motion="1"]:not(.is-visible) .hzm-province {
						opacity: 1 !important;
						transform: none !important;
					}

					.hzm-edge-line {
						animation: none !important;
					}

					.hzm-node-halo,
					.hzm-radar-ring {
						animation: none !important;
					}

					.hzm-sea-dot {
						animation: none !important;
						transition: none !important;
						will-change: auto !important;
					}

					.hzm-particle {
						display: none !important;
					}
				}

.hnh1,
				.hnh1 * {
					box-sizing: border-box;
				}

				.hnh1 {
					--hnh1-bg: #071b19;
					--hnh1-bg-mid: #07514e;
					--hnh1-bg-deep: #03110f;
					--hnh1-ink: #f6fbfa;
					--hnh1-muted: rgba(236, 247, 245, 0.68);
					--hnh1-soft: rgba(236, 247, 245, 0.42);
					--hnh1-line: rgba(246, 251, 250, 0.13);
					--hnh1-teal: #5fc4bc;
					--hnh1-teal-deep: #0f6e69;
					--hnh1-accent: #f6fbfa;
					--hnh1-accent-soft: rgba(246, 251, 250, 0.42);

					position: relative;
					isolation: isolate;
					width: 100%;
					height: 620px;
					overflow: hidden;
					border: 1px solid rgba(246, 251, 250, 0.10);
					border-radius: 16px;
					margin-top: -20px;
					background:
						radial-gradient(80% 130% at 3% -15%, rgba(255, 255, 255, 0.055), transparent 48%),
						linear-gradient(150deg, var(--hnh1-bg) 0%, var(--hnh1-bg-mid) 52%, var(--hnh1-bg-deep) 100%);
					
					color: var(--hnh1-ink);
					font-family: inherit;
					text-align: left;
				}

				.hnh1::before,
				.hnh1::after {
					content: "";
					position: absolute;
					pointer-events: none;
				}

				.hnh1::before {
					z-index: -2;
					inset: 0;
					background-image:
						linear-gradient(rgba(246, 251, 250, 0.045) 1px, transparent 1px),
						linear-gradient(90deg, rgba(246, 251, 250, 0.045) 1px, transparent 1px);
					background-size: 42px 42px;
					mask-image: radial-gradient(75% 90% at 22% 32%, black 0%, transparent 68%);
					-webkit-mask-image: radial-gradient(75% 90% at 22% 32%, black 0%, transparent 68%);
					opacity: 0.55;
				}

				.hnh1::after {
					z-index: -1;
					right: -17%;
					top: -43%;
					width: 69%;
					aspect-ratio: 1;
					border: 1px solid rgba(246, 251, 250, 0.035);
					border-radius: 50%;
					box-shadow:
						0 0 0 72px rgba(43, 185, 154, 0.006),
						0 0 0 154px rgba(43, 185, 154, 0.003);
				}

				.hnh1 a {
					color: inherit;
					text-decoration: none;
				}

				.hnh1__ambient {
					position: absolute;
					z-index: -1;
					left: -10%;
					bottom: -38%;
					width: 48%;
					aspect-ratio: 1;
					border-radius: 50%;
					background: rgba(43, 185, 154, 0.07);
					filter: blur(92px);
					pointer-events: none;
				}

				.hnh1__inner {
					position: relative;
					z-index: 2;
					width: min(100%, 1460px);
					min-height: 690px;
					margin: 0 auto;
					padding: clamp(40px, 4.15vw, 58px) clamp(48px, 6.2vw, 104px) 48px 8px;
				}

				.hnh1__main {
					display: grid;
					min-width: 0;
					grid-template-columns: minmax(470px, 580px) minmax(560px, 1fr);
					align-items: center;
					gap: clamp(142px, 9.1vw, 192px);
					min-height: 480px;
				}

				.hnh1__copy {
					position: relative;
					min-width: 0;
					z-index: 5;
					width: 100%;
					max-width: 700px;
					padding-right: 0;
					/* Keep the approved -84px art-direction shift only when the viewport has
					 * enough outer gutter. It smoothly returns to 0 on laptop/zoomed views so
					 * overflow:hidden can never crop the beginning of the copy. */
					margin-left: clamp(-84px, calc(730px - 50vw), 0px);
				}

				.hnh1__eyebrow {
					display: inline-flex;
					align-items: center;
					gap: 10px;
					margin: 0 0 22px;
					color: var(--hnh1-accent);
					font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
					font-size: 14px;
					font-weight: 700;
					letter-spacing: 0.16em;
					line-height: 1;
					text-transform: uppercase;
				}

				.hnh1__eyebrow-mark {
					display: inline-block;
					width: 6px;
					height: 6px;
					border-radius: 50%;
					background: var(--hnh1-accent);
					box-shadow: 0 0 0 3px rgba(246, 251, 250, 0.16), 0 0 10px rgba(246, 251, 250, 0.22);
				}
				.hnh1 h1.hnh1__title {
					display: block;
					width: 100%;
					max-width: 610px;
					margin: 0;
					padding: 0;
					color: var(--hnh1-ink);
					font-family: inherit;
					font-size: clamp(45px, 4.4vw, 66px);
					font-weight: 600;
					font-style: normal;
					letter-spacing: -0.018em;
					line-height: 0.99;
					text-transform: none;
					white-space: nowrap;
				}

				.hnh1__statement {
					display: flex;
					align-items: baseline;
					gap: 0.22em;
					width: 100%;
					margin: 19px 0 0;
					color: rgba(236, 247, 245, 0.74);
					font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
					font-size: clamp(17px, 1.5vw, 20px);
					font-weight: 500;
					letter-spacing: 0.01em;
					line-height: 1.2;
					white-space: nowrap;
					padding-top: 16px;
					border-top: 1px solid var(--hnh1-line);
				}

				.hnh1__statement-label {
					flex: 0 0 auto;
					white-space: nowrap;
					color: rgb(117, 169, 165);
				}

				.hnh1__word-slot {
					display: inline-flex;
					min-width: 7.9em;
					align-items: baseline;
					white-space: nowrap;
				}

				.hnh1__word {
					display: inline-block;
					color: var(--hnh1-ink);
					opacity: 1;
					transform: translateY(0);
					white-space: nowrap;
					transition: opacity 180ms ease, transform 180ms ease;
				}

				.hnh1__word::after {
					content: "";
					display: inline-block;
					width: 6px;
					height: 15px;
					margin-left: 6px;
					background: var(--hnh1-accent);
					vertical-align: -2px;
					animation: hnh1-blink 1.1s steps(1) infinite;
				}

				@keyframes hnh1-blink {
					50% { opacity: 0; }
				}

				.hnh1__word.is-changing {
					opacity: 0;
					transform: translateY(5px);
				}

				.hnh1__description {
					max-width: 640px;
					margin: 26px 0 0 !important;
					padding: 0 !important;
					color: var(--hnh1-muted) !important;
					font-size: clamp(14px, 1.05vw, 15px) !important;
					font-weight: 420 !important;
					letter-spacing: -0.006em !important;
					line-height: 1.62 !important;
					text-wrap: balance;
				}
				.hnh1__map {
					position: relative;
					min-width: 0;
					z-index: 2;
					width: min(730px, 104%);
					max-width: none;
					margin: 0;
					/* Same approved desktop offset, but only while a matching right gutter exists. */
					transform: translate(clamp(0px, calc(50vw - 730px), 80px), -4px);
				}

				/* Hero-local map treatment: tonal, low-contrast and integrated with the section. */
				.hnh1 .hzm-map {
					--hzm-brand: #2b827d;
					--hzm-brand-deep: #07514e;
					--hzm-brand-soft: #79b9b4;
					--hzm-brand-pale: #c9dfdc;
					--hzm-port: #e6f2f0;
					--hzm-amber: #bdd5d2;
					--hzm-land-start: #2b817c;
					--hzm-land-mid: #1b6d68;
					--hzm-land-end: #0b5652;
					--hzm-sea-dot: #82eadf;
					--hzm-sea-dot-soft: #c9f8f2;
					--hzm-sea-dot-spark: #ffffff;
					--hzm-sea-glow: rgba(102, 245, 229, 0.58);
					--hzm-sea-glow-wide: rgba(58, 210, 196, 0.32);
					--hzm-province-stroke: rgba(238, 248, 246, 0.18);
					--hzm-province-stroke-active: rgba(246, 251, 250, 0.62);
					--hzm-province-active: #32857f;
					--hzm-edge: #8ebdb8;
					--hzm-edge-active: #d4e8e5;
					--hzm-label-fill: #eef7f5;
					--hzm-label-stroke: rgba(5, 58, 55, 0.88);
					--hzm-node-glow: rgba(121, 185, 180, 0.22);
					--hzm-node-glow-active: rgba(201, 223, 220, 0.38);
					--hzm-capital-glow: rgba(201, 223, 220, 0.28);
					--hzm-particle-glow: rgba(201, 223, 220, 0.32);
					--hzm-particle-primary-glow: rgba(230, 242, 240, 0.40);
				}

				/* No hero-local map aura or silhouette shadow: the map should sit inside the background, not above it. */
				.hnh1 .hzm-map::before,
				.hnh1 .hzm-map::after {
					display: none;
				}

				.hnh1 .hzm-provinces,
				.hnh1 .hzm-islands {
					filter: none;
				}

				.hnh1__search-block {
					position: relative;
					z-index: 8;
					width: min(670px, calc(100vw - 72px));
					max-width: none;
					margin: 34px 0 0;
				}

				.hnh1__search-kicker {
					margin: 0 0 9px 5px;
					color: var(--hnh1-soft);
					font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
					font-size: 10px;
					font-weight: 500;
					letter-spacing: 0.08em;
					line-height: 1.2;
					text-transform: uppercase;
				}

				.hnh1__search {
					display: flex !important;
					align-items: center;
					gap: 0;
					width: 100%;
					min-height: 66px;
					margin: 0 !important;
					padding: 7px 7px 7px 17px !important;
					border: 1px solid var(--hnh1-line) !important;
					border-radius: 14px !important;
					background: rgba(246, 251, 250, 0.045) !important;
					box-shadow:
						0 28px 64px rgba(2, 8, 6, 0.35),
						inset 0 1px 0 rgba(246, 251, 250, 0.035) !important;
					transition: box-shadow 180ms ease, transform 180ms ease, border-color 180ms ease, background 180ms ease;
				}

				.hnh1__search:hover {
					background: rgba(246, 251, 250, 0.065) !important;
					border-color: rgba(246, 251, 250, 0.24) !important;
				}

				.hnh1__search:focus-within {
					border-color: rgba(246, 251, 250, 0.48) !important;
					box-shadow:
						0 0 0 4px rgba(246, 251, 250, 0.09),
						0 32px 72px rgba(2, 8, 6, 0.38) !important;
					transform: translateY(-1px);
				}

				.hnh1__search-icon {
					display: grid;
					flex: 0 0 28px;
					place-items: center;
					width: 28px;
					height: 28px;
					color: var(--hnh1-soft);
				}

				.hnh1__search-icon svg {
					display: block;
					width: 18px;
					height: 18px;
					fill: none;
					stroke: currentColor;
					stroke-width: 1.7;
					stroke-linecap: round;
				}

				.hnh1__search-input {
					flex: 1;
					width: 100%;
					min-width: 0;
					height: 50px !important;
					min-height: 50px !important;
					margin: 0 !important;
					padding: 0 15px !important;
					border: 0 !important;
					outline: 0 !important;
					border-radius: 0 !important;
					background: transparent !important;
					box-shadow: none !important;
					color: var(--hnh1-ink) !important;
					font-family: inherit !important;
					font-size: 14.5px !important;
					font-weight: 420 !important;
					line-height: 1 !important;
					appearance: none;
				}

				.hnh1__search-input::placeholder {
					color: var(--hnh1-soft) !important;
					opacity: 1;
				}

				.hnh1__search-input::-webkit-search-cancel-button {
					display: none;
				}

				.hnh1__search-button {
					display: inline-flex !important;
					flex: 0 0 auto;
					align-items: center;
					justify-content: center;
					gap: 8px;
					height: 50px !important;
					min-height: 50px !important;
					margin: 0 !important;
					padding: 0 20px !important;
					border: 1px solid rgba(246, 251, 250, 0.86) !important;
					border-radius: 10px !important;
					background: #f6fbfa !important;
					box-shadow: none !important;
					color: #0b3f3c !important;
					font-family: inherit !important;
					font-size: 13px !important;
					font-weight: 620 !important;
					line-height: 1 !important;
					cursor: pointer;
					transition: background 170ms ease, color 170ms ease, transform 170ms ease, box-shadow 170ms ease, filter 170ms ease;
				}

				.hnh1__search-button:hover,
				.hnh1__search-button:focus-visible {
					background: #ffffff !important;
					box-shadow: 0 10px 24px rgba(246, 251, 250, 0.18) !important;
					transform: translateY(-1px);
				}

				.hnh1__search-button:focus-visible {
					outline: 3px solid rgba(246, 251, 250, 0.20) !important;
					outline-offset: 2px;
				}

				.hnh1__search-button svg {
					display: block;
					width: 17px;
					height: 17px;
					fill: none;
					stroke: currentColor;
					stroke-width: 1.7;
					stroke-linejoin: round;
				}

				.hnh1__popular {
					display: flex;
					align-items: center;
					justify-content: flex-start;
					flex-wrap: wrap;
					gap: 6px;
					margin-top: 12px;
					font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
					font-size: 10.5px;
					line-height: 1.35;
				}

				.hnh1__popular-label {
					margin-right: 2px;
					color: var(--hnh1-soft);
					font-weight: 500;
				}

				.hnh1__popular a {
					color: var(--hnh1-muted);
					font-weight: 500;
					border-bottom: 1px dotted rgba(236, 247, 245, 0.28);
					transition: color 150ms ease, border-color 150ms ease;
				}

				.hnh1__popular a:hover,
				.hnh1__popular a:focus-visible {
					color: var(--hnh1-accent);
					border-color: var(--hnh1-accent-soft);
				}

				.hnh1__popular-separator {
					color: rgba(236, 247, 245, 0.23);
				}

				.hnh1__sr-only {
					position: absolute !important;
					width: 1px !important;
					height: 1px !important;
					overflow: hidden !important;
					clip: rect(1px, 1px, 1px, 1px) !important;
					white-space: nowrap !important;
				}


				/*
				 * Laptop / compact-desktop art direction.
				 * Keep the approved large-desktop composition intact above 1800px,
				 * but scale both content groups down and restore generous side gutters
				 * on MacBook-class viewports.
				 */
				@media (min-width: 1181px) and (max-width: 1800px) {
					.hnh1 {
						height: 600px;
					}

					.hnh1__inner {
						width: min(100%, 1600px);
						min-height: 650px;
						padding: 50px 64px 42px;
					}

					.hnh1__main {
						grid-template-columns: minmax(540px, 610px) minmax(500px, 600px);
						justify-content: space-between;
						gap: clamp(64px, 4.6vw, 90px);
						min-height: 458px;
					}

					.hnh1__copy {
						max-width: 610px;
						margin-left: 0;
					}

					.hnh1__eyebrow {
						margin-bottom: 19px;
						font-size: 12.5px;
					}

					.hnh1 h1.hnh1__title {
						max-width: 610px;
						font-size: clamp(49px, 3.15vw, 54px);
						letter-spacing: -0.016em;
					}

					.hnh1__statement {
						margin-top: 17px;
						padding-top: 14px;
						font-size: clamp(15.5px, 1.05vw, 17px);
					}

					.hnh1__description {
						max-width: 540px;
						margin-top: 22px !important;
						font-size: 13.5px !important;
						line-height: 1.58 !important;
					}

					.hnh1__search-block {
						width: min(600px, 100%);
						margin-top: 28px;
					}

					.hnh1__search {
						min-height: 60px;
						padding: 6px 6px 6px 15px !important;
					}

					.hnh1__search-input {
						height: 46px !important;
						min-height: 46px !important;
						font-size: 13.5px !important;
					}

					.hnh1__search-button {
						height: 46px !important;
						min-height: 46px !important;
						padding-inline: 18px !important;
						font-size: 12.5px !important;
					}

					.hnh1__popular {
						margin-top: 10px;
						font-size: 10px;
					}

					.hnh1__map {
						width: min(600px, 100%);
						justify-self: end;
						margin: 0;
						transform: translate(0, -2px);
					}
				}

				@media (max-width: 1180px) {
					.hnh1__copy {
						margin-left: 0;
					}

					.hnh1__inner {
						padding-right: clamp(34px, 4.8vw, 70px);
						padding-left: 8px;
					}

					.hnh1__main {
						grid-template-columns: minmax(420px, 560px) minmax(460px, 1fr);
						gap: clamp(70px, 7vw, 110px);
					}

					.hnh1__title {
						font-size: clamp(43px, 4.8vw, 60px) !important;
					}

					.hnh1__statement {
						font-size: clamp(15px, 1.3vw, 18px);
					}

					.hnh1__map {
						width: min(680px, 106%);
						margin-right: 0;
						transform: translate(0, -4px);
					}

					.hnh1__search-block {
						width: min(660px, calc(100vw - 56px));
					}

					.hnh1__description {
						max-width: 620px;
					}
				}

				@media (max-width: 900px) {
					.hnh1 {
						min-height: 0;
						border-radius: 20px;
					}

					.hnh1__inner {
						min-height: 0;
						padding: 46px 28px 30px;
					}

					.hnh1__main {
						display: block;
						min-height: 0;
					}

					.hnh1__copy {
						max-width: 700px;
						padding-right: 0;
						margin-left: 0;
					}

					.hnh1__title {
						max-width: none;
						font-size: clamp(36px, 5.8vw, 48px) !important;
					}

					.hnh1__statement {
						font-size: clamp(14.5px, 2.2vw, 16px);
					}

					.hnh1__description {
						max-width: 560px;
					}

					.hnh1__map {
						width: 94%;
						max-width: 600px;
						margin: 34px auto -14px;
						transform: none;
					}

					.hnh1__search-block {
						margin-top: 24px;
					}
				}

				@media (max-width: 640px) {
					.hnh1 {
						margin-top: -30px;
						border-top: 0;
						border-radius: 0 0 18px 18px;
					}

					.hnh1::before {
						background-size: 36px 36px;
						opacity: 0.45;
					}

					.hnh1__inner {
						padding: 34px 28px 24px;
					}

					.hnh1__eyebrow {
						margin-bottom: 14px;
						font-size: 9px;
					}

					.hnh1__title {
						font-size: clamp(28px, 7.2vw, 36px) !important;
						line-height: 1 !important;
						letter-spacing: -0.01em !important;
					}

					.hnh1__statement {
						margin-top: 12px;
						font-size: 13px;
						letter-spacing: 0.01em;
					}

					.hnh1__word-slot {
						min-width: 7.9em;
					}

					.hnh1__description {
						max-width: 470px;
						margin-top: 18px !important;
						font-size: 12.5px !important;
						line-height: 1.62 !important;
					}

					.hnh1__map {
						width: 88%;
						max-width: 460px;
						margin: 18px auto 58px;
						opacity: 1;
					}

					.hnh1__map .hzm-svg {
						touch-action: pan-y pinch-zoom;
					}

					.hnh1__search-block {
						width: 100%;
						margin-top: 20px;
					}

					.hnh1__search-kicker {
						display: none;
					}

					.hnh1__search {
						min-height: 54px;
						padding: 5px 5px 5px 11px !important;
						border-radius: 12px !important;
					}

					.hnh1__search-icon {
						flex-basis: 22px;
						width: 22px;
					}

					.hnh1__search-icon svg {
						width: 16px;
						height: 16px;
					}

					.hnh1__search-input {
						height: 42px !important;
						min-height: 42px !important;
						padding-inline: 9px !important;
						font-size: 12.5px !important;
					}

					.hnh1__search-button {
						height: 42px !important;
						min-height: 42px !important;
						padding-inline: 13px !important;
						border-radius: 9px !important;
						font-size: 11.5px !important;
					}

					.hnh1__search-button svg {
						width: 14px;
						height: 14px;
					}

					.hnh1__popular {
						justify-content: flex-start;
						gap: 5px;
						margin-top: 8px;
						font-size: 9.5px;
					}
				}

				@media (max-width: 430px) {
					.hnh1__inner {
						padding-inline: 16px;
					}

					.hnh1__title {
						font-size: 27px !important;
					}

					.hnh1__statement {
						font-size: 12px;
					}

					.hnh1__description {
						font-size: 12px !important;
					}

					.hnh1__map {
						width: 84%;
						max-width: 350px;
						margin-top: 13px;
					}

					.hnh1__search-button span {
						display: none;
					}

					.hnh1__search-button {
						width: 42px !important;
						min-width: 42px !important;
						padding: 0 !important;
					}
				}

				@media (prefers-reduced-motion: reduce) {
					.hnh1__word,
					.hnh1__word::after,
					.hnh1__search,
					.hnh1__search-button,
					.hnh1__popular a {
						animation: none !important;
						transition: none !important;
					}
				}
