 @-webkit-keyframes wrench {
    0% {
      -webkit-transform: rotate(-12deg);
      transform: rotate(-12deg);
    }
  
    8% {
      -webkit-transform: rotate(12deg);
      transform: rotate(12deg);
    }
  
    10% {
      -webkit-transform: rotate(24deg);
      transform: rotate(24deg);
    }
  
    18% {
      -webkit-transform: rotate(-24deg);
      transform: rotate(-24deg);
    }
  
    20% {
      -webkit-transform: rotate(-24deg);
      transform: rotate(-24deg);
    }
  
    28% {
      -webkit-transform: rotate(24deg);
      transform: rotate(24deg);
    }
  
    30% {
      -webkit-transform: rotate(24deg);
      transform: rotate(24deg);
    }
  
    38% {
      -webkit-transform: rotate(-24deg);
      transform: rotate(-24deg);
    }
  
    40% {
      -webkit-transform: rotate(-24deg);
      transform: rotate(-24deg);
    }
  
    48% {
      -webkit-transform: rotate(24deg);
      transform: rotate(24deg);
    }
  
    50% {
      -webkit-transform: rotate(24deg);
      transform: rotate(24deg);
    }
  
    58% {
      -webkit-transform: rotate(-24deg);
      transform: rotate(-24deg);
    }
  
    60% {
      -webkit-transform: rotate(-24deg);
      transform: rotate(-24deg);
    }
  
    68% {
      -webkit-transform: rotate(24deg);
      transform: rotate(24deg);
    }
  
    75% {
      -webkit-transform: rotate(0deg);
      transform: rotate(0deg);
    }
  }
  
  @keyframes wrench {
    0% {
      -webkit-transform: rotate(-12deg);
      -ms-transform: rotate(-12deg);
      transform: rotate(-12deg);
    }
  
    8% {
      -webkit-transform: rotate(12deg);
      -ms-transform: rotate(12deg);
      transform: rotate(12deg);
    }
  
    10% {
      -webkit-transform: rotate(24deg);
      -ms-transform: rotate(24deg);
      transform: rotate(24deg);
    }
  
    18% {
      -webkit-transform: rotate(-24deg);
      -ms-transform: rotate(-24deg);
      transform: rotate(-24deg);
    }
  
    20% {
      -webkit-transform: rotate(-24deg);
      -ms-transform: rotate(-24deg);
      transform: rotate(-24deg);
    }
  
    28% {
      -webkit-transform: rotate(24deg);
      -ms-transform: rotate(24deg);
      transform: rotate(24deg);
    }
  
    30% {
      -webkit-transform: rotate(24deg);
      -ms-transform: rotate(24deg);
      transform: rotate(24deg);
    }
  
    38% {
      -webkit-transform: rotate(-24deg);
      -ms-transform: rotate(-24deg);
      transform: rotate(-24deg);
    }
  
    40% {
      -webkit-transform: rotate(-24deg);
      -ms-transform: rotate(-24deg);
      transform: rotate(-24deg);
    }
  
    48% {
      -webkit-transform: rotate(24deg);
      -ms-transform: rotate(24deg);
      transform: rotate(24deg);
    }
  
    50% {
      -webkit-transform: rotate(24deg);
      -ms-transform: rotate(24deg);
      transform: rotate(24deg);
    }
  
    58% {
      -webkit-transform: rotate(-24deg);
      -ms-transform: rotate(-24deg);
      transform: rotate(-24deg);
    }
  
    60% {
      -webkit-transform: rotate(-24deg);
      -ms-transform: rotate(-24deg);
      transform: rotate(-24deg);
    }
  
    68% {
      -webkit-transform: rotate(24deg);
      -ms-transform: rotate(24deg);
      transform: rotate(24deg);
    }
  
    75% {
      -webkit-transform: rotate(0deg);
      -ms-transform: rotate(0deg);
      transform: rotate(0deg);
    }
  }
  
  .icon-wrench.animated,
  .icon-wrench.animated-hover:hover,
  .icon-parent.animated-hover:hover > .icon-wrench {
    -webkit-animation: wrench 2.5s ease infinite;
    animation: wrench 2.5s ease infinite;
    -ms-transform-origin-x: 90%;
    -ms-transform-origin-y: 35%;
    -ms-transform-origin-z: initial;
  }
  
  /* BELL */
  
  @-webkit-keyframes ring {
    0% {
      -webkit-transform: rotate(-15deg);
      transform: rotate(-15deg);
    }
  
    2% {
      -webkit-transform: rotate(15deg);
      transform: rotate(15deg);
    }
  
    4% {
      -webkit-transform: rotate(-18deg);
      transform: rotate(-18deg);
    }
  
    6% {
      -webkit-transform: rotate(18deg);
      transform: rotate(18deg);
    }
  
    8% {
      -webkit-transform: rotate(-22deg);
      transform: rotate(-22deg);
    }
  
    10% {
      -webkit-transform: rotate(22deg);
      transform: rotate(22deg);
    }
  
    12% {
      -webkit-transform: rotate(-18deg);
      transform: rotate(-18deg);
    }
  
    14% {
      -webkit-transform: rotate(18deg);
      transform: rotate(18deg);
    }
  
    16% {
      -webkit-transform: rotate(-12deg);
      transform: rotate(-12deg);
    }
  
    18% {
      -webkit-transform: rotate(12deg);
      transform: rotate(12deg);
    }
  
    20% {
      -webkit-transform: rotate(0deg);
      transform: rotate(0deg);
    }
  }
  
  @keyframes ring {
    0% {
      -webkit-transform: rotate(-15deg);
      -ms-transform: rotate(-15deg);
      transform: rotate(-15deg);
    }
  
    2% {
      -webkit-transform: rotate(15deg);
      -ms-transform: rotate(15deg);
      transform: rotate(15deg);
    }
  
    4% {
      -webkit-transform: rotate(-18deg);
      -ms-transform: rotate(-18deg);
      transform: rotate(-18deg);
    }
  
    6% {
      -webkit-transform: rotate(18deg);
      -ms-transform: rotate(18deg);
      transform: rotate(18deg);
    }
  
    8% {
      -webkit-transform: rotate(-22deg);
      -ms-transform: rotate(-22deg);
      transform: rotate(-22deg);
    }
  
    10% {
      -webkit-transform: rotate(22deg);
      -ms-transform: rotate(22deg);
      transform: rotate(22deg);
    }
  
    12% {
      -webkit-transform: rotate(-18deg);
      -ms-transform: rotate(-18deg);
      transform: rotate(-18deg);
    }
  
    14% {
      -webkit-transform: rotate(18deg);
      -ms-transform: rotate(18deg);
      transform: rotate(18deg);
    }
  
    16% {
      -webkit-transform: rotate(-12deg);
      -ms-transform: rotate(-12deg);
      transform: rotate(-12deg);
    }
  
    18% {
      -webkit-transform: rotate(12deg);
      -ms-transform: rotate(12deg);
      transform: rotate(12deg);
    }
  
    20% {
      -webkit-transform: rotate(0deg);
      -ms-transform: rotate(0deg);
      transform: rotate(0deg);
    }
  }
  
  .icon-ring.animated,
  .icon-ring.animated-hover:hover,
  .icon-parent.animated-hover:hover > .icon-ring {
    -webkit-animation: ring 2s ease infinite;
    animation: ring 2s ease infinite;
    -ms-transform-origin-x: 50%;
    -ms-transform-origin-y: 0px;
    -ms-transform-origin-z: initial;
  }
  
  /* VERTICAL */
  
  @-webkit-keyframes vertical {
    0% {
      -webkit-transform: translate(0,-3px);
      transform: translate(0,-3px);
    }
  
    4% {
      -webkit-transform: translate(0,3px);
      transform: translate(0,3px);
    }
  
    8% {
      -webkit-transform: translate(0,-3px);
      transform: translate(0,-3px);
    }
  
    12% {
      -webkit-transform: translate(0,3px);
      transform: translate(0,3px);
    }
  
    16% {
      -webkit-transform: translate(0,-3px);
      transform: translate(0,-3px);
    }
  
    20% {
      -webkit-transform: translate(0,3px);
      transform: translate(0,3px);
    }
  
    22% {
      -webkit-transform: translate(0,0);
      transform: translate(0,0);
    }
  }
  
  @keyframes vertical {
    0% {
      -webkit-transform: translate(0,-3px);
      -ms-transform: translate(0,-3px);
      transform: translate(0,-3px);
    }
  
    4% {
      -webkit-transform: translate(0,3px);
      -ms-transform: translate(0,3px);
      transform: translate(0,3px);
    }
  
    8% {
      -webkit-transform: translate(0,-3px);
      -ms-transform: translate(0,-3px);
      transform: translate(0,-3px);
    }
  
    12% {
      -webkit-transform: translate(0,3px);
      -ms-transform: translate(0,3px);
      transform: translate(0,3px);
    }
  
    16% {
      -webkit-transform: translate(0,-3px);
      -ms-transform: translate(0,-3px);
      transform: translate(0,-3px);
    }
  
    20% {
      -webkit-transform: translate(0,3px);
      -ms-transform: translate(0,3px);
      transform: translate(0,3px);
    }
  
    22% {
      -webkit-transform: translate(0,0);
      -ms-transform: translate(0,0);
      transform: translate(0,0);
    }
  }
  
  .icon-vertical.animated,
  .icon-vertical.animated-hover:hover,
  .icon-parent.animated-hover:hover > .icon-vertical {
    -webkit-animation: vertical 2s ease infinite;
    animation: vertical 2s ease infinite;
  }
  
  /* HORIZONTAL */
  
  @-webkit-keyframes horizontal {
    0% {
      -webkit-transform: translate(0,0);
      transform: translate(0,0);
    }
  
    6% {
      -webkit-transform: translate(5px,0);
      transform: translate(5px,0);
    }
  
    12% {
      -webkit-transform: translate(0,0);
      transform: translate(0,0);
    }
  
    18% {
      -webkit-transform: translate(5px,0);
      transform: translate(5px,0);
    }
  
    24% {
      -webkit-transform: translate(0,0);
      transform: translate(0,0);
    }
  
    30% {
      -webkit-transform: translate(5px,0);
      transform: translate(5px,0);
    }
  
    36% {
      -webkit-transform: translate(0,0);
      transform: translate(0,0);
    }
  }
  
  @keyframes horizontal {
    0% {
      -webkit-transform: translate(0,0);
      -ms-transform: translate(0,0);
      transform: translate(0,0);
    }
  
    6% {
      -webkit-transform: translate(5px,0);
      -ms-transform: translate(5px,0);
      transform: translate(5px,0);
    }
  
    12% {
      -webkit-transform: translate(0,0);
      -ms-transform: translate(0,0);
      transform: translate(0,0);
    }
  
    18% {
      -webkit-transform: translate(5px,0);
      -ms-transform: translate(5px,0);
      transform: translate(5px,0);
    }
  
    24% {
      -webkit-transform: translate(0,0);
      -ms-transform: translate(0,0);
      transform: translate(0,0);
    }
  
    30% {
      -webkit-transform: translate(5px,0);
      -ms-transform: translate(5px,0);
      transform: translate(5px,0);
    }
  
    36% {
      -webkit-transform: translate(0,0);
      -ms-transform: translate(0,0);
      transform: translate(0,0);
    }
  }
  
  .icon-horizontal.animated,
  .icon-horizontal.animated-hover:hover,
  .icon-parent.animated-hover:hover > .icon-horizontal {
    -webkit-animation: horizontal 2s ease infinite;
    animation: horizontal 2s ease infinite;
  }
  
  /* FLASHING */
  
  @-webkit-keyframes flash {
    0%, 100%, 50% {
      opacity: 1;
    }
  
    25%, 75% {
      opacity: 0;
    }
  }
  
  @keyframes flash {
    0%, 100%, 50% {
      opacity: 1;
    }
  
    25%, 75% {
      opacity: 0;
    }
  }
  
  .icon-flash.animated,
  .icon-flash.animated-hover:hover,
  .icon-parent.animated-hover:hover > .icon-flash {
    -webkit-animation: flash 2s ease infinite;
    animation: flash 2s ease infinite;
  }
  
  /* BOUNCE */
  
  @-webkit-keyframes bounce {
    0%, 10%, 20%, 50%, 80% {
      -webkit-transform: translateY(0);
      transform: translateY(0);
    }
  
    40% {
      -webkit-transform: translateY(-15px);
      transform: translateY(-15px);
    }
  
    60% {
      -webkit-transform: translateY(-15px);
      transform: translateY(-15px);
    }
  }
  
  @keyframes bounce {
    0%, 10%, 20%, 50%, 80% {
      -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
      transform: translateY(0);
    }
  
    40% {
      -webkit-transform: translateY(-15px);
      -ms-transform: translateY(-15px);
      transform: translateY(-15px);
    }
  
    60% {
      -webkit-transform: translateY(-15px);
      -ms-transform: translateY(-15px);
      transform: translateY(-15px);
    }
  }
  
  .icon-bounce.animated,
  .icon-bounce.animated-hover:hover,
  .icon-parent.animated-hover:hover > .icon-bounce {
    -webkit-animation: bounce 2s ease infinite;
    animation: bounce 2s ease infinite;
  }
  
  /* SPIN */
  
  @-webkit-keyframes spin {
    0% {
      -webkit-transform: rotate(0deg);
      transform: rotate(0deg);
    }
  
    100% {
      -webkit-transform: rotate(359deg);
      transform: rotate(359deg);
    }
  }
  
  @keyframes spin {
    0% {
      -webkit-transform: rotate(0deg);
      -ms-transform: rotate(0deg);
      transform: rotate(0deg);
    }
  
    100% {
      -webkit-transform: rotate(359deg);
      -ms-transform: rotate(359deg);
      transform: rotate(359deg);
    }
  }
  
  .icon-spin.animated,
  .icon-spin.animated-hover:hover,
  .icon-parent.animated-hover:hover > .icon-spin {
    -webkit-animation: spin 1.5s linear infinite;
    animation: spin 1.5s linear infinite;
  }
  
  /* FLOAT */
  
  @-webkit-keyframes float {
    0% {
      -webkit-transform: translateY(0);
      transform: translateY(0);
    }
  
    50% {
      -webkit-transform: translateY(-6px);
      transform: translateY(-6px);
    }
  
    100% {
      -webkit-transform: translateY(0);
      transform: translateY(0);
    }
  }
  
  @keyframes float {
    0% {
      -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
      transform: translateY(0);
    }
  
    50% {
      -webkit-transform: translateY(-6px);
      -ms-transform: translateY(-6px);
      transform: translateY(-6px);
    }
  
    100% {
      -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
      transform: translateY(0);
    }
  }
  
  .icon-float.animated,
  .icon-float.animated-hover:hover,
  .icon-parent.animated-hover:hover > .icon-float {
    -webkit-animation: float 2s linear infinite;
    animation: float 2s linear infinite;
  }
  
  /* PULSE */
  
  @-webkit-keyframes pulse {
    0% {
      -webkit-transform: scale(1.1);
      transform: scale(1.1);
    }
  
    50% {
      -webkit-transform: scale(0.8);
      transform: scale(0.8);
    }
  
    100% {
      -webkit-transform: scale(1.1);
      transform: scale(1.1);
    }
  }
  
  @keyframes pulse {
    0% {
      -webkit-transform: scale(1.1);
      -ms-transform: scale(1.1);
      transform: scale(1.1);
    }
  
    50% {
      -webkit-transform: scale(0.8);
      -ms-transform: scale(0.8);
      transform: scale(0.8);
    }
  
    100% {
      -webkit-transform: scale(1.1);
      -ms-transform: scale(1.1);
      transform: scale(1.1);
    }
  }
  
  .icon-pulse.animated,
  .icon-pulse.animated-hover:hover,
  .icon-parent.animated-hover:hover > .icon-pulse {
    -webkit-animation: pulse 2s linear infinite;
    animation: pulse 2s linear infinite;
  }
  
  /* SHAKE */
  
  .icon-shake.animated,
  .icon-shake.animated-hover:hover,
  .icon-parent.animated-hover:hover > .icon-shake {
    -webkit-animation: wrench 2.5s ease infinite;
    animation: wrench 2.5s ease infinite;
  }
  
  /* TADA */
  
  @-webkit-keyframes tada {
    0% {
      -webkit-transform: scale(1);
      transform: scale(1);
    }
  
    10%, 20% {
      -webkit-transform: scale(.9) rotate(-8deg);
      transform: scale(.9) rotate(-8deg);
    }
  
    30%, 50%, 70% {
      -webkit-transform: scale(1.3) rotate(8deg);
      transform: scale(1.3) rotate(8deg);
    }
  
    40%, 60% {
      -webkit-transform: scale(1.3) rotate(-8deg);
      transform: scale(1.3) rotate(-8deg);
    }
  
    80% {
      -webkit-transform: scale(1) rotate(0);
      transform: scale(1) rotate(0);
    }
  }
  
  @keyframes tada {
    0% {
      -webkit-transform: scale(1);
      -ms-transform: scale(1);
      transform: scale(1);
    }
  
    10%, 20% {
      -webkit-transform: scale(.9) rotate(-8deg);
      -ms-transform: scale(.9) rotate(-8deg);
      transform: scale(.9) rotate(-8deg);
    }
  
    30%, 50%, 70% {
      -webkit-transform: scale(1.3) rotate(8deg);
      -ms-transform: scale(1.3) rotate(8deg);
      transform: scale(1.3) rotate(8deg);
    }
  
    40%, 60% {
      -webkit-transform: scale(1.3) rotate(-8deg);
      -ms-transform: scale(1.3) rotate(-8deg);
      transform: scale(1.3) rotate(-8deg);
    }
  
    80% {
      -webkit-transform: scale(1) rotate(0);
      -ms-transform: scale(1) rotate(0);
      transform: scale(1) rotate(0);
    }
  }
  
  .icon-tada.animated,
  .icon-tada.animated-hover:hover,
  .icon-parent.animated-hover:hover > .icon-tada {
    -webkit-animation: tada 2s linear infinite;
    animation: tada 2s linear infinite;
  }
  
  /* PASSING */
  
  @-webkit-keyframes passing {
    0% {
      -webkit-transform: translateX(-50%);
      transform: translateX(-50%);
      opacity: 0;
    }
  
    50% {
      -webkit-transform: translateX(0%);
      transform: translateX(0%);
      opacity: 1;
    }
  
    100% {
      -webkit-transform: translateX(50%);
      transform: translateX(50%);
      opacity: 0;
    }
  }
  
  @keyframes passing {
    0% {
      -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      transform: translateX(-50%);
      opacity: 0;
    }
  
    50% {
      -webkit-transform: translateX(0%);
      -ms-transform: translateX(0%);
      transform: translateX(0%);
      opacity: 1;
    }
  
    100% {
      -webkit-transform: translateX(50%);
      -ms-transform: translateX(50%);
      transform: translateX(50%);
      opacity: 0;
    }
  }
  
  .icon-passing.animated,
  .icon-passing.animated-hover:hover,
  .icon-parent.animated-hover:hover > .icon-passing {
    -webkit-animation: passing 3s linear infinite;
    animation: passing 3s linear infinite;
  }
  
  /* WAVE */
  
  @-webkit-keyframes burst {
    0% {
      opacity: .6;
    }
  
    50% {
      -webkit-transform: scale(1.8);
      transform: scale(1.8);
      opacity: 0;
    }
  
    100% {
      opacity: 0;
    }
  }
  
  @keyframes burst {
    0% {
      opacity: .6;
    }
  
    50% {
      -webkit-transform: scale(1.8);
      -ms-transform: scale(1.8);
      transform: scale(1.8);
      opacity: 0;
    }
  
    100% {
      opacity: 0;
    }
  }
  
  .icon-burst.animated,
  .icon-burst.animated-hover:hover,
  .icon-parent.animated-hover:hover > .icon-burst {
    -webkit-animation: burst 3s infinite linear;
    animation: burst 3s infinite linear;
  }