@font-face {
    font-family: 'HelveticaNeueLTStd';
    src: url('fonts/HelveticaNeueLTStd-Roman.eot'); /* IE9 Compat Modes */
    src: url('fonts/HelveticaNeueLTStd-Roman.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
         url('fonts/HelveticaNeueLTStd-Roman.woff') format('woff'), /* Modern Browsers */
         url('fonts/HelveticaNeueLTStd-Roman.ttf') format('truetype'), /* Safari, Android, iOS */
         url('fonts/HelveticaNeueLTStd-Roman.svg#HelveticaNeueLTStd-Roman') format('svg'); /* Legacy iOS */
    font-style: normal;
    font-weight: normal;
    text-rendering: optimizeLegibility;
}

@font-face {
    font-family: 'HelveticaNeueLTStd';
    src: url('fonts/HelveticaNeueLTStd-Bd.eot'); /* IE9 Compat Modes */
    src: url('fonts/HelveticaNeueLTStd-Bd.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
         url('fonts/HelveticaNeueLTStd-Bd.woff') format('woff'), /* Modern Browsers */
         url('fonts/HelveticaNeueLTStd-Bd.ttf') format('truetype'), /* Safari, Android, iOS */
         url('fonts/HelveticaNeueLTStd-Bd.svg#HelveticaNeueLTStd-Bd') format('svg'); /* Legacy iOS */
    font-style: normal;
    font-weight: bold;
    text-rendering: optimizeLegibility;
}

@import url("https://fast.fonts.net/lt/1.css?apiType=css&c=b30cfce5-7b40-4f29-86dd-7590858bb317&fontids=5198898");
@font-face{
	font-family:"Helvetica LT W05 Ult Compresse";
	src:url("fonts/2e6add16-7c06-4407-8a40-5b0566c9e576.eot?#iefix");
	src:url("fonts/2e6add16-7c06-4407-8a40-5b0566c9e576.eot?#iefix") format("eot"),url("fonts/2aeb642d-c524-43a0-975d-f3f699a35e00.woff2") format("woff2"),url("fonts/3c5086e2-ff6c-4159-bb29-61b2b62f52cd.woff") format("woff"),url("fonts/77e45999-fd99-4425-bc22-80dd35ab70e2.ttf") format("truetype");
}

* {
	margin: 0;
	padding: 0;
	border: 0;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

*:hover{
	cursor: none;
}

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

html { 
	height: 100vh;
}

body {
	background: #fff;
	color: #000;
	font-family: 'HelveticaNeueLTStd', Helvetica, sans-serif;
	height: 100vh;
	overflow-x: hidden;
	font: sans-serif;
	overflow: hidden;
	font-size: 14px;
	line-height: 16px;
	cursor: none;
}

.container {
	position: absolute;
	top: 0;
	left: 0;
	min-width: 960px;
	width: 100%;
	height: 100vh;
	overflow: hidden;
	user-select: none;
}

.container canvas {
	position: absolute;
	top: 0px;
	left: 0px;
	min-width: 960px;
	width: 100vw;
	height: 100vh;
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
}

.videoCon {
	position: absolute;
	bottom: 24px;
	left: 50%;
	transform: translate(-50%, 0);
}

.videoCon canvas {
	float: left;
	margin-right: 16px;
}

.photobooth {
	position: absolute;
	top: 0;
	left: 0;
	min-width: 960px;
	min-height: 540px;
	width: 100%;
	height: 100%;
	background: rgba(255,255,255,.7);
	z-index: 900;
	display: none;
	opacity: 0;
	transition: opacity 500ms, background 500ms;
}

.photobooth .renderer {
	width: 480px;
	height: 480px;
	position: absolute;
	display: none;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: #000;
	border: 1px solid #000;
	transition: width 200ms cubic-bezier(0.215, 0.61, 0.355, 1), height 200ms cubic-bezier(0.215, 0.61, 0.355, 1);
}

.photobooth .stripe {
	position: absolute;
	display: none;
	z-index: 12;
	pointer-events: none;
	width: 480px;
	top: -14px;
}

.photobooth .uiContainer, .helper2 {
	position: absolute;
	top: 50%;
	left: 50%;
	text-align: center;
	width: 480px;
	transform: translate(-50%, 239px);
	opacity: 0;
	font-size: 18px;
	line-height: 21px;
	transition: opacity 500ms, transform 500ms ease-out;
}

.photobooth .helper2 {
	margin-top: 120px;
	transform: translate(-50%, -100%);
	color: #000;
	background: #fff;
	padding: 16px 8px 8px 8px;
	width: 240px;
	z-index: 100;
	pointer-events: none;
	border: 1px solid black;
}

.photobooth .helper {
	position: absolute;
	text-align: center;
	width: 480px;
	user-select: none;
	padding: 16px 8px 8px 8px;
	/* text-transform: uppercase; */
	z-index: 10;
	background: #fff;
	border: 1px solid black;
}

.photobooth .helperBlack {
	position: absolute;
	width: 0px;
	height: 47px;
	background: #000;
	opacity: 1;
	pointer-events: none;
	z-index: 11;
}

.photobooth .warning {
	position: absolute;
	top: 50%;
	left: 50%;
	text-align: center;
	max-width: 480px;
	transform: translate(-50%,-50%);
	user-select: none;
	pointer-events: none;
	padding-top: 4px;
	opacity: 0;
}

.error, .about {
	position: absolute;
	width: 100%;
	height: 100%;
	min-width: 960px;
	min-height: 540px;
	background: #fff;
	pointer-events: none;
	user-select: none;
	font-size: 18px;
	line-height: 21px;
	text-align: center;
	opacity: 0;
	transition: opacity 500ms;
}

.about {
	text-align: left;
	opacity: 0;
	pointer-events: all;
	display: none;
}

.about .content {
	width: 90%;
	max-width: 1280px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	font-size: 14px;
	line-height: 16px;
}

.about .content p {
	margin-bottom: 24px;
}

.about .content .contact {
	position: relative;
	float: left;
	width: 25%;
}

.about .content .text {
	position: relative;
	float: left;
	margin-left: 10%;
	width: 65%;
}

a.social {
	margin-left: 18px;
}

.error .box {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 340px;
	height: 270px;
	transform: translate(-50%,-50%);
	border: 1px #000 solid;
}

.error .content {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 276px;
	transform: translate(-50%,-50%);
}

.error .content .headline {
	position: relative;
	margin-bottom: 32px;
}

.error .content .message {
	position: relative;
}

.tooltip {
	position: absolute;
	opacity: 0;
	display: none;
	transition: opacity 500ms;
	z-index: 1000000;
	pointer-events: none;
}

.menu {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	min-width: 960px;
	user-select: none;
	overflow: hidden;
	display: inline-block;
	transform: translate(0,100%);
	transition: transform 500ms ease-out;
	z-index: 100000000;
	pointer-events: none;
	visibility: hidden;
}

.menu .block {
	position: absolute;
	/* transform: translate(0,100%); */
	transition: transform 500ms ease-out;
	overflow: none;
	pointer-events: none;
	display: inline-block;
}

.menuOption, .menuOptionSelected {
	font-family: 'Helvetica LT W05 Ult Compresse';
	color: black;
	position: absolute;
	top: -10px;
	left: 0;
	text-transform: uppercase;
	white-space: nowrap;
	display: inline-block;
	line-height: normal;
	pointer-events: all;
	-webkit-text-stroke: none;
}

.menuOptionSelected, .menuOption:hover {
	color: black;
	-webkit-text-fill-color: transparent; /* Will override color (regardless of order) */
	-webkit-text-stroke: 2px black;
}

.topLine {
	position: absolute;
	width: 100%;
	height: 2px;
	background: black;
	transition: width 600ms ease-out, left 600ms ease-out;
}

.rightLine {
	position: absolute;
	height: 88%;
	width: 2px;
	background: black;
	opacity: 1;
	transition: opacity 100ms linear;
}

.title-container, .project-info-container {
	min-width: 960px;
	pointer-events: none;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.project-headline {
	position: absolute;
	width: 130px;
	text-align: center;
	transform: translate(-50%, 40px);
	opacity: 0;
	transition: opacity 600ms linear;
	user-select: none;
	pointer-events: all;
}

.project-info {
	position: absolute;
	left: 50%;
	bottom: 24px;
	width: 800px;
	white-space: nowrap;
	text-align: center;
	transform: translate(-50%, 0px);
	opacity: 0;
	transition: opacity 600ms linear;
	pointer-events: none;
}

a {
	pointer-events: all;
	text-decoration: underline;
	color: black;
}

a:visited {
	color: black;
}

.cursor {
	width: 128px;
	height: 128px;
	position: absolute;
	pointer-events: none;
	display: none;
	opacity: 0;
	z-index: 1000;
	transition: opacity 600ms linear;
}

.cursor canvas {
	width: 128px;
	height: 128px;
	/* animation: loading 2s infinite; */
}

.videoP {
	height: 2px;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,0);
	display: none;
	z-index: 10;
}

.videoP .progress {
	background: #000;
	width: 0%;
	height: 2px;
	position: absolute;
}

.thumbVideo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: 100;
	/* opacity: 0;
	transition: opacity 300ms; */
	pointer-events: none;
}

.fallback {
	position: absolute;
	width: 100%;
	min-height: 100%;
	cursor: default;
}

.fallback .header {
	position: absolute;
	text-transform: uppercase;
	font-family: 'Helvetica LT W05 Ult Compresse';
	color: black;
	font-size: 41px;
	line-height: 34px;
	padding-top: 21px;
	width: 100%;
}

.fallback .contents {
	position: absolute;
	display: none;
	opacity: 0;
	transition: opacity 500ms linear;
}

.fallback .header p {
	position: relative;
	margin: 0;
	margin-left: 16px;
	white-space: nowrap;
}

.fallback .contents .fMenu {
	position: relative;
	font-family: 'Helvetica LT W05 Ult Compresse';
	text-transform: uppercase;
	width: auto;
	display: inline-block;
	line-height: 1em;
	margin-top: -14px;
	margin-bottom: 16px;
}

.fallback .contents .films {
	position: relative;
	width: 100%;
	margin-top: -38px;
}

.fallback .contents .films video, .fallback .contents .films img {
	width: 100%;
	height: auto;
	margin: 0;
	padding: 0;
}

.fallback .contents .films img {
	cursor: pointer;
}

.fallback .contents .films p {
	margin: 0;
}

.fallback .contents .fabout {
	width: 90%;
	margin: 0 auto;
	margin-top: -50px;
	font-size: 16px;
	line-height: 22px;
}

.fallback .contents .fabout p {
	margin-bottom: 24px;
}

.fallback .contents .fabout a.social {
	margin-left: 0px;
}

.turn {
	position: fixed;
	background: #fff;
	width: 100%;
	height: 100%;
	z-index: 999999999;
	font-size: 16px;
	display: none;
	/* min-width: 960px;
	min-height: 540px; */
}

@keyframes turnR {
	from {
	  transform: translate(-50%,-50%) rotate(0);
	}
  
	to {
	  transform: translate(-50%,-50%) rotate(90deg);
	}
  }

.turn .line {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: 2px;
	height: 128px;
	background: #000;
	animation: turnR 1s ease-out infinite;
}

.turn .text {
	position: absolute;
	top: 50%;
	left: 50%;
	text-transform: uppercase;
	transform: translate(-50%,96px);
}

/* .fallback .contents .films video::-webkit-media-controls-start-playback-button {
	display: none !important;
  } */

@keyframes loading {
  0% { 
		transform: rotate(0deg)
	 }
  100% { 
		transform: rotate(360deg)
	 }
}

@media (min-width: 1024px) {
    .project-headline {
		width: 170px;
		transform: translate(-50%, 50px);
	}
}

@media (min-width: 1280px) {
    .project-headline {
		width: 185px;
		text-align: center;
		transform: translate(-50%, 50px);
	}

	a.social {
		margin-left: 24px;
	}

	.menuOption, .menuOptionSelected {
		top: -14px;
	}
}

@media (min-width: 1440px) {
    .project-headline {
		transform: translate(-50%, 80px);
	}
	.about .content p {
		margin-bottom: 32px;
	}

	.menuOption, .menuOptionSelected {
		top: -20px;
	}

	body, .about .content {
		font-size: 18px;
		line-height: 21px;
	}
}

@media (min-width: 1800px) {
    .project-headline {
		transform: translate(-50%, 90px);
	}

	.menuOption, .menuOptionSelected {
		top: -28px;
	}
}

@media (min-width: 1980px) {
    .project-headline {
		transform: translate(-50%, 100px);
	}

	.menuOption, .menuOptionSelected {
		top: -34px;
	}
}

/* iPad */

@media only screen 
and (min-device-width : 768px) 
and (max-device-width : 1024px)  {
	.menuOption:hover {
		color: black;
		-webkit-text-fill-color: black; /* Will override color (regardless of order) */
		-webkit-text-stroke: none;
	}

	.menuOption:active {
		color: black;
		-webkit-text-fill-color: transparent; /* Will override color (regardless of order) */
		-webkit-text-stroke: 2px black;
	}

	.fallback .contents .films, .fallback .contents .fabout {
		margin-top: -128px;
	}

	.fallback .contents .fabout {
		font-size: 26px;
		line-height: 34px;
	}
}

@media (min-height: 400px) {
    .fallback .header {
		font-size: 52px;
		line-height: 43px;
	}
}

@media (min-height: 480px) {
    .fallback .header {
		font-size: 58px;
		line-height: 50px;
	}
}

@media (min-height: 600px) {
    .fallback .header {
		font-size: 74px;
		line-height: 60px;
	}
}

@media (min-width: 600px) {
    .fallback .header {
		font-size: 88px;
		line-height: 71px;
	}
}

@media (min-width: 1024px) {
    .fallback .header {
		font-size: 120px;
		line-height: 96px;
	}
}