html,
body {
  background: azure;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.playfield {
  border: 2px solid blue;
  background: white;
  position: absolute;
  height: 600px;
  width: 1200px;
  overflow: hidden;
  left: 50%;
  top: 50%;
}
.playfield .rock {
  position: absolute;
  background: url('../images/rock.png');
  background-position: 50% 50%;
  background-size: contain;
  background-repeat: no-repeat;
  height: 48px;
  width: 50px;
  bottom: 21px;
  left: 1100px;
  z-index: 4;
}
.playfield .rock.moving {
  animation: rockmove 4500ms linear 0s 1;
}
.playfield .torpedo {
  position: absolute;
  background: url('../images/torpedo.png');
  background-position: 50% 50%;
  background-size: contain;
  background-repeat: no-repeat;
  transform: scaleX(-1);
  width: 150px;
  height: 80px;
  bottom: 50px;
  left: 50px;
  animation: bob 2s ease-in-out 0s infinite alternate;
}
.playfield .poi {
  position: absolute;
  left: 250px;
  bottom: 25px;
  height: 180px;
  width: 150px;
  z-index: 3;
}
.playfield .poi.jampu {
  animation-name: jampu;
  animation-duration: 300ms;
  animation-iteration-count: 2;
  animation-direction: alternate;
  animation-timing-function: cubic-bezier(0.11, 0.78, 0.35, 1.04);
}
.playfield .poi .poi-box {
  position: absolute;
  height: 80%;
  width: 35%;
  top: 0%;
  left: 55%;
}
.playfield .poi .poi-body {
  position: absolute;
  background: url('../images/poi-nofeet.png');
  background-position: 50% 50%;
  background-size: contain;
  background-repeat: no-repeat;
  transform: scaleX(-1);
  height: 100%;
  width: 100%;
}
.playfield .poi .poi-feet {
  position: absolute;
  background: url('../images/poi-feet.png');
  background-position: 50% 50%;
  background-size: contain;
  background-repeat: no-repeat;
  top: 44%;
  left: 30%;
  height: 80%;
  width: 80%;
  animation-name: spinny;
  animation-direction: reverse;
  animation-duration: 500ms;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}
.playfield .ground {
  width: 1300px;
  height: 50px;
  background: url('../images/ground.png');
  background-size: contain;
  background-repeat: repeat-x;
  position: absolute;
  bottom: 0px;
  left: 0px;
  z-index: 5;
  animation: groundmove 250ms linear 0s infinite forwards;
}
@keyframes rockmove {
  0% {
    left: 1250px;
  }
  100% {
    left: -100px;
  }
}
@keyframes jampu {
  0% {
    bottom: 25px;
  }
  100% {
    bottom: 100px;
  }
}
@keyframes bob {
  0% {
    bottom: 25px;
  }
  100% {
    bottom: 50px;
  }
}
@keyframes groundmove {
  0% {
    left: 0px;
  }
  100% {
    left: -50px;
  }
}
@keyframes spinny {
  0% {
    transform: scaleX(-1) rotate(0deg);
  }
  25% {
    transform: scaleX(-1) rotate(90deg);
  }
  50% {
    transform: scaleX(-1) rotate(180deg);
  }
  75% {
    transform: scaleX(-1) rotate(270deg);
  }
  100% {
    transform: scaleX(-1) rotate(360deg);
  }
}
