body {
  background: #ffb9be;
  position: relative;
}

.shadow {
  position: absolute;
  left: 50%;
  top: 75%;
  transform: translate(-50%, -50%);
  background: black;
  opacity: 0.05;
  height: 70px;
  width: 150px;
  border-radius: 50%;
}

.cat {
  margin: auto;
  position: relative;
  margin-top: 100px;
  height: 200px;
  width: 200px;
}

.bowl {
  position: relative;
  top: 88%;
}
.bowl .milk {
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  height: 20px;
  border-radius: 60%;
  width: 60px;
  background: white;
}
.bowl .rim {
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  height: 30px;
  border-radius: 50%;
  width: 80px;
  background: #637fdb;
}
.bowl .lower {
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  height: 26px;
  top: 13px;
  border-radius: 0 0 80% 80%;
  width: 80px;
  background: #637fdb;
}

.head {
  position: relative;
  transform: translate(-50%, -50%);
  border-bottom: 2px solid #322944;
  border-top: 2px solid transparent;
  top: 20%;
  left: 50%;
  background: #382f46;
  height: 60px;
  width: 60px;
  border-radius: 50%;
  animation: drink 8s cubic-bezier(0.8, 0, 0.2, 1) infinite;
}

.ear {
  position: absolute;
  background-color: #382f46;
  text-align: left;
}
.ear.left {
  left: 5px;
  transform: rotate(12deg) skewX(-30deg) scale(1, 0.9);
}
.ear.right {
  right: -1px;
  top: 5px;
  transform: rotate(100deg) skewX(-30deg) scale(1, 0.866);
}

.ear:before,
.ear:after {
  content: "";
  position: absolute;
  background-color: inherit;
}

.ear,
.ear:before,
.ear:after {
  width: 1em;
  height: 1em;
  border-top-right-radius: 30%;
}

.ear {
  transform: rotate(100deg) skewX(-30deg) scale(1, 0.866);
}

.ear:before {
  transform: rotate(-135deg) skewX(-45deg) scale(1.414, 0.707) translate(0, -50%);
}

.ear:after {
  transform: rotate(135deg) skewY(-45deg) scale(0.707, 1.414) translate(50%);
}

.tail {
  position: absolute;
  top: 0%;
  transform-origin: center bottom;
  left: calc(50% - 8px);
  height: 120px;
  width: 15px;
  background: #382f46;
  border-radius: 40px;
  transform: rotatez(45deg);
  animation: wag infinite 1.5s ease-in-out alternate;
}

.body {
  transform: translate(-50%, -50%);
  position: absolute;
  transform-origin: center center;
  top: 50%;
  left: 50%;
  background: #463f56;
  height: 100px;
  width: 70px;
  border-radius: 100px;
}

.leg {
  transform: translate(-50%, -50%);
  position: absolute;
  transform-origin: center center;
  top: 55%;
  left: 34%;
  background: #463f56;
  height: 60px;
  width: 25px;
  border-radius: 100px;
}
.leg.right {
  left: unset;
  right: 22%;
}
.leg.right.forward {
  top: 68%;
  left: unset;
  right: 34%;
  width: 20px;
}
.leg.forward {
  top: 68%;
  left: 42%;
  width: 20px;
}

.paw {
  transform: translate(-50%, -50%) rotate(60deg);
  position: absolute;
  transform-origin: center center;
  top: 70%;
  left: 30%;
  background: #463f56;
  height: 30px;
  width: 20px;
  border-radius: 100px;
}
.paw.right {
  left: unset;
  right: 22%;
  transform: translate(-50%, -50%) rotate(-60deg);
}
.paw.right.forward {
  top: 80%;
  left: unset;
  right: 32%;
  width: 20px;
}
.paw.forward {
  top: 80%;
  left: 40%;
  width: 20px;
}

.tongue {
  transform-origin: top center;
  opacity: 0;
  left: 45%;
  top: 80%;
  position: absolute;
  height: 15px;
  width: 10px;
  background: #ffb9be;
  border-radius: 40px;
  animation: lick 8s cubic-bezier(0.8, 0, 0.2, 1) infinite;
}

.key {
  position: absolute;
  left: 20px;
  top: 100px;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  animation: rotate infinite 1.5s linear;
}
.key .blade {
  width: 30px;
  height: 10px;
  background: #8c8c8c;
}
.key .bow {
  position: relative;
  height: 10px;
  width: 10px;
  background: #8c8c8c;
}
.key .bow .upper {
  top: -80%;
  left: -30%;
  position: absolute;
  border-radius: 50%;
  width: 15px;
  height: 15px;
  background: #8c8c8c;
}
.key .bow .hole {
  margin-top: 3px;
  margin-left: 3px;
  border-radius: 50%;
  width: 8px;
  height: 8px;
  background: #ffb9be;
}
.key .bow .lower {
  left: -30%;
  top: 30%;
  position: absolute;
  border-radius: 50%;
  width: 15px;
  height: 15px;
  background: #8c8c8c;
}

@keyframes drink {
  0% {
    border-top: 2px solid transparent;
  }
  30% {
    transform: translate(-50%, 50%) rotate3d(1, 0, 0, 30deg);
    border-top: 2px solid #322944;
    top: 40%;
    border-bottom: 2px solid transparent;
  }
  40% {
    top: 40%;
    border-bottom: 0 solid transparent;
  }
  70% {
    border-top: 2px solid transparent;
    top: 20%;
  }
  100% {
    top: 20%;
  }
}
@keyframes rotate {
  from {
    transform: rotatex(0deg);
  }
  to {
    transform: rotatex(359deg);
  }
}
@keyframes lick {
  0% {
    opacity: 0;
  }
  29% {
    opacity: 0;
  }
  30% {
    opacity: 1;
    transform: rotate(-95deg);
  }
  40% {
    opacity: 1;
    transform: rotate(90deg);
  }
  41% {
    opacity: 0;
  }
}
@keyframes wag {
  from {
    transform: rotatez(45deg);
  }
  to {
    transform: rotatez(70deg);
  }
}
