/* Fullscreen loader overlay */
#loader {
    position: fixed;
    top: 0;
    left: 0;

    width: 100vw;
    height: 100vh;

    background-color: rgba(0, 0, 0, 0.8);
    /* black with 50% opacity */

    z-index: 1050;

    display: none;
    /* hidden initially */

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;
    /* no scroll */
}

/* SVG logo */
#loader .loader {
    width: 12em;
    height: auto;
}

/* White animated stroke */
#loader .loader path {
    stroke: #ffffff;
    stroke-width: 5px;
    fill: none;
    animation:
        dashArray 4s ease-in-out infinite,
        dashOffset 4s linear infinite;
}

/* Animations */
@keyframes dashArray {
    0% {
        stroke-dasharray: 0 1 359 0;
    }

    50% {
        stroke-dasharray: 0 359 1 0;
    }

    100% {
        stroke-dasharray: 359 1 0 0;
    }
}

@keyframes dashOffset {
    0% {
        stroke-dashoffset: 365;
    }

    100% {
        stroke-dashoffset: 5;
    }
}