.ship {
	margin: 150em 0;
	position: relative;
	animation: fly 0.8s linear infinite alternate;
	font-size: 0.11vh;
}

@keyframes fly {
	to {
		transform: translateY(-20em);
	}
}

.ship * {
	position: absolute;
}

/*
* Body
*/
.ship .body {
	position: absolute;
	top: -35em;
	left: -35em;
	width: 70em;
	height: 70em;
	border-radius: 50%;
	background-color: #AEABBC;
	background-image: linear-gradient(#AEABBC, #9BA1B6);
	box-shadow: -8em 0 0 8em #878399;
}
.ship .body:before {
	content: "";
	position: absolute;
	width: 14em;
	height: 20em;
	border-radius: 50%;
	left: -7em;
	top: 25em;
	background-color: #4E4A65;
}
.ship .body:after {
	content: "";
	position: absolute;
	width: 8em;
	height: 8em;
	border-radius: 50%;
	background-color: #DF5A41;
	left: 15em;
	top: 10em;
}

/*
* Right Wing
*/
.ship .right-wing .arm {
	width: 70em;
	height: 25em;
	border-radius: 25em;
	top: -12em;
	background-color: #A9A3B6;
	box-shadow: inset 0 -112em 0 -100em #83829C;
}
.ship .right-wing .middle {
	height: 56em;
	width: 40em;
	top: -28em;
	left: 30em;
	background-color: #272946;
	border-left: 10em solid #535475;
	border-right: 30em solid #4F587C;
	box-shadow: -10em 0 #332C47, 10em 0 #838EA8;
}
.ship .right-wing .top-left {
	height: 55em;
	width: 40em;
	background-color: #4F5779;
	border: 10em solid #7C87A1;
	top: -103em;
	left: 16em;
	transform: skewX(21deg);
}
.ship .right-wing .top-left:before {
	content: "";
	position: absolute;
	width: 10em;
	height: 75em;
	background-color: #332C47;
	left: -20em;
	top: -10em;
}
.ship .right-wing .top-left:after {
	content: "";
	position: absolute;
	height: 10em;
	width: 60em;
	left: -10em;
	top: -10em;
	background-color: #A3ACBF;
}
.ship .right-wing .top-right:before {
	content: "";
	position: absolute;
	border-width: 55em 100em 55em 55em;
	border-color: #4F5779 transparent transparent;
	border-style: solid;
	transform: rotate(29deg);
    top: -72em;
    left: 23em;
}
.ship .right-wing .top-right:after {
	content: "";
	position: absolute;
	background-color: #7C87A1;
	height: 10em;
	width: 110em;
	transform: skewX(21deg);
	top: -38em;
    left: 70em;
}
.ship .right-wing .top-border {
	width: 20em;
	height: 75em;
	top: -103em;
    left: 109em;
    transform: skewX(61deg);
	background-color: #A3ACBF;
}
.ship .right-wing .bottom-left {
	height: 55em;
	width: 40em;
	background-color: #1B1631;
	border: 10em solid #3F486A;
	top: 28em;
	left: 16em;
	transform: skewX(-21deg);
}
.ship .right-wing .bottom-left:before {
	content: "";
	position: absolute;
	width: 10em;
	height: 75em;
	background-color: #332C47;
	left: -20em;
	top: -10em;
}
.ship .right-wing .bottom-left:after {
	content: "";
	position: absolute;
	height: 10em;
	width: 60em;
	left: -10em;
	bottom: -10em;
	background-color: #7D89A2;
}
.ship .right-wing .bottom-right:before {
	content: "";
	position: absolute;
	border-width: 55em 100em 55em 55em;
	border-color: transparent transparent #1B1631;
	border-style: solid;
	transform: rotate(-29deg);
    top: -38em;
    left: 23em;
}
.ship .right-wing .bottom-right:after {
	content: "";
	position: absolute;
	background-color: #3F486A;
	height: 10em;
	width: 110em;
	transform: skewX(-21deg);
	top: 28em;
    left: 70em;
}
.ship .right-wing .bottom-border {
	width: 20em;
	height: 75em;
	top: 28em;
    left: 109em;
    transform: skewX(-61deg);
	background-color: #7D89A2;
}
.ship .right-wing .that-strange-thing {
	height: 22em;
	width: 30em;
	background-color: #3E4A6D;
	top: -11em;
	left: 100em;
	box-shadow: -8em 0 #282A48;
	perspective: 60em;
}
.ship .right-wing .that-strange-thing:before {
	content: "";
    position: absolute;
    height: 22em;
    width: 28em;
    background-color: #3E4A6D;
    top: -17em;
    left: 1em;
    box-shadow: -8em 0 #282A48;
    transform: translateZ(-5em) rotateX(49deg);
}
.ship .right-wing .that-strange-thing:after {
	content: "";
    position: absolute;
    height: 22em;
    width: 28em;
    background-color: #3E4A6D;
    bottom: -17em;
    left: 1em;
    box-shadow: -8em 0 #282A48;
    transform: translateZ(-5em) rotateX(-49deg);
}

/*
* Left Wing
*/
.ship .left-wing {
	perspective: 110em;
    perspective-origin: -90em;
}
.ship .left-wing .arm {
	width: 70em;
	height: 25em;
	border-radius: 25em;
	top: -12em;
	left: -90em;
	background-color: #9BA1B6;
	box-shadow: inset 0 -112em 0 -100em #75839A;
}
.ship .left-wing .that-strange-thing {
	height: 22em;
	width: 30em;
	background-color: #3B4463;
	top: -11em;
	left: -100em;
	box-shadow: -8em 0 #181530, -30em 0 #484C6D;
	perspective: 60em;
}
.ship .left-wing .that-strange-thing:before {
	content: "";
    position: absolute;
    height: 22em;
    width: 28em;
    background-color: #3B4463;
    top: -17em;
    left: 1em;
    box-shadow: -8em 0 #181530, -8em -10em 0 10em #484C6D;
    transform: translateZ(-5em) rotateX(49deg);
}
.ship .left-wing .that-strange-thing:after {
	content: "";
    position: absolute;
    height: 22em;
    width: 28em;
    background-color: #3B4463;
    bottom: -17em;
    left: 1em;
    box-shadow: -8em 0 #181530, -8em 10em 0 10em #484C6D;
    transform: translateZ(-5em) rotateX(-49deg);
}
.ship .left-wing .middle {
	top: -30em;
	left: -140em;
	width: 60em;
	height: 60em;
	background-color: #18152F;
	border-right: 8em solid #656C88;
	border-left: 10em solid #484C6D;
	box-shadow: -8em 0 #242541;
}
.ship .left-wing .top {
	width: 90em;
    height: 120em;
    background-color: #1A1530;
    border: solid #3B4164;
    border-left-color: #1A1530;
    border-width: 21em 8em 6em;
    left: -118em;
    top: -147em;
    transform: rotateX(40deg);
}
.ship .left-wing .top-bar {
	width: 10em;
	height: 61em;
	background-color: #3B4164;
    left: -56em;
	top: -91em;
	transform: skewX(-22deg);
	box-shadow: -70em 0 #3B4164, -80em 0 #242541;
}
.ship .left-wing .bottom {
	width: 90em;
    height: 123em;
    background-color: #262843;
    border: solid #656E8B;
    border-left-color: #262843;
    border-width: 8em 6em 20em;
    left: -118em;
    top: -1em;
    transform: rotateX(-40deg);
    box-shadow: -5em 0 #242541;
}
.ship .left-wing .bottom-bar {
	width: 8em;
	height: 62em;
	background-color: #656E8B;
    left: -60em;
	top: 30em;
	transform: skewX(22deg);
	box-shadow: -66em 0 #656E8B, -74em 0 #242541;
}

.ship .speed {
	width: 400em;
	height: 10em;
	background-image: linear-gradient(90deg, transparent, rgba(255,255,255,0.3));
	top: -103em;
	left: -340em;
	animation: speed1 1s linear infinite alternate;
}
.ship .speed:before {
	content: "";
	position: absolute;
	width: 400em;
	height: 10em;
	background-image: linear-gradient(90deg, transparent, rgba(255,255,255,0.3));
	top: 196em;
	animation: speed2 1s linear infinite alternate;
}
.ship .speed-2 {
	width: 300em;
	height: 4em;
	background-image: linear-gradient(90deg, transparent, rgba(255,255,255,0.3));
	top: -91em;
	left: -335em;
	animation: speed3 1s linear 1s infinite alternate;
}
.ship .speed-2:before {
	content: "";
	position: absolute;
	width: 300em;
	height: 4em;
	background-image: linear-gradient(90deg, transparent, rgba(255,255,255,0.3));
	top: 180em;
	left: -2em;
	animation: speed4 1s linear 1s infinite alternate;
}

@keyframes speed1 {
	to {
		width: 300em;
    	left: -240em;
	}
}
@keyframes speed2 {
	to {
		width: 300em;
	}
}
@keyframes speed3 {
	to {
		width: 250em;
    	left: -285em;
	}
}
@keyframes speed4 {
	to {
		width: 250em;
	}
}