
@media (min-width:901px) {
  body{ -ms-touch-action: none; touch-action: none; } /* optional for touch/pointer events */
}

@media (min-width:768px) {
  /* Pulse Shrink */
  @-webkit-keyframes pulse-shrink {
    35% { -webkit-transform: scale(0.9); transform: scale(0.95); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in;
    }
    45% {
     -webkit-transform: scale(1.1); transform: scale(1.0);  -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in;
    }
    75% { -webkit-transform: scale(0.9); transform: scale(0.92); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out;
    }
    85% { -webkit-transform: scale(0.9); transform: scale(1.0); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out;
    }
  }
  @keyframes pulse-shrink {
    35% { -webkit-transform: scale(0.9); transform: scale(0.95); animation-timing-function: ease-in;
    }
    45% {
     -webkit-transform: scale(1.1); transform: scale(1.0);  animation-timing-function: ease-in;
    }
    75% { -webkit-transform: scale(0.9); transform: scale(0.92); animation-timing-function: ease-out;
    }
    85% { -webkit-transform: scale(0.9); transform: scale(1.0); animation-timing-function: ease-out;
    }
  }
  .pulse-shrink {
    display: inline-block;
    vertical-align: middle;
    -webkit-transform: perspective(1px) translateZ(0);
    transform: perspective(1px) translateZ(0);
    box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  }
  .pulse-shrink:hover, .pulse-shrink:focus, .pulse-shrink:active {
    -webkit-animation-name: pulse-shrink;
    animation-name: pulse-shrink;
    -webkit-animation-duration: .5s;
    animation-duration: .5s;
    -animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-direction: alternate;
    animation-direction: alternate;
  }

  @-webkit-keyframes pulse-shrink2 {
    35% { -webkit-transform: scale(0.95); transform: scale(0.95); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out;
    }
    55% { -webkit-transform: scale(0.9); transform: scale(1.05);
    }
    90% { -webkit-transform: scale(0.95); transform: scale(0.95);
    }
  }
  @keyframes pulse-shrink2 {
    35% { -webkit-transform: scale(0.98); transform: scale(0.98); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out;
    }
    55% { -webkit-transform: scale(1.02); transform: scale(1.02);
    }
    90% { -webkit-transform: scale(0.98); transform: scale(0.98);
    }
  }
  .pulse-shrink2 {
    display: inline-block;
    vertical-align: middle;
    -webkit-transform: perspective(1px) translateZ(0);
    transform: perspective(1px) translateZ(0);
    box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  }
  .pulse-shrink2:hover {
    -webkit-animation-name: pulse-shrink2;
    animation-name: pulse-shrink2;
    -webkit-animation-duration: .7s;
    animation-duration: .7s;
    -webkit-animation-timing-function:linear;
    animation-timing-function:linear;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-direction: alternate;
    animation-direction: alternate;
  }

  @-webkit-keyframes pulse-shrink3 {
    35% { -webkit-transform: scale(0.9); transform: scale(0.9);
    }
    60% { -webkit-transform: scale(1.0); transform: scale(1.0);
    }
    100% { -webkit-transform: scale(0.9); transform: scale(0.9); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in;
    } 
  }
  @keyframes pulse-shrink3 {
    35% { -webkit-transform: scale(0.96); transform: scale(0.96);
    }
    60% { -webkit-transform: scale(1.0); transform: scale(1.0);
    }
    100% { -webkit-transform: scale(0.96); transform: scale(0.96); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in;
    } 
  }
  .pulse-shrink3 {
    display: inline-block;
    vertical-align: middle;
    -webkit-transform: perspective(1px) translateZ(0);
    transform: perspective(1px) translateZ(0);
    box-shadow: 0 0 1px rgba(0, 0, 0, 0);
  }
  .pulse-shrink3:hover {
    -webkit-animation-name: pulse-shrink3;
    animation-name: pulse-shrink3;
    -webkit-animation-duration: 0.4s;
    animation-duration: 0.4s;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-direction: alternate;
    animation-direction: alternate;
  }

  .shake-slow { display: inherit; transform-origin: center center; animation-play-state: running; }
  .shake-slow:active { animation-play-state: paused; }

  @keyframes shake-slow {
    2%  { transform:  rotate(-0.5deg); }
    4%  { transform:  rotate(-1.0deg); }
    6%  { transform:  rotate(1.0deg); }
    8%  { transform:  rotate(1.5deg); }
    10% { transform: scale(0.99) rotate(-0.5deg); }
    12% { transform:  rotate(1.5deg); }
    14% { transform: scale(1.0)  rotate(2.0deg); }
    16% { transform:  rotate(1.0deg); }
    18% { transform:  rotate(1.5deg); }
    20% { transform: scale(0.99) rotate(-1.0deg); }
    22% { transform: rotate(1.5deg); }
    24% { transform:  rotate(-0.5deg); }
    26% { transform: rotate(2.0deg); }
    28% { transform: rotate(1.0deg); }
    30% { transform: scale(1.0) rotate(1.0deg); }
    32% { transform: rotate(-1.0deg); }
    34% { transform: rotate(-1.5deg); }
    36% { transform: rotate(0.5deg); }
    38% { transform: scale(1.02) rotate(-0.5deg); }
    40% { transform:  rotate(0.5deg); }
    42% { transform: rotate(1.5deg); }
    44% { transform:  rotate(-1.5deg); }
    46% { transform:  rotate(-1.5deg); }
    48% { transform: rotate(-0.5deg); }
    50% { transform:  rotate(-1.0deg); }
    52% { transform: rotate(-0.5deg); }
    54% { transform:  scale(0.99) rotate(-1.0deg); }
    56% { transform:  rotate(-1.0deg); }
    58% { transform:  rotate(-1.5deg); }
    60% { transform:  scale(0.95) rotate(2.0deg); }
    62% { transform:  rotate(-0.5deg); }
    64% { transform:  rotate(1.0deg); }
    66% { transform:  scale(0.96) rotate(1.5deg); }
    68% { transform: rotate(-1.0deg); }
    70% { transform:  rotate(0.5deg); }
    72% { transform:  rotate(0.5deg); }
    74% { transform:  rotate(2.0deg); }
    76% { transform: rotate(2.0deg); }
    78% { transform:  scale(1.0) rotate(0.5deg); }
    80% { transform: rotate(1.5deg); }
    82% { transform:  rotate(1.5deg); }
    84% { transform: rotate(-0.5deg); }
    86% { transform:  rotate(2.0deg); }
    88% { transform: rotate(-1.5deg); }
    90% { transform: scale(0.97) rotate(-1.0deg); }
    92% { transform:  rotate(2.0deg); }
    94% { transform: rotate(1.0deg); }
    96% { transform:rotate(1.0deg); }
    98% { transform:  rotate(-0.5deg); }
    0%, 100% { transform:  rotate(0); } }

  .shake-slow:hover {
    animation-name: shake-slow;
    animation-duration: 8s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite; }
}