.loader {
    top: 50%;
    left: 48%;
    position: relative;
}

.line {
    animation: expand 1s ease-in-out infinite;
    border-radius: 10px;
    display: inline-block;
    transform-origin: center center;
    margin: 0 3px;
    width: 1px;
    height: 14px;
}

.line:nth-child(1) {
    background: #27ae60;
}

.line:nth-child(2) {
    animation-delay: 180ms;
    background: #f1c40f;
}

.line:nth-child(3) {
    animation-delay: 360ms;
    background: #e67e22;
}

.line:nth-child(4) {
    animation-delay: 540ms;
    background: #2980b9;
}

@keyframes expand {
    0% {
        transform: scale(1);
    }
    25% {
        transform: scale(2);
    }
}

.cacher{
    display: none;
}

/* Editable */
/* Probably shouldn't edit, but go crazy. */
/* Sassery */
.spinner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(90deg);
    width: 3.2em;
}

.spinner, .spinner div {
    transform-origin: 50% 50%;
}

.spinner div {
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}

.spinner:before,
.spinner:after,
.spinner div:before,
.spinner div:after {
    animation-duration: 1000ms;
    animation-iteration-count: infinite;
    content: "";
    background: #009DDC;
    border-radius: 100%;
    width: 0.8em;
    height: 0.8em;
    position: absolute;
}

.spinner:before,
.spinner div:before {
    animation-name: orbBounceBefore;
    top: -0.4em;
    left: -0.4em;
}

.spinner:after,
.spinner div:after {
    animation-name: orbBounceAfter;
    top: -0.4em;
    right: -0.4em;
}

.spinner-a {
    transform: rotate(60deg) translateY(0);
}

.spinner-b {
    transform: rotate(120deg) translateY(0);
}

@keyframes orbBounceBefore {
    60% {
        transform: translateX(0);
        animation-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53);
    }
    80% {
        animation-timing-function: cubic-bezier(0, 1.11, 0.7, 1.43);
        transform: translateX(-100%);
    }
    100% {
        transform: translateX(0);
    }
}
@keyframes orbBounceAfter {
    60% {
        animation-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53);
        transform: translateX(0);
    }
    80% {
        animation-timing-function: cubic-bezier(0, 1.11, 0.7, 1.43);
        transform: translateX(100%);
    }
    100% {
        transform: translateX(0);
    }
}
.spinner-a:before {
    animation-delay: 166.66667ms;
}

.spinner-b:before {
    animation-delay: 333.33333ms;
}

.spinner:after {
    animation-delay: 500ms;
}

.spinner-a:after {
    animation-delay: 666.66667ms;
}

.spinner-b:after {
    animation-delay: 833.33333ms;
}

