.text-shadow-drop-center {
    -webkit-animation: text-shadow-drop-center .6s both;
    animation: text-shadow-drop-center .6s both
}

.text-shadow-pop-top {
    -webkit-animation: text-shadow-pop-top .6s both;
    animation: text-shadow-pop-top .6s both
}

.text-pop-up-top {
    -webkit-animation: text-pop-up-top .5s cubic-bezier(.25, .46, .45, .94) both;
    animation: text-pop-up-top .5s cubic-bezier(.25, .46, .45, .94) both
}

.flicker-1 {
    -webkit-animation: flicker-1 2s linear infinite both;
    animation: flicker-1 2s linear infinite both
}

.heartbeat {
    -webkit-animation: heartbeat 1.5s ease-in-out infinite both;
    animation: heartbeat 1.5s ease-in-out infinite both
}

.blink-1 {
    -webkit-animation: blink-1 .6s both;
    animation: blink-1 .6s both
}

.kenburns {
    -webkit-animation: kenburns 25s ease-out both;
    animation: kenburns 25s ease-out both
}

.kenburns-left {
    -webkit-animation: kenburns-left 25s ease-out both;
    animation: kenburns-left 25s ease-out both
}

.kenburns-right {
    -webkit-animation: kenburns-right 25s ease-out both;
    animation: kenburns-right 25s ease-out both
}

.kenburns-top {
    -webkit-animation: kenburns-top 25s ease-out both;
    animation: kenburns-top 25s ease-out both
}

.kenburns-bottom {
    -webkit-animation: kenburns-bottom 25s ease-out both;
    animation: kenburns-bottom 25s ease-out both
}

.kenburns-bottom-left {
    -webkit-animation: kenburns-bottom-left 25s ease-out both;
    animation: kenburns-bottom-left 25s ease-out both
}

.kenburns-bottom-right {
    -webkit-animation: kenburns-bottom-right 25s ease-out both;
    animation: kenburns-bottom-right 25s ease-out both
}

.kenburns-top-left {
    -webkit-animation: kenburns-top-left 25s ease-out both;
    animation: kenburns-top-left 25s ease-out both
}

.kenburns-top-right {
    -webkit-animation: kenburns-top-right 25s ease-out both;
    animation: kenburns-top-right 25s ease-out both
}


@keyframes kenburns-bottom-left {
    0% {
        transform: scale(1) translate(0,0);
        transform-origin: 16% 84%;
    }

    100% {
        transform: scale(1.25) translate(-20px,15px);
        transform-origin: left bottom;
    }
}

@keyframes kenburns-bottom-right {
    0% {
        transform: scale(1) translate(0,0);
        transform-origin: 84% 84%;
    }

    100% {
        transform: scale(1.25) translate(20px,15px);
        transform-origin: right bottom;
    }
}

@keyframes kenburns-bottom {
    0% {
        transform: scale(1) translateY(0);
        transform-origin: 50% 84%;
    }

    100% {
        transform: scale(1.25) translateY(15px);
        transform-origin: bottom;
    }
}

@keyframes kenburns-left {
    0% {
        transform: scale(1) translate(0,0);
        transform-origin: 16% 50%;
    }

    100% {
        transform: scale(1.25) translate(-20px,15px);
        transform-origin: left;
    }
}

@keyframes kenburns-right {
    0% {
        transform: scale(1) translate(0,0);
        transform-origin: 84% 50%;
    }

    100% {
        transform: scale(1.25) translateX(20px);
        transform-origin: right;
    }
}

@keyframes kenburns-top-left {
    0% {
        transform: scale(1) translate(0,0);
        transform-origin: 16% 16%;
    }

    100% {
        transform: scale(1.25) translate(-20px,-15px);
        transform-origin: top left;
    }
}

@keyframes kenburns-top-right {
    0% {
        transform: scale(1) translate(0,0);
        transform-origin: 84% 16%;
    }

    100% {
        transform: scale(1.25) translate(20px,-15px);
        transform-origin: right top;
    }
}

@keyframes kenburns {
    0% {
        transform: scale(1) translateY(0);
        transform-origin: 50% 16%;
    }

    100% {
        transform: scale(1.25) translateY(-15px);
        transform-origin: top;
    }
}

@keyframes text-shadow-drop-center {
    0% {
        text-shadow: 0 0 0 rgba(0,0,0,0);
    }

    100% {
        text-shadow: 0 0 18px rgba(0,0,0,0.35);
    }
}

@keyframes text-shadow-pop-top {
    0% {
        text-shadow: 0 0 #555555, 0 0 #555555, 0 0 #555555, 0 0 #555555, 0 0 #555555, 0 0 #555555, 0 0 #555555, 0 0 #555555;
        transform: translateY(0);
    }

    100% {
        text-shadow: 0 -1px #555555, 0 -2px #555555, 0 -3px #555555, 0 -4px #555555, 0 -5px #555555, 0 -6px #555555, 0 -7px #555555, 0 -8px #555555;
        transform: translateY(8px);
    }
}

@keyframes flicker-1 {
    0%, 100% {
        opacity: 1;
    }

    41.99% {
        opacity: 1;
    }

    42% {
        opacity: 0;
    }

    43% {
        opacity: 0;
    }

    43.01% {
        opacity: 1;
    }

    47.99% {
        opacity: 1;
    }

    48% {
        opacity: 0;
    }

    49% {
        opacity: 0;
    }

    49.01% {
        opacity: 1;
    }
}

@keyframes blink-1 {
    0%, 50%, 100% {
        opacity: 1;
    }

    25%, 75% {
        opacity: 0;
    }
}

@keyframes heartbeat {
    from {
        transform: scale(1);
        transform-origin: center center;
        animation-timing-function: ease-out;
    }

    10% {
        transform: scale(0.91);
        animation-timing-function: ease-in;
    }

    17% {
        transform: scale(0.98);
        animation-timing-function: ease-out;
    }

    33% {
        transform: scale(0.87);
        animation-timing-function: ease-in;
    }

    45% {
        transform: scale(1);
        animation-timing-function: ease-out;
    }
}


/** buzzvid **/

.glitch {
    animation: glitch 1s linear infinite, glitch-color 3s ease-in infinite;
}

@keyframes glitch-color {
    85% {
        -webkit-filter: hue-rotate(0deg);
    }
    99% {
        -webkit-filter: hue-rotate(360deg);
    }
}

@keyframes glitch {
    2%, 64% {
        transform: translate(2px, 0) skew(0deg);
    }
    4%, 60% {
        transform: translate(-2px, 0) skew(0deg);
    }
    62% {
        transform: translate(0, 0) skew(9deg);
    }
}

.glitch:before {
    animation: glitchTop 1s linear infinite;
    clip-path: polygon(0 0, 100% 0, 100% 33%, 0 33%);
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 33%, 0 33%);
}

@keyframes glitchTop {
    2%, 64% {
        transform: translate(2px, -2px);
    }
    4%, 60% {
        transform: translate(-2px, 2px);
    }
    62% {
        transform: translate(13px, -1px) skew(-13deg);
    }
}

.glitch:after {
    animation: glitchBotom 1.5s linear infinite;
    clip-path: polygon(0 67%, 100% 67%, 100% 100%, 0 100%);
    -webkit-clip-path: polygon(0 67%, 100% 67%, 100% 100%, 0 100%);
}

@keyframes glitchBotom {
    2%, 64% {
        transform: translate(-2px, 0);
    }
    4%, 60% {
        transform: translate(-2px, 0);
    }
    62% {
        transform: translate(-22px, 5px) skew(21deg);
    }
}

/* filter effects */

.filter-blur {
    -webkit-animation: filter-blur 9s infinite;
}

@-webkit-keyframes filter-blur {
    0%,
    100% {
        -webkit-filter: blur(0px);
    }
    50% {
        -webkit-filter: blur(2px);
    }
}

.filter-hue {
    -webkit-animation: filter-hue 9s infinite;
}

@-webkit-keyframes filter-hue {
    0%,
    100% {
        -webkit-filter: hue-rotate(0deg);
    }
    50% {
        -webkit-filter: hue-rotate(180deg);
    }
}

.filter-saturate {
    -webkit-animation: filter-saturate 9s infinite;
}

@-webkit-keyframes filter-saturate {
    0%,
    100% {
        -webkit-filter: saturate(0%);
    }
    50% {
        -webkit-filter: saturate(100%);
    }
}

.filter-brightness {
    -webkit-animation: filter-brightness 9s infinite;
}

@-webkit-keyframes filter-brightness {
    0%,
    100% {
        -webkit-filter: brightness(none);
    }
    50% {
        -webkit-filter: brightness(2);
    }
}

.filter-psychedelic {
    -webkit-animation: filter-psychedelic 9s infinite;
}

@-webkit-keyframes filter-psychedelic {
    0%,
    100% {
        -webkit-filter: blur(0px) brightness(none) hue-rotate(0deg) saturate(0);
    }
    50% {
        -webkit-filter: brightness(3) blur(2px) hue-rotate(180deg) saturate(2);
    }
}

.filter-glow {
    -webkit-animation: filter-glow 9s infinite;
}

@-webkit-keyframes filter-glow {
    0%,
    100% {
        -webkit-filter: drop-shadow(2px 2px 2px white);
    }
    50% {
        -webkit-filter: drop-shadow(2px 2px 10px yellow);
    }
}

.filter-coma {
    -webkit-animation: filter-coma 9s infinite;
}

@-webkit-keyframes filter-coma {
    0%,
    100% {
        -webkit-filter: invert(0%);
    }
    50% {
        -webkit-filter: invert(100%);
    }
}

.filter-fade-to-black {
    -webkit-animation: filter-fade-to-black 9s infinite;
}

@-webkit-keyframes filter-fade-to-black {
    0%,
    100% {
        -webkit-filter: invert(0%);
    }
    50% {
        -webkit-filter: invert(50%);
    }
}


.filter-flashback {
    -webkit-animation: filter-flashback 9s infinite;
}

@-webkit-keyframes filter-flashback {
    0%,
    100% {
        -webkit-filter: sepia(0%);
    }
    50% {
        -webkit-filter: sepia(100%);
    }
}


.gradient-light {
    -webkit-mask-image: linear-gradient(to right, transparent, #fff, transparent);
    -webkit-mask-size: 300% 100%;
    mask-image: linear-gradient(to right, transparent, #fff, transparent);
    mask-size: 300% 100%;
    animation: clip-fade 5s infinite alternate;
}

@keyframes clip-fade {
    100% {
        -webkit-mask-position: right;
        mask-position: right;
    }
}