/*
 * AIS-TIP / Hero Intelligence Globe
 * V1.1.3.6-C3 halo finish tune:
 * - preserve the accepted C1 globe points, spacing and transparency
 * - push the outer halo and upper rim highlight further
 * - keep the light broad and atmospheric, not a hard outline
 */

.hero-globe-layer {
  position: absolute;
  z-index: 2;
  top: 50px;
  left: 0;
  width: 100%;
  height: 324px;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
  isolation: auto;
  -webkit-mask-image: linear-gradient(
    to bottom,
    #000 0%,
    #000 69%,
    rgba(0,0,0,.98) 77%,
    rgba(0,0,0,.78) 87%,
    rgba(0,0,0,.34) 94%,
    transparent 100%
  );
  mask-image: linear-gradient(
    to bottom,
    #000 0%,
    #000 69%,
    rgba(0,0,0,.98) 77%,
    rgba(0,0,0,.78) 87%,
    rgba(0,0,0,.34) 94%,
    transparent 100%
  );
}

.hero-globe-geometry {
  position: absolute;
  top: -12px;
  left: calc(50% - 610px);
  width: 1220px;
  height: 1220px;
  pointer-events: none;
}

.hero-globe-shell { z-index: 0; }
.hero-globe-shell::before {
  position: absolute;
  top: 10%;
  left: 10%;
  width: 80%;
  height: 80%;
  border-radius: 50%;
  content: "";
  background:
    radial-gradient(circle at 50% 50%,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,0) 49%,
      rgba(245,250,255,.039) 66%,
      rgba(255,255,255,.112) 81.5%,
      rgba(255,255,255,.210) 92.3%,
      rgba(255,255,255,.068) 97.3%,
      rgba(255,255,255,0) 100%),
    radial-gradient(circle at 50% 25%, rgba(255,255,255,.037) 0%, rgba(255,255,255,.016) 30%, rgba(255,255,255,0) 61%);
}
.hero-globe-shell::after {
  position: absolute;
  top: 10%;
  left: 10%;
  width: 80%;
  height: 80%;
  border-radius: 50%;
  content: "";
  border: 1px solid rgba(255,255,255,.012);
  border-top-color: rgba(255,255,255,.318);
  box-shadow:
    0 -4px 24px rgba(255,255,255,.224),
    0 -8px 44px rgba(255,255,255,.226),
    0 -2px 72px rgba(247,251,255,.158),
    0 0 92px rgba(238,246,255,.187),
    0 0 150px rgba(224,238,255,.133),
    0 0 218px rgba(213,231,255,.083),
    inset 0 0 16px rgba(255,255,255,.002);
  opacity: 1;
}

.hero-globe-render { z-index: 1; mix-blend-mode: normal; }
.hero-globe-canvas {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  pointer-events: none;
  filter: none;
  mix-blend-mode: normal;
  opacity: 1;
}

.hero-globe-pulses { z-index: 2; overflow: visible; }
.hero-globe-pulse {
  --pulse-opacity: 1;
  --pulse-node-opacity: .98;
  --pulse-core-opacity: .88;
  --pulse-core-glow: .72;
  position: absolute;
  width: 9px;
  height: 9px;
  margin: -4.5px 0 0 -4.5px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 260ms ease;
  filter: drop-shadow(0 0 10px rgba(255,255,255,.60)) drop-shadow(0 0 16px rgba(96,150,255,.14));
  mix-blend-mode: screen;
}
.hero-globe-pulse.is-visible { opacity: calc(var(--pulse-node-opacity) * var(--pulse-opacity)); }
.hero-globe-pulse.is-soft {
  --pulse-node-opacity: .76;
  --pulse-core-opacity: .72;
  --pulse-core-glow: .48;
}
.hero-globe-pulse.is-normal {
  --pulse-node-opacity: .91;
  --pulse-core-opacity: .84;
  --pulse-core-glow: .64;
}
.hero-globe-pulse.is-strong {
  --pulse-node-opacity: 1;
  --pulse-core-opacity: .94;
  --pulse-core-glow: .82;
}
.hero-globe-pulse-core {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.98);
  box-shadow: 0 0 10px rgba(255,255,255,var(--pulse-core-glow)), 0 0 18px rgba(119,163,255,.14);
  opacity: var(--pulse-core-opacity);
  transform: scale(.96);
}
.hero-globe-pulse-ring {
  --ring-lag: 0s;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 26px;
  height: 26px;
  border: 1px solid rgba(255,255,255,.74);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(.34);
  opacity: 0;
  box-shadow: 0 0 7px rgba(255,255,255,.22), 0 0 14px rgba(93,145,255,.080), inset 0 0 3px rgba(255,255,255,.034);
  will-change: transform, opacity;
}
.hero-globe-pulse.is-visible .hero-globe-pulse-core {
  animation: ais-hero-globe-core-event 4.25s cubic-bezier(.22,.68,.22,1) 1 both;
}
.hero-globe-pulse.is-visible .hero-globe-pulse-ring {
  animation: ais-hero-globe-pulse 3.35s cubic-bezier(.16,.72,.22,1) 1 both;
  animation-delay: var(--ring-lag);
}

.hero-globe-pulse-ring--2 {
  --ring-lag: .74s;
  width: 32px;
  height: 32px;
  border-color: rgba(255,255,255,.56);
  box-shadow: 0 0 5px rgba(255,255,255,.16), 0 0 12px rgba(93,145,255,.056), inset 0 0 2px rgba(255,255,255,.024);
}
.hero-globe-pulse-ring--3 {
  --ring-lag: 1.42s;
  width: 38px;
  height: 38px;
  border-color: rgba(255,255,255,.36);
  box-shadow: 0 0 4px rgba(255,255,255,.10), 0 0 9px rgba(93,145,255,.038);
}
@keyframes ais-hero-globe-pulse {
  0% { opacity: .86; transform: translate(-50%, -50%) scale(.32); }
  46% { opacity: .58; }
  74% { opacity: .24; }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(1.84); }
}
@keyframes ais-hero-globe-core-event {
  0% { transform: scale(.78); opacity: .42; }
  14% { transform: scale(1.06); opacity: 1; }
  56% { transform: scale(1.00); opacity: .90; }
  86% { transform: scale(.99); opacity: .70; }
  96% { transform: scale(.97); opacity: .28; }
  100% { transform: scale(.96); opacity: .10; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-globe-pulse.is-visible .hero-globe-pulse-core,
  .hero-globe-pulse.is-visible .hero-globe-pulse-ring { animation: none !important; }
}
