@charset "utf-8";

/* ----------------------------------------------
Auteur/author : nicodeux
Dernière mise à jour/last update : 04/06/2025
Licence : GNU General Public License v3.0
---------------------------------------------- */

/* Confettis */

#confettis {
    position: absolute;
    z-index: 1999;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    visibility: hidden;
}

.confetti {
    position: absolute;
    top: 20px;
    left: 300px;
    display: block;
    width: 12px;
    height: 12px;
    background-color: red;
    border-radius: 6px;
}

/* Animations des principaux effets : rotations, contractions... */

/* Grossissement de 10% lors du survol de la souris */
.gros10-hover {
    transform: scale(1);
    transition: transform 0.2s;
}

.gros10-hover:hover {
    transform: scale(1.1);
}

.popin {
    transform: scale(1);
    animation: popin 0.5s ease-out;
    animation-iteration-count: 1;
}

@keyframes popin {
    0% {
        transform: scale(0.6);
    }
    75% {
        transform: scale(1.20); /* slightly increasing the size */
    }
    100% {
        transform: scale(1); /* setting back to initial size */
    }
}

.rotation-1 {
    animation: rotation-horaire 1s linear infinite;
}

@keyframes rotation-horaire {
    from {transform: rotate(0deg);}
    to   {transform: rotate(360deg);}
}

.rotation-2 {
    animation: rotation-antihoraire 1s linear infinite;
}

@keyframes rotation-antihoraire {
    from {transform: rotate(0deg);}
    to   {transform: rotate(-360deg);}
}

.contraction-x-1 {
    animation: contraction-x-1 0.6s linear infinite;
    animation-direction: alternate;
}

@keyframes contraction-x-1 {
    0%   {transform: scaleX(1);}
    100% {transform: scaleX(0.3);}
}

.contraction-y-1 {
    animation: contraction-y-1 0.4s linear infinite;
    animation-direction: alternate;
    animation-delay: 0.2s;
}

@keyframes contraction-y-1 {
    0%   {transform: scaleY(1);}
    100% {transform: scaleY(0.3);}
}


.contraction-x-2 {
    animation: contraction-x-2 0.6s linear infinite;
    animation-direction: alternate;
    animation-delay: 0.3s;
}

@keyframes contraction-x-2 {
    0%   {transform: scaleX(1);}
    100% {transform: scaleX(0.3);}
}

.contraction-y-2 {
    animation: contraction-y-2 0.4s linear infinite;
    animation-direction: alternate;
    animation-delay: 0.4s;
}

@keyframes contraction-y-2 {
    0%   {transform: scaleY(1);}
    100% {transform: scaleY(0.3);}
}


.contraction-x-3 {
    animation: contraction-x-3 0.6s linear infinite;
    animation-direction: alternate;
    animation-delay: 0.15s;
}

@keyframes contraction-x-3 {
    0%   {transform: scaleX(1);}
    100% {transform: scaleX(0.3);}
}

.contraction-y-3 {
    animation: contraction-y-3 0.4s linear infinite;
    animation-direction: alternate;
    animation-delay: 0.25s;
}

@keyframes contraction-y-3 {
    0%   {transform: scaleY(1);}
    100% {transform: scaleY(0.3);}
}

/* Rend l'élément et son contenu invisible à l'écran */
.invisible {
    display: none !important;
}
