:root {
	--brandGreen: #27bab3;
	--brandPink: #f7c1c9;
	--brandWhite: #f2f7f7;
	--brandBlack: #777777;
	--myEaseIn: cubic-bezier(0,0,.4,1);
	--myEaseOut: cubic-bezier(.3,0,0,1);
	--myEaseBoth: cubic-bezier(.3,0,.4,1);
	--extraLong: .8s;
	--long: .6s;
	--medium: .4s;
	--short: .2s;
}
html {
	cursor: crosshair;
}
body {
	background: var(--brandWhite);
	padding: 0;
	overflow: hidden;
	cursor: crosshair;
}
* {
	box-sizing: border-box;
}
.container {
	width: 100vw;
	height: 100vh;
	position: absolute;
	top: 100%;
	opacity: 0;
}
.container.loaded {
	top: 0;
	opacity: 1;
	transition: opacity var(--medium) ease;
}
#loading {
	z-index: 100;
	width: 150px;
	height: 150px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
#loading.loaded {
	opacity: 0;
	z-index: -100;
	transition: opacity var(--medium) ease;
}
p, h1, h2, h3, h4, h5, h6, li, ul, a {
	font-family: 'Ubuntu', sans-serif;
	font-weight: 400;
	margin: 0;
	padding: 0;
	list-style: none;
	text-decoration: none;
}
h1 {
	font-weight: 700;
	font-style: italic;
	font-size: 38px;
}
h2 {
	font-size: 30px;
	font-weight: 700;
	font-style: italic;
}
h3 {
	font-size: 15px;
	font-weight: 700;
}
p {
	font-size: 13px;
	letter-spacing: 1px;
	line-height: 170%;
}
nav {
	position: fixed;
	z-index: 1000;
	width: 75px;
	height: 180px;
	transition: opacity var(--medium) ease;
}
nav.hidden {
	opacity: 0;
}
nav:hover {
	opacity: 1;
}
.logo {
	position: fixed;
	top: 20px;
	left: 20px;
	background: url(../img/logo.svg) center center no-repeat;
	background-size: cover;
	width: 33px;
	height: 44px;
	transition: all var(--medium) var(--myEaseOut);
	/*-webkit-transition: all var(--medium) var(--myEaseOut);*/
}
.logo:hover {
	background: url(../img/logo_invert.svg)center center no-repeat;
	background-size: cover;
}
.logo.invert {
	background: url(../img/logo_invert.svg)center center no-repeat;
	background-size: cover;
	transition: all var(--medium) var(--myEaseIn);
}
.logo.invert:hover {
	background: url(../img/logo_white.svg)center center no-repeat;
	background-size: cover;
}
.infoLink {
	position: fixed;
	top: 50px;
	left: 12px;
	font-weight: 700;
	font-style: italic;
	color: var(--brandPink);
	writing-mode: vertical-lr;
	text-orientation: upright;
	display: block;
	margin: 50px 0 0 10px;
	padding: 0;
	font-size: 13px;
	transition: color var(--short) ease;
}
.infoLink:hover {
	color: var(--brandGreen);
}
.infoLink.invert {
	color: var(--brandGreen);
}
.infoLink.invert:hover {
	color: var(--brandWhite);
}
.info {
	width: 85vw;
	height: 100vh;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translate(0,-50%);
	background: var(--brandPink);
	color: var(--brandGreen);
	z-index: -100;
	opacity: 0;
	transition: all var(--medium) var(--myEaseOut), 
				z-index 0s .4s;
}
.info.show {
	width: 100vw;
	z-index: 200;
	opacity: 1;
	transition: all var(--medium) var(--myEaseIn), 
				z-index 0s 0s;
}
.infoWrap {
	width: 80%;
	max-width: 900px;
	height: 400px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
.info h1 {
	display: block;
	width: 400px;
	font-size: 40px;
	font-weight: 700;
	line-height: 140%;
	position: absolute;
	top: 45%;
	left: 0;
	transform: translate(0,-50%);
}
.info h1 span {
	display: block;
}
.contact {
	position: absolute;
	width: 300px;
	top: 50%;
	right: 0;
	transform: translate(0,-50%);
}
.portrait {
	width: 300px;
	height: 300px;
	background: url('../img/portrait.jpg') center center no-repeat;
	background-size: cover;
}
.links {
	margin-top: 15px;
	display: block;
	font-size: 16px;
	font-weight: 400;
	font-style: italic;
}
.links li, .links li a {
	color: var(--brandGreen);
	margin-bottom: 10px;
	transition: color var(--short) linear;
	cursor: cell;
}
.links li:hover, .links li:hover a {
	color: var(--brandWhite);
}
.copyNotice {
	opacity: 0;
	padding-left: 10px;
	color: var(--brandWhite);
	transition: opacity var(--short) linear;
}
.copyNotice.show {
	opacity:1;
}
.emailAddress {
	opacity: 0;
	z-index: -1000;
}
@media only screen and (max-width: 900px) {
	.infoWrap {
		width: 80%;
		height: 80vh;
	}
	.contact {
		top: 0;
		left: 0;
		transform: translate(0,0);
	}
	.info h1 {
		width: 400px;
		margin-top: 10px;
		top: calc(0% + 300px);
		transform: translate(0,0);
	}
	.links {
		position: absolute;
	}
}
@media only screen and (max-width: 700px) {
	h1 {
		font-size: 33px;
	}
	h2 {
		font-size: 25px;
	}
	h3 {
		font-size: 14px;
	}
	.logo {
		top: 10px;
		left: 8px;
	}
	.infoLink {
		top: 30px;
		left: 0px;
	}
	nav {
		width: 50px;
		height: 150px;
	}
}