@keyframes head {
  0% {
    transform: rotate(0);
  }
  6.6666666667% {
    transform: rotate(0);
  }
  20% {
    transform: rotate(-14deg);
  }
  40% {
    transform: rotate(-7deg);
  }
  46.6666666667% {
    transform: rotate(-14deg);
  }
  60% {
    transform: rotate(-7deg);
  }
  73.3333333333% {
    transform: rotate(0);
  }
  80% {
    transform: rotate(0);
  }
}
@keyframes mouth {
  0% {
    transform: translateX(0);
  }
  6.6666666667% {
    transform: translateX(0);
  }
  13.3333333333% {
    transform: translateX(35%);
  }
  20% {
    transform: translateX(35%);
  }
  26.6666666667% {
    transform: translateX(35%);
  }
  33.3333333333% {
    transform: translateX(0) translateY(-5%);
  }
}
@keyframes nose {
  0% {
    transform: translate(0);
  }
  6.6666666667% {
    transform: translate(0);
  }
  13.3333333333% {
    transform: translateX(100%);
  }
  26.6666666667% {
    transform: translateX(100%);
  }
  33.3333333333% {
    transform: translateX(0) translateY(-15%);
  }
}
@keyframes body {
  0% {
    transform: translate(0);
  }
  6.6666666667% {
    transform: translateY(3%);
  }
  13.3333333333% {
    transform: translate(0);
  }
  20% {
    transform: translate(0);
  }
  26.6666666667% {
    transform: translateY(2%);
  }
  33.3333333333% {
    transform: translateY(0);
  }
}
@keyframes mane {
  0% {
    transform: translate(0);
  }
  6.6666666667% {
    transform: translateY(5%);
  }
  13.3333333333% {
    transform: translate(0);
  }
  20% {
    transform: translate(0);
  }
  26.6666666667% {
    transform: translateY(3%);
  }
  33.3333333333% {
    transform: translateY(0);
  }
}
@keyframes face {
  0% {
    transform: translate(0);
  }
  6.6666666667% {
    transform: translate(0);
  }
  13.3333333333% {
    transform: translateX(15%);
  }
  20% {
    transform: translateX(15%) translateY(0);
  }
  26.6666666667% {
    transform: translateX(15%) translateY(0);
  }
  33.3333333333% {
    transform: translateX(0) translateY(-15%);
  }
  40% {
    transform: translateX(0) translateY(-15%);
  }
  46.6666666667% {
    transform: translateX(0) translateY(0);
  }
}
@keyframes left-eye {
  2.6666666667% {
    transform: scaleY(1);
  }
  3.3333333333% {
    transform: scaleY(0.3);
  }
  4% {
    transform: scaleY(1);
  }
  6.6666666667% {
    transform: translateX(0);
  }
  9.3333333333% {
    transform: scaleY(1) translateX(75%);
  }
  10% {
    transform: scaleY(0.3) translateX(75%);
  }
  10.6666666667% {
    transform: scaleY(1) translateX(75%);
  }
  13.3333333333% {
    transform: translateX(150%);
  }
  22% {
    transform: scaleY(1) translateX(150%);
  }
  22.6666666667% {
    transform: scaleY(0.3) translateX(150%);
  }
  23.3333333333% {
    transform: scaleY(1) translateX(150%);
  }
  25.3333333333% {
    transform: scaleY(1) translateX(150%);
  }
  26% {
    transform: scaleY(0.3) translateX(150%);
  }
  26.6666666667% {
    transform: scaleY(1) translateX(150%);
  }
  33.3333333333% {
    transform: translateX(0) translateY(-170%);
  }
  36% {
    transform: scaleY(1) translateY(-170%);
  }
  36.6666666667% {
    transform: scaleY(0.3) translateY(-170%);
  }
  37.3333333333% {
    transform: scaleY(1) translateY(-170%);
  }
  38% {
    transform: scaleY(1) translateY(-170%);
  }
  38.6666666667% {
    transform: scaleY(0.3) translateY(-170%);
  }
  39.3333333333% {
    transform: scaleY(1) translateY(-170%);
  }
  53.3333333333% {
    transform: translateY(0);
  }
  65.3333333333% {
    transform: scaleY(1) translateY(0);
  }
  66% {
    transform: scaleY(0.3) translateY(0);
  }
  66.6666666667% {
    transform: scaleY(1) translateY(0);
  }
  70% {
    transform: scaleY(1) translateY(0);
  }
  70.6666666667% {
    transform: scaleY(0.3) translateY(0);
  }
  71.3333333333% {
    transform: scaleY(1) translateY(0);
  }
}
@keyframes right-eye {
  2.6666666667% {
    transform: scaleY(1);
  }
  3.3333333333% {
    transform: scaleY(0.3);
  }
  4% {
    transform: scaleY(1);
  }
  6.6666666667% {
    transform: translateX(0);
  }
  9.3333333333% {
    transform: scaleY(1) translateX(75%);
  }
  10% {
    transform: scaleY(0.3) translateX(75%);
  }
  10.6666666667% {
    transform: scaleY(1) translateX(75%);
  }
  13.3333333333% {
    transform: translateX(150%);
  }
  22% {
    transform: scaleY(1) translateX(150%);
  }
  22.6666666667% {
    transform: scaleY(0.3) translateX(150%);
  }
  23.3333333333% {
    transform: scaleY(1) translateX(150%);
  }
  25.3333333333% {
    transform: scaleY(1) translateX(150%);
  }
  26% {
    transform: scaleY(0.3) translateX(150%);
  }
  26.6666666667% {
    transform: scaleY(1) translateX(150%);
  }
  33.3333333333% {
    transform: translateX(0) translateY(-170%);
  }
  36% {
    transform: scaleY(1) translateY(-170%);
  }
  36.6666666667% {
    transform: scaleY(0.3) translateY(-170%);
  }
  37.3333333333% {
    transform: scaleY(1) translateY(-170%);
  }
  38% {
    transform: scaleY(1) translateY(-170%);
  }
  38.6666666667% {
    transform: scaleY(0.3) translateY(-170%);
  }
  39.3333333333% {
    transform: scaleY(1) translateY(-170%);
  }
  53.3333333333% {
    transform: translateY(0);
  }
  65.3333333333% {
    transform: scaleY(1) translateY(0);
  }
  66% {
    transform: scaleY(0.3) translateY(0);
  }
  66.6666666667% {
    transform: scaleY(1) translateY(0);
  }
  70% {
    transform: scaleY(1) translateY(0);
  }
  70.6666666667% {
    transform: scaleY(0.3) translateY(0);
  }
  71.3333333333% {
    transform: scaleY(1) translateY(0);
  }
}
@keyframes tongue {
  46.6666666667% {
    transform: translateY(0);
  }
  53.3333333333% {
    transform: translateY(100%) rotate(10deg);
  }
  73.3333333333% {
    transform: translateY(100%) rotate(10deg);
  }
  80% {
    transform: translateY(0);
  }
}
@keyframes mouth-cover-left {
  40% {
    transform: rotate(0);
  }
  60% {
    transform: rotate(90deg);
  }
  73.3333333333% {
    transform: rotate(90deg);
  }
  86.6666666667% {
    transform: rotate(0);
  }
}
@keyframes mouth-cover-right {
  40% {
    transform: rotate(0);
  }
  60% {
    transform: rotate(-90deg);
  }
  73.3333333333% {
    transform: rotate(-90deg);
  }
  86.6666666667% {
    transform: rotate(0);
  }
}
@keyframes tail {
  6.6666666667% {
    transform: rotate(0);
  }
  10% {
    transform: rotate(30deg);
  }
  13.3333333333% {
    transform: rotate(0);
  }
  20% {
    transform: rotate(0);
  }
  26.6666666667% {
    transform: rotate(30deg);
  }
  46.6666666667% {
    transform: rotate(30deg);
  }
  48.3333333333% {
    transform: rotate(0);
  }
  50% {
    transform: rotate(28deg);
  }
  50.8333333333% {
    transform: rotate(0);
  }
  51.6666666667% {
    transform: rotate(28deg);
  }
  52.5% {
    transform: rotate(0);
  }
  53.3333333333% {
    transform: rotate(28deg);
  }
  54.1666666667% {
    transform: rotate(0);
  }
  55% {
    transform: rotate(28deg);
  }
  55.8333333333% {
    transform: rotate(0);
  }
  56.6666666667% {
    transform: rotate(28deg);
  }
  57.5% {
    transform: rotate(0);
  }
  58.3333333333% {
    transform: rotate(28deg);
  }
  59.1666666667% {
    transform: rotate(0);
  }
  60% {
    transform: rotate(28deg);
  }
  60.8333333333% {
    transform: rotate(0);
  }
  61.6666666667% {
    transform: rotate(28deg);
  }
  62.5% {
    transform: rotate(0);
  }
  63.3333333333% {
    transform: rotate(28deg);
  }
  64.1666666667% {
    transform: rotate(0);
  }
  65% {
    transform: rotate(28deg);
  }
  65.8333333333% {
    transform: rotate(0);
  }
  66.6666666667% {
    transform: rotate(28deg);
  }
  67.5% {
    transform: rotate(0);
  }
  68.3333333333% {
    transform: rotate(28deg);
  }
  69.1666666667% {
    transform: rotate(0);
  }
  70% {
    transform: rotate(28deg);
  }
  70.8333333333% {
    transform: rotate(0);
  }
  71.6666666667% {
    transform: rotate(28deg);
  }
  72.5% {
    transform: rotate(0);
  }
}
@keyframes left-ear {
  0% {
    transform: rotate(6deg);
  }
  6.6666666667% {
    transform: rotate(6deg);
  }
  13.3333333333% {
    transform: rotate(15deg);
  }
  26.6666666667% {
    transform: rotate(15deg);
  }
  33.3333333333% {
    transform: rotate(30deg);
  }
  40% {
    transform: rotate(30deg);
  }
  46.6666666667% {
    transform: rotate(0deg);
  }
  53.3333333333% {
    transform: rotate(0deg);
  }
  60% {
    transform: rotate(15deg);
  }
  80% {
    transform: rotate(15deg);
  }
  93.3333333333% {
    transform: rotate(6deg);
  }
  100% {
    transform: rotateZ(6deg);
  }
}
@keyframes right-ear {
  0% {
    transform: rotateZ(-16deg) rotateY(180deg);
  }
  6.6666666667% {
    transform: rotateZ(-16deg) rotateY(180deg);
  }
  13.3333333333% {
    transform: rotateZ(-19deg) rotateY(180deg);
  }
  26.6666666667% {
    transform: rotateZ(-19deg) rotateY(180deg);
  }
  33.3333333333% {
    transform: rotateZ(-30deg) rotateY(180deg);
  }
  36.6666666667% {
    transform: rotateZ(-19deg) rotateY(180deg);
  }
  37.3333333333% {
    transform: rotateZ(-30deg) rotateY(180deg);
  }
  38% {
    transform: rotateZ(-19deg) rotateY(180deg);
  }
  40% {
    transform: rotateZ(-19deg) rotateY(180deg);
  }
  40.6666666667% {
    transform: rotateZ(-30deg) rotateY(180deg);
  }
  41.3333333333% {
    transform: rotateZ(-19deg) rotateY(180deg);
  }
  46.6666666667% {
    transform: rotateZ(-9deg) rotateY(180deg);
  }
  53.3333333333% {
    transform: rotateZ(-9deg) rotateY(180deg);
  }
  60% {
    transform: rotateZ(-19deg) rotateY(180deg);
  }
  60.6666666667% {
    transform: rotateZ(-30deg) rotateY(180deg);
  }
  61.3333333333% {
    transform: rotateZ(-19deg) rotateY(180deg);
  }
  62.6666666667% {
    transform: rotateZ(-19deg) rotateY(180deg);
  }
  63.3333333333% {
    transform: rotateZ(-30deg) rotateY(180deg);
  }
  64% {
    transform: rotateZ(-19deg) rotateY(180deg);
  }
  80% {
    transform: rotateZ(-19deg) rotateY(180deg);
  }
  93.3333333333% {
    transform: rotateZ(-16deg) rotateY(180deg);
  }
  100% {
    transform: rotateZ(-16deg) rotateY(180deg);
  }
}
*, *:before, *:after {
  animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1) !important;
}

.husky {
  animation: squiggly-anim 0.3s infinite;
  height: 60vmin;
  width: 84vmin;
}
@media screen and (max-width: 400px) {
  .husky {
    animation: none;
  }
}
.husky:before {
  width: 90%;
  height: 0.5vmin;
  background: #C0C0C0;
  border-radius: 0.5vmin;
  top: 100%;
  left: 5%;
  z-index: 2;
}
.husky:after {
  width: 100%;
  height: 10%;
  top: calc(100% + 0.5vmin);
  z-index: 3;
  background: #368BC1;
}

div:before, div:after {
  content: "";
  display: block;
  position: absolute;
}

.head {
  animation: head 12s none infinite;
  position: absolute;
  height: 45%;
  width: 58%;
  left: 34%;
  top: 5%;
  transform-origin: bottom center;
}
.head:before {
  background: #C0C0C0;
  border-top-left-radius: 50% 40%;
  border-top-right-radius: 50% 40%;
  border-bottom-right-radius: 10% 60%;
  height: 100%;
  width: 100%;
}

.face {
  animation: face 12s none infinite;
  position: absolute;
  width: 98%;
  height: 62%;
  top: 15%;
  left: 2%;
}
.face:before {
  z-index: 1;
  width: 94%;
  height: 70%;
  left: 3%;
  background-color: #FFFDD0;
  bottom: 5%;
  border-top-left-radius: 40% 50%;
  border-top-right-radius: 40% 50%;
  border-bottom-left-radius: 30% 50%;
  border-bottom-right-radius: 30% 40%;
}

.eye {
  animation: eyes 12s none infinite;
  position: absolute;
  width: 30%;
  height: 40%;
  background-color: #FFFDD0;
  right: 45%;
  border-top-left-radius: 55% 50%;
  border-top-right-radius: 45% 50%;
  z-index: 2;
}
.eye:before {
  animation: left-eye 12s none infinite;
  height: 15%;
  width: 15%;
  border-radius: 100%;
  background: #C0C0C0;
  top: 45%;
  left: 45%;
  transform-origin: center center;
}
.eye + .eye {
  z-index: 1;
  right: initial;
  left: 48%;
  border-top-right-radius: 55% 50%;
  border-top-left-radius: 45% 50%;
}

.nose {
  animation: nose 12s none infinite;
  z-index: 2;
  position: absolute;
  width: 20%;
  height: 20%;
  top: 29%;
  left: 42%;
}
.nose:after {
  background: #C0C0C0;
  height: 100%;
  width: 100%;
  border-top-left-radius: 20% 20%;
  border-top-right-radius: 30% 20%;
  border-bottom-right-radius: 55% 80%;
  border-bottom-left-radius: 50% 80%;
}
.nose:before {
  height: 100%;
  width: 200%;
  background: #FFFDD0;
  top: 50%;
  left: -50%;
  z-index: -1;
  border-radius: 50%;
}

.ear {
  animation: left-ear 12s both infinite;
  position: absolute;
  top: 3%;
  left: -10%;
  width: 48%;
  height: 30%;
  border-bottom-left-radius: 100% 90%;
  border-top-left-radius: 10%;
  transform-origin: 80% center;
  overflow: hidden;
  background: #C0C0C0;
}
.ear:before {
  width: 70%;
  height: 55%;
  border: 2px solid #C0C0C0;
  background: #FFC0CB;
  top: 20%;
  left: 15%;
  transform-origin: top left;
  transform: skewX(30deg) rotate(-5deg);
}
.ear:after {
  width: 70%;
  height: 100%;
  border-top-left-radius: 100%;
  background: #C0C0C0;
  left: 32%;
  transform-origin: top left;
  transform: rotate(-5deg);
}
.ear + .ear {
  animation: right-ear 12s both infinite;
  background-color: #C0C0C0;
  left: 15%;
  top: 5%;
  z-index: -1;
  transform-origin: right center;
}
.ear + .ear:before {
  border-color: #C0C0C0;
}
.ear + .ear:after {
  background: #C0C0C0;
}

.mouth {
  z-index: 1;
  animation: mouth 12s none infinite;
  position: absolute;
  width: 48%;
  height: 55%;
  bottom: -5%;
  left: 28%;
  overflow: hidden;
}
.mouth:before, .mouth:after {
  animation: mouth-cover-left 12s none infinite;
  width: 28%;
  height: 100%;
  background: #FFFDD0;
  top: -50%;
  left: 0;
  z-index: 3;
  transform-origin: right top;
}
.mouth:after {
  animation: mouth-cover-right 12s none infinite;
  left: initial;
  right: 0;
  transform-origin: left top;
}

.lips {
  z-index: 2;
  height: 35%;
  width: 100%;
}
.lips:before, .lips:after {
  background: #FFFDD0;
  width: calc(50% + 1.5px);
  border-color: #71797E;
  border-width: 3px;
  border-style: solid;
  height: 100%;
  border-bottom-left-radius: 65% 100%;
  border-bottom-right-radius: 35% 50%;
  border-top-right-radius: 50%;
  border-right-color: transparent;
  border-top-color: transparent;
}
.lips:after {
  transform: rotateY(180deg);
  left: initial;
  right: 0;
}

.tongue {
  animation: tongue 12s none infinite;
  position: absolute;
  height: 100%;
  width: 44%;
  background: #FFC0CB;
  left: 25%;
  bottom: 100%;
  z-index: 1;
  border-bottom-left-radius: 50% 20%;
  border-bottom-right-radius: 50% 20%;
}

.body {
  animation: body 12s none infinite;
  width: 45%;
  height: 100%;
  position: absolute;
  left: 25%;
}

.torso {
  position: absolute;
  height: 55%;
  width: 100%;
  bottom: 0;
}
.torso:before {
  background: #C0C0C0;
  height: 100%;
  width: 50%;
  transform: translateX(-20%) skewX(-30deg);
  transform-origin: left bottom;
  border-radius: 0 30% 0 60%;
}
.torso:after {
  background: #C0C0C0;
  height: 100%;
  width: 60%;
  top: 0;
  right: 0;
  border-radius: 10% 40% 60% 0;
}

.mane {
  animation: mane 12s none infinite;
  z-index: 2;
  position: absolute;
  width: 31.5%;
  height: 30%;
  top: 44%;
  left: 37%;
}
.mane:before {
  background: #FFFDD0;
  height: 40%;
  width: 100%;
  border-top-left-radius: 10% 50%;
  border-top-right-radius: 20% 100%;
  border-bottom-left-radius: 10% 50%;
}
.mane:after {
  background: #FFFDD0;
  top: 25%;
  height: 76%;
  width: 30%;
  right: 23%;
  border-top-right-radius: 100% 80%;
  transform: rotate(47deg);
  transform-origin: bottom right;
}

.coat {
  position: absolute;
  width: 50%;
  height: 50%;
  background: #FFFDD0;
  transform-origin: bottom right;
  left: 10%;
  top: 21%;
  transform: rotate(25deg) skewX(-30deg);
}

.legs {
  background-color: #C0C0C0;
  position: absolute;
  height: 30%;
  width: 42%;
  left: 23%;
  bottom: 0;
  border-top-left-radius: 20% 37%;
  border-bottom-left-radius: 10% 37%;
  border-top-right-radius: 50%;
  z-index: 1;
}

.front-legs {
  position: absolute;
  width: 55%;
  height: 117%;
  bottom: 0;
  right: -12%;
}
.front-legs:before {
  width: 4%;
  height: 6%;
  background: transparent;
  bottom: 0;
  left: 47%;
  box-shadow: -1.3vmin 0 0 #71797E, -2.8vmin 0 0 #71797E, 1.3vmin 0 0 #368BC1, 2.8vmin 0 0 #368BC1;
  z-index: 2;
}
.front-legs > .leg {
  width: 51%;
  height: 100%;
  position: absolute;
  bottom: 0;
  right: 50%;
  overflow: hidden;
}
.front-legs > .leg:before {
  background: #D3D3D3;
  height: 100%;
  width: 100%;
  transform: skewY(-30deg) skewX(10deg);
  transform-origin: top right;
}
.front-legs > .leg + .leg {
  right: 0;
  transform: rotateY(180deg);
}
.front-legs > .leg + .leg:before {
  background: #71797E;
}

.hind-leg {
  position: absolute;
  background: #71797E;
  width: 35%;
  height: 25%;
  border-top-left-radius: 35% 100%;
  border-top-right-radius: 40% 100%;
  bottom: 0%;
  right: 45%;
}
.hind-leg:before {
  width: 6%;
  height: 20%;
  background: transparent;
  bottom: 0;
  left: 70%;
  box-shadow: -0.8vmin 0 0 #368BC1, 0.8vmin 0 0 #368BC1;
}

.tail {
  position: absolute;
  width: 15%;
  height: 6%;
  bottom: 0;
  right: 72%;
  background: #C0C0C0;
  z-index: 0;
}
.tail > .tail {
  animation: tail 12s none infinite;
  height: 100%;
  width: 4vmin;
  right: 26%;
  transform-origin: center right;
  border-top-left-radius: 50% 50%;
  border-bottom-left-radius: 50% 50%;
  transform: rotate(26deg);
  transform: rotate(0deg);
}
.husky > .tail {
  border-top-left-radius: 10% 50%;
  border-bottom-left-radius: 10% 50%;
}
.husky > .tail > .tail {
  right: 88%;
}

@keyframes squiggly-anim {
  0% {
    filter: url("#squiggly-0");
  }
  25% {
    filter: url("#squiggly-1");
  }
  50% {
    filter: url("#squiggly-2");
  }
  75% {
    filter: url("#squiggly-3");
  }
  100% {
    filter: url("#squiggly-4");
  }
}
html, body {
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-color: #368BC1;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

*, *:before, *:after {
  box-sizing: border-box;
  position: relative;
}