/* basic setup */
body {
    overflow: hidden;
    margin: 0;
    background: black;
}
body > .preload-cover {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1990;
}
body>.preload-cover .preload-bg {
    background-position: center;
    background-size: cover;
    opacity: 0.3;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
}
body > .preload-cover .poweredby {
    font-variant: small-caps;
    text-align: center;
    width: 100%;
    position: absolute;
    left: 0;
    bottom: 8px;
    color: white;
    font-size: 20px;
    text-shadow: 1px 1px 4px black;
}
body > .preload-cover .poweredby img {
    vertical-align: middle;
    margin-left: 3px;
}
body.loaded > .preload-cover {
    display: none;
}
body.engine-loaded > .preload-cover {
    background-color: white;
}
body.preload.pre-fadeout > .preload-cover {
    animation: cg-fadeout 0.5s linear forwards;
}
body.preload.engine-loaded.pre-fadeout > .preload-cover {
    animation: cg-fadeout2 0.5s linear forwards;
}
body.preload.pre-fadein > .preload-cover {
    animation: cg-fadein 0.3s linear forwards;
}
body > .preload-cover.cg-hidden {
    display: none;
}

/* before app starts */
body.preload .pace {
    box-shadow: 1px 3px 10px rgba(0,0,0,0.5);
    pointer-events: none;
    user-select: none;
    box-sizing: border-box;
    border-radius: 7px;
    background-clip: padding-box;

    z-index: 2000;
    position: fixed;
    margin: auto;
    top: 12px;
    left: 0;
    right: 0;
    bottom: 0;
    max-width: 200px;
    height: 28px;
    overflow: hidden;
}

body.preload .pace .pace-progress {
    box-sizing: border-box;
    border-radius: 2px;
    background-clip: padding-box;
    transform: translate3d(0, 0, 0);

    display: block;
    position: absolute;
    right: 100%;
    margin-right: -7px;
    width: 93%;
    top: 7px;
    height: 14px;
    font-size: 12px;
    background: #000000;
    color: #000000;
    line-height: 60px;
    font-weight: bold;
    font-family: Helvetica, Arial, "Lucida Grande", sans-serif;

    box-shadow: 120px 0 #fff, 240px 0 #fff;
}

body.preload .pace .pace-progress[data-progress-text="0%"]:after { right: -200px }
body.preload .pace .pace-progress[data-progress-text="1%"]:after { right: -198.14px }
body.preload .pace .pace-progress[data-progress-text="2%"]:after { right: -196.28px }
body.preload .pace .pace-progress[data-progress-text="3%"]:after { right: -194.42px }
body.preload .pace .pace-progress[data-progress-text="4%"]:after { right: -192.56px }
body.preload .pace .pace-progress[data-progress-text="5%"]:after { right: -190.7px }
body.preload .pace .pace-progress[data-progress-text="6%"]:after { right: -188.84px }
body.preload .pace .pace-progress[data-progress-text="7%"]:after { right: -186.98px }
body.preload .pace .pace-progress[data-progress-text="8%"]:after { right: -185.12px }
body.preload .pace .pace-progress[data-progress-text="9%"]:after { right: -183.26px }
body.preload .pace .pace-progress[data-progress-text="10%"]:after { right: -181.4px }
body.preload .pace .pace-progress[data-progress-text="11%"]:after { right: -179.54px }
body.preload .pace .pace-progress[data-progress-text="12%"]:after { right: -177.68px }
body.preload .pace .pace-progress[data-progress-text="13%"]:after { right: -175.82px }
body.preload .pace .pace-progress[data-progress-text="14%"]:after { right: -173.96px }
body.preload .pace .pace-progress[data-progress-text="15%"]:after { right: -172.1px }
body.preload .pace .pace-progress[data-progress-text="16%"]:after { right: -170.24px }
body.preload .pace .pace-progress[data-progress-text="17%"]:after { right: -168.38px }
body.preload .pace .pace-progress[data-progress-text="18%"]:after { right: -166.52px }
body.preload .pace .pace-progress[data-progress-text="19%"]:after { right: -164.66px }
body.preload .pace .pace-progress[data-progress-text="20%"]:after { right: -162.8px }
body.preload .pace .pace-progress[data-progress-text="21%"]:after { right: -160.94px }
body.preload .pace .pace-progress[data-progress-text="22%"]:after { right: -159.08px }
body.preload .pace .pace-progress[data-progress-text="23%"]:after { right: -157.22px }
body.preload .pace .pace-progress[data-progress-text="24%"]:after { right: -155.36px }
body.preload .pace .pace-progress[data-progress-text="25%"]:after { right: -153.5px }
body.preload .pace .pace-progress[data-progress-text="26%"]:after { right: -151.64px }
body.preload .pace .pace-progress[data-progress-text="27%"]:after { right: -149.78px }
body.preload .pace .pace-progress[data-progress-text="28%"]:after { right: -147.92px }
body.preload .pace .pace-progress[data-progress-text="29%"]:after { right: -146.06px }
body.preload .pace .pace-progress[data-progress-text="30%"]:after { right: -144.2px }
body.preload .pace .pace-progress[data-progress-text="31%"]:after { right: -142.34px }
body.preload .pace .pace-progress[data-progress-text="32%"]:after { right: -140.48px }
body.preload .pace .pace-progress[data-progress-text="33%"]:after { right: -138.62px }
body.preload .pace .pace-progress[data-progress-text="34%"]:after { right: -136.76px }
body.preload .pace .pace-progress[data-progress-text="35%"]:after { right: -134.9px }
body.preload .pace .pace-progress[data-progress-text="36%"]:after { right: -133.04px }
body.preload .pace .pace-progress[data-progress-text="37%"]:after { right: -131.18px }
body.preload .pace .pace-progress[data-progress-text="38%"]:after { right: -129.32px }
body.preload .pace .pace-progress[data-progress-text="39%"]:after { right: -127.46px }
body.preload .pace .pace-progress[data-progress-text="40%"]:after { right: -125.6px }
body.preload .pace .pace-progress[data-progress-text="41%"]:after { right: -123.74px }
body.preload .pace .pace-progress[data-progress-text="42%"]:after { right: -121.88px }
body.preload .pace .pace-progress[data-progress-text="43%"]:after { right: -120.02px }
body.preload .pace .pace-progress[data-progress-text="44%"]:after { right: -118.16px }
body.preload .pace .pace-progress[data-progress-text="45%"]:after { right: -116.3px }
body.preload .pace .pace-progress[data-progress-text="46%"]:after { right: -114.44px }
body.preload .pace .pace-progress[data-progress-text="47%"]:after { right: -112.58px }
body.preload .pace .pace-progress[data-progress-text="48%"]:after { right: -110.72px }
body.preload .pace .pace-progress[data-progress-text="49%"]:after { right: -108.86px }
body.preload .pace .pace-progress[data-progress-text="50%"]:after { right: -107px }
body.preload .pace .pace-progress[data-progress-text="51%"]:after { right: -105.14px }
body.preload .pace .pace-progress[data-progress-text="52%"]:after { right: -103.28px }
body.preload .pace .pace-progress[data-progress-text="53%"]:after { right: -101.42px }
body.preload .pace .pace-progress[data-progress-text="54%"]:after { right: -99.56px }
body.preload .pace .pace-progress[data-progress-text="55%"]:after { right: -97.7px }
body.preload .pace .pace-progress[data-progress-text="56%"]:after { right: -95.84px }
body.preload .pace .pace-progress[data-progress-text="57%"]:after { right: -93.98px }
body.preload .pace .pace-progress[data-progress-text="58%"]:after { right: -92.12px }
body.preload .pace .pace-progress[data-progress-text="59%"]:after { right: -90.26px }
body.preload .pace .pace-progress[data-progress-text="60%"]:after { right: -88.4px }
body.preload .pace .pace-progress[data-progress-text="61%"]:after { right: -86.54px }
body.preload .pace .pace-progress[data-progress-text="62%"]:after { right: -84.68px }
body.preload .pace .pace-progress[data-progress-text="63%"]:after { right: -82.82px }
body.preload .pace .pace-progress[data-progress-text="64%"]:after { right: -80.96px }
body.preload .pace .pace-progress[data-progress-text="65%"]:after { right: -79.1px }
body.preload .pace .pace-progress[data-progress-text="66%"]:after { right: -77.24px }
body.preload .pace .pace-progress[data-progress-text="67%"]:after { right: -75.38px }
body.preload .pace .pace-progress[data-progress-text="68%"]:after { right: -73.52px }
body.preload .pace .pace-progress[data-progress-text="69%"]:after { right: -71.66px }
body.preload .pace .pace-progress[data-progress-text="70%"]:after { right: -69.8px }
body.preload .pace .pace-progress[data-progress-text="71%"]:after { right: -67.94px }
body.preload .pace .pace-progress[data-progress-text="72%"]:after { right: -66.08px }
body.preload .pace .pace-progress[data-progress-text="73%"]:after { right: -64.22px }
body.preload .pace .pace-progress[data-progress-text="74%"]:after { right: -62.36px }
body.preload .pace .pace-progress[data-progress-text="75%"]:after { right: -60.5px }
body.preload .pace .pace-progress[data-progress-text="76%"]:after { right: -58.64px }
body.preload .pace .pace-progress[data-progress-text="77%"]:after { right: -56.78px }
body.preload .pace .pace-progress[data-progress-text="78%"]:after { right: -54.92px }
body.preload .pace .pace-progress[data-progress-text="79%"]:after { right: -53.06px }
body.preload .pace .pace-progress[data-progress-text="80%"]:after { right: -51.2px }
body.preload .pace .pace-progress[data-progress-text="81%"]:after { right: -49.34px }
body.preload .pace .pace-progress[data-progress-text="82%"]:after { right: -47.48px }
body.preload .pace .pace-progress[data-progress-text="83%"]:after { right: -45.62px }
body.preload .pace .pace-progress[data-progress-text="84%"]:after { right: -43.76px }
body.preload .pace .pace-progress[data-progress-text="85%"]:after { right: -41.9px }
body.preload .pace .pace-progress[data-progress-text="86%"]:after { right: -40.04px }
body.preload .pace .pace-progress[data-progress-text="87%"]:after { right: -38.18px }
body.preload .pace .pace-progress[data-progress-text="88%"]:after { right: -36.32px }
body.preload .pace .pace-progress[data-progress-text="89%"]:after { right: -34.46px }
body.preload .pace .pace-progress[data-progress-text="90%"]:after { right: -32.6px }
body.preload .pace .pace-progress[data-progress-text="91%"]:after { right: -30.74px }
body.preload .pace .pace-progress[data-progress-text="92%"]:after { right: -28.88px }
body.preload .pace .pace-progress[data-progress-text="93%"]:after { right: -27.02px }
body.preload .pace .pace-progress[data-progress-text="94%"]:after { right: -25.16px }
body.preload .pace .pace-progress[data-progress-text="95%"]:after { right: -23.3px }
body.preload .pace .pace-progress[data-progress-text="96%"]:after { right: -21.44px }
body.preload .pace .pace-progress[data-progress-text="97%"]:after { right: -19.58px }
body.preload .pace .pace-progress[data-progress-text="98%"]:after { right: -17.72px }
body.preload .pace .pace-progress[data-progress-text="99%"]:after { right: -15.86px }
body.preload .pace .pace-progress[data-progress-text="100%"]:after { right: -14px }

body.preload .pace .pace-activity {
    position: absolute;
    width: 100%;
    height: 28px;
    z-index: 2001;
    box-shadow: inset 0 0 0 2px #000000, inset 0 0 0 7px #FFF;
    border-radius: 7px;
}

/* after app starts */
body.loaded .pace {
    pointer-events: none;
    user-select: none;
}

body.loaded .pace .pace-progress {
    background: #2299dd;
    position: fixed;
    z-index: 2000;
    top: 0;
    right: 100%;
    width: 100%;
    height: 2px;
}

body.loaded .pace .pace-progress-inner {
    display: block;
    position: absolute;
    right: 0px;
    width: 100px;
    height: 100%;
    box-shadow: 0 0 10px #2299dd, 0 0 5px #2299dd;
    opacity: 1.0;
    transform: rotate(3deg) translate(0px, -4px);
}

body.loaded .pace .pace-activity {
    display: block;
    position: fixed;
    z-index: 2000;
    top: 15px;
    right: 15px;
    width: 20px;
    height: 20px;
    border: solid 3px transparent;
    border-top-color: #2299dd;
    border-left-color: #2299dd;
    border-radius: 16px;
    animation: pace-spinner 400ms linear infinite;
}

@keyframes pace-spinner {
    0% { transform: rotate(0deg); transform: rotate(0deg); }
    100% { transform: rotate(360deg); transform: rotate(360deg); }
}

/* when loading completes */
body.loaded .pace.pace-inactive {
    display: none;
}

@keyframes cg-fadeout {
    0% { opacity: 1; max-height: 2000px; }
    99% { opacity: 0.01; max-height: 2000px; }
    100% { opacity: 0; max-height: 0; }
}
@keyframes cg-fadeout2 {
    0% { opacity: 0.5; max-height: 2000px; }
    99% { opacity: 0.01; max-height: 2000px; }
    100% { opacity: 0; max-height: 0; }
}
@keyframes cg-fadein {
    0% { opacity: 0; max-height: 2000px; }
    100% { opacity: 0.5; max-height: 2000px; }
}
@keyframes cg-popin {
    0% { transform: scale(0.01, 0.01); max-height: 2000px; }
    85% { transform: scale(1.15, 1.15); max-height: 2000px; }
    100% { transform: scale(1, 1); max-height: 2000px; }
}
@keyframes cg-popout {
    0% { transform: scale(1, 1); max-height: 2000px; }
    15% { transform: scale(1.15, 1.15); max-height: 2000px; }
    99% { transform: scale(0.01, 0.01); max-height: 2000px; }
    100% { transform: scale(0.01, 0.01); max-height: 0; }
}
body.preload.pre-fadeout .pace {
    animation: cg-popout 0.3s ease-in 0.2s forwards;
}
body.preload.engine-loaded.pre-fadein .pace {
    animation: cg-popin 0.3s ease-out forwards;
}

@media screen and (max-width: 360px) {
    body > .preload-cover .poweredby span:first-child {
        display: none;
    }
}
@media screen and (max-width: 240px),
        screen and (max-height: 180px) {
    body > .preload-cover .poweredby span {
        display: none;
    }
    body > .preload-cover .poweredby {
        bottom: calc(50% + 8px);
    }
}
@media screen and (max-height: 110px) {
    body > .preload-cover .poweredby {
        top: 5px;
    }
}