/**
 * Copyright (c) 2016 Connor Atherton
 *
 * All animations must live in their own file
 * in the animations directory and be included
 * here.
 *
 */
/**
 * Styles shared by multiple animations
 */
/* Custom Loader.CSS */
.loader-container
{
    position: absolute;
    top: 50%;
    right: 50%;
}

.double-bounce
{
    position: relative;

    width: 40px;
    height: 40px;
    margin: 40px auto;
}
.double-bounce .child
{
    position: absolute;
    top: 0;
    right: 0;

    width: 100%;
    height: 100%;

    -webkit-animation: doubleBounce 2s infinite ease-in-out;
       -moz-animation: doubleBounce 2s infinite ease-in-out;
         -o-animation: doubleBounce 2s infinite ease-in-out;
            animation: doubleBounce 2s infinite ease-in-out; 

    opacity: .6;
    border-radius: 50%;
    background-color: #333;
}
.double-bounce .double-bounce2
{
    -webkit-animation-delay: -1.0s;
       -moz-animation-delay: -1.0s;
         -o-animation-delay: -1.0s;
            animation-delay: -1.0s;
}

@-webkit-keyframes doubleBounce
{
    0%,
    100%
    {
        -webkit-transform: scale(0);
                transform: scale(0);
    }
    50%
    {
        -webkit-transform: scale(1);
                transform: scale(1);
    }
}

@-moz-keyframes doubleBounce
{
    0%,
    100%
    {
        -moz-transform: scale(0);
             transform: scale(0);
    }
    50%
    {
        -moz-transform: scale(1);
             transform: scale(1);
    }
}

@-o-keyframes doubleBounce
{
    0%,
    100%
    {
        -o-transform: scale(0);
           transform: scale(0);
    }
    50%
    {
        -o-transform: scale(1);
           transform: scale(1);
    }
}

@keyframes doubleBounce
{
    0%,
    100%
    {
        -webkit-transform: scale(0);
           -moz-transform: scale(0);
             -o-transform: scale(0);
                transform: scale(0);
    }
    50%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1);
    }
}

.chasing-dots
{
    position: relative;

    width: 40px;
    height: 40px;

    -webkit-animation: chasingDotsRotate 2s infinite linear;
       -moz-animation: chasingDotsRotate 2s infinite linear;
         -o-animation: chasingDotsRotate 2s infinite linear;
            animation: chasingDotsRotate 2s infinite linear; 
    text-align: center;
}
.chasing-dots .child
{
    position: absolute;
    top: 0;

    display: inline-block;

    width: 60%;
    height: 60%;

    -webkit-animation: chasingDotsBounce 2s infinite ease-in-out;
       -moz-animation: chasingDotsBounce 2s infinite ease-in-out;
         -o-animation: chasingDotsBounce 2s infinite ease-in-out;
            animation: chasingDotsBounce 2s infinite ease-in-out; 

    border-radius: 100%;
    background-color: #333;
}
.chasing-dots .dot2
{
    top: auto;
    bottom: 0;

    -webkit-animation-delay: -1s;
       -moz-animation-delay: -1s;
         -o-animation-delay: -1s;
            animation-delay: -1s;
}

@-webkit-keyframes chasingDotsRotate
{
    100%
    {
        -webkit-transform: rotate(-360deg);
                transform: rotate(-360deg);
    }
}

@-moz-keyframes chasingDotsRotate
{
    100%
    {
        -moz-transform: rotate(-360deg);
             transform: rotate(-360deg);
    }
}

@-o-keyframes chasingDotsRotate
{
    100%
    {
        -o-transform: rotate(-360deg);
           transform: rotate(-360deg);
    }
}

@keyframes chasingDotsRotate
{
    100%
    {
        -webkit-transform: rotate(-360deg);
           -moz-transform: rotate(-360deg);
             -o-transform: rotate(-360deg);
                transform: rotate(-360deg);
    }
}

@-webkit-keyframes chasingDotsBounce
{
    0%,
    100%
    {
        -webkit-transform: scale(0);
                transform: scale(0);
    }
    50%
    {
        -webkit-transform: scale(1);
                transform: scale(1);
    }
}

@-moz-keyframes chasingDotsBounce
{
    0%,
    100%
    {
        -moz-transform: scale(0);
             transform: scale(0);
    }
    50%
    {
        -moz-transform: scale(1);
             transform: scale(1);
    }
}

@-o-keyframes chasingDotsBounce
{
    0%,
    100%
    {
        -o-transform: scale(0);
           transform: scale(0);
    }
    50%
    {
        -o-transform: scale(1);
           transform: scale(1);
    }
}

@keyframes chasingDotsBounce
{
    0%,
    100%
    {
        -webkit-transform: scale(0);
           -moz-transform: scale(0);
             -o-transform: scale(0);
                transform: scale(0);
    }
    50%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1);
    }
}

/*
 * Spinner positions
 * 1 2 3
 * 4 5 6
 * 7 8 9
 */
.cube-grid
{
    width: 40px;
    height: 40px;
    margin: 40px auto;
}
.cube-grid .cube
{
    float: right;

    width: 33.33%;
    height: 33.33%;

    -webkit-animation: cubeGridScaleDelay 1.3s infinite ease-in-out;
       -moz-animation: cubeGridScaleDelay 1.3s infinite ease-in-out;
         -o-animation: cubeGridScaleDelay 1.3s infinite ease-in-out;
            animation: cubeGridScaleDelay 1.3s infinite ease-in-out; 

    background-color: #333;
}
.cube-grid .cube1
{
    -webkit-animation-delay: .2s;
       -moz-animation-delay: .2s;
         -o-animation-delay: .2s;
            animation-delay: .2s;
}
.cube-grid .cube2
{
    -webkit-animation-delay: .3s;
       -moz-animation-delay: .3s;
         -o-animation-delay: .3s;
            animation-delay: .3s;
}
.cube-grid .cube3
{
    -webkit-animation-delay: .4s;
       -moz-animation-delay: .4s;
         -o-animation-delay: .4s;
            animation-delay: .4s;
}
.cube-grid .cube4
{
    -webkit-animation-delay: .1s;
       -moz-animation-delay: .1s;
         -o-animation-delay: .1s;
            animation-delay: .1s;
}
.cube-grid .cube5
{
    -webkit-animation-delay: .2s;
       -moz-animation-delay: .2s;
         -o-animation-delay: .2s;
            animation-delay: .2s;
}
.cube-grid .cube6
{
    -webkit-animation-delay: .3s;
       -moz-animation-delay: .3s;
         -o-animation-delay: .3s;
            animation-delay: .3s;
}
.cube-grid .cube7
{
    -webkit-animation-delay: .0s;
       -moz-animation-delay: .0s;
         -o-animation-delay: .0s;
            animation-delay: .0s;
}
.cube-grid .cube8
{
    -webkit-animation-delay: .1s;
       -moz-animation-delay: .1s;
         -o-animation-delay: .1s;
            animation-delay: .1s;
}
.cube-grid .cube9
{
    -webkit-animation-delay: .2s;
       -moz-animation-delay: .2s;
         -o-animation-delay: .2s;
            animation-delay: .2s;
}

@-webkit-keyframes cubeGridScaleDelay
{
    0%,
    70%,
    100%
    {
        -webkit-transform: scale3D(1, 1, 1);
                transform: scale3D(1, 1, 1);
    }
    35%
    {
        -webkit-transform: scale3D(0, 0, 1);
                transform: scale3D(0, 0, 1);
    }
}

@-moz-keyframes cubeGridScaleDelay
{
    0%,
    70%,
    100%
    {
        -moz-transform: scale3D(1, 1, 1);
             transform: scale3D(1, 1, 1);
    }
    35%
    {
        -moz-transform: scale3D(0, 0, 1);
             transform: scale3D(0, 0, 1);
    }
}

@-o-keyframes cubeGridScaleDelay
{
    0%,
    70%,
    100%
    {
        -o-transform: scale3D(1, 1, 1);
           transform: scale3D(1, 1, 1);
    }
    35%
    {
        -o-transform: scale3D(0, 0, 1);
           transform: scale3D(0, 0, 1);
    }
}

@keyframes cubeGridScaleDelay
{
    0%,
    70%,
    100%
    {
        -webkit-transform: scale3D(1, 1, 1);
           -moz-transform: scale3D(1, 1, 1);
             -o-transform: scale3D(1, 1, 1);
                transform: scale3D(1, 1, 1);
    }
    35%
    {
        -webkit-transform: scale3D(0, 0, 1);
           -moz-transform: scale3D(0, 0, 1);
             -o-transform: scale3D(0, 0, 1);
                transform: scale3D(0, 0, 1);
    }
}

.fading-circle
{
    position: relative; 

    width: 40px;
    height: 40px;
    margin: 40px auto;
}
.fading-circle .circle
{
    position: absolute;
    top: 0; 
    right: 0;

    width: 100%;
    height: 100%;
}
.fading-circle .circle:before
{
    display: block;

    width: 15%;
    height: 15%;
    margin: 0 auto;

    content: '';
    -webkit-animation: circleFadeDelay 1.2s infinite ease-in-out both;
       -moz-animation: circleFadeDelay 1.2s infinite ease-in-out both;
         -o-animation: circleFadeDelay 1.2s infinite ease-in-out both;
            animation: circleFadeDelay 1.2s infinite ease-in-out both; 

    border-radius: 100%;
    background-color: #333;
}
.fading-circle .circle2
{
    -webkit-transform: rotate(-30deg);
       -moz-transform: rotate(-30deg);
        -ms-transform: rotate(-30deg);
         -o-transform: rotate(-30deg);
            transform: rotate(-30deg);
}
.fading-circle .circle2:before
{
    -webkit-animation-delay: -1.1s;
       -moz-animation-delay: -1.1s;
         -o-animation-delay: -1.1s;
            animation-delay: -1.1s;
}
.fading-circle .circle3
{
    -webkit-transform: rotate(-60deg);
       -moz-transform: rotate(-60deg);
        -ms-transform: rotate(-60deg);
         -o-transform: rotate(-60deg);
            transform: rotate(-60deg);
}
.fading-circle .circle3:before
{
    -webkit-animation-delay: -1s;
       -moz-animation-delay: -1s;
         -o-animation-delay: -1s;
            animation-delay: -1s;
}
.fading-circle .circle4
{
    -webkit-transform: rotate(-90deg);
       -moz-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
         -o-transform: rotate(-90deg);
            transform: rotate(-90deg);
}
.fading-circle .circle4:before
{
    -webkit-animation-delay: -.9s;
       -moz-animation-delay: -.9s;
         -o-animation-delay: -.9s;
            animation-delay: -.9s;
}
.fading-circle .circle5
{
    -webkit-transform: rotate(-120deg);
       -moz-transform: rotate(-120deg);
        -ms-transform: rotate(-120deg);
         -o-transform: rotate(-120deg);
            transform: rotate(-120deg);
}
.fading-circle .circle5:before
{
    -webkit-animation-delay: -.8s;
       -moz-animation-delay: -.8s;
         -o-animation-delay: -.8s;
            animation-delay: -.8s;
}
.fading-circle .circle6
{
    -webkit-transform: rotate(-150deg);
       -moz-transform: rotate(-150deg);
        -ms-transform: rotate(-150deg);
         -o-transform: rotate(-150deg);
            transform: rotate(-150deg);
}
.fading-circle .circle6:before
{
    -webkit-animation-delay: -.7s;
       -moz-animation-delay: -.7s;
         -o-animation-delay: -.7s;
            animation-delay: -.7s;
}
.fading-circle .circle7
{
    -webkit-transform: rotate(-180deg);
       -moz-transform: rotate(-180deg);
        -ms-transform: rotate(-180deg);
         -o-transform: rotate(-180deg);
            transform: rotate(-180deg);
}
.fading-circle .circle7:before
{
    -webkit-animation-delay: -.6s;
       -moz-animation-delay: -.6s;
         -o-animation-delay: -.6s;
            animation-delay: -.6s;
}
.fading-circle .circle8
{
    -webkit-transform: rotate(-210deg);
       -moz-transform: rotate(-210deg);
        -ms-transform: rotate(-210deg);
         -o-transform: rotate(-210deg);
            transform: rotate(-210deg);
}
.fading-circle .circle8:before
{
    -webkit-animation-delay: -.5s;
       -moz-animation-delay: -.5s;
         -o-animation-delay: -.5s;
            animation-delay: -.5s;
}
.fading-circle .circle9
{
    -webkit-transform: rotate(-240deg);
       -moz-transform: rotate(-240deg);
        -ms-transform: rotate(-240deg);
         -o-transform: rotate(-240deg);
            transform: rotate(-240deg);
}
.fading-circle .circle9:before
{
    -webkit-animation-delay: -.4s;
       -moz-animation-delay: -.4s;
         -o-animation-delay: -.4s;
            animation-delay: -.4s;
}
.fading-circle .circle10
{
    -webkit-transform: rotate(-270deg);
       -moz-transform: rotate(-270deg);
        -ms-transform: rotate(-270deg);
         -o-transform: rotate(-270deg);
            transform: rotate(-270deg);
}
.fading-circle .circle10:before
{
    -webkit-animation-delay: -.3s;
       -moz-animation-delay: -.3s;
         -o-animation-delay: -.3s;
            animation-delay: -.3s;
}
.fading-circle .circle11
{
    -webkit-transform: rotate(-300deg);
       -moz-transform: rotate(-300deg);
        -ms-transform: rotate(-300deg);
         -o-transform: rotate(-300deg);
            transform: rotate(-300deg);
}
.fading-circle .circle11:before
{
    -webkit-animation-delay: -.2s;
       -moz-animation-delay: -.2s;
         -o-animation-delay: -.2s;
            animation-delay: -.2s;
}
.fading-circle .circle12
{
    -webkit-transform: rotate(-330deg);
       -moz-transform: rotate(-330deg);
        -ms-transform: rotate(-330deg);
         -o-transform: rotate(-330deg);
            transform: rotate(-330deg);
}
.fading-circle .circle12:before
{
    -webkit-animation-delay: -.1s;
       -moz-animation-delay: -.1s;
         -o-animation-delay: -.1s;
            animation-delay: -.1s;
}

@-webkit-keyframes circleFadeDelay
{
    0%,
    39%,
    100%
    {
        opacity: 0;
    }
    40%
    {
        opacity: 1;
    }
}

@-moz-keyframes circleFadeDelay
{
    0%,
    39%,
    100%
    {
        opacity: 0;
    }
    40%
    {
        opacity: 1;
    }
}

@-o-keyframes circleFadeDelay
{
    0%,
    39%,
    100%
    {
        opacity: 0;
    }
    40%
    {
        opacity: 1;
    }
}

@keyframes circleFadeDelay
{
    0%,
    39%,
    100%
    {
        opacity: 0;
    }
    40%
    {
        opacity: 1;
    }
}

.folding-cube
{
    position: relative;

    width: 40px;
    height: 40px;

    -webkit-transform: rotateZ(-45deg);
       -moz-transform: rotateZ(-45deg);
        -ms-transform: rotate(-45deg);
         -o-transform: rotateZ(-45deg);
            transform: rotateZ(-45deg);
}
.folding-cube .cube
{
    position: relative;

    float: right;

    width: 50%;
    height: 50%;

    -webkit-transform: scale(1.1);
       -moz-transform: scale(1.1);
        -ms-transform: scale(1.1);
         -o-transform: scale(1.1);
            transform: scale(1.1);
}
.folding-cube .cube:before
{
    position: absolute;
    top: 0;
    right: 0;

    width: 100%;
    height: 100%;

    content: '';
    -webkit-transform-origin: 0 100%;
       -moz-transform-origin: 0 100%;
        -ms-transform-origin: 0 100%;
         -o-transform-origin: 0 100%;
            transform-origin: 0 100%; 
    -webkit-animation: foldCubeAngle 2.4s infinite linear both;
       -moz-animation: foldCubeAngle 2.4s infinite linear both;
         -o-animation: foldCubeAngle 2.4s infinite linear both;
            animation: foldCubeAngle 2.4s infinite linear both;

    background-color: #333;
}
.folding-cube .cube2
{
    -webkit-transform: scale(1.1) rotateZ(-90deg);
       -moz-transform: scale(1.1) rotateZ(-90deg);
        -ms-transform: scale(1.1) rotate(-90deg);
         -o-transform: scale(1.1) rotateZ(-90deg);
            transform: scale(1.1) rotateZ(-90deg);
}
.folding-cube .cube2:before
{
    -webkit-animation-delay: .3s;
       -moz-animation-delay: .3s;
         -o-animation-delay: .3s;
            animation-delay: .3s;
}
.folding-cube .cube3
{
    -webkit-transform: scale(1.1) rotateZ(-180deg);
       -moz-transform: scale(1.1) rotateZ(-180deg);
        -ms-transform: scale(1.1) rotate(-180deg);
         -o-transform: scale(1.1) rotateZ(-180deg);
            transform: scale(1.1) rotateZ(-180deg);
}
.folding-cube .cube3:before
{
    -webkit-animation-delay: .6s;
       -moz-animation-delay: .6s;
         -o-animation-delay: .6s;
            animation-delay: .6s;
}
.folding-cube .cube4
{
    -webkit-transform: scale(1.1) rotateZ(-270deg);
       -moz-transform: scale(1.1) rotateZ(-270deg);
        -ms-transform: scale(1.1) rotate(-270deg);
         -o-transform: scale(1.1) rotateZ(-270deg);
            transform: scale(1.1) rotateZ(-270deg);
}
.folding-cube .cube4:before
{
    -webkit-animation-delay: .9s;
       -moz-animation-delay: .9s;
         -o-animation-delay: .9s;
            animation-delay: .9s;
}

@-webkit-keyframes foldCubeAngle
{
    0%,
    10%
    {
        -webkit-transform: perspective(140px) rotateX(-180deg);
                transform: perspective(140px) rotateX(-180deg);

        opacity: 0;
    }
    25%,
    75%
    {
        -webkit-transform: perspective(140px) rotateX(0deg);
                transform: perspective(140px) rotateX(0deg);

        opacity: 1;
    }
    90%,
    100%
    {
        -webkit-transform: perspective(140px) rotateY(180deg);
                transform: perspective(140px) rotateY(180deg);

        opacity: 0;
    }
}

@-moz-keyframes foldCubeAngle
{
    0%,
    10%
    {
        -moz-transform: perspective(140px) rotateX(-180deg);
             transform: perspective(140px) rotateX(-180deg);

        opacity: 0;
    }
    25%,
    75%
    {
        -moz-transform: perspective(140px) rotateX(0deg);
             transform: perspective(140px) rotateX(0deg);

        opacity: 1;
    }
    90%,
    100%
    {
        -moz-transform: perspective(140px) rotateY(180deg);
             transform: perspective(140px) rotateY(180deg);

        opacity: 0;
    }
}

@-o-keyframes foldCubeAngle
{
    0%,
    10%
    {
        transform: perspective(140px) rotateX(-180deg);

        opacity: 0;
    }
    25%,
    75%
    {
        transform: perspective(140px) rotateX(0deg);

        opacity: 1;
    }
    90%,
    100%
    {
        transform: perspective(140px) rotateY(180deg);

        opacity: 0;
    }
}

@keyframes foldCubeAngle
{
    0%,
    10%
    {
        -webkit-transform: perspective(140px) rotateX(-180deg);
           -moz-transform: perspective(140px) rotateX(-180deg);
                transform: perspective(140px) rotateX(-180deg);

        opacity: 0;
    }
    25%,
    75%
    {
        -webkit-transform: perspective(140px) rotateX(0deg);
           -moz-transform: perspective(140px) rotateX(0deg);
                transform: perspective(140px) rotateX(0deg);

        opacity: 1;
    }
    90%,
    100%
    {
        -webkit-transform: perspective(140px) rotateY(180deg);
           -moz-transform: perspective(140px) rotateY(180deg);
                transform: perspective(140px) rotateY(180deg);

        opacity: 0;
    }
}

/**
 * Dots
 */
@-webkit-keyframes scale
{
    0%
    {
        -webkit-transform: scale(1);
                transform: scale(1);

        opacity: 1;
    }
    45%
    {
        -webkit-transform: scale(.1);
                transform: scale(.1);

        opacity: .7;
    }
    80%
    {
        -webkit-transform: scale(1);
                transform: scale(1);

        opacity: 1;
    }
}
@-moz-keyframes scale
{
    0%
    {
        -moz-transform: scale(1);
             transform: scale(1);

        opacity: 1;
    }
    45%
    {
        -moz-transform: scale(.1);
             transform: scale(.1);

        opacity: .7;
    }
    80%
    {
        -moz-transform: scale(1);
             transform: scale(1);

        opacity: 1;
    }
}
@-o-keyframes scale
{
    0%
    {
        -o-transform: scale(1);
           transform: scale(1);

        opacity: 1;
    }
    45%
    {
        -o-transform: scale(.1);
           transform: scale(.1);

        opacity: .7;
    }
    80%
    {
        -o-transform: scale(1);
           transform: scale(1);

        opacity: 1;
    }
}
@keyframes scale
{
    0%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1);

        opacity: 1;
    }
    45%
    {
        -webkit-transform: scale(.1);
           -moz-transform: scale(.1);
             -o-transform: scale(.1);
                transform: scale(.1);

        opacity: .7;
    }
    80%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1);

        opacity: 1;
    }
}

.ball-pulse > div:nth-child(1)
{
    -webkit-animation: scale .75s -.24s infinite cubic-bezier(.2, .68, .18, 1.08);
       -moz-animation: scale .75s -.24s infinite cubic-bezier(.2, .68, .18, 1.08);
         -o-animation: scale .75s -.24s infinite cubic-bezier(.2, .68, .18, 1.08);
            animation: scale .75s -.24s infinite cubic-bezier(.2, .68, .18, 1.08);
}

.ball-pulse > div:nth-child(2)
{
    -webkit-animation: scale .75s -.12s infinite cubic-bezier(.2, .68, .18, 1.08);
       -moz-animation: scale .75s -.12s infinite cubic-bezier(.2, .68, .18, 1.08);
         -o-animation: scale .75s -.12s infinite cubic-bezier(.2, .68, .18, 1.08);
            animation: scale .75s -.12s infinite cubic-bezier(.2, .68, .18, 1.08);
}

.ball-pulse > div:nth-child(3)
{
    -webkit-animation: scale .75s 0s infinite cubic-bezier(.2, .68, .18, 1.08);
       -moz-animation: scale .75s 0s infinite cubic-bezier(.2, .68, .18, 1.08);
         -o-animation: scale .75s 0s infinite cubic-bezier(.2, .68, .18, 1.08);
            animation: scale .75s 0s infinite cubic-bezier(.2, .68, .18, 1.08);
}

.ball-pulse > div
{
    display: inline-block; 

    width: 15px;
    height: 15px;
    margin: 2px;

    border-radius: 100%;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-pulse-sync
{
    33%
    {
        -webkit-transform: translateY(10px);
                transform: translateY(10px);
    }
    66%
    {
        -webkit-transform: translateY(-10px);
                transform: translateY(-10px);
    }
    100%
    {
        -webkit-transform: translateY(0);
                transform: translateY(0);
    }
}

@-moz-keyframes ball-pulse-sync
{
    33%
    {
        -moz-transform: translateY(10px);
             transform: translateY(10px);
    }
    66%
    {
        -moz-transform: translateY(-10px);
             transform: translateY(-10px);
    }
    100%
    {
        -moz-transform: translateY(0);
             transform: translateY(0);
    }
}

@-o-keyframes ball-pulse-sync
{
    33%
    {
        -o-transform: translateY(10px);
           transform: translateY(10px);
    }
    66%
    {
        -o-transform: translateY(-10px);
           transform: translateY(-10px);
    }
    100%
    {
        -o-transform: translateY(0);
           transform: translateY(0);
    }
}

@keyframes ball-pulse-sync
{
    33%
    {
        -webkit-transform: translateY(10px);
           -moz-transform: translateY(10px);
             -o-transform: translateY(10px);
                transform: translateY(10px);
    }
    66%
    {
        -webkit-transform: translateY(-10px);
           -moz-transform: translateY(-10px);
             -o-transform: translateY(-10px);
                transform: translateY(-10px);
    }
    100%
    {
        -webkit-transform: translateY(0);
           -moz-transform: translateY(0);
             -o-transform: translateY(0);
                transform: translateY(0);
    }
}

.ball-pulse-sync > div:nth-child(1)
{
    -webkit-animation: ball-pulse-sync .6s -.14s infinite ease-in-out;
       -moz-animation: ball-pulse-sync .6s -.14s infinite ease-in-out;
         -o-animation: ball-pulse-sync .6s -.14s infinite ease-in-out;
            animation: ball-pulse-sync .6s -.14s infinite ease-in-out;
}

.ball-pulse-sync > div:nth-child(2)
{
    -webkit-animation: ball-pulse-sync .6s -.07s infinite ease-in-out;
       -moz-animation: ball-pulse-sync .6s -.07s infinite ease-in-out;
         -o-animation: ball-pulse-sync .6s -.07s infinite ease-in-out;
            animation: ball-pulse-sync .6s -.07s infinite ease-in-out;
}

.ball-pulse-sync > div:nth-child(3)
{
    -webkit-animation: ball-pulse-sync .6s 0s infinite ease-in-out;
       -moz-animation: ball-pulse-sync .6s 0s infinite ease-in-out;
         -o-animation: ball-pulse-sync .6s 0s infinite ease-in-out;
            animation: ball-pulse-sync .6s 0s infinite ease-in-out;
}

.ball-pulse-sync > div
{
    display: inline-block; 

    width: 15px;
    height: 15px;
    margin: 2px;

    border-radius: 100%;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-scale
{
    0%
    {
        -webkit-transform: scale(0);
                transform: scale(0);
    }
    100%
    {
        -webkit-transform: scale(1);
                transform: scale(1);

        opacity: 0;
    }
}

@-moz-keyframes ball-scale
{
    0%
    {
        -moz-transform: scale(0);
             transform: scale(0);
    }
    100%
    {
        -moz-transform: scale(1);
             transform: scale(1);

        opacity: 0;
    }
}

@-o-keyframes ball-scale
{
    0%
    {
        -o-transform: scale(0);
           transform: scale(0);
    }
    100%
    {
        -o-transform: scale(1);
           transform: scale(1);

        opacity: 0;
    }
}

@keyframes ball-scale
{
    0%
    {
        -webkit-transform: scale(0);
           -moz-transform: scale(0);
             -o-transform: scale(0);
                transform: scale(0);
    }
    100%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1);

        opacity: 0;
    }
}

.ball-scale > div
{
    display: inline-block;

    width: 15px;
    width: 60px;
    height: 15px;
    height: 60px;
    margin: 2px;

    -webkit-animation: ball-scale 1s 0s ease-in-out infinite;
       -moz-animation: ball-scale 1s 0s ease-in-out infinite;
         -o-animation: ball-scale 1s 0s ease-in-out infinite;
            animation: ball-scale 1s 0s ease-in-out infinite; 

    border-radius: 100%;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

@keyframes ball-scale
{
    0%
    {
        -webkit-transform: scale(0);
           -moz-transform: scale(0);
             -o-transform: scale(0);
                transform: scale(0);
    }
    100%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1);

        opacity: 0;
    }
}

.ball-scale > div
{
    display: inline-block;

    width: 15px;
    width: 60px;
    height: 15px;
    height: 60px;
    margin: 2px;

    -webkit-animation: ball-scale 1s 0s ease-in-out infinite;
       -moz-animation: ball-scale 1s 0s ease-in-out infinite;
         -o-animation: ball-scale 1s 0s ease-in-out infinite;
            animation: ball-scale 1s 0s ease-in-out infinite; 

    border-radius: 100%;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

.ball-scale-random
{
    width: 37px;
    height: 40px;
}
.ball-scale-random > div
{
    position: absolute;

    display: inline-block;

    width: 15px;
    width: 30px;
    height: 15px;
    height: 30px;
    margin: 2px;

    -webkit-animation: ball-scale 1s 0s ease-in-out infinite;
       -moz-animation: ball-scale 1s 0s ease-in-out infinite;
         -o-animation: ball-scale 1s 0s ease-in-out infinite;
            animation: ball-scale 1s 0s ease-in-out infinite; 

    border-radius: 100%;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-scale-random > div:nth-child(1)
{
    margin-right: -7px;

    -webkit-animation: ball-scale 1s .2s ease-in-out infinite;
       -moz-animation: ball-scale 1s .2s ease-in-out infinite;
         -o-animation: ball-scale 1s .2s ease-in-out infinite;
            animation: ball-scale 1s .2s ease-in-out infinite;
}
.ball-scale-random > div:nth-child(3)
{
    margin-top: 9px;
    margin-right: -2px;

    -webkit-animation: ball-scale 1s .5s ease-in-out infinite;
       -moz-animation: ball-scale 1s .5s ease-in-out infinite;
         -o-animation: ball-scale 1s .5s ease-in-out infinite;
            animation: ball-scale 1s .5s ease-in-out infinite;
}

@-webkit-keyframes rotate
{
    0%
    {
        -webkit-transform: rotate(0deg);
                transform: rotate(0deg);
    }
    50%
    {
        -webkit-transform: rotate(-180deg);
                transform: rotate(-180deg);
    }
    100%
    {
        -webkit-transform: rotate(-360deg);
                transform: rotate(-360deg);
    }
}

@-moz-keyframes rotate
{
    0%
    {
        -moz-transform: rotate(0deg);
             transform: rotate(0deg);
    }
    50%
    {
        -moz-transform: rotate(-180deg);
             transform: rotate(-180deg);
    }
    100%
    {
        -moz-transform: rotate(-360deg);
             transform: rotate(-360deg);
    }
}

@-o-keyframes rotate
{
    0%
    {
        -o-transform: rotate(0deg);
           transform: rotate(0deg);
    }
    50%
    {
        -o-transform: rotate(-180deg);
           transform: rotate(-180deg);
    }
    100%
    {
        -o-transform: rotate(-360deg);
           transform: rotate(-360deg);
    }
}

@keyframes rotate
{
    0%
    {
        -webkit-transform: rotate(0deg);
           -moz-transform: rotate(0deg);
             -o-transform: rotate(0deg);
                transform: rotate(0deg);
    }
    50%
    {
        -webkit-transform: rotate(-180deg);
           -moz-transform: rotate(-180deg);
             -o-transform: rotate(-180deg);
                transform: rotate(-180deg);
    }
    100%
    {
        -webkit-transform: rotate(-360deg);
           -moz-transform: rotate(-360deg);
             -o-transform: rotate(-360deg);
                transform: rotate(-360deg);
    }
}

.ball-rotate
{
    position: relative;
}
.ball-rotate > div
{
    position: relative; 

    width: 15px;
    height: 15px;
    margin: 2px;

    border-radius: 100%;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-rotate > div:first-child
{
    -webkit-animation: rotate 1s 0s cubic-bezier(.7, -.13, .22, .86) infinite;
       -moz-animation: rotate 1s 0s cubic-bezier(.7, -.13, .22, .86) infinite;
         -o-animation: rotate 1s 0s cubic-bezier(.7, -.13, .22, .86) infinite;
            animation: rotate 1s 0s cubic-bezier(.7, -.13, .22, .86) infinite;
}
.ball-rotate > div:before,
.ball-rotate > div:after
{
    position: absolute;

    width: 15px;
    height: 15px;
    margin: 2px;

    content: '';

    opacity: .8; 
    border-radius: 100%;
    background-color: #55595c;
}
.ball-rotate > div:before
{
    top: 0;
    right: -28px;
}
.ball-rotate > div:after
{
    top: 0;
    right: 25px;
}

@keyframes rotate
{
    0%
    {
        -webkit-transform: rotate(0deg) scale(1);
           -moz-transform: rotate(0deg) scale(1);
             -o-transform: rotate(0deg) scale(1);
                transform: rotate(0deg) scale(1);
    }
    50%
    {
        -webkit-transform: rotate(-180deg) scale(.6);
           -moz-transform: rotate(-180deg) scale(.6);
             -o-transform: rotate(-180deg) scale(.6);
                transform: rotate(-180deg) scale(.6);
    }
    100%
    {
        -webkit-transform: rotate(-360deg) scale(1);
           -moz-transform: rotate(-360deg) scale(1);
             -o-transform: rotate(-360deg) scale(1);
                transform: rotate(-360deg) scale(1);
    }
}

.ball-clip-rotate > div
{
    display: inline-block;

    width: 15px;
    width: 25px;
    height: 15px;
    height: 25px;
    margin: 2px;

    -webkit-animation: rotate .75s 0s linear infinite;
       -moz-animation: rotate .75s 0s linear infinite;
         -o-animation: rotate .75s 0s linear infinite;
            animation: rotate .75s 0s linear infinite; 

    border: 2px solid #55595c;
    border-bottom-color: transparent;
    border-radius: 100%;
    background: transparent !important;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

@keyframes rotate
{
    0%
    {
        -webkit-transform: rotate(0deg) scale(1);
           -moz-transform: rotate(0deg) scale(1);
             -o-transform: rotate(0deg) scale(1);
                transform: rotate(0deg) scale(1);
    }
    50%
    {
        -webkit-transform: rotate(-180deg) scale(.6);
           -moz-transform: rotate(-180deg) scale(.6);
             -o-transform: rotate(-180deg) scale(.6);
                transform: rotate(-180deg) scale(.6);
    }
    100%
    {
        -webkit-transform: rotate(-360deg) scale(1);
           -moz-transform: rotate(-360deg) scale(1);
             -o-transform: rotate(-360deg) scale(1);
                transform: rotate(-360deg) scale(1);
    }
}

@keyframes scale
{
    30%
    {
        -webkit-transform: scale(.3);
           -moz-transform: scale(.3);
             -o-transform: scale(.3);
                transform: scale(.3);
    }
    100%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1);
    }
}

.ball-clip-rotate-pulse
{
    position: relative;

    -webkit-transform: translateY(-15px);
       -moz-transform: translateY(-15px);
        -ms-transform: translateY(-15px);
         -o-transform: translateY(-15px);
            transform: translateY(-15px);
}
.ball-clip-rotate-pulse > div
{
    position: absolute;
    top: 0;
    right: 0;

    border-radius: 100%; 

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-clip-rotate-pulse > div:first-child
{
    top: 7px;
    right: -7px;

    width: 16px;
    height: 16px;

    -webkit-animation: scale 1s 0s cubic-bezier(.09, .57, .49, .9) infinite;
       -moz-animation: scale 1s 0s cubic-bezier(.09, .57, .49, .9) infinite;
         -o-animation: scale 1s 0s cubic-bezier(.09, .57, .49, .9) infinite;
            animation: scale 1s 0s cubic-bezier(.09, .57, .49, .9) infinite; 

    background: #55595c;
}
.ball-clip-rotate-pulse > div:last-child
{
    position: absolute;
    top: -2px;
    right: -16px;

    width: 30px;
    height: 30px;

    -webkit-animation: rotate 1s 0s cubic-bezier(.09, .57, .49, .9) infinite;
       -moz-animation: rotate 1s 0s cubic-bezier(.09, .57, .49, .9) infinite;
         -o-animation: rotate 1s 0s cubic-bezier(.09, .57, .49, .9) infinite;
            animation: rotate 1s 0s cubic-bezier(.09, .57, .49, .9) infinite;
    -webkit-animation-duration: 1s;
       -moz-animation-duration: 1s;
         -o-animation-duration: 1s;
            animation-duration: 1s; 

    border: 2px solid #55595c;
    border: 2px solid;
    border-color: #55595c transparent #55595c transparent;
    background: transparent;
}

@keyframes rotate
{
    0%
    {
        -webkit-transform: rotate(0deg) scale(1);
           -moz-transform: rotate(0deg) scale(1);
             -o-transform: rotate(0deg) scale(1);
                transform: rotate(0deg) scale(1);
    }
    50%
    {
        -webkit-transform: rotate(-180deg) scale(.6);
           -moz-transform: rotate(-180deg) scale(.6);
             -o-transform: rotate(-180deg) scale(.6);
                transform: rotate(-180deg) scale(.6);
    }
    100%
    {
        -webkit-transform: rotate(-360deg) scale(1);
           -moz-transform: rotate(-360deg) scale(1);
             -o-transform: rotate(-360deg) scale(1);
                transform: rotate(-360deg) scale(1);
    }
}

.ball-clip-rotate-multiple
{
    position: relative;
}
.ball-clip-rotate-multiple > div
{
    position: absolute;
    top: -20px;
    right: -20px;

    width: 35px;
    height: 35px;

    -webkit-animation: rotate 1s 0s ease-in-out infinite;
       -moz-animation: rotate 1s 0s ease-in-out infinite;
         -o-animation: rotate 1s 0s ease-in-out infinite;
            animation: rotate 1s 0s ease-in-out infinite; 

    border: 2px solid #55595c;
    border-top-color: transparent;
    border-bottom-color: transparent;
    border-radius: 100%;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-clip-rotate-multiple > div:last-child
{
    top: -10px;
    right: -10px;

    display: inline-block;

    width: 15px;
    height: 15px;

    -webkit-animation-duration: .5s;
       -moz-animation-duration: .5s;
         -o-animation-duration: .5s;
            animation-duration: .5s;
    animation-direction: reverse; 

    border-color: #55595c transparent #55595c transparent;
}

@-webkit-keyframes ball-scale-ripple
{
    0%
    {
        -webkit-transform: scale(.1);
                transform: scale(.1);

        opacity: 1;
    }
    70%
    {
        -webkit-transform: scale(1);
                transform: scale(1);

        opacity: .7;
    }
    100%
    {
        opacity: .0;
    }
}

@-moz-keyframes ball-scale-ripple
{
    0%
    {
        -moz-transform: scale(.1);
             transform: scale(.1);

        opacity: 1;
    }
    70%
    {
        -moz-transform: scale(1);
             transform: scale(1);

        opacity: .7;
    }
    100%
    {
        opacity: .0;
    }
}

@-o-keyframes ball-scale-ripple
{
    0%
    {
        -o-transform: scale(.1);
           transform: scale(.1);

        opacity: 1;
    }
    70%
    {
        -o-transform: scale(1);
           transform: scale(1);

        opacity: .7;
    }
    100%
    {
        opacity: .0;
    }
}

@keyframes ball-scale-ripple
{
    0%
    {
        -webkit-transform: scale(.1);
           -moz-transform: scale(.1);
             -o-transform: scale(.1);
                transform: scale(.1);

        opacity: 1;
    }
    70%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1);

        opacity: .7;
    }
    100%
    {
        opacity: .0;
    }
}

.ball-scale-ripple > div
{
    width: 50px;
    height: 50px;

    -webkit-animation: ball-scale-ripple 1s 0s infinite cubic-bezier(.21, .53, .56, .8);
       -moz-animation: ball-scale-ripple 1s 0s infinite cubic-bezier(.21, .53, .56, .8);
         -o-animation: ball-scale-ripple 1s 0s infinite cubic-bezier(.21, .53, .56, .8);
            animation: ball-scale-ripple 1s 0s infinite cubic-bezier(.21, .53, .56, .8); 

    border: 2px solid #55595c;
    border-radius: 100%;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-scale-ripple-multiple
{
    0%
    {
        -webkit-transform: scale(.1);
                transform: scale(.1);

        opacity: 1;
    }
    70%
    {
        -webkit-transform: scale(1);
                transform: scale(1);

        opacity: .7;
    }
    100%
    {
        opacity: .0;
    }
}

@-moz-keyframes ball-scale-ripple-multiple
{
    0%
    {
        -moz-transform: scale(.1);
             transform: scale(.1);

        opacity: 1;
    }
    70%
    {
        -moz-transform: scale(1);
             transform: scale(1);

        opacity: .7;
    }
    100%
    {
        opacity: .0;
    }
}

@-o-keyframes ball-scale-ripple-multiple
{
    0%
    {
        -o-transform: scale(.1);
           transform: scale(.1);

        opacity: 1;
    }
    70%
    {
        -o-transform: scale(1);
           transform: scale(1);

        opacity: .7;
    }
    100%
    {
        opacity: .0;
    }
}

@keyframes ball-scale-ripple-multiple
{
    0%
    {
        -webkit-transform: scale(.1);
           -moz-transform: scale(.1);
             -o-transform: scale(.1);
                transform: scale(.1);

        opacity: 1;
    }
    70%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1);

        opacity: .7;
    }
    100%
    {
        opacity: .0;
    }
}

.ball-scale-ripple-multiple
{
    position: relative;

    -webkit-transform: translateY(-25px);
       -moz-transform: translateY(-25px);
        -ms-transform: translateY(-25px);
         -o-transform: translateY(-25px);
            transform: translateY(-25px);
}
.ball-scale-ripple-multiple > div:nth-child(0)
{
    -webkit-animation-delay: -.8s;
       -moz-animation-delay: -.8s;
         -o-animation-delay: -.8s;
            animation-delay: -.8s;
}
.ball-scale-ripple-multiple > div:nth-child(1)
{
    -webkit-animation-delay: -.6s;
       -moz-animation-delay: -.6s;
         -o-animation-delay: -.6s;
            animation-delay: -.6s;
}
.ball-scale-ripple-multiple > div:nth-child(2)
{
    -webkit-animation-delay: -.4s;
       -moz-animation-delay: -.4s;
         -o-animation-delay: -.4s;
            animation-delay: -.4s;
}
.ball-scale-ripple-multiple > div:nth-child(3)
{
    -webkit-animation-delay: -.2s;
       -moz-animation-delay: -.2s;
         -o-animation-delay: -.2s;
            animation-delay: -.2s;
}
.ball-scale-ripple-multiple > div
{
    position: absolute;
    top: -2px;
    right: -26px;

    width: 50px;
    height: 50px;

    -webkit-animation: ball-scale-ripple-multiple 1.25s 0s infinite cubic-bezier(.21, .53, .56, .8);
       -moz-animation: ball-scale-ripple-multiple 1.25s 0s infinite cubic-bezier(.21, .53, .56, .8);
         -o-animation: ball-scale-ripple-multiple 1.25s 0s infinite cubic-bezier(.21, .53, .56, .8);
            animation: ball-scale-ripple-multiple 1.25s 0s infinite cubic-bezier(.21, .53, .56, .8); 

    border: 2px solid #55595c;
    border-radius: 100%;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-beat
{
    50%
    {
        -webkit-transform: scale(.75);
                transform: scale(.75); 

        opacity: .2;
    }
    100%
    {
        -webkit-transform: scale(1);
                transform: scale(1); 

        opacity: 1;
    }
}

@-moz-keyframes ball-beat
{
    50%
    {
        -moz-transform: scale(.75);
             transform: scale(.75); 

        opacity: .2;
    }
    100%
    {
        -moz-transform: scale(1);
             transform: scale(1); 

        opacity: 1;
    }
}

@-o-keyframes ball-beat
{
    50%
    {
        -o-transform: scale(.75);
           transform: scale(.75); 

        opacity: .2;
    }
    100%
    {
        -o-transform: scale(1);
           transform: scale(1); 

        opacity: 1;
    }
}

@keyframes ball-beat
{
    50%
    {
        -webkit-transform: scale(.75);
           -moz-transform: scale(.75);
             -o-transform: scale(.75);
                transform: scale(.75); 

        opacity: .2;
    }
    100%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1); 

        opacity: 1;
    }
}

.ball-beat > div
{
    display: inline-block;

    width: 15px;
    height: 15px;
    margin: 2px;

    -webkit-animation: ball-beat .7s 0s infinite linear;
       -moz-animation: ball-beat .7s 0s infinite linear;
         -o-animation: ball-beat .7s 0s infinite linear;
            animation: ball-beat .7s 0s infinite linear; 

    border-radius: 100%;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-beat > div:nth-child(2n-1)
{
    -webkit-animation-delay: -.35s !important;
       -moz-animation-delay: -.35s !important;
         -o-animation-delay: -.35s !important;
            animation-delay: -.35s !important;
}

@-webkit-keyframes ball-scale-multiple
{
    0%
    {
        -webkit-transform: scale(0);
                transform: scale(0);

        opacity: 0;
    }
    5%
    {
        opacity: 1;
    }
    100%
    {
        -webkit-transform: scale(1);
                transform: scale(1);

        opacity: 0;
    }
}

@-moz-keyframes ball-scale-multiple
{
    0%
    {
        -moz-transform: scale(0);
             transform: scale(0);

        opacity: 0;
    }
    5%
    {
        opacity: 1;
    }
    100%
    {
        -moz-transform: scale(1);
             transform: scale(1);

        opacity: 0;
    }
}

@-o-keyframes ball-scale-multiple
{
    0%
    {
        -o-transform: scale(0);
           transform: scale(0);

        opacity: 0;
    }
    5%
    {
        opacity: 1;
    }
    100%
    {
        -o-transform: scale(1);
           transform: scale(1);

        opacity: 0;
    }
}

@keyframes ball-scale-multiple
{
    0%
    {
        -webkit-transform: scale(0);
           -moz-transform: scale(0);
             -o-transform: scale(0);
                transform: scale(0);

        opacity: 0;
    }
    5%
    {
        opacity: 1;
    }
    100%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1);

        opacity: 0;
    }
}

.ball-scale-multiple
{
    position: relative;
}
.ball-scale-multiple > div:nth-child(2)
{
    -webkit-animation-delay: -.4s;
       -moz-animation-delay: -.4s;
         -o-animation-delay: -.4s;
            animation-delay: -.4s;
}
.ball-scale-multiple > div:nth-child(3)
{
    -webkit-animation-delay: -.2s;
       -moz-animation-delay: -.2s;
         -o-animation-delay: -.2s;
            animation-delay: -.2s;
}
.ball-scale-multiple > div
{
    position: absolute;
    top: 0;

    width: 15px;
    width: 60px;
    height: 15px;
    height: 60px;
    margin: 2px;
    margin: 0;

    -webkit-animation: ball-scale-multiple 1s 0s linear infinite;
       -moz-animation: ball-scale-multiple 1s 0s linear infinite;
         -o-animation: ball-scale-multiple 1s 0s linear infinite;
            animation: ball-scale-multiple 1s 0s linear infinite; 

    opacity: 0;
    border-radius: 100%;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-triangle-path-1
{
    33%
    {
        -webkit-transform: translate(-25px, -50px);
                transform: translate(-25px, -50px);
    }
    66%
    {
        -webkit-transform: translate(-50px, 0px);
                transform: translate(-50px, 0px);
    }
    100%
    {
        -webkit-transform: translate(0px, 0px);
                transform: translate(0px, 0px);
    }
}

@-moz-keyframes ball-triangle-path-1
{
    33%
    {
        -moz-transform: translate(-25px, -50px);
             transform: translate(-25px, -50px);
    }
    66%
    {
        -moz-transform: translate(-50px, 0px);
             transform: translate(-50px, 0px);
    }
    100%
    {
        -moz-transform: translate(0px, 0px);
             transform: translate(0px, 0px);
    }
}

@-o-keyframes ball-triangle-path-1
{
    33%
    {
        -o-transform: translate(-25px, -50px);
           transform: translate(-25px, -50px);
    }
    66%
    {
        -o-transform: translate(-50px, 0px);
           transform: translate(-50px, 0px);
    }
    100%
    {
        -o-transform: translate(0px, 0px);
           transform: translate(0px, 0px);
    }
}

@keyframes ball-triangle-path-1
{
    33%
    {
        -webkit-transform: translate(-25px, -50px);
           -moz-transform: translate(-25px, -50px);
             -o-transform: translate(-25px, -50px);
                transform: translate(-25px, -50px);
    }
    66%
    {
        -webkit-transform: translate(-50px, 0px);
           -moz-transform: translate(-50px, 0px);
             -o-transform: translate(-50px, 0px);
                transform: translate(-50px, 0px);
    }
    100%
    {
        -webkit-transform: translate(0px, 0px);
           -moz-transform: translate(0px, 0px);
             -o-transform: translate(0px, 0px);
                transform: translate(0px, 0px);
    }
}

@-webkit-keyframes ball-triangle-path-2
{
    33%
    {
        -webkit-transform: translate(-25px, 50px);
                transform: translate(-25px, 50px);
    }
    66%
    {
        -webkit-transform: translate(25px, 50px);
                transform: translate(25px, 50px);
    }
    100%
    {
        -webkit-transform: translate(0px, 0px);
                transform: translate(0px, 0px);
    }
}

@-moz-keyframes ball-triangle-path-2
{
    33%
    {
        -moz-transform: translate(-25px, 50px);
             transform: translate(-25px, 50px);
    }
    66%
    {
        -moz-transform: translate(25px, 50px);
             transform: translate(25px, 50px);
    }
    100%
    {
        -moz-transform: translate(0px, 0px);
             transform: translate(0px, 0px);
    }
}

@-o-keyframes ball-triangle-path-2
{
    33%
    {
        -o-transform: translate(-25px, 50px);
           transform: translate(-25px, 50px);
    }
    66%
    {
        -o-transform: translate(25px, 50px);
           transform: translate(25px, 50px);
    }
    100%
    {
        -o-transform: translate(0px, 0px);
           transform: translate(0px, 0px);
    }
}

@keyframes ball-triangle-path-2
{
    33%
    {
        -webkit-transform: translate(-25px, 50px);
           -moz-transform: translate(-25px, 50px);
             -o-transform: translate(-25px, 50px);
                transform: translate(-25px, 50px);
    }
    66%
    {
        -webkit-transform: translate(25px, 50px);
           -moz-transform: translate(25px, 50px);
             -o-transform: translate(25px, 50px);
                transform: translate(25px, 50px);
    }
    100%
    {
        -webkit-transform: translate(0px, 0px);
           -moz-transform: translate(0px, 0px);
             -o-transform: translate(0px, 0px);
                transform: translate(0px, 0px);
    }
}

@-webkit-keyframes ball-triangle-path-3
{
    33%
    {
        -webkit-transform: translate(50px, 0px);
                transform: translate(50px, 0px);
    }
    66%
    {
        -webkit-transform: translate(25px, -50px);
                transform: translate(25px, -50px);
    }
    100%
    {
        -webkit-transform: translate(0px, 0px);
                transform: translate(0px, 0px);
    }
}

@-moz-keyframes ball-triangle-path-3
{
    33%
    {
        -moz-transform: translate(50px, 0px);
             transform: translate(50px, 0px);
    }
    66%
    {
        -moz-transform: translate(25px, -50px);
             transform: translate(25px, -50px);
    }
    100%
    {
        -moz-transform: translate(0px, 0px);
             transform: translate(0px, 0px);
    }
}

@-o-keyframes ball-triangle-path-3
{
    33%
    {
        -o-transform: translate(50px, 0px);
           transform: translate(50px, 0px);
    }
    66%
    {
        -o-transform: translate(25px, -50px);
           transform: translate(25px, -50px);
    }
    100%
    {
        -o-transform: translate(0px, 0px);
           transform: translate(0px, 0px);
    }
}

@keyframes ball-triangle-path-3
{
    33%
    {
        -webkit-transform: translate(50px, 0px);
           -moz-transform: translate(50px, 0px);
             -o-transform: translate(50px, 0px);
                transform: translate(50px, 0px);
    }
    66%
    {
        -webkit-transform: translate(25px, -50px);
           -moz-transform: translate(25px, -50px);
             -o-transform: translate(25px, -50px);
                transform: translate(25px, -50px);
    }
    100%
    {
        -webkit-transform: translate(0px, 0px);
           -moz-transform: translate(0px, 0px);
             -o-transform: translate(0px, 0px);
                transform: translate(0px, 0px);
    }
}

.ball-triangle-path
{
    position: relative;

    -webkit-transform: translate(29.994px, -37.50938px);
       -moz-transform: translate(29.994px, -37.50938px);
        -ms-transform: translate(29.994px, -37.50938px);
         -o-transform: translate(29.994px, -37.50938px);
            transform: translate(29.994px, -37.50938px);
}
.ball-triangle-path > div:nth-child(1)
{
    -webkit-animation-name: ball-triangle-path-1;
       -moz-animation-name: ball-triangle-path-1;
         -o-animation-name: ball-triangle-path-1;
            animation-name: ball-triangle-path-1;
    -webkit-animation-duration: 2s;
       -moz-animation-duration: 2s;
         -o-animation-duration: 2s;
            animation-duration: 2s;
    -webkit-animation-timing-function: ease-in-out;
       -moz-animation-timing-function: ease-in-out;
         -o-animation-timing-function: ease-in-out;
            animation-timing-function: ease-in-out;
    -webkit-animation-delay: 0;
       -moz-animation-delay: 0;
         -o-animation-delay: 0;
            animation-delay: 0;
    -webkit-animation-iteration-count: infinite;
       -moz-animation-iteration-count: infinite;
         -o-animation-iteration-count: infinite;
            animation-iteration-count: infinite;
}
.ball-triangle-path > div:nth-child(2)
{
    -webkit-animation-name: ball-triangle-path-2;
       -moz-animation-name: ball-triangle-path-2;
         -o-animation-name: ball-triangle-path-2;
            animation-name: ball-triangle-path-2;
    -webkit-animation-duration: 2s;
       -moz-animation-duration: 2s;
         -o-animation-duration: 2s;
            animation-duration: 2s;
    -webkit-animation-timing-function: ease-in-out;
       -moz-animation-timing-function: ease-in-out;
         -o-animation-timing-function: ease-in-out;
            animation-timing-function: ease-in-out;
    -webkit-animation-delay: 0;
       -moz-animation-delay: 0;
         -o-animation-delay: 0;
            animation-delay: 0;
    -webkit-animation-iteration-count: infinite;
       -moz-animation-iteration-count: infinite;
         -o-animation-iteration-count: infinite;
            animation-iteration-count: infinite;
}
.ball-triangle-path > div:nth-child(3)
{
    -webkit-animation-name: ball-triangle-path-3;
       -moz-animation-name: ball-triangle-path-3;
         -o-animation-name: ball-triangle-path-3;
            animation-name: ball-triangle-path-3;
    -webkit-animation-duration: 2s;
       -moz-animation-duration: 2s;
         -o-animation-duration: 2s;
            animation-duration: 2s;
    -webkit-animation-timing-function: ease-in-out;
       -moz-animation-timing-function: ease-in-out;
         -o-animation-timing-function: ease-in-out;
            animation-timing-function: ease-in-out;
    -webkit-animation-delay: 0;
       -moz-animation-delay: 0;
         -o-animation-delay: 0;
            animation-delay: 0;
    -webkit-animation-iteration-count: infinite;
       -moz-animation-iteration-count: infinite;
         -o-animation-iteration-count: infinite;
            animation-iteration-count: infinite;
}
.ball-triangle-path > div
{
    position: absolute;

    width: 10px;
    height: 10px;

    border: 1px solid #55595c; 
    border-radius: 100%;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-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)
{
    right: 25px;
}
.ball-triangle-path > div:nth-of-type(3)
{
    top: 50px;
    right: 50px;
}

@-webkit-keyframes ball-pulse-rise-even
{
    0%
    {
        -webkit-transform: scale(1.1);
                transform: scale(1.1);
    }
    25%
    {
        -webkit-transform: translateY(-30px);
                transform: translateY(-30px);
    }
    50%
    {
        -webkit-transform: scale(.4);
                transform: scale(.4);
    }
    75%
    {
        -webkit-transform: translateY(30px);
                transform: translateY(30px);
    }
    100%
    {
        -webkit-transform: translateY(0);
        -webkit-transform: scale(1);
                transform: translateY(0);
                transform: scale(1);
    }
}

@-moz-keyframes ball-pulse-rise-even
{
    0%
    {
        -moz-transform: scale(1.1);
             transform: scale(1.1);
    }
    25%
    {
        -moz-transform: translateY(-30px);
             transform: translateY(-30px);
    }
    50%
    {
        -moz-transform: scale(.4);
             transform: scale(.4);
    }
    75%
    {
        -moz-transform: translateY(30px);
             transform: translateY(30px);
    }
    100%
    {
        -moz-transform: translateY(0);
        -moz-transform: scale(1);
             transform: translateY(0);
             transform: scale(1);
    }
}

@-o-keyframes ball-pulse-rise-even
{
    0%
    {
        -o-transform: scale(1.1);
           transform: scale(1.1);
    }
    25%
    {
        -o-transform: translateY(-30px);
           transform: translateY(-30px);
    }
    50%
    {
        -o-transform: scale(.4);
           transform: scale(.4);
    }
    75%
    {
        -o-transform: translateY(30px);
           transform: translateY(30px);
    }
    100%
    {
        -o-transform: translateY(0);
        -o-transform: scale(1);
           transform: translateY(0);
           transform: scale(1);
    }
}

@keyframes ball-pulse-rise-even
{
    0%
    {
        -webkit-transform: scale(1.1);
           -moz-transform: scale(1.1);
             -o-transform: scale(1.1);
                transform: scale(1.1);
    }
    25%
    {
        -webkit-transform: translateY(-30px);
           -moz-transform: translateY(-30px);
             -o-transform: translateY(-30px);
                transform: translateY(-30px);
    }
    50%
    {
        -webkit-transform: scale(.4);
           -moz-transform: scale(.4);
             -o-transform: scale(.4);
                transform: scale(.4);
    }
    75%
    {
        -webkit-transform: translateY(30px);
           -moz-transform: translateY(30px);
             -o-transform: translateY(30px);
                transform: translateY(30px);
    }
    100%
    {
        -webkit-transform: translateY(0);
        -webkit-transform: scale(1);
           -moz-transform: translateY(0);
           -moz-transform: scale(1);
             -o-transform: translateY(0);
             -o-transform: scale(1);
                transform: translateY(0);
                transform: scale(1);
    }
}

@-webkit-keyframes ball-pulse-rise-odd
{
    0%
    {
        -webkit-transform: scale(.4);
                transform: scale(.4);
    }
    25%
    {
        -webkit-transform: translateY(30px);
                transform: translateY(30px);
    }
    50%
    {
        -webkit-transform: scale(1.1);
                transform: scale(1.1);
    }
    75%
    {
        -webkit-transform: translateY(-30px);
                transform: translateY(-30px);
    }
    100%
    {
        -webkit-transform: translateY(0);
        -webkit-transform: scale(.75);
                transform: translateY(0);
                transform: scale(.75);
    }
}

@-moz-keyframes ball-pulse-rise-odd
{
    0%
    {
        -moz-transform: scale(.4);
             transform: scale(.4);
    }
    25%
    {
        -moz-transform: translateY(30px);
             transform: translateY(30px);
    }
    50%
    {
        -moz-transform: scale(1.1);
             transform: scale(1.1);
    }
    75%
    {
        -moz-transform: translateY(-30px);
             transform: translateY(-30px);
    }
    100%
    {
        -moz-transform: translateY(0);
        -moz-transform: scale(.75);
             transform: translateY(0);
             transform: scale(.75);
    }
}

@-o-keyframes ball-pulse-rise-odd
{
    0%
    {
        -o-transform: scale(.4);
           transform: scale(.4);
    }
    25%
    {
        -o-transform: translateY(30px);
           transform: translateY(30px);
    }
    50%
    {
        -o-transform: scale(1.1);
           transform: scale(1.1);
    }
    75%
    {
        -o-transform: translateY(-30px);
           transform: translateY(-30px);
    }
    100%
    {
        -o-transform: translateY(0);
        -o-transform: scale(.75);
           transform: translateY(0);
           transform: scale(.75);
    }
}

@keyframes ball-pulse-rise-odd
{
    0%
    {
        -webkit-transform: scale(.4);
           -moz-transform: scale(.4);
             -o-transform: scale(.4);
                transform: scale(.4);
    }
    25%
    {
        -webkit-transform: translateY(30px);
           -moz-transform: translateY(30px);
             -o-transform: translateY(30px);
                transform: translateY(30px);
    }
    50%
    {
        -webkit-transform: scale(1.1);
           -moz-transform: scale(1.1);
             -o-transform: scale(1.1);
                transform: scale(1.1);
    }
    75%
    {
        -webkit-transform: translateY(-30px);
           -moz-transform: translateY(-30px);
             -o-transform: translateY(-30px);
                transform: translateY(-30px);
    }
    100%
    {
        -webkit-transform: translateY(0);
        -webkit-transform: scale(.75);
           -moz-transform: translateY(0);
           -moz-transform: scale(.75);
             -o-transform: translateY(0);
             -o-transform: scale(.75);
                transform: translateY(0);
                transform: scale(.75);
    }
}

.ball-pulse-rise > div
{
    display: inline-block;

    width: 15px;
    height: 15px;
    margin: 2px;

    -webkit-animation-duration: 1s;
       -moz-animation-duration: 1s;
         -o-animation-duration: 1s;
            animation-duration: 1s;
    -webkit-animation-timing-function: cubic-bezier(.15, .46, .9, .6);
       -moz-animation-timing-function: cubic-bezier(.15, .46, .9, .6);
         -o-animation-timing-function: cubic-bezier(.15, .46, .9, .6);
            animation-timing-function: cubic-bezier(.15, .46, .9, .6);
    -webkit-animation-delay: 0;
       -moz-animation-delay: 0;
         -o-animation-delay: 0;
            animation-delay: 0; 
    -webkit-animation-iteration-count: infinite;
       -moz-animation-iteration-count: infinite;
         -o-animation-iteration-count: infinite;
            animation-iteration-count: infinite;

    border-radius: 100%;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-pulse-rise > div:nth-child(2n)
{
    -webkit-animation-name: ball-pulse-rise-even;
       -moz-animation-name: ball-pulse-rise-even;
         -o-animation-name: ball-pulse-rise-even;
            animation-name: ball-pulse-rise-even;
}
.ball-pulse-rise > div:nth-child(2n-1)
{
    -webkit-animation-name: ball-pulse-rise-odd;
       -moz-animation-name: ball-pulse-rise-odd;
         -o-animation-name: ball-pulse-rise-odd;
            animation-name: ball-pulse-rise-odd;
}

@-webkit-keyframes ball-grid-beat
{
    50%
    {
        opacity: .7;
    }
    100%
    {
        opacity: 1;
    }
}

@-moz-keyframes ball-grid-beat
{
    50%
    {
        opacity: .7;
    }
    100%
    {
        opacity: 1;
    }
}

@-o-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)
{
    -webkit-animation-duration: 1.52s;
       -moz-animation-duration: 1.52s;
         -o-animation-duration: 1.52s;
            animation-duration: 1.52s; 
    -webkit-animation-delay: .65s;
       -moz-animation-delay: .65s;
         -o-animation-delay: .65s;
            animation-delay: .65s;
}
.ball-grid-beat > div:nth-child(2)
{
    -webkit-animation-duration: .85s;
       -moz-animation-duration: .85s;
         -o-animation-duration: .85s;
            animation-duration: .85s; 
    -webkit-animation-delay: .74s;
       -moz-animation-delay: .74s;
         -o-animation-delay: .74s;
            animation-delay: .74s;
}
.ball-grid-beat > div:nth-child(3)
{
    -webkit-animation-duration: 1.37s;
       -moz-animation-duration: 1.37s;
         -o-animation-duration: 1.37s;
            animation-duration: 1.37s; 
    -webkit-animation-delay: .13s;
       -moz-animation-delay: .13s;
         -o-animation-delay: .13s;
            animation-delay: .13s;
}
.ball-grid-beat > div:nth-child(4)
{
    -webkit-animation-duration: 1.11s;
       -moz-animation-duration: 1.11s;
         -o-animation-duration: 1.11s;
            animation-duration: 1.11s; 
    -webkit-animation-delay: .24s;
       -moz-animation-delay: .24s;
         -o-animation-delay: .24s;
            animation-delay: .24s;
}
.ball-grid-beat > div:nth-child(5)
{
    -webkit-animation-duration: .76s;
       -moz-animation-duration: .76s;
         -o-animation-duration: .76s;
            animation-duration: .76s; 
    -webkit-animation-delay: .08s;
       -moz-animation-delay: .08s;
         -o-animation-delay: .08s;
            animation-delay: .08s;
}
.ball-grid-beat > div:nth-child(6)
{
    -webkit-animation-duration: 1.01s;
       -moz-animation-duration: 1.01s;
         -o-animation-duration: 1.01s;
            animation-duration: 1.01s; 
    -webkit-animation-delay: .74s;
       -moz-animation-delay: .74s;
         -o-animation-delay: .74s;
            animation-delay: .74s;
}
.ball-grid-beat > div:nth-child(7)
{
    -webkit-animation-duration: 1.2s;
       -moz-animation-duration: 1.2s;
         -o-animation-duration: 1.2s;
            animation-duration: 1.2s; 
    -webkit-animation-delay: .19s;
       -moz-animation-delay: .19s;
         -o-animation-delay: .19s;
            animation-delay: .19s;
}
.ball-grid-beat > div:nth-child(8)
{
    -webkit-animation-duration: 1.13s;
       -moz-animation-duration: 1.13s;
         -o-animation-duration: 1.13s;
            animation-duration: 1.13s; 
    -webkit-animation-delay: .32s;
       -moz-animation-delay: .32s;
         -o-animation-delay: .32s;
            animation-delay: .32s;
}
.ball-grid-beat > div:nth-child(9)
{
    -webkit-animation-duration: .91s;
       -moz-animation-duration: .91s;
         -o-animation-duration: .91s;
            animation-duration: .91s; 
    -webkit-animation-delay: -.19s;
       -moz-animation-delay: -.19s;
         -o-animation-delay: -.19s;
            animation-delay: -.19s;
}
.ball-grid-beat > div
{
    display: inline-block;
    float: right;

    width: 15px;
    height: 15px;
    margin: 2px;

    -webkit-animation-name: ball-grid-beat;
       -moz-animation-name: ball-grid-beat;
         -o-animation-name: ball-grid-beat;
            animation-name: ball-grid-beat;
    -webkit-animation-delay: 0;
       -moz-animation-delay: 0;
         -o-animation-delay: 0;
            animation-delay: 0; 
    -webkit-animation-iteration-count: infinite;
       -moz-animation-iteration-count: infinite;
         -o-animation-iteration-count: infinite;
            animation-iteration-count: infinite;

    border-radius: 100%;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-grid-pulse
{
    0%
    {
        -webkit-transform: scale(1);
                transform: scale(1);
    }
    50%
    {
        -webkit-transform: scale(.5);
                transform: scale(.5);

        opacity: .7;
    }
    100%
    {
        -webkit-transform: scale(1);
                transform: scale(1);

        opacity: 1;
    }
}

@-moz-keyframes ball-grid-pulse
{
    0%
    {
        -moz-transform: scale(1);
             transform: scale(1);
    }
    50%
    {
        -moz-transform: scale(.5);
             transform: scale(.5);

        opacity: .7;
    }
    100%
    {
        -moz-transform: scale(1);
             transform: scale(1);

        opacity: 1;
    }
}

@-o-keyframes ball-grid-pulse
{
    0%
    {
        -o-transform: scale(1);
           transform: scale(1);
    }
    50%
    {
        -o-transform: scale(.5);
           transform: scale(.5);

        opacity: .7;
    }
    100%
    {
        -o-transform: scale(1);
           transform: scale(1);

        opacity: 1;
    }
}

@keyframes ball-grid-pulse
{
    0%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1);
    }
    50%
    {
        -webkit-transform: scale(.5);
           -moz-transform: scale(.5);
             -o-transform: scale(.5);
                transform: scale(.5);

        opacity: .7;
    }
    100%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1);

        opacity: 1;
    }
}

.ball-grid-pulse
{
    width: 57px;
}
.ball-grid-pulse > div:nth-child(1)
{
    -webkit-animation-duration: .98s;
       -moz-animation-duration: .98s;
         -o-animation-duration: .98s;
            animation-duration: .98s; 
    -webkit-animation-delay: .17s;
       -moz-animation-delay: .17s;
         -o-animation-delay: .17s;
            animation-delay: .17s;
}
.ball-grid-pulse > div:nth-child(2)
{
    -webkit-animation-duration: .84s;
       -moz-animation-duration: .84s;
         -o-animation-duration: .84s;
            animation-duration: .84s; 
    -webkit-animation-delay: .25s;
       -moz-animation-delay: .25s;
         -o-animation-delay: .25s;
            animation-delay: .25s;
}
.ball-grid-pulse > div:nth-child(3)
{
    -webkit-animation-duration: 1.6s;
       -moz-animation-duration: 1.6s;
         -o-animation-duration: 1.6s;
            animation-duration: 1.6s; 
    -webkit-animation-delay: .57s;
       -moz-animation-delay: .57s;
         -o-animation-delay: .57s;
            animation-delay: .57s;
}
.ball-grid-pulse > div:nth-child(4)
{
    -webkit-animation-duration: 1.02s;
       -moz-animation-duration: 1.02s;
         -o-animation-duration: 1.02s;
            animation-duration: 1.02s; 
    -webkit-animation-delay: .63s;
       -moz-animation-delay: .63s;
         -o-animation-delay: .63s;
            animation-delay: .63s;
}
.ball-grid-pulse > div:nth-child(5)
{
    -webkit-animation-duration: 1.59s;
       -moz-animation-duration: 1.59s;
         -o-animation-duration: 1.59s;
            animation-duration: 1.59s; 
    -webkit-animation-delay: 0s;
       -moz-animation-delay: 0s;
         -o-animation-delay: 0s;
            animation-delay: 0s;
}
.ball-grid-pulse > div:nth-child(6)
{
    -webkit-animation-duration: 1.41s;
       -moz-animation-duration: 1.41s;
         -o-animation-duration: 1.41s;
            animation-duration: 1.41s; 
    -webkit-animation-delay: .13s;
       -moz-animation-delay: .13s;
         -o-animation-delay: .13s;
            animation-delay: .13s;
}
.ball-grid-pulse > div:nth-child(7)
{
    -webkit-animation-duration: .71s;
       -moz-animation-duration: .71s;
         -o-animation-duration: .71s;
            animation-duration: .71s; 
    -webkit-animation-delay: .15s;
       -moz-animation-delay: .15s;
         -o-animation-delay: .15s;
            animation-delay: .15s;
}
.ball-grid-pulse > div:nth-child(8)
{
    -webkit-animation-duration: 1.05s;
       -moz-animation-duration: 1.05s;
         -o-animation-duration: 1.05s;
            animation-duration: 1.05s; 
    -webkit-animation-delay: .62s;
       -moz-animation-delay: .62s;
         -o-animation-delay: .62s;
            animation-delay: .62s;
}
.ball-grid-pulse > div:nth-child(9)
{
    -webkit-animation-duration: .88s;
       -moz-animation-duration: .88s;
         -o-animation-duration: .88s;
            animation-duration: .88s; 
    -webkit-animation-delay: .41s;
       -moz-animation-delay: .41s;
         -o-animation-delay: .41s;
            animation-delay: .41s;
}
.ball-grid-pulse > div
{
    display: inline-block;
    float: right;

    width: 15px;
    height: 15px;
    margin: 2px;

    -webkit-animation-name: ball-grid-pulse;
       -moz-animation-name: ball-grid-pulse;
         -o-animation-name: ball-grid-pulse;
            animation-name: ball-grid-pulse;
    -webkit-animation-delay: 0;
       -moz-animation-delay: 0;
         -o-animation-delay: 0;
            animation-delay: 0; 
    -webkit-animation-iteration-count: infinite;
       -moz-animation-iteration-count: infinite;
         -o-animation-iteration-count: infinite;
            animation-iteration-count: infinite;

    border-radius: 100%;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-spin-fade-loader
{
    50%
    {
        -webkit-transform: scale(.4);
                transform: scale(.4); 

        opacity: .3;
    }
    100%
    {
        -webkit-transform: scale(1);
                transform: scale(1); 

        opacity: 1;
    }
}

@-moz-keyframes ball-spin-fade-loader
{
    50%
    {
        -moz-transform: scale(.4);
             transform: scale(.4); 

        opacity: .3;
    }
    100%
    {
        -moz-transform: scale(1);
             transform: scale(1); 

        opacity: 1;
    }
}

@-o-keyframes ball-spin-fade-loader
{
    50%
    {
        -o-transform: scale(.4);
           transform: scale(.4); 

        opacity: .3;
    }
    100%
    {
        -o-transform: scale(1);
           transform: scale(1); 

        opacity: 1;
    }
}

@keyframes ball-spin-fade-loader
{
    50%
    {
        -webkit-transform: scale(.4);
           -moz-transform: scale(.4);
             -o-transform: scale(.4);
                transform: scale(.4); 

        opacity: .3;
    }
    100%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1); 

        opacity: 1;
    }
}

.ball-spin-fade-loader
{
    position: relative;
    top: -10px;
    right: -10px;
}
.ball-spin-fade-loader > div:nth-child(1)
{
    top: 25px;
    right: 0;

    -webkit-animation: ball-spin-fade-loader 1s -.96s infinite linear;
       -moz-animation: ball-spin-fade-loader 1s -.96s infinite linear;
         -o-animation: ball-spin-fade-loader 1s -.96s infinite linear;
            animation: ball-spin-fade-loader 1s -.96s infinite linear;
}
.ball-spin-fade-loader > div:nth-child(2)
{
    top: 17.04545px;
    right: 17.04545px;

    -webkit-animation: ball-spin-fade-loader 1s -.84s infinite linear;
       -moz-animation: ball-spin-fade-loader 1s -.84s infinite linear;
         -o-animation: ball-spin-fade-loader 1s -.84s infinite linear;
            animation: ball-spin-fade-loader 1s -.84s infinite linear;
}
.ball-spin-fade-loader > div:nth-child(3)
{
    top: 0;
    right: 25px;

    -webkit-animation: ball-spin-fade-loader 1s -.72s infinite linear;
       -moz-animation: ball-spin-fade-loader 1s -.72s infinite linear;
         -o-animation: ball-spin-fade-loader 1s -.72s infinite linear;
            animation: ball-spin-fade-loader 1s -.72s infinite linear;
}
.ball-spin-fade-loader > div:nth-child(4)
{
    top: -17.04545px;
    right: 17.04545px;

    -webkit-animation: ball-spin-fade-loader 1s -.6s infinite linear;
       -moz-animation: ball-spin-fade-loader 1s -.6s infinite linear;
         -o-animation: ball-spin-fade-loader 1s -.6s infinite linear;
            animation: ball-spin-fade-loader 1s -.6s infinite linear;
}
.ball-spin-fade-loader > div:nth-child(5)
{
    top: -25px;
    right: 0;

    -webkit-animation: ball-spin-fade-loader 1s -.48s infinite linear;
       -moz-animation: ball-spin-fade-loader 1s -.48s infinite linear;
         -o-animation: ball-spin-fade-loader 1s -.48s infinite linear;
            animation: ball-spin-fade-loader 1s -.48s infinite linear;
}
.ball-spin-fade-loader > div:nth-child(6)
{
    top: -17.04545px;
    right: -17.04545px;

    -webkit-animation: ball-spin-fade-loader 1s -.36s infinite linear;
       -moz-animation: ball-spin-fade-loader 1s -.36s infinite linear;
         -o-animation: ball-spin-fade-loader 1s -.36s infinite linear;
            animation: ball-spin-fade-loader 1s -.36s infinite linear;
}
.ball-spin-fade-loader > div:nth-child(7)
{
    top: 0;
    right: -25px;

    -webkit-animation: ball-spin-fade-loader 1s -.24s infinite linear;
       -moz-animation: ball-spin-fade-loader 1s -.24s infinite linear;
         -o-animation: ball-spin-fade-loader 1s -.24s infinite linear;
            animation: ball-spin-fade-loader 1s -.24s infinite linear;
}
.ball-spin-fade-loader > div:nth-child(8)
{
    top: 17.04545px;
    right: -17.04545px;

    -webkit-animation: ball-spin-fade-loader 1s -.12s infinite linear;
       -moz-animation: ball-spin-fade-loader 1s -.12s infinite linear;
         -o-animation: ball-spin-fade-loader 1s -.12s infinite linear;
            animation: ball-spin-fade-loader 1s -.12s infinite linear;
}
.ball-spin-fade-loader > div
{
    position: absolute; 

    width: 15px;
    height: 15px;
    margin: 2px;

    border-radius: 100%;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-spin-loader
{
    75%
    {
        opacity: .2;
    }
    100%
    {
        opacity: 1;
    }
}

@-moz-keyframes ball-spin-loader
{
    75%
    {
        opacity: .2;
    }
    100%
    {
        opacity: 1;
    }
}

@-o-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)
{
    top: 45px;
    right: 0;

    -webkit-animation: ball-spin-loader 2s .9s infinite linear;
       -moz-animation: ball-spin-loader 2s .9s infinite linear;
         -o-animation: ball-spin-loader 2s .9s infinite linear;
            animation: ball-spin-loader 2s .9s infinite linear;
}
.ball-spin-loader > span:nth-child(2)
{
    top: 30.68182px;
    right: 30.68182px;

    -webkit-animation: ball-spin-loader 2s 1.8s infinite linear;
       -moz-animation: ball-spin-loader 2s 1.8s infinite linear;
         -o-animation: ball-spin-loader 2s 1.8s infinite linear;
            animation: ball-spin-loader 2s 1.8s infinite linear;
}
.ball-spin-loader > span:nth-child(3)
{
    top: 0;
    right: 45px;

    -webkit-animation: ball-spin-loader 2s 2.7s infinite linear;
       -moz-animation: ball-spin-loader 2s 2.7s infinite linear;
         -o-animation: ball-spin-loader 2s 2.7s infinite linear;
            animation: ball-spin-loader 2s 2.7s infinite linear;
}
.ball-spin-loader > span:nth-child(4)
{
    top: -30.68182px;
    right: 30.68182px;

    -webkit-animation: ball-spin-loader 2s 3.6s infinite linear;
       -moz-animation: ball-spin-loader 2s 3.6s infinite linear;
         -o-animation: ball-spin-loader 2s 3.6s infinite linear;
            animation: ball-spin-loader 2s 3.6s infinite linear;
}
.ball-spin-loader > span:nth-child(5)
{
    top: -45px;
    right: 0;

    -webkit-animation: ball-spin-loader 2s 4.5s infinite linear;
       -moz-animation: ball-spin-loader 2s 4.5s infinite linear;
         -o-animation: ball-spin-loader 2s 4.5s infinite linear;
            animation: ball-spin-loader 2s 4.5s infinite linear;
}
.ball-spin-loader > span:nth-child(6)
{
    top: -30.68182px;
    right: -30.68182px;

    -webkit-animation: ball-spin-loader 2s 5.4s infinite linear;
       -moz-animation: ball-spin-loader 2s 5.4s infinite linear;
         -o-animation: ball-spin-loader 2s 5.4s infinite linear;
            animation: ball-spin-loader 2s 5.4s infinite linear;
}
.ball-spin-loader > span:nth-child(7)
{
    top: 0;
    right: -45px;

    -webkit-animation: ball-spin-loader 2s 6.3s infinite linear;
       -moz-animation: ball-spin-loader 2s 6.3s infinite linear;
         -o-animation: ball-spin-loader 2s 6.3s infinite linear;
            animation: ball-spin-loader 2s 6.3s infinite linear;
}
.ball-spin-loader > span:nth-child(8)
{
    top: 30.68182px;
    right: -30.68182px;

    -webkit-animation: ball-spin-loader 2s 7.2s infinite linear;
       -moz-animation: ball-spin-loader 2s 7.2s infinite linear;
         -o-animation: ball-spin-loader 2s 7.2s infinite linear;
            animation: ball-spin-loader 2s 7.2s infinite linear;
}
.ball-spin-loader > div
{
    position: absolute;

    width: 15px;
    height: 15px;

    border-radius: 100%;
    background: green; 

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes ball-zig
{
    33%
    {
        -webkit-transform: translate(15px, -30px);
                transform: translate(15px, -30px);
    }
    66%
    {
        -webkit-transform: translate(-15px, -30px);
                transform: translate(-15px, -30px);
    }
    100%
    {
        -webkit-transform: translate(0, 0);
                transform: translate(0, 0);
    }
}

@-moz-keyframes ball-zig
{
    33%
    {
        -moz-transform: translate(15px, -30px);
             transform: translate(15px, -30px);
    }
    66%
    {
        -moz-transform: translate(-15px, -30px);
             transform: translate(-15px, -30px);
    }
    100%
    {
        -moz-transform: translate(0, 0);
             transform: translate(0, 0);
    }
}

@-o-keyframes ball-zig
{
    33%
    {
        -o-transform: translate(15px, -30px);
           transform: translate(15px, -30px);
    }
    66%
    {
        -o-transform: translate(-15px, -30px);
           transform: translate(-15px, -30px);
    }
    100%
    {
        -o-transform: translate(0, 0);
           transform: translate(0, 0);
    }
}

@keyframes ball-zig
{
    33%
    {
        -webkit-transform: translate(15px, -30px);
           -moz-transform: translate(15px, -30px);
             -o-transform: translate(15px, -30px);
                transform: translate(15px, -30px);
    }
    66%
    {
        -webkit-transform: translate(-15px, -30px);
           -moz-transform: translate(-15px, -30px);
             -o-transform: translate(-15px, -30px);
                transform: translate(-15px, -30px);
    }
    100%
    {
        -webkit-transform: translate(0, 0);
           -moz-transform: translate(0, 0);
             -o-transform: translate(0, 0);
                transform: translate(0, 0);
    }
}

@-webkit-keyframes ball-zag
{
    33%
    {
        -webkit-transform: translate(-15px, 30px);
                transform: translate(-15px, 30px);
    }
    66%
    {
        -webkit-transform: translate(15px, 30px);
                transform: translate(15px, 30px);
    }
    100%
    {
        -webkit-transform: translate(0, 0);
                transform: translate(0, 0);
    }
}

@-moz-keyframes ball-zag
{
    33%
    {
        -moz-transform: translate(-15px, 30px);
             transform: translate(-15px, 30px);
    }
    66%
    {
        -moz-transform: translate(15px, 30px);
             transform: translate(15px, 30px);
    }
    100%
    {
        -moz-transform: translate(0, 0);
             transform: translate(0, 0);
    }
}

@-o-keyframes ball-zag
{
    33%
    {
        -o-transform: translate(-15px, 30px);
           transform: translate(-15px, 30px);
    }
    66%
    {
        -o-transform: translate(15px, 30px);
           transform: translate(15px, 30px);
    }
    100%
    {
        -o-transform: translate(0, 0);
           transform: translate(0, 0);
    }
}

@keyframes ball-zag
{
    33%
    {
        -webkit-transform: translate(-15px, 30px);
           -moz-transform: translate(-15px, 30px);
             -o-transform: translate(-15px, 30px);
                transform: translate(-15px, 30px);
    }
    66%
    {
        -webkit-transform: translate(15px, 30px);
           -moz-transform: translate(15px, 30px);
             -o-transform: translate(15px, 30px);
                transform: translate(15px, 30px);
    }
    100%
    {
        -webkit-transform: translate(0, 0);
           -moz-transform: translate(0, 0);
             -o-transform: translate(0, 0);
                transform: translate(0, 0);
    }
}

.ball-zig-zag
{
    position: relative;

    -webkit-transform: translate(15px, -15px);
       -moz-transform: translate(15px, -15px);
        -ms-transform: translate(15px, -15px);
         -o-transform: translate(15px, -15px);
            transform: translate(15px, -15px);
}
.ball-zig-zag > div
{
    position: absolute;
    top: 4px;
    right: -7px; 

    width: 15px;
    height: 15px;
    margin: 2px;
    margin-right: 15px;

    border-radius: 100%;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-zig-zag > div:first-child
{
    -webkit-animation: ball-zig .7s 0s infinite linear;
       -moz-animation: ball-zig .7s 0s infinite linear;
         -o-animation: ball-zig .7s 0s infinite linear;
            animation: ball-zig .7s 0s infinite linear;
}
.ball-zig-zag > div:last-child
{
    -webkit-animation: ball-zag .7s 0s infinite linear;
       -moz-animation: ball-zag .7s 0s infinite linear;
         -o-animation: ball-zag .7s 0s infinite linear;
            animation: ball-zag .7s 0s infinite linear;
}

@-webkit-keyframes ball-zig-deflect
{
    17%
    {
        -webkit-transform: translate(15px, -30px);
                transform: translate(15px, -30px);
    }
    34%
    {
        -webkit-transform: translate(-15px, -30px);
                transform: translate(-15px, -30px);
    }
    50%
    {
        -webkit-transform: translate(0, 0);
                transform: translate(0, 0);
    }
    67%
    {
        -webkit-transform: translate(-15px, -30px);
                transform: translate(-15px, -30px);
    }
    84%
    {
        -webkit-transform: translate(15px, -30px);
                transform: translate(15px, -30px);
    }
    100%
    {
        -webkit-transform: translate(0, 0);
                transform: translate(0, 0);
    }
}

@-moz-keyframes ball-zig-deflect
{
    17%
    {
        -moz-transform: translate(15px, -30px);
             transform: translate(15px, -30px);
    }
    34%
    {
        -moz-transform: translate(-15px, -30px);
             transform: translate(-15px, -30px);
    }
    50%
    {
        -moz-transform: translate(0, 0);
             transform: translate(0, 0);
    }
    67%
    {
        -moz-transform: translate(-15px, -30px);
             transform: translate(-15px, -30px);
    }
    84%
    {
        -moz-transform: translate(15px, -30px);
             transform: translate(15px, -30px);
    }
    100%
    {
        -moz-transform: translate(0, 0);
             transform: translate(0, 0);
    }
}

@-o-keyframes ball-zig-deflect
{
    17%
    {
        -o-transform: translate(15px, -30px);
           transform: translate(15px, -30px);
    }
    34%
    {
        -o-transform: translate(-15px, -30px);
           transform: translate(-15px, -30px);
    }
    50%
    {
        -o-transform: translate(0, 0);
           transform: translate(0, 0);
    }
    67%
    {
        -o-transform: translate(-15px, -30px);
           transform: translate(-15px, -30px);
    }
    84%
    {
        -o-transform: translate(15px, -30px);
           transform: translate(15px, -30px);
    }
    100%
    {
        -o-transform: translate(0, 0);
           transform: translate(0, 0);
    }
}

@keyframes ball-zig-deflect
{
    17%
    {
        -webkit-transform: translate(15px, -30px);
           -moz-transform: translate(15px, -30px);
             -o-transform: translate(15px, -30px);
                transform: translate(15px, -30px);
    }
    34%
    {
        -webkit-transform: translate(-15px, -30px);
           -moz-transform: translate(-15px, -30px);
             -o-transform: translate(-15px, -30px);
                transform: translate(-15px, -30px);
    }
    50%
    {
        -webkit-transform: translate(0, 0);
           -moz-transform: translate(0, 0);
             -o-transform: translate(0, 0);
                transform: translate(0, 0);
    }
    67%
    {
        -webkit-transform: translate(-15px, -30px);
           -moz-transform: translate(-15px, -30px);
             -o-transform: translate(-15px, -30px);
                transform: translate(-15px, -30px);
    }
    84%
    {
        -webkit-transform: translate(15px, -30px);
           -moz-transform: translate(15px, -30px);
             -o-transform: translate(15px, -30px);
                transform: translate(15px, -30px);
    }
    100%
    {
        -webkit-transform: translate(0, 0);
           -moz-transform: translate(0, 0);
             -o-transform: translate(0, 0);
                transform: translate(0, 0);
    }
}

@-webkit-keyframes ball-zag-deflect
{
    17%
    {
        -webkit-transform: translate(-15px, 30px);
                transform: translate(-15px, 30px);
    }
    34%
    {
        -webkit-transform: translate(15px, 30px);
                transform: translate(15px, 30px);
    }
    50%
    {
        -webkit-transform: translate(0, 0);
                transform: translate(0, 0);
    }
    67%
    {
        -webkit-transform: translate(15px, 30px);
                transform: translate(15px, 30px);
    }
    84%
    {
        -webkit-transform: translate(-15px, 30px);
                transform: translate(-15px, 30px);
    }
    100%
    {
        -webkit-transform: translate(0, 0);
                transform: translate(0, 0);
    }
}

@-moz-keyframes ball-zag-deflect
{
    17%
    {
        -moz-transform: translate(-15px, 30px);
             transform: translate(-15px, 30px);
    }
    34%
    {
        -moz-transform: translate(15px, 30px);
             transform: translate(15px, 30px);
    }
    50%
    {
        -moz-transform: translate(0, 0);
             transform: translate(0, 0);
    }
    67%
    {
        -moz-transform: translate(15px, 30px);
             transform: translate(15px, 30px);
    }
    84%
    {
        -moz-transform: translate(-15px, 30px);
             transform: translate(-15px, 30px);
    }
    100%
    {
        -moz-transform: translate(0, 0);
             transform: translate(0, 0);
    }
}

@-o-keyframes ball-zag-deflect
{
    17%
    {
        -o-transform: translate(-15px, 30px);
           transform: translate(-15px, 30px);
    }
    34%
    {
        -o-transform: translate(15px, 30px);
           transform: translate(15px, 30px);
    }
    50%
    {
        -o-transform: translate(0, 0);
           transform: translate(0, 0);
    }
    67%
    {
        -o-transform: translate(15px, 30px);
           transform: translate(15px, 30px);
    }
    84%
    {
        -o-transform: translate(-15px, 30px);
           transform: translate(-15px, 30px);
    }
    100%
    {
        -o-transform: translate(0, 0);
           transform: translate(0, 0);
    }
}

@keyframes ball-zag-deflect
{
    17%
    {
        -webkit-transform: translate(-15px, 30px);
           -moz-transform: translate(-15px, 30px);
             -o-transform: translate(-15px, 30px);
                transform: translate(-15px, 30px);
    }
    34%
    {
        -webkit-transform: translate(15px, 30px);
           -moz-transform: translate(15px, 30px);
             -o-transform: translate(15px, 30px);
                transform: translate(15px, 30px);
    }
    50%
    {
        -webkit-transform: translate(0, 0);
           -moz-transform: translate(0, 0);
             -o-transform: translate(0, 0);
                transform: translate(0, 0);
    }
    67%
    {
        -webkit-transform: translate(15px, 30px);
           -moz-transform: translate(15px, 30px);
             -o-transform: translate(15px, 30px);
                transform: translate(15px, 30px);
    }
    84%
    {
        -webkit-transform: translate(-15px, 30px);
           -moz-transform: translate(-15px, 30px);
             -o-transform: translate(-15px, 30px);
                transform: translate(-15px, 30px);
    }
    100%
    {
        -webkit-transform: translate(0, 0);
           -moz-transform: translate(0, 0);
             -o-transform: translate(0, 0);
                transform: translate(0, 0);
    }
}

.ball-zig-zag-deflect
{
    position: relative;

    -webkit-transform: translate(15px, -15px);
       -moz-transform: translate(15px, -15px);
        -ms-transform: translate(15px, -15px);
         -o-transform: translate(15px, -15px);
            transform: translate(15px, -15px);
}
.ball-zig-zag-deflect > div
{
    position: absolute;
    top: 4px;
    right: -7px; 

    width: 15px;
    height: 15px;
    margin: 2px;
    margin-right: 15px;

    border-radius: 100%;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}
.ball-zig-zag-deflect > div:first-child
{
    -webkit-animation: ball-zig-deflect 1.5s 0s infinite linear;
       -moz-animation: ball-zig-deflect 1.5s 0s infinite linear;
         -o-animation: ball-zig-deflect 1.5s 0s infinite linear;
            animation: ball-zig-deflect 1.5s 0s infinite linear;
}
.ball-zig-zag-deflect > div:last-child
{
    -webkit-animation: ball-zag-deflect 1.5s 0s infinite linear;
       -moz-animation: ball-zag-deflect 1.5s 0s infinite linear;
         -o-animation: ball-zag-deflect 1.5s 0s infinite linear;
            animation: ball-zag-deflect 1.5s 0s infinite linear;
}

/**
 * Lines
 */
@-webkit-keyframes line-scale
{
    0%
    {
        -webkit-transform: scaley(1);
                transform: scaley(1);
    }
    50%
    {
        -webkit-transform: scaley(.4);
                transform: scaley(.4);
    }
    100%
    {
        -webkit-transform: scaley(1);
                transform: scaley(1);
    }
}
@-moz-keyframes line-scale
{
    0%
    {
        -moz-transform: scaley(1);
             transform: scaley(1);
    }
    50%
    {
        -moz-transform: scaley(.4);
             transform: scaley(.4);
    }
    100%
    {
        -moz-transform: scaley(1);
             transform: scaley(1);
    }
}
@-o-keyframes line-scale
{
    0%
    {
        -o-transform: scaley(1);
           transform: scaley(1);
    }
    50%
    {
        -o-transform: scaley(.4);
           transform: scaley(.4);
    }
    100%
    {
        -o-transform: scaley(1);
           transform: scaley(1);
    }
}
@keyframes line-scale
{
    0%
    {
        -webkit-transform: scaley(1);
           -moz-transform: scaley(1);
             -o-transform: scaley(1);
                transform: scaley(1);
    }
    50%
    {
        -webkit-transform: scaley(.4);
           -moz-transform: scaley(.4);
             -o-transform: scaley(.4);
                transform: scaley(.4);
    }
    100%
    {
        -webkit-transform: scaley(1);
           -moz-transform: scaley(1);
             -o-transform: scaley(1);
                transform: scaley(1);
    }
}

.line-scale > div:nth-child(1)
{
    -webkit-animation: line-scale 1s -.4s infinite cubic-bezier(.2, .68, .18, 1.08);
       -moz-animation: line-scale 1s -.4s infinite cubic-bezier(.2, .68, .18, 1.08);
         -o-animation: line-scale 1s -.4s infinite cubic-bezier(.2, .68, .18, 1.08);
            animation: line-scale 1s -.4s infinite cubic-bezier(.2, .68, .18, 1.08);
}

.line-scale > div:nth-child(2)
{
    -webkit-animation: line-scale 1s -.3s infinite cubic-bezier(.2, .68, .18, 1.08);
       -moz-animation: line-scale 1s -.3s infinite cubic-bezier(.2, .68, .18, 1.08);
         -o-animation: line-scale 1s -.3s infinite cubic-bezier(.2, .68, .18, 1.08);
            animation: line-scale 1s -.3s infinite cubic-bezier(.2, .68, .18, 1.08);
}

.line-scale > div:nth-child(3)
{
    -webkit-animation: line-scale 1s -.2s infinite cubic-bezier(.2, .68, .18, 1.08);
       -moz-animation: line-scale 1s -.2s infinite cubic-bezier(.2, .68, .18, 1.08);
         -o-animation: line-scale 1s -.2s infinite cubic-bezier(.2, .68, .18, 1.08);
            animation: line-scale 1s -.2s infinite cubic-bezier(.2, .68, .18, 1.08);
}

.line-scale > div:nth-child(4)
{
    -webkit-animation: line-scale 1s -.1s infinite cubic-bezier(.2, .68, .18, 1.08);
       -moz-animation: line-scale 1s -.1s infinite cubic-bezier(.2, .68, .18, 1.08);
         -o-animation: line-scale 1s -.1s infinite cubic-bezier(.2, .68, .18, 1.08);
            animation: line-scale 1s -.1s infinite cubic-bezier(.2, .68, .18, 1.08);
}

.line-scale > div:nth-child(5)
{
    -webkit-animation: line-scale 1s 0s infinite cubic-bezier(.2, .68, .18, 1.08);
       -moz-animation: line-scale 1s 0s infinite cubic-bezier(.2, .68, .18, 1.08);
         -o-animation: line-scale 1s 0s infinite cubic-bezier(.2, .68, .18, 1.08);
            animation: line-scale 1s 0s infinite cubic-bezier(.2, .68, .18, 1.08);
}

.line-scale > div
{
    display: inline-block; 

    width: 4px;
    height: 3.45rem;
    margin: 2px;

    border-radius: 2px;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes line-scale-party
{
    0%
    {
        -webkit-transform: scale(1);
                transform: scale(1);
    }
    50%
    {
        -webkit-transform: scale(.5);
                transform: scale(.5);
    }
    100%
    {
        -webkit-transform: scale(1);
                transform: scale(1);
    }
}

@-moz-keyframes line-scale-party
{
    0%
    {
        -moz-transform: scale(1);
             transform: scale(1);
    }
    50%
    {
        -moz-transform: scale(.5);
             transform: scale(.5);
    }
    100%
    {
        -moz-transform: scale(1);
             transform: scale(1);
    }
}

@-o-keyframes line-scale-party
{
    0%
    {
        -o-transform: scale(1);
           transform: scale(1);
    }
    50%
    {
        -o-transform: scale(.5);
           transform: scale(.5);
    }
    100%
    {
        -o-transform: scale(1);
           transform: scale(1);
    }
}

@keyframes line-scale-party
{
    0%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1);
    }
    50%
    {
        -webkit-transform: scale(.5);
           -moz-transform: scale(.5);
             -o-transform: scale(.5);
                transform: scale(.5);
    }
    100%
    {
        -webkit-transform: scale(1);
           -moz-transform: scale(1);
             -o-transform: scale(1);
                transform: scale(1);
    }
}

.line-scale-party > div:nth-child(1)
{
    -webkit-animation-duration: 1.28s;
       -moz-animation-duration: 1.28s;
         -o-animation-duration: 1.28s;
            animation-duration: 1.28s; 
    -webkit-animation-delay: -.07s;
       -moz-animation-delay: -.07s;
         -o-animation-delay: -.07s;
            animation-delay: -.07s;
}

.line-scale-party > div:nth-child(2)
{
    -webkit-animation-duration: .88s;
       -moz-animation-duration: .88s;
         -o-animation-duration: .88s;
            animation-duration: .88s; 
    -webkit-animation-delay: .49s;
       -moz-animation-delay: .49s;
         -o-animation-delay: .49s;
            animation-delay: .49s;
}

.line-scale-party > div:nth-child(3)
{
    -webkit-animation-duration: .49s;
       -moz-animation-duration: .49s;
         -o-animation-duration: .49s;
            animation-duration: .49s; 
    -webkit-animation-delay: .26s;
       -moz-animation-delay: .26s;
         -o-animation-delay: .26s;
            animation-delay: .26s;
}

.line-scale-party > div:nth-child(4)
{
    -webkit-animation-duration: 1.12s;
       -moz-animation-duration: 1.12s;
         -o-animation-duration: 1.12s;
            animation-duration: 1.12s; 
    -webkit-animation-delay: .02s;
       -moz-animation-delay: .02s;
         -o-animation-delay: .02s;
            animation-delay: .02s;
}

.line-scale-party > div
{
    display: inline-block;

    width: 4px;
    height: 3.45rem;
    margin: 2px;

    -webkit-animation-name: line-scale-party;
       -moz-animation-name: line-scale-party;
         -o-animation-name: line-scale-party;
            animation-name: line-scale-party;
    -webkit-animation-delay: 0;
       -moz-animation-delay: 0;
         -o-animation-delay: 0;
            animation-delay: 0; 
    -webkit-animation-iteration-count: infinite;
       -moz-animation-iteration-count: infinite;
         -o-animation-iteration-count: infinite;
            animation-iteration-count: infinite;

    border-radius: 2px;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes line-scale-pulse-out
{
    0%
    {
        -webkit-transform: scaley(1);
                transform: scaley(1);
    }
    50%
    {
        -webkit-transform: scaley(.4);
                transform: scaley(.4);
    }
    100%
    {
        -webkit-transform: scaley(1);
                transform: scaley(1);
    }
}

@-moz-keyframes line-scale-pulse-out
{
    0%
    {
        -moz-transform: scaley(1);
             transform: scaley(1);
    }
    50%
    {
        -moz-transform: scaley(.4);
             transform: scaley(.4);
    }
    100%
    {
        -moz-transform: scaley(1);
             transform: scaley(1);
    }
}

@-o-keyframes line-scale-pulse-out
{
    0%
    {
        -o-transform: scaley(1);
           transform: scaley(1);
    }
    50%
    {
        -o-transform: scaley(.4);
           transform: scaley(.4);
    }
    100%
    {
        -o-transform: scaley(1);
           transform: scaley(1);
    }
}

@keyframes line-scale-pulse-out
{
    0%
    {
        -webkit-transform: scaley(1);
           -moz-transform: scaley(1);
             -o-transform: scaley(1);
                transform: scaley(1);
    }
    50%
    {
        -webkit-transform: scaley(.4);
           -moz-transform: scaley(.4);
             -o-transform: scaley(.4);
                transform: scaley(.4);
    }
    100%
    {
        -webkit-transform: scaley(1);
           -moz-transform: scaley(1);
             -o-transform: scaley(1);
                transform: scaley(1);
    }
}

.line-scale-pulse-out > div
{
    display: inline-block;

    width: 4px;
    height: 3.45rem;
    margin: 2px;

    -webkit-animation: line-scale-pulse-out .9s -.6s infinite cubic-bezier(.85, .25, .37, .85);
       -moz-animation: line-scale-pulse-out .9s -.6s infinite cubic-bezier(.85, .25, .37, .85);
         -o-animation: line-scale-pulse-out .9s -.6s infinite cubic-bezier(.85, .25, .37, .85);
            animation: line-scale-pulse-out .9s -.6s infinite cubic-bezier(.85, .25, .37, .85); 

    border-radius: 2px;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}
.line-scale-pulse-out > div:nth-child(2),
.line-scale-pulse-out > div:nth-child(4)
{
    -webkit-animation-delay: -.4s !important;
       -moz-animation-delay: -.4s !important;
         -o-animation-delay: -.4s !important;
            animation-delay: -.4s !important;
}
.line-scale-pulse-out > div:nth-child(1),
.line-scale-pulse-out > div:nth-child(5)
{
    -webkit-animation-delay: -.2s !important;
       -moz-animation-delay: -.2s !important;
         -o-animation-delay: -.2s !important;
            animation-delay: -.2s !important;
}

@-webkit-keyframes line-scale-pulse-out-rapid
{
    0%
    {
        -webkit-transform: scaley(1);
                transform: scaley(1);
    }
    80%
    {
        -webkit-transform: scaley(.3);
                transform: scaley(.3);
    }
    90%
    {
        -webkit-transform: scaley(1);
                transform: scaley(1);
    }
}

@-moz-keyframes line-scale-pulse-out-rapid
{
    0%
    {
        -moz-transform: scaley(1);
             transform: scaley(1);
    }
    80%
    {
        -moz-transform: scaley(.3);
             transform: scaley(.3);
    }
    90%
    {
        -moz-transform: scaley(1);
             transform: scaley(1);
    }
}

@-o-keyframes line-scale-pulse-out-rapid
{
    0%
    {
        -o-transform: scaley(1);
           transform: scaley(1);
    }
    80%
    {
        -o-transform: scaley(.3);
           transform: scaley(.3);
    }
    90%
    {
        -o-transform: scaley(1);
           transform: scaley(1);
    }
}

@keyframes line-scale-pulse-out-rapid
{
    0%
    {
        -webkit-transform: scaley(1);
           -moz-transform: scaley(1);
             -o-transform: scaley(1);
                transform: scaley(1);
    }
    80%
    {
        -webkit-transform: scaley(.3);
           -moz-transform: scaley(.3);
             -o-transform: scaley(.3);
                transform: scaley(.3);
    }
    90%
    {
        -webkit-transform: scaley(1);
           -moz-transform: scaley(1);
             -o-transform: scaley(1);
                transform: scaley(1);
    }
}

.line-scale-pulse-out-rapid > div
{
    display: inline-block;

    width: 4px;
    height: 3.45rem;
    margin: 2px;

    -webkit-animation: line-scale-pulse-out-rapid .9s -.5s infinite cubic-bezier(.11, .49, .38, .78);
       -moz-animation: line-scale-pulse-out-rapid .9s -.5s infinite cubic-bezier(.11, .49, .38, .78);
         -o-animation: line-scale-pulse-out-rapid .9s -.5s infinite cubic-bezier(.11, .49, .38, .78);
            animation: line-scale-pulse-out-rapid .9s -.5s infinite cubic-bezier(.11, .49, .38, .78); 
    vertical-align: middle;

    border-radius: 2px;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-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)
{
    -webkit-animation-delay: -.25s !important;
       -moz-animation-delay: -.25s !important;
         -o-animation-delay: -.25s !important;
            animation-delay: -.25s !important;
}
.line-scale-pulse-out-rapid > div:nth-child(1),
.line-scale-pulse-out-rapid > div:nth-child(5)
{
    -webkit-animation-delay: 0s !important;
       -moz-animation-delay: 0s !important;
         -o-animation-delay: 0s !important;
            animation-delay: 0s !important;
}

@-webkit-keyframes line-spin-fade-loader
{
    50%
    {
        opacity: .3;
    }
    100%
    {
        opacity: 1;
    }
}

@-moz-keyframes line-spin-fade-loader
{
    50%
    {
        opacity: .3;
    }
    100%
    {
        opacity: 1;
    }
}

@-o-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
{
    position: relative;
    top: -10px;
    right: -4px;
}
.line-spin-fade-loader > div:nth-child(1)
{
    top: 20px;
    right: 0;

    -webkit-animation: line-spin-fade-loader 1.2s -.84s infinite ease-in-out;
       -moz-animation: line-spin-fade-loader 1.2s -.84s infinite ease-in-out;
         -o-animation: line-spin-fade-loader 1.2s -.84s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s -.84s infinite ease-in-out;
}
.line-spin-fade-loader > div:nth-child(2)
{
    top: 13.63636px;
    right: 13.63636px;

    -webkit-transform: rotate(45deg);
       -moz-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
         -o-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-animation: line-spin-fade-loader 1.2s -.72s infinite ease-in-out;
       -moz-animation: line-spin-fade-loader 1.2s -.72s infinite ease-in-out;
         -o-animation: line-spin-fade-loader 1.2s -.72s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s -.72s infinite ease-in-out;
}
.line-spin-fade-loader > div:nth-child(3)
{
    top: 0;
    right: 20px;

    -webkit-transform: rotate(-90deg);
       -moz-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
         -o-transform: rotate(-90deg);
            transform: rotate(-90deg);
    -webkit-animation: line-spin-fade-loader 1.2s -.6s infinite ease-in-out;
       -moz-animation: line-spin-fade-loader 1.2s -.6s infinite ease-in-out;
         -o-animation: line-spin-fade-loader 1.2s -.6s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s -.6s infinite ease-in-out;
}
.line-spin-fade-loader > div:nth-child(4)
{
    top: -13.63636px;
    right: 13.63636px;

    -webkit-transform: rotate(-45deg);
       -moz-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
         -o-transform: rotate(-45deg);
            transform: rotate(-45deg);
    -webkit-animation: line-spin-fade-loader 1.2s -.48s infinite ease-in-out;
       -moz-animation: line-spin-fade-loader 1.2s -.48s infinite ease-in-out;
         -o-animation: line-spin-fade-loader 1.2s -.48s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s -.48s infinite ease-in-out;
}
.line-spin-fade-loader > div:nth-child(5)
{
    top: -20px;
    right: 0;

    -webkit-animation: line-spin-fade-loader 1.2s -.36s infinite ease-in-out;
       -moz-animation: line-spin-fade-loader 1.2s -.36s infinite ease-in-out;
         -o-animation: line-spin-fade-loader 1.2s -.36s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s -.36s infinite ease-in-out;
}
.line-spin-fade-loader > div:nth-child(6)
{
    top: -13.63636px;
    right: -13.63636px;

    -webkit-transform: rotate(45deg);
       -moz-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
         -o-transform: rotate(45deg);
            transform: rotate(45deg);
    -webkit-animation: line-spin-fade-loader 1.2s -.24s infinite ease-in-out;
       -moz-animation: line-spin-fade-loader 1.2s -.24s infinite ease-in-out;
         -o-animation: line-spin-fade-loader 1.2s -.24s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s -.24s infinite ease-in-out;
}
.line-spin-fade-loader > div:nth-child(7)
{
    top: 0;
    right: -20px;

    -webkit-transform: rotate(-90deg);
       -moz-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
         -o-transform: rotate(-90deg);
            transform: rotate(-90deg);
    -webkit-animation: line-spin-fade-loader 1.2s -.12s infinite ease-in-out;
       -moz-animation: line-spin-fade-loader 1.2s -.12s infinite ease-in-out;
         -o-animation: line-spin-fade-loader 1.2s -.12s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s -.12s infinite ease-in-out;
}
.line-spin-fade-loader > div:nth-child(8)
{
    top: 13.63636px;
    right: -13.63636px;

    -webkit-transform: rotate(-45deg);
       -moz-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
         -o-transform: rotate(-45deg);
            transform: rotate(-45deg);
    -webkit-animation: line-spin-fade-loader 1.2s 0s infinite ease-in-out;
       -moz-animation: line-spin-fade-loader 1.2s 0s infinite ease-in-out;
         -o-animation: line-spin-fade-loader 1.2s 0s infinite ease-in-out;
            animation: line-spin-fade-loader 1.2s 0s infinite ease-in-out;
}
.line-spin-fade-loader > div
{
    position: absolute;

    width: 4px;
    width: 5px;
    height: 3.45rem;
    height: 15px; 
    margin: 2px;

    border-radius: 2px;
    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

/**
 * Misc
 */
@-webkit-keyframes triangle-skew-spin
{
    25%
    {
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0);
                transform: perspective(100px) rotateX(180deg) rotateY(0);
    }
    50%
    {
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
                transform: perspective(100px) rotateX(180deg) rotateY(180deg);
    }
    75%
    {
        -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg);
                transform: perspective(100px) rotateX(0) rotateY(180deg);
    }
    100%
    {
        -webkit-transform: perspective(100px) rotateX(0) rotateY(0);
                transform: perspective(100px) rotateX(0) rotateY(0);
    }
}
@-moz-keyframes triangle-skew-spin
{
    25%
    {
        -moz-transform: perspective(100px) rotateX(180deg) rotateY(0);
             transform: perspective(100px) rotateX(180deg) rotateY(0);
    }
    50%
    {
        -moz-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
             transform: perspective(100px) rotateX(180deg) rotateY(180deg);
    }
    75%
    {
        -moz-transform: perspective(100px) rotateX(0) rotateY(180deg);
             transform: perspective(100px) rotateX(0) rotateY(180deg);
    }
    100%
    {
        -moz-transform: perspective(100px) rotateX(0) rotateY(0);
             transform: perspective(100px) rotateX(0) rotateY(0);
    }
}
@-o-keyframes triangle-skew-spin
{
    25%
    {
        transform: perspective(100px) rotateX(180deg) rotateY(0);
    }
    50%
    {
        transform: perspective(100px) rotateX(180deg) rotateY(180deg);
    }
    75%
    {
        transform: perspective(100px) rotateX(0) rotateY(180deg);
    }
    100%
    {
        transform: perspective(100px) rotateX(0) rotateY(0);
    }
}
@keyframes triangle-skew-spin
{
    25%
    {
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0);
           -moz-transform: perspective(100px) rotateX(180deg) rotateY(0);
                transform: perspective(100px) rotateX(180deg) rotateY(0);
    }
    50%
    {
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
           -moz-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
                transform: perspective(100px) rotateX(180deg) rotateY(180deg);
    }
    75%
    {
        -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg);
           -moz-transform: perspective(100px) rotateX(0) rotateY(180deg);
                transform: perspective(100px) rotateX(0) rotateY(180deg);
    }
    100%
    {
        -webkit-transform: perspective(100px) rotateX(0) rotateY(0);
           -moz-transform: perspective(100px) rotateX(0) rotateY(0);
                transform: perspective(100px) rotateX(0) rotateY(0);
    }
}

.triangle-skew-spin > div
{
    width: 0;
    height: 0;

    -webkit-animation: triangle-skew-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite;
       -moz-animation: triangle-skew-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite;
         -o-animation: triangle-skew-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite;
            animation: triangle-skew-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite; 

    border-right: 20px solid transparent;
    border-bottom: 20px solid #55595c;
    border-left: 20px solid transparent;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes square-spin
{
    25%
    {
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0);
                transform: perspective(100px) rotateX(180deg) rotateY(0);
    }
    50%
    {
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
                transform: perspective(100px) rotateX(180deg) rotateY(180deg);
    }
    75%
    {
        -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg);
                transform: perspective(100px) rotateX(0) rotateY(180deg);
    }
    100%
    {
        -webkit-transform: perspective(100px) rotateX(0) rotateY(0);
                transform: perspective(100px) rotateX(0) rotateY(0);
    }
}

@-moz-keyframes square-spin
{
    25%
    {
        -moz-transform: perspective(100px) rotateX(180deg) rotateY(0);
             transform: perspective(100px) rotateX(180deg) rotateY(0);
    }
    50%
    {
        -moz-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
             transform: perspective(100px) rotateX(180deg) rotateY(180deg);
    }
    75%
    {
        -moz-transform: perspective(100px) rotateX(0) rotateY(180deg);
             transform: perspective(100px) rotateX(0) rotateY(180deg);
    }
    100%
    {
        -moz-transform: perspective(100px) rotateX(0) rotateY(0);
             transform: perspective(100px) rotateX(0) rotateY(0);
    }
}

@-o-keyframes square-spin
{
    25%
    {
        transform: perspective(100px) rotateX(180deg) rotateY(0);
    }
    50%
    {
        transform: perspective(100px) rotateX(180deg) rotateY(180deg);
    }
    75%
    {
        transform: perspective(100px) rotateX(0) rotateY(180deg);
    }
    100%
    {
        transform: perspective(100px) rotateX(0) rotateY(0);
    }
}

@keyframes square-spin
{
    25%
    {
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0);
           -moz-transform: perspective(100px) rotateX(180deg) rotateY(0);
                transform: perspective(100px) rotateX(180deg) rotateY(0);
    }
    50%
    {
        -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
           -moz-transform: perspective(100px) rotateX(180deg) rotateY(180deg);
                transform: perspective(100px) rotateX(180deg) rotateY(180deg);
    }
    75%
    {
        -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg);
           -moz-transform: perspective(100px) rotateX(0) rotateY(180deg);
                transform: perspective(100px) rotateX(0) rotateY(180deg);
    }
    100%
    {
        -webkit-transform: perspective(100px) rotateX(0) rotateY(0);
           -moz-transform: perspective(100px) rotateX(0) rotateY(0);
                transform: perspective(100px) rotateX(0) rotateY(0);
    }
}

.square-spin > div
{
    width: 50px;
    height: 50px;

    -webkit-animation: square-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite;
       -moz-animation: square-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite;
         -o-animation: square-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite;
            animation: square-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite; 

    background: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}

@-webkit-keyframes rotate_pacman_half_up
{
    0%
    {
        -webkit-transform: rotate(-270deg);
                transform: rotate(-270deg);
    }
    50%
    {
        -webkit-transform: rotate(-360deg);
                transform: rotate(-360deg);
    }
    100%
    {
        -webkit-transform: rotate(-270deg);
                transform: rotate(-270deg);
    }
}

@-moz-keyframes rotate_pacman_half_up
{
    0%
    {
        -moz-transform: rotate(-270deg);
             transform: rotate(-270deg);
    }
    50%
    {
        -moz-transform: rotate(-360deg);
             transform: rotate(-360deg);
    }
    100%
    {
        -moz-transform: rotate(-270deg);
             transform: rotate(-270deg);
    }
}

@-o-keyframes rotate_pacman_half_up
{
    0%
    {
        -o-transform: rotate(-270deg);
           transform: rotate(-270deg);
    }
    50%
    {
        -o-transform: rotate(-360deg);
           transform: rotate(-360deg);
    }
    100%
    {
        -o-transform: rotate(-270deg);
           transform: rotate(-270deg);
    }
}

@keyframes rotate_pacman_half_up
{
    0%
    {
        -webkit-transform: rotate(-270deg);
           -moz-transform: rotate(-270deg);
             -o-transform: rotate(-270deg);
                transform: rotate(-270deg);
    }
    50%
    {
        -webkit-transform: rotate(-360deg);
           -moz-transform: rotate(-360deg);
             -o-transform: rotate(-360deg);
                transform: rotate(-360deg);
    }
    100%
    {
        -webkit-transform: rotate(-270deg);
           -moz-transform: rotate(-270deg);
             -o-transform: rotate(-270deg);
                transform: rotate(-270deg);
    }
}

@-webkit-keyframes rotate_pacman_half_down
{
    0%
    {
        -webkit-transform: rotate(-90deg);
                transform: rotate(-90deg);
    }
    50%
    {
        -webkit-transform: rotate(0deg);
                transform: rotate(0deg);
    }
    100%
    {
        -webkit-transform: rotate(-90deg);
                transform: rotate(-90deg);
    }
}

@-moz-keyframes rotate_pacman_half_down
{
    0%
    {
        -moz-transform: rotate(-90deg);
             transform: rotate(-90deg);
    }
    50%
    {
        -moz-transform: rotate(0deg);
             transform: rotate(0deg);
    }
    100%
    {
        -moz-transform: rotate(-90deg);
             transform: rotate(-90deg);
    }
}

@-o-keyframes rotate_pacman_half_down
{
    0%
    {
        -o-transform: rotate(-90deg);
           transform: rotate(-90deg);
    }
    50%
    {
        -o-transform: rotate(0deg);
           transform: rotate(0deg);
    }
    100%
    {
        -o-transform: rotate(-90deg);
           transform: rotate(-90deg);
    }
}

@keyframes rotate_pacman_half_down
{
    0%
    {
        -webkit-transform: rotate(-90deg);
           -moz-transform: rotate(-90deg);
             -o-transform: rotate(-90deg);
                transform: rotate(-90deg);
    }
    50%
    {
        -webkit-transform: rotate(0deg);
           -moz-transform: rotate(0deg);
             -o-transform: rotate(0deg);
                transform: rotate(0deg);
    }
    100%
    {
        -webkit-transform: rotate(-90deg);
           -moz-transform: rotate(-90deg);
             -o-transform: rotate(-90deg);
                transform: rotate(-90deg);
    }
}

@-webkit-keyframes pacman-balls
{
    75%
    {
        opacity: .7;
    }
    100%
    {
        -webkit-transform: translate(100px, -6.25px);
                transform: translate(100px, -6.25px);
    }
}

@-moz-keyframes pacman-balls
{
    75%
    {
        opacity: .7;
    }
    100%
    {
        -moz-transform: translate(100px, -6.25px);
             transform: translate(100px, -6.25px);
    }
}

@-o-keyframes pacman-balls
{
    75%
    {
        opacity: .7;
    }
    100%
    {
        -o-transform: translate(100px, -6.25px);
           transform: translate(100px, -6.25px);
    }
}

@keyframes pacman-balls
{
    75%
    {
        opacity: .7;
    }
    100%
    {
        -webkit-transform: translate(100px, -6.25px);
           -moz-transform: translate(100px, -6.25px);
             -o-transform: translate(100px, -6.25px);
                transform: translate(100px, -6.25px);
    }
}

.pacman
{
    position: relative;
}
.pacman > div:nth-child(2)
{
    -webkit-animation: pacman-balls 1s -.99s infinite linear;
       -moz-animation: pacman-balls 1s -.99s infinite linear;
         -o-animation: pacman-balls 1s -.99s infinite linear;
            animation: pacman-balls 1s -.99s infinite linear;
}
.pacman > div:nth-child(3)
{
    -webkit-animation: pacman-balls 1s -.66s infinite linear;
       -moz-animation: pacman-balls 1s -.66s infinite linear;
         -o-animation: pacman-balls 1s -.66s infinite linear;
            animation: pacman-balls 1s -.66s infinite linear;
}
.pacman > div:nth-child(4)
{
    -webkit-animation: pacman-balls 1s -.33s infinite linear;
       -moz-animation: pacman-balls 1s -.33s infinite linear;
         -o-animation: pacman-balls 1s -.33s infinite linear;
            animation: pacman-balls 1s -.33s infinite linear;
}
.pacman > div:nth-child(5)
{
    -webkit-animation: pacman-balls 1s 0s infinite linear;
       -moz-animation: pacman-balls 1s 0s infinite linear;
         -o-animation: pacman-balls 1s 0s infinite linear;
            animation: pacman-balls 1s 0s infinite linear;
}
.pacman > div:first-of-type
{
    position: relative;
    right: -30px; 

    width: 0;
    height: 0;

    -webkit-animation: rotate_pacman_half_up .5s 0s infinite;
       -moz-animation: rotate_pacman_half_up .5s 0s infinite;
         -o-animation: rotate_pacman_half_up .5s 0s infinite;
            animation: rotate_pacman_half_up .5s 0s infinite;

    border-top: 25px solid #55595c;
    border-right: 25px solid #55595c;
    border-bottom: 25px solid #55595c;
    border-left: 25px solid transparent;
    border-radius: 25px;
}
.pacman > div:nth-child(2)
{
    position: relative;
    right: -30px; 

    width: 0;
    height: 0;
    margin-top: -50px;

    -webkit-animation: rotate_pacman_half_down .5s 0s infinite;
       -moz-animation: rotate_pacman_half_down .5s 0s infinite;
         -o-animation: rotate_pacman_half_down .5s 0s infinite;
            animation: rotate_pacman_half_down .5s 0s infinite;

    border-top: 25px solid #55595c;
    border-right: 25px solid #55595c;
    border-bottom: 25px solid #55595c;
    border-left: 25px solid transparent;
    border-radius: 25px;
}
.pacman > div:nth-child(3),
.pacman > div:nth-child(4),
.pacman > div:nth-child(5),
.pacman > div:nth-child(6)
{
    position: absolute;
    top: 25px;
    right: 70px; 

    width: 15px;
    width: 10px;
    height: 15px;
    height: 10px;
    margin: 2px;

    -webkit-transform: translate(0, -6.25px);
       -moz-transform: translate(0, -6.25px);
        -ms-transform: translate(0, -6.25px);
         -o-transform: translate(0, -6.25px);
            transform: translate(0, -6.25px);

    border-radius: 100%;
    background-color: #55595c;
}

@-webkit-keyframes cube-transition
{
    25%
    {
        -webkit-transform: translateX(-50px) scale(.5) rotate(90deg);
                transform: translateX(-50px) scale(.5) rotate(90deg);
    }
    50%
    {
        -webkit-transform: translate(-50px, 50px) rotate(180deg);
                transform: translate(-50px, 50px) rotate(180deg);
    }
    75%
    {
        -webkit-transform: translateY(50px) scale(.5) rotate(270deg);
                transform: translateY(50px) scale(.5) rotate(270deg);
    }
    100%
    {
        -webkit-transform: rotate(360deg);
                transform: rotate(360deg);
    }
}

@-moz-keyframes cube-transition
{
    25%
    {
        -moz-transform: translateX(-50px) scale(.5) rotate(90deg);
             transform: translateX(-50px) scale(.5) rotate(90deg);
    }
    50%
    {
        -moz-transform: translate(-50px, 50px) rotate(180deg);
             transform: translate(-50px, 50px) rotate(180deg);
    }
    75%
    {
        -moz-transform: translateY(50px) scale(.5) rotate(270deg);
             transform: translateY(50px) scale(.5) rotate(270deg);
    }
    100%
    {
        -moz-transform: rotate(360deg);
             transform: rotate(360deg);
    }
}

@-o-keyframes cube-transition
{
    25%
    {
        -o-transform: translateX(-50px) scale(.5) rotate(90deg);
           transform: translateX(-50px) scale(.5) rotate(90deg);
    }
    50%
    {
        -o-transform: translate(-50px, 50px) rotate(180deg);
           transform: translate(-50px, 50px) rotate(180deg);
    }
    75%
    {
        -o-transform: translateY(50px) scale(.5) rotate(270deg);
           transform: translateY(50px) scale(.5) rotate(270deg);
    }
    100%
    {
        -o-transform: rotate(360deg);
           transform: rotate(360deg);
    }
}

@keyframes cube-transition
{
    25%
    {
        -webkit-transform: translateX(-50px) scale(.5) rotate(90deg);
           -moz-transform: translateX(-50px) scale(.5) rotate(90deg);
             -o-transform: translateX(-50px) scale(.5) rotate(90deg);
                transform: translateX(-50px) scale(.5) rotate(90deg);
    }
    50%
    {
        -webkit-transform: translate(-50px, 50px) rotate(180deg);
           -moz-transform: translate(-50px, 50px) rotate(180deg);
             -o-transform: translate(-50px, 50px) rotate(180deg);
                transform: translate(-50px, 50px) rotate(180deg);
    }
    75%
    {
        -webkit-transform: translateY(50px) scale(.5) rotate(270deg);
           -moz-transform: translateY(50px) scale(.5) rotate(270deg);
             -o-transform: translateY(50px) scale(.5) rotate(270deg);
                transform: translateY(50px) scale(.5) rotate(270deg);
    }
    100%
    {
        -webkit-transform: rotate(360deg);
           -moz-transform: rotate(360deg);
             -o-transform: rotate(360deg);
                transform: rotate(360deg);
    }
}

.cube-transition
{
    position: relative;

    -webkit-transform: translate(25px, -25px);
       -moz-transform: translate(25px, -25px);
        -ms-transform: translate(25px, -25px);
         -o-transform: translate(25px, -25px);
            transform: translate(25px, -25px);
}
.cube-transition > div
{
    position: absolute;
    top: -5px;
    right: -5px;

    width: 10px;
    height: 10px;

    -webkit-animation: cube-transition 1.6s 0s infinite ease-in-out;
       -moz-animation: cube-transition 1.6s 0s infinite ease-in-out;
         -o-animation: cube-transition 1.6s 0s infinite ease-in-out;
            animation: cube-transition 1.6s 0s infinite ease-in-out; 

    background-color: #55595c;

    -webkit-animation-fill-mode: both;
       -moz-animation-fill-mode: both;
         -o-animation-fill-mode: both;
            animation-fill-mode: both;
}
.cube-transition > div:last-child
{
    -webkit-animation-delay: -.8s;
       -moz-animation-delay: -.8s;
         -o-animation-delay: -.8s;
            animation-delay: -.8s;
}

@-webkit-keyframes spin-rotate
{
    0%
    {
        -webkit-transform: rotate(0deg);
                transform: rotate(0deg);
    }
    50%
    {
        -webkit-transform: rotate(-180deg);
                transform: rotate(-180deg);
    }
    100%
    {
        -webkit-transform: rotate(-360deg);
                transform: rotate(-360deg);
    }
}

@-moz-keyframes spin-rotate
{
    0%
    {
        -moz-transform: rotate(0deg);
             transform: rotate(0deg);
    }
    50%
    {
        -moz-transform: rotate(-180deg);
             transform: rotate(-180deg);
    }
    100%
    {
        -moz-transform: rotate(-360deg);
             transform: rotate(-360deg);
    }
}

@-o-keyframes spin-rotate
{
    0%
    {
        -o-transform: rotate(0deg);
           transform: rotate(0deg);
    }
    50%
    {
        -o-transform: rotate(-180deg);
           transform: rotate(-180deg);
    }
    100%
    {
        -o-transform: rotate(-360deg);
           transform: rotate(-360deg);
    }
}

@keyframes spin-rotate
{
    0%
    {
        -webkit-transform: rotate(0deg);
           -moz-transform: rotate(0deg);
             -o-transform: rotate(0deg);
                transform: rotate(0deg);
    }
    50%
    {
        -webkit-transform: rotate(-180deg);
           -moz-transform: rotate(-180deg);
             -o-transform: rotate(-180deg);
                transform: rotate(-180deg);
    }
    100%
    {
        -webkit-transform: rotate(-360deg);
           -moz-transform: rotate(-360deg);
             -o-transform: rotate(-360deg);
                transform: rotate(-360deg);
    }
}

.semi-circle-spin
{
    position: relative;

    overflow: hidden; 

    width: 35px;
    height: 35px;
}
.semi-circle-spin > div
{
    position: absolute;

    width: 100%;
    height: 100%; 

    -webkit-animation: spin-rotate .6s 0s infinite linear;
       -moz-animation: spin-rotate .6s 0s infinite linear;
         -o-animation: spin-rotate .6s 0s infinite linear;
            animation: spin-rotate .6s 0s infinite linear;

    border-width: 0;
    border-radius: 100%;
    background-image: -webkit-gradient(linear, right top, right bottom, from(transparent), color-stop(70%, transparent), color-stop(30%, #55595c), to(#55595c));
    background-image: -webkit-linear-gradient(transparent 0%, transparent 70%, #55595c 30%, #55595c 100%);
    background-image:    -moz-linear-gradient(transparent 0%, transparent 70%, #55595c 30%, #55595c 100%);
    background-image:      -o-linear-gradient(transparent 0%, transparent 70%, #55595c 30%, #55595c 100%);
    background-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(70%, transparent), color-stop(30%, #55595c), to(#55595c));
    background-image:         linear-gradient(transparent 0%, transparent 70%, #55595c 30%, #55595c 100%);
}

.loader-wrapper
{
    position: relative;
}

.loader-container
{
    position: absolute;
    top: 50%;
    right: 50%;

    margin: 0;
    margin-left: -50%;

    -webkit-transform: translate(50%, -50%);
       -moz-transform: translate(50%, -50%);
        -ms-transform: translate(50%, -50%);
         -o-transform: translate(50%, -50%);
            transform: translate(50%, -50%);
}

#preloader-wrapper
{
    position: fixed;
    z-index: 1050; 
    top: 0;
    right: 0;

    width: 100%;
    height: 100%;
}

#preloader-wrapper .loader-section
{
    position: fixed;
    z-index: 1050; 

    width: 100%;
    height: 51%;

    background: #222;
}

#preloader-wrapper .loader-section.section-top
{
    top: 0;
}

#preloader-wrapper .loader-section.section-bottom
{
    bottom: 0;
}

#loader
{
    position: absolute;
    z-index: 1051;
    top: 50%;
    right: 50%;

    display: block;

    width: 60px;
    height: 60px;
    margin-left: -50%;

    -webkit-transform: translate(50%, -50%);
       -moz-transform: translate(50%, -50%);
        -ms-transform: translate(50%, -50%);
         -o-transform: translate(50%, -50%);
            transform: translate(50%, -50%);
    /* anything higher than z-index: 1000 of .loader-section */
}

/* Loaded */
.loaded #preloader-wrapper .loader-section.section-top
{
    -webkit-transform: translateY(-100%);
    /* IE 9 */
       -moz-transform: translateY(-100%);
    /* Chrome, Opera 15+, Safari 3.1+ */
        -ms-transform: translateY(-100%);
         -o-transform: translateY(-100%);
            transform: translateY(-100%);
    /* Firefox 16+, IE 10+, Opera */
}

.loaded #preloader-wrapper .loader-section.section-bottom
{
    -webkit-transform: translateY(100%);
    /* IE 9 */
       -moz-transform: translateY(100%);
    /* Chrome, Opera 15+, Safari 3.1+ */
        -ms-transform: translateY(100%);
         -o-transform: translateY(100%);
            transform: translateY(100%);
    /* Firefox 16+, IE 10+, Opera */
}

.loaded #loader
{
    opacity: 0;
}

.loaded #preloader-wrapper
{
    visibility: hidden;
}

.loaded #loader
{
    -webkit-transition: all .3s ease-out;
       -moz-transition: all .3s ease-out;
         -o-transition: all .3s ease-out;
            transition: all .3s ease-out; 

    opacity: 0;
}

.loaded #preloader-wrapper .loader-section.section-bottom,
.loaded #preloader-wrapper .loader-section.section-top
{
    -webkit-transition: all .7s .3s cubic-bezier(.645, .045, .355, 1);
       -moz-transition: all .7s .3s cubic-bezier(.645, .045, .355, 1);
         -o-transition: all .7s .3s cubic-bezier(.645, .045, .355, 1);
            transition: all .7s .3s cubic-bezier(.645, .045, .355, 1);
}
