/* Pulse */
@-webkit-keyframes pulse {
  0% {
    -webkit-transform: scale3d(1, 1, 1); }
  50% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1); }
  100% {
    -webkit-transform: scale3d(1, 1, 1); } }
@-moz-keyframes pulse {
  0% {
    -moz-transform: scale3d(1, 1, 1); }
  50% {
    -moz-transform: scale3d(1.1, 1.1, 1.1); }
  100% {
    -moz-transform: scale3d(1, 1, 1); } }
@-o-keyframes pulse {
  0% {
    -o-transform: scale3d(1, 1, 1); }
  50% {
    -o-transform: scale3d(1.1, 1.1, 1.1); }
  100% {
    -o-transform: scale3d(1, 1, 1); } }
@keyframes pulse {
  0% {
    transform: scale3d(1, 1, 1); }
  50% {
    transform: scale3d(1.1, 1.1, 1.1); }
  100% {
    transform: scale3d(1, 1, 1); } }

.u--pulse {
  -webkit-animation: pulse 2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  -moz-animation: pulse 2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  -o-animation: pulse 2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  animation: pulse 2s cubic-bezier(0.445, 0.05, 0.55, 0.95); }

/* Flash */
@-webkit-keyframes flash {
  0%, 50%, 100% {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }
@-moz-keyframes flash {
  0%, 50%, 100% {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }
@-o-keyframes flash {
  0%, 50%, 100% {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }
@keyframes flash {
  0%, 50%, 100% {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }

.u--flash {
  -webkit-animation: flash 2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  -moz-animation: flash 2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  -o-animation: flash 2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  animation: flash 2s cubic-bezier(0.445, 0.05, 0.55, 0.95); }

/* Bounce */
@-webkit-keyframes bounce {
  0%, 20%, 53%, 80%, 100% {
    -webkit-transform: translate3d(0, 0, 0); }
  40%, 43% {
    -webkit-transform: translate3d(0, -6vh, 0); }
  70% {
    -webkit-transform: translate3d(0, -3vh, 0); }
  90% {
    -webkit-transform: translate3d(0, -1vh, 0); } }
@-moz-keyframes bounce {
  0%, 20%, 53%, 80%, 100% {
    -moz-transform: translate3d(0, 0, 0); }
  40%, 43% {
    -moz-transform: translate3d(0, -6vh, 0); }
  70% {
    -moz-transform: translate3d(0, -3vh, 0); }
  90% {
    -moz-transform: translate3d(0, -1vh, 0); } }
@-o-keyframes bounce {
  0%, 20%, 53%, 80%, 100% {
    -o-transform: translate3d(0, 0, 0); }
  40%, 43% {
    -o-transform: translate3d(0, -6vh, 0); }
  70% {
    -o-transform: translate3d(0, -3vh, 0); }
  90% {
    -o-transform: translate3d(0, -1vh, 0); } }
@keyframes bounce {
  0%, 20%, 53%, 80%, 100% {
    transform: translate3d(0, 0, 0); }
  40%, 43% {
    transform: translate3d(0, -6vh, 0); }
  70% {
    transform: translate3d(0, -3vh, 0); }
  90% {
    transform: translate3d(0, -1vh, 0); } }

.u--bounce {
  -webkit-animation: bounce 2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  -moz-animation: bounce 2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  -o-animation: bounce 2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  animation: bounce 2s cubic-bezier(0.445, 0.05, 0.55, 0.95); }

/* Shake */
@-webkit-keyframes shake {
  0%, 100% {
    -webkit-transform: translate3d(0, 0, 0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-1vw, 0, 0); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(1vw, 0, 0); } }
@-moz-keyframes shake {
  0%, 100% {
    -moz-transform: translate3d(0, 0, 0); }
  10%, 30%, 50%, 70%, 90% {
    -moz-transform: translate3d(-1vw, 0, 0); }
  20%, 40%, 60%, 80% {
    -moz-transform: translate3d(1vw, 0, 0); } }
@-o-keyframes shake {
  0%, 100% {
    -o-transform: translate3d(0, 0, 0); }
  10%, 30%, 50%, 70%, 90% {
    -o-transform: translate3d(-1vw, 0, 0); }
  20%, 40%, 60%, 80% {
    -o-transform: translate3d(1vw, 0, 0); } }
@keyframes shake {
  0%, 100% {
    transform: translate3d(0, 0, 0); }
  10%, 30%, 50%, 70%, 90% {
    transform: translate3d(-1vw, 0, 0); }
  20%, 40%, 60%, 80% {
    transform: translate3d(1vw, 0, 0); } }

.u--shake {
  -webkit-animation: shake 2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  -moz-animation: shake 2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  -o-animation: shake 2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  animation: shake 2s cubic-bezier(0.445, 0.05, 0.55, 0.95); }

/* Swing */
@-webkit-keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg); }
  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg); }
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg); }
  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg); }
  100% {
    -webkit-transform: rotate3d(0, 0, 1, 0deg); } }
@-moz-keyframes swing {
  20% {
    -moz-transform: rotate3d(0, 0, 1, 15deg); }
  40% {
    -moz-transform: rotate3d(0, 0, 1, -10deg); }
  60% {
    -moz-transform: rotate3d(0, 0, 1, 5deg); }
  80% {
    -moz-transform: rotate3d(0, 0, 1, -5deg); }
  100% {
    -moz-transform: rotate3d(0, 0, 1, 0deg); } }
@-o-keyframes swing {
  20% {
    -o-transform: rotate3d(0, 0, 1, 15deg); }
  40% {
    -o-transform: rotate3d(0, 0, 1, -10deg); }
  60% {
    -o-transform: rotate3d(0, 0, 1, 5deg); }
  80% {
    -o-transform: rotate3d(0, 0, 1, -5deg); }
  100% {
    -o-transform: rotate3d(0, 0, 1, 0deg); } }
@keyframes swing {
  20% {
    transform: rotate3d(0, 0, 1, 15deg); }
  40% {
    transform: rotate3d(0, 0, 1, -10deg); }
  60% {
    transform: rotate3d(0, 0, 1, 5deg); }
  80% {
    transform: rotate3d(0, 0, 1, -5deg); }
  100% {
    transform: rotate3d(0, 0, 1, 0deg); } }

.u--swing {
  -webkit-transform-origin: top center;
  -moz-transform-origin: top center;
  -o-transform-origin: top center;
  transform-origin: top center;
  -webkit-animation: swing 2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  -moz-animation: swing 2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  -o-animation: swing 2s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  animation: swing 2s cubic-bezier(0.445, 0.05, 0.55, 0.95); }