body {
  align-items: center;
  background: rgb(255, 255, 255);
  background: linear-gradient(180deg, #000 0%, #01310f 100%);
  display: flex;
  flex-direction: column;
  height: 100vh;
  justify-content: center;
  width: 100vw;

  h1 {
    color: #fff;
    font-family: 'Honk';
    text-shadow: 3px 3px 4px rgba(0, 0, 0, 0.5);
    z-index: 1;
  }

  img {
    border-radius: 8px;
    color: #fff;
    display: block;
    font-style: italic;
    z-index: 1;
  }
}

@media only screen and (max-width: 480px) {
  img {
    object-fit: cover;
    width: 75%;
  }
}

:root {
  --circle-size: 70%;
  --blending: hard-light;
}

@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%);
  }
}

.gradient-bg {
  height: 100vh;
  position: absolute;
  overflow: hidden;
  background: linear-gradient(40deg, rgb(108, 0, 162), rgb(0, 17, 82));
  top: 0;
  left: 0;
  width: 100vw;
  z-index: 0;

  svg {
    display: none;
  }

  .gradients-container {
    filter: url(#goo) blur(40px);
    width: 100%;
    height: 100%;
  }

  .particle_01 {
    position: absolute;
    background: radial-gradient(
        circle at center,
        rgba(18, 113, 255, 0.8) 0,
        rgba(18, 113, 255, 0) 50%
      )
      no-repeat;
    mix-blend-mode: var(--blending);

    width: var(--circle-size);
    height: var(--circle-size);
    top: calc(50% - var(--circle-size) / 2);
    left: calc(50% - var(--circle-size) / 2);

    transform-origin: center center;
    animation: moveVertical 30s ease infinite;

    opacity: 1;
    -webkit-filter: url(#goo) blur(40px);
  }

  .particle_02 {
    position: absolute;
    background: radial-gradient(
        circle at center,
        rgba(221, 74, 255, 0.8) 0,
        rgba(221, 74, 255, 0) 50%
      )
      no-repeat;
    mix-blend-mode: var(--blending);

    width: var(--circle-size);
    height: var(--circle-size);
    top: calc(75% - var(--circle-size) / 2);
    left: calc(75% - var(--circle-size) / 2);

    transform-origin: calc(50% - 200px);
    animation: moveInCircle 100s reverse infinite;

    opacity: 1;
    -webkit-filter: url(#goo) blur(40px);
  }

  .particle_03 {
    position: absolute;
    background: radial-gradient(
        circle at center,
        rgba(100, 220, 255, 0.8) 0,
        rgba(100, 220, 255, 0) 50%
      )
      no-repeat;
    mix-blend-mode: var(--blending);

    width: var(--circle-size);
    height: var(--circle-size);
    top: calc(50% - var(--circle-size) / 2 + 200px);
    left: calc(50% - var(--circle-size) / 2 - 500px);

    transform-origin: calc(50% + 200px);
    animation: moveInCircle 120s ease infinite, moveHorizontal 60s ease infinite;

    opacity: 1;
    -webkit-filter: url(#goo) blur(40px);
  }

  .particle_04 {
    position: absolute;
    background: radial-gradient(
        circle at center,
        rgba(200, 50, 50, 0.8) 0,
        rgba(200, 50, 50, 0) 50%
      )
      no-repeat;
    mix-blend-mode: var(--blending);

    width: var(--circle-size);
    height: var(--circle-size);
    top: calc(50% - var(--circle-size) / 2);
    left: calc(50% - var(--circle-size) / 2);

    transform-origin: calc(50% - 200px);
    animation: moveHorizontal 40s ease infinite;

    opacity: 0.7;
    -webkit-filter: url(#goo) blur(40px);
  }

  .particle_05 {
    position: absolute;
    background: radial-gradient(
        circle at center,
        rgba(180, 180, 50, 0.8) 0,
        rgba(180, 180, 50, 0) 50%
      )
      no-repeat;
    mix-blend-mode: var(--blending);

    width: calc(var(--circle-size) * 2);
    height: calc(var(--circle-size) * 2);
    top: calc(40% - var(--circle-size));
    left: calc(80% - var(--circle-size));

    transform-origin: calc(50% - 800px) calc(50% + 200px);
    animation: moveInCircle 120s ease infinite;

    opacity: 1;
    -webkit-filter: url(#goo) blur(40px);
  }

  .interactive {
    position: absolute;
    background: radial-gradient(
        circle at center,
        rgba(140, 100, 255, 0.8) 0,
        rgba(140, 100, 255, 0) 50%
      )
      no-repeat;
    mix-blend-mode: var(--blending);

    width: 100%;
    height: 100%;
    top: -50%;
    left: -50%;

    opacity: 0.8;
    -webkit-filter: url(#goo) blur(40px);
  }
}

@property --gradient-angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}

:root {
  --clr-1: #ed0b2a;
  --clr-2: #b012e9;
  --clr-3: #0e0bf1;
  --clr-4: #12d93c;
  --clr-5: #e0d60e;
}

.card {
  /* height: 60vh;
    aspect-ratio: 1 / 1.5; */
  background: var(--clr-1);
  border-radius: 0.5rem;
  position: relative;
  z-index: 10;
}

.card::before,
.card::after {
  content: '';
  position: absolute;
  inset: -0.5rem;
  background: conic-gradient(
    from var(--gradient-angle),
    var(--clr-3),
    var(--clr-4),
    var(--clr-5),
    var(--clr-4),
    var(--clr-3)
  );
  border-radius: 1rem;
  animation: rotation 10s linear infinite;
  z-index: -1;
}
.card::after {
  filter: blur(3.5rem);
}

@keyframes rotation {
  0% {
    --gradient-angle: 0deg;
  }
  100% {
    --gradient-angle: 360deg;
  }
}
