/**
 *
 * All animations must live in their own file
 * in the animations directory and be included
 * here.
 *
 */
/**
 * Styles shared by multiple animations
 */
/**
 * Dots
 */
@-webkit-keyframes scale
{
    0%
    {
        opacity: 1;
                transform: scale(1);
        -webkit-transform: scale(1);
    }

    45%
    {
        opacity: .7;
                transform: scale(.1);
        -webkit-transform: scale(.1);
    }

    80%
    {
        opacity: 1;
                transform: scale(1);
        -webkit-transform: scale(1);
    }
}
@keyframes scale
{
    0%
    {
        opacity: 1;
                transform: scale(1);
        -webkit-transform: scale(1);
    }

    45%
    {
        opacity: .7;
                transform: scale(.1);
        -webkit-transform: scale(.1);
    }

    80%
    {
        opacity: 1;
                transform: scale(1);
        -webkit-transform: scale(1);
    }
}

.ball-pulse > div:nth-child(0)
{
            animation: scale .75s -.36s infinite cubic-bezier(.2, .68, .18, 1.08);
    -webkit-animation: scale .75s -.36s infinite cubic-bezier(.2, .68, .18, 1.08);
}
.ball-pulse > div:nth-child(1)
{
            animation: scale .75s -.24s infinite cubic-bezier(.2, .68, .18, 1.08);
    -webkit-animation: scale .75s -.24s infinite cubic-bezier(.2, .68, .18, 1.08);
}
.ball-pulse > div:nth-child(2)
{
            animation: scale .75s -.12s infinite cubic-bezier(.2, .68, .18, 1.08);
    -webkit-animation: scale .75s -.12s infinite cubic-bezier(.2, .68, .18, 1.08);
}
.ball-pulse > div:nth-child(3)
{
            animation: scale .75s 0s infinite cubic-bezier(.2, .68, .18, 1.08);
    -webkit-animation: scale .75s 0s infinite cubic-bezier(.2, .68, .18, 1.08);
}
.ball-pulse > div
{
    background-color: #fff;
    border-radius: 100%;
    display: inline-block;
    height: 15px;
    margin: 2px;
    width: 15px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-pulse-sync
{
    33%
    {
                transform: translateY(10px);
        -webkit-transform: translateY(10px);
    }

    66%
    {
                transform: translateY(-10px);
        -webkit-transform: translateY(-10px);
    }

    100%
    {
                transform: translateY(0);
        -webkit-transform: translateY(0);
    }
}

@keyframes ball-pulse-sync
{
    33%
    {
                transform: translateY(10px);
        -webkit-transform: translateY(10px);
    }

    66%
    {
                transform: translateY(-10px);
        -webkit-transform: translateY(-10px);
    }

    100%
    {
                transform: translateY(0);
        -webkit-transform: translateY(0);
    }
}

.ball-pulse-sync > div:nth-child(0)
{
            animation: ball-pulse-sync .6s -.21s infinite ease-in-out;
    -webkit-animation: ball-pulse-sync .6s -.21s infinite ease-in-out;
}
.ball-pulse-sync > div:nth-child(1)
{
            animation: ball-pulse-sync .6s -.14s infinite ease-in-out;
    -webkit-animation: ball-pulse-sync .6s -.14s infinite ease-in-out;
}
.ball-pulse-sync > div:nth-child(2)
{
            animation: ball-pulse-sync .6s -.07s infinite ease-in-out;
    -webkit-animation: ball-pulse-sync .6s -.07s infinite ease-in-out;
}
.ball-pulse-sync > div:nth-child(3)
{
            animation: ball-pulse-sync .6s 0s infinite ease-in-out;
    -webkit-animation: ball-pulse-sync .6s 0s infinite ease-in-out;
}
.ball-pulse-sync > div
{
    background-color: #fff;
    border-radius: 100%;
    display: inline-block;
    height: 15px;
    margin: 2px;
    width: 15px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-scale
{
    0%
    {
                transform: scale(0);
        -webkit-transform: scale(0);
    }

    100%
    {
        opacity: 0;
                transform: scale(1);
        -webkit-transform: scale(1);
    }
}

@keyframes ball-scale
{
    0%
    {
                transform: scale(0);
        -webkit-transform: scale(0);
    }

    100%
    {
        opacity: 0;
                transform: scale(1);
        -webkit-transform: scale(1);
    }
}

.ball-scale > div
{
            animation: ball-scale 1s 0s ease-in-out infinite;
    -webkit-animation: ball-scale 1s 0s ease-in-out infinite;
    background-color: #fff;
    border-radius: 100%;
    display: inline-block;
    height: 15px;
    height: 60px;
    margin: 2px;
    width: 15px;
    width: 60px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes rotate
{
    0%
    {
                transform: rotate(0deg);
        -webkit-transform: rotate(0deg);
    }

    50%
    {
                transform: rotate(180deg);
        -webkit-transform: rotate(180deg);
    }

    100%
    {
                transform: rotate(360deg);
        -webkit-transform: rotate(360deg);
    }
}

@keyframes rotate
{
    0%
    {
                transform: rotate(0deg);
        -webkit-transform: rotate(0deg);
    }

    50%
    {
                transform: rotate(180deg);
        -webkit-transform: rotate(180deg);
    }

    100%
    {
                transform: rotate(360deg);
        -webkit-transform: rotate(360deg);
    }
}

.ball-rotate
{
    position: relative;
}
.ball-rotate > div
{
    background-color: #fff;
    border-radius: 100%;
    height: 15px;
    margin: 2px;
    position: relative;
    width: 15px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-rotate > div:first-child
{
            animation: rotate 1s 0s cubic-bezier(.7, -.13, .22, .86) infinite;
    -webkit-animation: rotate 1s 0s cubic-bezier(.7, -.13, .22, .86) infinite;
}
.ball-rotate > div:before,
.ball-rotate > div:after
{
    background-color: #fff;
    border-radius: 100%;
    content: '';
    height: 15px;
    margin: 2px;
    opacity: .8;
    position: absolute;
    width: 15px;
}
.ball-rotate > div:before
{
    left: -28px;
    top: 0;
}
.ball-rotate > div:after
{
    left: 25px;
    top: 0;
}

@keyframes rotate
{
    0%
    {
                transform: rotate(0deg) scale(1);
        -webkit-transform: rotate(0deg) scale(1);
    }

    50%
    {
                transform: rotate(180deg) scale(.6);
        -webkit-transform: rotate(180deg) scale(.6);
    }

    100%
    {
                transform: rotate(360deg) scale(1);
        -webkit-transform: rotate(360deg) scale(1);
    }
}

.ball-clip-rotate > div
{
            animation: rotate .75s 0s linear infinite;
    -webkit-animation: rotate .75s 0s linear infinite;
    background: transparent !important;
    background-color: #fff;
    border: 2px solid #fff;
    border-bottom-color: transparent;
    border-radius: 100%;
    display: inline-block;
    height: 15px;
    height: 25px;
    margin: 2px;
    width: 15px;
    width: 25px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

@keyframes rotate
{
    0%
    {
                transform: rotate(0deg) scale(1);
        -webkit-transform: rotate(0deg) scale(1);
    }

    50%
    {
                transform: rotate(180deg) scale(.6);
        -webkit-transform: rotate(180deg) scale(.6);
    }

    100%
    {
                transform: rotate(360deg) scale(1);
        -webkit-transform: rotate(360deg) scale(1);
    }
}

@keyframes scale
{
    30%
    {
                transform: scale(.3);
        -webkit-transform: scale(.3);
    }

    100%
    {
                transform: scale(1);
        -webkit-transform: scale(1);
    }
}

.ball-clip-rotate-pulse
{
    position: relative;
            transform: translateY(-15px);
        -ms-transform: translateY(-15px);
    -webkit-transform: translateY(-15px);
}
.ball-clip-rotate-pulse > div
{
    border-radius: 100%;
    left: 0;
    position: absolute;
    top: 0;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-clip-rotate-pulse > div:first-child
{
            animation: scale 1s 0s cubic-bezier(.09, .57, .49, .9) infinite;
    -webkit-animation: scale 1s 0s cubic-bezier(.09, .57, .49, .9) infinite;
    background: #fff;
    height: 16px;
    left: -7px;
    top: 7px;
    width: 16px;
}
.ball-clip-rotate-pulse > div:last-child
{
            animation: rotate 1s 0s cubic-bezier(.09, .57, .49, .9) infinite;
    -webkit-animation: rotate 1s 0s cubic-bezier(.09, .57, .49, .9) infinite;
            animation-duration: 1s;
    -webkit-animation-duration: 1s;
    background: transparent;
    border: 2px solid #fff;
    border: 2px solid;
    border-color: #fff transparent #fff transparent;
    height: 30px;
    left: -16px;
    position: absolute;
    top: -2px;
    width: 30px;
}

@keyframes rotate
{
    0%
    {
                transform: rotate(0deg) scale(1);
        -webkit-transform: rotate(0deg) scale(1);
    }

    50%
    {
                transform: rotate(180deg) scale(.6);
        -webkit-transform: rotate(180deg) scale(.6);
    }

    100%
    {
                transform: rotate(360deg) scale(1);
        -webkit-transform: rotate(360deg) scale(1);
    }
}

.ball-clip-rotate-multiple
{
    position: relative;
}
.ball-clip-rotate-multiple > div
{
            animation: rotate 1s 0s ease-in-out infinite;
    -webkit-animation: rotate 1s 0s ease-in-out infinite;
    border: 2px solid #fff;
    border-bottom-color: transparent;
    border-radius: 100%;
    border-top-color: transparent;
    height: 35px;
    left: -20px;
    position: absolute;
    top: -20px;
    width: 35px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-clip-rotate-multiple > div:last-child
{
            animation-direction: reverse;
    -webkit-animation-direction: reverse;
            animation-duration: .5s;
    -webkit-animation-duration: .5s;
    border-color: #fff transparent #fff transparent;
    display: inline-block;
    height: 15px;
    left: -10px;
    top: -10px;
    width: 15px;
}

@-webkit-keyframes ball-scale-ripple
{
    0%
    {
        opacity: 1;
                transform: scale(.1);
        -webkit-transform: scale(.1);
    }

    70%
    {
        opacity: .7;
                transform: scale(1);
        -webkit-transform: scale(1);
    }

    100%
    {
        opacity: .0;
    }
}

@keyframes ball-scale-ripple
{
    0%
    {
        opacity: 1;
                transform: scale(.1);
        -webkit-transform: scale(.1);
    }

    70%
    {
        opacity: .7;
                transform: scale(1);
        -webkit-transform: scale(1);
    }

    100%
    {
        opacity: .0;
    }
}

.ball-scale-ripple > div
{
            animation: ball-scale-ripple 1s 0s infinite cubic-bezier(.21, .53, .56, .8);
    -webkit-animation: ball-scale-ripple 1s 0s infinite cubic-bezier(.21, .53, .56, .8);
    border: 2px solid #fff;
    border-radius: 100%;
    height: 50px;
    width: 50px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-scale-ripple-multiple
{
    0%
    {
        opacity: 1;
                transform: scale(.1);
        -webkit-transform: scale(.1);
    }

    70%
    {
        opacity: .7;
                transform: scale(1);
        -webkit-transform: scale(1);
    }

    100%
    {
        opacity: .0;
    }
}

@keyframes ball-scale-ripple-multiple
{
    0%
    {
        opacity: 1;
                transform: scale(.1);
        -webkit-transform: scale(.1);
    }

    70%
    {
        opacity: .7;
                transform: scale(1);
        -webkit-transform: scale(1);
    }

    100%
    {
        opacity: .0;
    }
}

.ball-scale-ripple-multiple
{
    position: relative;
            transform: translateY(-25px);
        -ms-transform: translateY(-25px);
    -webkit-transform: translateY(-25px);
}
.ball-scale-ripple-multiple > div:nth-child(0)
{
            animation-delay: -.8s;
    -webkit-animation-delay: -.8s;
}
.ball-scale-ripple-multiple > div:nth-child(1)
{
            animation-delay: -.6s;
    -webkit-animation-delay: -.6s;
}
.ball-scale-ripple-multiple > div:nth-child(2)
{
            animation-delay: -.4s;
    -webkit-animation-delay: -.4s;
}
.ball-scale-ripple-multiple > div:nth-child(3)
{
            animation-delay: -.2s;
    -webkit-animation-delay: -.2s;
}
.ball-scale-ripple-multiple > div
{
            animation: ball-scale-ripple-multiple 1.25s 0s infinite cubic-bezier(.21, .53, .56, .8);
    -webkit-animation: ball-scale-ripple-multiple 1.25s 0s infinite cubic-bezier(.21, .53, .56, .8);
    border: 2px solid #fff;
    border-radius: 100%;
    height: 50px;
    left: -26px;
    position: absolute;
    top: -2px;
    width: 50px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-beat
{
    50%
    {
        opacity: .2;
                transform: scale(.75);
        -webkit-transform: scale(.75);
    }

    100%
    {
        opacity: 1;
                transform: scale(1);
        -webkit-transform: scale(1);
    }
}

@keyframes ball-beat
{
    50%
    {
        opacity: .2;
                transform: scale(.75);
        -webkit-transform: scale(.75);
    }

    100%
    {
        opacity: 1;
                transform: scale(1);
        -webkit-transform: scale(1);
    }
}

.ball-beat > div
{
            animation: ball-beat .7s 0s infinite linear;
    -webkit-animation: ball-beat .7s 0s infinite linear;
    background-color: #fff;
    border-radius: 100%;
    display: inline-block;
    height: 15px;
    margin: 2px;
    width: 15px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-beat > div:nth-child(2n-1)
{
            animation-delay: -.35s !important;
    -webkit-animation-delay: -.35s !important;
}

@-webkit-keyframes ball-scale-multiple
{
    0%
    {
        opacity: 0;
                transform: scale(0);
        -webkit-transform: scale(0);
    }

    5%
    {
        opacity: 1;
    }

    100%
    {
        opacity: 0;
                transform: scale(1);
        -webkit-transform: scale(1);
    }
}

@keyframes ball-scale-multiple
{
    0%
    {
        opacity: 0;
                transform: scale(0);
        -webkit-transform: scale(0);
    }

    5%
    {
        opacity: 1;
    }

    100%
    {
        opacity: 0;
                transform: scale(1);
        -webkit-transform: scale(1);
    }
}

.ball-scale-multiple
{
    position: relative;
            transform: translateY(-30px);
        -ms-transform: translateY(-30px);
    -webkit-transform: translateY(-30px);
}
.ball-scale-multiple > div:nth-child(2)
{
            animation-delay: -.4s;
    -webkit-animation-delay: -.4s;
}
.ball-scale-multiple > div:nth-child(3)
{
            animation-delay: -.2s;
    -webkit-animation-delay: -.2s;
}
.ball-scale-multiple > div
{
            animation: ball-scale-multiple 1s 0s linear infinite;
    -webkit-animation: ball-scale-multiple 1s 0s linear infinite;
    background-color: #fff;
    border-radius: 100%;
    height: 15px;
    height: 60px;
    left: -30px;
    margin: 2px;
    margin: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    width: 15px;
    width: 60px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-triangle-path-1
{
    33%
    {
                transform: translate(25px, -50px);
        -webkit-transform: translate(25px, -50px);
    }

    66%
    {
                transform: translate(50px, 0px);
        -webkit-transform: translate(50px, 0px);
    }

    100%
    {
                transform: translate(0px, 0px);
        -webkit-transform: translate(0px, 0px);
    }
}

@keyframes ball-triangle-path-1
{
    33%
    {
                transform: translate(25px, -50px);
        -webkit-transform: translate(25px, -50px);
    }

    66%
    {
                transform: translate(50px, 0px);
        -webkit-transform: translate(50px, 0px);
    }

    100%
    {
                transform: translate(0px, 0px);
        -webkit-transform: translate(0px, 0px);
    }
}

@-webkit-keyframes ball-triangle-path-2
{
    33%
    {
                transform: translate(25px, 50px);
        -webkit-transform: translate(25px, 50px);
    }

    66%
    {
                transform: translate(-25px, 50px);
        -webkit-transform: translate(-25px, 50px);
    }

    100%
    {
                transform: translate(0px, 0px);
        -webkit-transform: translate(0px, 0px);
    }
}

@keyframes ball-triangle-path-2
{
    33%
    {
                transform: translate(25px, 50px);
        -webkit-transform: translate(25px, 50px);
    }

    66%
    {
                transform: translate(-25px, 50px);
        -webkit-transform: translate(-25px, 50px);
    }

    100%
    {
                transform: translate(0px, 0px);
        -webkit-transform: translate(0px, 0px);
    }
}

@-webkit-keyframes ball-triangle-path-3
{
    33%
    {
                transform: translate(-50px, 0px);
        -webkit-transform: translate(-50px, 0px);
    }

    66%
    {
                transform: translate(-25px, -50px);
        -webkit-transform: translate(-25px, -50px);
    }

    100%
    {
                transform: translate(0px, 0px);
        -webkit-transform: translate(0px, 0px);
    }
}

@keyframes ball-triangle-path-3
{
    33%
    {
                transform: translate(-50px, 0px);
        -webkit-transform: translate(-50px, 0px);
    }

    66%
    {
                transform: translate(-25px, -50px);
        -webkit-transform: translate(-25px, -50px);
    }

    100%
    {
                transform: translate(0px, 0px);
        -webkit-transform: translate(0px, 0px);
    }
}

.ball-triangle-path
{
    position: relative;
            transform: translate(-29.994px, -37.50938px);
        -ms-transform: translate(-29.994px, -37.50938px);
    -webkit-transform: translate(-29.994px, -37.50938px);
}
.ball-triangle-path > div:nth-child(1)
{
            animation-delay: 0;
    -webkit-animation-delay: 0;
            animation-duration: 2s;
    -webkit-animation-duration: 2s;
            animation-iteration-count: infinite;
    -webkit-animation-iteration-count: infinite;
            animation-name: ball-triangle-path-1;
    -webkit-animation-name: ball-triangle-path-1;
            animation-timing-function: ease-in-out;
    -webkit-animation-timing-function: ease-in-out;
}
.ball-triangle-path > div:nth-child(2)
{
            animation-delay: 0;
    -webkit-animation-delay: 0;
            animation-duration: 2s;
    -webkit-animation-duration: 2s;
            animation-iteration-count: infinite;
    -webkit-animation-iteration-count: infinite;
            animation-name: ball-triangle-path-2;
    -webkit-animation-name: ball-triangle-path-2;
            animation-timing-function: ease-in-out;
    -webkit-animation-timing-function: ease-in-out;
}
.ball-triangle-path > div:nth-child(3)
{
            animation-delay: 0;
    -webkit-animation-delay: 0;
            animation-duration: 2s;
    -webkit-animation-duration: 2s;
            animation-iteration-count: infinite;
    -webkit-animation-iteration-count: infinite;
            animation-name: ball-triangle-path-3;
    -webkit-animation-name: ball-triangle-path-3;
            animation-timing-function: ease-in-out;
    -webkit-animation-timing-function: ease-in-out;
}
.ball-triangle-path > div
{
    border: 1px solid #fff;
    border-radius: 100%;
    height: 10px;
    position: absolute;
    width: 10px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-triangle-path > div:nth-of-type(1)
{
    top: 50px;
}
.ball-triangle-path > div:nth-of-type(2)
{
    left: 25px;
}
.ball-triangle-path > div:nth-of-type(3)
{
    left: 50px;
    top: 50px;
}

@-webkit-keyframes ball-pulse-rise-even
{
    0%
    {
                transform: scale(1.1);
        -webkit-transform: scale(1.1);
    }

    25%
    {
                transform: translateY(-30px);
        -webkit-transform: translateY(-30px);
    }

    50%
    {
                transform: scale(.4);
        -webkit-transform: scale(.4);
    }

    75%
    {
                transform: translateY(30px);
        -webkit-transform: translateY(30px);
    }

    100%
    {
                transform: translateY(0);
                transform: scale(1);
        -webkit-transform: translateY(0);
        -webkit-transform: scale(1);
    }
}

@keyframes ball-pulse-rise-even
{
    0%
    {
                transform: scale(1.1);
        -webkit-transform: scale(1.1);
    }

    25%
    {
                transform: translateY(-30px);
        -webkit-transform: translateY(-30px);
    }

    50%
    {
                transform: scale(.4);
        -webkit-transform: scale(.4);
    }

    75%
    {
                transform: translateY(30px);
        -webkit-transform: translateY(30px);
    }

    100%
    {
                transform: translateY(0);
                transform: scale(1);
        -webkit-transform: translateY(0);
        -webkit-transform: scale(1);
    }
}

@-webkit-keyframes ball-pulse-rise-odd
{
    0%
    {
                transform: scale(.4);
        -webkit-transform: scale(.4);
    }

    25%
    {
                transform: translateY(30px);
        -webkit-transform: translateY(30px);
    }

    50%
    {
                transform: scale(1.1);
        -webkit-transform: scale(1.1);
    }

    75%
    {
                transform: translateY(-30px);
        -webkit-transform: translateY(-30px);
    }

    100%
    {
                transform: translateY(0);
                transform: scale(.75);
        -webkit-transform: translateY(0);
        -webkit-transform: scale(.75);
    }
}

@keyframes ball-pulse-rise-odd
{
    0%
    {
                transform: scale(.4);
        -webkit-transform: scale(.4);
    }

    25%
    {
                transform: translateY(30px);
        -webkit-transform: translateY(30px);
    }

    50%
    {
                transform: scale(1.1);
        -webkit-transform: scale(1.1);
    }

    75%
    {
                transform: translateY(-30px);
        -webkit-transform: translateY(-30px);
    }

    100%
    {
                transform: translateY(0);
                transform: scale(.75);
        -webkit-transform: translateY(0);
        -webkit-transform: scale(.75);
    }
}

.ball-pulse-rise > div
{
            animation-delay: 0;
    -webkit-animation-delay: 0;
            animation-duration: 1s;
    -webkit-animation-duration: 1s;
            animation-iteration-count: infinite;
    -webkit-animation-iteration-count: infinite;
            animation-timing-function: cubic-bezier(.15, .46, .9, .6);
    -webkit-animation-timing-function: cubic-bezier(.15, .46, .9, .6);
    background-color: #fff;
    border-radius: 100%;
    display: inline-block;
    height: 15px;
    margin: 2px;
    width: 15px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-pulse-rise > div:nth-child(2n)
{
            animation-name: ball-pulse-rise-even;
    -webkit-animation-name: ball-pulse-rise-even;
}
.ball-pulse-rise > div:nth-child(2n-1)
{
            animation-name: ball-pulse-rise-odd;
    -webkit-animation-name: ball-pulse-rise-odd;
}

@-webkit-keyframes ball-grid-beat
{
    50%
    {
        opacity: .7;
    }

    100%
    {
        opacity: 1;
    }
}

@keyframes ball-grid-beat
{
    50%
    {
        opacity: .7;
    }

    100%
    {
        opacity: 1;
    }
}

.ball-grid-beat
{
    width: 57px;
}
.ball-grid-beat > div:nth-child(1)
{
            animation-delay: -.07s;
    -webkit-animation-delay: -.07s;
            animation-duration: 1.53s;
    -webkit-animation-duration: 1.53s;
}
.ball-grid-beat > div:nth-child(2)
{
            animation-delay: .72s;
    -webkit-animation-delay: .72s;
            animation-duration: .94s;
    -webkit-animation-duration: .94s;
}
.ball-grid-beat > div:nth-child(3)
{
            animation-delay: .11s;
    -webkit-animation-delay: .11s;
            animation-duration: 1.25s;
    -webkit-animation-duration: 1.25s;
}
.ball-grid-beat > div:nth-child(4)
{
            animation-delay: .13s;
    -webkit-animation-delay: .13s;
            animation-duration: 1.01s;
    -webkit-animation-duration: 1.01s;
}
.ball-grid-beat > div:nth-child(5)
{
            animation-delay: .1s;
    -webkit-animation-delay: .1s;
            animation-duration: 1.2s;
    -webkit-animation-duration: 1.2s;
}
.ball-grid-beat > div:nth-child(6)
{
            animation-delay: .18s;
    -webkit-animation-delay: .18s;
            animation-duration: .97s;
    -webkit-animation-duration: .97s;
}
.ball-grid-beat > div:nth-child(7)
{
            animation-delay: -.09s;
    -webkit-animation-delay: -.09s;
            animation-duration: .67s;
    -webkit-animation-duration: .67s;
}
.ball-grid-beat > div:nth-child(8)
{
            animation-delay: .42s;
    -webkit-animation-delay: .42s;
            animation-duration: .92s;
    -webkit-animation-duration: .92s;
}
.ball-grid-beat > div:nth-child(9)
{
            animation-delay: .52s;
    -webkit-animation-delay: .52s;
            animation-duration: 1.43s;
    -webkit-animation-duration: 1.43s;
}
.ball-grid-beat > div
{
            animation-delay: 0;
    -webkit-animation-delay: 0;
            animation-iteration-count: infinite;
    -webkit-animation-iteration-count: infinite;
            animation-name: ball-grid-beat;
    -webkit-animation-name: ball-grid-beat;
    background-color: #fff;
    border-radius: 100%;
    display: inline-block;
    float: left;
    height: 15px;
    margin: 2px;
    width: 15px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-grid-pulse
{
    0%
    {
                transform: scale(1);
        -webkit-transform: scale(1);
    }

    50%
    {
        opacity: .7;
                transform: scale(.5);
        -webkit-transform: scale(.5);
    }

    100%
    {
        opacity: 1;
                transform: scale(1);
        -webkit-transform: scale(1);
    }
}

@keyframes ball-grid-pulse
{
    0%
    {
                transform: scale(1);
        -webkit-transform: scale(1);
    }

    50%
    {
        opacity: .7;
                transform: scale(.5);
        -webkit-transform: scale(.5);
    }

    100%
    {
        opacity: 1;
                transform: scale(1);
        -webkit-transform: scale(1);
    }
}

.ball-grid-pulse
{
    width: 57px;
}
.ball-grid-pulse > div:nth-child(1)
{
            animation-delay: .73s;
    -webkit-animation-delay: .73s;
            animation-duration: 1.3s;
    -webkit-animation-duration: 1.3s;
}
.ball-grid-pulse > div:nth-child(2)
{
            animation-delay: .32s;
    -webkit-animation-delay: .32s;
            animation-duration: 1.3s;
    -webkit-animation-duration: 1.3s;
}
.ball-grid-pulse > div:nth-child(3)
{
            animation-delay: .71s;
    -webkit-animation-delay: .71s;
            animation-duration: .88s;
    -webkit-animation-duration: .88s;
}
.ball-grid-pulse > div:nth-child(4)
{
            animation-delay: .62s;
    -webkit-animation-delay: .62s;
            animation-duration: 1.06s;
    -webkit-animation-duration: 1.06s;
}
.ball-grid-pulse > div:nth-child(5)
{
            animation-delay: .31s;
    -webkit-animation-delay: .31s;
            animation-duration: .62s;
    -webkit-animation-duration: .62s;
}
.ball-grid-pulse > div:nth-child(6)
{
            animation-delay: -.14s;
    -webkit-animation-delay: -.14s;
            animation-duration: 1.48s;
    -webkit-animation-duration: 1.48s;
}
.ball-grid-pulse > div:nth-child(7)
{
            animation-delay: -.1s;
    -webkit-animation-delay: -.1s;
            animation-duration: 1.47s;
    -webkit-animation-duration: 1.47s;
}
.ball-grid-pulse > div:nth-child(8)
{
            animation-delay: .4s;
    -webkit-animation-delay: .4s;
            animation-duration: 1.49s;
    -webkit-animation-duration: 1.49s;
}
.ball-grid-pulse > div:nth-child(9)
{
            animation-delay: .73s;
    -webkit-animation-delay: .73s;
            animation-duration: .7s;
    -webkit-animation-duration: .7s;
}
.ball-grid-pulse > div
{
            animation-delay: 0;
    -webkit-animation-delay: 0;
            animation-iteration-count: infinite;
    -webkit-animation-iteration-count: infinite;
            animation-name: ball-grid-pulse;
    -webkit-animation-name: ball-grid-pulse;
    background-color: #fff;
    border-radius: 100%;
    display: inline-block;
    float: left;
    height: 15px;
    margin: 2px;
    width: 15px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-spin-fade-loader
{
    50%
    {
        opacity: .3;
                transform: scale(.4);
        -webkit-transform: scale(.4);
    }

    100%
    {
        opacity: 1;
                transform: scale(1);
        -webkit-transform: scale(1);
    }
}

@keyframes ball-spin-fade-loader
{
    50%
    {
        opacity: .3;
                transform: scale(.4);
        -webkit-transform: scale(.4);
    }

    100%
    {
        opacity: 1;
                transform: scale(1);
        -webkit-transform: scale(1);
    }
}

.ball-spin-fade-loader
{
    left: -10px;
    position: relative;
    top: -10px;
}
.ball-spin-fade-loader > div:nth-child(1)
{
            animation: ball-spin-fade-loader 1s -.96s infinite linear;
    -webkit-animation: ball-spin-fade-loader 1s -.96s infinite linear;
    left: 0;
    top: 25px;
}
.ball-spin-fade-loader > div:nth-child(2)
{
            animation: ball-spin-fade-loader 1s -.84s infinite linear;
    -webkit-animation: ball-spin-fade-loader 1s -.84s infinite linear;
    left: 17.04545px;
    top: 17.04545px;
}
.ball-spin-fade-loader > div:nth-child(3)
{
            animation: ball-spin-fade-loader 1s -.72s infinite linear;
    -webkit-animation: ball-spin-fade-loader 1s -.72s infinite linear;
    left: 25px;
    top: 0;
}
.ball-spin-fade-loader > div:nth-child(4)
{
            animation: ball-spin-fade-loader 1s -.6s infinite linear;
    -webkit-animation: ball-spin-fade-loader 1s -.6s infinite linear;
    left: 17.04545px;
    top: -17.04545px;
}
.ball-spin-fade-loader > div:nth-child(5)
{
            animation: ball-spin-fade-loader 1s -.48s infinite linear;
    -webkit-animation: ball-spin-fade-loader 1s -.48s infinite linear;
    left: 0;
    top: -25px;
}
.ball-spin-fade-loader > div:nth-child(6)
{
            animation: ball-spin-fade-loader 1s -.36s infinite linear;
    -webkit-animation: ball-spin-fade-loader 1s -.36s infinite linear;
    left: -17.04545px;
    top: -17.04545px;
}
.ball-spin-fade-loader > div:nth-child(7)
{
            animation: ball-spin-fade-loader 1s -.24s infinite linear;
    -webkit-animation: ball-spin-fade-loader 1s -.24s infinite linear;
    left: -25px;
    top: 0;
}
.ball-spin-fade-loader > div:nth-child(8)
{
            animation: ball-spin-fade-loader 1s -.12s infinite linear;
    -webkit-animation: ball-spin-fade-loader 1s -.12s infinite linear;
    left: -17.04545px;
    top: 17.04545px;
}
.ball-spin-fade-loader > div
{
    background-color: #fff;
    border-radius: 100%;
    height: 15px;
    margin: 2px;
    position: absolute;
    width: 15px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-spin-loader
{
    75%
    {
        opacity: .2;
    }

    100%
    {
        opacity: 1;
    }
}

@keyframes ball-spin-loader
{
    75%
    {
        opacity: .2;
    }

    100%
    {
        opacity: 1;
    }
}

.ball-spin-loader
{
    position: relative;
}
.ball-spin-loader > span:nth-child(1)
{
            animation: ball-spin-loader 2s .9s infinite linear;
    -webkit-animation: ball-spin-loader 2s .9s infinite linear;
    left: 0;
    top: 45px;
}
.ball-spin-loader > span:nth-child(2)
{
            animation: ball-spin-loader 2s 1.8s infinite linear;
    -webkit-animation: ball-spin-loader 2s 1.8s infinite linear;
    left: 30.68182px;
    top: 30.68182px;
}
.ball-spin-loader > span:nth-child(3)
{
            animation: ball-spin-loader 2s 2.7s infinite linear;
    -webkit-animation: ball-spin-loader 2s 2.7s infinite linear;
    left: 45px;
    top: 0;
}
.ball-spin-loader > span:nth-child(4)
{
            animation: ball-spin-loader 2s 3.6s infinite linear;
    -webkit-animation: ball-spin-loader 2s 3.6s infinite linear;
    left: 30.68182px;
    top: -30.68182px;
}
.ball-spin-loader > span:nth-child(5)
{
            animation: ball-spin-loader 2s 4.5s infinite linear;
    -webkit-animation: ball-spin-loader 2s 4.5s infinite linear;
    left: 0;
    top: -45px;
}
.ball-spin-loader > span:nth-child(6)
{
            animation: ball-spin-loader 2s 5.4s infinite linear;
    -webkit-animation: ball-spin-loader 2s 5.4s infinite linear;
    left: -30.68182px;
    top: -30.68182px;
}
.ball-spin-loader > span:nth-child(7)
{
            animation: ball-spin-loader 2s 6.3s infinite linear;
    -webkit-animation: ball-spin-loader 2s 6.3s infinite linear;
    left: -45px;
    top: 0;
}
.ball-spin-loader > span:nth-child(8)
{
            animation: ball-spin-loader 2s 7.2s infinite linear;
    -webkit-animation: ball-spin-loader 2s 7.2s infinite linear;
    left: -30.68182px;
    top: 30.68182px;
}
.ball-spin-loader > div
{
    background: green;
    border-radius: 100%;
    height: 15px;
    position: absolute;
    width: 15px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-zig
{
    33%
    {
                transform: translate(-15px, -30px);
        -webkit-transform: translate(-15px, -30px);
    }

    66%
    {
                transform: translate(15px, -30px);
        -webkit-transform: translate(15px, -30px);
    }

    100%
    {
                transform: translate(0, 0);
        -webkit-transform: translate(0, 0);
    }
}

@keyframes ball-zig
{
    33%
    {
                transform: translate(-15px, -30px);
        -webkit-transform: translate(-15px, -30px);
    }

    66%
    {
                transform: translate(15px, -30px);
        -webkit-transform: translate(15px, -30px);
    }

    100%
    {
                transform: translate(0, 0);
        -webkit-transform: translate(0, 0);
    }
}

@-webkit-keyframes ball-zag
{
    33%
    {
                transform: translate(15px, 30px);
        -webkit-transform: translate(15px, 30px);
    }

    66%
    {
                transform: translate(-15px, 30px);
        -webkit-transform: translate(-15px, 30px);
    }

    100%
    {
                transform: translate(0, 0);
        -webkit-transform: translate(0, 0);
    }
}

@keyframes ball-zag
{
    33%
    {
                transform: translate(15px, 30px);
        -webkit-transform: translate(15px, 30px);
    }

    66%
    {
                transform: translate(-15px, 30px);
        -webkit-transform: translate(-15px, 30px);
    }

    100%
    {
                transform: translate(0, 0);
        -webkit-transform: translate(0, 0);
    }
}

.ball-zig-zag
{
    position: relative;
            transform: translate(-15px, -15px);
        -ms-transform: translate(-15px, -15px);
    -webkit-transform: translate(-15px, -15px);
}
.ball-zig-zag > div
{
    background-color: #fff;
    border-radius: 100%;
    height: 15px;
    left: -7px;
    margin: 2px;
    margin-left: 15px;
    position: absolute;
    top: 4px;
    width: 15px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-zig-zag > div:first-child
{
            animation: ball-zig .7s 0s infinite linear;
    -webkit-animation: ball-zig .7s 0s infinite linear;
}
.ball-zig-zag > div:last-child
{
            animation: ball-zag .7s 0s infinite linear;
    -webkit-animation: ball-zag .7s 0s infinite linear;
}

@-webkit-keyframes ball-zig-deflect
{
    17%
    {
                transform: translate(-15px, -30px);
        -webkit-transform: translate(-15px, -30px);
    }

    34%
    {
                transform: translate(15px, -30px);
        -webkit-transform: translate(15px, -30px);
    }

    50%
    {
                transform: translate(0, 0);
        -webkit-transform: translate(0, 0);
    }

    67%
    {
                transform: translate(15px, -30px);
        -webkit-transform: translate(15px, -30px);
    }

    84%
    {
                transform: translate(-15px, -30px);
        -webkit-transform: translate(-15px, -30px);
    }

    100%
    {
                transform: translate(0, 0);
        -webkit-transform: translate(0, 0);
    }
}

@keyframes ball-zig-deflect
{
    17%
    {
                transform: translate(-15px, -30px);
        -webkit-transform: translate(-15px, -30px);
    }

    34%
    {
                transform: translate(15px, -30px);
        -webkit-transform: translate(15px, -30px);
    }

    50%
    {
                transform: translate(0, 0);
        -webkit-transform: translate(0, 0);
    }

    67%
    {
                transform: translate(15px, -30px);
        -webkit-transform: translate(15px, -30px);
    }

    84%
    {
                transform: translate(-15px, -30px);
        -webkit-transform: translate(-15px, -30px);
    }

    100%
    {
                transform: translate(0, 0);
        -webkit-transform: translate(0, 0);
    }
}

@-webkit-keyframes ball-zag-deflect
{
    17%
    {
                transform: translate(15px, 30px);
        -webkit-transform: translate(15px, 30px);
    }

    34%
    {
                transform: translate(-15px, 30px);
        -webkit-transform: translate(-15px, 30px);
    }

    50%
    {
                transform: translate(0, 0);
        -webkit-transform: translate(0, 0);
    }

    67%
    {
                transform: translate(-15px, 30px);
        -webkit-transform: translate(-15px, 30px);
    }

    84%
    {
                transform: translate(15px, 30px);
        -webkit-transform: translate(15px, 30px);
    }

    100%
    {
                transform: translate(0, 0);
        -webkit-transform: translate(0, 0);
    }
}

@keyframes ball-zag-deflect
{
    17%
    {
                transform: translate(15px, 30px);
        -webkit-transform: translate(15px, 30px);
    }

    34%
    {
                transform: translate(-15px, 30px);
        -webkit-transform: translate(-15px, 30px);
    }

    50%
    {
                transform: translate(0, 0);
        -webkit-transform: translate(0, 0);
    }

    67%
    {
                transform: translate(-15px, 30px);
        -webkit-transform: translate(-15px, 30px);
    }

    84%
    {
                transform: translate(15px, 30px);
        -webkit-transform: translate(15px, 30px);
    }

    100%
    {
                transform: translate(0, 0);
        -webkit-transform: translate(0, 0);
    }
}

.ball-zig-zag-deflect
{
    position: relative;
            transform: translate(-15px, -15px);
        -ms-transform: translate(-15px, -15px);
    -webkit-transform: translate(-15px, -15px);
}
.ball-zig-zag-deflect > div
{
    background-color: #fff;
    border-radius: 100%;
    height: 15px;
    left: -7px;
    margin: 2px;
    margin-left: 15px;
    position: absolute;
    top: 4px;
    width: 15px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-zig-zag-deflect > div:first-child
{
            animation: ball-zig-deflect 1.5s 0s infinite linear;
    -webkit-animation: ball-zig-deflect 1.5s 0s infinite linear;
}
.ball-zig-zag-deflect > div:last-child
{
            animation: ball-zag-deflect 1.5s 0s infinite linear;
    -webkit-animation: ball-zag-deflect 1.5s 0s infinite linear;
}

/**
 * Lines
 */
@-webkit-keyframes line-scale
{
    0%
    {
                transform: scaley(1);
        -webkit-transform: scaley(1);
    }

    50%
    {
                transform: scaley(.4);
        -webkit-transform: scaley(.4);
    }

    100%
    {
                transform: scaley(1);
        -webkit-transform: scaley(1);
    }
}
@keyframes line-scale
{
    0%
    {
                transform: scaley(1);
        -webkit-transform: scaley(1);
    }

    50%
    {
                transform: scaley(.4);
        -webkit-transform: scaley(.4);
    }

    100%
    {
                transform: scaley(1);
        -webkit-transform: scaley(1);
    }
}

.line-scale > div:nth-child(1)
{
            animation: line-scale 1s -.4s infinite cubic-bezier(.2, .68, .18, 1.08);
    -webkit-animation: line-scale 1s -.4s infinite cubic-bezier(.2, .68, .18, 1.08);
}
.line-scale > div:nth-child(2)
{
            animation: line-scale 1s -.3s infinite cubic-bezier(.2, .68, .18, 1.08);
    -webkit-animation: line-scale 1s -.3s infinite cubic-bezier(.2, .68, .18, 1.08);
}
.line-scale > div:nth-child(3)
{
            animation: line-scale 1s -.2s infinite cubic-bezier(.2, .68, .18, 1.08);
    -webkit-animation: line-scale 1s -.2s infinite cubic-bezier(.2, .68, .18, 1.08);
}
.line-scale > div:nth-child(4)
{
            animation: line-scale 1s -.1s infinite cubic-bezier(.2, .68, .18, 1.08);
    -webkit-animation: line-scale 1s -.1s infinite cubic-bezier(.2, .68, .18, 1.08);
}
.line-scale > div:nth-child(5)
{
            animation: line-scale 1s 0s infinite cubic-bezier(.2, .68, .18, 1.08);
    -webkit-animation: line-scale 1s 0s infinite cubic-bezier(.2, .68, .18, 1.08);
}
.line-scale > div
{
    background-color: #fff;
    border-radius: 2px;
    display: inline-block;
    height: 35px;
    margin: 2px;
    width: 4px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes line-scale-party
{
    0%
    {
                transform: scale(1);
        -webkit-transform: scale(1);
    }

    50%
    {
                transform: scale(.5);
        -webkit-transform: scale(.5);
    }

    100%
    {
                transform: scale(1);
        -webkit-transform: scale(1);
    }
}

@keyframes line-scale-party
{
    0%
    {
                transform: scale(1);
        -webkit-transform: scale(1);
    }

    50%
    {
                transform: scale(.5);
        -webkit-transform: scale(.5);
    }

    100%
    {
                transform: scale(1);
        -webkit-transform: scale(1);
    }
}

.line-scale-party > div:nth-child(1)
{
            animation-delay: .23s;
    -webkit-animation-delay: .23s;
            animation-duration: 1.1s;
    -webkit-animation-duration: 1.1s;
}
.line-scale-party > div:nth-child(2)
{
            animation-delay: .09s;
    -webkit-animation-delay: .09s;
            animation-duration: 1s;
    -webkit-animation-duration: 1s;
}
.line-scale-party > div:nth-child(3)
{
            animation-delay: .44s;
    -webkit-animation-delay: .44s;
            animation-duration: .65s;
    -webkit-animation-duration: .65s;
}
.line-scale-party > div:nth-child(4)
{
            animation-delay: -.12s;
    -webkit-animation-delay: -.12s;
            animation-duration: 1.01s;
    -webkit-animation-duration: 1.01s;
}
.line-scale-party > div
{
            animation-delay: 0;
    -webkit-animation-delay: 0;
            animation-iteration-count: infinite;
    -webkit-animation-iteration-count: infinite;
            animation-name: line-scale-party;
    -webkit-animation-name: line-scale-party;
    background-color: #fff;
    border-radius: 2px;
    display: inline-block;
    height: 35px;
    margin: 2px;
    width: 4px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes line-scale-pulse-out
{
    0%
    {
                transform: scaley(1);
        -webkit-transform: scaley(1);
    }

    50%
    {
                transform: scaley(.4);
        -webkit-transform: scaley(.4);
    }

    100%
    {
                transform: scaley(1);
        -webkit-transform: scaley(1);
    }
}

@keyframes line-scale-pulse-out
{
    0%
    {
                transform: scaley(1);
        -webkit-transform: scaley(1);
    }

    50%
    {
                transform: scaley(.4);
        -webkit-transform: scaley(.4);
    }

    100%
    {
                transform: scaley(1);
        -webkit-transform: scaley(1);
    }
}

.line-scale-pulse-out > div
{
            animation: line-scale-pulse-out .9s -.6s infinite cubic-bezier(.85, .25, .37, .85);
    -webkit-animation: line-scale-pulse-out .9s -.6s infinite cubic-bezier(.85, .25, .37, .85);
    background-color: #fff;
    border-radius: 2px;
    display: inline-block;
    height: 35px;
    margin: 2px;
    width: 4px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}
.line-scale-pulse-out > div:nth-child(2),
.line-scale-pulse-out > div:nth-child(4)
{
            animation-delay: -.4s !important;
    -webkit-animation-delay: -.4s !important;
}
.line-scale-pulse-out > div:nth-child(1),
.line-scale-pulse-out > div:nth-child(5)
{
            animation-delay: -.2s !important;
    -webkit-animation-delay: -.2s !important;
}

@-webkit-keyframes line-scale-pulse-out-rapid
{
    0%
    {
                transform: scaley(1);
        -webkit-transform: scaley(1);
    }

    80%
    {
                transform: scaley(.3);
        -webkit-transform: scaley(.3);
    }

    90%
    {
                transform: scaley(1);
        -webkit-transform: scaley(1);
    }
}

@keyframes line-scale-pulse-out-rapid
{
    0%
    {
                transform: scaley(1);
        -webkit-transform: scaley(1);
    }

    80%
    {
                transform: scaley(.3);
        -webkit-transform: scaley(.3);
    }

    90%
    {
                transform: scaley(1);
        -webkit-transform: scaley(1);
    }
}

.line-scale-pulse-out-rapid > div
{
            animation: line-scale-pulse-out-rapid .9s -.5s infinite cubic-bezier(.11, .49, .38, .78);
    -webkit-animation: line-scale-pulse-out-rapid .9s -.5s infinite cubic-bezier(.11, .49, .38, .78);
    background-color: #fff;
    border-radius: 2px;
    display: inline-block;
    height: 35px;
    margin: 2px;
    width: 4px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}
.line-scale-pulse-out-rapid > div:nth-child(2),
.line-scale-pulse-out-rapid > div:nth-child(4)
{
            animation-delay: -.25s !important;
    -webkit-animation-delay: -.25s !important;
}
.line-scale-pulse-out-rapid > div:nth-child(1),
.line-scale-pulse-out-rapid > div:nth-child(5)
{
            animation-delay: 0s !important;
    -webkit-animation-delay: 0s !important;
}

@-webkit-keyframes line-spin-fade-loader
{
    50%
    {
        opacity: .3;
    }

    100%
    {
        opacity: 1;
    }
}

@keyframes line-spin-fade-loader
{
    50%
    {
        opacity: .3;
    }

    100%
    {
        opacity: 1;
    }
}

.line-spin-fade-loader
{
    left: -4px;
    position: relative;
    top: -10px;
}
.line-spin-fade-loader > div:nth-child(1)
{
            animation: line-spin-fade-loader 1.2s -.84s infinite ease-in-out;
    -webkit-animation: line-spin-fade-loader 1.2s -.84s infinite ease-in-out;
    left: 0;
    top: 20px;
}
.line-spin-fade-loader > div:nth-child(2)
{
            animation: line-spin-fade-loader 1.2s -.72s infinite ease-in-out;
    -webkit-animation: line-spin-fade-loader 1.2s -.72s infinite ease-in-out;
    left: 13.63636px;
    top: 13.63636px;
            transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
}
.line-spin-fade-loader > div:nth-child(3)
{
            animation: line-spin-fade-loader 1.2s -.6s infinite ease-in-out;
    -webkit-animation: line-spin-fade-loader 1.2s -.6s infinite ease-in-out;
    left: 20px;
    top: 0;
            transform: rotate(90deg);
        -ms-transform: rotate(90deg);
    -webkit-transform: rotate(90deg);
}
.line-spin-fade-loader > div:nth-child(4)
{
            animation: line-spin-fade-loader 1.2s -.48s infinite ease-in-out;
    -webkit-animation: line-spin-fade-loader 1.2s -.48s infinite ease-in-out;
    left: 13.63636px;
    top: -13.63636px;
            transform: rotate(45deg);
        -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
}
.line-spin-fade-loader > div:nth-child(5)
{
            animation: line-spin-fade-loader 1.2s -.36s infinite ease-in-out;
    -webkit-animation: line-spin-fade-loader 1.2s -.36s infinite ease-in-out;
    left: 0;
    top: -20px;
}
.line-spin-fade-loader > div:nth-child(6)
{
            animation: line-spin-fade-loader 1.2s -.24s infinite ease-in-out;
    -webkit-animation: line-spin-fade-loader 1.2s -.24s infinite ease-in-out;
    left: -13.63636px;
    top: -13.63636px;
            transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
}
.line-spin-fade-loader > div:nth-child(7)
{
            animation: line-spin-fade-loader 1.2s -.12s infinite ease-in-out;
    -webkit-animation: line-spin-fade-loader 1.2s -.12s infinite ease-in-out;
    left: -20px;
    top: 0;
            transform: rotate(90deg);
        -ms-transform: rotate(90deg);
    -webkit-transform: rotate(90deg);
}
.line-spin-fade-loader > div:nth-child(8)
{
            animation: line-spin-fade-loader 1.2s 0s infinite ease-in-out;
    -webkit-animation: line-spin-fade-loader 1.2s 0s infinite ease-in-out;
    left: -13.63636px;
    top: 13.63636px;
            transform: rotate(45deg);
        -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
}
.line-spin-fade-loader > div
{
    background-color: #fff;
    border-radius: 2px;
    height: 35px;
    height: 15px;
    margin: 2px;
    position: absolute;
    width: 4px;
    width: 5px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

/**
 * Misc
 */
@-webkit-keyframes triangle-skew-spin
{
    25%
    {
                transform: perspective(100px) rotateX(180deg) rotateY(0);
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0);
    }

    50%
    {
                transform: perspective(100px) rotateX(180deg) rotateY(180deg);
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
    }

    75%
    {
                transform: perspective(100px) rotateX(0) rotateY(180deg);
        -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg);
    }

    100%
    {
                transform: perspective(100px) rotateX(0) rotateY(0);
        -webkit-transform: perspective(100px) rotateX(0) rotateY(0);
    }
}
@keyframes triangle-skew-spin
{
    25%
    {
                transform: perspective(100px) rotateX(180deg) rotateY(0);
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0);
    }

    50%
    {
                transform: perspective(100px) rotateX(180deg) rotateY(180deg);
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
    }

    75%
    {
                transform: perspective(100px) rotateX(0) rotateY(180deg);
        -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg);
    }

    100%
    {
                transform: perspective(100px) rotateX(0) rotateY(0);
        -webkit-transform: perspective(100px) rotateX(0) rotateY(0);
    }
}

.triangle-skew-spin > div
{
            animation: triangle-skew-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite;
    -webkit-animation: triangle-skew-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite;
    border-bottom: 20px solid #fff;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    height: 0;
    width: 0;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes square-spin
{
    25%
    {
                transform: perspective(100px) rotateX(180deg) rotateY(0);
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0);
    }

    50%
    {
                transform: perspective(100px) rotateX(180deg) rotateY(180deg);
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
    }

    75%
    {
                transform: perspective(100px) rotateX(0) rotateY(180deg);
        -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg);
    }

    100%
    {
                transform: perspective(100px) rotateX(0) rotateY(0);
        -webkit-transform: perspective(100px) rotateX(0) rotateY(0);
    }
}

@keyframes square-spin
{
    25%
    {
                transform: perspective(100px) rotateX(180deg) rotateY(0);
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0);
    }

    50%
    {
                transform: perspective(100px) rotateX(180deg) rotateY(180deg);
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
    }

    75%
    {
                transform: perspective(100px) rotateX(0) rotateY(180deg);
        -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg);
    }

    100%
    {
                transform: perspective(100px) rotateX(0) rotateY(0);
        -webkit-transform: perspective(100px) rotateX(0) rotateY(0);
    }
}

.square-spin > div
{
            animation: square-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite;
    -webkit-animation: square-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite;
    background: #fff;
    border: 1px solid red;
    height: 50px;
    width: 50px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes rotate_pacman_half_up
{
    0%
    {
                transform: rotate(270deg);
        -webkit-transform: rotate(270deg);
    }

    50%
    {
                transform: rotate(360deg);
        -webkit-transform: rotate(360deg);
    }

    100%
    {
                transform: rotate(270deg);
        -webkit-transform: rotate(270deg);
    }
}

@keyframes rotate_pacman_half_up
{
    0%
    {
                transform: rotate(270deg);
        -webkit-transform: rotate(270deg);
    }

    50%
    {
                transform: rotate(360deg);
        -webkit-transform: rotate(360deg);
    }

    100%
    {
                transform: rotate(270deg);
        -webkit-transform: rotate(270deg);
    }
}

@-webkit-keyframes rotate_pacman_half_down
{
    0%
    {
                transform: rotate(90deg);
        -webkit-transform: rotate(90deg);
    }

    50%
    {
                transform: rotate(0deg);
        -webkit-transform: rotate(0deg);
    }

    100%
    {
                transform: rotate(90deg);
        -webkit-transform: rotate(90deg);
    }
}

@keyframes rotate_pacman_half_down
{
    0%
    {
                transform: rotate(90deg);
        -webkit-transform: rotate(90deg);
    }

    50%
    {
                transform: rotate(0deg);
        -webkit-transform: rotate(0deg);
    }

    100%
    {
                transform: rotate(90deg);
        -webkit-transform: rotate(90deg);
    }
}

@-webkit-keyframes pacman-balls
{
    75%
    {
        opacity: .7;
    }

    100%
    {
                transform: translate(-100px, -6.25px);
        -webkit-transform: translate(-100px, -6.25px);
    }
}

@keyframes pacman-balls
{
    75%
    {
        opacity: .7;
    }

    100%
    {
                transform: translate(-100px, -6.25px);
        -webkit-transform: translate(-100px, -6.25px);
    }
}

.pacman
{
    position: relative;
}
.pacman > div:nth-child(2)
{
            animation: pacman-balls 1s -.99s infinite linear;
    -webkit-animation: pacman-balls 1s -.99s infinite linear;
}
.pacman > div:nth-child(3)
{
            animation: pacman-balls 1s -.66s infinite linear;
    -webkit-animation: pacman-balls 1s -.66s infinite linear;
}
.pacman > div:nth-child(4)
{
            animation: pacman-balls 1s -.33s infinite linear;
    -webkit-animation: pacman-balls 1s -.33s infinite linear;
}
.pacman > div:nth-child(5)
{
            animation: pacman-balls 1s 0s infinite linear;
    -webkit-animation: pacman-balls 1s 0s infinite linear;
}
.pacman > div:first-of-type
{
            animation: rotate_pacman_half_up .5s 0s infinite;
    -webkit-animation: rotate_pacman_half_up .5s 0s infinite;
    border-bottom: 25px solid #fff;
    border-left: 25px solid #fff;
    border-radius: 25px;
    border-right: 25px solid transparent;
    border-top: 25px solid #fff;
    height: 0;
    left: -30px;
    position: relative;
    width: 0;
}
.pacman > div:nth-child(2)
{
            animation: rotate_pacman_half_down .5s 0s infinite;
    -webkit-animation: rotate_pacman_half_down .5s 0s infinite;
    border-bottom: 25px solid #fff;
    border-left: 25px solid #fff;
    border-radius: 25px;
    border-right: 25px solid transparent;
    border-top: 25px solid #fff;
    height: 0;
    left: -30px;
    margin-top: -50px;
    position: relative;
    width: 0;
}
.pacman > div:nth-child(3),
.pacman > div:nth-child(4),
.pacman > div:nth-child(5),
.pacman > div:nth-child(6)
{
    background-color: #fff;
    border-radius: 100%;
    height: 15px;
    height: 10px;
    left: 70px;
    margin: 2px;
    position: absolute;
    top: 25px;
            transform: translate(0, -6.25px);
        -ms-transform: translate(0, -6.25px);
    -webkit-transform: translate(0, -6.25px);
    width: 15px;
    width: 10px;
}

@-webkit-keyframes cube-transition
{
    25%
    {
                transform: translateX(50px) scale(.5) rotate(-90deg);
        -webkit-transform: translateX(50px) scale(.5) rotate(-90deg);
    }

    50%
    {
                transform: translate(50px, 50px) rotate(-180deg);
        -webkit-transform: translate(50px, 50px) rotate(-180deg);
    }

    75%
    {
                transform: translateY(50px) scale(.5) rotate(-270deg);
        -webkit-transform: translateY(50px) scale(.5) rotate(-270deg);
    }

    100%
    {
                transform: rotate(-360deg);
        -webkit-transform: rotate(-360deg);
    }
}

@keyframes cube-transition
{
    25%
    {
                transform: translateX(50px) scale(.5) rotate(-90deg);
        -webkit-transform: translateX(50px) scale(.5) rotate(-90deg);
    }

    50%
    {
                transform: translate(50px, 50px) rotate(-180deg);
        -webkit-transform: translate(50px, 50px) rotate(-180deg);
    }

    75%
    {
                transform: translateY(50px) scale(.5) rotate(-270deg);
        -webkit-transform: translateY(50px) scale(.5) rotate(-270deg);
    }

    100%
    {
                transform: rotate(-360deg);
        -webkit-transform: rotate(-360deg);
    }
}

.cube-transition
{
    position: relative;
            transform: translate(-25px, -25px);
        -ms-transform: translate(-25px, -25px);
    -webkit-transform: translate(-25px, -25px);
}
.cube-transition > div
{
            animation: cube-transition 1.6s 0s infinite ease-in-out;
    -webkit-animation: cube-transition 1.6s 0s infinite ease-in-out;
    background-color: #fff;
    height: 10px;
    left: -5px;
    position: absolute;
    top: -5px;
    width: 10px;

    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
}
.cube-transition > div:last-child
{
            animation-delay: -.8s;
    -webkit-animation-delay: -.8s;
}

@-webkit-keyframes spin-rotate
{
    0%
    {
                transform: rotate(0deg);
        -webkit-transform: rotate(0deg);
    }

    50%
    {
                transform: rotate(180deg);
        -webkit-transform: rotate(180deg);
    }

    100%
    {
                transform: rotate(360deg);
        -webkit-transform: rotate(360deg);
    }
}

@keyframes spin-rotate
{
    0%
    {
                transform: rotate(0deg);
        -webkit-transform: rotate(0deg);
    }

    50%
    {
                transform: rotate(180deg);
        -webkit-transform: rotate(180deg);
    }

    100%
    {
                transform: rotate(360deg);
        -webkit-transform: rotate(360deg);
    }
}

.semi-circle-spin
{
    height: 35px;
    overflow: hidden;
    position: relative;
    width: 35px;
}
.semi-circle-spin > div
{
            animation: spin-rotate .6s 0s infinite linear;
    -webkit-animation: spin-rotate .6s 0s infinite linear;
    background-image: -webkit-linear-gradient(transparent 0%, transparent 70%, #fff 30%, #fff 100%);
    background-image:         linear-gradient(transparent 0%, transparent 70%, #fff 30%, #fff 100%);
    border-radius: 100%;
    border-width: 0;
    height: 100%;
    position: absolute;
    width: 100%;
}
