<style>
  /* BASE RULES */

  html, body {
    width: 100%;
    height: 100%;
    background-color: #ccccff;
  }

  div {
    text-align: center;
  }

  svg {
    display: inline-block;
    width: 250px;
    margin: 3% auto;
    padding: 0px 100px;
  }

  /* SVG RULES */

  .hand, 
  .hand-double, 
  .hand-flick, 
  .hand-hold, 
  .hand-rock, 
  .hand-tap, 
  .hand-x, 
  .hand-y {
    fill: #fff;
    stroke: #000;
    stroke-width: 3px;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .arrow-down, 
  .arrow-head, 
  .arrow-left, 
  .arrow-right, 
  .arrow-up, 
  .arrow-up-1, 
  .arrow-up-2, 
  .arrow-up-3,   
  .hold-1,
  .hold-2, 
  .line-horizontal, 
  .line-rotate, 
  .line-vertical, 
  .notes, 
  .tap-1, 
  .tap-2 {
    fill: transparent;
    stroke: #000;
    stroke-width: 3px;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .arrow-up-2, 
  .hold-1, 
  .tap-1 {
    opacity: .5;
  }

  .arrow-up-1, 
  .hold-2, 
  .tap-2 {
    opacity: .25;
  }

  .arrow-up-3, 
  .swipe-horizontal, 
  .swipe-rotate, 
  .swipe-vertical {
    opacity: .75;
  }

  .hold-1, 
  .hold-2, 
  .notes {
    opacity: 0;
  }

  /* ANIMATION KEYFRAMES */

  @keyframes tap-double {
    0% {
      transform: rotateX(0deg);
    }
    10% {
      transform: rotateX(12.5deg);
    }
    25% {
      transform: rotateX(25deg);
    }
    35% {
      transform: rotateX(10deg);
    }
    50% {
      transform: rotateX(25deg);
    }
  }

  @keyframes tap {
    0% {
      transform: rotateX(0deg);
    }
    10% {
      transform: rotateX(12.5deg);
    }
    25% {
      transform: rotateX(25deg);
    }
  }

  @keyframes tap-circle {
    0% {
      transform: scale(0);
      opacity: 0;
    }
    75% {
      transform: scale(1.05);
      opacity: .6;
    }
    80% {
      transform: scale(1);
      opacity: .5;
    }
  }

  @keyframes hold {
    0% {
      transform: rotateX(0deg);
    }
    10% {
      transform: rotateX(12.5deg);
    }
    30% {
      transform: rotateX(25deg);
    }
    80% {
      transform: rotateX(25deg);
    }
  }

  @keyframes fade {
    0% {
      opacity: 0;
    }
    30% {
      opacity: .75
    }
    80% {
      opacity: .75;
    }
  }

  @keyframes swipe-x {
    0% {
      transform: translateX(0px);
    }
    25% {
      transform: translateX(50px) rotateZ(10deg);
    }
    50% {
      transform: translateX(0px);
    }
    75% {
      transform: translateX(-50px) rotateZ(-10deg);
    }
  }

  @keyframes swipe-y {
    0% {
      transform: translateY(0px);
    }
    25% {
      transform: translateY(50px) rotateZ(-10deg);
    }
    50% {
      transform: translateY(0px);
    }
    75% {
      transform: translateY(-50px) rotateZ(10deg);
    }
  }

  @keyframes flick-fade {
    0% {
      opacity: 0;
    }
    25% {
      opacity: 1;
    }
  }

  @keyframes flick {
    0% {
      transform: rotateZ(0deg);
    }
    10% {
      transform: translateY(-12px) rotateZ(50deg);
    }
    25% {
      transform: rotateZ(5deg);
    }
  }

  @keyframes spin {
    0% {
      transform: rotateZ(0deg);
    }
    10% {
      transform: translateY(-10deg) rotateZ(-20deg);
    }
    50% {
      transform: rotateZ(45deg);
    }
  }

  @keyframes rock-on {
    0% {
      transform: scale(1);
    }
    25% {
      transform: scale(1.1);
    }
    50% {
      transform: scale(1);
    }
    75% {
      transform: scale(1.1);
    }
  }

  @keyframes note {
    0% {
      transform: scale(0) rotateZ(0deg);
      opacity: 0;
    }
    20% {
      transform: scale(1.1) rotateZ(10deg);
    }
    40% {
      transform: scale(0.9) rotateZ(-10deg);
    }
    50% {
      opacity: .75;
    }
    60% {
      transform: scale(1.1) rotateZ(10deg);
    }
    80% {
      transform: scale(0.9) rotateZ(-10deg);
    }
  }

  /* SVG ANIMATION */

  .wrapper * {
    transform-origin: 50% 50%;
    perspective: 100px;
  }

  .hand {
    transform-origin: 25% 50%;
  }

  .hand-tap {
    animation: tap 1.25s ease-out backwards;
    animation-iteration-count:infinite;
  }

  .hand-double {
    animation: tap-double 1.25s ease-out backwards;
    animation-iteration-count:infinite;
  }

  .tap-1,
  .tap-2 {
    animation: tap-circle 1.25s ease-out backwards;
    animation-iteration-count:infinite;
  }

  .hand-hold {
    animation: hold 1.25s ease-out backwards;
    animation-iteration-count:infinite;
  }

  .hold-1, .hold-2 {
    animation: fade 1.25s ease-in backwards;
    animation-iteration-count:infinite;
  }

  .tap-2 {
    animation-delay: 0.2s;
  }

  .hand-x {
    animation: swipe-x 1.25s ease-in-out backwards;
    animation-iteration-count:infinite;
  }

  .hand-y {
    animation: swipe-y 1.25s ease-in-out backwards;
    animation-iteration-count:infinite;
  }

  .hand-flick {
    animation: flick 1.25s ease-out backwards;
    animation-iteration-count:infinite;
  }

  .arrows {
    opacity: 0;
    animation: flick-fade 1.25s ease-out backwards;
    animation-iteration-count:infinite;
  }

  .hand, 
  .swipe-rotate {
    animation: spin 1.25s ease-in-out backwards;
    animation-iteration-count:infinite;
  }

  .hand-rock {
    animation: rock-on 1.25s ease-out backwards;
    animation-iteration-count:infinite;
  }

  .notes {
    animation: note 1.25s ease-out backwards;
    animation-iteration-count:infinite;
  }
</style>
<div class="wrapper">
  <!-- Single-Finger Tap Icon -->
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
    <circle class="tap-1" cx="89.43" cy="64.48" r="19.46"/>
    <path class="hand-tap" d="M139.93,102.68,98.81,95.75V65.2A9.25,9.25,0,0,0,89.56,56h0a9.25,9.25,0,0,0-9.25,9.25v57.36L71,111.77c-3.61-3.61-8.44-3.89-13.08,0,0,0-7.24,5.84-3.83,9.25l34,34h42.63a9.25,9.25,0,0,0,9.07-7.43l6.82-34.09A9.28,9.28,0,0,0,139.93,102.68Z"/>
  </svg>

  <!-- Single-Finger Double-Tap Icon -->
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
    <circle class="tap-2" cx="89.43" cy="69.55" r="29.61"/>
    <circle class="tap-1" cx="89.43" cy="69.55" r="19.46"/>
    <path class="hand-double" d="M139.93,107.76l-41.12-6.93V70.28A9.25,9.25,0,0,0,89.56,61h0a9.25,9.25,0,0,0-9.25,9.25v57.36L71,116.85c-3.61-3.61-8.44-3.89-13.08,0,0,0-7.24,5.84-3.83,9.25l34,34h42.63a9.25,9.25,0,0,0,9.07-7.43l6.82-34.09A9.28,9.28,0,0,0,139.93,107.76Z"/>
  </svg>

  <!-- Single-Finger Press + Hold Icon -->
  <svg id="Press-hold_1" data-name="Press hold 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
    <path class="hold-2" d="M56,72.25a33.5,33.5,0,0,1,67,0"/>
    <path class="hold-1" d="M67,72.25a22.5,22.5,0,0,1,45,0"/>
    <path class="hand-hold" d="M139.93,109,98.81,102V71.48a9.25,9.25,0,0,0-9.25-9.25h0a9.25,9.25,0,0,0-9.25,9.25v57.36L71,118c-3.61-3.61-8.44-3.89-13.08,0,0,0-7.24,5.84-3.83,9.25l34,34h42.63a9.25,9.25,0,0,0,9.07-7.43l6.82-34.09A9.28,9.28,0,0,0,139.93,109Z"/>
  </svg>

  <!-- Single-Finger Swipe Left & Right Icon -->
  <svg id="Swipe-horizontal_1" data-name="Swipe horizontal 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
    <path class="hand-x" d="M139.93,113.56l-41.12-6.93V76.08a9.25,9.25,0,0,0-9.25-9.25h0a9.25,9.25,0,0,0-9.25,9.25v57.36L71,122.65c-3.61-3.61-8.44-3.89-13.08,0,0,0-7.24,5.84-3.83,9.25l34,34h42.63a9.25,9.25,0,0,0,9.07-7.43l6.82-34.09A9.28,9.28,0,0,0,139.93,113.56Z"/>
    <g class="swipe-horizontal">
      <path class="line-horizontal" d="M70.85,42c19.69-12.46,37,0,37,0"/>
      <polyline class="arrow-left" points="76.6 46.01 68.37 43.43 68.38 43.41 70.96 35.18"/>
      <polyline class="arrow-right" points="100.21 44.66 108.43 42.08 108.43 42.06 105.85 33.84"/>
    </g>
  </svg>

  <!-- Single-Finger Swipe Up & Down Icon -->
  <svg id="Swipe-vertical_1" data-name="Swipe vertical 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
    <path class="hand-y" d="M131.09,69.21l-34,24.17-21.6-21.6a9.25,9.25,0,0,0-13.08,0h0a9.25,9.25,0,0,0,0,13.08L103,125.43l-14.18-1.08c-5.11,0-8.72,3.22-9.25,9.25,0,0-1,9.25,3.83,9.25h48l30.14-30.14A9.25,9.25,0,0,0,162.72,101L143.43,72.11A9.28,9.28,0,0,0,131.09,69.21Z"/>
    <g class="swipe-vertical">
      <path class="line-vertical" d="M43.94,94.27c-12.46-19.69,0-37,0-37"/>
      <polyline class="arrow-down" points="47.93 88.53 45.35 96.75 45.33 96.75 37.11 94.17"/>
      <polyline class="arrow-up" points="46.59 64.92 44.01 56.69 43.98 56.7 35.76 59.28"/>
    </g>
  </svg>

  <!-- Single-Finger Flick Icon -->
  <svg id="Flick_1" data-name="Flick 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
    <path class="hand-flick" d="M132.11,67.61l-34,24.17-21.6-21.6a9.25,9.25,0,0,0-13.08,0h0a9.25,9.25,0,0,0,0,13.08L104,123.82l-14.18-1.08c-5.11,0-8.72,3.22-9.25,9.25,0,0-1,9.25,3.83,9.25h48l30.14-30.14a9.25,9.25,0,0,0,1.16-11.67L144.45,70.51A9.28,9.28,0,0,0,132.11,67.61Z"/>
    <g class="arrows">
      <polyline class="arrow-up-3" points="34.7 64.95 40.73 58.79 40.75 58.8 46.91 64.83"/>
      <polyline class="arrow-up-2" points="34.7 74.99 40.73 68.83 40.75 68.85 46.91 74.88"/>
      <polyline class="arrow-up-1" points="34.7 85.04 40.73 78.88 40.75 78.89 46.91 84.92"/>
    </g>
  </svg>

  <!-- Single-Finger Rotate Icon -->
  <svg id="Rotate_1" data-name="Rotate 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
    <g class="swipe-rotate">
      <path class="line-rotate" d="M57.8,96.7c-5.4,5.4-14.2,5.4-19.6,0s-5.4-14.2,0-19.6s14.2-5.4,19.6,0"/>
      <polyline class="arrow-head" points="58.9,70.1 59,78.7 59,78.7 50.4,78.8 "/>
    </g>
    <path class="hand" d="M159.1,91.8l-41.1-6.9l0-22.9c0-3.3-2.7-6.1-6.1-6.1H99.4h-18c-4.9,0-9.2,3.7-9.5,8.6c-0.3,5.4,3.9,9.9,9.2,9.9h18.3v37.2l-9.3-10.8c-3.6-3.6-8.4-3.9-13.1,0c0,0-7.2,5.8-3.8,9.3l34,34h42.6c4.4,0,8.2-3.1,9.1-7.4l6.8-34.1C166.7,97.8,163.8,93,159.1,91.8z"/>
  </svg>

  <!-- Double-Finger Double-Tap Icon -->
  <svg id="Double-tap_2" data-name="Double tap 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
    <path class="tap-2" d="M140.09,65.79A31.39,31.39,0,0,0,86.09,44a31.4,31.4,0,1,0,25.82,53A31.4,31.4,0,0,0,140.09,65.79Z"/>
    <path class="tap-1" d="M109.35,46.58A19.43,19.43,0,0,0,92.72,56a19.46,19.46,0,1,0,12.56,29.09,19.46,19.46,0,1,0,4.07-38.48Z"/>
    <path class="hand-double" d="M139.93,113.3l-22.6-3.81V68.17a9.25,9.25,0,0,0-18.5,0v41.2h0V75.83a9.25,9.25,0,0,0-9.25-9.25h0a9.25,9.25,0,0,0-9.25,9.25v57.36L71,122.39c-3.61-3.61-8.44-3.89-13.08,0,0,0-7.24,5.84-3.83,9.25l34,34h42.63a9.25,9.25,0,0,0,9.07-7.43l6.82-34.09A9.28,9.28,0,0,0,139.93,113.3Z"/>
  </svg>

  <!-- Double-Finger Swipe Left & Right Icon -->
  <svg id="Swipe-horizontal_2" data-name="Swipe horizontal 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
    <path class="hand-x" d="M139.93,113.56l-22.6-3.81V68.43a9.25,9.25,0,0,0-18.5,0v41.2h0V76.08a9.25,9.25,0,0,0-9.25-9.25h0a9.25,9.25,0,0,0-9.25,9.25v57.36L71,122.65c-3.61-3.61-8.44-3.89-13.08,0,0,0-7.24,5.84-3.83,9.25l34,34h42.63a9.25,9.25,0,0,0,9.07-7.43l6.82-34.09A9.28,9.28,0,0,0,139.93,113.56Z"/>
    <g class="swipe-horizontal">
      <path class="line-horizontal" d="M82.15,41.32c19.69-12.46,37,0,37,0"/>
      <polyline class="arrow-left" points="87.89 45.32 79.67 42.74 79.67 42.71 82.25 34.49"/>
      <polyline class="arrow-right" points="111.5 43.97 119.73 41.39 119.72 41.36 117.14 33.14"/>
    </g>
  </svg>

  <!-- Double-Finger Swipe Up & Down Icon -->
  <svg id="Swipe-vertical_2" data-name="Swipe vertical 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
    <path class="hand-y" d="M131.09,72.5,112.42,85.79,83.21,56.57A9.25,9.25,0,0,0,70.13,69.65L99.26,98.78h0L75.52,75.08a9.25,9.25,0,0,0-13.08,0h0a9.25,9.25,0,0,0,0,13.08L103,128.72l-14.18-1.08c-5.11,0-8.72,3.22-9.25,9.25,0,0-1,9.25,3.83,9.25h48L161.56,116a9.25,9.25,0,0,0,1.16-11.67L143.43,75.4A9.28,9.28,0,0,0,131.09,72.5Z"/>
    <g class="swipe-vertical">
      <path class="line-vertical" d="M44.28,98.76c-12.46-19.69,0-37,0-37"/>
      <polyline class="arrow-down" points="48.27 93.02 45.69 101.24 45.67 101.24 37.45 98.66"/>
      <polyline class="arrow-up" points="46.92 69.41 44.35 61.18 44.32 61.19 36.1 63.77"/>
    </g>
  </svg>

  <!-- Double-Finger Flick Icon -->
  <svg id="Flick_2" data-name="Flick 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
    <path class="hand-flick" d="M132.11,77.62,113.44,90.9,84.22,61.68A9.25,9.25,0,0,0,71.14,74.76l29.13,29.13h0L76.53,80.19a9.25,9.25,0,0,0-13.08,0h0a9.25,9.25,0,0,0,0,13.08L104,133.83l-14.18-1.08c-5.11,0-8.72,3.22-9.25,9.25,0,0-1,9.25,3.83,9.25h48l30.14-30.14a9.25,9.25,0,0,0,1.16-11.67L144.45,80.51A9.28,9.28,0,0,0,132.11,77.62Z"/>
    <g class="arrows">
      <polyline class="arrow-up-3" points="34.69 54.91 40.72 48.75 40.74 48.76 46.9 54.79"/>
      <polyline class="arrow-up-2" points="34.69 64.95 40.72 58.79 40.74 58.81 46.9 64.83"/>
      <polyline class="arrow-up-1" points="34.69 75 40.72 68.84 40.74 68.85 46.9 74.88"/>
    </g>
  </svg>

  <!-- Rock On Icon -->
  <svg id="Rock_on" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200">
    <path class="hand-rock" d="M161.926,68.25c0-5.109-4.141-9.25-9.25-9.25s-9.25,4.141-9.25,9.25v27l-29.475-4.969V59.736c0-5.109-4.141-9.25-9.25-9.25h0c-5.109,0-9.25,4.141-9.25,9.25v57.358l-9.268-10.79c-3.612-3.612-8.44-3.892-13.081,0c0,0-7.245,5.837-3.831,9.25l33.959,33.959h42.629c4.407,0,8.202-3.111,9.067-7.433l6.819-34.093c0.088-0.438,0.132-0.875,0.156-1.31l0.025-0.015V68.25z"/>
    <g class="notes">
      <polyline points="49.058,112.498 48.963,91.106 48.988,91.104 57.607,91.009"/>
      <circle cx="43.566" cy="112.498" r="5.492"/>
      <polyline points="58.824,72.314 58.729,50.922 58.754,50.92 76.061,50.872 76.061,79.078"/>
      <circle cx="53.332" cy="72.314" r="5.492"/>
      <circle cx="70.569" cy="79.32" r="5.492"/>
    </g>
  </svg>
</div>