/* magic-v2 interactive SVG globe; no effects outside the hero */
.earth.earth--interactive {
  background:none !important;
  isolation:isolate;
  overflow:visible;
  filter:none;
  cursor:grab;
  touch-action:pan-y;
}
.earth.earth--interactive:active { cursor:grabbing; }
.earth.earth--interactive svg {
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
  touch-action:none;
  user-select:none;
  -webkit-user-select:none;
  pointer-events:auto;
}
.earth.earth--interactive::before,
.earth.earth--interactive::after { pointer-events:none; }
.earth.earth--interactive svg .happ-globe-pulse {
  animation:happ-globe-signal 6s linear infinite;
}
.earth.earth--interactive svg .happ-globe-pulse-1 {
  animation-duration:7.5s;
  animation-delay:-2.4s;
}
.earth.earth--interactive svg .happ-globe-pulse-2 {
  animation-duration:5.2s;
  animation-delay:-4s;
}
@keyframes happ-globe-signal {
  0%   { stroke-dashoffset:0; opacity:.30; }
  35%  { opacity:1; }
  100% { stroke-dashoffset:-290; opacity:.30; }
}
.earth.earth--interactive:focus-visible {
  outline:3px solid #2d8fe6;
  outline-offset:3px;
}
@media (max-width:860px) {
  .earth.earth--interactive { overflow:visible; }
}
@media (prefers-reduced-motion:reduce) {
  .earth.earth--interactive svg .happ-globe-pulse {
    animation:none;
    stroke-dasharray:2 10;
    stroke-opacity:.6;
  }
}
/* Allow rotation in every direction on the globe surface. */
@media (pointer:coarse) {
  .earth.earth--interactive,
  .earth.earth--interactive svg {
    touch-action:none;
    -ms-touch-action:none;
  }
}

/* Do not show the old globe while interactive geometry is being prepared. */
#happ-interactive-earth {
  background-image:none !important;
  background-color:transparent !important;
}
#happ-interactive-earth.earth--fallback {
  background:url('/assets/images/earth-v2.svg') center/cover no-repeat !important;
}
/* Overlay label must not capture touches intended for the globe. */
.earth-label { pointer-events:none; }


/* Mobile: Canvas is above the transparent padded hero copy, so touches
   land on the globe instead of being intercepted by the layout. */
@media (max-width:860px) {
  #happ-interactive-earth.earth--mobile-canvas {
    z-index:5;
    touch-action:none!important;
    cursor:grab;
  }
  #happ-interactive-earth.earth--mobile-canvas canvas {
    display:block;
    width:100%;
    height:100%;
    touch-action:none!important;
    -webkit-user-select:none;
    user-select:none;
    pointer-events:auto;
  }
  #happ-interactive-earth.earth--mobile-canvas canvas.dragging { cursor:grabbing; }
  .hero-grid .earth-label { z-index:6; pointer-events:none; }
}
