.glow-blob {
  position: absolute;
  top: -10%;
  left: 50%;
  transform: translateX(-50%);
  width: 60rem;
  height: 40rem;
  background: radial-gradient(circle, rgba(52, 211, 153, 0.25), rgba(20, 184, 166, 0.15) 45%, transparent 70%);
  filter: blur(80px);
  pointer-events: none;
  z-index: 0;
  animation: drift 16s ease-in-out infinite;
}

@keyframes drift {
  0%, 100% {
    transform: translateX(-50%) translateY(0) scale(1);
    opacity: 0.9;
  }
  50% {
    transform: translateX(-46%) translateY(2%) scale(1.08);
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .glow-blob {
    animation: none;
  }
}

.grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    repeating-linear-gradient(to right, rgba(255, 255, 255, 0.05) 0 1px, transparent 1px 4rem),
    repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.05) 0 1px, transparent 1px 4rem);
  mask-image: radial-gradient(ellipse at top, black 0%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse at top, black 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}
