<main>
  <section>
    <article>

      <div class="top-section middle"></div>
      <div class="top-section divider"></div>
      <div class="top-section left"></div>
      <div class="top-section right">
        <ul class="side-grill">
          <li></li>
          <li></li>
          <li></li>
        </ul>
      </div>
      
      
      
      <div class="door-windows">
        <div class="window"></div>
        <div class="window"></div>
        <div class="window"></div>
        <div class="window"></div>
      </div>
      <div class="windows">
        <div class="window"></div>
        <div class="window"></div>
        <div class="window"></div>
      </div>

      <div class="top-roof">

        <div class="suspension-clips">
          <div class="clip">
            <div class="bar"></div>
          </div>
          <div class="clip">
            <div class="bar"></div>
          </div>
        </div>
      </div>

      <div class="surf-board">
        <div class="fin"></div>

      </div>

      <div class="front-frame">
        <div class="frame-solid-bg">
          <ul class="side-grill">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
          </ul>
        </div>
        <div class="lights">
          <div class="side-light"></div>
          <div class="head-light"></div>
        </div>
        <div class="door">
          <div class="door-frame">
            
          </div>
          <div class="door-handle"></div>
          <div class="door-hinge"></div>
          <div class="door-hinge"></div>
        </div>
        <div class="shine"></div>
      </div>

      <div class="front-frame-shadow"></div>

      <div class="front-bumper"></div>
      <div class="back-bumper"></div>
      <div class="back-light">

      </div>

      <div class="wheels">
        <div class="wheel">
          <div class="tire">
            <div class="hook-cap">
              <div class="rim"></div>
            </div>
          </div>

        </div>

        <div class="wheel">
          <div class="tire">
            <div class="hook-cap">
              <div class="rim"></div>
            </div>
          </div>

        </div>
      </div>
      <div class="wheel-frames">
        <div class="wheel-frame"></div>
        <div class="wheel-frame back"></div>
      </div>
    </article>
    
 
  </section>

</main>
html {
  box-sizing: border-box;
}

body {
  background-color: #fff;
  width: 100vw;
  height: 100vh;
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

$bg: #da3a53;
$white: #f7f4e6;
$black: #1d1d1b;
$dot-bg: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%231D1D1B' fill-opacity='1' fill-rule='evenodd'%3E%3Ccircle cx='3' cy='3' r='3'/%3E%3Ccircle cx='13' cy='13' r='3'/%3E%3C/g%3E%3C/svg%3E");
$tire-bg: linear-gradient(to right, #434343 0%, black 100%);

$surf-bg: linear-gradient(to right, #ffecd2 0%, #fcb69f 100%);
$fin: linear-gradient(to top, #ffecd2 0%, #fcb69f 100%);

main {
  align-items: center;
  display: flex;
  background-color: $bg;
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
  height: 100vh;
  justify-content: center;
  width: 100vw;
  // mix-blend-mode: luminosity;
}

section {
  background-color: $bg;
  bottom: 0;
  display: flex;
  height: 100vh;
  left: 0;
  margin: auto;
  mix-blend-mode: luminosity;
  overflow: auto;
  position: absolute;
  right: 0;
  top: 0;
  width: 360px;
  overflow: hidden;

  &::before {
    background: url("https://www.onlygfx.com/wp-content/uploads/2019/08/8-flock-of-birds-silhouette-5.png");
    background-position: 30% 20%;
    background-repeat: no-repeat;
    background-size: 200px;
    content: " ";
    display: block;
    height: 100%;
    left: 0;
    mix-blend-mode: overlay;
    opacity: 0.3;
    position: absolute;
    top: -20px;
    width: 360px;
    z-index: 1;
  }

  &::after {
    background: url("https://www.onlygfx.com/wp-content/uploads/2017/12/palm-tree-silhouette-vol-2-4.png");
    background-position: 65% 15%;
    background-repeat: no-repeat;
    background-size: 200px 360px;
    bottom: 0;
    content: " ";
    display: block;
    height: 100%;
    right: -50px;
    mix-blend-mode: overlay;
    opacity: 0.3;
    overflow: hidden;
    position: absolute;
    top: 0px;
    width: 360px;
    z-index: 1;
  }
}

article {
  display: flex;
  margin: auto;
  border-bottom: 4px solid $black;
  width: 375px;
  height: 240px;
  position: relative;
  transform: scale(0.85);
  z-index: 2;

  &::before,
  &::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -10px;
    height: 10px;
    background: $dot-bg;
    background-size: 5px;
    width: 80%;
    margin: auto;
  }

  &::after {
    bottom: -15px;
    height: 5px;
    z-index: 1;

    width: 70%;
  }
}

.surf-board {
  position: absolute;
  left: 80px;
  width: 60%;
  height: 10px;
  background: $surf-bg;
  border-top-right-radius: 500px;
  border-top-left-radius: 500px;
  border: 2px solid $black;
  transform: skewY(1deg);

  .fin {
    background: $fin;
    position: absolute;
    right: 30px;
    width: 20px;
    height: 15px;
    top: -17px;
    border-top-left-radius: 25px;
    border: 2px solid $black;
    border-bottom: 0;
    transform: skew(-45deg, 0deg);
    border-top-right-radius: 5px;
  }
}
.front-frame {
  background-color: #f7f4e6;
  position: absolute;
  width: calc(100% - 20px);
  left: 11px;
  height: 120px;
  bottom: 45px;
  border: 4px solid #1d1d1b;
  border-bottom: 0;
  border-top-color: transparent;
  border-radius: 13% 9px 10% 100% / 73% 50% 0% 0%;

  transform: skewX(-1deg);
  z-index: 3;
}
.top-section {
  position: absolute;
  top: 15px;

  &.middle {
    border-top: 3px solid $black;
    background-color: $white;
    width: calc(100% - 115px);
    transform: skewX(-31deg);
    left: 59px;
    border-top-left-radius: 24px;
    border-top-right-radius: 24px;
    z-index: 4;
    height: 60px;
  }

  &.left,
  &.right {
    width: 60px;
    top: 15px;
    height: 70px;
  }

  &.left {
    left: 50px;
    
    border-left: 5px solid $black;
    border-top-left-radius: 50px;
    border-top-right-radius: 50px;
    transform: skewX(-31deg);
    z-index: 4;
    height: 76px;
  }

  &.right {
    background-color: $white;
    border-radius: 0% 60% 0% 0%/0% 100% 0% 0%;
    box-shadow: inset -1px -2px 0px 0px $black;
    right: 13px;
    border-top: 3px solid $black;
    border-right: 3px solid $black;
    transform: skewX(2deg);
    width: 80px;
    z-index: 4;

    .side-grill {
      top: 15px;
      width: 30px;
    }
  }

  &.divider {
    top: 30px;
    width: calc(100% - 80px);
    left: 60px;
    border: 1px solid $black;
    height: 4px;
    z-index: 5;
    background: linear-gradient(
      to top,
      #d5d4d0 0%,
      #d5d4d0 1%,
      #eeeeec 31%,
      #efeeec 75%,
      #e9e9e7 100%
    );
    box-shadow: 0 3px 6px 0px rgba(97, 95, 95, 0.5);
  }
}

.windows {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 5px;
  position: absolute;
  top: 35px;
  justify-content: flex-end;
  width: 150px;
  left: 135px;
  padding: 12px;
  z-index: 6;
  height: 62px;

  .window {
    background-image: linear-gradient(
      225deg,
      #2cd8d5 0%,
      #c5c1ff 56%,
      #ffbac3 100%
    );
    border: 1px solid black;
    border-radius: 6px;

    &:nth-of-type(2) {
      background-image: linear-gradient(
        -225deg,
        #2cd8d5 0%,
        #c5c1ff 56%,
        #ffbac3 100%
      );
    }
  }
}

.door-windows {
  position: absolute;
  left: 54px;
  border-top-left-radius: 24px;
  border-bottom-left-radius: 0px;
  border-top-right-radius: 6px;
  padding: 12px;
  width: 96px;
  top: 35px;
  height: 60px;

  z-index: 6;
  display: grid;
  grid-template-columns: 1fr 0.75fr 2fr 2fr;
  grid-gap: 3px;

  .window {
    border: 1px solid $black;
    z-index: 6;
    border-radius: 3px;
    background-image: linear-gradient(
      225deg,
      #2cd8d5 0%,
      #c5c1ff 56%,
      #ffbac3 100%
    );

    &:nth-of-type(1) {
      left: -6px;
      border-radius: 0;
      border-top-right-radius: 0px;
      border-bottom: 1px solid $black;
      border-right: 1px solid $black;
      background-image: linear-gradient(
        -225deg,
        #2cd8d5 0%,
        #c5c1ff 56%,
        #ffbac3 100%
      );
      box-shadow: inset 6px 3px 9px 3px #bfbfbf;
      transform: skewX(-30deg);
      position: absolute;
      height: 36px;
      top: 12px;
      width: 15px;
    }

    &:nth-of-type(2) {
      width: 32px;
      left: -7px;
      position: relative;
      transform: skewX(-29deg);
      top: 0px;
      height: 36px;
      border-top-left-radius: 0;
      border-bottom-left-radius: 0;
      border-left: 0;
      z-index: 5;
    }

    &:nth-of-type(3) {
      background-image: linear-gradient(
        -225deg,
        #2cd8d5 0%,
        #c5c1ff 56%,
        #ffbac3 100%
      );
      width: 58px;
      left: -21px;
      position: relative;
    }
  }
}

.door {
  position: absolute;
  left: 30px;

  width: 90px;
  top: 8px;
  height: calc(100% - 15px);
  .door-handle {
    position: absolute;
    right: 10px;
    width: 12px;

    height: 6px;

    width: 10px;
    top: 30px;

    &::before {
      border-radius: 35%;
      position: absolute;
      content: "";
      left: -6px;
      top: -3px;
      border: 1px solid $black;
      height: 10px;
      width: 10px;
      background-image: linear-gradient(to right, #d7d2cc 0%, #304352 100%);
    }

    &::after {
      background: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%);
      position: absolute;
      right: 3px;
      width: 12px;
      content: "";
      height: 6px;
      border: 1px solid $black;
      width: 10px;
      top: -1px;
    }
  }

  .door-hinge {
    position: absolute;
    left: 10px;
    height: 6px;

    width: 10px;
    top: 30px;

    &:last-of-type {
      bottom: 24px;
      top: unset;
    }

    &::before {
      border-radius: 50%;
      position: absolute;
      content: "";
      left: -7px;
      top: -3px;
      border: 1px solid $black;
      height: 5px;
      width: 5px;
    }

    &::after {
      border-radius: 50%;
      position: absolute;
      left: -7px;

      content: "";
      height: 5px;
      border: 1px solid $black;
      width: 5px;
      top: 2px;
    }
  }
}
.door-frame {
  width: 84px;
  left: 5px;
  position: absolute;
  top: 0px;
  height: calc(100% - 25px);
  border: 1px solid $black;
  border-bottom-right-radius: 65px;
  border-bottom-left-radius: 0px;
}
.top-roof {
  position: absolute;
  top: 9px;
  width: calc(100% - 80px);
  left: 60px;
  height: 20px;
  z-index: 4;

  .suspension-clips {
    position: absolute;
    left: 55px;
    display: flex;
    flex-flow: row nowrap;

    width: 115px;
    margin: 0 auto;
    height: 20px;
  }

  .clip {
    margin-top: auto;
    display: flex;
    border-radius: 50%;
    width: 10px;
    height: 10px;
    position: absolute;
    bottom: -5px;
    background: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%);
    border: 1px solid $black;
    z-index: 2;

    &::after {
      content: "";
      position: absolute;
      width: 2px;
      height: 2px;
      border-radius: 50%;
      border: 2px solid $black;
      top: 0px;
      left: 0px;
      right: 0;
      bottom: 0;
      margin: auto;
    }

    &:last-of-type {
      right: 0;
    }
  }

  .bar {
    width: 5px;
    border: 1px solid $black;
    height: 16px;
    position: absolute;
    left: 0;
    right: 0;
    border-radius: 4px;
    margin: auto;
    bottom: 8px;
    background-image: linear-gradient(to right, #cfd9df 0%, #e2ebf0 100%);
  }
}
.front-frame-shadow {
  position: absolute;
  width: calc(100% - 85px);
  height: 25px;
  left: 45px;
  bottom: 35px;
  background-color: $black;
  z-index: 1;
}
.frame-solid-bg {
  border-radius: 35% 20px 5% 100% / 85% 9px 0% 0%;
  background-image: linear-gradient(to top, #0ba360 0%, #3cba92 100%);
  width: 100%;
  height: 96px;
  bottom: 0;
  position: absolute;
}
.shine {
  border-radius: 95% 0% 95% 0% / 85% 20% 10% 0%;
  background-color: rgba(247, 244, 230, 0.45);
  width: calc(100% - 65px);
  left: 60px;
  top: 24px;
  height: 12px;
  bottom: 0;
  position: absolute;
  mix-blend-mode: soft-light;
}
.side-grill {
  position: absolute;
  top: 0;
  right: 30px;
  list-style: none;
  width: 30px;
  display: flex;
  flex-flow: column wrap;

  li {
    margin: 1px 0;
    height: 2px;
    border-radius: 3px;
    background-color: $black;
    width: 100%;

    &:first-of-type {
      margin: 6px 0 1px 0;
    }
  }
}
.lights {
  top: 30px;
  left: 0;
  height: 45px;
  position: absolute;
  transform: scale(0.75);
  width: 30px;

  .side-light,
  .head-light {
    border-radius: 50%;
    background-image: radial-gradient(
        at 50% 100%,
        rgba(255, 255, 255, 0.5) 0%,
        rgba(0, 0, 0, 0.5) 100%
      ),
      linear-gradient(
        to bottom,
        rgba(255, 255, 255, 0.25) 0%,
        rgba(0, 0, 0, 0.25) 100%
      );
    background-blend-mode: screen, overlay;
    border: 1px solid $black;
    position: absolute;
  }

  .side-light {
    background: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%);
    width: 14px;
    height: 14px;

    right: 9px;
    z-index: 2;

    &::after {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      bottom: 0;
      right: 0;
      margin: auto;
      height: 10px;
      width: 10px;
      border-radius: 50%;
      background-image: linear-gradient(-20deg, #fc6076 0%, #ff9a44 100%);
      border: 1px solid $black;
    }
  }

  .head-light {
    background: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%);
    background-blend-mode: screen, overlay;
    bottom: 0;
    height: 25px;
    width: 25px;

    &::after {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      bottom: 0;
      right: 0;
      margin: auto;
      height: 19px;
      width: 19px;
      border-radius: 50%;

      background-image: linear-gradient(315deg, #fec84e 0%, #ffdea8 74%);
      border: 1px solid $black;
    }
  }
}
.front-bumper {
  position: absolute;
  border: 3px solid $black;
  border-radius: 9px 12px 12px 9px;
  background: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%);
  bottom: 34px;
  height: 16px;
  width: 50px;
  z-index: 4;
}
.back-bumper {
  position: absolute;
  border: 3px solid $black;

  border-radius: 9px 12px 12px 9px;
  background-image: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%);
  bottom: 34px;
  height: 16px;
  width: 45px;
  z-index: 4;
  right: -2px;
}
.back-light {
  background-image: linear-gradient(to bottom, #cfd9df 0%, #e2ebf0 100%);
  position: absolute;
  right: 7px;
  bottom: 75px;
  border-radius: 50%;
  border: 2px solid $black;
  height: 12px;
  width: 6px;
  z-index: 4;
}
.wheels,
.wheel-frames {
  position: absolute;
  margin: auto;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: space-between;
}
.wheel-frames {
  width: 75%;
  z-index: 4;
}
.wheel-frame {
  background-color: $black;
  border-radius: 2000px 2000px 0px / 2000px 1351px 0px 0px;
  bottom: 40px;
  height: 30px;
  left: 5px;
  position: absolute;
  width: 75px;

  &.back {
    bottom: 40px;

    left: unset;
    position: absolute;
    right: 0px;
    width: 80px;
  }
}
.wheels {
  width: 68%;
}
.wheel {
  z-index: 5;

  &:last-of-type {
    position: relative;
    right: -6px;
  }

  .tire {
    background: $tire-bg;
    border: 3px solid $black;
    border-radius: 50%;
    height: 60px;
    position: relative;
    width: 60px;
  }

  .hook-cap {
    background-image: linear-gradient(
      to top,
      #c4c5c7 0%,
      #dcdddf 52%,
      #ebebeb 100%
    );
    border: 1px solid $black;
    border-radius: 50%;
    bottom: 0;
    height: 40px;
    left: 0;
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    width: 40px;

    &::before,
    &::after {
      background-image: linear-gradient(
        to top,
        #c4c5c7 0%,
        #dcdddf 52%,
        #ebebeb 100%
      );
      border-radius: 50%;
      border: 1px solid $black;
      content: "";
      bottom: 0;
      left: 0;
      margin: auto;
      position: absolute;
      right: 0;
      top: 0;
    }

    &:before {
      height: 30px;
      width: 30px;
    }

    &::after {
      background: linear-gradient(-180deg, #bcc5ce 0%, #929ead 98%),
        radial-gradient(
          at top left,
          rgba(255, 255, 255, 0.3) 0%,
          rgba(0, 0, 0, 0.3) 100%
        );
      background-blend-mode: screen;
      border: 1px solid $black;
      height: 20px;
      width: 20px;
    }
  }

  .rim {
    border-radius: 50%;
    bottom: 0;
    height: 5px;
    left: 0;
    margin: auto;
    position: absolute;
    right: 0;
    top: 0;
    width: 5px;
    z-index: 1;

    &::before,
    &::after {
      border: 1px solid $black;
      border-radius: 50%;
      content: "";
      position: absolute;
      bottom: 0;
      left: 0;
      margin: auto;
      top: 0;
      right: 0;
    }
  }
}


@media (min-width: 768px)  {
  .front-frame {
    border-radius: 15% 9px 10% 100% / 73% 50% 0% 0%;
  }
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js
  2. https://cdn.jsdelivr.net/npm/circletype@2.3.0/dist/circletype.min.js