#loader-wrapper {
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 10000;
    background-color: #fff;
    opacity: 0.95;
}
#loader-wrapper > #percent-done {
    position: absolute;
    top: 25%;
    left: 50%;
}
#loader {
    z-index: 1001;
    display: block;
    position: absolute;
    left: 50%;
    top: 25%;
    width: 120px;
    height: 120px;
    margin: -47px;
    border-radius: 50%;
    border: 1px solid transparent;
    border-top-color: #222;
    -webkit-animation: spin-loader 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
       -moz-animation: spin-loader 2s linear infinite;
        -ms-animation: spin-loader 2s linear infinite;
            animation: spin-loader 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */
}
#loader:before {
    content: "";
    position: absolute;
    top: 5px;
    left: 5px;
    right: 5px;
    bottom: 5px;
    border-radius: 50%;
    border: 1px solid transparent;
    border-top-color: #222;
    -webkit-animation: spin-loader 3s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
       -moz-animation: spin-loader 3s linear infinite;
        -ms-animation: spin-loader 3s linear infinite;
            animation: spin-loader 3s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */
}
#loader:after {
    content: "";
    position: absolute;
    top: 15px;
    left: 15px;
    right: 15px;
    bottom: 15px;
    border-radius: 50%;
    border: 1px solid transparent;
    border-top-color: #222;
    -webkit-animation: spin-loader 1.5s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
       -moz-animation: spin-loader 1.5s linear infinite;
        -ms-animation: spin-loader 1.5s linear infinite;
            animation: spin-loader 1.5s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */
}

@-webkit-keyframes spin-loader {
    0%   {
        -webkit-transform: rotate(0deg);  /* Chrome, Opera 15+, Safari 3.1+ */
           -moz-transform: rotate(0deg);
            -ms-transform: rotate(0deg);  /* IE 9 */
                transform: rotate(0deg);  /* Firefox 16+, IE 10+, Opera */
    }
    100% {
        -webkit-transform: rotate(360deg);  /* Chrome, Opera 15+, Safari 3.1+ */
           -moz-transform: rotate(360deg);
            -ms-transform: rotate(360deg);  /* IE 9 */
                transform: rotate(360deg);  /* Firefox 16+, IE 10+, Opera */
    }
}
@keyframes spin-loader {
    0%   {
        -webkit-transform: rotate(0deg);  /* Chrome, Opera 15+, Safari 3.1+ */
           -moz-transform: rotate(0deg);
            -ms-transform: rotate(0deg);  /* IE 9 */
                transform: rotate(0deg);  /* Firefox 16+, IE 10+, Opera */
    }
    100% {
        -webkit-transform: rotate(360deg);  /* Chrome, Opera 15+, Safari 3.1+ */
           -moz-transform: rotate(360deg);
            -ms-transform: rotate(360deg);  /* IE 9 */
                transform: rotate(360deg);  /* Firefox 16+, IE 10+, Opera */
    }
}

.loaded #loader-wrapper {
    display: none;
}
.loaded #loader {
    opacity: 0;
    -webkit-transition: all 0.3s ease-out;
       -moz-transition: all 0.3s ease-out;
        -ms-transition: all 0.3s ease-out;
            transition: all 0.3s ease-out;
}
.loaded #loader-wrapper {
    -webkit-transform: translateY(-100%);
       -moz-transform: translateY(-100%);
        -ms-transform: translateY(-100%);
            transform: translateY(-100%);
    -webkit-transition: all 0.3s 0.6s ease-out;
       -moz-transition: all 0.3s 0.6s ease-out;
        -ms-transition: all 0.3s 0.6s ease-out;
            transition: all 0.3s 0.6s ease-out;
}
