﻿@import url(https://fonts.googleapis.com/css?family=Open+Sans:300);

/* Global Styles
  ---------------------------------------------- */
html {
    font-family: 'Open Sans', sans-serif;
    background: #0D133A;
    height: 100%;
    font-size: 100%;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    overflow: hidden;
    position: relative;
}

body {
    height: 100%;
    overflow: hidden;
    margin: 0;
    font-size: 1em;
    line-height: 1.4;
    position: relative;
}

img {
    border: 0;
    -ms-interpolation-mode: bicubic;
    vertical-align: middle;
}

svg:not(:root) {
    overflow: hidden;
}

a {
    /*color: white;
    text-decoration: none;*/
}

/* Animation globals
  ---------------------------------------------- */
#landscape, .land, #bottom, .stags, .stag, .counter:before, #lensFlare, .sunMask {
    -webkit-animation-duration: 60s;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;
}

/* Background gradients
  ---------------------------------------------- */
#sky {
    height: 60%;
    margin-bottom: -6px;
    position: absolute;
    top: 0px;
    z-index: 2;
}

#sky-rect {
    height: 100%;
}

#reflection, #sunMask {
    height: 40%;
    position: absolute;
    top: 60%;
    z-index: 4;
}

#reflection-rect {
    height: 100%;
}

#sunMask {
    background: #0D133A;
    height: 40%;
    position: absolute;
    top: 60%;
    width: 100%;
}

/* Stag
  ---------------------------------------------- */
#stag {
    position: absolute;
    bottom: 15.3%;
    width: 6.3%;
    left: 38%;
    z-index: 5;
}

.stag {
    width: 100%;
    position: absolute;
    bottom: 0px;
}

.stags {
    -webkit-animation-name: stags;
}

@-webkit-keyframes stags {
    0% {
        fill: #0D141E;
    }

    4% {
        fill: #101522;
    }

    8% {
        fill: #121726;
    }

    12% {
        fill: #141829;
    }

    16% {
        fill: #1C1E3C;
    }

    20% {
        fill: #22214F;
    }

    24% {
        fill: #262262;
    }

    28% {
        fill: #1D4065;
    }

    32% {
        fill: #125768;
    }

    36% {
        fill: #1E4553;
    }

    40% {
        fill: #1E404E;
    }

    44% {
        fill: #1E3B49;
    }

    48% {
        fill: #1D3643;
    }

    52% {
        fill: #1C313E;
    }

    56% {
        fill: #1C3344;
    }

    60% {
        fill: #1C3449;
    }

    64% {
        fill: #1B344F;
    }

    68% {
        fill: #183454;
    }

    72% {
        fill: #242B4A;
    }

    76% {
        fill: #2B2241;
    }

    80% {
        fill: #24203C;
    }

    84% {
        fill: #1D1D37;
    }

    88% {
        fill: #151A32;
    }

    92% {
        fill: #14192C;
    }

    96% {
        fill: #111725;
    }

    100% {
        fill: #0D141E;
    }
}

#stag1 {
    -webkit-animation-name: stag_one;
    width: 108%;
    left: -20%;
}

@-webkit-keyframes stag_one {
    0% {
        opacity: 1.0;
    }

    15% {
        opacity: 1.0;
    }

    20% {
        opacity: 0.0;
    }

    90% {
        opacity: 0.0;
    }

    95% {
        opacity: 1.0;
    }

    100% {
        opacity: 1.0;
    }
}

#stag2 {
    -webkit-animation-name: stag_two;
}

@-webkit-keyframes stag_two {
    0% {
        opacity: 0.0;
    }

    17% {
        opacity: 0.0;
    }

    20% {
        opacity: 1.0;
    }

    40% {
        opacity: 1.0;
    }

    45% {
        opacity: 0.0;
    }

    65% {
        opacity: 0.0;
    }

    70% {
        opacity: 1.0;
    }

    90% {
        opacity: 1.0;
    }

    95% {
        opacity: 0.0;
    }

    100% {
        opacity: 0.0;
    }
}

#stag3 {
    -webkit-animation-name: stag_three;
    width: 144%;
    left: -10%;
    bottom: -3%;
}

@-webkit-keyframes stag_three {
    0% {
        opacity: 0.0;
    }

    15% {
        opacity: 0.0;
    }

    20% {
        opacity: 0.0;
    }

    40% {
        opacity: 0.0;
    }

    45% {
        opacity: 1.0;
    }

    65% {
        opacity: 1.0;
    }

    70% {
        opacity: 0.0;
    }

    100% {
        opacity: 0.0;
    }
}

/* Sun
  ---------------------------------------------- */
.sunMask {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-mask-image: -webkit-gradient(linear, left 50%, left 60%, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)));
    z-index: 4;
    mix-blend-mode: screen;
    -webkit-animation-name: sunFocus;
}

@-webkit-keyframes sunFocus {
    0% {
        -webkit-filter: blur(10px);
    }

    16% {
        -webkit-filter: blur(10px);
    }

    20% {
        -webkit-filter: blur(10px);
    }

    25% {
        -webkit-filter: blur(5px);
    }

    30% {
        -webkit-filter: blur(0px);
    }

    80% {
        -webkit-filter: blur(0px);
    }

    88% {
        -webkit-filter: blur(5px);
    }

    100% {
        -webkit-filter: blur(10px);
    }
}

.sun {
    width: 100%;
    padding-bottom: 100%;
    position: absolute;
    right: -51%;
    top: -330%;
}

    .sun div {
        background: transparent url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/21555/sun.svg);
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
    }

.suncrane {
    animation: suncrane 60s linear infinite;
    position: absolute;
    width: 21%;
    height: 4%;
    background: transparent;
    margin: auto;
    top: 57%;
    left: 0;
    right: 0;
}

@keyframes suncrane {
    0% {
        transform: rotate(90deg);
    }

    100% {
        transform: rotate(-270deg);
    }
}

.sun:before {
    display: block;
    content: ' ';
    animation: glare 60s linear infinite;
    position: absolute;
    width: 120%;
    height: 120%;
    background: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/21555/glare.svg) no-repeat scroll center;
    top: -10%;
    left: -10%;
    background-size: 100%;
}

@keyframes glare {
    from {
        transform: rotate(90deg);
        opacity: 0.0;
    }

    30% {
        opacity: 0.0;
    }

    36% {
        opacity: 1.0;
    }

    68% {
        opacity: 1.0;
    }

    74% {
        opacity: 0.0;
    }

    to {
        transform: rotate(450deg);
        opacity: 0.0;
    }
}


.sun:after {
    display: block;
    content: ' ';
    position: absolute;
    background: white;
    width: 10%;
    height: 10%;
    top: 45%;
    border-radius: 100%;
    margin: auto;
    left: 0;
    right: 0;
    box-shadow: 0px 0px 80px 30px white;
}

/* Clouds
  ---------------------------------------------- */
.clouds {
    position: absolute;
    width: 100%;
    z-index: 4;
    mix-blend-mode: screen;
    height: 100%;
}

    .clouds svg {
        width: 60%;
        position: absolute;
        top: 51%;
        -webkit-filter: blur(2px);
        opacity: 0.4;
        left: -60%;
        -webkit-animation-duration: 60s;
        -webkit-animation-iteration-count: infinite;
        -webkit-animation-timing-function: linear;
        -webkit-animation-name: clouds;
    }

@-webkit-keyframes clouds {
    0% {
        transform: translate3d(110%, 0px, 0px);
        opacity: 0.0;
    }

    19% {
        opacity: 0.0;
        -webkit-filter: blur(5px);
    }

    25% {
        opacity: 0.3;
        -webkit-filter: blur(2px);
    }

    50% {
        opacity: 0.6;
    }

    75% {
        opacity: 0.2;
    }

    90% {
        opacity: 0.0;
    }

    100% {
        transform: translate3d(150%, 0px, 0px);
        opacity: 0.0
    }
}

/* Lens flare
  ---------------------------------------------- */
.lighting {
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: 8;
    opacity: 0.3;
    -webkit-mask-image: -webkit-gradient(linear, left 50%, left 60%, from(rgba(0,0,0,1)), to(rgba(0,0,0,1)));
    mix-blend-mode: screen;
    pointer-events: none;
    -webkit-filter: blur(3px);
}

    .lighting .suncrane {
        width: 100%;
    }

#lensFlare {
    transform: rotate(16deg) translate3d(9%, -47%, 0px) scale(1);
    -webkit-animation-name: flaring;
}

@-webkit-keyframes flaring {
    0% {
        transform: rotate(16deg) translate3d(9%, -47%, 0px) scale(1);
        opacity: 0.0;
    }

    28% {
        transform: rotate(16deg) translate3d(9%, -47%, 0px) scale(1);
        opacity: 0.0;
    }

    35% {
        transform: rotate(16deg) translate3d(9%, -47%, 0px) scale(1);
        opacity: 1.0;
    }

    70% {
        transform: rotate(16deg) translate3d(9%, -47%, 0px) scale(1);
        opacity: 1.0;
    }

    78% {
        transform: rotate(16deg) translate3d(9%, -47%, 0px) scale(1);
        opacity: 0.0;
    }

    100% {
        transform: rotate(16deg) translate3d(9%, -47%, 0px) scale(1);
        opacity: 0.0;
    }
}

/* Sun on lake twinkles
  ---------------------------------------------- */
.twinkleWrap {
    position: absolute;
    z-index: 4;
    width: 100%;
    height: 100%;
    top: 0;
    opacity: 0.55;
}

.twinkles {
    width: 2.3%;
    position: absolute;
    right: 49.2%;
    top: 72.5%;
    animation: twinkles 60s linear infinite;
}

@-webkit-keyframes twinkles {
    0% {
        transform: translate(450%, 0%);
        opacity: 0.0;
    }

    32% {
        opacity: 0.0;
    }

    34% {
        opacity: 1.0;
    }

    36.5% {
        transform: translate(450%, 0%);
    }

    54% {
        transform: translate(0%, 0%);
    }

    72% {
        transform: translate(-450%, 0%);
        opacity: 1.0;
    }

    78% {
        opacity: 0.0;
    }

    100% {
        transform: translate(-450%, 0%);
        opacity: 0.0;
    }
}

.twinkles:before {
    content: ' ';
    display: none;
    position: absolute;
    height: 600px;
    width: 3px;
    background: red;
    top: -600px;
    left: 50%;
}

.twinkles svg {
    width: 100%;
    position: absolute;
    top: 0;
}

#twinkle1 {
    animation: twinkle1 2s linear infinite;
}

@-webkit-keyframes twinkle1 {
    0% {
        opacity: 1.0;
    }

    33.33% {
        opacity: 0.0;
    }

    66.66% {
        opacity: 0.0;
    }

    99.99% {
        opacity: 1.0;
    }

    100% {
        opacity: 1.0;
    }
}

#twinkle2 {
    animation: twinkle2 2s linear infinite;
}

@-webkit-keyframes twinkle2 {
    0% {
        opacity: 0.0;
    }

    33.33% {
        opacity: 1.0;
    }

    66.66% {
        opacity: 0.0;
    }

    99.99% {
        opacity: 0.0;
    }

    100% {
        opacity: 0.0;
    }
}

#twinkle3 {
    animation: twinkle3 2s linear infinite;
}

@-webkit-keyframes twinkle3 {
    0% {
        opacity: 0.0;
    }

    33.33% {
        opacity: 0.0;
    }

    66.66% {
        opacity: 1.0;
    }

    99.99% {
        opacity: 0.0;
    }

    100% {
        opacity: 0.0;
    }
}

/* Vignette
  ---------------------------------------------- */
.vignette {
    background: radial-gradient(transparent 60%, rgb(1, 14, 39) 130%);
    background-size: cover;
    height: 100%;
    z-index: 9;
    position: absolute;
    width: 100%;
    pointer-events: none;
}

/* Stars
  ---------------------------------------------- */
.stars {
    height: 100%;
    z-index: 2;
    position: absolute;
    width: 100%;
    overflow: hidden;
}

.starWrap {
    height: 60%;
    width: 100%;
    position: relative;
}

.starProject {
    overflow: hidden;
}

.starReflect {
    overflow: hidden;
    height: 40%;
    opacity: 0.9;
    top: 1%;
}

#stars {
    position: absolute;
    width: 120%;
    border-radius: 100%;
    margin: auto;
    left: -10%;
    right: 0;
    animation: stars 120s linear infinite;
    transform: rotate(0deg);
    top: -35%;
}

@-webkit-keyframes stars {
    100% {
        transform: rotate(-360deg);
    }
}

#starReflection {
    position: absolute;
    width: 120%;
    border-radius: 100%;
    margin: auto;
    left: -10%;
    right: 0;
    animation: starsReflect 120s linear infinite;
    transform: rotate(0deg);
    top: initial;
    bottom: -102%;
}

@-webkit-keyframes starsReflect {
    100% {
        transform: rotate(360deg);
    }
}

/* Sprites 
  ----------------------------------------------- */
.spriteWrap {
    height: 100%;
    width: 100%;
    position: absolute;
    z-index: 13;
    animation: sprites 60s linear infinite;
    pointer-events: none;
}

@-webkit-keyframes sprites {
    0% {
        opacity: 0.8;
    }

    20% {
        opacity: 0.8;
    }

    25% {
        opacity: 0.0;
    }

    73% {
        opacity: 0.0;
    }

    90% {
        opacity: 0.8;
    }

    100% {
        opacity: 0.8;
    }
}

#sprites {
    height: 100%;
    width: 100%;
}

/* Controls
  ---------------------------------------------- */
.controls {
    position: absolute;
    top: 0px;
    width 20%;
    z-index: 10;
    background: rgba(0, 0, 0, 0.16);
    height: 100%;
    width: 380px;
    padding: 23px;
    -webkit-transform: translate3d(-250px, 0px, 0px);
    -moz-transform: translate3d(-250px, 0px, 0px);
    -o-transform: translate3d(-250px, 0px, 0px);
    -ms-transform: translate3d(-250px, 0px, 0px);
    transform: translate3d(-250px, 0px, 0px);
    opacity: 0;
}

    .controls, .controls * {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        -webkit-transition: all 0.25s ease;
        -moz-transition: all 0.25s ease;
        -o-transition: all 0.25s ease;
        transition: all 0.25s ease;
    }

        .controls:hover {
            -webkit-transform: translate3d(0px, 0px, 0px);
            -moz-transform: translate3d(0px, 0px, 0px);
            -o-transform: translate3d(0px, 0px, 0px);
            -ms-transform: translate3d(0px, 0px, 0px);
            transform: translate3d(0px, 0px, 0px);
            opacity: 1.0;
        }

        .controls ul {
            margin: 0px;
            padding: 0px;
            list-style: none;
        }

            .controls ul li {
                border-bottom: 1px solid rgba(255, 255, 255, 0.09);
                color: white;
            }

                .controls ul li span.title {
                    display: inline-block;
                    padding: 10px 0px;
                }

                .controls ul li a {
                    display: block;
                    padding: 10px 0px;
                }

                    .controls ul li a:hover {
                        padding-left: 10px;
                    }

                    .controls ul li a.active {
                    }

                        .controls ul li a.active:after {
                            content: 'on';
                            float: right;
                        }

        .controls audio {
            width: 100%;
            opacity: 0.2;
            position: relative;
            width: 80%;
            display: inline-block;
            top: 8px;
            float: right;
        }

            .controls audio:hover {
                opacity: 1.0;
            }

.noise {
    width: 100%;
    height: 100%;
    background: transparent;
    opacity: 0.03;
    z-index: 9;
    position: absolute;
    top: 0;
    pointer-events: none;
}

    .noise.active {
        background: transparent url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/21555/static2.gif);
        opacity: 0.015;
        background-size: 620px;
    }

.counter {
    color: rgba(255, 255, 255, 0.12);
    position: absolute;
    width: calc(100% - 46px);
    bottom: 21px;
    text-align: justify;
    font-size: 0px;
}

    .counter:before {
        content: ':';
        display: inline-block;
        position: absolute;
        -webkit-animation-name: timer;
        background: rgba(255, 255, 255, 0.03);
        text-align: right;
        left: 0px;
        bottom: 0px;
        color: transparent;
        border-right: 1px solid rgba(255, 255, 255, 0.13);
        line-height: 34px;
    }

@-webkit-keyframes timer {
    0% {
        width: 0%;
    }

    100% {
        width: 100%;
    }
}

/* Landscape
  ---------------------------------------------- */
#landscape {
    width: 100.02%;
    position: absolute;
    bottom: 11%;
    z-index: 5;
    -webkit-animation-name: focus;
}

@-webkit-keyframes focus {
    0% {
        -webkit-filter: blur(5px);
    }

    16% {
        -webkit-filter: blur(2px);
    }

    20% {
        -webkit-filter: blur(0px);
    }

    80% {
        -webkit-filter: blur(0px);
    }

    88% {
        -webkit-filter: blur(2px);
    }

    100% {
        -webkit-filter: blur(5px);
    }
}

#bottom {
    -webkit-animation-name: bottomFill;
    height: 100%;
    position: absolute;
    top: 88%;
    width: 100%;
    z-index: 5;
}

@-webkit-keyframes bottomFill {
    0% {
        background: #0D141E;
    }

    4% {
        background: #101522;
    }

    8% {
        background: #121726;
    }

    12% {
        background: #141829;
    }

    16% {
        background: #1C1E3C;
    }

    20% {
        background: #22214F;
    }

    24% {
        background: #262262;
    }

    28% {
        background: #1D4065;
    }

    32% {
        background: #125768;
    }

    36% {
        background: #1E4553;
    }

    40% {
        background: #1E404E;
    }

    44% {
        background: #1E3B49;
    }

    48% {
        background: #1D3643;
    }

    52% {
        background: #1C313E;
    }

    56% {
        background: #1C3344;
    }

    60% {
        background: #1C3449;
    }

    64% {
        background: #1B344F;
    }

    68% {
        background: #183454;
    }

    72% {
        background: #242B4A;
    }

    76% {
        background: #2B2241;
    }

    80% {
        background: #24203C;
    }

    84% {
        background: #1D1D37;
    }

    88% {
        background: #151A32;
    }

    92% {
        background: #14192C;
    }

    96% {
        background: #111725;
    }

    100% {
        background: #0D141E;
    }
}

/* Land - layer 1 animation */
#landscape .layer1 {
    fill: #F1F2F2;
    -webkit-animation-name: layer1;
}

@-webkit-keyframes layer1 {
    0% {
        fill: #244154;
    }

    4% {
        fill: #344358;
    }

    8% {
        fill: #42465D;
    }

    12% {
        fill: #4F4761;
    }

    16% {
        fill: #7E5773;
    }

    20% {
        fill: #A3517F;
    }

    24% {
        fill: #F3829F;
    }

    28% {
        fill: #D4B2AF;
    }

    32% {
        fill: #AEDABB;
    }

    36% {
        fill: #A1D6D6;
    }

    40% {
        fill: #9ED5DD;
    }

    44% {
        fill: #9AD4E4;
    }

    48% {
        fill: #97D3EA;
    }

    52% {
        fill: #92D3F4;
    }

    56% {
        fill: #95C8DA;
    }

    60% {
        fill: #96BDC5;
    }

    64% {
        fill: #96B3B2;
    }

    68% {
        fill: #96AA9E;
    }

    72% {
        fill: #AF866A;
    }

    76% {
        fill: #C0633B;
    }

    80% {
        fill: #9D5E51;
    }

    84% {
        fill: #7B5960;
    }

    88% {
        fill: #59546D;
    }

    92% {
        fill: #484E64;
    }

    96% {
        fill: #37475C;
    }

    100% {
        fill: #244154;
    }
}

/* Land - layer 2 animation */
#landscape .layer2 {
    fill: #E6E7E8;
    -webkit-animation-name: layer2;
}

@-webkit-keyframes layer2 {
    0% {
        fill: #0F2B46;
    }

    4% {
        fill: #1C2D4A;
    }

    8% {
        fill: #272E4E;
    }

    12% {
        fill: #302F52;
    }

    16% {
        fill: #663966;
    }

    20% {
        fill: #913776;
    }

    24% {
        fill: #D94A93;
    }

    28% {
        fill: #BB94AD;
    }

    32% {
        fill: #76CCCE;
    }

    36% {
        fill: #6BAEC9;
    }

    40% {
        fill: #62A7CA;
    }

    44% {
        fill: #59A0CB;
    }

    48% {
        fill: #5099CC;
    }

    52% {
        fill: #4692CF;
    }

    56% {
        fill: #4D8FBD;
    }

    60% {
        fill: #518CAF;
    }

    64% {
        fill: #548AA1;
    }

    68% {
        fill: #578793;
    }

    72% {
        fill: #7E6768;
    }

    76% {
        fill: #8F4244;
    }

    80% {
        fill: #74404D;
    }

    84% {
        fill: #593D55;
    }

    88% {
        fill: #393B5D;
    }

    92% {
        fill: #2C3655;
    }

    96% {
        fill: #1F304E;
    }

    100% {
        fill: #0F2B46;
    }
}

/* Land - layer 3 animation */
#landscape .layer3 {
    fill: #D1D3D4;
    -webkit-animation-name: layer3;
}

@-webkit-keyframes layer3 {
    0% {
        fill: #0F2944;
    }

    4% {
        fill: #1B2B47;
    }

    8% {
        fill: #252C4B;
    }

    12% {
        fill: #2E2D4E;
    }

    16% {
        fill: #5F3663;
    }

    20% {
        fill: #863572;
    }

    24% {
        fill: #C8458D;
    }

    28% {
        fill: #A48BAB;
    }

    32% {
        fill: #68BFC7;
    }

    36% {
        fill: #54A4C8;
    }

    40% {
        fill: #4F9EC8;
    }

    44% {
        fill: #4B98C7;
    }

    48% {
        fill: #4691C7;
    }

    52% {
        fill: #408BC8;
    }

    56% {
        fill: #4688B7;
    }

    60% {
        fill: #4984A9;
    }

    64% {
        fill: #4C819C;
    }

    68% {
        fill: #4E7E8F;
    }

    72% {
        fill: #776167;
    }

    76% {
        fill: #893E45;
    }

    80% {
        fill: #6F3C4C;
    }

    84% {
        fill: #543A52;
    }

    88% {
        fill: #353758;
    }

    92% {
        fill: #2A3351;
    }

    96% {
        fill: #1E2E4A;
    }

    100% {
        fill: #0F2944;
    }
}

/* Land - layer 4 animation */
#landscape .layer4 {
    fill: #BCBEC0;
    -webkit-animation-name: layer4;
}

@-webkit-keyframes layer4 {
    0% {
        fill: #0F2841;
    }

    4% {
        fill: #1A2945;
    }

    8% {
        fill: #232A48;
    }

    12% {
        fill: #2B2A4B;
    }

    16% {
        fill: #59335F;
    }

    20% {
        fill: #7C336D;
    }

    24% {
        fill: #B84089;
    }

    28% {
        fill: #9683A5;
    }

    32% {
        fill: #57B5C1;
    }

    36% {
        fill: #4798BD;
    }

    40% {
        fill: #4391BC;
    }

    44% {
        fill: #408BBB;
    }

    48% {
        fill: #3D85BA;
    }

    52% {
        fill: #397FBA;
    }

    56% {
        fill: #3E7DAC;
    }

    60% {
        fill: #407AA1;
    }

    64% {
        fill: #427896;
    }

    68% {
        fill: #44768B;
    }

    72% {
        fill: #705B66;
    }

    76% {
        fill: #823B46;
    }

    80% {
        fill: #69394B;
    }

    84% {
        fill: #503650;
    }

    88% {
        fill: #323454;
    }

    92% {
        fill: #27304D;
    }

    96% {
        fill: #1C2C47;
    }

    100% {
        fill: #0F2841;
    }
}

/* Land - layer 5 animation */
#landscape .layer5 {
    fill: #A7A9AC;
    -webkit-animation-name: layer5;
}

@-webkit-keyframes layer5 {
    0% {
        fill: #0E263F;
    }

    4% {
        fill: #192742;
    }

    8% {
        fill: #212745;
    }

    12% {
        fill: #292848;
    }

    16% {
        fill: #51305B;
    }

    20% {
        fill: #6E3068;
    }

    24% {
        fill: #A23B82;
    }

    28% {
        fill: #84799F;
    }

    32% {
        fill: #44AABC;
    }

    36% {
        fill: #3A8DB3;
    }

    40% {
        fill: #3887B1;
    }

    44% {
        fill: #3680AF;
    }

    48% {
        fill: #347AAD;
    }

    52% {
        fill: #3273AB;
    }

    56% {
        fill: #3672A1;
    }

    60% {
        fill: #387198;
    }

    64% {
        fill: #396F90;
    }

    68% {
        fill: #3A6E87;
    }

    72% {
        fill: #695565;
    }

    76% {
        fill: #7C3747;
    }

    80% {
        fill: #64354A;
    }

    84% {
        fill: #4B334D;
    }

    88% {
        fill: #2E314F;
    }

    92% {
        fill: #252D4A;
    }

    96% {
        fill: #1B2A44;
    }

    100% {
        fill: #0E263F;
    }
}

/* Land - layer 6 animation */
#landscape .layer6 {
    fill: #939598;
    -webkit-animation-name: layer6;
}

@-webkit-keyframes layer6 {
    0% {
        fill: #0E243C;
    }

    4% {
        fill: #18253F;
    }

    8% {
        fill: #202542;
    }

    12% {
        fill: #262544;
    }

    16% {
        fill: #482C56;
    }

    20% {
        fill: #612D63;
    }

    24% {
        fill: #8D357C;
    }

    28% {
        fill: #6F719B;
    }

    32% {
        fill: #00A1BC;
    }

    36% {
        fill: #2583A8;
    }

    40% {
        fill: #287CA3;
    }

    44% {
        fill: #2A759F;
    }

    48% {
        fill: #2D6F9A;
    }

    52% {
        fill: #2E6895;
    }

    56% {
        fill: #2F6891;
    }

    60% {
        fill: #30678D;
    }

    64% {
        fill: #306788;
    }

    68% {
        fill: #306683;
    }

    72% {
        fill: #625064;
    }

    76% {
        fill: #753347;
    }

    80% {
        fill: #5E3249;
    }

    84% {
        fill: #47304A;
    }

    88% {
        fill: #2B2E4B;
    }

    92% {
        fill: #222A46;
    }

    96% {
        fill: #192741;
    }

    100% {
        fill: #0E243C;
    }
}

/* Land - layer 7 animation */
#landscape .layer7 {
    fill: #808285;
    -webkit-animation-name: layer7;
}

@-webkit-keyframes layer7 {
    0% {
        fill: #102237;
    }

    4% {
        fill: #18223A;
    }

    8% {
        fill: #1E233D;
    }

    12% {
        fill: #242340;
    }

    16% {
        fill: #402952;
    }

    20% {
        fill: #542A5E;
    }

    24% {
        fill: #793177;
    }

    28% {
        fill: #5F668F;
    }

    32% {
        fill: #0A8FA7;
    }

    36% {
        fill: #237595;
    }

    40% {
        fill: #256F90;
    }

    44% {
        fill: #27698C;
    }

    48% {
        fill: #286387;
    }

    52% {
        fill: #285D82;
    }

    56% {
        fill: #285E82;
    }

    60% {
        fill: #285F81;
    }

    64% {
        fill: #275F81;
    }

    68% {
        fill: #255F7F;
    }

    72% {
        fill: #574A63;
    }

    76% {
        fill: #683148;
    }

    80% {
        fill: #542F48;
    }

    84% {
        fill: #3F2D47;
    }

    88% {
        fill: #242742;
    }

    92% {
        fill: #202841;
    }

    96% {
        fill: #19253C;
    }

    100% {
        fill: #102237;
    }
}

/* Land - layer 8 animation */
#landscape .layer8 {
    fill: #6D6E71;
    -webkit-animation-name: layer8;
}

@-webkit-keyframes layer8 {
    0% {
        fill: #111F31;
    }

    4% {
        fill: #172034;
    }

    8% {
        fill: #1C2037;
    }

    12% {
        fill: #20213B;
    }

    16% {
        fill: #37274C;
    }

    20% {
        fill: #472759;
    }

    24% {
        fill: #662C71;
    }

    28% {
        fill: #4F5C83;
    }

    32% {
        fill: #118095;
    }

    36% {
        fill: #206983;
    }

    40% {
        fill: #21637E;
    }

    44% {
        fill: #225D7A;
    }

    48% {
        fill: #225775;
    }

    52% {
        fill: #225270;
    }

    56% {
        fill: #235372;
    }

    60% {
        fill: #235574;
    }

    64% {
        fill: #235675;
    }

    68% {
        fill: #235676;
    }

    72% {
        fill: #4C445F;
    }

    76% {
        fill: #5B2F49;
    }

    80% {
        fill: #4A2C47;
    }

    84% {
        fill: #382A44;
    }

    88% {
        fill: #242742;
    }

    92% {
        fill: #1E253D;
    }

    96% {
        fill: #182338;
    }

    100% {
        fill: #111F31;
    }
}

/* Land - layer 9 animation */
#landscape .layer9 {
    fill: #58595B;
    -webkit-animation-name: layer9;
}

@-webkit-keyframes layer9 {
    0% {
        fill: #111C2B;
    }

    4% {
        fill: #151D2E;
    }

    8% {
        fill: #191E32;
    }

    12% {
        fill: #1D1E35;
    }

    16% {
        fill: #2F2447;
    }

    20% {
        fill: #3A2454;
    }

    24% {
        fill: #52296C;
    }

    28% {
        fill: #405279;
    }

    32% {
        fill: #137185;
    }

    36% {
        fill: #1C5C72;
    }

    40% {
        fill: #1C576E;
    }

    44% {
        fill: #1C5269;
    }

    48% {
        fill: #1B4C64;
    }

    52% {
        fill: #1A475F;
    }

    56% {
        fill: #1C4A63;
    }

    60% {
        fill: #1E4B67;
    }

    64% {
        fill: #1F4D6A;
    }

    68% {
        fill: #204E6D;
    }

    72% {
        fill: #413E5A;
    }

    76% {
        fill: #4E2D49;
    }

    80% {
        fill: #402A45;
    }

    84% {
        fill: #312742;
    }

    88% {
        fill: #20243E;
    }

    92% {
        fill: #1B2238;
    }

    96% {
        fill: #171F32;
    }

    100% {
        fill: #111C2B;
    }
}

/* Land - layer 10 animation */
#landscape .layer10 {
    fill: #414042;
    -webkit-animation-name: layer10;
}

@-webkit-keyframes layer10 {
    0% {
        fill: #101825;
    }

    4% {
        fill: #131928;
    }

    8% {
        fill: #161A2C;
    }

    12% {
        fill: #181B2F;
    }

    16% {
        fill: #262141;
    }

    20% {
        fill: #2C214F;
    }

    24% {
        fill: #3D2567;
    }

    28% {
        fill: #30486F;
    }

    32% {
        fill: #136476;
    }

    36% {
        fill: #165163;
    }

    40% {
        fill: #154C5E;
    }

    44% {
        fill: #144759;
    }

    48% {
        fill: #134254;
    }

    52% {
        fill: #113D4F;
    }

    56% {
        fill: #154055;
    }

    60% {
        fill: #19425A;
    }

    64% {
        fill: #1B445F;
    }

    68% {
        fill: #1E4564;
    }

    72% {
        fill: #363856;
    }

    76% {
        fill: #412A49;
    }

    80% {
        fill: #352744;
    }

    84% {
        fill: #29243F;
    }

    88% {
        fill: #1C203A;
    }

    92% {
        fill: #191F33;
    }

    96% {
        fill: #151C2C;
    }

    100% {
        fill: #101825;
    }
}

/* Land - layer 11 animation */
#landscape .layer11 {
    fill: #232323;
    -webkit-animation-name: layer11;
}

@-webkit-keyframes layer11 {
    0% {
        fill: #0D141E;
        transform: skew(0deg, 0deg) translate3d(0px, 0px, 0px);
    }

    4% {
        fill: #101522;
        transform: skew(1deg, 0deg) translate3d(-0.5%, 0px, 0px);
    }

    8% {
        fill: #121726;
        transform: skew(0deg, 0deg) translate3d(0px, 0px, 0px);
    }

    12% {
        fill: #141829;
        transform: skew(-1deg, 0deg) translate3d(0.5%, 0px, 0px);
    }

    16% {
        fill: #1C1E3C;
        transform: skew(0deg, 0deg) translate3d(0px, 0px, 0px);
    }

    20% {
        fill: #22214F;
        transform: skew(1deg, 0deg) translate3d(-0.5%, 0px, 0px);
    }

    24% {
        fill: #262262;
        transform: skew(0deg, 0deg) translate3d(0px, 0px, 0px);
    }

    28% {
        fill: #1D4065;
        transform: skew(-1deg, 0deg) translate3d(0.5%, 0px, 0px);
    }

    32% {
        fill: #125768;
        transform: skew(0deg, 0deg) translate3d(0px, 0px, 0px);
    }

    36% {
        fill: #1E4553;
        transform: skew(1deg, 0deg) translate3d(-0.5%, 0px, 0px);
    }

    40% {
        fill: #1E404E;
        transform: skew(0deg, 0deg) translate3d(0px, 0px, 0px);
    }

    44% {
        fill: #1E3B49;
        transform: skew(-1deg, 0deg) translate3d(0.5%, 0px, 0px);
    }

    48% {
        fill: #1D3643;
        transform: skew(0deg, 0deg) translate3d(0px, 0px, 0px);
    }

    52% {
        fill: #1C313E;
        transform: skew(1deg, 0deg) translate3d(-0.5%, 0px, 0px);
    }

    56% {
        fill: #1C3344;
        transform: skew(0deg, 0deg) translate3d(0px, 0px, 0px);
    }

    60% {
        fill: #1C3449;
        transform: skew(-1deg, 0deg) translate3d(0.5%, 0px, 0px);
    }

    64% {
        fill: #1B344F;
        transform: skew(0deg, 0deg) translate3d(0px, 0px, 0px);
    }

    68% {
        fill: #183454;
        transform: skew(1deg, 0deg) translate3d(-0.5%, 0px, 0px);
    }

    72% {
        fill: #242B4A;
        transform: skew(0deg, 0deg) translate3d(0px, 0px, 0px);
    }

    76% {
        fill: #2B2241;
        transform: skew(-1deg, 0deg) translate3d(0.5%, 0px, 0px);
    }

    80% {
        fill: #24203C;
        transform: skew(0deg, 0deg) translate3d(0px, 0px, 0px);
    }

    84% {
        fill: #1D1D37;
    }

    88% {
        fill: #151A32;
    }

    92% {
        fill: #14192C;
    }

    96% {
        fill: #111725;
    }

    100% {
        fill: #0D141E;
    }
}

/* Aspect ratio media queries
  ---------------------------------------------- */

/* 3/2 and 6/1 -- out of range*/
@media screen and (min-aspect-ratio: 3/1) and (max-aspect-ratio: 6/1) {
    body {
        background: rgb(31, 60, 80);
    }

        body:before {
            content: 'Aspect ratio out of range - too wide';
            color: white;
            text-align: center;
            width: 100%;
            height: 100%;
            display: block;
            position: absolute;
            top: 50%;
        }

    #sky, #reflection, #sunMask, #landscape, #bottom, #stag, .controls, .stars, .sunMask, .clouds, .lighting, .vignette, .twinkleWrap, .spriteWrap {
        display: none;
    }
}

/* 14/5 and 3/1 */
@media screen and (min-aspect-ratio: 14/5) and (max-aspect-ratio: 7/2) {
    .twinkles {
    }

    #reflection, #sunMask {
        height: 42%;
    }

    #landscape {
        bottom: -3%;
    }

    #bottom {
        top: 101%;
    }

    #stag {
        bottom: 3%;
    }

    .sun {
        top: -570%;
    }

    .twinkles {
        top: 77%;
    }
}
/* 5/2 and 14/5 */
@media screen and (min-aspect-ratio: 5/2) and (max-aspect-ratio: 14/5) {
    .twinkles {
        top: 75%;
    }

    #reflection, #sunMask {
    }

    #landscape {
        bottom: 1%;
    }

    #bottom {
        top: 98%;
    }

    #stag {
        bottom: 7%;
    }

    .sun {
        top: -532%;
    }
}
/* 9/4 and 5/2 */
@media screen and (min-aspect-ratio: 9/4) and (max-aspect-ratio: 5/2) {
    .twinkles {
        top: 75%;
    }

    #reflection, #sunMask {
        height: 40%;
    }

    #landscape {
        bottom: 5%;
    }

    #bottom {
        top: 94%;
    }

    #stag {
        bottom: 10%;
    }

    .sun {
        top: -452%;
    }
}
/* 11/5 and 9/4 */
@media screen and (min-aspect-ratio: 11/5) and (max-aspect-ratio: 9/4) {
    .twinkles {
    }

    #reflection, #sunMask {
    }

    #landscape {
        bottom: 6%;
    }

    #bottom {
        top: 93%;
    }

    #stag {
        bottom: 11%;
    }

    .sun {
        top: -410%;
    }
}
/* 13/6 and 11/5 */
@media screen and (min-aspect-ratio: 13/6) and (max-aspect-ratio: 11/5) {
    .twinkles {
    }

    #reflection, #sunMask {
        height: 37%;
    }

    #landscape {
        bottom: 6%;
    }

    #bottom {
        top: 93%;
    }

    #stag {
        bottom: 11%;
    }

    .sun {
    }
}

/* 15/7 and 13/6 */
@media screen and (min-aspect-ratio: 15/7) and (max-aspect-ratio: 13/6) {
    .twinkles {
    }

    #reflection, #sunMask {
        height: 31%;
    }

    #landscape {
        bottom: 7%;
    }

    #bottom {
        top: 92%;
    }

    #stag {
        bottom: 12%;
    }

    .sun {
    }
}

/* 2/1 and 15/7 */
@media screen and (min-aspect-ratio: 2/1) and (max-aspect-ratio: 15/7) {
    .twinkles {
    }

    #reflection, #sunMask {
        height: 31%;
    }

    #landscape {
        bottom: 8%;
    }

    #bottom {
        top: 91%;
    }

    #stag {
        bottom: 12%;
    }

    .sun {
        top: -370%;
    }
}

@media screen and (min-aspect-ratio: 15/8) and (max-aspect-ratio: 2/1) {
    .twinkles {
    }

    #reflection, #sunMask {
        height: 30%;
    }

    #landscape {
    }

    #bottom {
    }

    #stag {
        bottom: 15%;
    }

    .sun {
    }
}

/* 7/4 and 15/8 */
@media screen and (min-aspect-ratio: 7/4) and (max-aspect-ratio: 15/8) {
    .twinkles {
        top: 71%;
    }

    #reflection, #sunMask {
        height: 28%;
    }

    #landscape {
        bottom: 13%;
    }

    #bottom {
        top: 86%;
    }

    #stag {
        bottom: 17%;
    }

    .sun {
        top: -300%;
    }
}
/* 11/7 and 7/4 */
@media screen and (min-aspect-ratio: 11/7) and (max-aspect-ratio: 7/4) {
    .twinkles {
        top: 69%;
    }

    #reflection, #sunMask {
        height: 24%;
    }

    #landscape {
        bottom: 16%;
    }

    #bottom {
        top: 83%;
    }

    #stag {
        bottom: 20%;
    }

    .sun {
        top: -270%;
    }
}
/* 13/9 and 11/7 */
@media screen and (min-aspect-ratio: 13/9) and (max-aspect-ratio: 11/7) {
    .twinkles {
        top: 68%;
    }

    #reflection, #sunMask {
        height: 22%;
    }

    #landscape {
        bottom: 18%;
    }

    #bottom {
        top: 81%;
    }

    #stag {
        bottom: 21.6%;
    }

    .sun {
        top: -240%;
    }
}
/* 4/3 and 13/9 */
@media screen and (min-aspect-ratio: 4/3) and (max-aspect-ratio: 13/9) {
    .twinkles {
        top: 66%;
    }

    #reflection, #sunMask {
        height: 19%;
    }

    #landscape {
        bottom: 22%;
    }

    #bottom {
        top: 77%;
    }

    #stag {
        bottom: 25%;
    }

    .sun {
        top: -230%;
    }
}
/* 8/7 and 4/3 */
@media screen and (min-aspect-ratio: 8/7) and (max-aspect-ratio: 4/3) {
    .twinkles {
        top: 65%;
    }

    #reflection, #sunMask {
        height: 18%;
    }

    #landscape {
        bottom: 23%;
    }

    #bottom {
        top: 76%;
    }

    #stag {
        bottom: 25.3%;
    }

    .sun {
        top: -180%;
    }
}
/* 14/15 and 8/7 */
@media screen and (min-aspect-ratio: 14/15) and (max-aspect-ratio: 8/7) {
    .twinkles {
        top: 63%;
        width: 3%;
    }

    #reflection, #sunMask {
        height: 17%;
    }

    #landscape {
        bottom: 26%;
    }

    #bottom {
        top: 73.8%;
    }

    #stag {
        bottom: 28.3%;
    }

    .sun {
        top: -140%;
    }
}
/* 5/6 and 14/15 */
@media screen and (min-aspect-ratio: 5/6) and (max-aspect-ratio: 14/15) {
    .twinkles {
        top: 63%;
        width: 3%;
    }

    #reflection, #sunMask {
        height: 13%;
    }

    #landscape {
        bottom: 28%;
    }

    #bottom {
        top: 71.5%;
    }

    #stag {
        bottom: 30%;
    }

    .sun {
        top: -110%;
    }
}
/* 7/10 and 5/6 */
@media screen and (min-aspect-ratio: 7/10) and (max-aspect-ratio: 5/6) {
    .twinkles {
        top: 62%;
        width: 3%;
    }

    #reflection, #sunMask {
        height: 11%;
    }

    #landscape {
        bottom: 30%;
    }

    #bottom {
        top: 69.6%;
    }

    #stag {
        bottom: 31.8%;
    }

    .sun {
        top: -70%;
    }
}
/* 5/9 and 7/10 */
@media screen and (min-aspect-ratio: 5/9) and (max-aspect-ratio: 7/10) {
    .twinkles {
        top: 62%;
        width: 3%;
    }

    #reflection, #sunMask {
        height: 8%;
    }

    #landscape {
        bottom: 32%;
    }

    #bottom {
        top: 67.5%;
    }

    #stag {
        bottom: 33.5%;
    }

    .sun {
        top: -55%;
    }
}

/* 1/10 and 5/9 --- out of range*/
@media screen and (min-aspect-ratio: 1/10) and (max-aspect-ratio: 5/9) {
    body {
        background: rgb(31, 60, 80);
    }

        body:before {
            content: 'Aspect ratio out of range - too narrow';
            color: white;
            text-align: center;
            width: 100%;
            height: 100%;
            display: block;
            position: absolute;
            top: 50%;
        }

    #sky, #reflection, #sunMask, #landscape, #bottom, #stag, .controls, .stars, .sunMask, .clouds, .lighting, .vignette, .twinkleWrap, .spriteWrap {
        display: none;
    }
}
