/* WorldMapPulse - ported from Framer code component WorldMapPulse.tsx
   The curved world map (one inlined path, emitted by the macro as static art)
   with pulsing city dots. Dubai is the largest and is drawn last, on top; the
   rest pulse on a staggered delay. Dots live in the map's viewBox space so they
   stay on their cities at any frame size, but their px size is held constant by
   js/framer/worldmappulse.js measuring the frame (so a 14px dot is 14px on a
   phone and on a 4K screen). A pulse is a solid core plus two expanding discs
   (scale 1 -> 3.2, opacity .55 -> 0; HQ 1 -> 3.8, .5 -> 0), transform + opacity
   only. Stems rise to each dot; heights cycle through eight levels with a
   collision pass. Aspect 2.72:1, letterboxed to fit (xMidYMid meet).

   The dots/stems layer is built by the JS module (its geometry depends on the
   measured scale). Reduced motion: the dots are static - no pulse (the rings
   are dropped by the JS and this @media block also zeroes them). */
.fr-worldmappulse {
  --fr-worldmappulse-map: var(--jifu-ink, #191919);
  --fr-worldmappulse-dot: var(--jifu-accent, #8B6D55);
  --fr-worldmappulse-label: var(--jifu-accent, #8B6D55);
  width: 100%;
  height: 100%;
  position: relative;
  overflow: visible;
}
.fr-worldmappulse__svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

@keyframes fr-worldmappulse-ring {
  from { transform: scale(1); opacity: .55; }
  to   { transform: scale(3.2); opacity: 0; }
}
@keyframes fr-worldmappulse-ringHq {
  from { transform: scale(1); opacity: .5; }
  to   { transform: scale(3.8); opacity: 0; }
}
.fr-worldmappulse__ring, .fr-worldmappulse__ringHq {
  transform-box: fill-box;
  transform-origin: center;
  animation-name: fr-worldmappulse-ring;
  animation-timing-function: cubic-bezier(.16, .7, .3, 1);
  animation-iteration-count: infinite;
  will-change: transform, opacity;
}
.fr-worldmappulse__ringHq { animation-name: fr-worldmappulse-ringHq; }
@media (prefers-reduced-motion: reduce) {
  .fr-worldmappulse__ring, .fr-worldmappulse__ringHq { animation: none; opacity: 0; }
}
