JSFiddle - React, Tailwind, and code Playground

HTML

<svg width="300" height="290">
<g class="movestick">
    <rect fill="khaki" stroke="darkkhaki" width="10" height="70" x="0" y="0"/>
</g>

<g class="move">
    <circle stroke="darkkhaki" r="100" cx="0" cy="0" fill="gold"></circle>
  <g class="rotate">
    <circle r="70" cx="0" cy="0" fill="gold" stroke="tomato" stroke-width="20" stroke-dasharray="45" />

    <circle r="70" cx="0" cy="0" fill="none" stroke="darkorange" stroke-width="20" stroke-dasharray="45" stroke-dashoffset="45" />
    </g>
    <circle r="50" cx="0" cy="0" fill="gold" stroke="yellowgreen" stroke-width="20" />
</g>

</svg>

CSS

svg {
  border: 1px solid #dddddd;
}

@keyframes move {
0% {
  transform: translate(150px, 0px) rotate(0deg);
}
50% {
  transform: translate(150px, 125px) rotate(-360deg);
  }
100% {
  transform: translate(150px, 125px) rotate(0deg);
  }
}

@keyframes rotate {
  to {
    transform: rotate(360deg);
  }
}
.rotate {
  animation-name: rotate;
  animation-duration: 2s;
  animation-delay: 3s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}

.move {
  animation-name: move;
  animation-duration: 3s;
  animation-fill-mode: forwards;
}

@keyframes moveb {
0% {
  transform: translate(145px, 0px);
  }
100% {
  transform: translate(145px, 220px);
  }
}

.movestick {
  animation-name: moveb;
  animation-duration: 2s;
  animation-fill-mode: forwards; 
}