
.gradient-bg {
  position: fixed;
  width: 100%;
  height: 100%;
  overflow: hidden;
  top: 0;
  left: 0;
  z-index: -1;
  mix-blend-mode: color-burn;
}

.gradients-container {
  filter: url(#goo) blur(40px) ;
  width: 100%;
  height: 100%;
}

.gradients-container .g1 {
  position: absolute;
  background: radial-gradient(circle at center, rgba(104, 109, 224, 0.8) 0, rgba(104, 109, 224, 0) 50%) no-repeat;
  mix-blend-mode: hard-light;

  width: 200%;
  height: 200%;
  top: calc(50% - 200% / 2);
  left: calc(50% - 200% / 2);

  transform-origin: center center;
  animation: moveVertical 15s ease infinite;

  opacity: 1;
}

.gradients-container .g2 {
  position: absolute;
  background: radial-gradient(circle at center, rgba(126, 214, 223, 0.8) 0, rgba(126, 214, 223, 0) 50%) no-repeat;
  mix-blend-mode: hard-light;

  width: 200%;
  height: 200%;
  top: calc(50% - 200% / 2);
  left: calc(50% - 200% / 2);

  transform-origin: calc(50% - 400px);
  animation: moveInCircle 5s reverse infinite;

  opacity: 1;
}

.gradients-container .g3 {
  position: absolute;
  background: radial-gradient(circle at center, rgb(234, 210, 131) 0, rgba(223, 249, 251, 0) 50%) no-repeat;
  mix-blend-mode: hard-light;

  width: 200%;
  height: 200%;
  top: calc(50% - 200% / 2 + 200px);
  left: calc(50% - 200% / 2 - 500px);

  transform-origin: calc(50% + 400px);
  animation: moveInCircle 25s linear infinite;

  opacity: 1;
}

.gradients-container .g4 {
  position: absolute;
  background: radial-gradient(circle at center, rgba(255, 121, 121, 0.8) 0, rgba(255, 121, 121, 0) 50%) no-repeat;
  mix-blend-mode: hard-light;

  width: 200%;
  height: 200%;
  top: calc(50% - 200% / 2);
  left: calc(50% - 200% / 2);

  transform-origin: calc(50% - 200px);
  animation: moveHorizontal 25s ease infinite;

  opacity: 0.7;
}

.gradients-container .g5 {
  position: absolute;
  background: radial-gradient(circle at center, rgb(97, 149, 255) 0, rgba(149, 175, 192, 0) 50%) no-repeat;
  mix-blend-mode: hard-light;

  width: calc(200% * 2);
  height: calc(200% * 2);
  top: calc(50% - 200%);
  left: calc(50% - 200%);

  transform-origin: calc(50% - 800px) calc(50% + 200px);
  animation: moveInCircle 5s ease infinite;

  opacity: 1;
}

.gradients-container .interactive {
  position: absolute;
  background: radial-gradient(circle at center, rgba(175, 106, 231, 0.8) 0, rgba(140, 100, 255, 0) 50%) no-repeat;
  mix-blend-mode: hard-light;

  width: 100%;
  height: 100%;
  top: -50%;
  left: -50%;

  opacity: 0.7;
}

@keyframes moveInCircle {
  0% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(180deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes moveVertical {
  0% {
    transform: translateY(-50%);
  }
  50% {
    transform: translateY(50%);
  }
  100% {
    transform: translateY(-50%);
  }
}

@keyframes moveHorizontal {
  0% {
    transform: translateX(-50%) translateY(-10%);
  }
  50% {
    transform: translateX(50%) translateY(10%);
  }
  100% {
    transform: translateX(-50%) translateY(-10%);
  }
}