.page {
    animation-duration: 400ms;
    animation-timing-function: ease-out;
    animation-delay: 0;
    animation-direction: normal;
    animation-iteration-count: 1;
    animation-name: fade;
}

@keyframes fade {
    0% {
        padding-top: 2vh;
        opacity: 0;
    }
    100% {
        padding-top: 0;
        opacity: 1;
    }
}

button:hover {
    scale: 1.05;
    transition: scale 65ms ease-in-out;
    animation-duration: 100ms;
    animation-timing-function: ease-in;
    animation-delay: 0;
    animation-direction: normal;
    animation-iteration-count: infinite;
    animation-name: shake;
}

@keyframes shake {
    0% {
        transform: translateX(0vh);
    }
    25% {
        transform: translateX(0.2vh);
    }
    50% {
        transform: translateX(0vh);
    }
    75% {
        transform: translateX(-0.2vh);
    }
    100% {
        transform: translateX(0vh);
    }
}

.goal {
    animation-name: rotate;
    animation-duration: 4s;
    animation-delay: 0;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
    filter: blur(1vh);
}

.checkPoint {
    animation-name: rotate;
    animation-duration: 4s;
    animation-delay: 0;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
    filter: blur(1vh);
}

@keyframes rotate {
    0% {
        transform: rotate(0) translateX(0vh);
    }
    25% {
        transform: rotate(90deg) translateX(1vh);
    }
    75% {
        transform: rotate(270deg) translateX(-1vh);
    }
    100% {
        transform: rotate(360deg);
    }
}

#invalidPanel {
    animation-duration: 200ms;
    animation-timing-function: ease-out;
    animation-delay: 0;
    animation-direction: normal;
    animation-iteration-count: 1;
    animation-name: lording;
}

@keyframes lording {
    0% {
        padding-top: 2vh;
    }
    100% {
        padding-top: 0;
    }
}

#lordingCircle {
    animation-duration: 450ms;
    animation-timing-function: linear;
    animation-delay: 0;
    animation-direction: normal;
    animation-iteration-count: infinite;
    animation-name: lordingCircle;
}

@keyframes lordingCircle {
    0% {
        transform: rotate(0deg);
        scale: 1;
        opacity: 1;
    }
    50% {
        transform: rotate(180deg);
        scale: 1.5;
        opacity: 0.7;
    }
    100% {
        transform: rotate(360deg);
        scale: 1;
        opacity: 1;
    }
}

.player {
    animation-duration: 8s;
    animation-timing-function: ease-in-out;
    animation-delay: 0;
    animation-direction: normal;
    animation-iteration-count: infinite;
    animation-name: playerAnimation;
}

@keyframes playerAnimation {
    0% {
        transform: rotate(0deg);
        scale: 1;
        filter: blur(0);
    }
    25% {
        transform: rotate(0.9deg);
    }
    50% {
        transform: rotate(0deg);
        scale: 1.03;
        filter: blur(0.1vh);
    }
    75% {
        transform: rotate(-0.9deg);
    }
    100% {
        transform: rotate(0deg);
        scale: 1;
        filter: blur(0);
    }
}

.square:not(.checkPoint, .goal, .player) {
    animation-duration: 16s;
    animation-timing-function: ease-in-out;
    animation-delay: 0;
    animation-direction: normal;
    animation-iteration-count: infinite;
    animation-name: squareAnimation;
}

@keyframes squareAnimation {
    0% {
        filter: blur(0);
        transform: translate(0, 0);
    }
    25% {
        transform: translate(0.8vh, 0.4vh);
    }
    50% {
        transform: rotate(0deg);
        filter: blur(0.1vh);
        transform: translate(-0.4vh, 0);
    }
    75% {
        transform: translate(0, -0.4vh);
    }
    100% {
        filter: blur(0);
        transform: translate(0, 0);
    }
}
