JSFiddle - React, Tailwind, and code Playground

HTML

<!DOCTYPE html>
<html lang="ja" xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#" xmlns:og="http://ogp.me/ns#">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
	<link href="/assets/css/style.css" rel="stylesheet">
</head>

<body>
  <div class="logo">
    <div class="logo__C">
      <span class="logo__C__top"></span>
      <span class="logo__C__bottom"></span>
    </div>
    <div class="logo__O">
      <div class="logo__O__eyelid anime--blink"></div>
    </div>
    <div class="logo__O">
      <div class="logo__O__eyelid anime--blink"></div>
    </div>
    <div class="logo__S">
      <span class="logo__S__top"></span>
      <span class="logo__S__middle"></span>
      <span class="logo__S__bottom"></span>
    </div>
    <div class="logo__Y"></div>
    <div class="logo__nose anime--nose"></div>
    <div class="logo__mouth anime--mouse">
      <div class="logo__mouth__upper"></div>
      <span class="logo__mouth__tooth"></span>
      <span class="logo__mouth__tooth"></span>
      <span class="logo__mouth__tooth"></span>
      <span class="logo__mouth__tooth"></span>
      <span class="logo__mouth__tooth"></span>
      <span class="logo__mouth__tooth"></span>
      <span class="logo__mouth__tooth"></span>
      <div class="logo__mouth__lower"></div>
    </div>
  </div>
</body>
</html>

CSS

body {
  margin: 10px;
}

.logo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  position: relative;
}
.logo__C {
  height: 39px;
  width: 24px;
  border-left: 13px solid #393a34;
  border-radius: 100%;
  position: relative;
}
.logo__C:before, .logo__C:after {
  content: "";
  display: inline-block;
  position: absolute;
  border-radius: 10px 0 0 10px;
  background-color: #393a34;
}
.logo__C:before {
  width: 3px;
  height: 9px;
  top: 2px;
  left: 22px;
  -webkit-transform: rotate(200deg);
          transform: rotate(200deg);
}
.logo__C:after {
  width: 3px;
  height: 10px;
  top: 28px;
  left: 21px;
  -webkit-transform: rotate(162deg);
          transform: rotate(162deg);
}
.logo__C__top, .logo__C__bottom {
  border: solid 10px;
  border-color: transparent transparent #393a34 transparent;
  position: absolute;
}
.logo__C__top {
  width: 42px;
  height: 64px;
  top: -3px;
  left: -12px;
  border-radius: 0 0 50% 50%;
  -webkit-transform: rotate(-204deg);
          transform: rotate(-204deg);
}
.logo__C__bottom {
  width: 42px;
  height: 74px;
  bottom: -5px;
  left: -8px;
  border-radius: 0 0 50% 50%;
  -webkit-transform: rotate(29deg);
          transform: rotate(29deg);
}
.logo__O {
  background-color: #393a34;
  border-radius: 50%;
  height: 40px;
  width: 43px;
  position: relative;
  left: 10px;
}
.logo__O:nth-of-type(2) {
  left: 6px;
}
.logo__O::before {
  content: "";
  display: inline-block;
  position: absolute;
  background-color: #fff;
  border-radius: 50%;
  width: 20px;
  height: 22px;
  top: 50%;
  left: 50%;
  -webkit-transform: translateY(-50%) translateX(-50%);
          transform: translateY(-50%) translateX(-50%);
}
.logo__O::after {
  content: "";
  display: inline-block;
  position: absolute;
  background-color: #393a34;
  border-radius: 50%;
  width: 14px;
  height: 13px;
  top: 50%;
  left: 50%;
  -webkit-transform: translateY(-50%)...