/* Premium fintech globe background */
.hero {
  background: #050505;
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.hero::before,
.hero::after {
  content: none;
}

.hero-globe-stage {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

.hero-globe-shell {
  --globe-drift-x: 0px;
  --globe-drift-y: 0px;
  --globe-scale: 1;
  position: absolute;
  right: clamp(16px, 3vw, 48px);
  top: calc(50% - 6%);
  width: min(860px, 90vw);
  aspect-ratio: 1;
  transform: translateY(-50%) translate3d(var(--globe-drift-x), var(--globe-drift-y), 0) scale(var(--globe-scale));
  transform-origin: center center;
  will-change: transform;
}

.hero-content {
  position: relative;
  z-index: 4;
}

.hero-globe-shell::before,
.hero-globe-shell::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  pointer-events: none;
}

.hero-globe-shell::before {
  background:
    radial-gradient(circle at 50% 50%, rgba(244, 197, 66, 0.2) 0%, rgba(244, 197, 66, 0.08) 24%, transparent 62%),
    radial-gradient(circle at 50% 50%, rgba(255, 227, 160, 0.12) 0%, transparent 68%);
  filter: blur(26px);
  opacity: 0.9;
  transform: scale(1.08);
}

.hero-globe-shell::after {
  background:
    radial-gradient(circle at 52% 48%, rgba(244, 197, 66, 0.08) 0 18%, transparent 60%),
    radial-gradient(circle at 48% 54%, rgba(255, 255, 255, 0.03) 0 28%, transparent 66%);
  filter: blur(8px);
  mix-blend-mode: screen;
  opacity: 0.65;
}

.hero-globe-mount,
.hero-globe-fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* Do NOT force canvas positioning — Globe.gl manages it internally */
.hero-globe-mount {
  opacity: 0;
  transition: opacity 0.6s ease;
  filter: drop-shadow(0 0 24px rgba(244, 197, 66, 0.12)) drop-shadow(0 0 110px rgba(244, 197, 66, 0.08));
}

.hero-globe-stage.is-webgl-ready .hero-globe-mount {
  opacity: 1;
}

.hero-globe-fallback {
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 48%, rgba(10, 12, 14, 0.98) 0 31%, rgba(5, 6, 7, 0.94) 32%, transparent 33%),
    radial-gradient(circle at 50% 50%, rgba(244, 197, 66, 0.16) 0 2%, transparent 2.15%),
    radial-gradient(circle at 50% 50%, rgba(244, 197, 66, 0.08) 0 26%, transparent 68%),
    repeating-radial-gradient(circle at 50% 50%, rgba(244, 197, 66, 0.13) 0 1px, transparent 1px 18px),
    repeating-linear-gradient(0deg, transparent 0 14px, rgba(244, 197, 66, 0.08) 14px 15px, transparent 15px 29px),
    repeating-linear-gradient(90deg, transparent 0 14px, rgba(244, 197, 66, 0.07) 14px 15px, transparent 15px 29px);
  box-shadow:
    inset 0 0 140px rgba(244, 197, 66, 0.1),
    0 0 90px rgba(244, 197, 66, 0.08),
    0 0 170px rgba(0, 0, 0, 0.28);
  opacity: 0.9;
  mask-image: radial-gradient(circle at 50% 50%, black 0 54%, transparent 72%);
  -webkit-mask-image: radial-gradient(circle at 50% 50%, black 0 54%, transparent 72%);
  transform: translate3d(var(--globe-drift-x), var(--globe-drift-y), 0) scale(var(--globe-scale));
}

.hero-globe-stage.is-webgl-ready .hero-globe-fallback {
  opacity: 0.16;
}

.hero-globe-stage.is-fallback .hero-globe-mount {
  opacity: 0;
  pointer-events: none;
}

.hero-globe-stage:not(.is-webgl-ready) .hero-globe-fallback,
.hero-globe-stage.is-fallback .hero-globe-fallback {
  opacity: 0.94;
}

@media (max-width: 900px) {
  .hero-globe-shell {
    right: clamp(8px, 2vw, 24px);
    top: 55%;
    width: min(520px, 90vw);
  }
}

@media (min-width: 901px) {
  .hero-globe-shell {
    width: 860px;
    height: 860px;
  }
}
