.div-glow,
#div-glow{
  position: relative;
  background: radial-gradient(1200px 800px at 50% 10%, rgba(255,255,255,.03), transparent 60%),
              linear-gradient(180deg, #04060a 0%, #05070b 45%, #04060a 100%);
  overflow: hidden;
  isolation: isolate;
}

/* Layer 0: soft vignetting + depth */
.div-glow::before,
#div-glow::before{
  content:"";
  position:absolute;
  inset:-50vh -50vw;
  z-index:0;
  pointer-events:none;

  background:
    /* BIG NEBULA BLOBS */
    radial-gradient(72vmax 72vmax at 12% 18%, rgba(239,67,80,.42), transparent 60%),
    radial-gradient(68vmax 68vmax at 84% 16%, rgba(252,200,72,.34), transparent 62%),
    radial-gradient(78vmax 78vmax at 88% 72%, rgba(43,182,115,.30), transparent 65%),
    radial-gradient(70vmax 70vmax at 10% 78%, rgba(121,213,255,.24), transparent 66%),

    /* MID BLOBS (ensure 2-3 always visible) */
    radial-gradient(52vmax 52vmax at 52% 40%, rgba(239,67,80,.22), transparent 64%),
    radial-gradient(46vmax 46vmax at 60% 86%, rgba(252,200,72,.18), transparent 66%),
    radial-gradient(46vmax 46vmax at 22% 52%, rgba(43,182,115,.18), transparent 66%),
    radial-gradient(42vmax 42vmax at 78% 54%, rgba(121,213,255,.16), transparent 66%),

    /* subtle white bloom */
    radial-gradient(60vmax 60vmax at 50% 50%, rgba(255,255,255,.07), transparent 72%);

  filter: blur(70px) saturate(155%) contrast(110%);
  opacity: .95;
  transform: translate3d(0,0,0);
  will-change: transform;
  animation: wefNebulaA 22s ease-in-out infinite;
}

/* Layer 1: sharper energy streaks (adds "festival" vibe) */
.div-glow::after,
#div-glow::after{
  content:"";
  position:absolute;
  inset:-55vh -55vw;
  z-index:0;
  pointer-events:none;

  background:
    /* energy beams */
    conic-gradient(from 210deg at 50% 50%,
      rgba(239,67,80,.10),
      rgba(252,200,72,.08),
      rgba(43,182,115,.08),
      rgba(121,213,255,.08),
      rgba(239,67,80,.10)
    ),
    /* extra glow blobs */
    radial-gradient(60vmax 60vmax at 30% 30%, rgba(239,67,80,.20), transparent 70%),
    radial-gradient(58vmax 58vmax at 75% 35%, rgba(43,182,115,.18), transparent 70%),
    radial-gradient(55vmax 55vmax at 50% 92%, rgba(252,200,72,.16), transparent 72%);

  filter: blur(110px) saturate(175%);
  opacity: .85;
  transform: translate3d(0,0,0);
  will-change: transform;
  animation: wefNebulaB 30s ease-in-out infinite;
}

/* Layer 2: subtle noise + vignette (optional but looks premium)
   NOTE: uses pure CSS gradients, no image files */
.div-glow .wef-noise,
#div-glow .wef-noise{
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;

  background:
    radial-gradient(1200px 900px at 50% 25%, rgba(0,0,0,.0), rgba(0,0,0,.45) 70%, rgba(0,0,0,.70) 100%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0px, rgba(255,255,255,.03) 1px, transparent 1px, transparent 6px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.02) 0px, rgba(255,255,255,.02) 1px, transparent 1px, transparent 7px);

  mix-blend-mode: soft-light;
  opacity: .10;
  filter: blur(.2px);
}

/* content above all glow layers */
.div-glow > *,
#div-glow > *{
  position: relative;
  z-index: 1;
}

/* animations */
@keyframes wefNebulaA{
  0%   { transform: translate3d(0,0,0) scale(1); }
  20%  { transform: translate3d(5vw,-3vh,0) scale(1.06); }
  50%  { transform: translate3d(-4vw,4vh,0) scale(1.10); }
  75%  { transform: translate3d(4vw,2vh,0) scale(1.06); }
  100% { transform: translate3d(0,0,0) scale(1); }
}
@keyframes wefNebulaB{
  0%   { transform: translate3d(0,0,0) scale(1.10); }
  30%  { transform: translate3d(-6vw,4vh,0) scale(1.16); }
  60%  { transform: translate3d(5vw,-5vh,0) scale(1.22); }
  100% { transform: translate3d(0,0,0) scale(1.10); }
}

/* reduced motion */
@media (prefers-reduced-motion: reduce){
  .div-glow::before, .div-glow::after,
  #div-glow::before, #div-glow::after{
    animation: none !important;
  }
}

.div-glow::before, #div-glow::before{
  transform: translate3d(var(--gx,0px), var(--gy,0px), 0) scale(var(--gs,1));
}
.div-glow::after, #div-glow::after{
  transform: translate3d(calc(var(--gx,0px) * -0.7), calc(var(--gy,0px) * 0.85), 0) scale(var(--gs2,1.12));
}