:root {
  --white: #f8f9f9;
  --red: #c71a34;
  --pink: #e3426f;
  --black: #4e0e16;
}

html, body {
  background: linear-gradient(to bottom, #628a87, #a4b3b8);
  height: 100%;
}

.monkey {
  position: absolute;
  top: 25%;
  left: 50%;
  transform: translateX(-50%);
  width: 350px;
  height: 250px;
  background: var(--white);
  border-radius: 225px;
}

.monkey::before {
  display: block;
  content: '';
  position: absolute;
  bottom: -100px;
  left: 50%;
  transform: translateX(-50%);
  border-bottom: 100px solid var(--white);
	border-left: 25px solid transparent;
	border-right: 25px solid transparent;
	height: 0;
	width: 125px;
}

.monkey::after {
  display: block;
  content: '';
  position: absolute;
  bottom: -110px;
  left: 50%;
  transform: translateX(-50%);
  width: 180px;
  height: 25px;
  border: 2px solid var(--white);
  border-radius: 50%;
  animation: water 2s infinite ease-in;
}

.face {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%);
  width: 150px;
  height: 60px;
  background: var(--red);
  border-bottom-left-radius: 50px;
  border-bottom-right-radius: 50px;
  animation: move-face 5s ease-in-out infinite;
}

.face::before {
  display: block;
  content: '';
  position: absolute;
  top: 50px;
  left: 50%;
  transform: translateX(-50%);
  width: 70px;
  height: 100px;
  background: linear-gradient(to bottom, var(--red), var(--pink));
  border-bottom-left-radius: 35px;
  border-bottom-right-radius: 35px;
}

.face::after {
  display: block;
  content: '';
  position: absolute;
  top: 100px;
  left: 50%;
  transform: translateX(-50%);  
  width: 0;
  height: 0;
  border-top: 10px solid var(--black);
	border-left: 15px solid transparent;
	border-right: 15px solid transparent;
}

.eyes {
  position: relative;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);  
  width: 30px;
  height: 80px;
  background: linear-gradient(to bottom, var(--red), var(--pink));
}

.eyes::before, .eyes::after {
  display: block;
  content: '';
  position: absolute;
  top: -25px;
  width: 30px;
  height: 30px;
  border-bottom: 5px solid var(--black);
  border-radius: 50%;
  animation: move-eyes 10s ease-in-out infinite;
}

.eyes::before {
  left: -35px;
}

.eyes::after {
  left: 35px;
}

@keyframes water {
  0% {
    opacity: 0;
    width: 200px;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    width: 400px;
  }
}

@keyframes move-face {
  0% {
    top: 50%;
  }
  25% {
    top: 48%;
    transform: translateX(-50%) rotate(1deg);
  }
  50% {
    top: 48%;
    transform: translateX(-50%) rotate(-1deg);
  }
  100% {
    top: 50%;
  }
}

@keyframes move-eyes {
  0% {
    margin-left: 0;
  }
  25% {
    margin-left: 5px;
  }
  75% {
    margin-left: -5px;
  }
  100% {
    margin-left: 0;
  }
}