﻿/* reference for idea: https://codepen.io/MinzCode/pen/abmwmOG */
/* reference for idea: https://github.com/prodev2004/fireworksAnimation/blob/main/index.html */

.firework {
    position: absolute;
}

.explosion {
    position: absolute;
    left: -2px;
    bottom: 0;
    width: 4px;
    height: 80px;
    transform-origin: 50% 100%;
    /* background-color: rgba(0,0,0,.2); */
    overflow: hidden;
}

.explosion:nth-child(1) {
    transform: rotate(0deg) translateY(-15px);
}

.explosion:nth-child(2) {
    transform: rotate(30deg) translateY(-15px);
}

.explosion:nth-child(3) {
    transform: rotate(60deg) translateY(-15px);
}

.explosion:nth-child(4) {
    transform: rotate(90deg) translateY(-15px);
}

.explosion:nth-child(5) {
    transform: rotate(120deg) translateY(-15px);
}

.explosion:nth-child(6) {
    transform: rotate(150deg) translateY(-15px);
}

.explosion:nth-child(7) {
    transform: rotate(180deg) translateY(-15px);
}

.explosion:nth-child(8) {
    transform: rotate(210deg) translateY(-15px);
}

.explosion:nth-child(9) {
    transform: rotate(240deg) translateY(-15px);
}

.explosion:nth-child(10) {
    transform: rotate(270deg) translateY(-15px);
}

.explosion:nth-child(11) {
    transform: rotate(300deg) translateY(-15px);
}

.explosion:nth-child(12) {
    transform: rotate(330deg) translateY(-15px);
}

.explosion::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 40px;
    background-color: #f5cf52;
}

@keyframes explosion {
    0% {
        top: 100%;
    }

    33%, 100% {
        top: -50%;
    }
}

#firework1 {
    left: 50%;
    top: 50%;
    transform: scale(.8);
}

#firework1 .explosion::before {
    animation: explosion 2s ease-in-out infinite;
}

#firework2 {
    left: 30%;
    top: 25%;
    transform: scale(.7);
}

#firework2 .explosion::before {
    animation: explosion 2.1s .6s ease-in-out infinite;
}

#firework3 {
    left: 75%;
    top: 85%;
    transform: scale(.6);
}

#firework3 .explosion::before {
    animation: explosion 1.8s .4s ease-in-out infinite;
}

#firework4 {
    left: 80%;
    top: 30%;
    transform: scale(.5);
}

#firework4 .explosion::before {
    animation: explosion 2s .7s ease-in-out infinite;
}

#firework5 {
    left: 40%;
    top: 70%;
    transform: scale(.4);
}

#firework5 .explosion::before {
    animation: explosion 1.6s .9s ease-in-out infinite;
}

#firework6 {
    left: 60%;
    top: 40%;
    transform: scale(.3);
}

#firework6 .explosion::before {
    animation: explosion 2s .5s ease-in-out infinite;
}

#firework7 {
    left: 15%;
    top: 80%;
    transform: scale(.2);
}

#firework7 .explosion::before {
    animation: explosion 1.8s .8s ease-in-out infinite;
}
