/** Simple Reset - START */
html {
    box-sizing: border-box;
    font-size: 16px;
    overflow-x: hidden;
}

*, *:before, *:after {
    box-sizing: inherit;
}

body, h1, h2, h3, h4, h5, h6, p, ol, ul {
    margin: 0;
    padding: 0;
    font-weight: normal;
}

img {
    max-width: 100%;
    height: auto;
}

/** Animating - START */
@keyframes moving {
    0%,
    5% {
        left: 0;
        background-color: #039be5;
    }
    95%,
    100% {
        left: calc(100% - 3rem);
        background-color: #84d6fd;
    }
}

@keyframes box-2-anim {
    0% {
        transform: scale(1, 1) rotate(0deg);
        bottom: 0;
    }
    5% {
        bottom: 3rem;
    }
    15% {
        bottom: 0;
        transform: scale(1, 1) rotate(-180deg);
    }
    17.001% {
        bottom: 0;
        transform: translate(0.9rem, 0.6rem) scale(1.3, 0.6) translateY(0px) rotate(-180deg);
    }
    25% {
        bottom: 0;
        transform: scale(1, 1) rotate(-180deg);
    }
    66% {
        transform: scale(1, 1) rotate(-180deg);
        bottom: 0;
    }
    71% {
        bottom: 3rem;
    }
    81% {
        bottom: 0;
        transform: scale(1, 1) rotate(0deg);
    }
    83.001% {
        bottom: 0;
        transform: translate(-0.9rem, 0.6rem) scale(1.3, 0.6) translateY(0px) rotate(0deg);
    }
    91% {
        transform: scale(1, 1) rotate(0deg);
    }
    100% {
        transform: scale(1, 1) rotate(0deg);
    }
}

@keyframes box-3-anim {
    0% {
        transform: scale(1, 1) rotate(0deg);
        bottom: 0;
    }
    5% {
        bottom: 3rem;
    }
    15% {
        bottom: 0;
        transform: scale(1, 1) rotate(-180deg);
    }
    17.001% {
        bottom: 0;
        transform: translate(0.9rem, 0.6rem) scale(1.3, 0.6) translateY(0px) rotate(-180deg);
    }
    25% {
        bottom: 0;
        transform: scale(1, 1) rotate(-180deg);
    }
    56% {
        transform: scale(1, 1) rotate(-180deg);
        bottom: 0;
    }
    61% {
        bottom: 3rem;
    }
    71% {
        bottom: 0;
        transform: scale(1, 1) rotate(0deg);
    }
    73.001% {
        bottom: 0;
        transform: translate(-0.9rem, 0.6rem) scale(1.3, 0.6) translateY(0px) rotate(0deg);
    }
    81% {
        transform: scale(1, 1) rotate(0deg);
    }
    100% {
        transform: scale(1, 1) rotate(0deg);
    }
}

@keyframes box-4-anim {
    0% {
        transform: scale(1, 1) rotate(0deg);
        bottom: 0;
    }
    5% {
        bottom: 3rem;
    }
    15% {
        bottom: 0;
        transform: scale(1, 1) rotate(-180deg);
    }
    17.001% {
        bottom: 0;
        transform: translate(0.9rem, 0.6rem) scale(1.3, 0.6) translateY(0px) rotate(-180deg);
    }
    25% {
        bottom: 0;
        transform: scale(1, 1) rotate(-180deg);
    }
    45% {
        transform: scale(1, 1) rotate(-180deg);
        bottom: 0;
    }
    50% {
        bottom: 3rem;
    }
    60% {
        bottom: 0;
        transform: scale(1, 1) rotate(0deg);
    }
    62.001% {
        bottom: 0;
        transform: translate(-0.9rem, 0.6rem) scale(1.3, 0.6) translateY(0px) rotate(0deg);
    }
    70% {
        transform: scale(1, 1) rotate(0deg);
    }
    100% {
        transform: scale(1, 1) rotate(0deg);
    }
}

@keyframes box-5-anim {
    0% {
        transform: scale(1, 1) rotate(0deg);
        bottom: 0;
    }
    5% {
        bottom: 3rem;
    }
    15% {
        bottom: 0;
        transform: scale(1, 1) rotate(-180deg);
    }
    17.001% {
        bottom: 0;
        transform: translate(0.9rem, 0.6rem) scale(1.3, 0.6) translateY(0px) rotate(-180deg);
    }
    25% {
        bottom: 0;
        transform: scale(1, 1) rotate(-180deg);
    }
    33% {
        transform: scale(1, 1) rotate(-180deg);
        bottom: 0;
    }
    38% {
        bottom: 3rem;
    }
    48% {
        bottom: 0;
        transform: scale(1, 1) rotate(0deg);
    }
    50.001% {
        bottom: 0;
        transform: translate(-0.9rem, 0.6rem) scale(1.3, 0.6) translateY(0px) rotate(0deg);
    }
    58% {
        transform: scale(1, 1) rotate(0deg);
    }
    100% {
        transform: scale(1, 1) rotate(0deg);
    }
}

.loading-container {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 90vh;
}

.box-loading {
    width: 21rem;
    height: 3rem;
    position: relative;
    margin: 0 auto;
}

.box-loading > .box {
    position: absolute;
    width: 3rem;
    height: 3rem;
    border-radius: 0.6rem;
    background-color: #007bff;
    transform-origin: -0.75rem 1.5rem;
    box-shadow: 0 0 6px 2px rgba(40, 139, 171, 0.15);
}

.box-loading > .box:nth-child(1) {
    left: 0rem;
    background-color: #06abfc;
}

.box-loading > .box:nth-child(2) {
    left: 4.5rem;
    background-color: #1fb4fc;
    animation: box-2-anim 2s infinite linear;
    animation-delay: 0.22s;
}

.box-loading > .box:nth-child(3) {
    left: 9rem;
    background-color: #38bcfc;
    animation: box-3-anim 2s infinite linear;
    animation-delay: 0.33s;
}

.box-loading > .box:nth-child(4) {
    left: 13.5rem;
    background-color: #51c5fd;
    animation: box-4-anim 2s infinite linear;
    animation-delay: 0.44s;
}

.box-loading > .box:nth-child(5) {
    left: 18rem;
    background-color: #6acdfd;
    animation: box-5-anim 2s infinite linear;
    animation-delay: 0.55s;
}

.box-loading > .box:nth-child(1) {
    background-color: #039be5;
    animation: moving 1s infinite cubic-bezier(0.6, 0, 0.4, 1) alternate;
}