/* Decorative layers never participate in layout or capture map interactions. */
.map-stage { position: relative; isolation: isolate; }
.map-header { position: relative; z-index: 4; }
.aerial-frame, .bird-sky { position: absolute; inset: 0; pointer-events: none; user-select: none; }
.aerial-frame { z-index: 2; overflow: clip; }
.aerial-cloud { position: absolute; width: var(--cloud-width); aspect-ratio: 2.2; opacity: var(--cloud-opacity, .4); mix-blend-mode: multiply; animation: cloud-drift var(--cloud-duration, 70s) ease-in-out infinite alternate; animation-delay: var(--cloud-delay, 0s); }
.cloud-art { position: absolute; inset: 0; background: url('atmosphere/cloud-01.png') center / 128% auto no-repeat; transform: rotate(var(--cloud-angle, 0deg)) scaleX(var(--cloud-flip, 1)); }
/* Five edge clusters mirror the supplied composition; the map itself stays clear. */
.cloud-top-left { --cloud-width: clamp(340px, 36vw, 680px); --cloud-opacity: .46; --cloud-duration: 94s; --cloud-delay: -28s; --cloud-angle: -4deg; left: 9%; top: clamp(-145px, -13vh, -78px); }
.cloud-top-right { --cloud-width: clamp(350px, 37vw, 700px); --cloud-opacity: .45; --cloud-duration: 102s; --cloud-delay: -51s; --cloud-angle: 3deg; --cloud-flip: -1; left: 61%; top: clamp(-155px, -14vh, -82px); }
.cloud-upper-right { --cloud-width: clamp(250px, 26vw, 500px); --cloud-opacity: .38; --cloud-duration: 86s; --cloud-delay: -17s; --cloud-angle: -19deg; right: -15%; top: 6%; }
.cloud-bottom-left { --cloud-width: clamp(360px, 39vw, 730px); --cloud-opacity: .48; --cloud-duration: 108s; --cloud-delay: -43s; --cloud-angle: 5deg; --cloud-flip: -1; left: 13%; bottom: clamp(-155px, -14vh, -88px); }
.cloud-bottom-right { --cloud-width: clamp(390px, 43vw, 800px); --cloud-opacity: .52; --cloud-duration: 98s; --cloud-delay: -34s; --cloud-angle: -7deg; right: -11%; bottom: clamp(-150px, -13vh, -82px); }
.bird-sky { position: fixed; z-index: 3; width: 100%; height: 100dvh; overflow: clip; }
.map-hotspots { z-index: 3; }
.bird-flight { position: absolute; left: 0; top: 0; width: var(--bird-size); height: var(--bird-size); animation: var(--flight-route) var(--flight-time, 44s) linear infinite; animation-delay: var(--flight-delay, 0s); will-change: transform; }
.bird-shape { display: block; width: 100%; height: 100%; object-fit: contain; animation: bird-bank var(--wing-time, 3s) ease-in-out infinite alternate; animation-delay: var(--flight-delay); }
.bird-far { opacity: .55; }
.bird-mid { opacity: .76; }
.bird-near { opacity: .95; filter: drop-shadow(5px 8px 4px #31434b15); }
@keyframes cloud-drift {
  from { transform: translate3d(-8px, -5px, 0); }
  to { transform: translate3d(20px, 9px, 0); }
}
@keyframes bird-cross-high {
  0% { transform: translate3d(-100px, 29vh, 0) rotate(-8deg); }
  30% { transform: translate3d(27vw, 22vh, 0) rotate(-4deg); }
  60% { transform: translate3d(61vw, 19vh, 0) rotate(3deg); }
  100% { transform: translate3d(calc(100vw + 100px), 26vh, 0) rotate(9deg); }
}
@keyframes bird-cross-low {
  0% { transform: translate3d(calc(100vw + 100px), 72vh, 0) rotate(185deg); }
  30% { transform: translate3d(68vw, 65vh, 0) rotate(184deg); }
  65% { transform: translate3d(29vw, 61vh, 0) rotate(177deg); }
  100% { transform: translate3d(-100px, 67vh, 0) rotate(173deg); }
}
@keyframes bird-cross-diagonal {
  0% { transform: translate3d(-100px, 79vh, 0) rotate(-17deg); }
  30% { transform: translate3d(27vw, 57vh, 0) rotate(-14deg); }
  65% { transform: translate3d(64vw, 34vh, 0) rotate(-9deg); }
  100% { transform: translate3d(calc(100vw + 100px), 25vh, 0) rotate(-3deg); }
}
@keyframes bird-bank {
  from { transform: rotate(-3deg); }
  to { transform: rotate(3deg); }
}
.aerial-frame.is-paused *, .bird-sky.is-paused * { animation-play-state: paused; }
@media (max-width: 900px) {
  .aerial-frame { display: none; }
  .bird-far { --bird-size: clamp(28px, 9vw, 42px) !important; }
  .bird-mid { --bird-size: clamp(42px, 14vw, 66px) !important; }
  .bird-near { --bird-size: clamp(68px, 21vw, 98px) !important; }
  .journey-brand { z-index: 5; }
}
@media (prefers-reduced-motion: reduce) {
  .aerial-cloud, .bird-flight, .bird-shape { animation-play-state: paused !important; }
  .bird-flight { animation-name: var(--flight-route) !important; animation-duration: var(--flight-time, 44s) !important; animation-delay: var(--flight-delay, 0s) !important; animation-iteration-count: infinite !important; }
}
