body.noscroll {
    position: fixed;
    height: 100%;
    width: 100%;
    overflow: hidden;
}

body:not(.noscroll) section.hero {
    /*animation: slideupnow 1s 1;
    /*animation: slideup 14s 1;*/
    /*top: -150vh;*/
    transition: all 0.6s ease-in;
    opacity: 0;
    z-index: -100;
    visibility: hidden;
}

body.noscroll section.hero {
    z-index: 5000;
    opacity: 1;
}

section.hero {
	position: fixed;
}

@keyframes slideup {
    0% {opacity: 1;top: 0;}
    80% {opacity: 1;top: 0;}
    90% {opacity: 0;top: 0;}
    100% {opacity: 0;top: -150vh;}
}

@keyframes slideupnow {
    0% {opacity: 1;top: 0;}
    80% {opacity: 1;top: 0;}
    90% {opacity: 0;top: 0;}
    100% {opacity: 0;top: -150vh;}
}

section.hero.hidden {
    animation: slideupnow 1s 1;
}

section.hero .symbol {
	position: relative;
}
section.hero .symbol .holder {
	width: 40rem;
	position: relative;
	margin: 0 auto;
}
section.hero .symbol svg {
	position: relative;
	width: 100%;
	max-width: 100%;
	max-height: 100%;
    display: none;
}
/** Internet Explorer fix */
body.browserExplorer section.hero .symbol svg {
    height: 30rem;
}

section.hero .symbol svg path {
	fill: none;
	stroke-linecap:round;stroke-linejoin:round;
}

section.hero .symbol svg#symbol {
    z-index: 10;
}
section.hero .symbol svg#symbol path {
	stroke: #ffffff;
    /*filter: drop-shadow(0px 3px 0 rgba(0, 0, 0, 0.3));*/
}
section.hero .symbol svg#symbolshadow {
    z-index: 5;
    position: absolute;
    width: 100%;
    max-width: 100%;
    max-height: 100%;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: none;
}

section.hero .symbol svg#symbolshadow path {
	/*stroke-width: 12px;*/
}

section.hero .texts {
    position: absolute;
    left: 50%;
    top: 45%;
    transform: translate(-50%, -50%);
	text-align: center;
    font-size: 2.5rem;
    color: #fff;
    line-height: 1.2;
}

section.hero .texts .title,
section.hero .texts .reveal {
    overflow: hidden;
    height: auto;
    /*display: inline-block;
    /*opacity: 0;*/ 
}

section.hero .texts .title {
    animation: showtitle 5s 1;
}

section.hero .texts .title i {
	padding: 0 0.2em;
}

section.hero .texts .intro {
	font-weight: 100;
}

section.hero .texts .intro span {
	display: block;
}


@keyframes showtitle {
    0%   { opacity: 0; }
    10%  { opacity: 0; }
    40%  { opacity: 1; }
    100% { opacity: 1; }
}

@keyframes revealintro {
    0%   { max-width: 0; }
    40%  { max-width: 0; }
    85%  { max-width: 50em; }
    100% { max-width: 0; }
}
@keyframes revealsymbol {
    0%   { max-width: 0; }
    50%  { max-width: 0; }
    80%  { max-width: 50em; opacity:1; }
    100% { max-width: 50em; opacity:1; }
}

@keyframes revealintromobile {
    0%   { max-height: 0; }
    40%  { max-height: 0; }
    85%  { max-height: 15em; }
    100% { max-height: 0; }
}
@keyframes revealsymbolmobile {
    0%   { max-height: 0; }
    50%  { max-height: 0; }
    80%  { max-height: 50em; opacity:1; }
    100% { max-height: 50em; opacity:1; }
}


/* Small devices (landscape phones, 576px and up) */
@media (max-width: 575px) {
    section.hero .texts {
        width: 90% !important;
    }
}

@media (min-width: 576px) {
}

/* Medium devices (tablets, 768px and up) */
@media (max-width: 767px) {
}
@media (min-width: 768px) {
}

/* Large devices (desktops, 992px and up) */
@media (max-width: 991px) {
    section.hero .texts {
        width: 75%;
    }
    section.hero .texts .intro {
        /*animation: revealmobile 5s 1;
        max-height: 0;
        width: 100%;*/
    }
	section.hero .symbol .holder {
	    width: 60vw;
	    max-height: 75vh;
	}
	section.hero .texts .intro {
	    max-height: 0;
	    animation: revealintromobile 6s 1;
	}
	section.hero .texts .symbol {
	    max-height: 0;
	    animation: revealsymbolmobile 14s 1;
	    opacity: 0;
	    animation-timing-function: ease-in-out;
	}
    section.hero .symbol .holder {
        margin-top: 1.2rem;
    }
}

@media (min-width: 992px) {
	section.hero .texts {
        white-space: nowrap; 
    }
    section.hero .texts .title,
    section.hero .texts .intro {
        white-space: nowrap;
    }
	section.hero .texts .reveal {
	    max-width: 0;
	    /*animation: reveal 5s 1;*/
	}
	section.hero .texts .intro {
	    max-width: 0;
	    animation: revealintro 6s 1;
	    margin-left: 0.25em;
	}
	section.hero .texts .symbol {
	    max-width: 0;
	    animation: revealsymbol 14s 1;
	    opacity: 0;
	}
	section.hero .symbol .holder {
	    margin-left: 2rem;
	}
}

/* Extra large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {
}
