body {
	/*background-position-y: -1000px;*/
	background-color: #000;
	background-image: url("../img/map.jpg")
}


@font-face {
	font-display: swap;
	font-family: 'Sour Gummy';
	font-style: normal;
	font-weight: 400;
	src: url('../sour-gummy-v2-latin-regular.woff2') format('woff2')
}

#donate {
	cursor: pointer;
	padding: 5px;
	font-family: 'Sour Gummy';
	font-weight: 500;
	font-size: 22px;
	color: #ab9ff2;
	display: none
}

#phantom {
	vertical-align: middle;
	transition: transform .2s ease-in-out;
	padding: 10px 10px 10px 5px;
	height: 45px
}

#phantom:hover {
	transform: scale(1.3)
}

html {
	font-family: sans-serif;
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%
}

body {
	margin: 0
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
	display: block
}

audio,
canvas,
progress,
video {
	display: inline-block;
	vertical-align: baseline
}

audio:not([controls]) {
	display: none;
	height: 0
}

[hidden],
template {
	display: none
}

a {
	background-color: rgba(0, 0, 0, 0)
}

a:active,
a:hover {
	outline: 0
}

abbr[title] {
	border-bottom: 1px dotted
}

b,
strong {
	font-weight: 700
}

dfn {
	font-style: italic
}

h1 {
	font-size: 2em;
	margin: .67em 0
}

mark {
	background: #ff0;
	color: #000
}

small {
	font-size: 80%
}

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline
}

sup {
	top: -.5em
}

sub {
	bottom: -.25em
}

img {
	border: 0
}

svg:not(:root) {
	overflow: hidden
}

figure {
	margin: 1em 40px
}

hr {
	box-sizing: content-box;
	height: 0
}

pre {
	overflow: auto
}

code,
kbd,
pre,
samp {
	font-family: monospace, monospace;
	font-size: 1em
}

button,
input,
optgroup,
select,
textarea {
	color: inherit;
	font: inherit;
	margin: 0
}

button {
	overflow: visible
}

button,
select {
	text-transform: none
}

button,
html input[type=button],
input[type=reset],
input[type=submit] {
	-webkit-appearance: button;
	cursor: pointer
}

button[disabled],
html input[disabled] {
	cursor: default
}

button::-moz-focus-inner,
input::-moz-focus-inner {
	border: 0;
	padding: 0
}

input {
	line-height: normal
}

input[type=checkbox],
input[type=radio] {
	box-sizing: border-box;
	padding: 0
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
	height: auto
}

input[type=search] {
	-webkit-appearance: textfield;
	box-sizing: content-box
}

input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-decoration {
	-webkit-appearance: none
}

fieldset {
	border: 1px solid silver;
	margin: 0 2px;
	padding: .35em .625em .75em
}

legend {
	border: 0;
	padding: 0
}

textarea {
	overflow: auto
}

optgroup {
	font-weight: 700
}

table {
	border-collapse: collapse;
	border-spacing: 0
}

td,
th {
	padding: 0
}

.animated {
	animation-duration: 1s;
	animation-fill-mode: both
}

.animated.infinite {
	animation-iteration-count: infinite
}

.animated.hinge {
	animation-duration: 2s
}

.animated.bounceIn,
.animated.bounceOut {
	animation-duration: .75s
}

.animated.flipOutX,
.animated.flipOutY {
	animation-duration: .75s
}

@keyframes bounce {

	0%,
	100%,
	20%,
	53%,
	80% {
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
		transform: translate3d(0, 0, 0)
	}

	40%,
	43% {
		animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
		transform: translate3d(0, -30px, 0)
	}

	70% {
		animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
		transform: translate3d(0, -15px, 0)
	}

	90% {
		transform: translate3d(0, -4px, 0)
	}
}

.bounce {
	animation-name: bounce;
	-ms-transform-origin: center bottom;
	transform-origin: center bottom
}

@keyframes flash {

	0%,
	100%,
	50% {
		opacity: 1
	}

	25%,
	75% {
		opacity: 0
	}
}

.flash {
	animation-name: flash
}

@keyframes pulse {
	0% {
		transform: scale3d(1, 1, 1)
	}

	50% {
		transform: scale3d(1.05, 1.05, 1.05)
	}

	100% {
		transform: scale3d(1, 1, 1)
	}
}

.pulse {
	animation-name: pulse
}

@keyframes rubberBand {
	0% {
		transform: scale3d(1, 1, 1)
	}

	30% {
		transform: scale3d(1.25, .75, 1)
	}

	40% {
		transform: scale3d(.75, 1.25, 1)
	}

	50% {
		transform: scale3d(1.15, .85, 1)
	}

	65% {
		transform: scale3d(.95, 1.05, 1)
	}

	75% {
		transform: scale3d(1.05, .95, 1)
	}

	100% {
		transform: scale3d(1, 1, 1)
	}
}

.rubberBand {
	animation-name: rubberBand
}

@keyframes shake {

	0%,
	100% {
		transform: translate3d(0, 0, 0)
	}

	10%,
	30%,
	50%,
	70%,
	90% {
		transform: translate3d(-10px, 0, 0)
	}

	20%,
	40%,
	60%,
	80% {
		transform: translate3d(10px, 0, 0)
	}
}

.shake {
	animation-name: shake
}

@keyframes swing {
	20% {
		transform: rotate3d(0, 0, 1, 15deg)
	}

	40% {
		transform: rotate3d(0, 0, 1, -10deg)
	}

	60% {
		transform: rotate3d(0, 0, 1, 5deg)
	}

	80% {
		transform: rotate3d(0, 0, 1, -5deg)
	}

	100% {
		transform: rotate3d(0, 0, 1, 0deg)
	}
}

.swing {
	-ms-transform-origin: top center;
	transform-origin: top center;
	animation-name: swing
}

@keyframes tada {
	0% {
		transform: scale3d(1, 1, 1)
	}

	10%,
	20% {
		transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)
	}

	30%,
	50%,
	70%,
	90% {
		transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)
	}

	40%,
	60%,
	80% {
		transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)
	}

	100% {
		transform: scale3d(1, 1, 1)
	}
}

.tada {
	animation-name: tada
}

@keyframes wobble {
	0% {
		transform: none
	}

	15% {
		transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)
	}

	30% {
		transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)
	}

	45% {
		transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)
	}

	60% {
		transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)
	}

	75% {
		transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)
	}

	100% {
		transform: none
	}
}

.wobble {
	animation-name: wobble
}

@keyframes jello {
	11.1% {
		transform: none
	}

	22.2% {
		transform: skewX(-12.5deg) skewY(-12.5deg)
	}

	33.3% {
		transform: skewX(6.25deg) skewY(6.25deg)
	}

	44.4% {
		transform: skewX(-3.125deg) skewY(-3.125deg)
	}

	55.5% {
		transform: skewX(1.5625deg) skewY(1.5625deg)
	}

	66.6% {
		transform: skewX(-.78125deg) skewY(-.78125deg)
	}

	77.7% {
		transform: skewX(.390625deg) skewY(.390625deg)
	}

	88.8% {
		transform: skewX(-.1953125deg) skewY(-.1953125deg)
	}

	100% {
		transform: none
	}
}

.jello {
	animation-name: jello;
	-ms-transform-origin: center;
	transform-origin: center
}

@keyframes bounceIn {

	0%,
	100%,
	20%,
	40%,
	60%,
	80% {
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
	}

	0% {
		opacity: 0;
		transform: scale3d(.3, .3, .3)
	}

	20% {
		transform: scale3d(1.1, 1.1, 1.1)
	}

	40% {
		transform: scale3d(.9, .9, .9)
	}

	60% {
		opacity: 1;
		transform: scale3d(1.03, 1.03, 1.03)
	}

	80% {
		transform: scale3d(.97, .97, .97)
	}

	100% {
		opacity: 1;
		transform: scale3d(1, 1, 1)
	}
}

.bounceIn {
	animation-name: bounceIn
}

@keyframes bounceInDown {

	0%,
	100%,
	60%,
	75%,
	90% {
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
	}

	0% {
		opacity: 0;
		transform: translate3d(0, -3000px, 0)
	}

	60% {
		opacity: 1;
		transform: translate3d(0, 25px, 0)
	}

	75% {
		transform: translate3d(0, -10px, 0)
	}

	90% {
		transform: translate3d(0, 5px, 0)
	}

	100% {
		transform: none
	}
}

.bounceInDown {
	animation-name: bounceInDown
}

@keyframes bounceInLeft {

	0%,
	100%,
	60%,
	75%,
	90% {
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
	}

	0% {
		opacity: 0;
		transform: translate3d(-3000px, 0, 0)
	}

	60% {
		opacity: 1;
		transform: translate3d(25px, 0, 0)
	}

	75% {
		transform: translate3d(-10px, 0, 0)
	}

	90% {
		transform: translate3d(5px, 0, 0)
	}

	100% {
		transform: none
	}
}

.bounceInLeft {
	animation-name: bounceInLeft
}

@keyframes bounceInRight {

	0%,
	100%,
	60%,
	75%,
	90% {
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
	}

	0% {
		opacity: 0;
		transform: translate3d(3000px, 0, 0)
	}

	60% {
		opacity: 1;
		transform: translate3d(-25px, 0, 0)
	}

	75% {
		transform: translate3d(10px, 0, 0)
	}

	90% {
		transform: translate3d(-5px, 0, 0)
	}

	100% {
		transform: none
	}
}

.bounceInRight {
	animation-name: bounceInRight
}

@keyframes bounceInUp {

	0%,
	100%,
	60%,
	75%,
	90% {
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
	}

	0% {
		opacity: 0;
		transform: translate3d(0, 3000px, 0)
	}

	60% {
		opacity: 1;
		transform: translate3d(0, -20px, 0)
	}

	75% {
		transform: translate3d(0, 10px, 0)
	}

	90% {
		transform: translate3d(0, -5px, 0)
	}

	100% {
		transform: translate3d(0, 0, 0)
	}
}

.bounceInUp {
	animation-name: bounceInUp
}

@keyframes bounceOut {
	20% {
		transform: scale3d(.9, .9, .9)
	}

	50%,
	55% {
		opacity: 1;
		transform: scale3d(1.1, 1.1, 1.1)
	}

	100% {
		opacity: 0;
		transform: scale3d(.3, .3, .3)
	}
}

.bounceOut {
	animation-name: bounceOut
}

@keyframes bounceOutDown {
	20% {
		transform: translate3d(0, 10px, 0)
	}

	40%,
	45% {
		opacity: 1;
		transform: translate3d(0, -20px, 0)
	}

	100% {
		opacity: 0;
		transform: translate3d(0, 2000px, 0)
	}
}

.bounceOutDown {
	animation-name: bounceOutDown
}

@keyframes bounceOutLeft {
	20% {
		opacity: 1;
		transform: translate3d(20px, 0, 0)
	}

	100% {
		opacity: 0;
		transform: translate3d(-2000px, 0, 0)
	}
}

.bounceOutLeft {
	animation-name: bounceOutLeft
}

@keyframes bounceOutRight {
	20% {
		opacity: 1;
		transform: translate3d(-20px, 0, 0)
	}

	100% {
		opacity: 0;
		transform: translate3d(2000px, 0, 0)
	}
}

.bounceOutRight {
	animation-name: bounceOutRight
}

@keyframes bounceOutUp {
	20% {
		transform: translate3d(0, -10px, 0)
	}

	40%,
	45% {
		opacity: 1;
		transform: translate3d(0, 20px, 0)
	}

	100% {
		opacity: 0;
		transform: translate3d(0, -2000px, 0)
	}
}

.bounceOutUp {
	animation-name: bounceOutUp
}

@keyframes fadeIn {
	0% {
		opacity: 0
	}

	100% {
		opacity: 1
	}
}

.fadeIn {
	animation-name: fadeIn
}

@keyframes fadeInDown {
	0% {
		opacity: 0;
		transform: translate3d(0, -100%, 0)
	}

	100% {
		opacity: 1;
		transform: none
	}
}

.fadeInDown {
	animation-name: fadeInDown
}

@keyframes fadeInDownBig {
	0% {
		opacity: 0;
		transform: translate3d(0, -2000px, 0)
	}

	100% {
		opacity: 1;
		transform: none
	}
}

.fadeInDownBig {
	animation-name: fadeInDownBig
}

@keyframes fadeInLeft {
	0% {
		opacity: 0;
		transform: translate3d(-100%, 0, 0)
	}

	100% {
		opacity: 1;
		transform: none
	}
}

.fadeInLeft {
	animation-name: fadeInLeft
}

@keyframes fadeInLeftBig {
	0% {
		opacity: 0;
		transform: translate3d(-2000px, 0, 0)
	}

	100% {
		opacity: 1;
		transform: none
	}
}

.fadeInLeftBig {
	animation-name: fadeInLeftBig
}

@keyframes fadeInRight {
	0% {
		opacity: 0;
		transform: translate3d(100%, 0, 0)
	}

	100% {
		opacity: 1;
		transform: none
	}
}

.fadeInRight {
	animation-name: fadeInRight
}

@keyframes fadeInRightBig {
	0% {
		opacity: 0;
		transform: translate3d(2000px, 0, 0)
	}

	100% {
		opacity: 1;
		transform: none
	}
}

.fadeInRightBig {
	animation-name: fadeInRightBig
}

@keyframes fadeInUp {
	0% {
		opacity: 0;
		transform: translate3d(0, 100%, 0)
	}

	100% {
		opacity: 1;
		transform: none
	}
}

.fadeInUp {
	animation-name: fadeInUp
}

@keyframes fadeInUpBig {
	0% {
		opacity: 0;
		transform: translate3d(0, 2000px, 0)
	}

	100% {
		opacity: 1;
		transform: none
	}
}

.fadeInUpBig {
	animation-name: fadeInUpBig
}

@keyframes fadeOut {
	0% {
		opacity: 1
	}

	100% {
		opacity: 0
	}
}

.fadeOut {
	animation-name: fadeOut
}

@keyframes fadeOutDown {
	0% {
		opacity: 1
	}

	100% {
		opacity: 0;
		transform: translate3d(0, 100%, 0)
	}
}

.fadeOutDown {
	animation-name: fadeOutDown
}

@keyframes fadeOutDownBig {
	0% {
		opacity: 1
	}

	100% {
		opacity: 0;
		transform: translate3d(0, 2000px, 0)
	}
}

.fadeOutDownBig {
	animation-name: fadeOutDownBig
}

@keyframes fadeOutLeft {
	0% {
		opacity: 1
	}

	100% {
		opacity: 0;
		transform: translate3d(-100%, 0, 0)
	}
}

.fadeOutLeft {
	animation-name: fadeOutLeft
}

@keyframes fadeOutLeftBig {
	0% {
		opacity: 1
	}

	100% {
		opacity: 0;
		transform: translate3d(-2000px, 0, 0)
	}
}

.fadeOutLeftBig {
	animation-name: fadeOutLeftBig
}

@keyframes fadeOutRight {
	0% {
		opacity: 1
	}

	100% {
		opacity: 0;
		transform: translate3d(100%, 0, 0)
	}
}

.fadeOutRight {
	animation-name: fadeOutRight
}

@keyframes fadeOutRightBig {
	0% {
		opacity: 1
	}

	100% {
		opacity: 0;
		transform: translate3d(2000px, 0, 0)
	}
}

.fadeOutRightBig {
	animation-name: fadeOutRightBig
}

@keyframes fadeOutUp {
	0% {
		opacity: 1
	}

	100% {
		opacity: 0;
		transform: translate3d(0, -100%, 0)
	}
}

.fadeOutUp {
	animation-name: fadeOutUp
}

@keyframes fadeOutUpBig {
	0% {
		opacity: 1
	}

	100% {
		opacity: 0;
		transform: translate3d(0, -2000px, 0)
	}
}

.fadeOutUpBig {
	animation-name: fadeOutUpBig
}

@keyframes flip {
	0% {
		transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
		animation-timing-function: ease-out
	}

	40% {
		transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
		animation-timing-function: ease-out
	}

	50% {
		transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
		animation-timing-function: ease-in
	}

	80% {
		transform: perspective(400px) scale3d(.95, .95, .95);
		animation-timing-function: ease-in
	}

	100% {
		transform: perspective(400px);
		animation-timing-function: ease-in
	}
}

.animated.flip {
	backface-visibility: visible;
	animation-name: flip
}

@keyframes flipInX {
	0% {
		transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
		animation-timing-function: ease-in;
		opacity: 0
	}

	40% {
		transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
		animation-timing-function: ease-in
	}

	60% {
		transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
		opacity: 1
	}

	80% {
		transform: perspective(400px) rotate3d(1, 0, 0, -5deg)
	}

	100% {
		transform: perspective(400px)
	}
}

.flipInX {
	backface-visibility: visible !important;
	animation-name: flipInX
}

@keyframes flipInY {
	0% {
		transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
		animation-timing-function: ease-in;
		opacity: 0
	}

	40% {
		transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
		animation-timing-function: ease-in
	}

	60% {
		transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
		opacity: 1
	}

	80% {
		transform: perspective(400px) rotate3d(0, 1, 0, -5deg)
	}

	100% {
		transform: perspective(400px)
	}
}

.flipInY {
	backface-visibility: visible !important;
	animation-name: flipInY
}

@keyframes flipOutX {
	0% {
		transform: perspective(400px)
	}

	30% {
		transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
		opacity: 1
	}

	100% {
		transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
		opacity: 0
	}
}

.flipOutX {
	animation-name: flipOutX;
	backface-visibility: visible !important
}

@keyframes flipOutY {
	0% {
		transform: perspective(400px)
	}

	30% {
		transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
		opacity: 1
	}

	100% {
		transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
		opacity: 0
	}
}

.flipOutY {
	backface-visibility: visible !important;
	animation-name: flipOutY
}

@keyframes lightSpeedIn {
	0% {
		transform: translate3d(100%, 0, 0) skewX(-30deg);
		opacity: 0
	}

	60% {
		transform: skewX(20deg);
		opacity: 1
	}

	80% {
		transform: skewX(-5deg);
		opacity: 1
	}

	100% {
		transform: none;
		opacity: 1
	}
}

.lightSpeedIn {
	animation-name: lightSpeedIn;
	animation-timing-function: ease-out
}

@keyframes lightSpeedOut {
	0% {
		opacity: 1
	}

	100% {
		transform: translate3d(100%, 0, 0) skewX(30deg);
		opacity: 0
	}
}

.lightSpeedOut {
	animation-name: lightSpeedOut;
	animation-timing-function: ease-in
}

@keyframes rotateIn {
	0% {
		transform-origin: center;
		transform: rotate3d(0, 0, 1, -200deg);
		opacity: 0
	}

	100% {
		transform-origin: center;
		transform: none;
		opacity: 1
	}
}

.rotateIn {
	animation-name: rotateIn
}

@keyframes rotateInDownLeft {
	0% {
		transform-origin: left bottom;
		transform: rotate3d(0, 0, 1, -45deg);
		opacity: 0
	}

	100% {
		transform-origin: left bottom;
		transform: none;
		opacity: 1
	}
}

.rotateInDownLeft {
	animation-name: rotateInDownLeft
}

@keyframes rotateInDownRight {
	0% {
		transform-origin: right bottom;
		transform: rotate3d(0, 0, 1, 45deg);
		opacity: 0
	}

	100% {
		transform-origin: right bottom;
		transform: none;
		opacity: 1
	}
}

.rotateInDownRight {
	animation-name: rotateInDownRight
}

@keyframes rotateInUpLeft {
	0% {
		transform-origin: left bottom;
		transform: rotate3d(0, 0, 1, 45deg);
		opacity: 0
	}

	100% {
		transform-origin: left bottom;
		transform: none;
		opacity: 1
	}
}

.rotateInUpLeft {
	animation-name: rotateInUpLeft
}

@keyframes rotateInUpRight {
	0% {
		transform-origin: right bottom;
		transform: rotate3d(0, 0, 1, -90deg);
		opacity: 0
	}

	100% {
		transform-origin: right bottom;
		transform: none;
		opacity: 1
	}
}

.rotateInUpRight {
	animation-name: rotateInUpRight
}

@keyframes rotateOut {
	0% {
		transform-origin: center;
		opacity: 1
	}

	100% {
		transform-origin: center;
		transform: rotate3d(0, 0, 1, 200deg);
		opacity: 0
	}
}

.rotateOut {
	animation-name: rotateOut
}

@keyframes rotateOutDownLeft {
	0% {
		transform-origin: left bottom;
		opacity: 1
	}

	100% {
		transform-origin: left bottom;
		transform: rotate3d(0, 0, 1, 45deg);
		opacity: 0
	}
}

.rotateOutDownLeft {
	animation-name: rotateOutDownLeft
}

@keyframes rotateOutDownRight {
	0% {
		transform-origin: right bottom;
		opacity: 1
	}

	100% {
		transform-origin: right bottom;
		transform: rotate3d(0, 0, 1, -45deg);
		opacity: 0
	}
}

.rotateOutDownRight {
	animation-name: rotateOutDownRight
}

@keyframes rotateOutUpLeft {
	0% {
		transform-origin: left bottom;
		opacity: 1
	}

	100% {
		transform-origin: left bottom;
		transform: rotate3d(0, 0, 1, -45deg);
		opacity: 0
	}
}

.rotateOutUpLeft {
	animation-name: rotateOutUpLeft
}

@keyframes rotateOutUpRight {
	0% {
		transform-origin: right bottom;
		opacity: 1
	}

	100% {
		transform-origin: right bottom;
		transform: rotate3d(0, 0, 1, 90deg);
		opacity: 0
	}
}

.rotateOutUpRight {
	animation-name: rotateOutUpRight
}

@keyframes hinge {
	0% {
		transform-origin: top left;
		animation-timing-function: ease-in-out
	}

	20%,
	60% {
		transform: rotate3d(0, 0, 1, 80deg);
		transform-origin: top left;
		animation-timing-function: ease-in-out
	}

	40%,
	80% {
		transform: rotate3d(0, 0, 1, 60deg);
		transform-origin: top left;
		animation-timing-function: ease-in-out;
		opacity: 1
	}

	100% {
		transform: translate3d(0, 700px, 0);
		opacity: 0
	}
}

.hinge {
	animation-name: hinge
}

@keyframes rollIn {
	0% {
		opacity: 0;
		transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)
	}

	100% {
		opacity: 1;
		transform: none
	}
}

.rollIn {
	animation-name: rollIn
}

@keyframes rollOut {
	0% {
		opacity: 1
	}

	100% {
		opacity: 0;
		transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)
	}
}

.rollOut {
	animation-name: rollOut
}

@keyframes zoomIn {
	0% {
		opacity: 0;
		transform: scale3d(.3, .3, .3)
	}

	50% {
		opacity: 1
	}
}

.zoomIn {
	animation-name: zoomIn
}

@keyframes zoomInDown {
	0% {
		opacity: 0;
		transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
		animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
	}

	60% {
		opacity: 1;
		transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
		animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
	}
}

.zoomInDown {
	animation-name: zoomInDown
}

@keyframes zoomInLeft {
	0% {
		opacity: 0;
		transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
		animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
	}

	60% {
		opacity: 1;
		transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
		animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
	}
}

.zoomInLeft {
	animation-name: zoomInLeft
}

@keyframes zoomInRight {
	0% {
		opacity: 0;
		transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
		animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
	}

	60% {
		opacity: 1;
		transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
		animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
	}
}

.zoomInRight {
	animation-name: zoomInRight
}

@keyframes zoomInUp {
	0% {
		opacity: 0;
		transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
		animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
	}

	60% {
		opacity: 1;
		transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
		animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
	}
}

.zoomInUp {
	animation-name: zoomInUp
}

@keyframes zoomOut {
	0% {
		opacity: 1
	}

	50% {
		opacity: 0;
		transform: scale3d(.3, .3, .3)
	}

	100% {
		opacity: 0
	}
}

.zoomOut {
	animation-name: zoomOut
}

@keyframes zoomOutDown {
	40% {
		opacity: 1;
		transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
		animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
	}

	100% {
		opacity: 0;
		transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
		transform-origin: center bottom;
		animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
	}
}

.zoomOutDown {
	animation-name: zoomOutDown
}

@keyframes zoomOutLeft {
	40% {
		opacity: 1;
		transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0)
	}

	100% {
		opacity: 0;
		transform: scale(.1) translate3d(-2000px, 0, 0);
		transform-origin: left center
	}
}

.zoomOutLeft {
	animation-name: zoomOutLeft
}

@keyframes zoomOutRight {
	40% {
		opacity: 1;
		transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0)
	}

	100% {
		opacity: 0;
		transform: scale(.1) translate3d(2000px, 0, 0);
		transform-origin: right center
	}
}

.zoomOutRight {
	animation-name: zoomOutRight
}

@keyframes zoomOutUp {
	40% {
		opacity: 1;
		transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
		animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
	}

	100% {
		opacity: 0;
		transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
		transform-origin: center bottom;
		animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1)
	}
}

.zoomOutUp {
	animation-name: zoomOutUp
}

@keyframes slideInDown {
	0% {
		transform: translate3d(0, -100%, 0);
		visibility: visible
	}

	100% {
		transform: translate3d(0, 0, 0)
	}
}

.slideInDown {
	animation-name: slideInDown
}

@keyframes slideInLeft {
	0% {
		transform: translate3d(-100%, 0, 0);
		visibility: visible
	}

	100% {
		transform: translate3d(0, 0, 0)
	}
}

.slideInLeft {
	animation-name: slideInLeft
}

@keyframes slideInRight {
	0% {
		transform: translate3d(100%, 0, 0);
		visibility: visible
	}

	100% {
		transform: translate3d(0, 0, 0)
	}
}

.slideInRight {
	animation-name: slideInRight
}

@keyframes slideInUp {
	0% {
		transform: translate3d(0, 100%, 0);
		visibility: visible
	}

	100% {
		transform: translate3d(0, 0, 0)
	}
}

.slideInUp {
	animation-name: slideInUp
}

@keyframes slideOutDown {
	0% {
		transform: translate3d(0, 0, 0)
	}

	100% {
		visibility: hidden;
		transform: translate3d(0, 100%, 0)
	}
}

.slideOutDown {
	animation-name: slideOutDown
}

@keyframes slideOutLeft {
	0% {
		transform: translate3d(0, 0, 0)
	}

	100% {
		visibility: hidden;
		transform: translate3d(-100%, 0, 0)
	}
}

.slideOutLeft {
	animation-name: slideOutLeft
}

@keyframes slideOutRight {
	0% {
		transform: translate3d(0, 0, 0)
	}

	100% {
		visibility: hidden;
		transform: translate3d(100%, 0, 0)
	}
}

.slideOutRight {
	animation-name: slideOutRight
}

@keyframes slideOutUp {
	0% {
		transform: translate3d(0, 0, 0)
	}

	100% {
		visibility: hidden;
		transform: translate3d(0, -100%, 0)
	}
}

.slideOutUp {
	animation-name: slideOutUp
}

*,
:after,
:before {
	margin: 0;
	padding: 0;
	box-sizing: border-box
}

body,
html,
main {
	width: 100%;
	max-width: 100%;
	min-height: 100%;
	min-height: 100vh;
	height: auto
}

body {
	overflow-x: hidden;
	overflow-y: auto;
	background: #1d3247;
	webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-overflow-scrolling: touch;
	-webkit-backface-visibility: hidden !important;
	font-feature-settings: "kern", "liga";
	width: 100%;
	position: relative;
	z-index: 0
}

.body--frozen {
	overflow: hidden
}

main {
	position: relative;
	z-index: 1
}

main section#landing {
	background-repeat-y: none;
	background-image: url("../img/bg.jpg");
	height: 100vh;
	min-height: 600px
}

@media only screen and (min-height:700px) {
	main section#landing {
		min-height: 800px
	}
}

main section {
	min-height: 100vh;
	height: 100%;
	position: relative;
	width: 100%;
	background-position: top center;
	background-repeat: no-repeat;
	background-size: cover;
	background-attachment: fixed
}

@media only screen and (min-width:34rem) {
	main section {
		height: 100vh;
		min-height: 800px
	}
}

@media only screen and (min-width:75rem)and (min-height:700px) {
	main section {
		overflow: hidden
	}
}

@media only screen and (min-width:75rem)and (min-height:700px) {
	main nav {
		display: block
	}
}

ul {
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
	display: inline-block
}

ul li {
	display: inline-block;
	margin: 0 10px
}

img {
	width: auto;
	max-width: 100%;
	height: auto !important
}

:focus {
	outline: 0 !important
}

::selection {
	color: #fff;
	background: rgba(31, 20, 47, .99)
}

input::-webkit-input-placeholder {
	color: rgba(255, 255, 255, .8)
}

input:active::-webkit-input-placeholder,
input:focus::-webkit-input-placeholder {
	color: rgba(255, 255, 255, .2)
}

input::-moz-placeholder {
	color: rgba(255, 255, 255, .8)
}

input:active::-moz-placeholder,
input:focus::-moz-placeholder {
	color: rgba(255, 255, 255, .2)
}

input:-ms-input-placeholder {
	color: rgba(255, 255, 255, .8)
}

input:active::-ms-input-placeholder,
input:focus::-ms-input-placeholder {
	color: rgba(255, 255, 255, .2)
}

a {
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	position: relative;
	display: inline-block
}

a.underline::after {
	width: 100%;
	content: "";
	display: block;
	height: 2px;
	background: #fff;
	position: relative;
	top: 5px;
	opacity: 0;
	transition: opacity .5s ease, top .3s ease, background .4s ease
}

a:focus,
a:hover {
	color: #f05a5d
}

a.underline:focus::after,
a.underline:hover::after {
	top: -1px;
	opacity: 1;
	background: #f05a5d
}

a.underline--active::after {
	top: -1px;
	opacity: 1;
	background: #fff
}

.btn,
.btn::after,
.btn::before,
a,
svg,
svg g {
	transition: all .4s ease
}

.btn {
	cursor: pointer;
	width: 180px;
	display: inline-block;
	margin: .5em .1em;
	border: 2px solid;
	vertical-align: middle;
	position: relative;
	z-index: 1;
	-webkit-backface-visibility: hidden;
	-moz-osx-font-smoothing: grayscale;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 3px;
	text-transform: uppercase;
	padding: .75rem 1rem;
	color: #fff;
	overflow: hidden;
	transition: border-color .3s ease, color .5s ease, background-color .6s ease, all .6s ease
}

@media only screen and (min-width:66rem) {
	.btn {
		font-size: .889rem
	}
}

.btn:focus,
.btn:hover {
	background-color: #fff;
	border-color: #fff;
	color: #1d3247
}

.btn-secondary {
	color: #1d3247;
	border-color: #ccc;
	background: rgba(0, 0, 0, 0)
}

.btn-secondary:focus,
.btn-secondary:hover {
	color: #fff;
	border-color: #1d3247;
	background: #1d3247
}

.or {
	display: block;
	font-family: proxima-nova, Open Sans, Arial, sans-serif;
	font-style: italic;
	color: #fff;
	font-size: 1rem;
	margin-top: .5rem;
	margin-bottom: .5rem
}

.or::after,
.or::before {
	content: "";
	width: 70px;
	position: relative;
	display: inline-block;
	height: 2px;
	bottom: 3px;
	background: rgba(255, 255, 255, .3)
}

.or::before {
	margin-right: .75rem
}

.or::after {
	margin-left: .75rem
}

.midnightHeader,
.midnightInner,
nav {
	width: 100%;
	height: 100%;
	overflow: hidden !important
}

nav {
	pointer-events: none;
	position: fixed;
	z-index: 9999;
	display: none
}

.midnightInner {
	position: relative
}

.nav__list {
	width: 50px;
	position: absolute;
	right: 0;
	top: 45%
}

.nav__element {
	pointer-events: auto;
	display: block;
	position: relative;
	height: 30px
}

.nav__element::after {
	content: "";
	position: absolute;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	border: 2px solid #fff;
	transition: all .4s ease
}

.nav__element.nav__element--current:after,
.nav__element:focus:after,
.nav__element:hover:after {
	background: #fff
}

.nav--black .nav__element::after {
	border: 2px solid #1d3247 !important
}

.nav--black .nav__element.nav__element--current:after,
.nav--black .nav__element:focus:after,
.nav--black .nav__element:hover:after {
	background: #1d3247 !important
}

.nav__element:focus::after {
	background: #f05a5d;
	box-shadow: 0 0 20px #f05a5d
}

.nav--black .nav__element:focus::after {
	background: #fff !important;
	box-shadow: 0 0 20px #fff !important
}

.nav--flags {
	position: absolute;
	top: 23px;
	right: 60px;
	width: initial;
	height: initial;
	display: block;
	clear: both;
	overflow: visible !important;
	pointer-events: auto;
	transition: opacity .3s ease
}

.body--frozen .nav--flags {
	opacity: 0;
	visibility: hidden
}

.nav__switch {
	position: relative;
	outline: 0;
	appearance: none;
	-webkit-perspective: 1000;
	-webkit-backface-visibility: hidden;
	-webkit-transform: translate3d(0, 0, 0);
	-webkit-tap-highlight-color: transparent;
	width: 60px;
	height: 30px;
	margin: 5px auto
}

.nav__switch:after,
.nav__switch:before {
	position: absolute;
	color: #fff;
	font-family: proxima-nova, Open Sans, Arial, sans-serif;
	top: 8px;
	font-size: .8rem
}

.nav__switch:before {
	left: -24px;
	content: attr(data-first-lang)
}

.nav__switch:after {
	right: -22px;
	content: attr(data-second-lang)
}

.nav__input {
	display: none
}

.nav__input+.nav__label {
	display: block;
	position: absolute;
	cursor: pointer;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;
	width: 60px
}

.nav__input+.nav__label:after,
.nav__input+.nav__label:before {
	content: "";
	position: absolute;
	border-radius: 30px;
	transition: all .25s ease-in-out
}

.nav__input+.nav__label:before {
	height: 30px;
	width: 60px;
	background-color: rgba(255, 255, 255, .1)
}

.nav__input+.nav__label:after {
	top: 3px;
	left: 3px;
	border: 2px solid #fff;
	width: 24px;
	height: 24px;
	background: #eb3 url("../img/flags.jpg") -26px center;
	-ms-transform: translate(30px, 0);
	transform: translate(30px, 0);
	-webkit-transform: translate(30px, 0)
}

.nav__input:checked+.nav__label:after {
	background: #000233 url("../img/flags.jpg") -2px center;
	transition: all .25s ease-in-out;
	-ms-transform: translate(0, 0);
	transform: translate(0, 0)
}

.nav__input:checked+.nav__label:before {
	background-color: rgba(255, 255, 255, .1)
}

#designer {
	background-image: url("../img/bg-designer.jpg")
}

#developer {
	background-image: url("../img/bg-developer.jpg")
}

.container {
	max-width: 1170px;
	margin-left: auto;
	margin-right: auto
}

.container:after {
	content: " ";
	display: block;
	clear: both
}

.container--small {
	width: 86%;
	max-width: 36rem;
	margin: 0 auto
}

@media only screen and (min-width:66rem) {
	.container--small {
		width: 80%
	}
}

@media only screen and (min-width:100rem) {
	.container--small {
		width: 90%
	}
}

.container--center {
	height: auto;
	-ms-flex-item-align: center;
	-ms-grid-row-align: center;
	align-self: center
}

.split {
	display: -ms-flexbox;
	display: flex;
	min-height: 100%;
	height: auto;
	width: 100%;
	position: relative;
	padding: 5rem 0
}

@media only screen and (min-width:34rem) {
	.split {
		padding: 6rem 0
	}
}

@media only screen and (min-width:66rem) {
	.split {
		height: 100vh
	}
}

@media only screen and (min-width:75rem) {
	.split {
		padding: 0;
		width: 50%;
		float: left
	}
}

.split--designer {
	background: #fff
}

@media only screen and (min-width:75rem) {
	.split--designer {
		background: rgba(255, 255, 255, .95);
		width: 50%;
		float: right
	}
}

.split--developer {
	background: #1d3247
}

@media only screen and (min-width:75rem) {
	.split--developer {
		background: rgba(20, 41, 62, .95)
	}
}

.split__ampersand {
	font-size: 19.55rem;
	font-family: merriweather, Georgia, serif;
	text-align: center;
	position: absolute;
	color: #f05a5d;
	display: none
}

@media only screen and (min-width:75rem)and (min-height:700px) {
	.split__ampersand {
		display: block
	}
}

.split--designer .split__ampersand {
	bottom: -240px;
	left: -100px;
	display: none
}

@media only screen and (min-width:75rem)and (min-height:700px) {
	.split--designer .split__ampersand {
		display: block
	}
}

.split--developer .split__ampersand {
	top: -235px;
	left: 0;
	right: 0
}

@media only screen and (min-width:75rem)and (min-height:700px) {
	.split--developer .split__ampersand {
		top: -212px;
		left: initial;
		right: -166px;
		display: block
	}
}

.split__title {
	font-weight: 700;
	color: #f05a5d
}

@media only screen and (min-width:34rem) {
	.split__title {
		font-size: 4rem
	}
}

@media only screen and (min-width:66rem) {
	.split__title {
		font-size: 4.444rem;
		letter-spacing: -1px
	}
}

@media only screen and (min-width:75rem) {
	.split__title {
		font-size: 3.555rem
	}
}

@media only screen and (min-width:100rem) {
	.split__title {
		font-size: 4.444rem
	}
}

.split__title:after {
	background: #f05a5d;
	content: "";
	display: block;
	height: 6px;
	margin: 5px 0 10px;
	max-width: 90px;
	width: 90%
}

.split--designer .smallcaps,
.split--designer blockquote>q,
.split--designer cite {
	color: #1d3247
}

.split--developer .smallcaps,
.split--developer blockquote>q,
.split--developer cite {
	color: #fff
}

.split--designer p {
	color: #777
}

.split--developer p {
	color: #ccc
}

.split p {
	max-width: 35rem
}

@media only screen and (min-width:66rem) {
	.split p {
		max-width: 31.111rem
	}
}

main {
	margin-bottom: 0
}

@media only screen and (min-width:66rem) {
	main {
		margin-bottom: 29.33rem
	}
}

@media only screen and (min-width:75rem) {
	main {
		margin-bottom: 28.44rem
	}
}

main.main--relative {
	margin-bottom: 0 !important
}

#footer {
	position: relative;
	width: 100%;
	z-index: -2;
	background: #112437
}

@media only screen and (min-width:66rem) {
	#footer {
		height: 29.33rem;
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0
	}
}

@media only screen and (min-width:75rem) {
	#footer {
		height: 28.44rem
	}
}

#footer.footer--relative {
	position: relative !important;
	height: auto !important
}

.footer {
	max-width: 1170px;
	margin-left: auto;
	margin-right: auto;
	padding: 4rem 1rem;
	text-align: center
}

.footer:after {
	content: " ";
	display: block;
	clear: both
}

@media only screen and (min-width:48rem) {
	.footer {
		padding: 4rem 0
	}
}

.footer__background {
	background: #241833 url("../img/roll.gif") no-repeat;
	background-size: cover;
	background-position: center;
	position: absolute;
	opacity: 0;
	filter: grayscale(100%) contrast(115%);
	width: 100%;
	min-height: 100%;
	height: auto;
	z-index: -1;
	transition: opacity .5s ease, transform 5s ease
}

@media only screen and (min-width:34rem) {
	.footer__background {
		display: block;
		height: 100%
	}
}

@media only screen and (min-width:48rem) {
	.footer__background {
		transform: perspective(1px) scale(1.25)
	}
}

.footer__background--active {
	opacity: .25;
	transform: perspective(1px) scale(1);
	transition: opacity .5s ease, transform 2s ease
}

.footer__title {
	color: #fff;
	font-size: 3rem;
	font-family: futura-pt, Open Sans, Arial, sans-serif;
	text-transform: none;
	border-bottom: 0
}

@media only screen and (min-width:48rem) {
	.footer__title {
		font-size: 5rem
	}
}

@media only screen and (min-width:66rem) {
	.footer__title {
		font-size: 4.444rem
	}
}

.footer__title span.merriweather {
	font-family: merriweather, Georgia, serif;
	font-size: .825em;
	font-style: italic
}

.footer__subtitle {
	font-size: 1.375rem;
	text-transform: uppercase;
	font-family: proxima-nova, Open Sans, Arial, sans-serif;
	letter-spacing: 8px;
	font-weight: 700
}

.footer__description {
	color: #ccc;
	max-width: 40rem;
	margin: 1rem auto
}

.footer__description a.underline {
	color: #f05a5d;
	margin: 0 .35rem;
	white-space: nowrap;
	line-height: 1.2
}

.footer__description a.underline::after {
	background: #f05a5d;
	line-height: 1.2
}

.footer__description span.roll {
	font-style: italic;
	cursor: help;
	border-bottom: 1px dotted #ccc
}

.footer__copyright {
	background: #0e1c2a;
	position: relative;
	padding: 2rem
}

@media only screen and (min-width:48rem) {
	.footer__copyright {
		position: absolute;
		bottom: 0;
		left: 0;
		right: 0
	}
}

@media only screen and (min-width:75rem) {
	.footer__copyright {
		padding: 1rem 0
	}
}

.footer--relative .footer__copyright {
	bottom: initial
}

.footer__row {
	max-width: 1170px;
	margin-left: auto;
	margin-right: auto
}

.footer__row:after {
	content: " ";
	display: block;
	clear: both
}

.footer__column {
	width: 100%;
	margin: 1rem 0;
	text-align: center;
	color: #938e9b;
	font-family: proxima-nova, Open Sans, Arial, sans-serif
}

@media only screen and (min-width:66rem) {
	.footer__column {
		margin: 0 0;
		width: 32.2033898305%;
		float: left;
		margin-right: 1.6949152542%
	}
}

@media only screen and (min-width:66rem) {
	.footer__column--left {
		text-align: left
	}
}

.footer__column--right {
	width: 100%;
	margin: 1rem 0
}

@media only screen and (min-width:66rem) {
	.footer__column--right {
		margin: 0 0;
		text-align: right;
		width: 32.2033898305%;
		float: right;
		margin-right: 0
	}
}

.footer__column svg {
	fill: #fff;
	max-width: 50px;
	vertical-align: middle;
	margin: 0 .5rem
}

.footer__column .heart-icon svg {
	fill: #f05a5d;
	max-width: 1rem;
	margin-left: 0;
	margin: 2px .45rem .35rem 4px
}

.footer__column p .heart-icon+a {
	display: inline;
	margin-left: .25rem
}

.footer__column a.underline.underline--fix {
	margin-bottom: .5rem
}

@media only screen and (min-width:66rem) {
	.footer__column a.underline.underline--fix {
		margin-bottom: 0
	}
}

.footer__column a svg {
	bottom: 5px;
	position: relative
}

.footer__column p {
	line-height: 1.1
}

.footer__column p>a {
	margin-left: .5rem
}

#about {
	background-color: none;
	overflow: auto;
	overflow-x: hidden;
	height: auto
}

@media only screen and (min-width:75rem) {
	#about {
		overflow: hidden
	}
}

.about {
	max-width: 1170px;
	margin-left: auto;
	margin-right: auto;
	width: 90%;
	position: relative;
	z-index: 1;
	padding: 6rem .5rem
}

.about:after {
	content: " ";
	display: block;
	clear: both
}

@media only screen and (min-width:75rem) {
	.about {
		padding: 8rem 0
	}
}

.about__profile {
	width: 100%;
	margin: 0 auto;
	position: relative;
	text-align: center
}

@media only screen and (min-width:75rem) {
	.about__profile {
		text-align: left;
		width: 49.1525423729%;
		float: left;
		margin-right: 1.6949152542%
	}
}

.about__biography {
	width: 100%;
	margin: 3rem 0;
	max-width: 50rem
}

@media only screen and (min-width:75rem) {
	.about__biography {
		margin: 0;
		width: 49.1525423729%;
		float: right;
		margin-right: 0
	}
}

.profile__name {
	color: #112437;
	font-size: 3rem;
	line-height: .9;
	margin: 0;
	padding: 0
}

@media only screen and (min-width:34rem) {
	.profile__name {
		font-size: 5rem
	}
}

@media only screen and (min-width:66rem) {
	.profile__name {
		font-size: 5.333rem
	}
}

@media only screen and (min-width:100rem) {
	.profile__name {
		font-size: 7.111em
	}
}

.profile__firstname {
	font-weight: 400
}

.profile__line {
	display: none;
	width: 150px;
	margin: .5rem;
	background: #112437;
	height: 5px;
	vertical-align: middle
}

@media only screen and (min-width:48rem) {
	.profile__line {
		display: inline-block
	}
}

.profile__role {
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 4px;
	position: relative;
	top: 100px;
	font-family: futura-pt, Open Sans, Arial, sans-serif
}

@media only screen and (min-width:34rem) {
	.profile__role {
		top: 150px
	}
}

@media only screen and (min-width:66rem) {
	.profile__role {
		top: 190px
	}
}

@media only screen and (min-width:100rem) {
	.profile__role {
		top: 240px
	}
}

.profile__role h5,
.profile__role svg {
	display: inline-block
}

.profile__role h5 {
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 3px
}

.profile__role a {
	display: inline
}

.profile__role svg {
	fill: #fff;
	max-width: 50px;
	vertical-align: middle
}

.profile__picture {
	width: 100%;
	font-size: 0;
	z-index: -1;
	max-width: 500px;
	position: relative;
	margin: auto;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0
}

@media only screen and (min-width:75rem) {
	.profile__picture {
		width: 85%;
		position: absolute
	}
}

.profile__picture img {
	box-shadow: 0 20px 50px rgba(0, 0, 0, .15)
}

.biography__title {
	font-size: 1.5rem;
	font-weight: 700;
	font-style: normal;
	letter-spacing: 4px;
	font-family: futura-pt, Open Sans, Arial, sans-serif;
	color: #112437
}

@media only screen and (min-width:66rem) {
	.biography__title {
		font-size: 1.333rem
	}
}

.biography__intro {
	font-family: merriweather, Georgia, serif;
	font-size: 1.5rem;
	margin-top: .5rem;
	font-style: italic;
	font-weight: 400;
	line-height: 1.5;
	color: #112437
}

@media only screen and (min-width:66rem) {
	.biography__intro {
		font-size: 1.333rem
	}
}

.biography__body {
	margin-top: 2rem
}

.biography__line {
	background: #112437;
	height: 3px;
	margin-top: .35rem;
	display: none
}

@media only screen and (min-width:48rem) {
	.biography__line {
		width: 23.7288135593%;
		float: left;
		margin-right: 1.6949152542%;
		display: inline-block
	}
}

.biography__text {
	color: #fff
}

@media only screen and (min-width:48rem) {
	.biography__text {
		width: 74.5762711864%;
		float: right;
		margin-right: 0
	}
}

.resume {
	background: #fff;
	padding-bottom: 7rem
}

.resume__header {
	background: #1d3247;
	padding: 3rem 0
}

.resume__container {
	width: 90%;
	margin: 0 auto;
	max-width: 900px
}

.resume__container::after,
.resume__row::after {
	content: " ";
	display: block;
	clear: both
}

@media only screen and (min-width:66rem) {
	.resume__title {
		width: 66.1016949153%;
		float: left;
		margin-right: 1.6949152542%
	}
}

.resume__title h1 {
	font-size: 3rem;
	font-weight: 400;
	font-family: futura-pt, Open Sans, Arial, sans-serif;
	color: #fff;
	margin-bottom: .25rem
}

@media only screen and (min-width:66rem) {
	.resume__title h1 {
		font-size: 4.445rem
	}
}

.resume__title h1 span {
	font-weight: 700
}

.resume__title h3 {
	color: #ccc;
	font-size: 1.2rem
}

@media only screen and (min-width:66rem) {
	.resume__title h3 {
		font-size: 1.5rem
	}
}

.resume__details {
	padding-top: 2rem
}

@media only screen and (min-width:66rem) {
	.resume__details {
		padding-top: 1rem;
		width: 32.2033898305%;
		float: right;
		margin-right: 0
	}
}

.resume__details ul li {
	display: block;
	text-align: right;
	margin: .5rem 0 0;
	line-height: 1.5;
	font-size: 1.1rem;
	color: #ccc
}

.resume__details ul li a {
	font-size: 1.1em;
	margin-top: .25rem
}

.resume__details ul.resume__social li {
	display: inline-block;
	margin: 0;
	margin-left: .5rem;
	vertical-align: middle
}

.resume__social li svg {
	width: 100%;
	max-width: 35px;
	fill: #fff;
	transition: fill .5s ease
}

.resume__social li a:focus svg,
.resume__social li a:hover svg {
	fill: #f05a5d
}

.resume-section {
	margin: 2rem 0
}

.resume-section__title {
	font-family: futura-pt, Open Sans, Arial, sans-serif;
	color: #1d3247
}

.resume-section__title {
	border-bottom-width: 2px;
	margin-bottom: 1rem
}

.resume-profile__picture {
	text-align: center;
	margin-top: 2rem
}

@media only screen and (min-width:66rem) {

	.resume-profile__picture,
	.resume-section__times {
		width: 23.7288135593%;
		float: left;
		margin-right: 1.6949152542%
	}
}

.resume-section__times h5 {
	color: #777
}

@media only screen and (min-width:66rem) {
	.resume-section__container {
		width: 74.5762711864%;
		float: right;
		margin-right: 0
	}
}

.resume-profile__picture>img {
	width: 175px;
	height: 175px;
	border-radius: 50%;
	box-shadow: -20px 20px 60px rgba(0, 0, 0, .04);
	transform: perspective(1px) translate3d(0, 0, 0) scale(.95);
	transition: all .6s ease;
	filter: grayscale(100%) contrast(110%)
}

.resume-profile__picture>img:hover {
	box-shadow: -20px 20px 60px rgba(0, 0, 0, .08);
	transform: perspective(1px) translate3d(0, 0, 0) scale(1)
}

.resume-section__container p {
	line-height: 1.5;
	margin-top: .35rem;
	font-size: 1rem;
	color: #777
}

.resume-section__container p+p {
	margin-top: 1rem
}

.resume-section__description {
	font-size: 1rem
}

.resume__row {
	margin-bottom: 3rem;
	margin-top: 2rem
}

@media only screen and (min-width:66rem) {
	.resume__row {
		margin-top: 0;
		margin-bottom: 1rem
	}
}

.resume-section__times {
	margin-bottom: .25rem
}

@media only screen and (min-width:66rem) {
	.resume-section__times {
		text-align: right
	}
}

.resume-section__subtitle,
.resume-section__times h3 {
	font-family: proxima-nova, Open Sans, Arial, sans-serif;
	font-size: 1.3rem;
	color: #1d3247;
	font-weight: 700
}

.resume-section__container h4 {
	font-weight: 400
}

.resume-section__container a {
	color: #f05a5d;
	line-height: 1.2
}

.resume-section__container a.underline:focus::after,
.resume-section__container a.underline:hover::after {
	display: none;
	background: #f05a5d
}

@media only screen and (min-width:66rem) {

	.resume-section__container a.underline:focus::after,
	.resume-section__container a.underline:hover::after {
		display: block
	}
}

p.resume-section__note {
	font-size: .8em
}

.resume-section__note::before {
	display: block;
	content: "";
	width: 100px;
	height: 1px;
	background: #777;
	margin-bottom: .5rem
}

.resume-section__title span.ampersand {
	font-family: merriweather, Georgia, serif;
	font-style: italic
}

.resume-section__container ul {
	margin-top: .35rem
}

.resume-section__container ul li {
	line-height: 1.5;
	display: inline-block;
	margin-right: .5rem;
	margin-bottom: .5rem
}

.resume__btn-back {
	position: fixed;
	z-index: 1;
	left: 2rem;
	bottom: 2rem;
	height: 60px;
	width: 60px;
	border-radius: 50%;
	background: #fff;
	border: 3px solid #1d3247;
	padding: 1rem;
	transform: translateZ(0) scale(1);
	transition: transform .5s ease, background .6s ease
}

.resume__btn-back svg {
	fill: #1d3247;
	max-width: 100%;
	-ms-transform: fill .4s ease;
	transform: fill .4s ease
}

.resume__btn-back:focus,
.resume__btn-back:hover {
	transform: translateZ(0) scale(1.1) translateX(-5px);
	background: #1d3247
}

.resume__btn-back:focus svg,
.resume__btn-back:hover svg {
	fill: #fff
}

section.error {
	background: #241833;
	height: 100vh;
	overflow: hidden
}

.error__background {
	background: #241833 url("../img/fixing_stuff.gif") no-repeat;
	background-size: cover;
	filter: grayscale(100%) contrast(115%);
	opacity: 0;
	height: 100vh;
	width: 100%;
	transition: opacity .5s ease;
	position: absolute
}

.error__background--active {
	opacity: .25
}

.error__container {
	max-width: 1170px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	display: -ms-flexbox;
	display: flex;
	height: 100%;
	-ms-flex-direction: column;
	flex-direction: column;
	-ms-flex-line-pack: center;
	align-content: center;
	-ms-flex-pack: center;
	justify-content: center;
	position: relative;
	z-index: 1
}

.error__container:after {
	content: " ";
	display: block;
	clear: both
}

.error__wrapper {
	-ms-flex-item-align: center;
	-ms-grid-row-align: center;
	align-self: center;
	height: auto
}

.error__title {
	color: #fff;
	font-size: 8rem;
	font-family: futura-pt, Open Sans, Arial, sans-serif;
	text-transform: none;
	border-bottom: 0;
	line-height: 1
}

.error__subtitle {
	font-size: 1.375rem;
	text-transform: uppercase;
	font-family: proxima-nova, Open Sans, Arial, sans-serif;
	letter-spacing: 2px;
	font-weight: 700
}

.error__description {
	color: #ccc;
	margin-top: 1rem;
	font-size: 1.1rem;
	width: 90%;
	margin-left: auto;
	margin-right: auto;
	max-width: 25rem;
	line-height: 1.8
}

.error__description>span.working {
	font-style: italic;
	cursor: help;
	margin-left: .45rem;
	border-bottom: 1px dotted #ccc
}

.error__btn {
	margin-top: 2rem;
	width: auto;
	margin-left: auto;
	margin-right: auto;
	padding: .75rem 2rem;
	max-width: initial
}

@media print {
	@page {
		margin: .7cm
	}

	body {
		font-size: 10pt
	}

	section p {
		line-height: 1.7
	}

	section:nth-child(4n),
	section:nth-child(6n) {
		page-break-after: always
	}

	header h1,
	header h3 {
		color: #1d3247
	}

	header.about {
		background: rgba(0, 0, 0, 0);
		padding: 0;
		margin: 0
	}

	header.about h1 {
		font-weight: 400
	}

	header.about h1>strong {
		font-weight: 700
	}

	.down-arrow {
		display: none
	}
}

#work {
	background-color: none;
	overflow: auto;
	overflow-x: hidden;
	height: auto
}

.work {
	max-width: 1170px;
	margin-left: auto;
	margin-right: auto;
	width: 90%;
	position: relative;
	z-index: 1;
	padding: 6rem .5rem
}

.work:after {
	content: " ";
	display: block;
	clear: both
}

@media only screen and (min-width:75rem) {
	.work {
		padding: 8rem 0
	}
}

.work__background {
	width: 100%;
	min-height: 100vh;
	height: 100%;
	background-size: cover;
	position: absolute;
	opacity: .65
}

work__profile {
	width: 100%;
	margin: 0 auto;
	position: relative;
	text-align: center
}

@media only screen and (min-width:75rem) {
	work__profile {
		text-align: left;
		width: 49.1525423729%;
		float: left;
		margin-right: 1.6949152542%
	}
}

.about__work {
	width: 100%;
	margin: 3rem 0;
	max-width: 50rem
}

@media only screen and (min-width:75rem) {
	.about__work {
		margin: 0;
		width: 49.1525423729%;
		float: right;
		margin-right: 0
	}
}

.profile__name {
	color: #112437;
	font-size: 3rem;
	line-height: .9;
	margin: 0;
	padding: 0
}

@media only screen and (min-width:34rem) {
	.profile__name {
		font-size: 5rem
	}
}

@media only screen and (min-width:66rem) {
	.profile__name {
		font-size: 5.333rem
	}
}

@media only screen and (min-width:100rem) {
	.profile__name {
		font-size: 7.111em
	}
}

.profile__firstname {
	font-weight: 400
}

.profile__line {
	display: none;
	width: 150px;
	margin: .5rem;
	background: #112437;
	height: 5px;
	vertical-align: middle
}

@media only screen and (min-width:48rem) {
	.profile__line {
		display: inline-block
	}
}

.profile__role {
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 4px;
	position: relative;
	top: 100px;
	font-family: futura-pt, Open Sans, Arial, sans-serif
}

@media only screen and (min-width:34rem) {
	.profile__role {
		top: 150px
	}
}

@media only screen and (min-width:66rem) {
	.profile__role {
		top: 190px
	}
}

@media only screen and (min-width:100rem) {
	.profile__role {
		top: 240px
	}
}

.profile__role h5,
.profile__role svg {
	display: inline-block
}

.profile__role h5 {
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 3px
}

.profile__role a {
	display: inline
}

.profile__role svg {
	fill: #fff;
	max-width: 50px;
	vertical-align: middle
}

.profile__picture {
	width: 100%;
	font-size: 0;
	z-index: -1;
	max-width: 500px;
	position: relative;
	margin: auto;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0
}

@media only screen and (min-width:75rem) {
	.profile__picture {
		width: 85%;
		position: absolute
	}
}

.profile__picture img {
	box-shadow: 0 20px 50px rgba(0, 0, 0, .15)
}

.work__title {
	text-align: center;
	font-size: 3.333rem;
	min-height: 33px;
	padding: .5rem;
	font-family: merriweather, Georgia, serif;
	font-weight: 700;
	font-style: normal;
	letter-spacing: 4px;
	font-family: futura-pt, Open Sans, Arial, sans-serif;
	color: #fff
}

@media only screen and (min-width:66rem) {
	.work__title {
		font-size: 2.333rem
	}
}

.work__body {
	margin-top: 2rem;
	width: 100%
}

.work__line {
	background: #112437;
	height: 3px;
	margin-top: .35rem;
	display: none
}

@media only screen and (min-width:48rem) {
	.work__line {
		width: 23.7288135593%;
		float: left;
		margin-right: 1.6949152542%;
		display: inline-block
	}
}

.logo {
	vertical-align: center
}

@media only screen and (min-width:48rem) {
	.logo {
		margin: auto;
		display: block
	}
}

.work_background {
	width: 100%;
	min-height: 100vh;
	height: 100%;
	background-size: cover;
	position: absolute;
	opacity: .65
}

.youtube {
	min-height: 250px;
	max-height: 350px;
	clear: both;
	margin-right: 4%;
	margin-left: 4%;
	width: 90%
}

@media only screen and (min-width:66rem) {
	.youtube {
		margin: auto;
		display: block;
		width: 100%;
		height: 400px
	}
}

.work_block {
	width: 100%;
	height: auto;
	display: block;
	margin: 20px auto;
	background-color: #eee
}

@media only screen and (min-width:34rem) {
	.work_block {
		width: 30%;
		height: 520px;
		margin: 10px 1%;
		background-color: #eee;
		display: inline-block;
		border-radius: 10px;
		padding: 10px;
		border: 5px solid #ccc
	}
}

.logo.levi {
	padding-left: 25%;
	margin: 20px auto 0
}

@media only screen and (min-width:34rem) {
	.logo.levi {
		padding-left: 25%
	}
}

@media only screen and (min-width:48rem) {
	.logo.levi {
		padding-left: 18%
	}
}

@media only screen and (min-width:66rem) {
	.logo.levi {
		padding-left: 23%
	}
}

.logo.walmart {
	margin: 20px auto 0;
	padding-left: 10%
}

.work__text {
	color: #fff
}

@media only screen and (min-width:48rem) {
	.work__text {
		width: 74.5762711864%;
		float: right;
		margin-right: 0
	}
}

html {
	font-size: 16px
}

@media only screen and (min-width:66rem) {
	html {
		font-size: 18px
	}
}

body {
	color: #1d3247;
	font-family: proxima-nova, Open Sans, Arial, sans-serif;
	font-weight: 300
}

h1 {
	font-family: futura-pt, Open Sans, Arial, sans-serif
}

a,
button,
h2,
h5 {
	font-family: proxima-nova, Open Sans, Arial, sans-serif
}

h1 {
	color: #fff;
	font-size: 2rem;
	font-weight: 700;
	text-transform: uppercase;
	margin: 0;
	padding: 0
}

@media only screen and (min-width:34rem) {
	h1 {
		font-size: 3rem
	}
}

@media only screen and (min-width:66rem) {
	h1 {
		font-size: 3.55rem;
		letter-spacing: -2px
	}
}

h2 {
	border-bottom: 1px solid #1d3247;
	color: #1d3247;
	display: inline-block;
	font-size: 1.4rem;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 1.6;
	margin-bottom: 0;
	padding-bottom: .2rem;
	text-transform: uppercase;
	width: 100%
}

h3 {
	color: #fff;
	font-size: 1.15rem;
	font-weight: 400;
	line-height: 1.7;
	margin: 0
}

h4 {
	color: #1d3247;
	font-size: 1.15rem;
	font-style: italic;
	line-height: 1.7
}

h5 {
	font-size: 1rem;
	font-weight: 400;
	margin-top: .45rem;
	letter-spacing: 2px
}

p {
	line-height: 1.5
}

section p {
	margin-bottom: 1rem
}

section p:last-child {
	margin-bottom: 0
}

blockquote {
	font-family: merriweather, Georgia, serif;
	font-style: italic;
	font-weight: 400
}

blockquote>q {
	color: #1d3247;
	font-size: 1.5rem;
	line-height: 1.5;
	display: inline
}

@media only screen and (min-width:66rem) {
	blockquote>q {
		font-size: 1.333rem
	}
}

blockquote>footer {
	display: inline-block;
	margin-left: .45rem
}

cite {
	color: #938e9b
}

blockquote,
blockquote>q,
q {
	quotes: "“""”"
}

q {
	font-style: italic;
	font-family: merriweather, Georgia, serif
}

p>q {
	font-size: .9em
}

blockquote>footer {
	margin-top: .75rem;
	text-align: left
}

blockquote {
	margin: 20px 0
}

.smallcaps {
	font-family: proxima-nova-sc-osf, proxima-nova, Open Sans, Arial, sans-serif;
	font-feature-settings: "smcp"on;
	font-variant: small-caps;
	font-size: 1.3rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 1;
	margin-right: .3rem
}

@media only screen and (min-width:66rem) {
	.smallcaps {
		font-size: 1.155rem
	}
}

#main {

	background-color: #000;
	background-image: url("../img/map.jpg")
}

#landing .parallax {
	filter: contrast(115%);
	min-height: 460px;
	width: 100%;
	height: 100%;
	overflow: hidden;
	text-align: center;
	position: relative
}

.parallax,
.parallax__content {
	display: block;
	padding: 0;
	margin: 0
}

.parallax__layer {
	width: 100%;
	height: 100%;
	margin: 0
}

.parallax__layer .parallax__layer:last-child {
	pointer-events: auto
}

.parallax__layer .parallax__content {
	position: absolute;
	background-repeat: no-repeat
}

.parallax__layer .parallax__content,
.parallax__layer .parallax__layer>:not(.parallax__no-translate) {
	-webkit-backface-visibility: hidden;
	transform: translateZ(0)
}

.parallax__layer .hero {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
	padding: 0;
	height: 390px;
	width: 100%;
	z-index: 2
}

@media only screen and (min-width:34rem)and (min-height:700px) {
	.parallax__layer .hero {
		height: 265px
	}
}

@media only screen and (min-width:48rem) {
	.parallax__layer .hero {
		width: 530px
	}
}

.parallax__layer .hero__title {
	font-size: 8rem;
	letter-spacing: -.85rem;
	line-height: 1;
	padding-bottom: 1.2rem
}

@media only screen and (min-width:48rem) {
	.parallax__layer .hero__title {
		font-size: 12rem
	}
}

@media only screen and (min-width:66rem) {
	.parallax__layer .hero__title {
		font-size: 10.667rem
	}
}

.parallax__layer .hero__subtitle {
	min-height: 33px;
	padding: .5rem;
	font-family: merriweather, Georgia, serif
}

.parallax__layer .hero__subtitle::after,
.parallax__layer .hero__subtitle>span::before {
	content: "";
	width: 3px;
	height: 25px;
	top: 5px;
	left: 3px;
	position: relative;
	background: #ccc;
	display: inline-block;
	animation: pulsing 1s ease infinite
}

.parallax__layer .hero__subtitle>span::before {
	left: -3px;
	top: 5px
}

.parallax__layer .hero__subtitle.hero__subtitle--span::after {
	display: none
}

.parallax__layer .hero a:active,
.parallax__layer .hero a:focus,
.parallax__layer .hero a:hover {
	color: #fff
}

@keyframes pulsing {

	0%,
	100% {
		opacity: 0
	}

	50% {
		opacity: 1
	}
}

.parallax__layer .background {
	width: 100%;
	height: 100%;
	background: linear-gradient(0deg, #f05a5d 0, rgba(17, 36, 55, 0) 75%);
	opacity: .75;
	transition: opacity 1s ease;
	position: relative;
	z-index: 1
}

.parallax__layer .book {
	background-image: url("../img/book.png");
	width: 324px;
	height: 360px;
	top: 15%;
	left: 15%;
	visibility: hidden
}

.parallax__layer .book__content {
	position: relative;
	top: 35px;
	max-width: 179px;
	transform: rotateZ(-20deg) rotateY(-10deg);
	left: 45px;
	text-align: left;
	color: #1d3247
}

.parallax__layer .book__title {
	font-size: 1.5rem;
	font-weight: 700
}

.parallax__layer .book__list {
	margin-top: 4px
}

.parallax__layer .book__list li {
	line-height: 1.5
}

.parallax__layer .book__element--completed {
	text-decoration: line-through
}

.parallax__layer .clock {
	background-image: url(../img/clock.png);
	width: 333px;
	height: 459px;
	left: 10%;
	background-size: 58%;
	bottom: -30%
}

.parallax__layer .clock__content {
	transform: rotateY(40deg) rotate(28deg) !important;
	border-radius: 100%;
	top: 70px;
	display: block;
	height: 130px;
	width: 130px;
	position: relative;
	opacity: .7;
	left: 10px
}

.parallax__layer .clock__content::after {
	content: "";
	display: block;
	position: absolute;
	top: 25px;
	bottom: 0;
	right: 0;
	left: 5px;
	margin: auto;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background: #1f142f
}

.parallax__layer .clock__hour {
	background: rgba(31, 20, 47, .95);
	border-radius: 10px 10px 0 0;
	height: 0;
	left: 50%;
	position: absolute;
	top: 54%;
	width: 0;
	-ms-transform-origin: 50% 100%;
	transform-origin: 50% 100%;
	margin: -50px -3px 0;
	padding: 53px 3px 0
}

.parallax__layer .clock__minute {
	background: rgba(31, 20, 47, .75);
	height: 0;
	left: 50%;
	position: absolute;
	top: 54%;
	width: 0;
	-ms-transform-origin: 50% 100%;
	transform-origin: 50% 100%;
	margin: -65px -2px 0;
	padding: 65px 2px 0
}

.parallax__layer .clock__second {
	background: rgba(31, 20, 47, .75);
	height: 0;
	left: 51%;
	position: absolute;
	top: 67%;
	width: 0;
	-ms-transform-origin: 50% 100%;
	transform-origin: 50% 100%;
	margin: -80px -1px 0;
	padding: 70px 1px 0
}

.parallax__layer .node {
	background-image: url("../img/node.png");
	width: 299px;
	height: 463px;
	top: 31%;
	left: 80%;
	background-size: 80%
}

.parallax__layer .angular {
	background-image: url("../img/angular.png");
	width: 742px;
	height: 687px;
	top: 8%;
	left: 60%;
	background-size: 25%
}

@media only screen and (min-width:66rem) {
	.parallax__layer .angular {
		left: 28%
	}
}

.parallax__layer .react {
	background-image: url("../img/react.png");
	width: 884px;
	height: 328px;
	top: 58%;
	left: 65%;
	background-size: 25%
}

.parallax__layer .computer {
	background-image: url("../img/mac.png");
	width: 375px;
	height: 340px;
	top: 21%;
	left: 17%
}

.parallax__layer .plant {
	background-image: url("../img/plant.png");
	width: 1028px;
	height: 878px;
	bottom: -25%;
	right: -25%
}

@media only screen and (min-width:100rem) {
	.parallax__layer .plant {
		right: -5%
	}
}

.parallax__layer .invisible-square {
	width: 150px;
	height: 150px;
	bottom: 262px;
	border: 12px solid rgba(255, 255, 255, .2);
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	margin: auto
}

@media only screen and (min-width:34rem)and (min-height:700px) {
	.parallax__layer .invisible-square {
		bottom: 132px
	}
}

@media only screen and (min-width:48rem) {
	.parallax__layer .invisible-square {
		width: 230px;
		height: 230px;
		bottom: 200px;
		border: 15px solid rgba(255, 255, 255, .2)
	}
}

@media only screen and (min-width:48rem)and (min-height:700px) {
	.parallax__layer .invisible-square {
		bottom: 80px
	}
}

.parallax__layer .top-line {
	width: 90px;
	height: 3px;
	background: #fff;
	position: absolute;
	top: -20px;
	bottom: 360px;
	right: 144px;
	left: 0;
	margin: auto
}

@media only screen and (min-width:48rem) {
	.parallax__layer .top-line {
		right: 230px
	}
}

@media only screen and (min-width:34rem)and (min-height:700px) {
	.parallax__layer .top-line {
		bottom: 260px
	}
}

.parallax__layer .top-circle {
	width: 34px;
	height: 34px;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 390px;
	left: 143px;
	margin: auto;
	border: 5px solid #fff;
	border-radius: 50%
}

@media only screen and (min-width:48rem) {
	.parallax__layer .top-circle {
		left: 210px
	}
}

@media only screen and (min-width:34rem)and (min-height:700px) {
	.parallax__layer .top-circle {
		bottom: 280px
	}
}

.parallax__layer .middle-wave {
	height: 24px;
	width: 35px;
	position: absolute;
	top: 0;
	right: 150px;
	bottom: 250px;
	left: 0;
	margin: auto;
	background: url("../img/wave.png");
	background-size: 35px 24px;
	background-repeat: no-repeat
}

@media only screen and (min-width:48rem) {
	.parallax__layer .middle-wave {
		right: 225px
	}
}

@media only screen and (min-width:34rem)and (min-height:700px) {
	.parallax__layer .middle-wave {
		bottom: 150px
	}
}

@keyframes movement {
	0% {
		transform: translateY(0);
		opacity: .25
	}

	100% {
		transform: translateY(10px);
		opacity: .75
	}
}

@media only screen and (min-width:48rem) {
	.parallax__layer .node {
		visibility: visible
	}
}

@media only screen and (min-width:66rem) {

	.parallax__layer .angular,
	.parallax__layer .react {
		visibility: visible
	}
}

@media only screen and (min-width:75rem)and (min-height:700px) {
	.parallax__layer .node {
		visibility: visible
	}
}

@media only screen and (min-width:100rem)and (min-height:900px) {
	.parallax__layer .angular {
		visibility: visible
	}
}

@media only screen and (min-width:100rem)and (min-height:900px) {
	.parallax__layer .react {
		visibility: visible
	}
}

.scroll-icon {
	height: 64px;
	width: 64px;
	position: absolute;
	z-index: 99999;
	bottom: 20px;
	right: 0;
	left: 0;
	margin: auto
}

@media only screen and (min-width:66rem) {
	.scroll-icon {
		visibility: visible
	}
}

.scroll-icon__mouse {
	animation: movement .8s ease infinite alternate
}

.loading .modal,
.loading .parallax__layer,
.loading .scroll-icon {
	display: none !important
}

.loading .parallax__layer.visible {
	display: block !important
}

.loading nav {
	visibility: hidden
}

.loading .background--loading {
	opacity: 1
}

.background--loading {
	opacity: 0;
	position: absolute;
	top: 0;
	left: 0;
	transition: .85s ease;
	background: url("../img/bg.jpg");
	z-index: 0
}

.loading {
	overflow: hidden
}

.invisible-square--loading {
	visibility: hidden
}

.loading .invisible-square--loading {
	visibility: visible
}

@keyframes rotate-forever {
	0% {
		transform: rotate(0)
	}

	100% {
		transform: rotate(360deg)
	}
}

.loading .top-circle--loading {
	animation-duration: .75s;
	animation-iteration-count: infinite;
	animation-name: rotate-forever;
	animation-timing-function: linear;
	border: 6px solid #938e9b;
	border-right-color: #fff;
	border-radius: 50%;
	display: inline-block
}

.loading .top-circle--loading {
	z-index: 9999
}

.top-circle--loading {
	transition: border-color .5s ease;
	border-color: #fff
}

#sherlockHolmes::before {
	display: block;
	content: "";
	background: #938e9b;
	width: 100px;
	height: 1px;
	margin-bottom: 1rem
}

#sherlockHolmes {
	display: none;
	margin-top: 50px;
	opacity: 0;
	max-width: 35rem;
	line-height: 1.5;
	color: #938e9b
}

@media only screen and (min-width:34rem) {
	#sherlockHolmes {
		opacity: 1
	}
}

#sherlockHolmes .quote {
	display: none
}

@media only screen and (min-width:48rem)and (min-height:900px) {
	#sherlockHolmes .quote {
		display: block
	}
}

#sherlockHolmes a {
	color: #1d3247
}

#sherlockHolmes a.underline::after {
	background: #1d3247
}

.submit-wrapper>.formMessage {
	display: none;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	margin: 0;
	width: 100%;
	height: auto;
	text-align: center;
	font-size: 1rem;
	padding: 1rem;
	color: #fff
}

.submit-wrapper>.formMessage::before {
	display: none
}

.formMessage.error {
	background: #fb797e
}

.formMessage.success {
	background: #1ecd97
}

.modal__container .note::before {
	display: none
}

.modal__container .note {
	display: block;
	color: #b0b0b0;
	text-shadow: 0 0 30px #1d3247;
	padding: 10px 5px;
	max-width: 350px;
	margin: -10px auto;
	opacity: 0;
	transition: all .5s ease
}

.modal__action .underline {
	font-size: 1.1rem
}

.modal__action .btn {
	margin-bottom: .25em
}

.modal__action .btn:hover:nth-child(2)~.note {
	opacity: 1;
	margin: 0 auto
}

.modal__container {
	position: fixed;
	top: -5px;
	left: 0;
	width: 100%;
	min-height: 100%;
	min-height: 100vh;
	height: auto;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: visibility 0s .3s, opacity .3s 0s, z-index 0s .3s
}

.modal__container .modal__content {
	height: 100%;
	width: 100%;
	padding: 5em 5% 3em;
	text-align: left;
	overflow-y: auto;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale
}

.modal__container p {
	color: #1d3247;
	line-height: 1.6;
	margin: 2em 0
}

.modal--visible .modal__container {
	overflow: hidden;
	z-index: 1;
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
	transition: visibility 0s 0s, opacity .3s 0s, z-index 0s 0s
}

.modal__container .modal__content {
	-webkit-overflow-scrolling: touch;
	overflow: hidden;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	flex-direction: column;
	-ms-flex-pack: center;
	justify-content: center;
	width: 100%;
	margin-left: auto;
	margin-right: auto
}

@media only screen and (min-width:75rem) {
	.modal__container .modal__content {
		padding: 5em 12%
	}
}

.nl-form {
	-ms-flex-item-align: center;
	-ms-grid-row-align: center;
	align-self: center;
	height: auto
}

.modal__action {
	position: relative
}

.modal__action .btn,
.modal__action .modal__bg {
	display: inline-block
}

.modal__action .modal__bg {
	background-color: #fff;
	height: 4em
}

.modal__action .btn {
	border-radius: 0;
	white-space: nowrap;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	background-color: #000
}

.modal__action .btn.to-circle,
.modal__action .btn.to-circle>span {
	width: 4em;
	color: transparent;
	padding: .75rem 0
}

.modal__action .modal__bg {
	position: absolute;
	z-index: 1;
	left: 50%;
	top: 4px;
	width: 4em;
	border-radius: 0;
	opacity: 0;
	visibility: hidden;
	transform: translateZ(0);
	-ms-transform: translateX(-2em);
	transform: translateX(-2em);
	transition: visibility 0s .5s
}

.modal__action .modal__bg.modal__bg--visible {
	opacity: 1;
	visibility: visible
}

.modal__close {
	position: fixed;
	z-index: 1;
	top: 1.5rem;
	right: 1.5rem;
	height: 50px;
	width: 50px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid #1d3247;
	padding: 1px;
	overflow: hidden;
	white-space: nowrap;
	visibility: hidden;
	opacity: 0;
	transition: all .4s ease;
	transform: translateZ(0) scale(0)
}

@media only screen and (min-width:66rem) {
	.modal__close {
		top: 3rem;
		right: 3rem
	}
}

.modal__close g {
	fill: none;
	stroke: #1d3247;
	stroke-width: 2px;
	stroke-linecap: square;
	stroke-miterlimit: 10
}

.modal__close:focus,
.modal__close:hover {
	background: #1d3247;
	border-color: #1d3247;
	-ms-transform: scale(1.1) rotate(-90deg) !important;
	transform: scale(1.1) rotate(-90deg) !important
}

.modal__close:focus g,
.modal__close:hover g {
	stroke: #fff
}

.modal--visible .modal__close {
	visibility: visible;
	opacity: 1;
	-ms-transform: scale(1);
	transform: scale(1)
}

.nl-form {
	width: 100%;
	margin: .3em auto 0 auto;
	line-height: 1.5;
	font-size: 1.25rem
}

@media only screen and (min-width:34rem) {
	.nl-form {
		font-size: 1.5rem
	}
}

@media only screen and (min-width:48rem) {
	.nl-form {
		font-size: 1.85rem
	}
}

@media only screen and (min-width:66rem) {
	.nl-form {
		font-size: 1.777rem
	}
}

.nl-form ul {
	list-style: none;
	margin: 0;
	padding: 0
}

.nl-form input,
.nl-form select,
.nl-form span {
	border: none;
	background: rgba(0, 0, 0, 0);
	font-family: merriweather, Georgia, serif;
	color: #1d3247;
	font-weight: inherit;
	line-height: inherit;
	display: inline-block;
	padding: 0;
	margin: 0;
	-webkit-appearance: none;
	-moz-appearance: none
}

.nl-field {
	display: inline-block;
	position: relative
}

.nl-field.nl-field-open {
	z-index: 10000
}

.nl-field-toggle,
.nl-form input,
.nl-form select {
	line-height: inherit;
	display: inline-block;
	color: #938e9b;
	font-weight: 400;
	font-family: proxima-nova, Open Sans, Arial, sans-serif;
	font-size: 1.15em;
	cursor: pointer;
	border-bottom: 1px dashed #938e9b
}

.nl-field-toggle:active,
.nl-field-toggle:focus,
.nl-field-toggle:hover {
	color: #1d3247 !important;
	border-color: #1d3247
}

.nl-field ul {
	position: absolute;
	visibility: hidden;
	background: #334c64;
	left: -.5rem;
	top: 50%;
	opacity: 0;
	-ms-transform: translateY(-40%) scale(.9);
	transform: translateY(-40%) scale(.9);
	transition: visibility 0s .3s, opacity .3s, transform .3s
}

.nl-field.nl-field-open ul {
	visibility: visible;
	opacity: 1;
	padding: 0;
	-ms-transform: translateY(-50%) scale(1);
	transform: translateY(-50%) scale(1);
	transition: visibility 0s 0s, opacity .3s, transform .3s
}

@media only screen and (min-width:48rem) {
	.nl-field.nl-field-open ul {
		-ms-transform: translateY(-45%) scale(1);
		transform: translateY(-45%) scale(1)
	}
}

.nl-field ul {
	width: auto !important
}

.nl-field ul li:focus,
.nl-field ul li:hover {
	background: #1d3247
}

.nl-field ul li {
	color: #fff;
	position: relative;
	margin: 0;
	transition: all .5s ease
}

.nl-dd ul li {
	margin: 0;
	padding: .3em 1em;
	width: 100%;
	cursor: pointer;
	white-space: nowrap
}

.nl-dd ul li.nl-dd-checked {
	color: #ccc
}

.nl-dd ul li.nl-dd-focus {
	color: #1d3247;
	background: #fff
}

.no-touch .nl-dd ul li:hover {
	background: rgba(0, 0, 0, .05)
}

.no-touch .nl-dd ul li:hover:active {
	color: #478982
}

.nl-ti-text ul {
	min-width: 12em
}

.nl-ti-text ul li.nl-ti-input input {
	width: 100%;
	padding: .1em .2em .2em .3em;
	padding-right: 65px;
	border-bottom: none;
	color: #fff
}

.keep-together {
	display: inline-block;
	margin-bottom: 1rem
}

@media only screen and (min-width:66rem) {
	.keep-together {
		margin-bottom: .5rem
	}
}

.nl-form .nl-field-go {
	position: absolute;
	right: 0;
	top: 0;
	height: 97%;
	margin-top: 1px;
	cursor: pointer;
	background: #162535 url("../img/arrow.svg") no-repeat center;
	background-size: 35%;
	width: 60px;
	text-align: center;
	color: transparent;
	border: 0;
	outline: 0
}

.nl-ti-text ul li.nl-ti-example {
	display: none;
	font-size: 40%;
	font-style: italic;
	font-weight: 400;
	padding: .4em 1em;
	color: rgba(0, 0, 0, .2);
	border-top: 1px dashed rgba(255, 255, 255, .7)
}

.nl-ti-text ul li.nl-ti-example em {
	color: #fff
}

.nl-submit-wrap {
	margin-top: .4em
}

.no-touch .nl-form .nl-submit:active,
.no-touch .nl-form .nl-submit:hover {
	background: #69b1a9
}

.no-touch .nl-form .nl-submit:hover:before {
	background: #58a199
}

.nl-overlay {
	position: fixed;
	top: -5px;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, .6);
	opacity: 0;
	z-index: 9999;
	visibility: hidden;
	transition: visibility 0s .3s, opacity .3s
}

.nl-field-open~.nl-overlay {
	opacity: 1;
	visibility: visible;
	transition-delay: 0s
}

.modal__container form+p {
	font-size: .9rem;
	color: #938e9b;
	line-height: 1.8;
	width: 90%;
	max-width: 700px;
	margin-top: 120px
}

.modal__container p::before {
	content: "";
	display: block;
	height: 1px;
	width: 120px;
	background-color: #938e9b;
	margin-bottom: 25px
}

.modal__container span#counter {
	font-weight: 700
}

.nl-field-toggle {
	margin-left: .5rem
}

@media only screen and (min-width:34rem) {
	.nl-field-toggle {
		margin-left: .85rem
	}
}

.nl-form input[type=submit] {
	display: block !important;
	font-weight: 700;
	font-size: 1rem;
	margin: 15px 0 15px;
	width: auto;
	padding: 12px 40px
}

.nl-form input[type=submit].btn {
	color: #1d3247;
	border: 2px solid #ccc;
	background: rgba(0, 0, 0, 0)
}

.nl-form input[type=submit].btn:focus,
.nl-form input[type=submit].btn:hover {
	color: #fff;
	border-color: #1d3247;
	background: #1d3247
}

.submit-wrapper {
	display: block;
	width: 100%;
	margin-top: 2rem
}

.progress-button {
	position: relative;
	display: inline-block;
	clear: both;
	width: 250px
}

.progress-button button {
	display: block;
	margin: 0 auto;
	padding: 0;
	width: 250px;
	height: 70px;
	border: 2px solid #ccc;
	border-radius: 0;
	background: rgba(0, 0, 0, 0);
	color: #1d3247;
	letter-spacing: 1px;
	font-size: 18px;
	font-family: Montserrat, sans-serif;
	transition: background-color .6s, color .3s, width .3s, border-width .3s, border-color .3s
}

.progress-button button span {
	color: #1d3247;
	font-family: proxima-nova, Open Sans, Arial, sans-serif;
	text-transform: uppercase;
	letter-spacing: 3px;
	font-weight: 700
}

.progress-button button:focus,
.progress-button button:hover {
	background-color: #1d3247;
	color: #fff;
	outline: 0;
	border-color: #1d3247
}

.progress-button button:focus span,
.progress-button button:hover span {
	color: #fff
}

.progress-button svg {
	position: absolute;
	top: 0;
	left: 0;
	pointer-events: none;
	left: 50%;
	-ms-transform: translateX(-50%);
	transform: translateX(-50%)
}

.progress-button svg path {
	opacity: 0;
	fill: none
}

.progress-button svg.progress-circle path {
	stroke: #1d3247;
	stroke-width: 5
}

.progress-button svg.checkmark path,
.progress-button svg.cross path {
	stroke: #fff;
	stroke-linecap: round;
	stroke-width: 4;
	transition: opacity .1s
}

.loading.progress-button button {
	width: 70px;
	border-width: 5px;
	border-color: #ccc;
	border-radius: 40px;
	background-color: rgba(0, 0, 0, 0);
	color: #fff
}

.loading.progress-button span {
	transition: opacity .15s
}

.error.progress-button span,
.loading.progress-button span,
.success.progress-button span {
	opacity: 0
}

.progress-button button span {
	transition: opacity .3s .1s, color .3s
}

.error.progress-button button,
.success.progress-button button {
	transition: background-color .3s, width .3s, border-width .3s
}

.success.progress-button button {
	border-color: #1ecd97;
	background-color: #1ecd97
}

.error.progress-button button {
	border-color: #fb797e;
	background-color: #fb797e
}

.error.progress-button svg.cross path,
.loading.progress-button svg.progress-circle path,
.success.progress-button svg.checkmark path {
	opacity: 1;
	transition: stroke-dashoffset .3s
}

.elastic.progress-button button {
	transition: background-color .3s, color .3s, width .3s cubic-bezier(.25, .25, .4, 1.6), border-width .3s, border-color .3s
}

.loading.elastic.progress-button button {
	transition: background-color .3s, color .3s, width .3s cubic-bezier(.6, -.6, .75, .75), border-width .3s, border-color .3s
}