

@keyframes firework {
  0% { 
    
    width: 0.5vmin;
    opacity: 1;
  }
  50% { 
    width: 0.5vmin;
    opacity: 1;
  }
  100% { 
    width: 45vmin; 
    opacity: 0; 
    transform: translate(calc(-50% + 50px), -30vh);
  }
}

.firework,
.firework::before,
.firework::after {
  content: "";
  position: absolute;
  /* top 0; */
    transform: translate(calc(-50% + 50px), -50%);
  width: 0.5vmin;
  aspect-ratio: 1;
  background:

    radial-gradient(circle, #ff0 0.2vmin, #0000 0) 50% 00%,
    radial-gradient(circle, rgb(0, 224, 86) 0.3vmin, #0000 0) 00% 50%,
    radial-gradient(circle, #ff0 0.5vmin, #0000 0) 50% 99%,
    radial-gradient(circle, #ff0 0.2vmin, #0000 0) 99% 50%,
    radial-gradient(circle, rgb(255, 0, 0) 0.3vmin, #0000 0) 80% 90%,
    radial-gradient(circle, #ff0 0.5vmin, #0000 0) 95% 90%,
    radial-gradient(circle, rgb(0, 251, 255) 0.5vmin, #0000 0) 10% 60%,
    radial-gradient(circle, #ff0 0.2vmin, #0000 0) 31% 80%,
    radial-gradient(circle, #ff0 0.3vmin, #0000 0) 80% 10%,
    radial-gradient(circle, rgb(255, 0, 0) 0.2vmin, #0000 0) 90% 23%,
    radial-gradient(circle, rgb(255, 0, 0) 0.3vmin, #0000 0) 45% 20%,
    radial-gradient(circle, #ff0 0.5vmin, #0000 0) 13% 24%
    ;
  background-size: 0.5vmin 0.5vmin;
  background-repeat: no-repeat;
  animation: firework 2s infinite;
}

.firework::before {
  transform: translate(0%, 0%) rotate(180deg) !important; 
}

.firework::after {
  transform: translate(0%, 0%) rotate(0deg) !important;
}


