@import url('https://fonts.googleapis.com/css?family=News+Cycle');

body.loading .loader {
	opacity:1;
}
.loader {
	position:fixed;
	z-index:50;
	width:12em;
	height:.25em;
	left:calc(50vw - 6em);
	top:1.875em;
	border:1px solid rgba(0,0,0,.75);
	transition:opacity 1s;
	transition-delay:1s;
	opacity:0;
}
.loader .bar {
	width:0;
	height:100%;
	background-color:#000;
	opacity:.75;
	transition:width .25s;
}


html {
	background:#fff;
	height:100%;
}
body, input, textarea, button {
	font-family:'News Cycle',sans-serif;
}
body {
	margin:0;
	padding:0;
	color:#333;
	background:#fff;
	height:100%;
}
body.basic-page .main {
	max-width:40em;
	margin:0 auto;
	padding:13em 1em 1em;
}

.logo {
	position:absolute;
	position:fixed;
	z-index:10;
	left:1em;
	top:5em;
	width:10em;
	height:8.5em;
	background:url(pictagoras.svg) left top / 100% auto no-repeat;
	mix-blend-mode:difference;
	transition:top 1s, left 1s, opacity 1s;
	cursor:pointer;
}
.logo.inactive {
	pointer-events:none;
	opacity:.25;
}
body.start .logo {
	left:calc(50vw - 5em);
	top:calc(50vh - 4.25em);
}
body.blur .logo {
	filter:blur(1em);
}

nav {
	opacity:1;
	transition:opacity .5s;
	transition-delay:1s;
}
body.start nav {
	opacity:0;
}

.btn {
	width:2em;
	height:2em;
	cursor:pointer;
	border:1em solid transparent;
}

nav .btn.open,
nav .btn.close {
	position:fixed;
	z-index:11;
	right:0;
	top:0;
}
nav.open .btn.open {
	display:none;
}
nav .content {
	display:none;
	position:fixed;
	left:0;
	top:0;
	right:0;
	bottom:0;
	background:rgba(255,255,255,.75);
	color:rgba(0,0,0,.67);
	font-size:100%;
	text-transform:uppercase;
	overflow:hidden;
	overflow-y:auto;
	
	opacity:0;
	transition:opacity .5s;
	z-index:0;
}
nav .btn.close {
	position:fixed;
	mix-blend-mode:normal;
	transform:rotate(45deg);
}
nav.hoverable:hover .content {
	display:inline-block;
	opacity:1;
	z-index:12;
}
nav.open .content {
	display:inline-block;
	opacity:1;
	z-index:12;
}

nav ul {
	margin:0;
	padding:0;
	list-style:none;
}
nav .content > ul {
	width:16em;
	margin:3em auto 3em;
}
nav .content > ul > li {
	border-bottom:2px solid rgba(0,0,0,.25);
}
nav li {
	margin:0;
	padding:0;
	display:block;
}
nav li ul li {
	margin:0;
}
nav a {
	text-decoration:none;
	display:block;
	color:rgba(0,0,0,.75);
	padding:.33em 0;
}
nav ul li.toggle {
	background:url(arrow_down.svg) right top 2.5em / 1em 1em no-repeat;
	cursor:pointer;
}
nav ul li.toggle ul {
	display:none;
}
nav ul li.toggle.opened {
	background-image:url(arrow_up.svg);
}
nav ul li.toggle.opened ul {
	display:block;
}
nav ul ul li {
	padding-left:1em;
	border-top:1px solid rgba(0,0,0,.25);
}

nav a.title {
	cursor:initial;
	padding-top:2em;
	color:rgba(0,0,0,.33);
	pointer-events:none;
}
nav li.toggle a.title {
	pointer-events:auto;
	cursor:pointer;
}
nav a:hover {
	color:#000;
	font-weight:bold;
}


body.blur .main {
	filter:blur(1em);
}


.gallery {
	position:absolute;
	z-index:1;
	left:0;
	width:100%;
	top:4em;
	bottom:4em;
}
.gallery .slideshow {
	position:relative;
	left:0;
	height:100%;
	white-space:nowrap;
	transition:all .5s;
}
.gallery .slideshow img {
	position:relative;
	width:auto;
	max-width:100%;
	height:100%;
	margin-right:1em;
	object-fit:contain;
	transition:all .5s;
}
.gallery .drag-handle {
	position:absolute;
	min-width:100%;
	height:100%;
	top:0;
	bottom:0;
	background:transparent;
	opacity:.01;
}

.gallery .slideshow img:first-child {
	margin-left:50vw;
}
.gallery .slideshow img:last-child,
.gallery .slideshow img.last-child {
	margin-right:50vw;
}

.gallery img[data-url] {
	cursor:pointer;
}

.gallery .gallery-title {
	position:absolute;
	color:#fff;
	text-shadow:0 0 .25em rgba(0,0,0,.5);
	text-transform:uppercase;
	white-space:normal;
	pointer-events:none;
}

.gallery .gallery-title h2 {
	margin:0;
	padding:0;
	font-size:150%;
	font-weight:bold;
	text-align:center;
}

.gallery .gallery-title .info {
	padding:.5em;
	opacity:.8;
	text-align:center;
}

body.no-animate .gallery .tiled,
body.no-animate .gallery .slideshow,
body.no-animate .slideshow img {
	transition:none;
}

body.start .gallery .slideshow {
	opacity:0;
}

.gallery .tiled {
	position:fixed;
	width:100%;
	height:calc(100% - 8em);
	opacity:0;
	pointer-events:none;
	transition:all .5s;
}
.gallery .tiled img {
	position:absolute;
	object-fit:cover;
	cursor:pointer;
	transition:all .5s;
}
.gallery .tiled img:hover {
	opacity:.75;
}

body.tiled .gallery .drag-handle {
	display:none;
}
body.tiled .gallery .slideshow {
	opacity:0;
	pointer-events:none;
}
body.tiled .gallery .tiled {
	opacity:1;
	pointer-events:auto;
}



.main footer {
	position:fixed;
	left:0;
	bottom:0;
	width:100%;
}
.main footer .bottom-line {
	color:#333;
	text-align:center;
	padding-bottom:1em;
	line-height:2em;
}



.btn.gy-tiled,
.btn.gy-next,
.btn.gy-previous {
	position:fixed;
	z-index:11;
}

.btn.gy-tiled {
	right:0em;
	bottom:0em;
}

.btn.gy-next {
	right:0em;
	top:50%;
	margin-top:-2em;
	mix-blend-mode:difference;
}

.btn.gy-previous {
	left:0em;
	top:50%;
	margin-top:-2em;
	mix-blend-mode:difference;
}

body.tiled .btn.gy-next,
body.tiled .btn.gy-previous {
	display:none;
}



form ul {
	list-style:none;
	margin:0;
	padding:0;
}
form label {
	display:block;
	padding:.2em 1em .2em 0;
	vertical-align:top;
}

form li {
	padding:.5em 0;
	max-width:30em;
	margin:0;
}

form .required label:before {
	content:'★ ';
	color:#777;
}
input, textarea {
	display:inline-block;
	width:32em;
	max-width:calc(100% - .4em);
	font:inherit;
	color:#333;
	padding:.2em;
	border:1px solid #aaa;
	border-radius:0;
	background:#f5f5f5;
	transition:all .35s;
}
textarea {
	overflow:auto;
}
input:hover, textarea:hover {
	background:#fafafa;
	border-color:#777;
}
input:focus, textarea:focus {
	background:#fefefe;
	border-color:#333;
	outline:none;
}
.error input, .error textarea {
	border-color:#a77;
	background:#e7cec2;
}
form p {
	margin:0;
	padding:0;
	font-size:80%;
	color:#777;
}
.errors {
	background:#c00;
	padding:1em;
	color:#fff;
	font-weight:900;
	border-radius:.25em;
}
button {
	color:#333;
	background:none;
	outline:none;
	border:1px solid #1d1d1d;
	cursor:pointer;
	font-size:100%;
	text-transform:uppercase;
	letter-spacing:.1em;
	padding:.75em;
	transition:all .35s;
}
button:hover {
	color:#eee;
	background:#1d1d1d;
}



a {
	text-decoration:none;
	color:#333;
}
a:hover {
	color:#000;
}



@media (max-width: 50em) {
	.logo {
		width:10em;
		height:8.5em;
		top:1em;
	}
	body.start .logo {
		left:calc(50vw - 5em);
		top:calc(50vh - 4.25em);
	}
	body.basic-page .main {
		padding:10em 1em 1em;
	}
	nav a {
		width:calc(100% - 2em);
	}
	.gallery .gallery-title h2 {
		font-size:150%;
	}
}