.preloader {
    display: flex;
    background: #fff;
    justify-content: center;
    align-items: center;
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
    margin-left: auto;
    margin-right: auto;
    z-index: 9999;
    width: 100%;
    height: 100%;
    -webkit-transition: all 0.7s ease;
    -moz-transition: all 0.7s ease;
    -ms-transform: all 0.7s ease;
    transition: all 0.7s ease;
}

.page-loaded .preloader {
    transform: translateY(-100%);
    -o-transform: translateY(-100%);
    -ms-transform: translateY(-100%);
    -webkit-transform: translateY(-100%);
}

.page-loaded .header {
    transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    -webkit-transform: translateY(0);
}

.page-loaded .navbar-default {
    transform: translateY(0);
    transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    -webkit-transform: translateY(0);
}

.preloader .circle {
    width: 100px;
    height: 100px;
    display: block;
    background: #543cf5; /* fallback for old browsers */
    background: -webkit-linear-gradient(to right, #00ff80, rgba(29, 22, 239, 0.7)); /* Chrome 10-25, Safari 5.1-6 */
    background: linear-gradient(to right, #00ffd0, rgba(5, 108, 243, 0.9)); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
    border-radius: 500%;
    position: relative;
    -webkit-animation: rotation 2s linear infinite;
    animation: rotation 2s linear infinite;
}

@-webkit-keyframes rotation {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@keyframes rotation {
    0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

body .circle .inner {
    width: 70px;
    height: 70px;
    background: #fff;
    position: absolute;
    left: 50%;
    top: 50%;
    -webkit-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%);
    border-radius: 100%;
    box-shadow: 0 -130px 0 -75px #fff;
    -webkit-animation: switch 8s ease-in-out infinite;
    animation: switch 8s ease-in-out infinite;
}

@-webkit-keyframes switch {
    0% {
        top: 50%;
        -webkit-transform: translateX(-50%) translateY(-50%);
        transform: translateX(-50%) translateY(-50%);
        width: 100px;
        height: 100px;
        box-shadow: 0 -130px 0 -75px #fff;
    }
    25% {
        top: 50%;
        -webkit-transform: translateX(-50%) translateY(-50%);
        transform: translateX(-50%) translateY(-50%);
        width: 100px;
        height: 100px;
        box-shadow: 0 -130px 0 -75px #fff;
    }
    50% {
        top: calc(100% - 55px);
        width: 25px;
        height: 25px;
        box-shadow: 0 -130px 0 75px #fff;
        -webkit-transform: translateX(-50%) translateY(0);
        transform: translateX(-50%) translateY(0);
    }
    75% {
        top: calc(100% - 55px);
        width: 25px;
        height: 25px;
        box-shadow: 0 -130px 0 75px #fff;
        -webkit-transform: translateX(-50%) translateY(0);
        transform: translateX(-50%) translateY(0);
    }
    100% {
        top: 50%;
        -webkit-transform: translateX(-50%) translateY(-50%);
        transform: translateX(-50%) translateY(-50%);
        width: 70px;
        height: 70px;
        box-shadow: 0 -130px 0 -75px #fff;
    }
}

@keyframes switch {
    0% {
        top: 50%;
        -webkit-transform: translateX(-50%) translateY(-50%);
        transform: translateX(-50%) translateY(-50%);
        width: 70px;
        height: 70px;
        box-shadow: 0 -130px 0 -75px #fff;
    }
    25% {
        top: 50%;
        -webkit-transform: translateX(-50%) translateY(-50%);
        transform: translateX(-50%) translateY(-50%);
        width: 70px;
        height: 70px;
        box-shadow: 0 -130px 0 -75px #fff;
    }
    50% {
        top: calc(100% - 55px);
        width: 25px;
        height: 25px;
        box-shadow: 0 -130px 0 75px #fff;
        -webkit-transform: translateX(-50%) translateY(0);
        transform: translateX(-50%) translateY(0);
    }
    75% {
        top: calc(100% - 55px);
        width: 25px;
        height: 25px;
        box-shadow: 0 -130px 0 75px #fff;
        -webkit-transform: translateX(-50%) translateY(0);
        transform: translateX(-50%) translateY(0);
    }
    100% {
        top: 50%;
        -webkit-transform: translateX(-50%) translateY(-50%);
        transform: translateX(-50%) translateY(-50%);
        width: 70px;
        height: 70px;
        box-shadow: 0 -130px 0 -75px #fff;
    }
}
