@keyframes loading-placeholder {
    0% {
           background-color: fade(black, 5%);
    }
    50% {
           background-color: fade(black, 15%);
    }
    100% {
           background-color: fade(black, 5%);
    }
}

@-webkit-keyframes loading-placeholder {
    0% {
           background-color: fade(black, 5%);
    }
    50% {
           background-color: fade(black, 15%);
    }
    100% {
           background-color: fade(black, 5%);
    }
}

@keyframes loading-stripes {
    from {
        background-position: 0%;
    }
    to {
        background-position: 100%;
    }
}

@-webkit-keyframes loading-stripes {
    from {
        background-position: 0%;
    }
    to {
        background-position: 100%;
    }
}

@keyframes loading-dots {
    0% {
        opacity: .15;
    }
    12.5% {
        opacity: .85;
    }
    100% {
        opacity: .15;
    }
}

@keyframes error-shake {
    0%, 100% {
        left: 0px;
    }
    20%, 60% {
        left: 1em;
    }
    40%, 80% {
        left: -1em;
    }
}

@-webkit-keyframes error-shake {
    0%, 100% {
        left: 0px;
    }
    20%, 60% {
        left: 1em;
    }
    40%, 80% {
        left: -1em;
    }
}