.canvas
  .square
  .square-2
  .square-3
  .square-4
  
  .shadow
  .leg-left
  .foot-left
    .ellipse
    .ellipse-2
    .ellipse-3
    .ellipse-4
  .pokemon
    .foot-right
      .ellipse-5
    .stomach
    .chest
    .hand-left
      .finger
      .finger
      .finger
      .finger
    .hand-right
      .finger
      .finger
      .finger
      .finger
    .tail
    .head-shadow
    .head
      .cheeks
      .brain
      .face-happy
        .lip
        .lip-2
        .mouth
        .eyes
      .ear.ear-left
      .ear.ear-right
  .nose
View Compiled
// 1080x1080px (instagram post)
// For the output: 10px
$size: 10px;
$bg: #030303;
$canvas: #fefefe;

@mixin centered($width, $height) {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: #{$width};
  height: #{$height};
}

// Object colors
$white: #fff;
$dark: #232124;
$black: #000;
$yellow-1: #ffd623;
$yellow-2: #e29820;
$red-1: #ee5660;
$red-2: #ab1b2c;
$red-3: #ff3014;
$red-4: #710807;

html, body {
  background: $bg;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100%;
}
.canvas {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 108em;
  height: 108em;
  margin: auto;  
  background: $canvas;
  font-size: $size;
  box-shadow: 0 0.5em 5em 1em rgba(0,0,0,0.2);
}

.pokemon {
  position: relative;
  margin: auto;
  transform: translateY(-10em) translateX(-5em);
  width: 0;
  height: 0;
  filter: 
    drop-shadow(0 -0.2em 0 $dark)
    drop-shadow(0 0.2em 0 $dark)
    drop-shadow(0.2em 0 0 $dark) 
    drop-shadow(-0.2em 0 0 $dark);
}

.shadow {
  @include centered(50em, 20em);
  background: rgba(0,0,0,0.4);
  bottom: -86em;
  left: 0em;
  border-radius: 50%;
}

.foot-right {
  @include centered(5.5em, 12em);
  left: -9em;
  bottom: -90em;
  background-image: 
    radial-gradient(
      circle at 67% -20%, 
      black,
      black 48%, 
      transparent 49%,
      transparent
    ),
    radial-gradient(
      circle at 450% -50%, 
      $yellow-2,
      $yellow-2 88%, 
      $yellow-1 88%,
      $yellow-1
    );
  border-radius: 50%;
  overflow: hidden;
}

.stomach {
  @include centered(35em, 30em);
  left: -17em;
  bottom: -50em;
  transform: rotate(-30deg);
  background-image: 
    radial-gradient(circle at 75% 90%, $yellow-2 0%, $yellow-2 20%, transparent 20%),
    linear-gradient(185deg, transparent 0%, transparent 80%, $yellow-2 80%),
    linear-gradient(230deg, transparent 0%, transparent 84%, $yellow-2 84%),
    linear-gradient(200deg, $yellow-1 0%, $yellow-1 80%, $yellow-2 80%),
    linear-gradient(to bottom, $yellow-1 0%, $yellow-1 85%, $yellow-2 85%);
  box-shadow:
    inset 0em -2em 0 0 $yellow-2;
  border-radius: 80% 20% 30% 30% / 80% 50% 80% 50%;
  overflow: hidden;
  z-index: 30;
  
}

.chest {
  @include centered(20em, 30em);
  left: -14em;
  bottom: -25em;
  transform: rotate(3deg);
  background: $yellow-1;
  z-index: 20;
  
  &::before {
    content: "";
    @include centered(20em, 30em);
    background: $yellow-1;
    left: 7em;
    transform: rotate(-15deg);
  }
}

.hand-left, .hand-right {
  @include centered(25em, 10em);
  position: relative;
  left: 8em;
  top: -2em;
  transform: rotate(-15deg) perspective(20em);
  background-image:
    linear-gradient(
      133deg,
      $yellow-1,
      $yellow-1 25%, 
      transparent 25%,
      transparent
    ),
    radial-gradient(
      ellipse at 1050% -8em,
      $yellow-1 0, 
      $yellow-1 92%,
      $yellow-2 92%
    ),
    linear-gradient( 
      to bottom, 
      $yellow-1 0%, 
      $yellow-1 100% 
    );
  box-shadow: 
    inset 0em -1em 0em $yellow-2;
  border-radius: 10% 200% 200% 10% / 0% 100% 100% 0%;
  z-index: 30;
  
  .finger {
    @include centered(0, 0);
    position: absolute;
    display: block;
    margin: auto;
    left: 24em;
    content: "";
    border-bottom: 1.5em solid transparent;
    border-left: 1.5em solid $yellow-1;
    border-top: 1em solid transparent;
    border-radius: 1em;
    &:nth-child(1) {
      top: -2.5em;
      left: 23.5em;
      transform: rotate(-35deg);
    }
    &:nth-child(2) {
      top: -1em;
      left: 24.2em;
      transform: rotate(0deg);
    }
    &:nth-child(3) {
      top: 1em;
      left: 24em;
      transform: rotate(15deg);
    }
    &:nth-child(4) {
      top: 2.7em;
      left: 23.5em;
      transform: rotate(45deg);
    }
  }
}

.hand-right {
  transform: scaleX(-1);
  left: -36em;
  top: -7em;
}

.tail {
  @include centered(50em, 40em);
  position: absolute;
  top: 25em;
  margin-top: -34em;
  left: 14em;
  background: linear-gradient(
    25deg,
    $red-4 0%,
    $red-4 15%,
    $yellow-2 15%,
    $yellow-2 28%,
    $yellow-1 28%,
  );
  z-index: 10;
  clip-path: polygon(
    0% 85%, 14% 84%, 
    14% 70%, 28% 72%, 
    32% 42%, 74% 35%, 
    70% 62%, 39% 64%, 
    35% 85%, 23% 82%, 
    22% 98%, 0% 93%
  );
}

.head-shadow {
  @include centered(16em, 12em);
  position: absolute;
  background-image:
    linear-gradient(
      135deg,
      transparent 60%, $yellow-2 60%, $yellow-2
    );
  left: -10em;
  top: 12.5em;
  margin-top: -12.5em;
  border-radius: 35%;
  transform: rotate(45deg);
  opacity: 1;
  z-index: 80;
}

.head {
  @include centered(1em, 1em);
  position: relative;
  top: -25em;
  left: -3em;
  z-index: 50;
  filter:     
    drop-shadow(0 0.3em 0 $dark);
  
  .cheeks {
    @include centered(26em, 26em);
    background-image: linear-gradient(-220deg, $yellow-1 0%, $yellow-1 83%, transparent 83%, transparent 100%);
    top: 1em;
    left: -12em;
    transform: rotate(40deg);
    border-radius: 50% 60% 40% 30% / 50% 30% 40% 50%;
    overflow: hidden;
    z-index: 50;
    
    &::before, &::after {
      @include centered(7em, 7em);
      content: "";
      background: $red-3;
      border-radius: 50%;
      top: 23em;
      left: -17em;
      z-index: 51;
      box-shadow: 0 0 0 0.25em black; 
    }
    &::after {
      top: -16em;
      left: 21em;
    }
  }
}

.brain {
  @include centered(26em, 25em);
  position: relative;
  background: $yellow-1;
  top: -16em;
  left: -12.8em;
  border-radius: 45% / 35%;
  transform: rotate(-5deg);
  z-index: 49;
}

.face-happy {
  .lip, .lip-2 {
    @include centered(5.5em, 2.4em);
    position: relative;
    top: -26.5em;
    left: -0.5em;
    background: $yellow-1;
    z-index: 60;
    clip-path: polygon(0% 0%, 0% 100%, 100% 0%);
    border-left: 0.25em solid black;
    border-top: 0.25em solid black;
    border-top-left-radius: 1em;
    transform: rotate(197deg) skewX(-25deg) scaleY(60%);
  }
  .lip-2 {
    top: -28.7em;
    left: -6em;
    transform: scaleX(-73%) scaleY(60%) rotate(213deg) skewX(-25deg);
  }
  .mouth {
    @include centered(7.5em, 11em);
    position: relative;
    top: -30.75em;
    left: -2.7em;
    transform: rotate(-20deg);
    border-radius: 0% 0% 90% 30% / 0% 0% 100% 100%;
    clip-path: polygon(
      0% 0%, 59% 0%, 100% 25%, 100% 100%, 0% 100%  
    );
    background-image:       
      radial-gradient(
        circle at bottom,
        $red-1 0%,
        $red-1 45%,
        $red-2 45%,
        $red-2 60%,
        $black 60%,
        $black 62.5%,
        $red-4 62.5%,
        $red-4
      ),
      linear-gradient(
        to bottom,
        $red-4 0%,
        $red-4 100%
      );
    border: 0.25em solid $dark;
    border-top: none;
    z-index: 58;
  }
  .eyes {
    @include centered(5em, 5em);
    top: -34em;
    left: 3em;
    background: transparent;
    border-radius: 50%;
    background: transparnet;
    z-index: 70;
    box-shadow: 
      -0.5em 9em 0em -1.5em white,
      0em 10em 0em 0em black,
      -11.5em 10em 0em -1.5em white,
      -12em 11em black;
  }  
}

.foot-left {
  @include centered(2em, 13em);
  position: absolute;
  margin: auto;
  right: 0;
  bottom: 0;
  top: -3em;
  left: 3em;
}

.ellipse {
  @include centered(3em, 13em);
  top: 36em;
  margin-top: -18em;
  left: -2.5em;
  background: 
    radial-gradient(circle at 50% 50%, $yellow-2 80%, transparent 80%)
    transparent;
  z-index: 80;
  border-radius: 50%;
  transform: rotate(-25deg);  
  border-left: 3px solid black;
}

.ellipse-2 {
  @include centered(2em, 13em);
  top: 34em;
  margin-top: -18em;
  left: -5em;
  background: $yellow-1;
  z-index: 80;
  border-radius: 50%;
  transform: rotate(-20deg);
  clip-path: polygon(0% 0%, 100% 0%, 100% 50%, 0% 50%);
  border-top: 0.5em solid black;
}

.ellipse-3 {
  @include centered(2.5em, 16em);
  top: 34em;
  margin-top: -19em;
  left: -2.2em;
  background: $yellow-1;
  z-index: 80;
  border-radius: 50%;
  transform: rotate(-20deg);
  border-top: 0.5em solid black;
  clip-path: polygon(0% 0%, 100% 0%, 100% 50%, 0% 50%);
}

.ellipse-4 {
  @include centered(2.2em, 16em);
  top: 34em;
  margin-top: -19em;
  left: 0.2em;
  background: $yellow-1;
  z-index: 80;
  border-radius: 50%;
  transform: rotate(-20deg);
  border-top: 0.5em solid black;
  clip-path: polygon(0% 0%, 100% 0%, 100% 50%, 0% 50%);
}

.leg-left {
  @include centered(14em, 18em);
  top: 37em;
  left: 8em;
  background: 
    radial-gradient(circle at 39% 10%, transparent 50%, $yellow-2 50%),
    transparent;
  z-index: 40;
  border-radius: 50%;
  box-shadow: 
    inset 0 -2em 0 0 $yellow-2,
    -1px -1px 0 0 black;
  clip-path: polygon(-1% -1%, 80% -1%, 80% 85%, -1% 85%);
}


.square {
  @include centered(5em, 9em);
  top: -39em;
  left: 39.9em;
  background: transparent;
  z-index: 80;
  transform: rotate(2deg);
  box-shadow:
    -39.1em 2.3em 0em -0.5em $yellow-1,
    -39.5em 2.3em 0em -0.6em black;
}

.square-2 {
  @include centered(2em, 6em);
  top: -40em;
  left: 39.7em;
  background: transparent;
  z-index: 18;
  transform: rotate(-15deg);
  box-shadow:
    -15.5em -5em 0em 1em $yellow-1,
    -15.1em -5em 0em 0.8em $dark;
}

.square-3 {
  @include centered(5em, 1em);
  top: -39.5em;
  left: 39.7em;
  background: transparent;
  z-index: 18;
  transform: rotate(0deg);
  box-shadow:
    -27.5em 3em 0em 1em $yellow-1
}

.square-4 {
  @include centered(1em, 16em);
  position: absolute;
  top: -39.5em;
  left: 39.7em;
  margin-top: 65.6em;
  background: transparent;
  z-index: 18;
  transform: rotate(40deg);
  border-radius: 1em;
  box-shadow:
    -2.9em 23.8em 0em 0.2em $yellow-2;
}

.nose {
    @include centered(0em, 0em);
    top: -35em;
    left: -17em;
    background: transparent;
    z-index: 92;
    transform: rotate(45deg);
    border-top: 0em solid black;
    border-right: 0em solid transparent;
    border-bottom: 1em solid black;
    border-left: 1em solid transparent;
}

.ellipse-5 {
  @include centered(1.5em, 10em);
  top: 5em;
  left: 0em;
  background: transparent;
  z-index: 80;
  border-radius: 50%;
  transform: rotate(-180deg);
  border-left: 0.2em solid black;
  border-right: 0.2em solid black;
  clip-path: polygon(0% 0%, 100% 0%, 100% 50%, 0% 50%);  
}

.ear {
    @include centered(7em, 25em);
    top: -35em;
    left: -37em;
    background: $yellow-1;
    z-index: 92;
    transform: skewX(5deg) skewY(-40deg);
  
  &.ear-left {
    top: -45em;
    left: -16em;
    border-radius: 70% 30% 30% 30% / 70% 70% 50% 50%;
    transform: skewY(-50deg) scaleY(0.8) scaleY(0.8) scalex(1.2) rotate(5deg);
    background-image: 
      radial-gradient(
        circle at -150% 100%,
        transparent,
        transparent 70%,
        black 70%,
        black
      ),
      linear-gradient(
        45deg,
        $yellow-1,
        $yellow-1 15%,
        transparent 15%,
        transparent
      ),
      radial-gradient(
        circle at -150% 50%,
        $yellow-1,
        $yellow-1 80%,
        $yellow-2 80%,
        $yellow-2
      );
  }
  
  &.ear-right {
    top: -26em;
    left: 16em;
    border-radius: 70% 30% 50% 50% / 70% 70% 50% 50%;
    transform: scaleX(1) scaleY(0.7) rotate(100deg);
    border: none;
    border-left: 1px solid black;
    background-image: 
      linear-gradient(
        -35deg,
        $yellow-1,
        $yellow-1 15%,
        transparent 15%,
        transparent
      ),
      radial-gradient(
        circle at -150% 100%,
        transparent,
        transparent 70%,
        black 70%,
        black
      ),
      radial-gradient(
        circle at -300% 70%,
        $yellow-1,
        $yellow-1 80%,
        $yellow-2 80%,
        $yellow-2
      );
  }
}
View Compiled
/*
* Pikachu
* CSS Only
*/

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.