@charset "utf-8";
address,
article,
aside,
button,
blockquote,
body,
dd,
dialog,
dl,
dt,
fieldset,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
li,
nav,
ol,
p,
pre,
section,
td,
th,
tr,
ul {
  margin: 0;
  padding: 0;
}


:root {
  --active-text: #c4c3b5;
  --active-subText: #827f72;
  --active-background: #120f0d;
}


body, 
  .transition-slide /* Add this */ { 
    background: #120f0d;
  }	
	
body {
  background: var(--active-background);
  color: var(--active-text);
  margin: 0;
  padding: 0;
  font-family: "AGB1";
  width: 100vw !important;
  overflow-x: hidden;
  overflow:hidden;	
  line-height: 0;
  touch-action: manipulation !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
	

a {color: #aba99d;}	
.microType{color: #aba99d;}
.microType a {color: #aba99d;}	
.descripType{color: #aba99d;}	
.section {background: #120f0d;}	
.section img {mix-blend-mode:lighten;}
.slides-container {background:#120f0d;}
.imgMode {mix-blend-mode:lighten;}	
.menuFace {color: var(--active-text);}	
.menuFace.active {color:#dddcd2;}
.menuFace.active a{color:#dddcd2;}	
.backgroundCC {background: #120f0d;}	
.txtColor {color: var(--active-text);}	
.mask {opacity:1; filter: invert(1) saturate(0); border: #120f0d; box-sizing: border-box; mix-blend-mode:lighten;}		
.menuCloser {color:#dddcd2 !important;}
.lowerMenuOPT a {color:#aba99d !important;}		
	


.marqueeText {color:#2b2209;}


@font-face {
  font-family: "AGB1";
  src: url("AmericanGrotesk-NormalBold.otf")
    format("opentype");
}

@font-face {
  font-family: "RM1";
  src: url("RandMono-Regular.otf")
    format("opentype");
}

a {color: var(--active-text); text-decoration:none;}

.btn:focus {
  outline: none !important;
  box-shadow: none !important;
}

::-webkit-scrollbar {
  display: none !important; 
  width: 0px !important;	
  opacity: 0 !important; 	
}

html {
    -webkit-text-size-adjust: 100%; /* Prevent font scaling in landscape while allowing user zoom */
}


html.is-changing .container.is-leaving,
html.is-changing .container2.is-leaving {
    pointer-events: none;
    user-select: none;
}

.swup-slot { position: relative; height: 100dvh; overflow: hidden;}

.transition-slide {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 100dvh;
  backface-visibility: hidden;
  will-change: transform, opacity;
  transform: translateZ(0);	
}


.lazyload,
.lazyloading {
	opacity: 0;
}
.lazyloaded {
	opacity: 1;
	transition: opacity 500ms;
}


h1 {
  font-family: "AGB1";
  line-height: 1em;
  font-weight:normal;
  	
}

h2 {
  font-family: "AGB1";
  line-height: 1em;
  font-weight:normal;
  letter-spacing:.3em;	
  	
}


.container {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: scroll;
  scroll-snap-type: y mandatory;
  scroll-snap-align: center;
  -webkit-transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  will-change:transform;	
	
}

.section {
  height: 100vh;
  width: 100vw;
  position: relative;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  scroll-snap-align: center;
  -webkit-transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  will-change:transform;		
	
}

.section img {
  position: relative;
  width: 100%;
  height: 100%;
  object-fit: cover;
}



.caption1 {
  display: none;
}

.caption2 {
  display: none;
}


.microType{
  font-family: "RM1";
   font-size:1vw;
   line-height:1em;
   letter-spacing:.1em;
	text-transform:uppercase;
}

.menuFace {
  font-family: "RM1";
   font-size:1vw;
   line-height:1.3em;
   letter-spacing:.1em;
	text-transform:uppercase;
	transition: color 0.3s ease;
}



.descripType{

 font-family: "RM1";
   font-size:14px;
   text-align:center;	 
   line-height:1.5em;
   letter-spacing:.1em;
	text-transform:uppercase;
	
	
}	

.mediumType{
  
   font-size:70px;
   line-height:1em;
   letter-spacing:.4em;
   text-transform:uppercase;
   text-align:center;	
}


.largeType{
  
   font-size:70px;
   line-height:1em;
   letter-spacing:.4em;
	text-transform:uppercase;
}


.homeTitles {width:50vw; height:80vh;}	
.projectTitles {width:50vw; height:80vh;}
.projectTitles2 {width:50vw; height:80vh;}


.xlargeType{
  
   font-size: 25px;
   line-height: 1.3em;
   letter-spacing:-.03em;
   text-transform:uppercase;
}

.xlargeType a{
	 color: #d1cebc;
}	

.hugeType{
  
   font-size: 12vw;
   line-height: 1em;
   letter-spacing:.06em;	
   text-transform:uppercase;
	color: #cccbbe;
}


.logoHolder {
   white-space: normal;
      width: 100%;
      text-align: left;
	display: flex;
  flex-direction: column;
  justify-content: space-evenly; /* distributes lines evenly */
  height: 100%;
	will-change: transform;
}


.block {
      white-space: normal;
      width: 100%;
      text-align: left;
	display: flex;
  flex-direction: column;
  justify-content: space-evenly; /* distributes lines evenly */
  height: 100%;
	opacity:0;
    }


.container .block, 
.container2 .block {
  opacity: 0;
}

.primaryLogo {position:fixed; top:0; left:0; z-index:99999 !important; height:100vh; width:100vw; pointer-events:none; display:flex !important; align-items:center; justify-content:center;}





.descrContain {
	width:40vw; height:auto; padding-top:10px; padding-bottom:10px;
}

.captioner1 {
  display: none;
}

.slides-container {
  position: relative;
  top:0;	
  overflow: hidden;  
  display: flex;
  flex: 1;
  height:100vh;
  width:100vw;	
  transform: will-change	
}

.slides-inner {
  top:0;	
  position: absolute;
  height: 100%;
  width: 100%;  
  overflow: hidden;
}

.slide {
  position: absolute;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
   height:100vh;
  width: 100vw;
}

.slide img {
  object-fit: cover;
  width:100vw;
  height:100vh;		
}

.slide video {

width:auto; height:90vh; max-width:100vw; object-fit:cover; mix-blend-mode:lighten;

}	
	
.prevButton{
  position:absolute;
  left:0;
  top:0;
  width:10vw;
  height:100%;
  opacity:0;
  z-index:10;
  cursor:pointer;
}

.nextButton{
   position:absolute;
  right:0;
   top:0;
  width:10vw; 
  height:100%;
  opacity:0;
  z-index:10;
  cursor:pointer;
}

.stickyContainer {
   z-index:100 !important;
  will-change: transform, opacity;
}
.stickyContainer.is-hidden {
  transform: translateY(-15px);
  opacity: 0;
  pointer-events: none;
}

.bottomSet {position:fixed; bottom:2em; left:0; width:97vw; margin-left:1.5vw; display:flex; justify-content:space-between; flex-direction:column; z-index:1; pointer-events:auto !important;}



 /*
  * 
  * 
  * MAINFRAME
  * 
  * 
  * 
  */ 
  

.mainframe {
  opacity: 1 !important;
  transition: opacity 0.25s;
}
.mainframe.is-hidden {
  opacity: 0 !important;
}


.vertical-stack-wrapper {
	display:flex;
	flex-direction:column; 
	gap:0px;
}



.mainHolder {display:flex; align-items:end; justify-content:space-evenly; flex-wrap:wrap; gap: 200px; width:100vw; min-height:100dvh; position:relative; z-index:10;}


.wp-media-block + .wp-media-block {
    margin-top: 0px;
}

.wp-media-block {
    display: flex;
    width: 100vw;
	box-sizing:border-box; 
}
.align-left   { justify-content: flex-start; align-items:end; padding:5%; }
.align-center { justify-content: center; align-items:start; }
.align-right  { justify-content: flex-end; align-items:end; padding:5%; }

/* Image Scaling */
.scale-small  { width: 25%; margin-left:5%; margin-right:5%; height: auto; }
.scale-medium { width: 47%; height: auto; }
.scale-large  {  width: 90%; height: auto; object-fit: contain; }
.scale-xlarge { width: 90%; height: auto; }

/* --- New Row Mode --- */
.row-mode {
    /* Inherits display:flex and width:100vw from .wp-media-block */
    justify-content: space-between; 
    align-items: flex-end;
    padding: 0 5%; /* Optional: Adds safety gutters on the far edges */
    box-sizing: border-box;
}

/* Reset margins inside row-mode so space-between works correctly */
.row-mode img {
    margin-left: 0;
    margin-right: 0;
}







.navHolder {background: rgba(18,15,13,.8); position:absolute; flex-direction:column; top:0; left:0; display:flex; gap:100px; width:100vw; height:100vh; align-items:center; justify-content:center; pointer-events:none;}

.refHolder {flex-wrap:wrap; gap: 200px; display:flex; width:100%; min-height:100dvh; justify-content:space-evenly; align-items:flex-end; position:relative; z-index:100;}	
	
.refItem {flex-wrap:wrap; gap:200px; display:flex; width:100%; height:auto; justify-content:center; align-items:flex-end; position:relative; z-index:100; box-sizing:border-box; padding-top:0px;}

.refItem .scale-small {padding:0px; padding-bottom:0px; padding-top:0px;}
.refItem .scale-medium {padding-bottom:0px;}



.introSheet {background: #ffce13; pointer-events:none; width:100vw; height:100dvh; position:absolute; top:0; left:0; z-index:9999 !important; display:flex; align-items:center; justify-content:center;}



.introPadding {
		padding:10px; padding-bottom:0px;
	}




.topAL {position:fixed; left:2.5em; top:2.5em;}
.topINDEX {position:fixed; right:2.5em; top:2.5em;  display:flex; gap:20px;}


.project-titles-list {margin-top:80px; margin-bottom:40px; padding: 40px;}











@media only screen and (max-height: 1000px) {
	
	
	
	
.mediumType{
  
   font-size:60px;
   line-height:1em;
   letter-spacing:.4em;
   text-transform:uppercase;
   text-align:center;	
}


.largeType{
  
   font-size:60px;
   line-height:1em;
   letter-spacing:.4em;
	text-transform:uppercase;
}


.homeTitles {width:50vw; height:90vh;}	
.projectTitles {width:50vw; height:90vh;}
.projectTitles2 {width:50vw; height:90vh;}	


}






.index-grid {display: grid; grid-template-columns: repeat(7, 1fr); gap: 20px; align-items: end; width: 100%; padding: 20px; padding-bottom: 0px; box-sizing: border-box;}

.lowerNavHolder {position:fixed; bottom:0; padding-bottom:0; display:flex; justify-content:center; align-items:center; gap:80px; flex-direction:column; height:100%; width:100%; background:none; pointer-events:none;}


/* --- Production Lightbox Styles --- */
.image-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100dvh;
    background: rgba(0, 0, 0, 0.96);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
}

/* Hard isolate pointer events so closed modal never blocks page scroll */
.image-modal-overlay,
.image-modal-overlay * {
    pointer-events: none !important;
}

.image-modal-overlay.is-open,
.image-modal-overlay.is-open * {
    pointer-events: auto !important;
}

.image-modal-content {
    position: relative;
    width: 100vw;
    height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.image-modal-content img.modal-layer {
    position: absolute;
    height: 100dvh;
    width: auto;
    max-width: 100vw;
    object-fit: contain;
    display: block;
    will-change: transform, opacity;
    outline: none !important;
    border: none !important;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
    -webkit-user-drag: none;
    backface-visibility: hidden;
}

/* Hide empty images to prevent browser fallback boxes */
.image-modal-content img.modal-layer:not([src]),
.image-modal-content img.modal-layer[src=""] {
    opacity: 0 !important;
    visibility: hidden !important;
}




@media only screen and (max-width: 800px) {
	
	
.project-titles-list {margin-top:40px; margin-bottom:40px; padding: 25px;}

	
	
.topAL {position:fixed; left:1.5em; top:1.5em;}
.topINDEX {position:fixed; right:1.5em; top:1.5em;  display:flex; gap:20px;}
	
	
.lowerNavHolder {position:fixed; bottom:0; padding-bottom:5vh; display:flex; justify-content:center; align-items:center; gap:80px; flex-direction:column; height:100%; width:100%; background:none; pointer-events:none;}	
	
	
	
	.stickyContainer a,
  .stickyContainer .openButton {
    position: relative;
    display: inline-block; 
  }

  /* 2. Create an invisible 15px hit-box extending in all directions */
  .stickyContainer a::after,
  .stickyContainer .openButton::after {
    content: '';
    position: absolute;
    top: -15px;
    bottom: -15px;
    left: -15px;
    right: -15px;
    z-index: 10; 
  }
	
	.index-grid {display: grid; grid-template-columns: repeat(5, 1fr); gap: 5px; align-items: end; width: 100%; padding:0; padding-bottom: 5px; box-sizing: border-box;}


	

	.introSheet {background: #ffce13; pointer-events:none; width:100vw; height:115dvh; position:absolute; top:0; left:0; z-index:9999 !important; display:flex; align-items:center; justify-content:center;}

	.introPadding {
		padding:10px; padding-bottom:70px;
	}

	
	body {height:108vh; 
		overflow:hidden !Important;
	 overscroll-behavior: none!Important;
  touch-action: none!Important;
  overflow: hidden;}
	
	
h2 {
  font-size:3vw;	
  font-family: "AGB1";
  line-height: 1em;
  font-weight:normal;
  letter-spacing:.3em;	
  	
}	

	
.bottomSet {position:fixed; bottom:.5em; left:0; width:99vw; margin-left:.5vw; display:flex; justify-content:space-between; flex-direction:column; z-index:1; pointer-events:auto !important;}
	
	
.wp-media-block + .wp-media-block {
    margin-top: 0px;
}	
	
.vertical-stack-wrapper {
	display:flex;
	flex-direction:column; 
	gap:0px;
}

	
.refHolder {flex-wrap:wrap; gap: 25px; display:flex; width:100%; min-height:100dvh; justify-content:space-evenly; align-items:flex-end; position:relative; z-index:100;}	
	
.refItem {flex-wrap:wrap; gap:25px; display:flex; width:100%; height:auto; justify-content:center; align-items:flex-end; position:relative; z-index:100; box-sizing:border-box; padding-top:0px;}

.refItem .scale-small {padding:0px; padding-bottom:0px; padding-top:0px;}
.refItem .scale-medium {padding-bottom:0px;}

	
.mainHolder {display:flex; align-items:end; justify-content:space-evenly; flex-wrap:wrap; gap:25px; width:100vw; min-height:100dvh; position:relative; z-index:10; }	
		
.wp-media-block + .wp-media-block {
    margin-top: 0px;
}

.wp-media-block {
    display: flex;
    width: 100vw;
}
	
.align-left   { justify-content: center; align-items:center; padding:0%; }
.align-center { justify-content: center; align-items:center; }
.align-right  { justify-content: center; align-items:center; padding:0%; }

/* Image Scaling */
.scale-small  { width: 95%; margin-left:0%; margin-right:0%; height: auto; }
.scale-medium { width: 95%; height: auto; }
.scale-large  { width: 95%; height: auto; }
.scale-xlarge { width: 95%; height: auto; }
	
/* --- New Row Mode --- */
.row-mode {
    /* Inherits display:flex and width:100vw from .wp-media-block */
    justify-content: space-between; 
    align-items: center;
    padding: 0px; /* Optional: Adds safety gutters on the far edges */
    box-sizing: border-box;
	flex-direction:column;
	gap:25px;
}

/* Reset margins inside row-mode so space-between works correctly */
.row-mode img {
    margin-left: 0;
    margin-right: 0;
}
	
	


	.architectureRef {padding-top:100px !important; padding-bottom:100px !important;}	
	



.refItem .scale-small {padding:0px;}
.refItem .scale-medium {padding:0px;}	
	
.navHolder {
    background: rgba(18, 15, 13, 0.8);
    position: fixed; /* Changed from absolute to lock it to the screen */
    top: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    gap: 50px;
    width: 100%; /* 100% is often safer than 100vw to prevent horizontal scrollbars */
    
    /* Viewport Height Stack */
    height: 100vh; /* Fallback for older browsers */
    height: 100dvh; /* The magic fix for mobile browser UI changes */
    
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 9999; /* Add this to guarantee it sits above everything else */
}
	
	
	
.menuFace {
  font-family: "RM1";
   font-size:3vw;
   line-height:1.3em;
   letter-spacing:.1em;
	text-transform:uppercase;
	transition: color 0.3s ease;
}	
	
	
.descrContain {
	position:relative; width:70vw; height:auto; padding-top:100px; padding-bottom:100px;
}
	
	
.logoHolder {
   white-space: normal;
      width: 100%;
      text-align: left;
	display: flex;
  flex-direction: column;
  justify-content: space-evenly; /* distributes lines evenly */
  height: 100%;
	will-change: transform;
}


.block {
      white-space: normal;
      width: 100%;
      text-align: left;
	display: flex;
  flex-direction: column;
  justify-content: space-evenly; /* distributes lines evenly */
  height: 100%;
    }	
	
	
.microType{
  font-family: "RM1";
   font-size:2vw;
   line-height:1em;
   letter-spacing:.2em;
	text-transform:uppercase;
	
}	
	

.homeTitles {width:75vw; height:70vh;}	
.projectTitles {width:75vw; height:70vh;}
.projectTitles2 {width:75vw; height:70vh;}	
	

	
.mediumType{
  
   font-size:7vw;
   line-height:1em;
   letter-spacing:.25em;
	text-transform:uppercase;
}


.largeType{
  
   font-size:7.5vw;
   line-height:1em;
   letter-spacing:.4em;
   text-transform:uppercase;
}


.xlargeType{
  
   font-size: 3.5vw;
   line-height: 1.3em;
   letter-spacing:0em;
	text-transform:uppercase;
}
	
	
.descripType{

 font-family: "RM1";
   font-size:2.25vw;
   line-height:1.5em;
   letter-spacing:.1em;
	text-transform:uppercase;

	
}	
	
	
.swup-slot { position: relative; height: 108vh; overflow: hidden; }

.transition-slide {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 108vh;
  backface-visibility: hidden;
  will-change: transform, opacity;
  transform: translateZ(0);	
}	
	
.container {
  position: sticky;
  top: 0;
  height: 108lvh;
  overflow-y: scroll;
  scroll-snap-type: y mandatory;
  scroll-snap-align: center;
  -webkit-transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  will-change:transform;
}

.section {
 height: 108vh;
  width: 100vw;
  position: relative;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  scroll-snap-align: center;
}	

.slides-container {
  position: relative;
  top:0;	
  overflow: hidden;  
  display: flex;
  flex: 1;
  height: 108vh;
  width:100vw;	
  pointer-events:none !important;	
  transform: will-change	
}
	
.slides-inner {
  top:0;	
  position: absolute;
  height: 100%;
  width: 100%;  
  overflow: hidden;
}	

.slide {
  position: absolute;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  height: 108vh;
  width: 100vw;
}

.slide img {
  object-fit: cover;
  width:100vw;
  height: 108vh;	
}
	
	
	
	
}


*:focus {
  outline: 0;
  outline: none;
}


