//- Container
.container

  //-- Social links
  .social
    ul.socialList
      li.socialList__item
        a.socialList__link(href="https://github.com/Kerthin?tab=overview&from=2021-05-01&to=2021-05-05" target="_blank")
          svg.socialList__icon(viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round")
            path(d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22")
      li.socialList__item
        a.socialList__link(href="https://codepen.io/Astap" target="_blank")
          svg.socialList__icon(viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round")
            polygon(points="12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2")
            line(x1="12" y1="22" x2="12" y2="15.5")
            polyline(points="22 8.5 12 15.5 2 8.5")
            polyline(points="2 15.5 12 8.5 22 15.5")
            line(x1="12" y1="2" x2="12" y2="8.5")

  //-- Home section
  section.home

    //--- Illustration
    .illustration

      //---- Illustration Blob Circle
      svg#blob-js.illustrationBlob(viewBox="0 0 1000 1000")
        path#blob__path-js.illustrationBlob__path

      //---- Illustration Bubbles Wrap
      ul.illustrationBubblesWrap
        - for (var n = 0; n < 12; n++)
          li.illustrationBubble

      //---- Illustration Dashed Frame
      - var n = 1;
      while n <= 3
        .illustrationDashedFrame(class=`dashedFrame_type${n++}`)

      //---- Illustration Circle Charts
      - var n = 1;
      while n <= 2
        .illustrationCircleChart(class=`illustrationCircleChart_type${n++}`)

      //---- Illustration Stickers
      - var n = 1;
      while n <= 2
        .illustrationSticker(class=`illustrationSticker_type${n++}`)
          ul.illustrationSticker__lineWrap
            - for (var j = 0; j < 3; j++)
              li.illustrationSticker__line

      //---- Illustration Site Layout
      .illustrationSiteLayout
        .illustrationSiteLayout__codeWrap
          .illustrationSiteLayout__scrollBox
            ul.illustrationSiteLayout__codeList
              - for (var n = 0; n < 4; n++)
                li.illustrationSiteLayout__codeItem
                  - for (var j = 0; j < 7; j++)
                    .illustrationSiteLayout__codeLine

      //---- Illustration Dialog
      ul.illustrationDialog
        - for (var n = 0; n < 5; n++)
          li.illustrationDialog__line

      //---- Illustration Folder
      .illustrationFolder
        ul.illustrationFolder__file
          - for (var n = 0; n < 5; n++)
            li.illustrationFolder__line

      //---- Illustration Books
      .illustrationBooks
        .illustrationBooks__book
        .illustrationBooks__book
        .illustrationBooks__book
          - for (var n = 0; n < 4; n++)
            .illustrationBooks__binding

      //---- Illustration Analytics
      .illustrationAnalytics
        .illustrationAnalyticsPanel
          .illustrationAnalyticsPanel__buttonsWrap
            each val, index in ['exit', 'minimize', 'screen']
              .illustrationAnalyticsPanel__button(class=`__button_${val}`)

        //----- Illustration Analytics  Page
        .illustrationAnalyticsPage
          .illustrationAnalyticsPage__container

            //------ Illustration Analytics Diagram
            ul.illustrationAnalyticsPage__diagramWrap
              - for (var n = 0; n < 4; n++)
                li.illustrationAnalyticsPage__diagram

            //------ Illustration Analytics Banner
            .illustrationAnalyticsPage__banner

              //------- Illustration Analytics Description
              ul.illustrationAnalyticsPage__lineWrap
                - for (var n = 0; n < 8; n++)
                  li.illustrationAnalyticsPage__line

              //------- Illustration Analytics Product List
              ul.illustrationAnalyticsPage__productList
                - for (var n = 0; n < 4; n++)
                  li.illustrationAnalyticsPage__productItem
                    .illustrationAnalyticsPage__productImg
                    ul.illustrationAnalyticsPage__productLineWrap
                      - for (var j = 0; j < 3; j++)
                        li.illustrationAnalyticsPage__productLine

      //---- Illustration Imac
      .illustrationImac
        //----- Illustration Imac Display
        .illustrationImac__display

          //------ Illustration Imac Editor
          .illustrationImacEditor
            .illustrationImacEditorPanel

            //------- Illustration Imac Editor Code
            .illustrationImacEditorCodeWrap
              .illustrationImacEditorCodeWrap__scrollBox
                - for (var n = 0; n < 2; n++)
                  ul.illustrationImacEditorCodeWrap__codeList
                    - for (var j = 0; j < 6; j++)
                      li.illustrationImacEditorCodeWrap__codeItem
                        - for (var x = 0; x < 10; x++)
                          .illustrationImacEditorCodeWrap__codeLine

          //------ Illustration Imac Browser
          .illustrationImacBrowser

            //------- Illustration Imac Browser Panel
            .illustrationImacBrowserPanel
              .illustrationImacBrowserPanel__buttonsWrap
                each val, index in ['exit', 'minimize', 'screen']
                  .illustrationImacBrowserPanel__button(class=`__button_${val}`)

            //------- Illustration Imac Browser Page
            .illustrationImacBrowserPage
              .illustrationImacBrowserPage__container

                //-------- Illustration Imac Browser Header
                header.illustrationImacBrowserPage__header
                  ul.illustrationImacBrowserPage__nav
                    - for (var n = 0; n < 4; n++)
                      li.illustrationImacBrowserPage__navItem

                //-------- Illustration Imac Browser Main
                section.illustrationImacBrowserPage__main
                  .illustrationImacBrowserPage__banner
                    .illustrationImacBrowserPage__img
                    ul.illustrationImacBrowserPage__lineWrap
                      - for (var n = 0; n < 4; n++)
                        li.illustrationImacBrowserPage__line

                //-------- Illustration Imac Browser Footer
                footer.illustrationImacBrowserPage__footer
                  ul.illustrationImacBrowserPage__productList
                    - for (var n = 0; n < 3; n++)
                      li.illustrationImacBrowserPage__productItem
                        .illustrationImacBrowserPage__productImg
                        ul.illustrationImacBrowserPage__productLineWrap
                          - for (var j = 0; j < 2; j++)
                            li.illustrationImacBrowserPage__productLine

          //------ Picture
          .picture
            .picture__dayWrap
              .picture__sun
              .picture__moon
            .picture__mountainsWrap
              - for (var n = 0; n < 3; n++)
                .picture__mountain

          //------ Avatar
          .avatarWrap
            .avatar

              //------- Head
              .headWrap
                //-------- Hair
                .hair
                  .hair__leftSide
                    - for (var n = 0; n < 3; n++)
                      .blink
                  .hair__rightSide

                //-------- Ears
                .ears
                  .ear
                  .ear

                //-------- Face
                .face
                  //--------- Top Face
                  .eyebrows
                    .eyebrows__brow
                    .eyebrows__brow
                    .eyebrows__shadow
                  //--------- Middle Face
                  .eyes
                  .glasses
                    each val, index in ['left', 'right']
                      div(class=`${val}`)
                        .lens
                          .shine
                  //--------- Bottom Face
                  .nose
                  .arm
                    each val, index in ['pharynx', 'tooth', 'tongue']
                      div(class=`arm__${val}`)

                //-------- Neck
                .neck

              //------- Body
              .bodyWrap
                .bodyWrap__body
                  .collar
                    .shirt
                    .button
                    .button
                //-------- Bow
                .bowWrap
                  each val, index in ['bowShadow', 'bow', 'crease']
                    div(class=`bowWrap__${val}`)

        //----- Illustration Imac Panel
        .illustrationImac__panel
          .illustrationImac__panelButton

        //----- Illustration Imac Stand
        .illustrationImac__stand
          .illustrationImac__standShadow
          .illustrationImac__standBase

      //---- Illustration Presentation
      .illustrationPresentation
        //----- Illustration Presentation Panel
        .illustrationPresentationPanel
          .illustrationPresentationPanel__buttonsWrap
            each val, index in ['exit', 'minimize', 'screen']
              .illustrationPresentationPanel__button(class=`__button_${val}`)

        //----- Illustration Presentation Page
        .illustrationPresentationPage
          .illustrationPresentationPage__container

            //------ Illustration Presentation Banner
            .illustrationPresentationPage__banner
              .illustrationPresentationPage__img
                //------- Picture
                .picture
                  .picture__dayWrap
                    .picture__sun
                    .picture__moon
                  .picture__mountainsWrap
                    - for (var n = 0; n < 3; n++)
                      .picture__mountain
              ul.illustrationPresentationPage__lineWrap
                - for (var n = 0; n < 6; n++)
                  li.illustrationPresentationPage__line

            //------ Illustration Presentation Form
            .illustrationPresentationPage__form
              .illustrationPresentationPage__input
              .illustrationPresentationPage__input

      //---- Illustration Settings
      .illustrationSettings
        .illustrationSettings__container

          //----- Illustration Settings Gear
          .illustrationSettings__gearWrap
            .illustrationSettings__gear
              svg(viewBox="-208 -208 300 300")
                defs
                  line#tooth(x1="-2" x2="26")
                g.teeth
                  - var n = 0;
                  - var angle = 45;
                  while n < 8
                    g(transform=`rotate(${n++ * angle})`)
                      use(xlink:href="#tooth" x="85")
            .illustrationSettings__gearCircle

          //----- Illustration Settings Line
          ul.illustrationSettings__lineWrap
            - for (var n = 0; n < 4; n++)
              li.illustrationSettings__line
View Compiled
/*____________________________________________________________

# @import
  ## @import reset.scss
# Variables
  ## Regular color variables
  ## Compound color variables
  ## Screen size variables
# Extends
  ## Position centering extends
# Mixins
  ## Media queries mixin
  ## Animation delay mixin
# Auxiliary styles
# Container
  ## Social links
  ## Home section
    ### Illustration
      #### Illustration Blob Circle
      #### Illustration Bubbles Wrap
      #### Illustration Dashed Frame
      #### Illustration Circle Charts
      #### Illustration Stickers
      #### Illustration Site Layout
      #### Illustration Dialog
      #### Illustration Folder
      #### Illustration Books
      #### Illustration Analytics
        ##### Illustration Analytics Page
          ###### Illustration Analytics Diagram
          ###### Illustration Analytics Banner
            ####### Illustration Analytics Description
            ####### Illustration Analytics Product List
      #### Illustration Imac
        ##### Illustration Imac Display
          ###### Illustration Imac Editor
            ####### Illustration Imac Editor Code
          ###### Illustration Imac Browser
            ####### Illustration Imac Browser Panel
            ####### Illustration Imac Browser Page
              ######## Illustration Imac Browser Header
              ######## Illustration Imac Browser Main
              ######## Illustration Imac Browser Footer
          ###### Avatar
            ####### Head
              ######## Hair
              ######## Ears
              ######## Face
                ######### Top Face
                ######### Middle Face
                ######### Bottom Face
              ######## Neck
            ####### Body
              ######## Bow
        ##### Illustration Imac Panel
        ##### Illustration Imac Stand
      #### Illustration Presentation  
        ##### Illustration Presentation Panel
        ##### Illustration Presentation Page
          ###### Illustration Presentation Banner
            ####### Picture
          ###### Illustration Presentation Form
      #### Illustration Settings
        ##### Illustration Settings Gear
        ##### Illustration Settings Line
# Animation Pack

____________________________________________________________*/

/*____________________________________________________________
# @import
____________________________________________________________*/
/*____________________________________________________________
## @import reset.scss
____________________________________________________________*/
// @import '../../bower_components/reset-scss/reset.scss';
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  box-sizing: border-box;
}
// HTML5 display-role reset for older browsers
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}
body {
  line-height: 1;
}
ol, ul {
  list-style: none;
}
blockquote, q {
  quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/*____________________________________________________________
# Variables
____________________________________________________________*/
/*____________________________________________________________
## Regular color variables
____________________________________________________________*/
// First number color
$x-color-black: #000;
$x-color-dark-blue: #01243a;
$x-color-dark-greenish-blue: #0b3442;
$x-color-blackish-blue: #171b25;
$x-color-dark-grey-blue: #272f3a;
$x-color-lime-green: #29c740;
$x-color-granite: #2a333c;
$x-color-dark-cyanide: #2c8291;
$x-color-cyanide: #37a4b8;
$x-color-slate-grey: #3e4955;
$x-color-graphite-grey: #4c5259;
$x-color-wet-asphalt: #626a73;
$x-color-aquamarine: #7dcbd8;
$x-color-deep-red-brown: #480a16;
$x-color-flea-belly: #4d160e;
$x-color-marengo: #4d5c68;
$x-color-moderate-turquoise: #57c2cb;
$x-color-falun-red: #5f140e;
$x-color-dark-red: #732124;
$x-color-pearl-ruby: #7a1635;
$x-color-manatee: #889ea6;
$x-color-coral-red: #8c250e;
$x-color-vinous: #9b2d30;

// First letter color
$x-color-snow-blue: #a3d9e3;
$x-color-cadet-blue: #a4b4ba;
$x-color-niagara: #b0b7c6;
$x-color-silver: #c0c0c0;
$x-color-grideperlevy: #c3cdd1;
$x-color-grey-silk: #c6b69d;
$x-color-deep-orange: #c74b16;
$x-color-light-cyanide: #cceaf0;
$x-color-periwinkle: #cfdce5;
$x-color-light-cherry: #dd3e62;
$x-color-gainsborough: #e1e6e8;
$x-color-tomato: #ee6648;
$x-color-beige: #f7e0b5;
$x-color-lemon-cream: #fafac3;
$x-color-shiny-orange: #febc2e;
$x-color-amber: #fec712;
$x-color-orange-dawn: #ff5f56;
$x-color-white: #fff;

/*____________________________________________________________
## Compound color variables
____________________________________________________________*/
$palette-primary: $x-color-vinous;
$palette-secondary: $x-color-beige;
$palette-tertiary: $x-color-aquamarine;

$palette-button-exit: $x-color-orange-dawn;
$palette-button-minimize: $x-color-shiny-orange;
$palette-button-screen: $x-color-lime-green;

$palette-bubble-type-1: $x-color-aquamarine;
$palette-bubble-type-2: $x-color-granite;
$palette-bubble-type-3: $x-color-tomato;

$palette-chart-type-1: $x-color-tomato;
$palette-chart-type-2: $x-color-granite;

$palette-window-line: $x-color-light-cyanide;

$palette-folder-shadow: $x-color-dark-cyanide;

$palette-settings-elements: $x-color-dark-cyanide;

$palette-analytics-elements: $x-color-snow-blue;

$palette-dialog: $x-color-snow-blue;

$palette-site-layout: $x-color-snow-blue;

$palette-imac-display-gradient: $x-color-snow-blue;
$palette-imac-browser-elements: $x-color-silver;
$palette-imac-browser-line: $x-color-granite;

$palette-program-panel: $x-color-granite;

$palette-skin: $x-color-deep-orange;
$palette-skin-shadow: $x-color-falun-red;
$palette-hair-blink: $x-color-dark-greenish-blue;
$palette-hair-shadow: $x-color-dark-blue;
$palette-costume-elements: $x-color-marengo;
$palette-bow-elements: $x-color-dark-red;

/*____________________________________________________________
## Screen size variables
____________________________________________________________*/
$media-screen-1824: 1824px;
$media-screen-1680: 1680px;
$media-screen-1600: 1600px;
$media-screen-1440: 1440px;
$media-screen-1366: 1366px;
$media-screen-1280: 1280px;
$media-screen-1120: 1120px;
$media-screen-1024: 1024px;

$media-screen-960: 960px;
$media-screen-848: 848px;
$media-screen-768: 768px;
$media-screen-720: 720px;
$media-screen-642: 642px;
$media-screen-480: 480px;

$media-screen-410: 410px;
$media-screen-375: 375px;
$media-screen-360: 360px;
$media-screen-320: 320px;

/*____________________________________________________________
# Extends
____________________________________________________________*/
/*____________________________________________________________
## Position centering extends
____________________________________________________________*/
%verticalCentering {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

%horizontalCentering {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

%centering {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/*____________________________________________________________
# Mixins
____________________________________________________________*/
/*____________________________________________________________
## Media queries mixin
____________________________________________________________*/
@mixin media-screen($media) {
  @if $media == 1824 {
    @media only screen and (max-width: $media-screen-1824) { @content; }
  }
  @else if $media == 1680 {
    @media only screen and (max-width: $media-screen-1680) { @content; }
  }
  @else if $media == 1600 {
    @media only screen and (max-width: $media-screen-1600) { @content; }
  }
  @else if $media == 1440 {
    @media only screen and (max-width: $media-screen-1440) { @content; }
  }
  @else if $media == 1366 {
    @media only screen and (max-width: $media-screen-1366) { @content; }
  }
  @else if $media == 1280 {
    @media only screen and (max-width: $media-screen-1280) { @content; }
  }
  @else if $media == 1120 {
    @media only screen and (max-width: $media-screen-1120) { @content; }
  }
  @else if $media == 1024 {
    @media only screen and (max-width: $media-screen-1024) { @content; }
  }

  @else if $media == 960 {
    @media only screen and (max-width: $media-screen-960) { @content; }
  }
  @else if $media == 848 {
    @media only screen and (max-width: $media-screen-848) { @content; }
  }
  @else if $media == 768 {
    @media only screen and (max-width: $media-screen-768) { @content; }
  }
  @else if $media == 720 {
    @media only screen and (max-width: $media-screen-720) { @content; }
  }
  @else if $media == 642 {
    @media only screen and (max-width: $media-screen-642) { @content; }
  }
  @else if $media == 480 {
    @media only screen and (max-width: $media-screen-480) { @content; }
  }
  
  @else if $media == 414 {
    @media only screen and (max-width: $media-screen-410) { @content; }
  }
  @else if $media == 375 {
    @media only screen and (max-width: $media-screen-375) { @content; }
  }
  @else if $media == 360 {
    @media only screen and (max-width: $media-screen-360) { @content; }
  }
  @else if $media == 320 {
    @media only screen and (max-width: $media-screen-320) { @content; }
  }
}

/*____________________________________________________________
## Animation delay mixin
____________________________________________________________*/
@mixin animDelayChild($nthChild, $delay) {
  &:nth-child(#{$nthChild}) {
    &:after {
      animation-delay: #{$delay}s;
    }
  }
}

/*____________________________________________________________
# Auxiliary styles
____________________________________________________________*/
::-webkit-scrollbar {
  width: 0;
}

.clearfix:after {
  content: "";
  display: table;
  clear: both;
}

.__button_exit {
  background-color: $palette-button-exit;
}
.__button_minimize {
  background-color: $palette-button-minimize;
}
.__button_screen {
  background-color: $palette-button-screen;
}

/*____________________________________________________________
# Container
____________________________________________________________*/
.container {
  width: 100%;
}

/*____________________________________________________________
## Social links
____________________________________________________________*/
.social {
  position: fixed;
  left: 40px;
  bottom: 0;
  width: 20px;
  height: 100px;
  z-index: 10;
}
.socialList {
  width: 100%;
  
  &:after {
    content: '';
    display: block;
    margin: 0 auto;
    width: 1px;
    height: 40px;
    background: #f7e0b5;
  }
}
.socialList__item {
  margin-bottom: 10px;
  width: 20px;
  height: 20px;
  transition: transform .2s;
  
  &:hover {
    transform: translateY(-3px);
    
    .socialList__icon {
      stroke: #7dcbd8;
    }
  }
}

.socialList__icon {
  fill: none;
  stroke: #f7e0b5;
}

/*____________________________________________________________
## Home section
____________________________________________________________*/
.home {
  position: relative;
  width: 100%;
  height: 100vh;
  background-color: $palette-primary;
}

/*____________________________________________________________
### Illustration
____________________________________________________________*/
.illustration {
  @extend %centering;
  width: 893px;
  height: 600px;
  overflow: hidden;

  &:after {
    content: '';
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 3px;
    border-radius: 3px;
    background-color: $x-color-granite;
  }
}

/*____________________________________________________________
#### Illustration Blob Circle
____________________________________________________________*/
.illustrationBlob {
  position: absolute;
  width: 893px;
  height: 893px;
}
.illustrationBlob__path {
  position: absolute;
  fill: $palette-secondary;
}

/*____________________________________________________________
#### Illustration Bubbles Wrap
____________________________________________________________*/
.illustrationBubblesWrap {
  width: 100%;
  height: 100%;
}

.illustrationBubble  {
  position: absolute;
  border-radius: 50%;
  background-color: $palette-tertiary;
  animation: levitation 5s linear infinite;

  @mixin bubbleChild($nthChild, $top, $left, $width, $height, $bg, $delay) {
    &:nth-child(#{$nthChild}) {
      top: #{$top}px;
      left: #{$left}px;
      width: #{$width}px;
      height: #{$height}px;
      background-color: #{$bg};
      animation-delay: #{$delay}s;
    }
  }

  @include bubbleChild(1, 535, 310, 16, 16, $palette-bubble-type-1, 0);
  @include bubbleChild(2, 370, 150, 12, 12, $palette-bubble-type-1, .3);
  @include bubbleChild(3, 240, 50, 16, 16, $palette-bubble-type-2, .6);
  @include bubbleChild(4, 180, 2, 10, 2, $palette-bubble-type-1, 0);
  @include bubbleChild(5, 140, 275, 20, 20, transparent, 1.2);
  @include bubbleChild(6, 50, 420, 12, 12, $palette-bubble-type-1, 1.5);
  @include bubbleChild(7, 10, 510, 10, 10, $palette-bubble-type-1, 1.8);
  @include bubbleChild(8, 30, 640, 6, 6, $palette-bubble-type-2, 2.1);
  @include bubbleChild(9, 75, 700, 10, 2, $palette-bubble-type-1, 2.4);
  @include bubbleChild(10, 220, 780, 16, 16, $palette-bubble-type-1, 2.7);
  @include bubbleChild(11, 300, 730, 6, 6, $palette-bubble-type-3, 3);
  @include bubbleChild(12, 550, 630, 10, 2, $palette-bubble-type-2, 3.3);

  &:nth-child(4) {
    animation: none;
  }

  &:nth-child(4),
  &:nth-child(9),
  &:nth-child(12) {
    border-radius: 1px;
  }

  &:nth-child(4):before,
  &:nth-child(9):before,
  &:nth-child(12):before {
    content: '';
    position: absolute;
    top: -4px;
    left: 4px;
    width: 2px;
    height: 10px;
    border-radius: 1px;
    background-color: $palette-bubble-type-1;
  }

  &:nth-child(5) {
    border: 3px solid $palette-bubble-type-1;
  }

  &:nth-child(12):before {
    background-color: $palette-bubble-type-2;
  }
}


/*____________________________________________________________
#### Illustration Dashed Frame
____________________________________________________________*/
.illustrationDashedFrame {
  position: absolute;
  border: 2px dashed $x-color-cyanide;
  border-radius: 5px;
}

@mixin dashedFrameType($nthType, $top, $left, $width, $height) {
  .dashedFrame_type#{$nthType} {
    top: #{$top}px;
    left: #{$left}px;
    width: #{$width}px;
    height: #{$height}px;
  }
}

@include dashedFrameType(1, 292, 130, 116, 243);
@include dashedFrameType(2, 100, 210, 130, 130);
@include dashedFrameType(3, 210, 673, 170, 210);

/*____________________________________________________________
#### Illustration Circle Charts
____________________________________________________________*/
.illustrationCircleChart,
.illustrationCircleChart_type1:before,
.illustrationCircleChart_type2,
.illustrationCircleChart_type2:before,
.illustrationCircleChart_type2:after {
  position: absolute;
  border-radius: 50%;
}

.illustrationCircleChart_type1 {
  top: 250px;
  left: 90px;
  border-right: 30px solid transparent;
  border-top: 30px solid $palette-tertiary;
  border-left: 30px solid $palette-tertiary;
  border-bottom: 30px solid $palette-tertiary;
  animation: rotateRays 7s linear infinite;

  &:before {
    content: '';
    top: -30px;
    left: -24px;
    border-right: 30px solid $palette-chart-type-1;
    border-top: 30px solid transparent;
    border-left: 30px solid transparent;
    border-bottom: 30px solid transparent;
  }
}

.illustrationCircleChart_type2 {
  top: 280px;
  right: 30px;
  border-right: 35px solid transparent;
  border-top: 35px solid $x-color-tomato;
  border-left: 35px solid transparent;
  border-bottom: 35px solid $x-color-tomato;
  animation: rotateRays 7s linear infinite;

  &:before {
    content: '';
    top: -35px;
    left: -30px;
    border-right: 35px solid $palette-chart-type-2;
    border-top: 35px solid transparent;
    border-left: 35px solid transparent;
    border-bottom: 35px solid transparent;
  }
  &:after {
    content: '';
    top: -35px;
    right: -30px;
    border-right: 35px solid transparent;
    border-top: 35px solid transparent;
    border-left: 35px solid $palette-chart-type-2;
    border-bottom: 35px solid transparent;
  }
}

/*____________________________________________________________
#### Illustration Stickers
____________________________________________________________*/
.illustrationSticker {
  position: absolute;
  padding: 10px 7px;
  width: 60px;
  height: 35px;
  overflow: hidden;

  &:before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    border-width: 0 16px 16px 0;
    border-style: solid;
    display: block;
    width: 0;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3),
                -1px 1px 1px rgba(0, 0, 0, 0.2);
  }
}


@mixin stickerType($nthType, $top, $left, $bg) {
  .illustrationSticker_type#{$nthType} {
    top: #{$top}px;
    left: #{$left}px;
    background-color: #{$bg};

    &:before {
      border-color: #f7e0b5 #f7e0b5 #{$bg} #{$bg};
    }
  }
}

@include stickerType(1, 125, 320, $palette-tertiary);
@include stickerType(2, 75, 300, $x-color-tomato);

.illustrationSticker_type1 {
  transform: rotate(10deg);
}

.illustrationSticker__lineWrap {
  width: 28px;
  height: 15px;
  list-style: none;
}
.illustrationSticker__line {
  position: relative;
  margin-bottom: 3px;
  width: 100%;
  height: 3px;
  overflow: hidden;

  &:nth-child(2) {
    &:after {
      animation-delay: .1s;
    }
  }
  &:nth-child(3) {
    &:after {
      animation-delay: .2s;
    }
  }

  &:last-child {
    margin-bottom: 0;
    width: 70%;
  }
  &:after {
    content: '';
    position: absolute;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: $x-color-white;
    animation: slide 3.5s ease infinite;
  }
}

/*____________________________________________________________
#### Illustration Site Layout
____________________________________________________________*/
.illustrationSiteLayout {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 90px;
  height: 85px;
  border: 2px solid $palette-site-layout;
  border-radius: 5px;
  animation: levitation 5s linear infinite 3.2s;

  &:before,
  &:after {
    content: '';
    position: absolute;
    border: solid $palette-site-layout;
  }
  &:before {
    width: 100%;
    height: 20px;
    border-width: 0 0 2px 0;
  }
  &:after {
    top: 20px;
    width: 20px;
    height: calc(100% - 20px);
    border-width: 0 2px 0 0;
  }
}

.illustrationSiteLayout__codeWrap {
  position: absolute;
  bottom: 0;
  right: 0;
  padding: 3px 6px 3px 8px;
  width: calc(100% - 20px);
  height: calc(100% - 22px);
}

.illustrationSiteLayout__scrollBox {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.illustrationSiteLayout__codeList {
  position: absolute;
  width: 100%;
  list-style: none;
  animation: scrollCode .9s linear infinite;
}
.illustrationSiteLayout__codeItem {
  position: relative;
  margin-bottom: 2px;
  width: 100%;
  height: 18px;
}
.illustrationSiteLayout__codeLine {
  position: absolute;
  height: 2px;
  background-color: $palette-site-layout;
  overflow: hidden;

  @mixin siteLayoutLineChild($nthChild, $top, $left, $width) {
    &:nth-child(#{$nthChild}) {
      top: #{$top}px;
      left: #{$left};
      width: #{$width};
    }
  }

  @include siteLayoutLineChild(1, 0, 0, 90%);
  @include siteLayoutLineChild(2, 4, 0, 70%);
  @include siteLayoutLineChild(3, 8, 0, 50%);
  @include siteLayoutLineChild(4, 12, 0, 20%);
  @include siteLayoutLineChild(5, 12, 30%, 60%);
  @include siteLayoutLineChild(6, 16, 0, 50%);
  @include siteLayoutLineChild(7, 16, 60%, 15%);
}

/*____________________________________________________________
#### Illustration Dialog
____________________________________________________________*/
.illustrationDialog {
  position: absolute;
  top: 90px;
  right: 170px;
  padding: 8px 14px;
  width: 78px;
  height: 45px;
  background-color: $palette-dialog;
  animation: levitation 5s linear infinite .8s;

  &:before {
    content: '';
    position: absolute;
    left: 10px;
    bottom: -10px;
    width: 0; 
    height: 0;
    border-top: 10px solid $palette-dialog;
    border-right: 10px solid transparent;
  }
}
.illustrationDialog__line {
  position: relative;
  margin-bottom: 3px;
  width: 100%;
  height: 3px;
  overflow: hidden;

  &:nth-child(2) {
    width: 70%;
  }
  &:nth-child(4) {
    width: 60%;
  }
  &:nth-child(5) {
    width: 90%;
  }
  &:last-child {
    margin-bottom: 0;
  }

  &:after {
    content: '';
    position: absolute;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: $x-color-white;
    animation: slide 3.5s ease infinite;
  }

  @include animDelayChild(2, .1);
  @include animDelayChild(3, .2);
  @include animDelayChild(4, .3);
  @include animDelayChild(5, .35);
}

/*____________________________________________________________
#### Illustration Folder
____________________________________________________________*/
.illustrationFolder {
  position: absolute;
  top: 350px;
  left: 50px;
  width: 47px;
  height: 31px;
  border-radius: 1px 0 1px 1px;
  background-color: $palette-folder-shadow;
  animation: levitation 5s linear infinite 1.4s;

  &:before {
    content: '';
    position: absolute;
    top: -4px;
    right: 0;
    width: 10px;
    height: 4px;
    border-radius: 1px 1px 0 0;
    background-color: $palette-folder-shadow;
  }
  &:after {
    content: '';
    position: absolute;
    left: -5px;
    bottom: 0;
    width: 47px;
    height: 31px;
    border-radius: 1px;
    background-color: $palette-tertiary;
    animation: openFolder 3.5s ease infinite;
  }
}

.illustrationFolder__file {
  position: absolute;
  left: 4px;
  bottom: 0;
  padding: 4px 2px;
  width: 29px;
  height: 35px;
  border-radius: 1px;
  background-color: $x-color-white;
  animation: openFile 3.5s ease infinite;
}
.illustrationFolder__line {
  position: relative;
  margin-bottom: 2px;
  width: 100%;
  height: 1px;
  overflow: hidden;

  &:after {
    content: '';
    position: absolute;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: $x-color-granite;
    animation: slide 3.5s ease infinite;
  }

  @include animDelayChild(2, .1);
  @include animDelayChild(3, .2);
  @include animDelayChild(4, .3);
  @include animDelayChild(5, .4);
}

/*____________________________________________________________
#### Illustration Books
____________________________________________________________*/
.illustrationBooks {
  position: absolute;
  left: 70px;
  bottom: 0;
  width: 164px;
  height: 86px;
}
.illustrationBooks__book {
  position: absolute;

  &:nth-child(1) {
    left: 5px;
    width: 132px;
    height: 28px;
    border: solid $x-color-tomato;
    border-width: 4px 0 4px 4px;
    border-radius: 20px 0 0 20px;
    background: repeating-linear-gradient(0deg, $x-color-white, $x-color-white 4px, #e6e6e6 4px, #e6e6e6 5px);
  }
  &:nth-child(2) {
    top: 28px;
    right: 0;
    width: 146px;
    height: 31px;
    border: solid $palette-tertiary;
    border-width: 4px 4px 4px 0;
    border-radius: 0 20px 20px 0;
    background: repeating-linear-gradient(0deg, $x-color-white, $x-color-white 4px, #e6e6e6 4px, #e6e6e6 5px);
  }
  &:nth-child(3) {
    bottom: 0;
    width: 132px;
    height: 27px;
    background-color: $x-color-tomato;
  }
}

.illustrationBooks__binding {
  position: absolute;
  width: 6px;
  height: 100%;
  background-color: $x-color-coral-red;

  &:nth-child(1) {
    left: 10px;
  }
  &:nth-child(2) {
    left: 20px;
  }
  &:nth-child(3) {
    right: 20px;
  }
  &:nth-child(4) {
    right: 10px;
  }
}

/*____________________________________________________________
#### Illustration Analytics
____________________________________________________________*/
.illustrationAnalytics {
  position: absolute;
  bottom: 25px;
  right: 10px;
  width: 215px;
  height: 180px;
  border-radius: 2px;
  background-color: $x-color-white;
  overflow: hidden;
  animation: levitation 5s linear infinite;
}

.illustrationAnalyticsPanel {
  position: relative;
  width: 100%;
  height: 20px;
  background-color: $palette-program-panel;
}
.illustrationAnalyticsPanel__buttonsWrap {
  position: absolute;
  top: 6px;
  left: 10px;
  height: 8px;
}
.illustrationAnalyticsPanel__button {
  float: left;
  margin-right: 4px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

/*____________________________________________________________
##### Illustration Analytics Page
____________________________________________________________*/
.illustrationAnalyticsPage {
  padding: 8px;
  width: 100%;
  height: calc(100% - 20px);
}
.illustrationAnalyticsPage__container {
  width: 100%;
  height: 100%;
}

/*____________________________________________________________
###### Illustration Analytics Diagram
____________________________________________________________*/
.illustrationAnalyticsPage__diagramWrap  {
  float: left;
  padding-top: 20%;
  margin-right: 10px;
  width: 90px;
  height: 100%;
  list-style: none;
}
.illustrationAnalyticsPage__diagram {
  position: relative;
  float: left;
  margin-right: 10px;
  width: 15px;
  height: 100%;
  border-radius: 1px;
  overflow: hidden;

  &:last-child {
    margin-right: 0;
  }

  &:after {
    content: '';
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 10%;
    background-color: $palette-analytics-elements;
    animation: lineDiagram 2.8s ease infinite;
  }

  @include animDelayChild(2, .6);
  @include animDelayChild(3, .3);
  @include animDelayChild(4, .9);
}

/*____________________________________________________________
###### Illustration Analytics Banner
____________________________________________________________*/
.illustrationAnalyticsPage__banner {
  float: left;
  width: calc(100% - 100px);
  height: 100%;
}

/*____________________________________________________________
####### Illustration Analytics Description
____________________________________________________________*/
.illustrationAnalyticsPage__lineWrap {
  margin-bottom: 17px;
  width: 100%;
  height: 87px;
  list-style: none;
}
.illustrationAnalyticsPage__line {
  position: relative;
  margin-bottom: 5px;
  width: 100%;
  height: 3px;
  border-radius: 3px;
  overflow: hidden;

  &:first-child {
    width: 60%;
    height: 6px;
    margin-bottom: 8px;
  }
  &:nth-child(5),
  &:nth-child(6),
  &:nth-child(7) {
    width: 70%;
  }
  &:last-child {
    height: 27px;
    margin-bottom: 0;
    border-radius: 1px;
    background-color: $palette-window-line;
  }

  &:after {
    content: '';
    position: absolute;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: $palette-window-line;
    animation: slide 3.5s ease infinite;
  }

  @include animDelayChild(1, .1);
  @include animDelayChild(2, .2);
  @include animDelayChild(3, .3);
  @include animDelayChild(4, .35);
  @include animDelayChild(5, .4);
  @include animDelayChild(6, .45);
  @include animDelayChild(7, .5);

  &:last-child {
    &:after {
      animation: none;
    }
  }
}

/*____________________________________________________________
####### Illustration Analytics Product List
____________________________________________________________*/
.illustrationAnalyticsPage__productList {
  width: 100%;
  height: calc(100% - 104px);
  list-style: none;
}

.illustrationAnalyticsPage__productItem {
  float: left;
  margin-bottom: 10px;
  margin-right: 5px;
  width: 47px;
  height: 15px;

  &:nth-child(2n)  {
    margin-right: 0;
  }

  &:nth-child(3),
  &:nth-child(4) {
    .illustrationAnalyticsPage__productImg {
      background-color: $palette-analytics-elements;
    }
  }
}

.illustrationAnalyticsPage__productImg {
  float: left;
  margin-right: 5px;
  width: 15px;
  height: 15px;
  border-radius: 1px;
  background-color: $palette-window-line;
}

.illustrationAnalyticsPage__productLineWrap {
  float: left;
  width: calc(100% - 20px);
  height: 15px;
  list-style: none;
}
.illustrationAnalyticsPage__productLine {
  position: relative;
  margin-bottom: 3px;
  width: 100%;
  height: 3px;
  border-radius: 3px;
  overflow: hidden;

  &:nth-child(2),
  &:last-child {
    width: 70%;
  }
  &:last-child {
    margin-bottom: 0;
  }

  &:after {
    content: '';
    position: absolute;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: $palette-window-line;
    animation: slide 3.5s ease infinite;
  }

  @include animDelayChild(1, .1);
  @include animDelayChild(2, .2);
  @include animDelayChild(3, .3);
}

/*____________________________________________________________
#### Illustration Imac
____________________________________________________________*/
.illustrationImac {
  @extend %horizontalCentering;
  bottom: 147px;
  width: 482px;
  height: 266px;
}

/*____________________________________________________________
##### Illustration Imac Display
____________________________________________________________*/
.illustrationImac__display {
  position: relative;
  width: 100%;
  height: 100%;
  border: 9px solid $x-color-granite;
  border-radius: 10px 10px 0 0;
  background: repeating-linear-gradient(90deg, $palette-tertiary, $palette-tertiary 24px, $palette-imac-display-gradient 24px, $palette-imac-display-gradient 34px);
}

/*____________________________________________________________
###### Illustration Imac Editor
____________________________________________________________*/
.illustrationImacEditor {
  position: absolute;
  bottom: 9px;
  left: 30px;
  width: 180px;
  height: 116px;
  background-color: $x-color-white;
}

.illustrationImacEditorPanel {
  width: 100%;
  height: 10px;
  background-color: $palette-program-panel;
}

/*____________________________________________________________
####### Illustration Imac Editor Code
____________________________________________________________*/
.illustrationImacEditorCodeWrap {
  position: relative;
  padding: 6px;
  width: 100%;
  height: calc(100% - 10px);
  background-color: $x-color-graphite-grey;
}
.illustrationImacEditorCodeWrap__scrollBox {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

@mixin editorCodeLineChild($nthChild, $top, $side, $sideInent, $width, $bg) {
  &:nth-child(#{$nthChild}) {
    top: #{$top}px;
    #{$side}: #{$sideInent}px;
    width: #{$width}px;
    background-color: #{$bg};
  }
}
.illustrationImacEditorCodeWrap__codeList {
  position: absolute;
  width: 50%;
  list-style: none;
  animation: scrollCode .9s linear infinite;

  &:first-child {
    border-right: 1px solid $x-color-wet-asphalt;

    .illustrationImacEditorCodeWrap__codeLine {
      @include editorCodeLineChild(1, 0, left, 0, 20, $x-color-tomato);
      @include editorCodeLineChild(2, 0, left, 24, 45, $x-color-tomato);
      @include editorCodeLineChild(3, 4, left, 10, 21, $x-color-white);
      @include editorCodeLineChild(4, 4, left, 35, 25, $x-color-white);
      @include editorCodeLineChild(5, 8, left, 0, 22, #78dbe2);
      @include editorCodeLineChild(6, 8, left, 26, 14, #78dbe2);
      @include editorCodeLineChild(7, 12, right, 40, 22, #ADFF2F);
      @include editorCodeLineChild(8, 12, right, 16, 20, #ADFF2F);
      @include editorCodeLineChild(9, 16, right, 18, 30, $x-color-white);
      @include editorCodeLineChild(10, 16, right, 6, 8, $x-color-white);
    }
  }
  &:last-child {
    right: 0;
    animation-duration: 1.3s;

    .illustrationImacEditorCodeWrap__codeLine {
      @include editorCodeLineChild(1, 0, left, 6, 36, $x-color-white);
      @include editorCodeLineChild(2, 0, left, 46, 20, #ff4765);
      @include editorCodeLineChild(3, 4, left, 12, 30, #29b87d);
      @include editorCodeLineChild(4, 4, left, 46, 18, #ff4765);
      @include editorCodeLineChild(5, 8, left, 18, 24, transparent);
      @include editorCodeLineChild(6, 8, left, 46, 16, #ff4765);
      @include editorCodeLineChild(7, 12, right, 35, 15, #feb021);
      @include editorCodeLineChild(8, 12, right, 6, 25, #feb021);
      @include editorCodeLineChild(9, 16, right, 10, 30, #78dbe2);
      @include editorCodeLineChild(10, 16, right, 0, 6, #78dbe2);
    }
  }
}

.illustrationImacEditorCodeWrap__codeItem {
  position: relative;
  margin-bottom: 2px;
  width: 100%;
  height: 18px;
}
.illustrationImacEditorCodeWrap__codeLine {
  position: absolute;
  height: 2px;
  background-color: $x-color-tomato;
  overflow: hidden;
}

/*____________________________________________________________
###### Illustration Imac Browser
____________________________________________________________*/
.illustrationImacBrowser {
  position: absolute;
  top: 12px;
  left: 16px;
  width: 180px;
  height: 116px;
  background-color: $x-color-white;
}

/*____________________________________________________________
####### Illustration Imac Browser Panel
____________________________________________________________*/
.illustrationImacBrowserPanel {
  width: 100%;
  height: 10px;
  background-color: $palette-program-panel;
}
.illustrationImacBrowserPanel__buttonsWrap {
  position: absolute;
  top: 3px;
  left: 6px;
  height: 4px;
}
.illustrationImacBrowserPanel__button {
  float: left;
  margin-right: 2px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
}

/*____________________________________________________________
####### Illustration Imac Browser Page
____________________________________________________________*/
.illustrationImacBrowserPage {
  width: 100%;
  height: calc(100% - 10px);
}
.illustrationImacBrowserPage__container {
  width: 100%;
  height: 100%;
}

/*____________________________________________________________
######## Illustration Imac Browser Header
____________________________________________________________*/
.illustrationImacBrowserPage__header {
  position: relative;
  padding-top: 9px;
  width: 100%;
  height: 27px;
}

.illustrationImacBrowserPage__nav {
  position: relative;
  padding-top: 4px;
  margin: 0 auto;
  width: 100px;
  height: 10px;
  background-color: $palette-imac-browser-elements;
}
.illustrationImacBrowserPage__navItem {
  position: relative;
  float: left;
  margin-left: 10px;
  width: 15px;
  height: 2px;
  overflow: hidden;

  &:first-child {
    margin-left: calc(10px / 2);
  }

  &:after {
    content: '';
    position: absolute;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: $palette-imac-browser-line;
    animation: slide 3.5s ease infinite;
  }

  &:nth-child(2) {
    &:after {
      animation-delay: .1s;
    }
  }
  &:nth-child(3) {
    &:after {
      animation-delay: .2s;
    }
  }
  &:nth-child(4) {
    &:after {
      animation-delay: .3s;
    }
  }
}

/*____________________________________________________________
######## Illustration Imac Browser Main
____________________________________________________________*/
.illustrationImacBrowserPage__main {
  position: relative;
  padding: 8px;
  width: 100%;
  height: 37px;
  background-color: $x-color-tomato;
}

.illustrationImacBrowserPage__banner {
  width: 100%;
  height: 100%;
}
.illustrationImacBrowserPage__img {
  position: relative;
  float: left;
  margin-right: 10px;
  width: 44px;
  height: 22px;
  overflow: hidden;

  &:after {
    content: '';
    position: absolute;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: $x-color-white;
    animation: slide 3.5s ease infinite;
  }
}

.illustrationImacBrowserPage__lineWrap {
  float: left;
  width: calc(100% - 54px);
  height: 20px;
}
.illustrationImacBrowserPage__line {
  position: relative;
  margin-bottom: 3px;
  width: 100%;
  height: 2px;
  overflow: hidden;

  &:last-child {
    width: calc(100% / 2);
  }

  &:after {
    content: '';
    position: absolute;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: $palette-imac-browser-line;
    animation: slide 3.5s ease infinite;
  }

  &:nth-child(1) {
    &:after {
      animation-delay: .1s;
    }
  }
  &:nth-child(2) {
    &:after {
      animation-delay: .2s;
    }
  }
  &:nth-child(3) {
    &:after {
      animation-delay: .3s;
    }
  }
  &:nth-child(4) {
    &:after {
      animation-delay: .35s;
    }
  }
}

/*____________________________________________________________
######## Illustration Imac Browser Footer
____________________________________________________________*/
.illustrationImacBrowserPage__footer {
  position: relative;
  padding: 7px 8px;
  width: 100%;
  height: 42px;
}

.illustrationImacBrowserPage__productList {
  list-style: none;
  width: 100%;
  height: 100%;
}

.illustrationImacBrowserPage__productItem {
  position: relative;
  float: left;
  margin-right: 16px;
  width: 44px;
  height: 100%;

  &:last-child {
    margin-right: 0;
  }
}

.illustrationImacBrowserPage__productImg {
  position: relative;
  margin-bottom: 2px;
  width: 100%;
  height: 22px;
  overflow: hidden;

  &:after {
    content: '';
    position: absolute;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: $palette-imac-browser-elements;
    animation: slide 3.5s ease infinite;
  }
}

.illustrationImacBrowserPage__productLineWrap {
  width: 100%;
  height: 6px;
}
.illustrationImacBrowserPage__productLine {
  position: relative;
  float: left;
  margin-bottom: 2px;
  width: 100%;
  height: 2px;
  overflow: hidden;

  &:after {
    content: '';
    position: absolute;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: $palette-imac-browser-line;
    animation: slide 3.5s ease infinite;
  }

  &:nth-child(1) {
    &:after {
      animation-delay: .1s;
    }
  }
  &:nth-child(2) {
    &:after {
      animation-delay: .2s;
    }
  }
}

/*____________________________________________________________
###### Avatar
____________________________________________________________*/
.avatarWrap {
  position: absolute;
  bottom: 0;
  right: 30px;
  width: 250px;
  height: 356px;
}

/*____________________________________________________________
####### Head
____________________________________________________________*/
.headWrap {
  position: relative;
  width: 100%;
  height: 249px;
}

/*____________________________________________________________
######## Hair
____________________________________________________________*/
.hair {
  @extend %horizontalCentering;
  width: 140px;
  height: 44px;
}
.hair__leftSide {
  position: absolute;
  width: 120px;
  height: 44px;
  border-radius: 60px 0 30px 0;
  background-color: $x-color-black;
  z-index: 9;

  .blink {
    position: absolute;
    height: 5.5px;
    border-radius: 5px;
    background-color: $palette-hair-blink;

    &:nth-child(1) {
      top: 29px;
      left: 25px;
      width: 26px;
    }
    &:nth-child(2) {
      top: 12px;
      left: 40px;
      width: 63px;
    }
    &:nth-child(3) {
      top: 26px;
      right: 10px;
      width: 26px;
    }
  }

  &:after {
    content: '';
    position: absolute;
    bottom: -40px;
    width: 40px;
    height: 40px;
    background-color: $x-color-black;
  }
}

.hair__rightSide {
  overflow: hidden;
  content: '';
  position: absolute;
  top: 25px;
  right: 0;
  width: 40px;
  height: 55px;
  background-color: $x-color-black;

  &:after {
    content: '';
    position: absolute;
    top: -16px;
    left: -16px;
    width: 50px;
    height: 40px;
    border-radius: 0 0 30px 0;
    background-color: $palette-hair-shadow;
  }
}

/*____________________________________________________________
######## Ears
____________________________________________________________*/
.ears {
  @extend %horizontalCentering;
  top: 115px;
  width: 186px;
  height: 40px;
}
.ear {
  position: absolute;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: $palette-skin;

  &:nth-child(2) {
    right: 0;
  }

  &:after {
    content: '';
    @extend %centering;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background-color: #180812;
  }
}

/*____________________________________________________________
######## Face
____________________________________________________________*/
.face {
  @extend %horizontalCentering;
  top: 44px;
  width: 140px;
  height: 181px;
  border-radius: 60px 60px 100px 100px; 
  background-color: $palette-skin;
  z-index: 2;
}

/*____________________________________________________________
######### Top Face
____________________________________________________________*/
.eyebrows {
  @extend %horizontalCentering;
  top: 29px;
  width: 90px;
  height: 10px;
}
.eyebrows__brow {
  overflow: hidden;
  position: absolute;
  width: 30px;
  height: 10px;
  border-radius: 10px;
  background-color: $x-color-black;
  z-index: 9;

  &:nth-child(2) {
    right: 0;
  }

  &:before {
    content: '';
    position: absolute;
    top: -4px;
    width: 100%;
    height: 100%;
    border-radius: 10px;
    background-color: $palette-hair-shadow;
  }
  &:after {
    content: '';
    @extend %horizontalCentering;
    top: 2px;
    width: 12px;
    height: 2px;
    border-radius: 15px;
    background-color: $x-color-white;
    opacity: .2;
  }
}

.eyebrows__shadow {
  position: absolute;
  top: 4px;
  width: 100%;
  height: 100%;

  &:before,
  &:after {
    content: '';
    position: absolute;
    width: 30px;
    height: 10px;
    border-radius: 10px;
    background-color: $palette-skin-shadow;
  }
  &:after {
    right: 0;
  }
}

/*____________________________________________________________
######### Middle Face
____________________________________________________________*/
.eyes {
  @extend %horizontalCentering;
  bottom: 100px;
  width: 70px;
  height: 22px;

  &:before,
  &:after {
    content: '';
    position: absolute;
    width: 12px;
    height: 22px;
    border-radius: 6px;
    background-color: $x-color-black;
    animation: blink 3s ease-in-out infinite;
  }
  &:after {
    right: 0;
  }
}

.glasses {
  @extend %horizontalCentering;
  top: 70px;
  width: 4px;
  height: 4px;
  background-color: $x-color-black;

  .left,
  .right {
    position: absolute;
    width: 56px;
    height: 56px;
    background-color: transparent;
    border-radius: 100%;
    border: 5px solid $x-color-black;
    left: -56px;
    top: -26px;
    z-index: 2;

    &:before {
      content: '';
      @extend %verticalCentering;
      width: 20px;
      height: 4px;
      border-radius: 5px;
      background-color: $x-color-black;
    }
    &:after {
      content: '';
      @extend %verticalCentering;
      width: 8px;
      height: 2px;
      border-radius: 15px;
      background-color: $x-color-white;
      opacity: .4;
    }
  }
  .left {

    &:before {
      left: -20px;
    }
    &:after {
      left: -17px;
    }
  }
  .right {
    left: 4px;

    &:before {
      right: -20px;
    }
    &:after {
      right: -17px;
    }
  }
}


.lens {
  overflow: hidden;
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 50%;

  .shine {

    &:before,
    &:after {
      content: "";
      position: absolute;
      top: -21px;
      left: 5px;
      width: 20px;
      height: 100px;
      background-color: $x-color-white;
      transform: rotate(30deg);
      opacity: 0.3;
    }
    &:after {
      width: 5px;
      left: 30px;
    }
  }
}

/*____________________________________________________________
######### Bottom Face
____________________________________________________________*/
.nose {
  @extend %horizontalCentering;
  bottom: 72px;
  width: 30px;
  height: 8px;

  &:before,
  &:after {
    content: '';
    position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: $x-color-flea-belly;
  }
  &:after {
    right: 0;
  }
}

.arm {
  overflow: hidden;
  @extend %horizontalCentering;
  bottom: 28px;
  width: calc(81px - 10px);
  height: calc(30px - 0px);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  background-color: $x-color-pearl-ruby;
}
.arm__pharynx {
  @extend %horizontalCentering;
  top: 6px;
  width: calc(57px - 10px);
  height: calc(11px - 0px);
  border-radius: 20px;
  background-color: $x-color-deep-red-brown;
}
.arm__tooth {
  position: absolute;
  left: 6px;
  width: calc(69px - 10px);
  height: calc(9px - 0px);
  background-color: $x-color-white;
  border-radius: 0 0 5px 5px;
  z-index: 1;

  &:before {
    content: '';
    position: absolute;
    width: 100%;
    height: 4px;
    background-color: $x-color-periwinkle;
  }
}
.arm__tongue {
  position: absolute;
  bottom: 0;
  right: 3px;
  width: calc(58px - 10px);
  height: calc(16px - 0px);
  border-radius: 15px 0 0 0;
  background-color: $x-color-light-cherry;

  &:before {
    content: '';
    position: absolute;
    top: 4px;
    left: 12px;
    width: 22px;
    height: 3px;
    border-radius: 15px;
    background-color: $x-color-white;
    opacity: .2;
  }
}

/*____________________________________________________________
######## Neck
____________________________________________________________*/
.neck {
  overflow: hidden;
  @extend %horizontalCentering;
  bottom: 0;
  width: 58px;
  height: 31px;
  background-color: $palette-skin;

  &:after {
    content: '';
    position: absolute;
    width: 58px;
    height: 18px;
    border-radius: 0 0 50% 50% / 0 0 100% 100%;
    background-color: $palette-skin-shadow;
  }
}

/*____________________________________________________________
####### Body
____________________________________________________________*/
.bodyWrap {
  position: relative;
  width: 100%;
  height: 107px;
}
.bodyWrap__body  {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  background-color: $x-color-grey-silk;
  background-image: linear-gradient(90deg, transparent 20%, rgba(166, 152, 134,.5) 20%);
  background-size: 20px 20px;
  overflow: hidden;
}

.collar {
  @extend %horizontalCentering;
  top: -50px;
  width: 120px;
  height: 170px;
  border-radius: 100%;
  background-color: $palette-costume-elements;
}

.shirt {
  @extend %horizontalCentering;
  top: 50px;
  width: 0; 
  height: 0;
  border-left: 35px solid transparent;
  border-right: 35px solid transparent;
  border-top: 200px solid $x-color-lemon-cream;
}

.button {
  @extend %horizontalCentering;
  top: 82px;
  border-radius: 50%;
  width: 8px;
  height: 8px;
  background-color: $palette-costume-elements;

  &:nth-child(2) {
    top: 102px;
  }
}

/*____________________________________________________________
######## Bow
____________________________________________________________*/
.bowWrap {
  position: absolute;
  top: -17px;
  left: 85px;
  width: 80px;
  height: 46px;
}
.bowWrap__bowShadow {
  &:before {
    content: "";
    position: absolute;
    top: 5px;
    width: 0;
    height: 5px;
    border-width: 23px 40px;
    border-style: solid;
    border-color: transparent #bce1be transparent #bce1be;
    border-radius: 25px;
    opacity: .8;
    z-index: 1;
  }
}
.bowWrap__bowShadow {
  &:after {
    content: "";
    position: absolute;
    top: 16px;
    left: 31.5px;
    width: 17px;
    height: 19px;
    border-radius: 2px;
    background-color: #bce1be;
    opacity: .8;
    z-index: 2;
  }
}
.bowWrap__bow {
  &:before {
    content: "";
    position: absolute;
    width: 0;
    height: 5px;
    border-width: 23px 40px;
    border-style: solid;
    border-color: transparent #9b2d30 transparent #9b2d30;
    border-radius: 25px;
    z-index: 1;
  }
}
.bowWrap__bow {
  &:after {
    content: "";
    position: absolute;
    top: 16px;
    left: 31.5px;
    width: 17px;
    height: 19px;
    border-radius: 2px;
    background-color: $palette-bow-elements;
    z-index: 2;
  }
}
.bowWrap__crease {
  position: absolute;
  top: 21px;
  left: 17.5px;
  width: 45px;
  height: 4px;
  border-radius: 2px;
  background-color: $palette-bow-elements;
  z-index: 1;
}

@keyframes blink {
  0% {
    transform: scaleY(1);
  }
  18% {
    transform: scaleY(1);
  }
  20% {
    transform: scaleY(0);
  }
  25% {
    transform: scaleY(1);
  }
  38% {
    transform: scaleY(1);
  }
  40% {
    transform: scaleY(0);
  }
  45% {
    transform: scaleY(1);
  }
  80% {
    transform: scaleY(1);
  }
}

/*____________________________________________________________
##### Illustration Imac Panel
____________________________________________________________*/
.illustrationImac__panel {
  position: absolute;
  bottom: -45px;
  width: 100%;
  height: 45px;
  border-radius: 0 0 10px 10px;
  background-color: $x-color-grideperlevy;
}
.illustrationImac__panelButton {
  @extend %centering;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background-color: $x-color-manatee;
}

/*____________________________________________________________
##### Illustration Imac Stand
____________________________________________________________*/
.illustrationImac__stand {
  @extend %horizontalCentering;
  bottom: -127px;
  width: 154px;
  height: 0; 
  border-bottom: 82px solid $x-color-cadet-blue;
  border-left: 21px solid transparent;
  border-right: 21px solid transparent;
}
.illustrationImac__standShadow {
  position: absolute;
  top: 5px;
  left: -5px;
  height: 0; 
  width: 122px;
  border-bottom: 16px solid $x-color-manatee;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
}
.illustrationImac__standBase {
  @extend %horizontalCentering;
  top: 82px;
  width: 284px;
  height: 20px;
  border-radius: 15px;
  background-color: $x-color-niagara;
}

/*____________________________________________________________
#### Illustration Presentation  
____________________________________________________________*/
.illustrationPresentation {
  position: absolute;
  top: 25px;
  left: 20px;
  width: 215px;
  height: 179px;
  background-color: $x-color-snow-blue;
  border-radius: 2px;
  overflow: hidden;
  animation: levitation 5s linear infinite;
}

/*____________________________________________________________
##### Illustration Presentation Panel
____________________________________________________________*/
.illustrationPresentationPanel {
  position: relative;
  width: 100%;
  height: 20px;
  background-color: $palette-program-panel;
}
.illustrationPresentationPanel__buttonsWrap {
  position: absolute;
  top: 6px;
  left: 10px;
  height: 8px;
}
.illustrationPresentationPanel__button {
  float: left;
  margin-right: 4px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

/*____________________________________________________________
##### Illustration Presentation Page
____________________________________________________________*/
.illustrationPresentationPage {
  padding: 8px;
  width: 100%;
  height: calc(100% - 20px);
}
.illustrationPresentationPage__container {
  width: 100%;
  height: 100%;
}

/*____________________________________________________________
###### Illustration Presentation Banner
____________________________________________________________*/
.illustrationPresentationPage__banner {
  position: relative;
  width: 100%;
  height: 72px;
  margin-bottom: 6px;
}

.illustrationPresentationPage__img {
  position: relative;
  float: right;
  margin-left: 10px;
  width: 93px;
  height: 72px;
  background-color: $x-color-white;
  overflow: hidden;
}

/*____________________________________________________________
####### Picture
____________________________________________________________*/
.picture {
  position: absolute;
  width: 93px;
  height: 72px;
  border: 6px solid $x-color-gainsborough;
  background-color: $x-color-moderate-turquoise;
  overflow: hidden;
  animation: changeDay 10s linear infinite;
}
.illustrationImac__display {
  .picture {
    top: 50px;
    right: 10px;
    animation-delay: 3s;
  }

  .picture__dayWrap {
    animation-delay: 3s;
  }
}

.picture__mountain {
  position: absolute;
  bottom: 0;

  @mixin pictureMountainChild($nthChild, $side, $sideInent, $borderWidth, $borderHeight, $bg) {
    &:nth-child(#{$nthChild}) {
      #{$side}: #{$sideInent}px;
      border-left: #{$borderWidth}px solid transparent;
      border-right: #{$borderWidth}px solid transparent;
      border-bottom: #{$borderHeight}px solid #{$bg};
    }
  }

  @include pictureMountainChild(1, left, 0, 22.5, 24, $x-color-blackish-blue);
  @include pictureMountainChild(2, right, -20, 36, 39, $x-color-dark-grey-blue);
  @include pictureMountainChild(3, left, 26, 10, 10, $x-color-slate-grey);
}

.picture__dayWrap {
  position: absolute;
  top: 15px;
  left: 8px;
  width: 70px;
  height: 70px;
  animation: rotateRays 10s linear infinite;
}

.picture__dayWrap,
.picture__sun,
.picture__moon {
  border-radius: 50%;
}

.picture__sun,
.picture__moon {
  @extend %horizontalCentering;
}
.picture__sun {
  top: -5px;
  width: 15px;
  height: 15px;
  background-color: $x-color-white;
}
.picture__moon {
  bottom: -4px;
  width: 17px;
  height: 17px;
  box-shadow: 4px 4px 0 0 $x-color-amber;
  transform: rotate(120deg);
}


.illustrationPresentationPage__lineWrap {
  float: right;
  width: calc(100% - 103px);
  height: 20px;
}
.illustrationPresentationPage__line {
  position: relative;
  margin-bottom: 6px;
  width: 100%;
  height: 6px;
  border-radius: 3px;
  overflow: hidden;

  &:last-child {
    margin-bottom: 0;
    width: 80%;
  }

  &:after {
    content: '';
    position: absolute;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: $palette-window-line;
    animation: slide 3.5s ease infinite;
  }

  @include animDelayChild(1, .1);
  @include animDelayChild(2, .2);
  @include animDelayChild(3, .3);
  @include animDelayChild(4, .35);
  @include animDelayChild(5, .4);
  @include animDelayChild(6, .45);
}

/*____________________________________________________________
###### Illustration Presentation Form
____________________________________________________________*/
.illustrationPresentationPage__form {
  position: relative;
  width: 100%;
  height: calc(100% - 78px);
}
.illustrationPresentationPage__input {
  margin-bottom: 6px;
  width: 100%;
  height: 16px;
  border-radius: 3px;
  background-color: $x-color-white;

  &:last-child {
    height: calc(100% - 22px);
  }
}

/*____________________________________________________________
#### Illustration Settings
____________________________________________________________*/
.illustrationSettings {
  position: absolute;
  bottom: 115px;
  left: 5px;
  padding: 8px 14px;
  width: 206px;
  height: 56px;
  border-radius: 5px;
  background-color: $palette-settings-elements;
  animation: levitation 5s linear infinite 3s;
}
.illustrationSettings__container {
  position: relative;
  width: 100%;
  height: 100%;
}

/*____________________________________________________________
##### Illustration Settings Gear
____________________________________________________________*/
.illustrationSettings__gearWrap {
  position: relative;
  float: left;
  margin-right: 12px;
  width: 40px;
  height: 40px;
}

.illustrationSettings__gear {
  @extend %centering;
  width:  50px;
  height: 50px;
}
.illustrationSettings__gear svg {
  position: absolute;
  max-width: 100%;
  max-height: 100%;
  fill: none;
  stroke: $x-color-white;
  stroke-width: 35px;
  animation: rotateRays 7s linear infinite;
}
.illustrationSettings__gear .teeth {
  position: absolute;
  top: 19.32%;
  left: 19.32%;
  transform: translate(-19.32%, -19.32%);
}

.illustrationSettings__gearCircle {
  @extend %centering;
  width: 29px;
  height: 29px;
  border: 8px solid $x-color-white;
  background-color: $palette-settings-elements;
  border-radius: 50%;
}

/*____________________________________________________________
##### Illustration Settings Line
____________________________________________________________*/
.illustrationSettings__lineWrap {
  position: relative;
  float: left;
  padding-top: 6.5px;
  width: calc(100% - 52px);
  height: 40px;
}
.illustrationSettings__line {
  position: relative;
  width: 100%;
  height: 3px;
  margin-bottom: 5px;
  overflow: hidden;

  &:last-child {
    margin-bottom: 0;
    width: 60%;
  }
  &:after {
    content: '';
    position: absolute;
    left: -100%;
    width: 100%;
    height: 100%;
    background-color: $x-color-white;
    animation: slide 3.5s ease infinite;
  }

  @include animDelayChild(1, .1);
  @include animDelayChild(2, .2);
  @include animDelayChild(3, .3);
  @include animDelayChild(4, .35);
}

/*____________________________________________________________
# Animation Pack
____________________________________________________________*/
@keyframes openFolder {
  0% {
    left: 0;
    transform: skew(0);
  }
  20% {
    left: -5px;
    height: 26px;
    transform: skew(20deg);
  }
  80% {
    left: -5px;
    height: 26px;
    transform: skew(20deg);
  }
  100% {
    left: 0;
    height: 31px;
    transform: skew(0);
  }
}

@keyframes openFile {
  0% {
    bottom: 0;
  }
  20% {
    bottom: 10px;
  }
  80% {
    bottom: 10px;
  }
  100% {
    bottom: 0;
  }
}

@keyframes slide {
  0% {
    left: -100%;
  }
  22% {
    left: 0%;
  }
  78% {
    left: 0%;
  }
  100% {
    left: 100%;
  }
}

@keyframes scrollCode {
  0% {
    top: 0;
  }
  100% {
    top: -20px;
  }
}

@keyframes rotateRays {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes changeDay {
  0% {
    background-color: $palette-tertiary;
  }
  25% {
    background-color: $x-color-granite;
  }
  60% {
    background-color: $x-color-granite;
  }
  75% {
    background-color: $palette-tertiary;
  }
  100% {
    background-color: $palette-tertiary;
  }
}

@keyframes lineDiagram {
  0% {
    height: 10%;
  }
  50% {
    height: 100%;
  }
  100% {
    left: 10%;
  }
}

@keyframes levitation {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(6px);
  }
  100% {
    transform: translateY(0);
  }
}

@media screen and (max-width: 1200px) {
  .illustration {
    transform: translate(-50%, -50%) scale(.8);
  }
}
@media screen and (max-width: 800px) {
  .illustration {
    transform: translate(-50%, -50%) scale(.6);
  }
}
@media screen and (max-width: 590px) {
  .illustration {
    transform: translate(-50%, -50%) scale(.4);
  }
}
View Compiled
/*____________________________________________________________
# Use 'GSAP.js' library and JS only for 'Blob' effect
____________________________________________________________*/

function cardinal(data, closed, tension) {
  if (data.length < 1) return "M0 0";
  if (tension == null) tension = 1;

  var size = data.length - (closed ? 0 : 1);
  var path = "M" + data[0].x + " " + data[0].y + " C";

  for (var i = 0; i < size; i++) {
    var p0, p1, p2, p3;

    if (closed) {
      p0 = data[(i - 1 + size) % size];
      p1 = data[i];
      p2 = data[(i + 1) % size];
      p3 = data[(i + 2) % size];
    } else {
      p0 = i == 0 ? data[0] : data[i - 1];
      p1 = data[i];
      p2 = data[i + 1];
      p3 = i == size - 1 ? p2 : data[i + 2];
    }

    var x1 = p1.x + (p2.x - p0.x) / 6 * tension;
    var y1 = p1.y + (p2.y - p0.y) / 6 * tension;

    var x2 = p2.x - (p3.x - p1.x) / 6 * tension;
    var y2 = p2.y - (p3.y - p1.y) / 6 * tension;

    path += " " + x1 + " " + y1 + " " + x2 + " " + y2 + " " + p2.x + " " + p2.y;
  }

  return closed ? path + "z" : path;
}

function random(min, max) {
  if (max == null) { max = min; min = 0; }
  if (min > max) { var tmp = min; min = max; max = tmp; }
  return min + (max - min) * Math.random();
}

function createBlob(options) {
  var points = [];
  var path = options.element;
  var slice = (Math.PI * 2) / options.numPoints;
  var startAngle = random(Math.PI * 2);

  var tl = new TimelineMax({
    onUpdate: update
  });

  for (var i = 0; i < options.numPoints; i++) {
    var angle = startAngle + i * slice;
    var duration = random(options.minDuration, options.maxDuration);

    var point = {
      x: options.centerX + Math.cos(angle) * options.minRadius,
      y: options.centerY + Math.sin(angle) * options.minRadius
    };

    var tween = TweenMax.to(point, duration, {
      x: options.centerX + Math.cos(angle) * options.maxRadius,
      y: options.centerY + Math.sin(angle) * options.maxRadius,
      repeat: -1,
      yoyo: true,
      ease: Sine.easeInOut
    });
    
    tl.add(tween, -random(duration));
    points.push(point);
  }

  options.tl = tl;
  options.points = points;

  function update() {
    path.setAttribute("d", cardinal(points, true, 1));
  }

  return options;
}

var illustrationBlob = createBlob({
  element: document.querySelector("#blob__path-js"),
  numPoints: 20,
  centerX: 500,
  centerY: 500,
  minRadius: 450,
  maxRadius: 475,
  minDuration: 2,
  maxDuration: 2
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/gsap/3.6.1/gsap.min.js