/* ///////////////////////////////////////////////////////////// EFFECTS */

.globalEffectsFilter {
    position: fixed;
    top: 0px;
    bottom: 0px;
    right: 0px;
    left: 0px;
    pointer-events: none;
    z-index: 9999999;
    overflow: hidden;
}

.effectsContainer {
    height: 100%;
    width: 100%;
}

#effectsFilterLight {
    mix-blend-mode: screen;
}

/* ///////////////////////////////////////////////////////////// ELEMENTS */

.glow01A{
    position: absolute;
    top: 0px;
    bottom: 0px;
    right: 0px;
    left: 0px;
    opacity: 1;
    background-image: url("img_particles/glow_01A.png");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    mix-blend-mode: screen;
    animation: glow01AANIM 12s linear infinite;
}

.glow01B{
    position: absolute;
    top: 0px;
    bottom: 0px;
    right: 0px;
    left: 0px;
    opacity: 1;
    background-image: url("img_particles/glow_01B.png");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    mix-blend-mode: screen;
    animation: glow01BANIM 8s linear infinite;
}

@keyframes glow01AANIM {
    0%{transform: rotate(0deg) scale(3);}
    100%{transform: rotate(360deg) scale(3);}
}

@keyframes glow01BANIM {
    0%{transform: rotate(0deg) scale(3);}
    100%{transform: rotate(-360deg) scale(3);}
}

/* ///////////////////////////////////////////////////////////// PARTICLES */

.particlesCore {
    position: absolute;
    top: 0px;
    bottom: 0px;
    right: 0px;
    left: 0px;
    margin: auto;
    transform: translate(-50%, -50%);
    overflow: visible;
    pointer-events: none;
    z-index: 99999;
}

.particlesCore2 {
    position: absolute;
    top: 0px;
    bottom: 0px;
    right: 0px;
    left: 0px;
    margin: auto;
    transform: translate(-50%, -50%);
    height: 0px;
    width: 0px;
    overflow: visible;
    pointer-events: none;
    z-index: 99999;
}

#mouseClickEffect1 {
    position: absolute;
    display: none;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    background: radial-gradient(circle, rgba(255, 255, 255, 0) 20%, rgb(204, 255, 0) 40%, rgba(255, 255, 255, 0) 50%);
    animation: mouseClickEffect1ANIM 0.4s linear;
    pointer-events: none;
    opacity: 0;
}

@keyframes mouseClickEffect1ANIM {
    0% {
        transform: translate(-50%, -50%) scale(0);
        opacity: 1;
    }

    25% {
        filter: hue-rotate(0deg);
    }

    50% {
        transform: translate(-50%, -50%) scale(1.5);
        opacity: 1;
    }

    75% {
        filter: hue-rotate(200deg);
    }

    100% {
        transform: translate(-50%, -50%) scale(3);
        opacity: 0;
    }
}

/* ------------------------------------------------ HIT */

.particlesHit01 {
    display: block;
    width: 4px;
    height: 50px;
    border-radius: 4px;
    background: #fff;
    box-shadow: 0px 0px 2px rgba(255, 255, 255, 1), 0px 0px 5px rgba(255, 255, 255, 1), 0px 0px 8px rgba(255, 255, 255, 1);
    position: absolute;
    left: 50%;
    bottom: 50%;
    transform-origin: center bottom;
    transition: transform 0.2s, opacity 0.2s;
    transition-timing-function: ease-in-out;
}

/* ------------------------------------------------ PARTICLES */

.particlesStars {
    position: absolute;
    transform: translate(-50%, -50%);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transition: transform 2s, opacity 2s;
    transition-timing-function: ease-out;
}

/* ------------------------------------------------ CONFETTI */

.particlesConfettiCore {
    position: absolute;
    top: 0px;
    bottom: 0px;
    right: 60px;
    left: 0px;
    margin: auto;
    transition: transform 8s, opacity 3s;
    transition-timing-function: ease-in;
}

.particlesConfetti {
    position: absolute;
    filter: saturate(500%);
    transition: transform 2s;
    transition-timing-function: ease-out;
}

@keyframes particlesConfettiANIM {
    0% {
        height: 14px;
    }

    50% {
        height: 0px;
    }

    100% {
        height: 14px;
    }
}

@keyframes particlesConfetti2ANIM {
    0% {
    margin-left: 24px;
    margin-right: 0px;
    }

    50% {
     margin-left: 0px;
     margin-right: 24px;
    }

    100% {
        margin-left: 24px;
        margin-right: 0px;
    }
}

/* ------------------------------------------------ EXPLOSION */

.particleFireExplosion {
    position: absolute;
    transition: 0.6s, opacity 0.5s, margin 2s;
    transition-timing-function: linear;
}

.particlesExplosionFlash {
    position: absolute;
    display: block;
    width: 800px;
    height: 800px;
    transform: translate(-50%, -50%);
    transition: 1s ease-in-out;
    background-image: url("img_particles/flash_01.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    animation: explosionFlashANIM 1s ease-in-out forwards;
    mix-blend-mode: overlay;
}

@keyframes explosionFlashANIM {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.particlesSmoke {
    position: absolute;
    height: 100px;
    width: 100px;
    opacity: 0.4;
    transition: transform 4s, opacity 4s;
    transition-timing-function: ease-out;
    background-image: url("img_particles/particle_smoke_01.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    mix-blend-mode: multiply;
}

/* ------------------------------------------------ FIREWORKS */

#globalFireworksArea {
    position: fixed;
    max-width: 1000px;
    height: 30%;
    top: 10%;
    right: 0px;
    left: 0px;
    margin: auto;
    pointer-events: none;
}

.particlesFireworkCore {
    position: absolute;
    transform: translate(-50%, -50%);
    width: 0px;
    height: 0px;
    transition: 3s;
    transition-timing-function: ease-in;
}

.particlesFireworkFlash {
    position: absolute;
    display: block;
    width: 1px;
    height: 1px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    opacity: 1;
    transition: 0s;
    filter: saturate(300%);
    transition-timing-function: ease-out;
}

.particlesFirework {
    display: block;
    border-radius: 4px;
    background: #fff;
    position: absolute;
    left: 50%;
    bottom: 50%;
    filter: saturate(600%);
    transform-origin: center bottom;
    transition-timing-function: ease-out;
    mix-blend-mode: screen;
}

/* ------------------------------------------------ SNOW */

.particlesSnow {
    position: absolute;
    top: 0%;
    transition-timing-function: linear;
}