body {
    background-color: #E5E5E5;
    padding: 16px;
}

#loader-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#loader-text {
    display: block;
    position: relative;
    width: 100%;
    left: 0%;
    top: calc(50% + 16px);
}

#loader-text {
    display: inline-block;
    width: 100%;
    text-align: center;
}

@keyframes changeText {
    0% {
        content: '30%';
    }

    18% {
        content: '60%';
    }

    36% {
        content: '70%';
    }

    54% {
        content: '80%';
    }

    72% {
        content: '90%';
    }

    90% {
        content: '95%';
    }
}

#loader-text>p {
    font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
    font-weight: 400;
    font-size: 20;
    color: #414042;
}

#loader-text>p:after {
    animation: changeText 30s infinite;
    content: 'Loading...'
}

#loader {
    display: block;
    position: relative;
    left: 50%;
    top: 50%;
    width: 80px;
    height: 80px;
    margin: -40px 0 0 -40px;

    border: 3px solid #3498db;
}

#loader:before {
    content: "";
    position: absolute;
    top: 5px;
    left: 5px;
    right: 5px;
    bottom: 5px;
    border: 3px solid #e74c3c;
}

#loader:after {
    content: "";
    position: absolute;
    top: 15px;
    left: 15px;
    right: 15px;
    bottom: 15px;
    border: 3px solid #f9c922;
}

#loader {
    border: 3px solid transparent;
    border-top-color: #3498db;
}

#loader:before {
    border: 3px solid transparent;
    border-top-color: #e74c3c;
}

#loader:after {
    border: 3px solid transparent;
    border-top-color: #f9c922;
}

#loader {
    border-radius: 50%;
}

#loader:before {
    border-radius: 50%;
}

#loader:after {
    border-radius: 50%;
}

@-webkit-keyframes spin {
    0% {
        -webkit-transform: rotate(0deg);
        /* Chrome, Opera 15+, Safari 3.1+ */
        -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+ */
        -ms-transform: rotate(360deg);
        /* IE 9 */
        transform: rotate(360deg);
        /* Firefox 16+, IE 10+, Opera */
    }
}

@keyframes spin {
    0% {
        -webkit-transform: rotate(0deg);
        /* Chrome, Opera 15+, Safari 3.1+ */
        -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+ */
        -ms-transform: rotate(360deg);
        /* IE 9 */
        transform: rotate(360deg);
        /* Firefox 16+, IE 10+, Opera */
    }
}

#loader {
    -webkit-animation: spin 2s linear infinite;
    animation: spin 2s linear infinite;
}

#loader:before {
    -webkit-animation: spin 3s linear infinite;
    animation: spin 3s linear infinite;
}