#loader {
    background-color:   rgba(0, 0, 0, .5);
    box-shadow:         inset 0 0 35em rgba(0, 0, 0, .8);
    position:           fixed;
    width:              100%;
    height:             100%;
    z-index:            99;
    top:                0;
    left:               0;
    opacity:            1;
    -webkit-transition: opacity .3s, z-index .4s;
    -moz-transition:    opacity .3s, z-index .4s;
    -ms-transition:     opacity .3s, z-index .4s;
    -o-transition:      opacity .3s, z-index .4s;
    transition:         opacity .3s, z-index .4s;
}

.hideLoader #loader {
    opacity: 0;
    z-index: -1;
}

.reload #loader .loadingWrapper {
    display: none;
}

.loadingWrapper {
    width:     100%;
    height:    100%;
    transform: scale(.8);
}

#loader .leftEye,
#loader .rightEye {
    width:             5vh;
    height:            5vh;
    border-radius:     50%;
    background:        #FFF;
    position:          absolute;
    top:               50%;
    left:              50%;
    -webkit-transform: translate(-50%, -50%);
    transform:         translate(-50%, -50%);
    -webkit-animation: leftEyeAnimation 3s infinite cubic-bezier(0.455, 0.03, 0.515, 0.955);
    animation:         leftEyeAnimation 3s infinite cubic-bezier(0.455, 0.03, 0.515, 0.955);
}

#loader .rightEye {
    -webkit-animation: rightEyeAnimation 3s infinite cubic-bezier(0.455, 0.03, 0.515, 0.955);
    animation:         rightEyeAnimation 3s infinite cubic-bezier(0.455, 0.03, 0.515, 0.955);
}

#loader .mouth {
    width:             10vh;
    height:            10vh;
    border-radius:     50%;
    border:            solid 1.3vh #FFF;
    border-right:      solid 1.3vh rgba(255, 255, 255, 0);
    border-left:       solid 1.3vh rgba(255, 255, 255, 0);
    border-bottom:     solid 1.3vh rgba(255, 255, 255, 0);
    position:          absolute;
    top:               50%;
    left:              50%;
    -webkit-transform: translate(-50%, -50%) rotate(360deg);
    transform:         translate(-50%, -50%) rotate(360deg);
    -webkit-animation: mouthAnimation 3s infinite cubic-bezier(0.455, 0.03, 0.515, 0.955);
    animation:         mouthAnimation 3s infinite cubic-bezier(0.455, 0.03, 0.515, 0.955);
}

@-webkit-keyframes mouthAnimation {
    0% {
        -webkit-transform: translate(-50%, -50%) rotateX(180deg);
        transform:         translate(-50%, -50%) rotateX(180deg);
    }
    10% {
        -webkit-transform: translate(-50%, -50%) rotateZ(360deg);
        transform:         translate(-50%, -50%) rotateZ(360deg);
    }
    40% {
        -webkit-transform: translate(-50%, -50%) rotateZ(320deg);
        transform:         translate(-50%, -50%) rotateZ(320deg);
    }
    60% {
        -webkit-transform: translate(-50%, -50%) rotateZ(900deg);
        transform:         translate(-50%, -50%) rotateZ(900deg);
    }
    100% {
        -webkit-transform: translate(-50%, -50%) rotateZ(900deg);
        transform:         translate(-50%, -50%) rotateZ(900deg);
    }
}

@keyframes mouthAnimation {
    0% {
        -webkit-transform: translate(-50%, -50%) rotateX(180deg);
        transform:         translate(-50%, -50%) rotateX(180deg);
    }
    10% {
        -webkit-transform: translate(-50%, -50%) rotateZ(360deg);
        transform:         translate(-50%, -50%) rotateZ(360deg);
    }
    40% {
        -webkit-transform: translate(-50%, -50%) rotateZ(320deg);
        transform:         translate(-50%, -50%) rotateZ(320deg);
    }
    60% {
        -webkit-transform: translate(-50%, -50%) rotateZ(900deg);
        transform:         translate(-50%, -50%) rotateZ(900deg);
    }
    100% {
        -webkit-transform: translate(-50%, -50%) rotateZ(900deg);
        transform:         translate(-50%, -50%) rotateZ(900deg);
    }
}

@-webkit-keyframes leftEyeAnimation {
    0% {
        width:             5vh;
        height:            5vh;
        -webkit-transform: translate(-50%, -50%);
        transform:         translate(-50%, -50%);
    }
    50% {
        width:             5vh;
        height:            5vh;
        -webkit-transform: translate(-50%, -50%);
        transform:         translate(-50%, -50%);
    }
    60% {
        width:             2vh;
        height:            2vh;
        -webkit-transform: translate(-150%, -50%);
        transform:         translate(-150%, -50%);
    }
    90% {
        width:             2vh;
        height:            2vh;
        -webkit-transform: translate(-150%, -50%);
        transform:         translate(-150%, -50%);
    }
    100% {
        width:             5vh;
        height:            5vh;
        -webkit-transform: translate(-50%, -50%);
        transform:         translate(-50%, -50%);
    }
}

@keyframes leftEyeAnimation {
    0% {
        width:             5vh;
        height:            5vh;
        -webkit-transform: translate(-50%, -50%);
        transform:         translate(-50%, -50%);
    }
    50% {
        width:             5vh;
        height:            5vh;
        -webkit-transform: translate(-50%, -50%);
        transform:         translate(-50%, -50%);
    }
    60% {
        width:             2vh;
        height:            2vh;
        -webkit-transform: translate(-150%, -50%);
        transform:         translate(-150%, -50%);
    }
    90% {
        width:             2vh;
        height:            2vh;
        -webkit-transform: translate(-150%, -50%);
        transform:         translate(-150%, -50%);
    }
    100% {
        width:             5vh;
        height:            5vh;
        -webkit-transform: translate(-50%, -50%);
        transform:         translate(-50%, -50%);
    }
}

@-webkit-keyframes rightEyeAnimation {
    0% {
        width:             5vh;
        height:            5vh;
        -webkit-transform: translate(-50%, -50%);
        transform:         translate(-50%, -50%);
    }
    50% {
        width:             5vh;
        height:            5vh;
        -webkit-transform: translate(-50%, -50%);
        transform:         translate(-50%, -50%);
    }
    60% {
        width:             2vh;
        height:            2vh;
        -webkit-transform: translate(50%, -50%);
        transform:         translate(50%, -50%);
    }
    70% {
        width:             2vh;
        height:            2vh;
        -webkit-transform: translate(50%, -50%);
        transform:         translate(50%, -50%);
    }
    75% {
        width:             2vh;
        height:            2px;
        -webkit-transform: translate(50%, -50%);
        transform:         translate(50%, -50%);
    }
    80% {
        width:             2vh;
        height:            2vh;
        -webkit-transform: translate(50%, -50%);
        transform:         translate(50%, -50%);
    }
    90% {
        width:             2vh;
        height:            2vh;
        -webkit-transform: translate(50%, -50%);
        transform:         translate(50%, -50%);
    }
    100% {
        width:             5vh;
        height:            5vh;
        -webkit-transform: translate(-50%, -50%);
        transform:         translate(-50%, -50%);
    }
}

@keyframes rightEyeAnimation {
    0% {
        width:             5vh;
        height:            5vh;
        -webkit-transform: translate(-50%, -50%);
        transform:         translate(-50%, -50%);
    }
    50% {
        width:             5vh;
        height:            5vh;
        -webkit-transform: translate(-50%, -50%);
        transform:         translate(-50%, -50%);
    }
    60% {
        width:             2vh;
        height:            2vh;
        -webkit-transform: translate(50%, -50%);
        transform:         translate(50%, -50%);
    }
    70% {
        width:             2vh;
        height:            2vh;
        -webkit-transform: translate(50%, -50%);
        transform:         translate(50%, -50%);
    }
    75% {
        width:             2vh;
        height:            2px;
        -webkit-transform: translate(50%, -50%);
        transform:         translate(50%, -50%);
    }
    80% {
        width:             2vh;
        height:            2vh;
        -webkit-transform: translate(50%, -50%);
        transform:         translate(50%, -50%);
    }
    90% {
        width:             2vh;
        height:            2vh;
        -webkit-transform: translate(50%, -50%);
        transform:         translate(50%, -50%);
    }
    100% {
        width:             5vh;
        height:            5vh;
        -webkit-transform: translate(-50%, -50%);
        transform:         translate(-50%, -50%);
    }
}
