html,
body {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

div {
  -webkit-transform-style: preserve-3d;
  -moz-transform-style: preserve-3d;
  transform-style: preserve-3d;
}

#view {
  position: absolute;
  width: 940px;
  height: 465px;
  -webkit-perspective: 500;
  -moz-perspective: 500;
  perspective: 500;
  -webkit-perspective-origin: 50% 50%;
  -moz-perspective-origin: 50% 50%;
  perspective-origin: 50% 50%;
  -webkit-transform: translate3d(0px, 0px, 0px);
  -moz-transform: translate3d(0px, 0px, 0px);
  transform: translate3d(0px, 0px, 0px);
  overflow: hidden;
}

#bg {
  position: absolute;
  width: 940px;
  height: 465px;
  background: -webkit-gradient(linear, 0 0, 0 bottom, from(#041A4B), to(#AFDAFF));
  background: -moz-linear-gradient(top, #041A4B, #AFDAFF);
  -webkit-transform: translate3d(0px, 0px, -1000px);
  -moz-transform: translate3d(0px, 0px, -1000px);
  transform: translate3d(0px, 0px, -1000px);
}

#camera {
  position: absolute;
  left: 232px;
  top: 232px;
  -webkit-animation-name: camerawork;
  -webkit-animation-timing-function: linear;
  -webkit-animation-duration: 14s;
  -webkit-animation-direction: normal;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-name: camerawork;
  -moz-animation-timing-function: linear;
  -moz-animation-duration: 14s;
  -moz-animation-direction: normal;
  -moz-animation-iteration-count: infinite;
  animation-name: camerawork;
  animation-timing-function: linear;
  animation-duration: 14s;
  animation-direction: normal;
  animation-iteration-count: infinite;
}

@-webkit-keyframes camerawork {
    0% {
        -webkit-transform: translate3d(0px, 0px, -100px) rotateX(40deg) rotateZ(0deg);
    }
    25% {
        -webkit-transform: translate3d(0px, 0px, -250px) rotateX(20deg) rotateZ(90deg);
    }
    50% {
        -webkit-transform: translate3d(0px, 0px, -400px) rotateX(70deg) rotateZ(180deg);
    }
    75% {
        -webkit-transform: translate3d(0px, 0px, -250px) rotateX(120deg) rotateZ(270deg);
    }
    100% {
        -webkit-transform: translate3d(0px, 0px, -100px) rotateX(40deg) rotateZ(360deg);
    }
}

@-moz-keyframes camerawork {
    0% {
        -moz-transform: translate3d(0px, 0px, -100px) rotateX(40deg) rotateZ(0deg);
    }
    25% {
        -moz-transform: translate3d(0px, 0px, -250px) rotateX(20deg) rotateZ(90deg);
    }
    50% {
        -moz-transform: translate3d(0px, 0px, -400px) rotateX(70deg) rotateZ(180deg);
    }
    75% {
        -moz-transform: translate3d(0px, 0px, -250px) rotateX(120deg) rotateZ(270deg);
    }
    100% {
        -moz-transform: translate3d(0px, 0px, -100px) rotateX(40deg) rotateZ(360deg);
    }
}

@keyframes camerawork {
    0% {
        transform: translate3d(0px, 0px, -100px) rotateX(40deg) rotateZ(0deg);
    }
    25% {
        transform: translate3d(0px, 0px, -250px) rotateX(20deg) rotateZ(90deg);
    }
    50% {
        transform: translate3d(0px, 0px, -400px) rotateX(70deg) rotateZ(180deg);
    }
    75% {
        transform: translate3d(0px, 0px, -250px) rotateX(120deg) rotateZ(270deg);
    }
    100% {
        transform: translate3d(0px, 0px, -100px) rotateX(40deg) rotateZ(360deg);
    }
}

#floor {
  border-radius: 800px;
  position: absolute;
  width: 1600px;
  height: 1600px;
  left: -800px;
  top: -800px;
  background-position: -10px 0;
  background-image: -webkit-gradient(
      radial,
      center center, 0,
      center center, 8,
      from(          #fff),
      color-stop(.50,#fff),
      color-stop(.50,transparent),
      to(            transparent));
  background-image: -moz-radial-gradient(
      center 45deg,
      circle closest-side,
      #fff 0%,
      #fff 10%,
      transparent 10%,
      transparent 100%);
  -webkit-background-size: 60px 60px;
  -moz-background-size: 60px 60px;
  background-size: 60px 60px;
  -webkit-transform: translateZ(-500px);
  -moz-transform: translateZ(-500px);
  transform: translateZ(-500px);
  -webkit-animation-name: scroll;
  -webkit-animation-timing-function: linear;
  -webkit-animation-duration: 0.2s;
  -webkit-animation-direction: normal;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-name: scroll;
  -moz-animation-timing-function: linear;
  -moz-animation-duration: 0.2s;
  -moz-animation-direction: normal;
  -moz-animation-iteration-count: infinite;
  animation-name: scroll;
  animation-timing-function: linear;
  animation-duration: 0.2s;
  animation-direction: normal;
  animation-iteration-count: infinite;
}

@-webkit-keyframes scroll {
   0.0%   { background-position: -10px 0; }
 100.0%   { background-position: -10px 60px; }
}

@-moz-keyframes scroll {
   0.0%   { background-position: 10px 0; }
 100.0%   { background-position: 10px 60px; }
}

@keyframes scroll {
   0.0%   { background-position: 10px 0; }
 100.0%   { background-position: 10px 60px; }
}

#airplane {
  position: absolute;
  width: 80px;
  height: 80px;
  margin-top: -40px;
  margin-left: -40px;
  -webkit-transform-origin: 50% 50%;
  -moz-transform-origin: 50% 50%;
  transform-origin: 50% 50%;
}
.wingLeft {
  position: absolute;
  width: 40px;
  height: 80px;
  border-right: 1px solid #000;
  border-bottom: 1px solid #000;
  overflow: hidden;
  -webkit-transform-origin: 100% 0;
  -moz-transform-origin: 100% 0;
  transform-origin: 100% 0;
  -webkit-transform: rotateZ(5deg);
  -moz-transform: rotateZ(5deg);
  transform: rotateZ(5deg);
}
.wingLeft:before {
  content: "";
  position: absolute;
  left: 0;
  width: 40px;
  height: 80px;
  background: #fff;
  border: 1px solid #000;
  -webkit-transform-origin: 100% 100%;
  -moz-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
  -webkit-transform: skew(-26deg);
  -moz-transform: skew(-26deg);
  transform: skew(-26deg);
}
.wingRight {
  position: absolute;
  left: 40px;
  width: 40px;
  height: 80px;
  border-left: 1px solid #000;
  border-bottom: 1px solid #000;
  overflow: hidden;
  -webkit-transform-origin: 0 0;
  -moz-transform-origin: 0 0;
  transform-origin: 0 0;
  -webkit-transform: rotateZ(-5deg);
  -moz-transform: rotateZ(-5deg);
  transform: rotateZ(-5deg);
}
.wingRight:before {
  content: "";
  position: absolute;
  left: 0;
  width: 40px;
  height: 80px;
  background: #fff;
  border: 1px solid #000;
  -webkit-transform-origin: 100% 100%;
  -moz-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
  -webkit-transform: skew(27deg);
  -moz-transform: skew(27deg);
  transform: skew(27deg);
}
.bodyLeft {
  position: absolute;
  top: 0;
  left: 10px;
  width: 30px;
  height: 80px;
  border-right: 1px solid #000;
  border-bottom: 1px solid #000;
  overflow: hidden;
  -webkit-transform-origin: 100% 0;
  -moz-transform-origin: 100% 0;
  transform-origin: 100% 0;
  -webkit-transform: rotateZ(5deg) rotateY(-102deg);
  -moz-transform: rotateZ(5deg) rotateY(-102deg);
  transform: rotateZ(5deg) rotateY(-102deg);
}
.bodyLeft:before {
  content: "";
  position: absolute;
  left: 0;
  width: 30px;
  height: 80px;
  background: #fff;
  border: 1px solid #000;
  -webkit-transform-origin: 100% 100%;
  -moz-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
  -webkit-transform: skew(-20.5deg);
  -moz-transform: skew(-20.5deg);
  transform: skew(-20.5deg);
}
.bodyRight {
  position: absolute;
  top: 0;
  left: 40px;
  width: 31px;
  height: 80px;
  border-left: 1px solid #000;
  border-bottom: 1px solid #000;
  overflow: hidden;
  -webkit-transform-origin: 0 0;
  -moz-transform-origin: 0 0;
  transform-origin: 0 0;
  -webkit-transform: rotateZ(-5deg) rotateY(102deg) rotateX(-0.5deg);
  -moz-transform: rotateZ(-5deg) rotateY(102deg) rotateX(-0.5deg);
  transform: rotateZ(-5deg) rotateY(102deg) rotateX(-0.5deg);
}
.bodyRight:before {
  content: "";
  position: absolute;
  left: 0;
  width: 30px;
  height: 80px;
  background: #fff;
  border: 1px solid #000;
  -webkit-transform-origin: 100% 100%;
  -moz-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
  -webkit-transform: skew(21.5deg);
  -moz-transform: skew(21.5deg);
  transform: skew(21.5deg);
}
.bodyShadow {
  position: absolute;
  top: 0;
  left: -5px;
  border-right: 45px solid transparent;
  border-left: 45px solid transparent;
  border-bottom: 80px solid rgba(0, 0, 0, 0.3);
  -webkit-transform: translateZ(-500px);
  -moz-transform: translateZ(-500px);
  transform: translateZ(-500px);
}
.cloud {
  position: absolute;
  top: 82px;
  left: 40px;
  margin-left: -1px;
  width: 2px;
  height: 4000px;
  background: rgba(255, 255, 255, 0.8);
  -webkit-border-radius: 5px 5px 100px 100px;
  -moz-border-radius: 5px 5px 100px 100px;
  border-radius: 5px 5px 100px 100px;
  -webkit-box-shadow: 0 0 10px 0 rgba(255, 255, 255, 1), 0 0 20px 0 rgba(255, 255, 255, 1);
  -moz-box-shadow: 0 0 10px 0 rgba(255, 255, 255, 1), 0 0 20px 0 rgba(255, 255, 255, 1);
  box-shadow: 0 0 10px 0 rgba(255, 255, 255, 1), 0 0 20px 0 rgba(255, 255, 255, 1);
  -webkit-transform-origin: 50% 0;
  -webkit-transform: translateZ(-10px);
}
.cloud:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 2px;
  height: 4000px;
  background: rgba(255, 255, 255, 0.8);
  -webkit-border-radius: 5px 5px 100px 100px;
  -moz-border-radius: 5px 5px 100px 100px;
  border-radius: 5px 5px 100px 100px;
  -webkit-box-shadow: 0 0 10px 0 rgba(255, 255, 255, 1), 0 0 20px 0 rgba(255, 255, 255, 1);
  -moz-box-shadow: 0 0 10px 0 rgba(255, 255, 255, 1), 0 0 20px 0 rgba(255, 255, 255, 1);
  box-shadow: 0 0 10px 0 rgba(255, 255, 255, 1), 0 0 20px 0 rgba(255, 255, 255, 1);
  -webkit-transform-origin: 50% 0;
  -moz-transform-origin: 50% 0;
  transform-origin: 50% 0;
  -webkit-transform: rotateY(90deg);
  -moz-transform: rotateY(90deg);
  transform: rotateY(90deg);
}
.cloudShadow {
  position: absolute;
  top: 82px;
  left: 40px;
  margin-left: -1px;
  width: 2px;
  height: 4000px;
  background: rgba(0, 0, 0, 0.3);
  -webkit-border-radius: 5px 5px 100px 100px;
  -moz-border-radius: 5px 5px 100px 100px;
  border-radius: 5px 5px 100px 100px;
  -webkit-box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.8), 0 0 20px 0 rgba(0, 0, 0, 0.8);
  -moz-box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.8), 0 0 20px 0 rgba(0, 0, 0, 0.8);
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.8), 0 0 20px 0 rgba(0, 0, 0, 0.8);
  -webkit-transform: translateZ(-500px);
  -moz-transform: translateZ(-500px);
  transform: translateZ(-500px);
}





