/* Shared grid-floor backdrop — matches reference screenshot
   Deep navy-black top, cyan dot grid floor receding to horizon */

.genten-stage {
  position: relative;
  background:
    radial-gradient(
      ellipse 80% 45% at 50% 100%,
      var(--grid-halo, #0a1d3d) 0%,
      transparent 70%
    ),
    linear-gradient(
      180deg,
      var(--bg-top, #020613) 0%,
      var(--bg-mid, #030815) 55%,
      var(--bg-bot, #05102a) 100%
    );
  overflow: hidden;
  isolation: isolate;
}

/* receding dot-grid floor */
.genten-floor {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 260vw;
  height: 62vh;
  perspective: 900px;
  perspective-origin: 50% -20%;
  pointer-events: none;
  z-index: 1;
  /* curved bowl silhouette */
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  overflow: hidden;
}
.genten-floor::before {
  display: none;
}
.genten-floor-grid {
  position: absolute;
  inset: -20% -10% 0 -10%;
  transform: rotateX(68deg) translateZ(0);
  transform-origin: 50% 0%;
  /* grid lines only */
  background-image:
    linear-gradient(to right, var(--grid-line, #3af2ffdb) 1px, transparent 1px),
    linear-gradient(to bottom, var(--grid-line, #3afcffdb) 1px, transparent 1px);
  background-size:
    40px 35px,
    40px 35px;
  /* semicircular horizon fadeout + curved dome falloff */
  mask-image:
    radial-gradient(
      ellipse 20% 80% at 50% 100%,
      #000 0%,
      #000 20%,
      transparent 60%
    ),
    radial-gradient(
      ellipse 90% 120% at 50% -10%,
      #000 0%,
      #000 40%,
      transparent 92%
    );
  mask-composite: intersect;
  -webkit-mask-image:
    radial-gradient(
      ellipse 20% 80% at 50% 100%,
      #000 0%,
      #000 20%,
      transparent 60%
    ),
    radial-gradient(
      ellipse 90% 120% at 50% -10%,
      #000 0%,
      #000 40%,
      transparent 92%
    );
  -webkit-mask-composite: source-in;
  filter: drop-shadow(
    0 0 calc(var(--grid-glow, 1) * 2.5px) var(--grid-dot, #3af2ffaa)
  );
  opacity: calc(0.3 + var(--grid-glow, 1) * 0.3);
}

/* horizon line */
.genten-horizon {
  display: none;
}
