@font-face {
	font-family: BradfordMonoLL-Regular;
	src: url(../fonts/BradfordMonoLL-Regular.otf);
  }


  @font-face {
	font-family: 'BradfordMonoLL-Regular';
	font-weight: normal;
	font-style: normal;
	font-display: swap;
  }
  
  @font-face {
	font-family: 'BradfordMonoLL-Regular';
	font-weight: normal;
	font-style: normal;
	font-display: swap;
  }
  
  .preload * {
	-webkit-transition: none !important;
	-moz-transition: none !important;
	-ms-transition: none !important;
	-o-transition: none !important;
  }
  
 
  
  html, body, div, span, applet, object, iframe,
  h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  a, abbr, acronym, address, big, cite, code,
  del, dfn, em, img, ins, kbd, q, s, samp,
  small, strike, strong, sub, sup, tt, var,
  b, u, i, center,
  dl, dt, dd, ol, ul, li,
  fieldset, form, label, legend,
  table, caption, tbody, tfoot, thead, tr, th, td,
  article, aside, canvas, details, embed,
  figure, figcaption, footer, header, hgroup,
  main, menu, nav, output, ruby, section, summary,
  time, mark, audio, video {
	  margin: 0;
	  padding: 0;
	  border: 0;
	  font-size: 100%;
	  font: inherit;
	  vertical-align: baseline;
  }
  /* HTML5 display-role reset for older browsers */
  article, aside, details, figcaption, figure,
  footer, header, hgroup, main, menu, nav, section {
	  display: block;
  }
  /* HTML5 hidden-attribute fix for newer browsers */
  *[hidden] {
	  display: none;
  }
  body {
	  line-height: 1;
  }
  ol, ul {
	  list-style: none;
  }
  blockquote, q {
	  quotes: none;
  }
  blockquote:before, blockquote:after,
  q:before, q:after {
	  content: '';
	  content: none;
  }
  table {
	  border-collapse: collapse;
	  border-spacing: 0;
  }
  button:focus,
  a:focus { 
	outline: none;
	outline:0;
  }
  * {
	box-sizing: border-box;
  }
  
  :root {
	color-scheme: light dark; /* both supported */
  }
  
  /* ==========================================================================
  Style
  ========================================================================== */
  
  html.has-scroll-smooth, .has-scroll-smooth body, body {overflow: hidden;}
  html.has-scroll-dragging {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
  }
  
  body {
	margin: 0;
	min-height: 100vh;
	min-width: 100vw;
	font-family: 'BradfordMonoLL-Regular';
	font-size: 100%;
	line-height: 0.85rem;
	font-weight: 400;
	letter-spacing: -0.02em;
	-webkit-font-smoothing: antialiased; 
	-moz-osx-font-smoothing: grayscale;
	font-variant-ligatures: common-ligatures;
	text-rendering: optimizelegibility;
  }

  h7 {
	margin: 0;
	min-height: 100vh;
	min-width: 100vw;
	font-family: 'BradfordMonoLL-Regular';
	font-size: 100%;
	line-height: 0.85rem;
	font-weight: 400;
	letter-spacing: -0.02em;
	-webkit-font-smoothing: antialiased; 
	-moz-osx-font-smoothing: grayscale;
	font-variant-ligatures: common-ligatures;
	text-rendering: optimizelegibility;
  }
  
  
  @media (prefers-color-scheme: dark) {
	body { background-color: #e5e5f7;
		opacity: 1;
		background-size: 20px 20px;
		background-image:  repeating-linear-gradient(to right, #000000, #000000 1px, #ff0000 1px, #ff0000);}
	body.dm-light { background-color: #e5e5f7;
		opacity: 0.8;
		background-size: 20px 20px;
		background-image:  repeating-linear-gradient(to right, #000000, #000000 1px, #ff0000 1px, #ff0000);}
  }
  
  @media (prefers-color-scheme: light) {
	body { background-color: #ff0000;
		opacity: 1;
		background-size: 20px 20px;
		background-image:  repeating-linear-gradient(to right, #000000, #000000 1px, #ff0000 1px, #ff0000);;}
	body.dm-dark { bacbackground-color: #ff0000;
		opacity: 1;
		background-size: 20px 20px;
		background-image:  repeating-linear-gradient(to right, #000000, #000000 1px, #ff0000 1px, #ff0000);}
  }
  
  body.dm-dark { background-color: #000000; color: #e1dbd7;}
  body.dm-light { background-color: #ff0000; color: #000000;}
  body.is-loaded.dm-dark {background-color: #ff0000; transition: background-color .2s cubic-bezier(.83,.01,.29,1); transition-delay: .25s;}
  body.is-loaded.dm-dark { transition: color .2s ease-in-out; transition-delay: .2s;}
  body.dm-dark img {filter: brightness(.8) contrast(1.2);}
  
  header, main, section, footer, .clipped-texts, .clipped-text {
	position: relative;
  }
  
  section {
	margin: 15vw 0;
  }
  
  .container {
	position: relative;
	margin: 0 2.75vw;
  }
	
  img {
	max-width: 100%;
	height: auto;
  }
  
  /* Mobile & Desktop Specific Content */
  
  .mobile-only {
	display: none;
  }
  
  /* ==========================================================================
  SCROLLBAR
  ========================================================================== */
  
  .c-scrollbar {
	position: absolute;
	right: 0;
	top: 0;
	width: 11px;
	height: 100vh;
	-webkit-transform-origin: center right;
			transform-origin: center right;
	-webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
	transition: opacity 0.3s, -webkit-transform 0.3s;
	transition: transform 0.3s, opacity 0.3s;
	transition: transform 0.3s, opacity 0.3s, -webkit-transform 0.3s;
	opacity: 0;
  }
  
  .c-scrollbar:hover {
	-webkit-transform: scaleX(1.45);
			transform: scaleX(1.45);
  }
  
  .c-scrollbar:hover, .has-scroll-scrolling .c-scrollbar, .has-scroll-dragging .c-scrollbar {
	opacity: 1;
  }
  
  .c-scrollbar_thumb {
	position: absolute;
	top: 0;
	right: 0;
	background-color: black;
	opacity: 0.5;
	width: 7px;
	border-radius: 10px;
	margin: 2px;
	cursor: -webkit-grab;
	cursor: grab;
  }
  
  /* ==========================================================================
  GENERAL ANIMATIONS ON-SCROLL
  ========================================================================== */
  
  .d-animate span,
  .projects .container__details,
  .email a {
	display: inline-block;
	vertical-align: top;
  }
  
  .d-animate span, 
  .projects .container__details,
  .email a,
  .connect li,
  footer .f-animate {
	overflow: hidden;
  }
  
  .d-animate span > span,
  .project-name,
  .email a > span,
  .connect li > a,
  footer .f-animate span {  
	transform: translateY(100%);
	transition: transform 1.5s cubic-bezier(0.19, 1, 0.22, 1) .15s;
  }
  
  .d-animate span.is-inview > span,
  .link.is-inview .project-name,
  .email.is-inview a > span,
  .connect li.is-inview a,
  footer .container.is-inview div span {
	transform: translateY(0px);
  }
  
  /* ==========================================================================
  TYPOGRAPHY
  ========================================================================== */
  
  a {
	color: inherit;
	text-decoration: none;
  }
  
  .underline {
	display: inline-block;
	position: relative;
  }
  
  .underline::after {
	content: "";
	position: absolute;
	bottom: 0;
	right: 0;
	width: 0;
	height: 1px;
	background-color: rgba(0, 0, 0, .5);
	transition: width 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  }
  
  .dm-dark .underline::after {
	background-color: rgba(255, 255, 255, .5);
  }
  
  @media (hover: hover) and (pointer: fine) {
	.underline:hover::after {
	  left: 0;
	  right: auto;
	  width: 100%;
	}
  }
  
  button {
	border: none;
	background: none;  
	font-family: inherit;
	font-size: inherit;
	text-transform: inherit;
	color: inherit;
	letter-spacing: inherit;
	line-height: inherit;
	padding: 0;
	margin: 0;
	border-radius: 100%;
	cursor: pointer;
  }
  
  ul, p {
	font-size: 2.25vw;
	line-height: 1.35em;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
  }
  
  .small-txt {
	font-size: .875em;
	letter-spacing: .1em;
  }
  
  .no-wrap {
	white-space: nowrap;
  }
  
  .external-link {display: none;}
  
  .copytext div,
  .contact .container div {
	width: 64vw;
	margin-top: 7.5vw;
	margin-left: 24.5vw;
	margin-bottom: 7.5vw;
  }
  
  .copytext div:first-of-type {
	margin-left: 16.75vw;
  }
  
  .copytext div:first-of-type p:before {
	content: "";
	display: inline-block;
	width: 8vw;
  }
  
  /* ==========================================================================
  CUSTOM CURSOR
  ========================================================================== */
  
  .c-cursor {
	position: fixed;
	width: 400px;
	height: 400px;
	background: rgb(255, 0, 0);
	border-radius: 50%;
	top: 0;
	left: 0;
	opacity: 1;
	pointer-events: none;
	visibility: hidden;
  }
  
  body.is-loaded .c-cursor {
	visibility: visible;
  }
  
  .dm-dark .c-cursor {
	background: rgba(255, 255, 255, 1);
  }
  
  /* ==========================================================================
  COPYRIGHT
  ========================================================================== */
  
  .copyright {
	position: fixed;
	bottom: 2.75em;
	left: 2.75vw;
  }
  
  .copyright,
  .copyright > div {
	opacity: 1;
	transition: opacity .35s cubic-bezier(.83,.01,.29,1), visibility .35s cubic-bezier(.83,.01,.29,1);
	transition-delay: .35s;
  }
  
  .copyright > div {
	transition-delay: 0;
  }
  
  /* ==========================================================================
  DARK MODE
  ========================================================================== */
  
  .dm-dark .dn-wrap {
	opacity: 1;
	transition: none; 
  }
  
  .dm-dark .dn-wrap .spreadbubble,
  .dm-dark .dn-wrap .spreadbubble-change {
	transition: none;
  }
  
  .is-loaded.dm-dark .dn-wrap .spreadbubble {
	transition: transform .75s cubic-bezier(.25,.1,.25,1);
  }
  
  .is-loaded.dm-dark .dn-wrap .spreadbubble-change {
	transform: translateX(50%) translateY(-50%) scale(1,1); 
  }
  
  /* Hack Firefox Only */
  @-moz-document url-prefix() {
	.dm-dark .clipped-texts:not(.is-touch) .clipped-text {
	  background-clip: text;
	  background-image: radial-gradient(closest-side, rgba(255,255,255,1) 100%,transparent 0);
	  -webkit-background-clip:text; 
	  background-attachment: fixed;
	  background-position:50%;
	  background-repeat:no-repeat;
	  background-size: 0px 0px;
	  color:#fff;
	}
	
	.is-loaded.dm-dark .clipped-texts:not(.is-touch) .clipped-text {
	  -webkit-animation: bg-reveal 1s cubic-bezier(.19,1,.22,1) forwards;
	  animation: bg-reveal 1.7s cubic-bezier(.19,1,.22,1) forwards;
	}
	
	@-webkit-keyframes bg-reveal {
	  from {
		background-size: 0px 0px;
	  }
	  
	  to {
		background-size: 400px 400px;
	  }
	}
	
	@keyframes bg-reveal {
	  from {
		 background-size: 0px 0px;
	  }
	  
	  to {
		background-size: 400px 400px;
	  }
	}
	
	
	.dm-dark .clipped-texts:not(.is-touch) .clipped-text {
	  color:hsla(0,0%,100%,.08);
	  -webkit-transition:color .7s cubic-bezier(.19,1,.22,1);
	  transition:color .7s cubic-bezier(.19,1,.22,1)
	}
	
	.dm-dark .clipped-texts:not(.is-touch) .clipped-text .small-txt, 
	.dm-dark .clipped-texts:not(.is-touch) .small-txt {
	  color: #494949;
	 }
  } 
  
  .day-night {
	width: 60px;
	height: 60px;
	position: fixed;
	bottom: calc(2.5em - 25px);
	right: calc(2.75vw - 21px);
	cursor: pointer;
	transition: all 0.3s ease;
	border-radius: 100%;
	z-index: 1;
  }
  
  #sun {fill: #000000;}
  .dm-light #moon.svg {fill: rgba(0,0,0,0) !important; transition: fill .5s cubic-bezier(.25,.1,.25,1) 1s;}
  .dm-light #moon.svg.has-color {transition: fill 2s cubic-bezier(.25,.1,.25,1) .2s;}
  .dm-dark  #moon {fill: #ff0000; transition: fill .5s cubic-bezier(.25,.1,.25,1) 0s;}
  .dm-dark  #sun {fill: none !important;}
  
  .c-num {
	display: inline-block;
	width: 60px;
	height: 60px;
	line-height: 1em;
	padding: 21px;
	transform-origin: 50% 50%;
	border-radius: 100%;
  }
  
  .dn-wrap {
	position: fixed;
	width: 60px;
	height: 60px;
	bottom: 15px;
	right: calc(2.75vw - 21px);  
	transform: translateZ(0);
	z-index: -1;
  }
  
  .spreadbubble {
	background-color: #000000;
	top: 50%;
	right: 50%;
	width: 310vw;
	height: 310vw;
	-webkit-border-radius: 150vw;
	border-radius: 150vw;
	position: absolute;
	backface-visibility: hidden;
	-webkit-transform: translateX(50%) translateY(-50%) scale(.0001, .0001);
	transform: translateX(50%) translateY(-50%) scale(.0001, .0001);
	-webkit-transition: transform .75s cubic-bezier(.25,.1,.25,1);
	transition: transform .75s cubic-bezier(.25,.1,.25,1);
	pointer-events: none;
	z-index: -1;
  }
  
  .dm-dark .spreadbubble {  
	-webkit-transform: translateX(50%) translateY(-50%) scale(1,1); 
	transform: translateX(50%) translateY(-50%) scale(1,1); 
	overflow: none;
	z-index: -1;
  }
  
  .day-night,
  .dn-wrap {
	opacity: 0;
	transition: opacity 1.7s cubic-bezier(.83,.01,.29,1);  
  }
  
  .is-loading .day-night, .is-loaded .day-night,
  .is-loading .dn-wrap, .is-loaded .dn-wrap {
	opacity: 1;
	transition-delay: 2.4s;
  }
  
  /* ==========================================================================
  HEADER
  ========================================================================== */
  
  header {
	position: fixed;
	top: 1.5em;
	right: 2.75vw;
	left: 2.75vw;
	display: flex;
	justify-content: space-between;
	pointer-events: none;
	z-index: 1;
  }
  
  /* Header animations on load*/
  
  header h1, header .availability {
	overflow: hidden;
	pointer-events: all;
  }
  
  header h1, header .availability {
	transform: translate3d(0,100%,0);
	transition: transform 1.2s cubic-bezier(.83,.01,.29,1);
  }
  
  header h1 span, header .availability span {
	display: inline-block;
	transform: translate3d(0,100%,0);
	transition: transform 1.7s cubic-bezier(.83,.01,.29,1);
  }
  
  .is-loading header h1, .is-loading header .availability ,
  .is-loaded header h1, .is-loaded header .availability,
  .is-loading header h1 span, .is-loading header .availability span,
  .is-loaded header h1 span, .is-loaded header .availability span {
	transform: translate3d(0,0,0);
	transition-delay: 2s;
  }
  
  /* ==========================================================================
  FOOTER
  ========================================================================== */
  
  footer { 
	position: relative;
	height: 14px;
	padding-bottom: 3.725em;
  }
  
  footer .container {
	position: relative;
	height: 100px;
  }
  
  footer .container div {
	position: absolute;
  }
  
  footer .container div:nth-of-type(3n+1) {
	left: 24.5vw;
	padding: 21px 0;
	top: -21px;
  }
  
  footer .container div:nth-of-type(3n+2) {
	display: none;
  }
  
  footer .container div:nth-of-type(3n+3) {
	right: 24.25vw;
	top: -21px;
  }
  
  footer .container.is-inview div span {
	display: block;
  }
  
  .legals-btn.no-click {
	pointer-events: none;
  }
  
  footer a.underline::after, 
  footer button.underline::after {
	bottom: -0.25em;
  }
  
  /* ==========================================================================
  MAIN - SMOOTH SCROLL
  ========================================================================== */
  
  .home {
	height: calc(100vh - 2.5em);
	margin: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
  }
  
  .home #asterisk {
	position: absolute;
	display: block;
	cursor: pointer;
	opacity: 0;
	transition: opacity 1.7s cubic-bezier(.83,.01,.29,1);  
	z-index: 1;
  }
  
  .home #asterisk .c-num {
	padding: 23px;
  }
  
  .home #asterisk svg {
	width: 600px;
	height: 600px;
	fill: #000000;
  }
  
  .dm-dark .home #asterisk svg {
	fill: #e1dbd7;
  }
  
  @-moz-document url-prefix() {
	.dm-dark .home #asterisk {
	  pointer-events: none;
	}
	
	.dm-dark .home #asterisk svg {
	  fill: #000000 !important;
	}
  }
  
  .is-loading .home #asterisk,
  .is-loaded .home #asterisk {
	opacity: 1;
	transition-delay: 2.4s;
  }
  
  .home .headline {
	font-family:  'BradfordMonoLL-Regular';
	text-transform: initial;
	letter-spacing: -0.02em;
	font-size: 14vw;
	line-height: 12vw;
	margin-left: -.35vw;
	margin-bottom: -.7vw;
  }
  
  @-moz-document url-prefix() {
	.home .headline {
	  margin-bottom: -.65vw;
	}
  }
  
  .home .line {
	display: inline-block;
	vertical-align: bottom;
	overflow: hidden; 
	display: flex;
  }
  
  .home .line-one {
	margin-left: -.45vw;
  }
  
  .home .line-one .separator {
	margin: 0 2.75vw 0 1.75vw;
  }
  
  .home .line-one .separator.desktop-only {
	  display: none !important;
	}
  
  .home .line-two {
	margin-left: 8.12875vw;
  }
  
  .home .line-two span:first-child {
	padding-right: .4vw;
	margin-right: 3.32vw;
  }
  
  .home .line-three {
	margin-left: 16.6vw;
  }
  
  .home .line-three .clip:first-child {
	margin-right: 1vw;
  }
  
  .home .line-four {
	margin-left: 7.5vw;
  }
  
  /* Animations on load */
  
  .line .clip {
	transform: translate3d(0,120%,0);
	transition: transform 1.7s cubic-bezier(.83,.01,.29,1);
  }
  
  .line-two .clip {
	transition-delay: .1s
  }
  
  .line-three .clip {
	transition-delay: .2s
  }
  
  .line-four .clip {
	transition-delay: .25s
  }
  
  .Loader.appear .Loader__LineText {
	transform: none
  }
  
  .is-loading .line .clip,
  .is-loaded .line .clip {
	transform: translate3d(0,0,0)
  }
  
  /* Mask */
  
  .clip {
	position: relative;
	display: inline-block;
	text-decoration: none;
	overflow: hidden;
  }
  
  .clip_text {
	color: rgba(148,140,135,.15);
  }
  
  .dm-dark .clip_text {
	color: #262626;
  }
  
  /* Hack Firefox Only */
  @-moz-document url-prefix() {
	.dm-dark .clip_text {
	  color: #181818;
	}
  }
  
  .clip_mask {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	-webkit-transition: -webkit-transform .5s cubic-bezier(.83,.01,.29,1);
	transition: -webkit-transform .5s cubic-bezier(.83,.01,.29,1);
	transition: transform 1.4s cubic-bezier(.83,.01,.29,1);
	transition: transform 1.4s cubic-bezier(.83,.01,.29,1), -webkit-transform 1.4s cubic-bezier(.83,.01,.29,1);
	-webkit-transform: translate3d(0, 100%, 0);
	transform: translate3d(0, 100%, 0);
	-webkit-transform-origin: bottom;
	transform-origin: bottom;
	overflow: hidden; 
  }
  
  .clip_mask:after {
	content: attr(data-text);
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	color: #000000;
	-webkit-transition: inherit;
	transition: inherit;
	-webkit-transform: translate3d(0, -100%, 0);
	transform: translate3d(0, -100%, 0);
  }
  
  .dm-dark .clip_mask:after {
	color: #e1dbd7;
  }
  
  /* Hack Firefox Only */
  @-moz-document url-prefix() {
	.dm-dark .clip_mask:after {
	  color: #000000;
	}
  }
  
  .is-loading .clip_mask,
  .is-loaded .clip_mask {
	-webkit-transform: translate3d(0, 0, 0);
			transform: translate3d(0, 0, 0);
  }
  
  .is-loading .clip_mask:after,
  .is-loaded .clip_mask:after {
	-webkit-transform: translate3d(0, 0, 0);
			transform: translate3d(0, 0, 0);
  }
  
  .is-loading .line-one .clip_mask {
	transition-delay: 2s;
  }
  
  .is-loading .line-two .clip_mask {
	transition-delay: 2.1s;
  }
  
  .is-loading .line-three .clip_mask {
	transition-delay: 2.15s;
  }
  
  .is-loading .line-four .clip_mask {
	transition-delay: 2.2s;
  }
  
  /* Up Movement */
  
  .line {
	will-change: transform;
	transform: translate3d(0,50%,0);
	transition: transform 1.4s cubic-bezier(.83,.01,.29,1);
	height: 11.6666vw;
	height: 11.5vw;
  }
  
  .line-two {
	transition-delay: .1s
  }
  
  .line-three {
	transition-delay: .2s
  } 
  
  .line-four {
	transition-delay: .25s
  }
  
  .Loader.appear .Loader__LineText {
	transform: none
  }
  
  .is-loading .line,
  .is-loaded .line {
	transform: translate3d(0,0,0)
  }
  
  .is-loaded .line {
	transition-delay: 0;
	transition: inherit;
  }
  
  /* Home is-loaded*/
  
  .is-loaded .clip_mask {
	display: none;
  }
  
  .is-loaded .clip_text {
	color: inherit;
  }
  
  /* ==========================================================================
  PROJECTS
  ========================================================================== */
  
  .grid {
	position: relative;
	display: block;
  }
  
  .link {
	display: block;
	position: relative;
	cursor: pointer;
  }
  
  /* Project Name */
  
  .link {
	margin: 1.5vw 0;
  }
  
  .project-name  {
	position: relative;
	font-family: 'BradfordMonoLL-Regular';
	text-transform: initial;
	font-size: 8.53vw;
	line-height: .75em;
	margin-top: .5vw;
  }
  
  /* Project Image */
  
  .link img {
	display: none;
  }
  
  /* Project Canvas */
  
  .canvas {
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	z-index: -1;
	pointer-events: none; 
  }
  
  canvas {
	display: block;
	position: fixed;    
	top: 0;
	left: 0;
	z-index: -1;
	pointer-events: none;
  }
  
  .dm-dark canvas {
	opacity: 1; 
  }
  
  .coming-soon {
	pointer-events: none;
	cursor: auto;
  }
  
  .coming-soon .container__details,
  .has-credits .container__details {
	width: 100%;
  }
  
  .coming-soon .container__details span,
  .has-credits .container__details span {
	position: relative;
  }
  
  .coming-soon .container__details span::after {
	position: absolute;
	content: "Coming Soon";
	font-family:  'BradfordMonoLL-Regular';
	font-size: 12px;
	letter-spacing: .1em;
	line-height: 1em;
	top: 1.9vw;
	right: -1vw;
	transform: translateX(100%);
  }
  
  .has-credits .container__details .credits {
	position: absolute;
	font-family:  'BradfordMonoLL-Regular';
	font-size: 12px;
	letter-spacing: .1em;
	line-height: 1em;
	top: 1.9vw;
	right: -1vw;
	transform: translateX(100%);
	overflow: hidden;
  }
  
  .has-credits .container__details .credits span {
	display: inline-block;
	transform: translateY(100%);
	transition: transform 1.5s cubic-bezier(0.19, 1, 0.22, 1);
  }
  
  .has-credits .container__details .credits span:nth-child(2) {transition-delay: .05s;}
  .has-credits .container__details .credits span:nth-child(3) {transition-delay: .10s;}
  .has-credits .container__details .credits span:nth-child(4) {transition-delay: .15s;}
  .has-credits .container__details .credits span:nth-child(5) {transition-delay: .20s;}
  
  .has-credits:hover .container__details .credits span {
	transform: translateY(0px);
  }
  
  /* ==========================================================================
  BANNER
  ========================================================================== */
  
  .banner {
	position: relative;
	height: 24vw;
	margin-bottom: 0;
	overflow: hidden; 
  }
  
  #direction {
	position: absolute; 
	right: 0; 
	left: 0; 
	z-index: 1;
  }
  
  .banner h2 {
	display: inline-block;
	will-change: transform;
	font-family:  'BradfordMonoLL-Regular';
	text-transform: initial;
	font-size: 15.45vw;
	line-height: .8em;
	letter-spacing: -0.02em;
	word-spacing: -1vw;
  }
  
  .u-title-left:after,
  .u-title-right:before {
	content: attr(data-text);
	white-space: nowrap;
  }
  
  .u-title-left:after {
	position: absolute;
	right: -104%;
  }
  
  .u-title-right:before {
	position: absolute;
	left: -104%;
  }
  
  /* ==========================================================================
  CONTACT
  ========================================================================== */
  
  .contact {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: calc(100vh - 6.15em);
	margin: 4.75vh 0 0;
	
	/* background: rgba(0,0,0,.15); */
  }
  
  .contact a {
	font-size: 2.25vw;
	line-height: 1.4em;
	letter-spacing: .025em;
  }
  
  .contact li {
	margin: .5em 0;
  }
  
  .email a {
	display: inline-block;
	font-size: 3.12vw;
  }
  
  .email a span {
	display: block;
  }
  
  .emoji-wrapper {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 62.5vh;
	z-index: 1;
	pointer-events: none;
  }
  
	/* Hack Firefox Only */
	@-moz-document url-prefix() {
	  .dm-dark .emoji-wrapper {
		display: none !important;
	  }
	}
  
  .emoji {
	--scale-x: 0;
	--scale-y: 0;
	pointer-events: none;
	display: block;
	position: absolute;
	top: 0;
	left: calc(50% - .25rem);
	border-radius: 50%;
	width: .5em;
	height: .5em;
	display: -webkit-box;
	display: flex;
	-webkit-box-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	align-items: center;
	font-size: 5vmin;
	-webkit-transform: translate(calc( var(--x) * 1px ), calc( var(--y) * 1px )) translate(-50%, -50%);
			transform: translate(calc( var(--x) * 1px ), calc( var(--y) * 1px )) translate(-50%, -50%);
  
	-webkit-animation: emoji-enter 0.1s ease-in backwards, emoji-exit 300ms linear calc( (var(--lifetime, 3000) * 1ms) - 300ms) forwards;
			animation: emoji-enter 0.1s ease-in backwards, emoji-exit 300ms linear calc( (var(--lifetime, 3000) * 1ms) - 300ms) forwards;
	
	pointer-events: none;
  
  }
  
  @-webkit-keyframes emoji-enter {
	from {
	  opacity: 0;
	}
  }
  
  @keyframes emoji-enter {
	from {
	  opacity: 0;
	}
  }
  
  @-webkit-keyframes emoji-exit {
	to {
	  opacity: 0;
	}
  }
  
  @keyframes emoji-exit {
	to {
	  opacity: 0;
	}
  }
  
  .emoji .inner {  
	-webkit-animation: inner-rotate .6s linear infinite;
			animation: inner-rotate .6s linear infinite;
  
	-webkit-transform: rotate(calc(-1turn * var(--direction) ));
			transform: rotate(calc(-1turn * var(--direction) ));
  }
  
  
  @-webkit-keyframes inner-rotate {
	to {
	  -webkit-transform: none;
			  transform: none;
	}
  }
  
  @keyframes inner-rotate {
	to {
	  -webkit-transform: none;
			  transform: none;
	}
  }
  
  
  /* ==========================================================================
  LEGALS & CREDITS
  ========================================================================== */
  
  .imprint,
  .dm-dark .imprint {
	position: absolute;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	padding: 3.5em 0;
	background-color: silver;
	color: #000000;
	flex-direction: column;
	justify-content: center;  
	transform: translate3d(0,200%,0);
	transition: transform 1.75s cubic-bezier(.83,.01,.29,1);
	z-index: 1;
	display: none;
  }
  
  .dm-dark .imprint .underline::after {
	background-color: rgba(0, 0, 0, .15);
  }
  
  .is-loaded .imprint {
	display: flex;
  }
  
  .close {
	position: absolute;
	top: .95em; 
	overflow: hidden;
	line-height: 1;
	opacity: 0;
	transform: translate3d(0,10px,0);
	transition: transform 1s cubic-bezier(.83,.01,.29,1), opacity 1s cubic-bezier(.83,.01,.29,1);
	z-index: 1; 
  }
  
  .close {
	right: 2.5vw;
	border-radius: 100%;
  }
  
  .close span {
	display: inline-block;
  }
  
  .dm-dark .close span {
	color: #000000;
  }
  
  .legals-btn .c-num,
  .close .c-num {
	padding: 21px 0;
	text-align: center;
  }
  
  .imprint p {
	margin-bottom: 1em;
  }
  
  .imprint__credits, .imprint__legals {
	width: 62.5vw;
	margin-left: 18.85vw;
  }
  
  .imprint__credits.imprint-flex {
	margin-bottom: .5em;
  }
  
  .imprint__legals .imprint-flex {
	margin-bottom: 3em;
  }
  
  .imprint-flex {
	display: flex;
  }
  
  .imprint .col {
	width: 50%;
  }
  
  .imprint__legals p {
	font-size: clamp(.875em, 1.25vw, 1.75em);
  }
  
  .imprint__legals p:last-of-type {
	margin-bottom: 0;
  }
  
  .is-reset .imprint {
	opacity: 0;
	visibility: hidden;
  }
  
  .imprint.has-color .underline::after {
	background-color: rgb(0, 0, 0)
  }
  
  .dm-dark .imprint.has-color .close span,
  .dm-dark .clipped-texts:not(.is-touch) .clipped-text .imprint.has-color .small-txt, 
  .dm-dark .clipped-texts:not(.is-touch) .imprint.has-color .small-txt {
	color: inherit;
  }
  
  /* Animate Imprint */
  
  body.is-legals {
	overflow: hidden;
  }
  
  body.is-legals .c-cursor {
	opacity: 1;
	transition: opacity 1s cubic-bezier(.83,.01,.29,1);
	transition-delay: .5s;
	z-index: 2;
  }
  
  .is-legals .imprint {
	opacity: 1;
	visibility: visible;
	transform: translate3d(0,0%,0);
  }
  
  .is-up .imprint {
	transform: translate3d(0,-100%,0);
  }
  
  .imprint p > span,
  .imprint p a > span {
	display: inline-block;
	vertical-align: top;
	overflow: hidden;
  }
  
  .imprint p > span > span,
  .imprint p a > span > span  {
	display: block;
	transform: translateY(100%);
	transition: transform 1.5s cubic-bezier(0.19, 1, 0.22, 1) 1.5s;
  }
  
  .is-legals .imprint p > span > span,
  .is-legals .imprint p a > span > span  {
	transform: translateY(0);
	transition: transform 1.5s cubic-bezier(0.19, 1, 0.22, 1) 1.5s;
  }
  
  .is-up .imprint p > span > span,
  .is-up .imprint p a > span > span  {
	transform: translateY(-100%);
	transition: transform 1.5s cubic-bezier(0.19, 1, 0.22, 1) .25s;
  }
  
  .is-legals .close {
	opacity: 1;
	transform: translate3d(0,0,0);
	transition-delay: 1.25s;
  }
  
  /* ==========================================================================
  PAGE 404
  ========================================================================== */
  
  .error404 {
	position: relative;
	display: flex;
	align-items: center;
	overflow: hidden;
  }
  
  .error404 .h1 {
	margin: auto;
	font-family:  'BradfordMonoLL-Regular';
	text-transform: lowercase;
	font-size: 20vw;
	line-height: .8em;
	--space: 4vw;
	white-space: nowrap;
	-webkit-animation: marquee 9s infinite linear;
			animation: marquee 9s infinite linear;
	padding-left: var(--space);
  }
  
  .error404 .h1:after {
	content: attr(data-text);
	padding-left: var(--space);
  }
  
  
  @-webkit-keyframes marquee {
	0% {
	  -webkit-transform: translateX(0%);
	  transform: translateX(0%);
	}
	100% {
	  -webkit-transform: translateX(-50%);
	  transform: translateX(-50%);
	}
  }
  
  @keyframes marquee {
	0% {
	  transform: translateX(0%);
	}
	100% {
	  transform: translateX(-50%);
	}
  }
  
  /* If Has Noscript */
  
  .has-noscript {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #000000;
	color: #ff0000;
	font-size: clamp(1.5em, 3vw, 5em);
	line-height: 1.25em;
	letter-spacing: .01em;
	text-align: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	z-index: 1;
  }
  
  /* ==========================================================================
  MEDIA QUERIES
  ========================================================================== */
  
  /* iPad Portrait and Landscape */
  @media only screen 
	and (min-device-width: 768px) 
	and (max-device-width: 1024px) 
	and (-webkit-min-device-pixel-ratio: 1) {
	
	canvas, .emoji-wrapper, .c-cursor {
	  display: none;
	}
	
	.home {
	  height: 90.25vh;
	}
  }
  
  /* iPad Portrait */
  @media only screen 
	and (min-device-width: 768px) 
	and (max-device-width: 1024px) 
	and (orientation: portrait) 
	and (-webkit-min-device-pixel-ratio: 1) {
	.home {
	  height: 92.77vh;
	}
  }
  
  /* iPad Landscape */
  @media only screen 
	and (min-device-width: 768px) 
	and (max-device-width: 1024px) 
	and (orientation: landscape) 
	and (-webkit-min-device-pixel-ratio: 1) {
	.home {
	  height: 90.25vh;
	}
  }
  
  /* iPhones */
  @media (max-width: 767px) {
	html {
	height: -webkit-fill-available;
  }
	html, body, .clipped-text, .clipped-texts {min-height: 100%;}
	body.error404 {min-height: 100vh; min-height: -webkit-fill-available;}
	body.is-loaded {overflow: auto;}
	body.dm-dark, body.dm-dark.is-loaded {background-color: #000000 !important;}
  
	.clipped-texts {overflow: hidden; color: inherit;}
	body.dm-dark .clipped-texts {overflow: hidden; color: inherit;}
	
	body.is-loading .s-cursor, body.is-loaded .s-cursor, .error404 .s-cursor {
	  position: absolute;
	  width: 170vw;
	  height: 170vw;
	  border-radius: 100%;
	  top: -50vw;
	  right: -90vw;
	  left: auto;
	}
  
	/* General */
	
	.mobile-only {
	  display: block;
	}
  
	.desktop-only,
	.c-cursor,
	.underline::after {
	  display: none;
	}
	
	.container {
	  padding: 0 2.5vw;
	}
	
	header, footer {
	  font-size: .75em;
	}
	
	ul, p, .contact a {
	  font-size: 4.25vw;
	  font-size: 3.65vw;
	  letter-spacing: 0.005em;
	  line-height: 1.45em;
	}
	
	section {
	 margin: 20vw 0;
	}
	
	.small-txt {
	  font-size: .75em;
	}
	
	button {
	  font-size: revert;
	}
	
	.no-wrap {
	  white-space: initial;
	}
	
  
	/* Header */
	
	header {
	  margin: 0 2vw;
	  position: absolute;
	}
		
	header nav {
	  top: 3em;
	  right: 0;
	  left: 0;
	}
			
	.home #asterisk {
	  top: calc(1.95em - 23px);
	  left: calc(46vw - 26px);
	}
	
	.home #asterisk svg {
	  width: 10px;
	  height: 10px;
	}
	
	.home .headline {
	  font-size: 17vw;
	  line-height: 13.75vw;
	}
	  
	.home .headline .line-one {
	  margin-left: 0;
	  justify-content: space-between;
	}
	
	.home .headline .line-two {
	  margin-left: 15.5vw; 
	}
	
	.home .headline .line-three {
	  justify-content: space-between;
	}
	.home .headline .line-three,
	.home .headline .line-four {
	  margin-left: 0vw; 
	}
	
	.home .line-one .separator {
	  margin: 0;
	}
	
	.home .line-one .separator.mobile-only {
	  display: block !important;
	}
	
	/* Home */
	
	.line {
	  height: auto;
	}
	
	.home {
	  height: 62.5vh;
	  max-height: 500px;
	}
	
	.home #asterisk {
	  top: calc(1.95em - 26px);
	  border-radius: 100%;
	}
	
	#first-word {
	  margin-left: 0;
	}
	
	/* Copyright */  
	
   .copyright {
	  position: fixed;
	  top: 0;
	  right: 0;
	  height: 100%;
	  left: 0;
	  background-color: #000000; 
	  color: #e1dbd7 !important;
	  z-index: 1; 
	}
  
	.copyright > div {
	  position: absolute;
	  left: 5vw;
	  bottom: 5vw;
	  overflow: hidden;
	  font-size: 6.24vw;
	  font-size: 12vw;
	  line-height: .75em;
	  letter-spacing: 0.005em;    
	}
	
	.is-loaded .copyright {
	  opacity: 0;
	  visibility: hidden;
	  transition-delay: 600ms;
	}
	
	.copyright > div span {
	  display: inline-block;
	  vertical-align: top;
	  transform: translateY(100%);
	  transition: transform 1s cubic-bezier(0.19, 1, 0.22, 1) .15s;
	}
	
	.is-loading .copyright > div span {
	  transform: translateY(0px);
	}
	
	.is-loaded .copyright > div span {
	  transform: translateY(-100%);
	}
	  
	/* Footer */
	
	footer {
	  margin: 15vw 0 2.5em;
	  height: 14px;
	  padding: 0;
	}
	
	footer .container {
	  height: auto;
	}
	
	footer .container div {
	  bottom: -13px;
	}
	  
	footer .container div.legals {
	  display: block;
	  left: 50%;
	  bottom: 14px;
	  transform: translateX(-50%);
	  text-align: center;
	}
   
	footer .container div:nth-of-type(3n+1) {
	  position: relative;
	  left: auto;
	  top: -21px;
	}
	
	.day-night {
	  position: absolute;
	  right: calc(2.5vw - 13px);
	  bottom: -24px;
	}
	
	.dn-wrap {
	  display: none;
	}
	
	/* Hack Firefox Only */
	@-moz-document url-prefix() {
	  .dm-dark .clipped-texts:not(.is-touch) .clipped-text {
		background-clip: none;
		background: none;
	  }
	  
	  .dm-dark .home #asterisk svg {
		fill: #fff;
	  }
	
	  .dm-dark .clipped-texts:not(.is-touch) .clipped-text,
	  .dm-dark .clipped-texts:not(.is-touch) .clipped-text .small-txt, 
	  .dm-dark .clipped-texts:not(.is-touch) .small-txt {
		color: #fff;
	   }
	}
	
	/* Main */
	
	.copytext div, .contact div,
	.copytext div:first-of-type {
	  margin-left: 0;
	  width: 100%;
	}
	
	.copytext div:first-of-type p::before {
	  width: 16vw;
	}
   
	/* About */
	  
	#hero {
	  transform: rotate(2deg) translatez(0);
	}
	
	#hero.hidden {
	  visibility: hidden;
	  opacity: 0;
	}
	
	.about-img {
	  position: relative;
	  margin-left: 21vw;
	  border-radius: .25em;
	  overflow: hidden;  
	  width: 58vw;
	  margin-bottom: 20vw;
	}
	
	.about-img img {
	  display: block;    
	}
  
	/* Projects */
	
	.link {
	  margin: 12.5vw 0;
	}
	
	.link img {
	  display: block;
	  background: #333;
	}
  
	canvas {
	  display: none;
	}
		
	.project-name {
	  font-size: 12.25vw !important;
	  line-height: .9em;
	  margin: 0;
	}
	
	.has-credits .container__details .credits,
	.coming-soon .project-name span::after {
	  font-size: 9px;
	  right: -1.15vw;
	  top: 2.75vw;
	}
	
	.has-credits .container__details .credits {
	  width: 160px;
	  height: 36px;
	  line-height: 1.2em;
	  top: 3.5vw;
	}
	
	 .has-credits.meincomingout .container__details .credits {
	   right: 44.75vw;
	}
	
	
	  
	.container__img {
	  position: relative;
	  display: block;
	  width: 100%;
	  overflow: hidden;
	  border-radius: .25em;
	  margin-top: .75vw;
	}
	
	.img-over {
	  position: absolute;
	  top: 0;
	  right: 0;
	  bottom: 0;
	  left: 0;
	  mix-blend-mode: multiply;
	  z-index: 1;
	  
	}
	
	/* Banner */
	
	.banner {
	  height: auto;
	  padding: 0 4vw;
	}
	
	#direction {
	  position: relative;
	}
	
	.banner div h2 {
	  font-size: 14.95vw;
	  white-space: nowrap;
	}
	
	.u-title-right:before,
	.u-title-left {
	  display: none !important;
	}
  
	/* Contact */
	
	.contact {
	  min-height: auto;
	  margin: 18vw 0;
	}
	
	.contact .container div {
	  margin: 8vw 0 10vw 2.5vw;
	  margin: 0 0 0 2.5vw;
	}
	
	.contact ul {
	  margin: 10vw 0 0 0;
	}
	
	.contact li {
	  margin: .5em 0;
	}
	
	.contact li span {
	  display: inline-block;
	  margin-right: .5em;
	}
	
	.contact a {
	  font-size: 5.25vw;
	}
	
	.contact .email a {
	  font-size: 6.375vw;
	}
	
	.external-link {display: inline-block;}
	.emoji-wrapper {display: none;}
	
	/* Imprint */
  
	.imprint, .dm-dark .imprint {
	  position: fixed;
	  height: 100%;
	  justify-content: flex-start;
	  padding: 10vh 0 0;
	}
	
	.imprint .col {
	  width: 100%;
	}
	
	.imprint-flex {
	  display: block;
	}
	
	.imprint__legals .imprint-flex {
	  margin-bottom: .75em;
	}
	
	.no-margin {
	  margin-bottom: 0;
	}
	
	.imprint__credits, .imprint__legals {
	  width: 91vw;
	  margin-left: 4.5vw;
	}
	
	.imprint__credits.imprint-flex {
	  margin-bottom: 1.5em;
	}
	
	.imprint__legals p {
	  font-size: .75em;
	}
	
	.imprint .imprint__legals p span {
	  display: inline !important;
	}
	
	.imprint__legals p:last-of-type {
	  margin-bottom: 1em;
	}
	
	/* Mobile Animations */
	  
	header h1, header .availability,
	.headline.mobile-only,
	.day-night,
	.is-loading .day-night {
	  transform: none;
	  opacity: 0;
	  transition: opacity .35s cubic-bezier(.83,.01,.29,1);
	  transition-delay: .35s;
	}
	
	.is-loaded header h1, 
	.is-loaded header .availability,
	.is-loaded .headline.mobile-only,
	.is-loaded .day-night {
	  opacity: 1;
	  transition-delay: .35s;
	}
	
	body.dm-light.is-loaded,
	body.dm-dark.is-loaded {
	  transition-delay: none;   
	  transition: background-color .4s cubic-bezier(.83,.01,.29,1), color .4s cubic-bezier(.83,.01,.29,1);
	}
	
	.is-legals .imprint p > span > span, .is-legals .imprint p a > span > span,
	.is-up .imprint p > span > span, .is-up .imprint p a > span > span,
	.is-legals .close, .is-up .close,
	.d-animate span > span, .project-name, .email a > span, .connect li > a, footer .container div span {
	  transform: translateY(0);    
	  transition: none;
	}
	
	.is-legals .close, .is-up .close {
	  opacity: 1;
	  visibility: visible;
	}
	
	.d-animate span {
	  display: inline;
	}
	
	.mobile-rotate {
	  animation: rotate 14s linear infinite;
	}
	
	@-webkit-keyframes rotate {
	  0% {
		transform:rotate(0deg)
	  }
	  to {
		transform:rotate(360deg)
	  }
	}
  
	@keyframes rotate {
	  0% {
		transform:rotate(0deg)
	  }
	  to {
		transform:rotate(360deg)
	  }
	}
	
	.m-no-transition {
	  -webkit-transform:unset;
	  transform:unset;
	}
	
  }
  

  svg {
	max-width: 80vmin;
	
	&:hover .textcircle {
	  transform: scale(1.2) rotate(90deg);
	}
  }
  
  .textcircle {
	transition: transform 1s cubic-bezier(0.65, 0, 0.35, 1);
	transform-origin: 250px 250px;
  }
  
  text {
	font-size: 40px;
	font-family: BradfordMonoLL-Regular;
	font-weight: 500;
	font-variant-ligatures: none;
	fill: rgb(0, 0, 0);
	letter-spacing: 6px;
	animation: rotate 25s linear infinite;
	transform-origin: 250px 250px;
  }
  
  @keyframes rotate {
	to {
	  transform: rotate(360deg);
	}
  }