::-webkit-scrollbar {
  width: 10px;
  height: 1px;
}
::-webkit-scrollbar-button {
  width: 0px;
  height: 0px;
}
::-webkit-scrollbar-thumb {
  background: #ccc;
  border: 0px none #ccc;
  border-radius: 10rem;
}
::-webkit-scrollbar-thumb:hover {
  background: #777;
}
::-webkit-scrollbar-thumb:active {
  background: #777;
}
::-webkit-scrollbar-track {
  background: transparent;
  border: 0px none #eee;
  border-radius: 0px;
}
::-webkit-scrollbar-track:hover {
  background: #ffffff;
}
::-webkit-scrollbar-track:active {
  background: #ffffff;
}
::-webkit-scrollbar-corner {
  background: transparent;
}

/* Supreme Font */

@font-face {
    font-family: 'Supreme';
    src: url('fonts/SupremeLL-Thin.otf') format('opentype');
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Supreme';
    src: url('fonts/SupremeLL-Light.otf') format('opentype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Supreme';
    src: url('fonts/SupremeLL-Regular.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Supreme';
    src: url('fonts/SupremeLL-Book.otf') format('opentype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Supreme';
    src: url('fonts/SupremeLL-Medium.otf') format('opentype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

/* DIN Font */
@font-face {
    font-family: 'DIN';
    src: url('fonts/DINAlternate-Bold.woff') format('woff');
    font-style: normal;
    font-display: block;
}

.white {
	color: #fff!important;
}

::-moz-selection { background: #eee; color:#000000; }
::selection { background: #eee; color:#000000; }

* {
	margin:0;
	padding:0;
	font-family: "Supreme", sans-serif;
	list-style-type: none;
	-webkit-font-smoothing: antialiased;
	font-size: 17px;
	font-weight: 400;
	color: #000000;
	/*letter-spacing: 0.01em;*/
}

html {
    scroll-behavior: smooth;
}

body {
	width:100%;
	height:100%;
	background:#fff;
	/*background-image: url('/img/black-marble-textures-plain.webp');*/
	background-size: cover;
	/*background-repeat: no-repeat;*/
	/*background-attachment:fixed;*/
	font-weight: normal;
	/*overflow-y: hidden;*/
	overflow-x: hidden;
	opacity: 1;
    /*transition: 2s opacity;*/
   	/*scroll-behavior: smooth;*/
}

@media (max-width: 768px) {
    html, body {
        font-size: 12px;
    }
}

body.fade-out {
    /*opacity: 0;*/
    transition: none;
}

.reset {
	margin: 0;
	padding: 0;
}

.container--full {
	display: block;
	width: calc(100% - 4rem);
	max-width: 1600px;
	padding: 0 2rem;
	margin: 0 auto;
	overflow: hidden;
}

.container--cgi {
	display: block;
	width: calc(100% - 4rem);
	max-width: 1450px;
	padding: 0 2rem;
	margin: 0 auto;
}
/* 
@media (min-width: 1700px) {
	.container--cgi {
		max-width: 1400px;
	}
} */
.container {
	display: block;
	width: 70vw;
/*	max-width: 1400px;*/
	padding: 0 10px;
	margin: 0 auto;
}

.container--small {
	max-width: 900px!important;
/*	min-width: 300px;*/
	padding: 0 10px;
	margin: 0 auto;
}

.inline-video {
	display: block;
	max-width: 100%;
	width: 100%;
	height: auto;
/*	min-height: 540px;*/
}

.yt-container {
  position:relative;
  padding-bottom:56.25%;
   /*padding-bottom:71.25%;*/
  padding-top:30px;
  height:0;
  overflow:hidden;
}
.yt-container iframe, .yt-container object, .yt-container embed {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
}

.invert {
	filter: invert(1);
}

/*body[page='blog-post'] .main p.large {*/
	/*font-weight: 800;*/
	/*line-height: 2.6rem;*/
	/*letter-spacing: -0.01rem;*/
/*	font-size: 3rem;
 line-height: 3.5rem;
 margin-top: 3rem;*/
/*}*/

/*body[page='contact'] {
 background-image: url('/img/leaf-bw.webp');
 background-size: cover;
 background-repeat: no-repeat;
 background-attachment: fixed;
}*/

.blog-author {
	text-transform: uppercase;
	color: #fff;
	font-weight: 500;
	font-family: "DIN", sans-serif;
	/*margin-top: -2rem;*/
}

.header-image {
	pointer-events: none;
}

.blog-header-image {
	height: 420px;
	width: 100%;
	display: block;
	position: relative;
	background-size: cover;
	background-position: center;
	margin-bottom: 4rem;
	margin-top: 0;
	pointer-events: none;
}

p, .p, .subtitle {
	font: inherit;
	font-size: 1rem;
	line-height: 1.5em;
	/*margin: 0 auto;*/
	font-weight: 400;
	margin-top: 1rem;
	margin-bottom: 1.5rem;
	color: inherit;
}

.max-ch {
	max-width: 55ch;
}

p a, .p a {
	border-bottom: thin solid #ccc;
	color: inherit;
}

.subtitle {
	/*margin-top: -1rem;*/
	margin-bottom: 2rem;
}

.subtitle a {
	font-weight: normal;
	border-bottom: 1px solid #fff;
}

h1.subtitle {
	font-size: 1.2rem;
	letter-spacing: normal;
	margin-top: -.5rem;
}

figcaption {
	font-size: .8rem;
	color: #777;
	margin: 0.5rem 0;
	font-style: italic;
}

.h0 {
	font-size: 4.4rem;
	text-transform: uppercase;
	/*margin-top: 4.2rem;*/
	font-weight: 400;
	line-height: 120%;
	max-width: none;
	margin-bottom: 0;
	font-family: "DIN", sans-serif;
    /* border-top: 1px solid rgba(255,255,255,0.6); */
    /* border-bottom: thin solid rgba(255,255,255,0.6); */
    letter-spacing: -0.01rem;
}

h1, .h1 {
	text-transform: uppercase;
    text-align: center;
    font-size: 2.8rem;
    line-height: 130%;
	font-weight: 400;
    margin: 1rem auto;
    max-width: 800px;
	padding:1rem 0;
	font-family: "DIN", sans-serif;
	/*border-top: 1px solid rgba(255,255,255,0.6);*/
	/*border-bottom: thin solid rgba(255,255,255,0.6);*/
	/*letter-spacing: -0.04em;*/
}

.text-left {
	text-align: left;
	margin-left: 0;
}

h2, .h2, h3, .h3 {
	display: inline-block;
	margin: 2rem 0 2rem 0;
	font-weight: 400;
/*	padding: 0.8rem 0;*/
	line-height: 140%;
	font-size: 2rem;
	font-family: "DIN", sans-serif;
	/*border-bottom: thin solid #777;*/
	/*border-top: 1px solid #777;*/
/*	text-transform: uppercase;*/
	font-style: normal;
/*	letter-spacing: 0;*/
	text-align: left;
	text-decoration: none;
}

h3, .h3 {
	border: none;
	text-align: left;
	line-height: 1.7rem;
	font-size: 1rem;
	font-weight: 400;
	text-transform: uppercase;
	font-style: normal;
	display: block;
	/*font-size: 1.3rem;*/
	border-bottom: thin solid transparent;
	margin: 1rem 0;
}

.pre {
	font-size: 1rem;
	color: #777;
	margin: 0 0 -1rem 0;
	line-height: 1rem;
	text-align: left;
	font-weight: 500;
}

.pre a {
	color: inherit;
	border-bottom: thin solid #777;
}

.h1 a, .h2 a, h2 a, h3 a, .h3 a {
	text-decoration: none;
}

h1, h2, h3 {
	font-family: "DIN", sans-serif;
	letter-spacing: 0.02rem;
}

.h1 a:hover, .h2 a:hover, h2 a:hover, h3 a:hover, .h3 a:hover {
	text-decoration: underline;
}

.no-underline {
	text-decoration: none;
}
.no-margin {
	margin: 0;
}

hr {
	display: block;
	border:none;
	height: 1px;
	background: #ccc;
	width: 100%;
}

.hr-white {
	background: #eee;
}

.bold {
	font-weight: 500!important;
}

.light {
	/*opacity: 0.7;*/
	font:inherit;
	font-weight: 400;
	font-style: normal;
}

.large {
    font-size: 1.25rem;
    line-height: 1.6;
	font-weight: 400;
	text-align: inherit;
	margin: 1.5rem 0;
	max-width: 65ch;
}

.text-center p.large {
	margin: 2rem auto;
}

ul.horizontal-list {
	margin: 0 0 2rem 0;
	padding: 0;
}

ul.horizontal-list li {
	font-size: 2.3rem;
	font-weight: 500;
	display: inline-block;
	padding: 0.5em 0rem 0.5rem 0;
	margin-right: 2rem;
	line-height: 3rem;
	margin-bottom: 0.5rem;
	cursor: pointer;
	/*text-transform: uppercase;*/
	user-select: none;
	color: #777;
	transition: all 0.5s ease;
	border-bottom: thin solid transparent;
}

ul.horizontal-list li.selected, ul.horizontal-list li:hover  {
	color: #eee;
}

ul.horizontal-list li.selected {
	border-color: #eee;
}

.fade-in {
	opacity: 0;
	animation: fadeIn 1s ease forwards;
}

@keyframes fadeInAlmost {
	to {
		opacity: .7;	
	}
}

@keyframes fadeIn {
	to {
		opacity: 1;	
	}
}

.grey, .gray {
	color: #777;
	font-weight: inherit;
/*	font-size: inherit;*/
}

.author {
	text-transform: uppercase;
	color: #777;
	margin-top: -1rem;
	font-size: .8rem;
	font-weight: 500;
	font-family: "DIN", sans-serif;
}

b {
	color: inherit;
	font-weight: bold!important;
	font-size: inherit;
}

a {
	text-decoration: none;
	font: inherit;
	/*border-bottom: thin solid #777;*/
/*	transition: color .2s;*/
	/*font-family: "DIN";*/
	display: inline;
	cursor: pointer;
}

i {
	font: inherit;
	color: inherit;
	font-style: italic;
}

.uc {
	text-transform: uppercase;
}
.lc {
	text-transform: none;
}

.smaller {
	font-size: 0.8rem;
}

.larger {
    max-width: 30ch;
/*    margin: 0 auto;*/
    font-size: 1.8rem;
    line-height: 2.5rem;
    font-weight: 500;
    text-transform: uppercase;
/*    letter-spacing: 0.02rem;*/
/*    text-align: center;*/
    margin-bottom: 2rem;
    margin-top: 2rem;
}


a[name="*"] {
	transform: translateY(-200px);
}

a:hover {
	/*color:  #FF534C;*/
	/*color:rgba(255,76,76,1) !important;*/
	/*border-bottom: thin solid #fcfcfc;*/
}

.margin-top {
	margin-top: 1rem;
	display: block;
}

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

ul {
	margin-bottom: 2rem;
	margin-left: 1rem;
	margin-top: 1rem;
}

ul li {
	list-style: none;
	line-height: 1.6rem;
	list-style-position: outside;
}

ul.bullet li {
	list-style: circle;
	line-height: 1.6rem;
	list-style-position: outside;
	margin-bottom: 1rem;
}

.inline-image {
	max-width: 100%;
	margin: 0 0 2em 0;
}

.align-vert-container {
	display: table;
	height: 100%;
	width: 100%;
	pointer-events: all;
	/*background: ;*/
}

.align-vert-content {
	display: table-cell;
	vertical-align: middle;
}

.section {
	position: relative;
	width: 100%;
	margin: 0;
	padding: 0;
}

.bg-#eee {
	background: #eee;
}
.bg-black {
	background-color: #000000;
}

.vh {
	height: calc(100vh);
}

.almost-vh {
	height: 69vh;
}

form {
	/*max-width: 800px;*/
	margin:0 auto;
}

input, textarea {
	background: #151515;
    border: none;
    padding: 1rem;
    width: 100%;
    color: #fff;
    clear: both;
    margin-top: 10px;
    margin-bottom: 1.5rem;
    transition: all .2s ease;
    border-radius: 0;
}

textarea {

}

input:focus, textarea:focus {
	box-shadow: none;
	outline: none;
	border-color: #fff;
}

input[type='submit'] {
	-webkit-appearance: none;
	-moz-appearance: none;
	background: #fff;
    color: #000000;
    font-weight: bold;
    text-transform: uppercase;
    border-color: #fff;
    transition: transform 0.2s ease;
    cursor: pointer;
    font-size: .8rem;
    padding: 0 2rem;
    height: 50px;
    line-height: 50px;
   	width: auto;
	float: right;
}

input[type='submit']:hover {
	transform: scale(0.95);
}

form label {
	font-size: 1rem;
	margin-top: 1rem;
	display: block;
}

#header-img {
	position: absolute;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100vh;
    object-fit: cover;
	opacity: .5;
	z-index: -10;
/*	animation: fadeInAlmost 4s ease forwards;
-webkit-animation: fadeInAlmost 4s ease forwards;
   -moz-animation: fadeInAlmost 4s ease forwards;
    -ms-animation: fadeInAlmost 4s ease forwards;
     -o-animation: fadeInAlmost 4s ease forwards;
        animation: fadeInAlmost 4s ease forwards; */
}

.background-image {
	will-change: transform, top;
	position: absolute;
	height: calc(100vh);
	width: 100vw;
	top: 0;
	left: 0;
	background-size: cover !important;
	background-position: 50% 50% !important;
	z-index: -1;
	transition: 0.3s linear;
	-webkit-transition: 0.3s linear;
	opacity: 1;
	-moz-transition: 0.3s linear;
}
/*
.background-video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	object-fit: cover;
	padding: 0;
	z-index: -1;
	opacity: .2;
}*/

#fullwidth-video .h1, #fullwidth-video p {
	color: #fff;
}

#fullwidth-video{
	height: calc(100dvh - 120px);
    margin-top: 60px;
    position: relative; pointer-events: none;
  }

#fullwidth-video .fullwidth-video-bg {
 position: absolute;
 z-index: -1;
 top: 0px;
 left: 0px;
 bottom: 0px;
 right: 0px;
 overflow: hidden;
 -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
 background-color: #fff;
 background-repeat: no-repeat;
 background-position: 0% 50%;

/*background-image:url*/
}
.sldtext {z-index: 2;
}
#fullwidth-video video {
 margin: auto;
 position: absolute;
 z-index: -1;
 top: 50%;
 left: 0%;
 transform: translate(0%, -50%);
 visibility: visible;
 opacity: 1;
 width: 100%;
 height: 100%;
 object-fit: cover;

}

/** For Edge **/
@supports (-ms-ime-align:auto){ 
	#fullwidth-video video { 
		object-fit:none;
		margin:none;
		position:inherit;
		z-index:-1;
		top:50%;
		left:0%;
		transform:translate(0%, -50%);
		height:auto;
		width:100%;
 	}
 }

.offset-vh {
	margin-top: vh;
}


#header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100dvw;
	z-index: 1000;
	background: #fff;
	height: 60px;
	border-bottom: 1px solid #ccc;
	display: flex;
	align-items: center;
	justify-content: center;
}

body[below-fold='true'] #header {
	/* background: #fff; */
	/* border-bottom: 1px solid #CCC; */
}

body[menu-open='true'] #header {
/*		border-bottom: thin solid #777;*/
}

body[below-fold='true'] #header #logo, body[menu-open='true'] #header #logo {
	filter: invert(1);
}

#logo {
	/* position: absolute; */
	/* left: 50%; */
	/* top: 50%; */
	/* transform: translate(-50%, -50%); */
	width: 100px;
	height: auto;
	margin: 0;
	filter: invert(1);
	z-index: 778;
	pointer-events: auto;
}

/*#footer-logo {
	width: 100px;
	left: 50%;
	bottom: 10rem;
	margin-left: -50px;
	display: block;
	position: absolute;
	opacity: 0.1;
}*/

.nav-toggle {
	position: absolute;
	left: 0;
	top: 0;
	width: 60px;
	height: 60px;
	z-index: 1001;
	cursor: pointer;
	font-size: 2.3rem;
    transform: translate(0%, -3px);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 100;
	font-family: sans-serif;
	color: #000;
	transition: all .5s cubic-bezier(0.08, 0.91, 0.41, 0.95);
	user-select: none;
}

.main-nav-links {
	display: flex;
	position: absolute;
	width: 100%;
	height: 60px;
	align-items: center;
	z-index: 776;
	pointer-events: none;
}

.main-nav-links a {
	color: #666;
	text-decoration: none;
	text-transform: capitalize;
	font-size: .9rem;
	font-family: "Supreme", sans-serif;
	font-weight: 400;
	transition: color 0.3s;
	pointer-events: auto;
}





.icon-link {
	position: absolute;
	right: 20px;
	top: 0;
	height: 60px;
	display: flex;
	align-items: center;
	z-index: 779;
}

#menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(255, 255, 255, 1);
    /* backdrop-filter: blur(30px); */
    /* -webkit-backdrop-filter: blur(30px); */
    /* opacity: 0; */
    transform: translateY(-100%);
    visibility: hidden;
    transition: transform 0.4s ease, visibility 0.4s ease;
    z-index: 777;
    display: flex;
    align-items: center;
    justify-content: center;
}

.menu-background {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -1;
}

.menu-background video {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100vw;
    height: 100vh;
    transform: translate(-50%, -50%);
    object-fit: cover;
    opacity: 0.15;
}

#main-nav {
    position: relative;
    z-index: 2;
    text-align: center;
    width: 100%;
    padding: 0;
}

#main-nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

#main-nav ul li {
    margin: 0.5rem 0;
    opacity: 0;
    transform: translateY(10px);
    transition: all 0.7s ease .3s;
}



#main-nav ul li a {
    color: black;
    font-size: 3rem;
    font-weight: 400;
    text-decoration: none;
    line-height: 1.5;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    transition: opacity 0.2s ease;
}



.submenu-wrap {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.4s ease, transform 0.4s ease;
    transition-delay: 0;
}

.submenu-link {
    color: white;
    font-size: 1rem;
    opacity: 0.5;
    text-decoration: none;
    letter-spacing: 0.05em;
    line-height: 2;
    text-transform: uppercase;
    transition: opacity 0.2s ease;
}

.submenu-link:hover {
    opacity: 0.7;
    color: white;
}

@media screen and (max-width: 768px) {
    #main-nav ul li a {
        font-size: 3.5rem;
    }
    
    .submenu-wrap {
        margin-top: 2rem;
    }
}

/* Show menu when open */
body[menu-open='true'] #menu {
    /* opacity: 1; */
    transform: translateY(0);
    visibility: visible;
    transform: none;
}

.main {
	width: 100vw;
	padding: 0;
	transition: all 0.2s linear;
	position: relative;
	min-height: 100vh;
	transform: translateX(0);
	/*scroll-behavior: smooth;*/
}

body[menu-open='true'] .main {
    opacity: 1;
    transform: none;
    transition: opacity 0.4s ease;
}

body[menu-open='true'] .nav-toggle {
	transform: rotate(45deg);
	/* color: white; */
	opacity: 1;
	border-left: none;
}


#main-nav ul {
	margin: 0;
	padding: 0;
}

#main-nav li {
	display:block;
	padding: 0;
	/*float: ri2sght;*/
	width: 100%;
/*	text-transform: uppercase;*/
/*	font-weight: 500;*/
	line-height: 2.6rem;
	/*margin-left: 3rem;*/
	/*padding-top: 1rem;*/
	margin-top: 1rem;
	text-align: center;
	position: relative;
	transition: opacity 1s ease 0.15s;
	opacity: 0;

}

body[menu-open='true'] #main-nav li  {
	opacity: 1;
}

body[menu-open='true'] #main-nav li:hover  {
	/*transform: rotateZ(-10deg);*/
}

#menu li:first-child {
	/*border: none;*/
	margin-top: 1rem;
}

#menu li a {
	text-decoration: none;
    font-size: 2rem;
    line-height: 2.5rem;
    text-transform: uppercase;
    font-weight: 400;
	cursor: pointer;
	/*padding-right: 4rem;*/
	padding-top:5px;
	padding-bottom: 5px;
	/*margin-right: 2rem;*/
	width: 100%;
	font-family: "DIN", sans-serif;
	transition: opacity 1s ease;
	border-bottom: thin solid transparent;
	opacity: 0;
	/*text-transform: uppercase;*/
}

 body[menu-open='true'] #menu li a,  body[menu-open='true'] .submenu-wrap {
 	opacity: .7;
 } 

#menu li a:hover {
	opacity: 1!important;
/*	border-bottom: thin solid #eee;*/
	/*border-bottom: thin solid #eee;*/
}

#menu li p {
	margin-top: 0;
	text-transform: none;
}

.nav-spacer {
	height: 60px;
	width: 100%;
}

.nav-spacer-large {
	height: calc(60px + 3rem);
	width: 100%;
}

.text-center {
	text-align: center;
}
.centered {
	margin: 0 auto;
}
.text-right {
	text-align: right;
}

.yellow{background-color: #000000;}
.blue{background-color: blue;}
.red{background-color: #000000;}
/*.grey{background-color: #000000;}*/

#footer {
	display: block;
	width: 100%;
	clear: both;
	/*background: rgba(1,8,27,0.3);*/
	margin-top: 0rem;
	padding: 0 0 3rem 0;
}

#footer a{
	border-bottom: transparent;
}

#footer a:hover{
	border-bottom: thin solid;
}

.footer-text p {
	text-align: center;
}

.footer-links {
	display: block;
	clear: both;
	margin: 1rem 0 0 0;
	text-align: center;
	border-top: 1px solid rgba(0,0,0, 0.2);
}

.footer-links li {
	display: inline-block;
	margin: 0 1rem;
	padding: 1.5rem 1rem;
	font-size: 0.8rem;
	text-decoration: none;
}
 .footer-links li a {
	text-decoration: none;
	text-transform: uppercase;
	font-weight: 500;

	/*font-style: italic;*/
 }

.footer-legal small {
	display: block;
	clear: both;
	width: 100%;
	padding: 0.8rem 0;
	line-height: 1rem;
	text-align: center;
	color: #777;
	/*margin-top: 1rem;*/
}

.spacer {
	display: block;
	height: 1px;
	margin-top: 2rem;
}

.spacer--small {
	display: block;
	height: 1px;
	margin-top: 1rem;
}

.spacer--tiny {
	display: block;
	height: 1px;
	margin-top: .5rem;
}

.spacer--large {
	display: block;
	height: 1px;
	margin-top: 5rem;
}

small {
	font-size: 12px;
	/*color: #777;*/
}

#projects {
	width: 100%;
}
#projects > li {
	width: 100%;
	object-fit: cover;
	position: relative;
	margin-bottom: 4rem;
	font-size: 0;
	background: #777;
}

#projects > li:before {
	content: "";
	display: block;
	position: absolute;
	z-index: 1;
	/*background: rgba(15, 22, 42, 0.8);*/
	/*background: rgba(0, 0, 0, 0.8);*/
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transition: background 0.5s ease;
}

/*
#projects > li:first-child:before, #projects > li:hover:before {
 background: rgba(15, 22, 42, 0);
}*/

.full-image, .project-image, .full-image--vertical {
	width: 100%;
	object-fit: contain;
	position: relative;
	margin: 0 auto;
/*	max-height: calc(100vh - 160px);*/
}
.full-image--vertical {
	object-fit: contain;
}

.client-headshot {
	width: 50%;
	height: auto;
	margin: 2rem 0 0 0;
	/*border-radius: 100%;*/
	/*margin-left: 25%;*/
}

.case-study-image {
	margin-bottom: 2rem;
}

iframe.video {
	width: 100%;
	height: auto;
	min-height: 600px;
	/*max-width: 800px;*/
	overflow: hidden;
	display: block;
	/*margin: 0 auto;*/
	margin-bottom: 2rem;
}

.project-logo {
	height:4rem;
	width: 4rem;
	object-fit: cover;
	display:inline-block;
	position: absolute;
	bottom: 7rem;
	left: 30px;
	background: #eee;
	z-index: 10;
	opacity: 0;
	/*border-radius: 0.5em;*/
}

ul.project-services {
	position: absolute;
	bottom: 30px;
	padding: 0;
	margin: 0 0 0 30px;
	z-index: 10;
	/*opacity: 0;*/
}

ul.project-services li {
	color:  #eee;
}

.cinema-ratio {
	width: 100%;
	padding-top:41.84%;
}

.img-button, .video-button {
	width: 100%;
	position: relative;
	transition:none;

	/*margin-top: 2rem;*/
/*	border: thin solid #000;*/
}

.img-button {
	padding-top:43%;
	background-size: cover;
	background-position: center;
	transition: all .3s ease;
	margin-bottom: 1rem;
	/* border-radius: 6px; */
}

.video-button {
	height: auto;
	min-height: 300px;
}

a .img-button, a .video-button {
	cursor: pointer;
}
a .img-button:hover, a .video-button:hover {
/*	border-color: #fff;*/
	filter: brightness(.8);
	/*transform: scale(1.01);*/
}

.img-button:hover:after {
	opacity: 1;
}

.partner-logos {
	background: #000000;
	height: auto;
	overflow: hidden;
	position: relative;
	margin: 2rem 0;
}
.partner-logos img {
	display: block;
	width: 200px;
	height: 160px;
	float: left;
	margin: 0;
}

.gallery {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  grid-template-rows: repeat(6, 5vw);
  grid-gap: 2rem; 
}

.gallery__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; 
  transition: all 0.2s ease;
  /*-webkit-filter: grayscale(100%); /* Safari 6.0 - 9.0 */*/
  /*filter: grayscale(100%);*/
}

.gallery__img:hover {
  -webkit-filter: none; /* Safari 6.0 - 9.0 */
  filter: none;
}

.gallery__item--1 {
  grid-column-start: 1;
  grid-column-end: 3;
  grid-row-start: 1;
  grid-row-end: 3;

  /** Alternative Syntax **/
  /* grid-column: 1 / span 2;  */
  /* grid-row: 1 / span 2; */
}

.gallery__item--2 {
  grid-column-start: 3;
  grid-column-end: 5;
  grid-row-start: 1;
  grid-row-end: 3;

  /** Alternative Syntax **/
  /* grid-column: 3 / span 2;  */
  /* grid-row: 1 / span 2; */
}

.gallery__item--3 {
  grid-column-start: 5;
  grid-column-end: 9;
  grid-row-start: 1;
  grid-row-end: 6;

  /** Alternative Syntax **/
  /* grid-column: 5 / span 4;
  grid-row: 1 / span 5; */
}

.gallery__item--4 {
  grid-column-start: 1;
  grid-column-end: 5;
  grid-row-start: 3;
  grid-row-end: 6;

  /** Alternative Syntax **/
  /* grid-column: 1 / span 4;  */
  /* grid-row: 3 / span 3; */
}

.responsive-heading {
	margin:0 auto;
	width: 100%;
	max-width: 90vw;
	text-transform: uppercase;
	font-size: 2.3rem;
	line-height: 2.5rem;
}

@media screen and (min-width: 1600px) {
	.container {
		/*max-width: 1300px;*/
	}
}

@media screen and (max-width: 1200px) and (min-width: 820px) {
 h1, .h1 {
 	font-size: 2.5rem;
/* 	line-height: 2.2rem;*/
 }
}

/* @media screen and (min-width: 820px) {
	.nav-toggle:hover {
		transform: scale(1.2);
	}
} */

@media screen and (max-width: 820px) {
	#header {
		height: 60px;
		line-height: 60px;
	}

	#logo {
		width: 90px;
		/* transform: translate(-50%, -50%); */
	}

	.nav-toggle {
		/* height: 60px;
		line-height: 60px;
		width: 60px; */
	}

	.responsive-heading {
		font-size: 1.8rem;
		line-height: 2.4rem;
		text-transform: none;
		max-width: 60vw;
	}

	* {
		font-size: 16px;
	}

	.spacer--large {
		margin-top: 2rem;
	}

	.nav-spacer {
		height: 60px;
	}

	.nav-spacer-large {
		height: calc(60px + 3rem);
	}

	h1, .h1 {
		font-size: 2rem;
		line-height: 2.5rem;
/*		margin-top: -2.5rem;*/
		/*text-align: left;*/
	}

	.h0 {
		margin-top: 0;
		font-size: 3rem;

	}

	h2, .h2 {
		font-size: 1.3rem;
/*		line-height: */
	}

	h3, .h3 {
		font-size: 1rem;
	}

	.large {
		font-size: 1.125rem;
    	line-height: 1.4rem;
	}

	.larger {
    font-size: 1.5rem;
    line-height: 2rem;
	}

	#main-nav {
		width: calc(100vw);
	}

	.author {
		font-size: .7rem;
		line-height: 1rem;
	}

	#menu {
		/* transform: translateX(calc(100vw + 2px)); */
	}
	body[menu-open='true'] .main {
		/* transform: translateX(-100vw); */
	}

	.smaller {
		/*font-size: 1rem;*/
	}

#fullwidth-video{
		height: 33vh;
    margin-top: 33vh;
		margin-bottom: 33vh;

    position: relative; pointer-events: none;
  }

	.container {
		display: block;
		width: 90vw;
		padding: 0 ;
		margin: 0 auto;
	}

	.container--full {
		width: calc(100% - 2rem);
	}

	.footer-links li {
		width: 100%;

		padding: 1rem 0;
		display: inline-block;
		margin: 0;
	}

	iframe.video {
		width: 100%;
		height: auto;
		min-height: 300px;
		margin-bottom: 1rem;
	}

	.project-image {
		height: auto;
	}

	#projects > li:before {
		background: transparent;
	}

	.main-nav-links {
		display: none;
	}
}

.revere__scroller {
	height: 100vh;
	width: 100vw;
	overflow: hidden;
	background: #000000;
	position: relative;
}

.revere__scroller__level {
	background-position: center;
	background-size: cover;
	width: 100%;
	height: 100%;
	transform-origin: center;
	position: absolute;
	transition: opacity 0.4s ease;
	opacity: 0;

	transform: scale(4.3);
}

.revere__scroller__level[data-level='one'] {
	background-image: url('../img/shed.webp');
}

.revere__scroller__level[data-level='two'] {
	background-image: url('/img/stmt.webp');
	pointer-events: none;
}
.revere__scroller__level[data-level='three'] {
	background-image: url('/img/billboard.webp');
	pointer-events: none;
}

.revere__scroller[viewing-level='one'] .revere__scroller__level[data-level='one']{
	opacity: 1;
}
.revere__scroller[viewing-level='two'] .revere__scroller__level[data-level='two']{
	opacity: 1;
}
.revere__scroller[viewing-level='three'] .revere__scroller__level[data-level='three'], .revere__scroller[viewing-level='three'] .revere__scroller__level[data-level='two']{
	opacity: 1;
}

.revere__scroller__title {
	opacity: 0;

	font-size: 4rem;
	text-transform: uppercase;
	font-weight: bold;
	text-align: center;
	margin: 0;
	position: absolute;
	width: 80vw;
	height: 200px;
	line-height: 200px;
	top: 50%;
	left: 10vw;
	margin-top: -100px;
	z-index: 10;
	pointer-events: none;

	transition: opacity 1s ease;
}

.revere__scroller[viewing-level='one'] .revere__scroller__title[data-level='one']{
	opacity:1;
}
.revere__scroller[viewing-level='two'] .revere__scroller__title[data-level='two']{
	opacity:1;
}
.revere__scroller[viewing-level='three'] .revere__scroller__title[data-level='three']{
	opacity:1;
}

.clients-img {
	filter: invert(1);
	opacity: .5;
	max-width: 80%;
	margin: 0 auto;
}

@media (max-width: 768px) {
	.clients-img {
		max-width: 100%;
	}
}

.contact-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    margin: 2rem 0;
}

.contact-card {
    background: rgba(255,255,255,0.03);
    padding: 2.5rem;
    border-radius: 12px;
    transition: all 0.3s ease;
    border: 1px solid rgba(0,0,0,0.1);
}

.contact-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    border-color: rgba(0,0,0,0.2);
}

.contact-icon {
    font-size: 2rem;
    text-align: center;
    margin-bottom: 1rem;
}

.contact-link {
    color: #000;
    text-decoration: none;
    transition: all 0.3s ease;
    border-bottom: 2px solid transparent;
}

.contact-link:hover {
    border-bottom: 2px solid #000;
}

.office-preview {
    margin: 4rem 0;
}


@media (max-width: 768px) {
    .contact-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .contact-card {
        padding: 1.5rem;
    }
}




/* Work Grid */
.work-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem 2rem;
    width: 100%;
    max-width: 100%;
    padding-top: 2rem;
}

/* Work Preview Items */
.work-grid .work-preview {
    position: relative;
    width: 100%;
    /* margin-bottom: 2rem!important; */
    display: flex;
    flex-direction: column;
}

/* Remove margin-bottom from two-column items since grid gap handles spacing */
.work-grid .work-preview[data-layout="two-col"] {
    margin-bottom: 0;
}

@media screen and (orientation: landscape) {
	.portrait-image {
		aspect-ratio: 1/1;
		max-height: 90vh;
	}
}

.work-grid .work-preview-image-link {
    display: block;
    position: relative;
    width: 100%;
    text-decoration: none;
}


/* Regular items (non-full width) */
.work-grid .work-preview:not(.work-preview--full) .work-preview-image-link {
    display: block;
    width: 100%;
}

.work-grid .work-preview:not(.work-preview--full) .work-preview-image {
    width: 100%;
    height: 100%;
    display: block;
}

/* Add a class for when we specifically want 16:9 */
.work-grid .work-preview.aspect-169 .work-preview-image-link {
    position: relative;
    padding-top: 56.25%;
    overflow: hidden;
}

.work-grid .work-preview.aspect-169 .work-preview-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.work-grid .work-preview.aspect-square .work-preview-image-link {
    position: relative;
    padding-top: 100%;
    overflow: hidden;
}

.work-grid .work-preview.aspect-square .work-preview-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Full width items */
.work-grid .work-preview--full {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* max-width: 1400px; */
    margin: 0 auto;
}

.work-grid .work-preview--full .work-preview-image-link {
    width: 100%;
    display: block;
}

.work-grid .work-preview--full .work-preview-image {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
}

/* Content below image */
.work-grid .work-preview-content {
    position: static;
    padding: .5rem 0;
    background: none;
    width: 100%;
    /* max-width: 1400px; */
    text-align: left;
}

.work-grid .work-preview-content .category {
    color: #777;
    text-transform: uppercase;
    font-size: 0.85rem;
    font-weight: 500;
    display: block;
    margin-bottom: 0;
    text-align: left;
}

.work-grid .work-preview-content h2 {
    margin: 0;
    margin-bottom: 0;
    font-size: 1rem;
    color: #000;
    text-transform: uppercase;
    font-weight: 400;
    text-align: left;
}

.work-grid .work-preview-content .subtitle {
    color: #777;
    margin-top: 2px;
    margin-bottom: 0;
    font-family: 'Supreme';
    font-size: .9rem;
    text-transform: capitalize;
    text-align: left;
}

@media screen and (max-width: 768px) {
    .work-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .work-grid .work-preview[data-layout="two-col"],
    .work-grid .work-preview[data-category="interactive"],
    .work-grid .work-preview[data-category="case-study"] {
        margin-bottom: 0;
    }
    
    .work-grid .work-preview-content {
        padding: 0.75rem 0;
    }
}

.row.project-details {
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    padding-bottom: 1rem;
    margin-bottom: 0;
}

.row.project-details p, .row.project-details span {
    font-family: 'DIN', sans-serif;
}

/* Services Grid */
.services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4rem;
    margin: 2rem auto;
	max-width: 80%;
}

.service-column h2 {
    margin-bottom: 2rem;
    font-size: 0.9rem;
    letter-spacing: 0.03rem;
}

.service-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.service-list li {
    color: #777;
    font-size: 1rem;
    margin-bottom: 1rem;
    font-family: "Supreme", sans-serif;
    font-weight: 400;
}

.service-list li a {
	color: inherit;
	text-decoration: none;
}   

@media (max-width: 768px) {
    .services-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
		max-width: 100%;
        /* margin-top: 1rem; */
    }

    .service-column h2 {
        margin-bottom: 1.5rem;
    }

    .service-list li {
        font-size: 1.2rem;
        margin-bottom: 1rem;
    }
}

/* About Page Styles */
.intro-text {
    font-size:2rem;
    color: #000;
    font-weight: 400;
	line-height: 1.4;
	max-width: 43ch;
    margin: 10rem auto;
}

@media screen and (max-width: 768px) {
    .intro-text {
        font-size: 1.5rem;
        margin-top: 14rem;
        margin-bottom: 8rem;
        display: block;
        /* font-size: 1.2rem; */
		/* line-height: 1.4; */
		/* text-align: left; */
        /* max-width: 100%; */
		/* margin-top: 6rem; */
    }
}

.about-text-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4rem;
    margin: 4em auto;
    max-width: 80%;
}

.about-text {
    color: #777;
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 2rem;
    font-family: "Supreme", sans-serif;
    font-weight: 400;
    letter-spacing: -0.01rem;
}

.about-text:last-child {
    margin-bottom: 0;
}

.founders-image-container {
    margin-bottom: 2rem;
}

.full-image {
    width: 100%;
    height: auto;
    display: block;
}

@media (max-width: 768px) {
    .about-text-container {
        grid-template-columns: 1fr;
        gap: 2rem;
        margin: 2rem 0;
		max-width: 100%;
    }

    .about-text {
        font-size: 0.9rem;
        margin-bottom: 1.5rem;
    }
}

.map-container {
    width: 100%;
    height: 80vh;
    position: relative;
    overflow: hidden;
}

.map-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.map-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.1);
}

.expertise-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

.expertise-box {
    aspect-ratio: 16/9;
    background: #000;
    position: relative;
    overflow: hidden;
    text-decoration: none;
    transition: all 0.4s ease-out;
	background-size: 120%;
	background-position: center;
}

.expertise-box.aspect-169 {
	aspect-ratio: 16/9;
}


.expertise-box:hover {
	background-size: 130%;
}

.expertise-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    width: 100%;
    padding: 2rem;
}

.expertise-content h2 {
    color: white;
    font-size: 1.3rem;
    font-weight: 400;
    margin: 0 auto;
    display: contents;
    letter-spacing: 0.05em;
}



@media screen and (max-width: 768px) {

    
    .expertise-grid {
		gap: 1rem;
        grid-template-columns: 1fr;
    }
	
	.expertise-content h2 {
		/* font-size: 1rem; */
	}

    .about-text {
        font-size: 1.25rem;
        line-height: 1.4;
    }
}

/* Hero Section */
.hero-section {
    position: relative;
    height: calc(100vh - 60px);
    background: #000;
    overflow: hidden;
}

.inline-hero-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
}

.inline-hero-video video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 1;
    z-index: 1;
    transition: opacity 1s ease-in;
}

.inline-hero-video video.loaded {
    opacity: 1;
}

.hero-content {
    position: absolute;
    z-index: 2;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.text-container {
    padding: 0 2rem;
    /* max-width: 800px; */
    margin: 0 auto;
    text-align: center;
}

.hero-title {
    font-size: 3.5rem;
    color: #fff;
    margin-bottom: 1rem;
    font-weight: 400;
    letter-spacing: -0.02em;
}

.hero-subtitle {
    font-size: 1.2rem;
    color: #777;
    margin: 2rem auto;
	margin-bottom: 0;
    line-height: 1.4;
    max-width: 70ch;
}

.hero-ctas {
    display: flex;
    gap: 1rem;
    justify-content: center;
}

/* Stats Section */
.proof-section {
    padding: 6rem 0;
    background: #f9f9f9;
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-bottom: 4rem;
    text-align: center;
}

.stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.stat-number {
    font-size: 2.5rem;
    font-weight: 500;
    margin-bottom: 0.5rem;
    letter-spacing: -0.02em;
}

.stat-label {
    font-size: 1rem;
    color: #777;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Services Section */
.services-section {
    padding: 6rem 0;
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-top: 2rem;
}

.service-card {
    background: #fff;
    padding: 2rem;
    border: 1px solid #eee;
    transition: all 0.3s ease;
}

.service-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.service-card h3 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    letter-spacing: -0.01em;
}

.service-card p {
    color: #777;
    margin-bottom: 1.5rem;
    line-height: 1.5;
}

.learn-more {
    color: #000;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.3s ease;
}

.learn-more:hover {
    color: #777;
}

/* Process Section */
.process-section {
    padding: 6rem 0;
    background: #000;
    color: #fff;
}

.process-section h2 {
    color: #fff;
    text-align: center;
    margin-bottom: 3rem;
}

.process-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
}

.step {
    text-align: center;
}

.step-number {
    font-size: 1.2rem;
    color: #777;
    display: block;
    margin-bottom: 1rem;
}

.step h3 {
    color: #000;
    margin-bottom: 1rem;
    font-size: 1.4rem;
}

.step p {
    color: #777;
    line-height: 1.5;
}

/* CTA Styles */
.cta {
    display: inline-block;
    padding: .6rem 0;
	margin: auto 1rem;
    text-decoration: none;
    border-radius: 0;
    /* transition: all 0.3s ease; */
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.03rem;
	border-bottom: 1px solid #000;
	font-size: .8rem;
	border-radius: 0;
	opacity: 1;
	font-family: "DIN", sans-serif;
	/* color: #fff; */
}

.cta.white {
	color: #fff;
	border-bottom: 1px solid #fff;
}

.cta:hover {
	opacity: 0.8;
}

.cta.primary {
    background: #000;
    color: #fff;
    border: 1px solid #000;
}

.cta.primary:hover {
    background: #000;
    border-color: #000;
}

.cta.secondary {
    background: transparent;
    color: #fff;
    border: 1px solid #fff;
}

.cta.secondary:hover {
    background: #fff;
    color: #000;
}

/* Responsive Adjustments */
@media screen and (max-width: 768px) {
    .hero-title {
        font-size: 2.5rem;
    }
    
    .hero-subtitle {
        font-size: 1.2rem;
        margin-bottom: 3rem;
    }
    
    /* .hero-ctas {
        flex-direction: column;
    }
     */
    .stats-grid,
    .services-grid,
    .process-steps {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    
    .stat-number {
        font-size: 2rem;
    }
    
    .service-card {
        padding: 1.5rem;
    }
    
    .process-section {
        padding: 4rem 0;
    }
}

/* Dark Mode Support */
@media (prefers-color-scheme: dark) {
    .proof-section {
        background: #000;
    }
    
    .service-card {
        background: #222;
        border-color: #000;
    }
    
    .service-card p {
        color: #ccc;
    }
    
    .learn-more {
        color: #fff;
    }
    
    .learn-more:hover {
        color: #ccc;
    }
}

.section .section-title {
    position: relative;
    display: inline-block;
    text-transform: uppercase;
    font-size: .9rem;
    letter-spacing: 0.03rem;
    color: #000;
	padding: 0;
    font-weight: 400;
    margin: 0;
	width: 100%;
	max-width: 100%;
	text-align: center;
	height: 80px;
	line-height: 80px;
}

@media (max-width: 768px) {
    .section .section-title {
        height: 60px;
        line-height: 60px;
    }
}

.section .section-title:before,
.section .section-title:after {
    content: "";
    position: absolute;
    top: 100%;
    width: 100%;
    height: 1px;
    background: #ccc;
	left: 0;
}


.section .section-title:after {
	top: 0;
}



.two-col-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}

@media screen and (max-width: 768px) {
    .two-col-grid {
        grid-template-columns: 1fr;
    }

	.two-col-grid.always {
		grid-template-columns: 1fr 1fr;
	}
}

.blog-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
    border-top: 1px solid #CCC;
    border-bottom: 1px solid #CCC;
    height: 80px;
    position: sticky;
    top: 60px; /* Height of header */
    background: white;
    z-index: 100;
    align-items: center;
}

/* Add media query for mobile screens */
@media screen and (max-width: 820px) {
    .blog-filters {
        top: 60px; /* Height of header on mobile */
        height: 60px;
        gap: 0.5rem;
        /* padding: 0 1; */
    }
    

}

.video-lightbox {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0);
    z-index: 1000;
    padding: 0;
}

.video-lightbox-content {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.preview-image-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.preview-image {
    max-width: 85vw;
    max-height: 85vh;
    width: auto;
    height: auto;
    object-fit: contain;
    opacity: 0;
}

/* Video sizing to match */
.video-lightbox video {
    max-width: min(95%, calc(95vh * 1.5));
    max-height: 95vh;
    width: auto;
    height: auto;
    object-fit: contain;
    opacity: 0;
    display: block;
    margin: 0 auto;
}

.video-lightbox video::-webkit-media-controls {
    display: none !important;
}

.video-lightbox video::-webkit-media-controls-enclosure {
    display: none !important;
}

/* Group all video UI elements */
.custom-video-controls,
.video-overlay-controls,
.video-progress,
.video-time {
    opacity: 0;
    transition: opacity 0.3s;
    pointer-events: none;
}

/* Show all controls together */
.video-lightbox-content.controls-visible .custom-video-controls,
.video-lightbox-content.controls-visible .video-overlay-controls,
.video-lightbox-content.controls-visible .video-progress,
.video-lightbox-content.controls-visible .video-time {
    opacity: 1;
    pointer-events: auto;
}

/* Center play/pause button */
.video-overlay-controls {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 180px;
    height: 180px;
    background: rgba(0,0,0,0.2);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
	cursor: pointer;
    z-index: 2;
}

.video-overlay-controls svg {
    width: 36px;
    height: 36px;
    fill: white;
}

/* Bottom controls bar */
.custom-video-controls {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60px;
    background: linear-gradient(to top, rgba(0,0,0,0.3), transparent);

    display: flex;
    align-items: center;
    padding: 0 2rem;
}

/* Remove bottom play button */
/* .play-pause-btn {
    display: none;
} */

/* Progress bar and time */
.video-progress {
    flex: 1;
    height: 2px;
    background: rgba(255,255,255,0.2);
    margin: 0 1rem;
    cursor: pointer;
    position: relative;
}

/* .video-time {
    color: white;
    font-size: 12px;
    font-family: "DIN", sans-serif;
    margin-left: 1rem;
    min-width: 50px;
    text-align: right;
} */

/* Add 16:9 aspect ratio for case study projects */
.work-preview[data-category="case-study"] .work-preview-image-link {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%; /* 16:9 aspect ratio */
    display: block;
    overflow: hidden;
}

.work-preview[data-category="case-study"] .work-preview-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/* Update styles for main navigation links */
.main-nav-links {
    display: flex;
    position: absolute;
    width: 100%;
    height: 60px;
    align-items: center;
    z-index: 776;
}

.main-nav-links a {
    color: #585858;
    text-decoration: none;
    text-transform: capitalize;
    font-size: .9rem;
    font-family: "Supreme", sans-serif;
    font-weight: 500;
    transition: color 0.3s;
    pointer-events: auto;
    height: 60px;
    line-height: 60px;
}

/* Position links exactly as in the reference image */
.main-nav-links a:nth-child(1) {
    position: absolute;
    left: 15%;
}

.main-nav-links a:nth-child(2) {
    position: absolute;
    left: 33%;
    transform: translateX(-50%);
}

.main-nav-links a:nth-child(3) {
    position: absolute;
    right: 33%;
    transform: translateX(50%);
}

.main-nav-links a:nth-child(4) {
    position: absolute;
    right: 15%;
}

/* Active state for current page */
body[page="about"] .main-nav-links a[href="/about"],
body[page="work"] .main-nav-links a[href="/work"],
body[page="contact"] .main-nav-links a[href="/contact"],
body[page="blog"] .main-nav-links a[href="/blog"] {
    color: #000;
}

@media (max-width: 768px) {
    .main-nav-links {
        display: none;
    }
}

/* Testimonials Grid Styles */
.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4rem;
    margin: 2rem auto;
    max-width: 80%;
}

.testimonial-intro {
    grid-column: 1 / -1;
}

.testimonial-intro h2 {
    margin-top: 1.5rem;
    font-size: 0.9rem;
    letter-spacing: 0.03rem;
}

.testimonial {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.testimonial h3 {
    font-family: "DIN", sans-serif;
    font-size: 1.1rem;
    margin: 0;
}

.testimonial .author {
    font-size: 0.8rem;
    text-transform: uppercase;
    color: #999;
    margin: 0;
    margin-top:-.5rem;
    /* letter-spacing: 0.05rem; */
    font-family: "DIN", sans-serif;
}

.testimonial-text {
    color: #777;
    font-size: 0.9rem;
    line-height: 1.6;
    margin: 0;
    font-family: "Supreme", sans-serif;
    font-weight: 400;
    max-width: 40ch;
}

@media (max-width: 768px) {
    .testimonials-grid {
        grid-template-columns: 1fr;
        gap: 3rem;
        margin: 2rem 0;
        max-width: 100%;
    }

    .testimonial {
        gap: 1rem;
    }

    .testimonial-text {
        max-width: none;
    }
}

/* Contact page styles */
.contact-methods-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    margin: 4rem auto;
    max-width: 600px;
    margin-top: 0;
    text-align: center;
}

.contact-method h2 {
    color: #777;
    font-size: 0.9rem;
    letter-spacing: 0.03rem;
    margin-bottom: 1rem;
}

.contact-link {
    font-family: "DIN", sans-serif;
    text-transform: uppercase;
    font-size: 1.1rem;
    text-decoration: none;
    color: #000;
    transition: opacity 0.3s;
}

.contact-link:hover {
    opacity: 0.7;
}

.office-preview {
    margin: 4rem 0;
	margin-top:0;
}

.office-caption {
    /* margin-top: 1rem; */
    color: #777;
    font-size: 0.9rem;
}

@media (max-width: 768px) {
    .contact-methods-grid {
        grid-template-columns: 1fr;
        gap: 0rem;
        margin: 2rem 0;
        max-width: 100%;
        margin-bottom: 4rem;
    }

    .contact-method {
        margin-bottom: 0;
    }

    .contact-link {
        font-size: 1.4rem;
    }
}

/* Visit section styles */
.visit-address {
    text-align: center;
    margin: 0 auto 4rem;
    max-width: 50%;
}

.address-line {
    font-family: "DIN", sans-serif;
    text-transform: uppercase;
    font-size: 1.1rem;
    color: #000;
    margin: 0;
    line-height: 1.8;
}

.address-link {
    display: inline-block;
    margin-top: 1.5rem;
    font-family: "Supreme", sans-serif;
    font-size: 0.9rem;
    color: #777;
    text-decoration: none;
    transition: color 0.3s;
}

.address-link:hover {
    color: #000;
}

@media (max-width: 768px) {
    .visit-address {
        max-width: 100%;
        margin-bottom: 2rem;
    }
    
    .address-line {
        font-size: 1rem;
    }
}

/* Update styles for the mail icon */
.icon-link {
    position: absolute;
    right: 20px;
    top: 0;
    height: 60px;
    display: flex;
    align-items: center;
    z-index: 779;
}

.icon-link svg {
    width: 32px;
    height: 32px;
    transition: all 0.3s ease;
}

.icon-link:hover {
    color: #000;
}

body[page="contact"] .icon-link {
    color: #000;
}

@media (max-width: 768px) {
    .icon-link {
        height: 60px;
    }
    
    .icon-link svg {
        width: 24px;
        height: 24px;
    }
}

/* Add fade-in animation styles */
.work-preview {
    opacity: 0;
    /* transform: translateY(20px); */
    transition: opacity 1s ease-out;
}

.work-preview.fade-in {
    opacity: 1;
    /* transform: translateY(0); */
}

/* Add stagger effect */
.work-preview:nth-child(2) { transition-delay: 0.1s; }
.work-preview:nth-child(3) { transition-delay: 0.2s; }
.work-preview:nth-child(4) { transition-delay: 0.3s; }

/* Splash Screen Styles */
.splash-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: #000;
  z-index: 2000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: opacity 1s ease, visibility 1s ease; /* Add visibility transition */
  overflow: hidden;
  visibility: visible; /* Start visible */
}

.splash-screen.hidden {
  opacity: 0;
  visibility: hidden; /* Hide completely after transition */
  transition: opacity 1s ease, visibility 1s ease 1s; /* Delay visibility change */
  pointer-events: none;
}

.splash-logo {
  width: 250px; /* Increased from 150px */
  margin: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  transition: transform 0.8s ease, opacity 0.8s ease;
}

.splash-screen.animate-out .splash-logo {
  transform: translate(-50%, -150vh);
  opacity: 0;
}

.splash-enter {
  position: absolute; /* Change back to absolute positioning */
  bottom: 15vh; /* Position from bottom */
  z-index: 2; /* Ensure button is above video */
  padding: 0.8rem 2rem;
  background: transparent;
  color: white;
  border: 1px solid white;
  font-family: "DIN", sans-serif;
  text-transform: uppercase;
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: all 0.3s ease, transform 0.8s ease, opacity 0.8s ease;
  margin-top: 0; /* Remove margin-top */
}

.splash-enter:hover {
  background: rgba(255, 255, 255, 0.1);
}

.splash-screen.animate-out .splash-enter {
  transform: translateY(50vh);
  opacity: 0;
}

.splash-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.5s ease;
  z-index: 1; /* Ensure video is above the background */
  background: #000; /* Black background for the video */
}

.splash-video.visible {
  opacity: 1 !important; /* Force opacity with !important */
}

/* Hide header initially when splash screen is active */
body[splash-active="true"] #header {
  transform: translateY(-100%);
  transition: transform 0.5s ease;
}

/* Show header after splash screen is dismissed */
body:not([splash-active="true"]) #header {
  transform: translateY(0);
  transition: transform 0.5s ease;
}

/* Add this to your existing splash screen styles */
.splash-skip {
  position: absolute;
  bottom: 5vh;
  padding: 0.5rem 1rem;
  background: rgba(255,255,255,0.2);
  color: white;
  border: none;
  font-family: "DIN", sans-serif;
  text-transform: uppercase;
  font-size: 0.8rem;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: all 0.3s ease;
}

.splash-skip:hover {
  background: rgba(255,255,255,0.3);
}

.video-background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 1;
}

.video-background video {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  transform: translateX(-50%) translateY(-50%);
  background-size: cover;
  transition: opacity 0.5s ease;
  opacity: .6;
}

.video-background video.visible {
  opacity: 1;
}

.splash-fallback-image {
  position: fixed; /* Change to fixed to match splash-screen */
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-size: cover;
  background-position: center;
  z-index: 0;
  opacity: 0.5;
}

/* Adjust logo size for mobile devices */
@media (max-width: 768px) {
  .splash-logo {
    width: 150px; /* Keep the original size on mobile */
  }
}

/* Disable scrolling when splash screen is active */
body[splash-active="true"] {
  overflow: hidden;
  height: 100vh;
  position: fixed;
  width: 100%;
}

/* Reset body styles when splash screen is dismissed */
body:not([splash-active="true"]) {
  overflow: auto;
  height: auto;
  position: static;
  width: auto;
}

/* Ensure content doesn't jump when switching between fixed and static positioning */
body[splash-active="true"] .main {
  margin-top: 0;
}

/* Add fade-in animation for hero video */
.inline-hero-video video {
  opacity: 0;
  transition: opacity 1.5s ease-in;
}

.inline-hero-video video.loaded {
  opacity: 1;
}

/* Enhance splash screen animations */
.splash-logo {
  width: 250px;
  margin: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  transition: transform 0.8s ease, opacity 1.2s ease;
  opacity: 0; /* Start invisible */
}

.splash-logo.visible {
  opacity: 1;
}

.splash-enter {
  position: absolute;
  bottom: 15vh;
  z-index: 2;
  padding: 0.8rem 2rem;
  background: transparent;
  color: white;
  border: 1px solid white;
  font-family: "DIN", sans-serif;
  text-transform: uppercase;
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: all 0.3s ease, transform 0.8s ease, opacity 0.8s ease;
  margin-top: 0;
  opacity: 0; /* Start invisible */
  transform: translateY(20px); /* Start slightly below final position */
}

.splash-enter.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Update animation for when exiting */
.splash-screen.animate-out .splash-logo {
  transform: translate(-50%, -150vh);
  opacity: 0;
}

.splash-screen.animate-out .splash-enter {
  transform: translateY(50vh);
  opacity: 0;
}

/* Improved splash screen text messages */
.splash-message {
  position: fixed; /* Use fixed instead of absolute */
  top: 50%; /* Center vertically */
  left: 50%; /* Center horizontally */
  transform: translate(-50%, -50%); /* Perfect centering */
  text-align: center;
  color: white;
  font-family: "DIN", sans-serif;
  z-index: 10;
  opacity: 0;
  transition: opacity 1.5s ease;
  font-size: 3rem;
  font-weight: 300;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin: 0 auto;
  width: 90%;
  max-width: 1200px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
}

.splash-message.visible {
  opacity: 1 !important; /* Force visibility with !important */
}

.splash-message.hidden {
  opacity: 0 !important;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .splash-message {
    font-size: 2rem;
  }
}

@media (max-width: 480px) {
  .splash-message {
    font-size: 1.8rem;
  }
}

/* Mobile hero image styles */
.mobile-hero-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('/img/hero-poster.webp');
    background-size: cover;
    background-position: center;
    display: none;
    opacity: 0;
    transition: opacity 0.5s ease;
}

/* Desktop/mobile visibility classes */
@media (max-width: 768px) {
    .desktop-only-video {
        display: none !important;
    }
    
    .mobile-hero-image {
        display: block !important;
        opacity: 1 !important;
    }
}

/* Ensure hero section maintains proper height on mobile */
@media (max-width: 768px) {
    .hero-section {
        height: 60vh;
        min-height: 300px;
    }
}

/* Hide hero section completely on mobile */
@media (max-width: 768px) {
    .hero-section {
        display: none !important;
    }
    
    .desktop-only {
        display: none !important;
    }
}

#__EAAPS_PORTAL {
    height: 0;
}