body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
  width: 100vw;
  margin: 0;
  padding: 0px;
  background: #000;
  color: white;
  font-size: 2.5em;
  overflow: hidden;
}

.container {
  position: relative;
  width: 100%;
  max-width: 1200px;
  aspect-ratio: 16 / 9;
  border-radius: 16px;
  overflow: hidden;
  margin: 0 24px;
}

#base {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#fire-container,
#fire-container-2,
#fire-container-3 {
  position: absolute;
  left: 81%;
  transform: translateX(-50%);
  pointer-events: none;
  overflow: hidden;
}

#fire-container {
  bottom: 59%;
  z-index: 2;
  width: 30%;
  height: 33%;
  filter: blur(0.1em);
}
#fire-container-2 {
  bottom: 55%;
  z-index: 3;
  width: 60%;
  height: 73%;
  filter: blur(0.5em);
  mix-blend-mode: overlay;
}

#fire-container-3 {
  top: 0;
  right: 0%;
  z-index: 3;
  width: 120vw;
  height: 100vh;
  filter: blur(3em);
  mix-blend-mode: overlay;
  margin-top: -40vh;
  margin-left: -30vw;
  opacity: 0.7;
}

.particle {
  position: absolute;
  bottom: 0;
  width: 2.2em;
  height: 2.2em;
  border-radius: 50%;
  opacity: 0;
  background-image: radial-gradient(
    rgba(255, 255, 200, 0.9) 20%,
    rgba(255, 80, 0, 0) 70%
  );
  mix-blend-mode: screen;
  animation: rise 1s ease-in infinite;
}

.particle-2 {
  position: absolute;
  bottom: 0;
  width: 8em;
  height: 8em;
  border-radius: 50%;
  opacity: 0;
  background-image: radial-gradient(
    rgb(255, 255, 0) 20%,
    rgba(255, 80, 0, 0) 70%
  );
  mix-blend-mode: screen;
  animation: rise-3 1s ease-in infinite;
}

@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(0) scale(1);
  }
  25% {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translateY(-4em) scale(0);
  }
}

@keyframes rise-3 {
  from {
    opacity: 0;
    transform: translateY(0) scale(1);
  }
  25% {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translateY(-16em) scale(0);
  }
}