<div class="stan">
  <div class="body">
    <div class="legs"></div>
    <div class="feet">
      <div class="foot foot-left"></div>
      <div class="foot foot-right"></div>
    </div>

    <div class="jacket">
      <div class="jacket-body"></div>
      <div class="jacket-stroke-arm jacket-stroke-arm-left"></div>
      <div class="jacket-stroke jacket-stroke-center"></div>
      <div class="jacket-stroke-arm jacket-stroke-arm-right"></div>
      <div class="jacket-buttons"></div>
      <div class="jacket-collar"></div>
      <div class="glove glove-left"></div>
      <div class="glove glove-right"></div>
    </div>
  </div>

  <div class="head">
    <div class="cap-top"></div>
    <div class="cap-border"></div>
    <div class="face">
      <div class="eyes">
        <div class="eye eye-left"></div>
        <div class="eye eye-right"></div>
      </div>
      <div class="mouth-1"></div>
      <div class="mouth-2">
        <div class="mouth-inside">
          <div class="teeth">
            <div></div>
            <div></div>
            <div></div>
            <div></div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

$stan-size: 300px ;

.stan {
  position: relative;
  width: $stan-size * 0.63;
  height: $stan-size;
  margin: 10px auto;

  .head {
    position: absolute;
    top: 9%;
    width: 100%;
    height: 63%;
    background-color: #486199;
    border-radius: 50%;
  }
  .face {
    position: absolute;
    bottom: 0;
    left: 0;
    background-color: #f2d5ad;
    width: 100%;
    height: 60%;
    border-radius: 50% 50% 50% 50% / 20% 20% 80% 80%;
  }
  .cap-border {
    position: absolute;
    bottom: 0;
    left: 0;
    background-color: #c1042e;
    width: 100%;
    height: 70%;
    border-radius: 50% 50% 50% 50% / 18% 18% 75% 75%;
  }
  .cap-top {
    position: absolute;
    top: -12%;    
    left: 40%;
    background-color: #c1042e;
    width: 20%;
    height: 20%;
    border-radius: 50%;
  }
  .eyes {
    position: absolute;
    bottom: 50%;
    left: 21%;
    height: 47%;
    width: 58%;
    box-sizing: border-box;
  }
  .eye {
    position: absolute;
    background-color: #fff;
    height: 100%;
    width: 49%;
    &:before {
      display: block;
      content: "";
      position: absolute;
      width: 10%;
      height: 10%;
      background-color: #000;
      top: 45%;
      left: 70%;
      border-radius: 50%;
    }
  }
  .eye-left {
    border-radius: 60% 40% 60% 40% / 60% 40% 60% 40%;
  }
  .eye-right {
    position: absolute;
    right: 0;
    border-radius: 40% 60% 40% 60% / 40% 60% 40% 60%;
  }
  .mouth-1 {
    position: absolute;
    left: 42%;
    top: 20%;
    width: 15%;
    height: 50%;
    border: solid 3px #000;
    border-color: transparent transparent #000 transparent;
    border-radius: 0 0 50% 50% / 10%;
  }
  
  .mouth-2 {
    position: absolute;
    left: 35%;
    top: 70%;
    width: 34%;
    height: 15%;
    background-color: #000;
    clip-path: polygon(100% 8%, 0 0, 43% 100%);
    transform: rotate(2deg);
    
    .mouth-inside {
      position: absolute;
      left: 5%;
      top: 5%;
      width: 90%;
      height: 90%;
      background-color: #000;
      clip-path: polygon(100% 8%, 0 0, 43% 100%);
      overflow: hidden;
    }
    .teeth {
      display: flex;
      justify-content: space-between;
      width: 100%;
      height: 40%;
      div {
        height: 100%;
        width: 23%;
        background:#fff;
      }
    }
  }
  
  .body {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 37%;
    box-sizing: border-box;

    .jacket {
      position: absolute;
      top: 0;
      left: 3%;
      width: 94%;
      height: 82%;
      box-sizing: border-box;

      .jacket-body {
        position: absolute;
        left: 0%;
        bottom: 0%;
        width: 100%;
        height: 140%;
        background-color: #8f5642;
        border-radius: 48% 52% 50% 50% / 87% 90% 10% 13%;
      }

      .jacket-collar {
        position: absolute;
        left: 17%;
        top: -37%;
        width: 66%;
        height: 74%;
        border-radius: 50%;
        background-color: #c1042e;
      }

      .jacket-stroke-arm {
        position: absolute;
        top: 35%;
        width: 10%;
        height: 55%;
        border-radius: 50%;
        background-color: #000;
        &::before {
          display: block;
          content: "";
          position: absolute;
          top: 0%;
          width: 100%;
          height: 105%;
          border-radius: 50%;
          background-color: #8f5642;
        }
      }
      .jacket-stroke-arm-left {
        left: 12%;
        &::before {
          left: 7%;
        }
      }
      .jacket-stroke-arm-right {
        right: 12%;
        &::before {
          right: 7%;
        }
      }
      .jacket-stroke-center {
        position: absolute;
        left: 49.5%;
        width: 1%;
        background-color: #000;
        height: 100%;
        transform: rotate(2deg);
      }
      .jacket-buttons {
        position: absolute;
        top: 62%;
        left: 44%;
        width: 3%;
        height: 6%;
        background-color: #000;
        border-radius: 50%;
        transform: rotate(2deg);
        &::before, &::after {
          display: block;
          content: "";
          position: absolute;
          height: 100%;
          width: 100%;
          background-color: #000;
          border-radius: 50%;
        }
        &::before {
          top: -350%;
        }
        &::after {
          top: 350%;
        }
      }
      .glove {
        position: absolute;
        bottom: 7%;
        width: 18%;
        height: 36%;
        border-radius: 50%;
        background-color: #c1042e;

        &::before {
          display: block;
          content: "";
          position: absolute;
          width: 40%;
          height: 40%;
          background-color: #c1042e;
          top: 14%;
          border-radius: 50%;
        }
      }

      .glove-left {
        left: -2%;

        &::before {
          right: -12%;
        }
      }
      .glove-right {
        right: -2%;

        &::before {
          left: -12%;
        }
      }
    }
  }
  
  .legs {
    position: absolute;
    bottom: 3%;
    left: 15%;
    width: 70%;
    height: 20%;
    background-color: #486199;
  }
  .feet {
    position: absolute;
    bottom: 0;
    left: 9%;
    width: 82%;
    height: 8%;
    .foot {
      position: absolute;
      bottom: 0;
      width: 52%;
      height: 100%;
      background-color: #000;
      border-radius: 50% 50% 50% 50% / 100% 100% 0% 0% ;
    }
    .foot-left {
      left: 0;
    }
    .foot-right {
      right: 0;
    }
  }
}

/* ANIMATION */
$anim-duration: 10s;

.stan .head {
  animation: head $anim-duration infinite linear;
}
.stan .mouth-2 {
  animation: smile $anim-duration infinite linear;
}
.stan .eye:before {
  animation: eyes $anim-duration infinite linear;
}

@keyframes head {
  0% {
      transform: rotate(5deg);
    }
    30% {
      transform: rotate(-5deg);
    }
    60% {
     transform: rotate(5deg);
    }
    61%,
    100% {
      transform: rotate(0deg);
    }
}

@keyframes smile {
  0%, 60.999% {
    z-index:-1;
  }
  61%, 100% {
    z-index:0;
  }
}

@keyframes eyes {
    0% {
      left: 70%;
      top: 65%;
    }
    30% {
      left: 30%;
      top: 65%;
    }
    60% {
      left: 70%;
      top: 65%;
    }
    61%,
    100% {
      left: 50%;
      top: 45%;
    }
  }
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.