html {
  overflow-y: auto;
}

body {
  margin: 0;
  background-color: #222;
  height: 100vh;
  width: 100vw;
  overflow: hidden;
  display: block;
  position: fixed;
}

#body-bg {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: 100vw;
  overflow: hidden;
  background: linear-gradient(90deg, blue, yellow, forestgreen);
  background-size: 600% 600%;
    -webkit-animation: AnimationName 42s ease infinite;
    -moz-animation: AnimationName 42s ease infinite;
    animation: AnimationName 42s ease infinite;
  }
  @-webkit-keyframes AnimationName {
    0% {
      background-position: 22% 0%;
    }
    50% {
      background-position: 79% 100%;
    }
    100% {
      background-position: 22% 0%;
    }
  }
  @-moz-keyframes AnimationName {
    0% {
      background-position: 22% 0%;
    }
    50% {
      background-position: 79% 100%;
    }
    100% {
      background-position: 22% 0%;
    }
  }
  @keyframes AnimationName {
  0% {
    background-position: 22% 0%;
  }
  50% {
    background-position: 79% 100%;
  }
  100% {
    background-position: 22% 0%;
  }
}


#bg {
  z-index: 0;
  -webkit-transform: rotateX(25deg);
  transform: rotateX(25deg);
  -webkit-transform: rotateZ(30deg);
  transform: rotateZ(30deg);
  min-height: 100vh;
  width: 100vw;
  position: absolute;
  margin: auto;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}

#bg * {
  transition: all 6000ms cubic-bezier(0.905, 0.22, 0.305, 0.695);
  box-sizing: border-box;
  box-shadow: 2px 2px 12px -7px #242424;
}

#bg .rectangle-1 {
  width: 500px;
  height: 40px;
  display: block;
  -webkit-transform: rotateZ(30deg);
  transform: rotateZ(30deg);
  position: absolute;
  background-color: black;
  top: 0;
  right: 0;
}

#bg .rectangle-2 {
  transform: rotateZ(74deg);
  z-index: 80;
  width: 40px;
  height: 160px;
  display: inline-block;
  position: absolute;
  background: linear-gradient(270deg, blue, red);
  background-size: 400% 400%;
  -webkit-animation: AnimationName 30s ease infinite;
  -moz-animation: AnimationName 30s ease infinite;
  animation: AnimationName 30s ease infinite;
  top: 0;
  right: 0;
  }
  @-webkit-keyframes AnimationName {
    0% {
      background-position: 0% 50%;
    }
    50% {
      background-position: 100% 50%;
    }
    100% {
      background-position: 0% 50%;
    }
  }
  @-moz-keyframes AnimationName {
    0% {
      background-position: 0% 50%;
    }
    50% {
      background-position: 100% 50%;
    }
    100% {
      background-position: 0% 50%;
    }
  }
  @keyframes AnimationName {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
#bg .rectangle-3 {
  z-index: 50;
  width: 40px;
  height: 160px;
  display: inline-block;
  position: absolute;
  background: linear-gradient(90deg, yellow, forestgreen);
  background-size: 600% 600%;
  -webkit-animation: AnimationName 42s ease infinite;
  -moz-animation: AnimationName 42s ease infinite;
  animation: AnimationName 42s ease infinite;
  bottom: 0;
  left: 0;
}
@-webkit-keyframes AnimationName {
  0% {
    background-position: 22% 0%;
  }
  50% {
    background-position: 79% 100%;
  }
  100% {
    background-position: 22% 0%;
  }
}
@-moz-keyframes AnimationName {
  0% {
    background-position: 22% 0%;
  }
  50% {
    background-position: 79% 100%;
  }
  100% {
    background-position: 22% 0%;
  }
}
@keyframes AnimationName {
  0% {
    background-position: 22% 0%;
  }
  50% {
    background-position: 79% 100%;
  }
  100% {
    background-position: 22% 0%;
  }
}
#bg .rectangle-4 {
  width: 160px;
  height: 40px;
  display: block;
  position: absolute;
  background: rgba(0, 0, 0, 0.2);
  bottom: 0;
  right: 40;
}
#bg .square-1 {
  width: 40px;
  height: 40px;
  display: inline-block;
  position: absolute;
  background: rgba(0, 0, 0, 0.2);
  top: 0;
  left: 0;
}
#bg .square-2 {
  width: 40px;
  height: 40px;
  display: inline-block;
  position: absolute;
  background: black;
  -webkit-transform: rotateZ(125deg);
  transform: rotateZ(125deg);
  bottom: 0;
  right: 0;
}
#bg .square-3 {
  width: 40px;
  height: 40px;
  display: inline-block;
  position: absolute;
  background: black;
  top: 40px;
  left: 40px;
}
#bg .inner-rectangle-1 {
  width: 25%;
  height: 75%;
  display: block;
  position: absolute;
  background: rgba(0, 0, 0, 0.2);
  top: 80px;
  left: 40px;
}
#bg .inner-rectangle-2 {
  width: 80px;
  height: 50%;
  display: block;
  position: absolute;
  background: rgba(0, 0, 0, 0.1);
  top: 40px;
  left: 80px;
}

#logo {
  box-shadow: 2px 2px 12px -7px #242424;
  background: white;
  z-index: 100;
  height: 150px;
  width: 150px;
  display: inline-block;
  top: 20px;
  left: 20px;
  position: fixed;
  overflow: hidden;
}
#logo * {
  transition: all 1ms ease;
  box-sizing: border-box;
}
#logo .rectangle-1 {
  width: 160px;
  height: 40px;
  display: block;
  position: absolute;
  background-color: red;
  top: 0;
  right: 0;
}
#logo .rectangle-2 {
  width: 40px;
  height: 160px;
  display: inline-block;
  position: fixed;
  background-color: red;
  top: 0;
  right: 0;
}
#logo .rectangle-3 {
  width: 40px;
  height: 160px;
  display: inline-block;
  position: absolute;
  background-color: blue;
  bottom: 0;
  left: 0;
}
#logo .rectangle-4 {
  width: 160px;
  height: 40px;
  display: block;
  position: absolute;
  background-color: blue;
  bottom: 0;
  right: 40;
}
#logo .square-1 {
  width: 40px;
  height: 40px;
  display: inline-block;
  position: absolute;
  background-color: yellow;
  top: 0;
  left: 0;
}
#logo .square-2 {
  width: 40px;
  height: 40px;
  display: inline-block;
  position: absolute;
  background-color: yellow;
  bottom: 0;
  right: 0;
}
#logo .square-3 {
  width: 40px;
  height: 40px;
  display: inline-block;
  position: absolute;
  background-color: black;
  top: 40px;
  left: 40px;
}
#logo .inner-rectangle-1 {
  width: 40px;
  height: 80px;
  display: block;
  position: absolute;
  background-color: green;
  top: 80px;
  left: 40px;
}
#logo .inner-rectangle-2 {
  width: 80px;
  height: 40px;
  display: block;
  position: absolute;
  background-color: forestgreen;
  top: 40px;
  left: 80px;
}

