:root {

    /* site colors */
    
    --bgWhite: #fafafa;
    --bgBlack: #111111;
    --bgGrey: #dfdfdf;
    --subheadBGGrey: #262626;
    --subheadFGGrey: #8b8b8b;
   


    
    /* project colors */
    
    /* page theme color */
    --themeColor: #ffffff;
    --themeColorBG: #6a6a6a;


    /* nav colors */
    --navActive: #858585;
    --navHover: #a9a9a9;
    



    
    /* spacing */
    
    --spacer01: 0.618rem;

    /* nav */
    --navGap: 1.4rem;
    --navGapHalf: calc(var(--navGap) * 0.35);

    /* inner content */
    --innerContentWidth: calc(100% - (5 * var(--spacer01)));
    
    
    /* easing */
    
    
    
    
    /* typography */
    
    --fsDefault: 1.19rem;
    --fsSmall: 0.98rem;
    --fsXSmall: 0.7rem;
    --fsLabelHeader: 3.211rem;


    /* navigation */
    --fsNav: 0.735rem;
    
    
    /* other */
    
    /* border-radius */
    --border-radius: 0.46875rem; 
    
    }
    
    
    /* loading fonts */

    /* inter sans variable */

    .inter-variable {
      font-family: "Inter", sans-serif;
      font-optical-sizing: auto;
      font-style: normal;
    }
    
    /* joan serif */
    
    .joan-regular {
        font-family: "Joan", serif;
        font-weight: 400;
        font-style: normal;
      }
    
    /* miletus-grotesk */
    
    
    @font-face {
      font-family: 'Miletus Grotesk';
      src: url('/assets/fonts/miletus/MiletusGrotesk-Light.otf') format('opentype');
      font-weight: 300;
      font-style: normal;
      font-display: swap;
    }
    
    @font-face {
      font-family: 'Miletus Grotesk';
      src: url('/assets/fonts/miletus/MiletusGrotesk-Regular.otf') format('opentype');
      font-weight: 400;
      font-style: normal;
      font-display: swap;
    }
    
    @font-face {
      font-family: 'Miletus Grotesk';
      src: url('/assets/fonts/miletus/MiletusGrotesk-Medium.otf') format('opentype');
      font-weight: 500;
      font-style: normal;
      font-display: swap;
    }
    
    @font-face {
      font-family: 'Miletus Grotesk';
      src: url('/assets/fonts/miletus/MiletusGrotesk-Bold.otf') format('opentype');
      font-weight: 700;
      font-style: normal;
      font-display: swap;
    }
    
    @font-face {
      font-family: 'Miletus Grotesk';
      src: url('/assets/fonts/miletus/MiletusGrotesk-Black.otf') format('opentype');
      font-weight: 900;
      font-style: normal;
      font-display: swap;
    }
    
    
    
    /* html / body / universal tags */
    
    html {
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
    
        box-sizing: border-box;
    
        text-rendering: optimizeLegibility;
        font-synthesis: none;
        -webkit-font-smoothing: antialiased;
    }
    
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    
    body {
        padding: 0;
        margin: 0;
        position: relative;
    
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    
        overflow: hidden;
        
    
        background-color: var(--bgWhite);
        color: var(--bgBlack);

        max-width: 100%;
        min-height: 100vh;
    }

    body::selection {
      background: var(--themeColor);
      color: var(--bgBlack);
    }




    
    a {
        color: inherit;
        text-decoration: none;
    }



/* content containers */

/* outer */

.outer {

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-evenly;

  
    
 
    min-width: 100%;
    max-width: 100%;
    height: 100vh;


    background-color: var(--bgWhite); 

    
    background: linear-gradient(to right,
    rgba(0, 0, 0, 0.175) 0%,
    rgba(255, 255, 255, 1) 35%,
    rgba(255, 255, 255, 1) 50%,
    rgba(255, 255, 255, 1) 65%,
    rgba(0, 0, 0, 0.175) 100%);

    transition: background-color 0.28s ease;

}



/* next project */

.nextProject {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  transition: transform 0.28s ease;
  transform-origin: center center;

}

.nextProject:hover {
  transform: scale(1.10);
}

.nextProjectSVG {
color: var(--buttonGrey);

width: 100%;
height: 100%;
}

/* previous project */

.previousProject {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  transition: transform 0.28s ease;
  transform-origin: center center;

}

.previousProject:hover {
  transform: scale(1.10);
}

.previousProjectSVG {
color: var(--buttonGrey);

width: 100%;
height: 100%;
}






/* navigation */

.navItem {
  font-family: "Miletus Grotesk";
  font-size: var(--fsNav);
  color: var(--bgBlack);
  opacity: 1;
  transition: color 0.28s ease;
}

.navItem:hover {
  color: var(--navHover);
}

.navItem a {
  cursor: pointer;
  transition: color 0.28s ease;
}

/* Active nav item styling for Play page */
.navItem.active {
  color: var(--navActive);
}

.navItem.active:hover {
  color: var(--navActive);
}

.navContainer.hidden .navItem {
  opacity: 0;
  transition: opacity 0.28s ease;
}



.navContainer {
  font-family: "inter-variable";
  font-weight: 400;
  font-size: var(--fsNav);
  width: 100%;
  display: flex;
  position: sticky;
  z-index: 3;
  align-items: center;
  justify-content: center;
  background: transparent;
  flex-shrink: 0;
  gap: var(--navGap);
  cursor: default;
  height: calc(8 * var(--spacer01));
  transition: height 0.28s ease;
}

.navContainer div {
  visibility: visible;
  transition: visibility 0.28s ease;
}



/* nav pair */

.navPair {
  display: flex;
  gap: var(--navGapHalf);
}


/* nav hiding interaction */

.navContainer.hidden {
  height: 0 !important;
  overflow: hidden;
  padding: 0 !important;
  transition: height 0.28s ease, padding 0.28s ease;
}












/* inner */


.inner {
  display: flex;
  flex-direction: column;

  position: relative;
  
 
  width: calc(100% - 2 * var(--spacer01));
  height: 100vh;
  overflow-y: scroll;
  scrollbar-width: none;

  margin-top: 0;


  background-color: #151515;
  background-color: var(--bgWhite);
  top: 0;

  z-index: 0;
  will-change: transform;
  border-radius: var(--border-radius) var(--border-radius) 0 0;

}

.inner.scrolled {
  margin-top: calc(1 * var(--spacer01));
  transition: margin-top 0.28s ease;
}

/* inner content */

.innerContent {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  width: 100%;
  height: auto;
 
  padding-left: calc(0 * var(--spacer01));
  padding-right: calc(0 * var(--spacer01));


  border-radius: var(--border-radius);


  gap: calc(5 * var(--spacer01));
  z-index: 3;
}

.innerContent::-webkit-scrollbar {
  display: none;
}


/* hero */

.hero {
  display: flex;
  align-content: center;
  justify-content: center;
  position: relative;
  background-color: var(--themeColor);
  border-radius: var(--border-radius);
  overflow: hidden;
  transition: background-color 0.28s ease;
  width: 100%;
  max-width: 100%;
}



.hero video, .hero img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--border-radius);
  opacity: 0; /* start invisible */
  transition: opacity 0.28s ease;
}

#hero {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

#hero img, #hero video {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}


.projectInformation {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: top;

  gap: calc(6 * var(--spacer01));

  margin-top: calc(7 * var(--spacer01));
  margin-bottom: calc(20 * var(--spacer01));

  transition: max-height 0.28s ease;
}


.headerContent {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  
  gap: calc(2.5 * var(--spacer01));
  flex: 0 0 auto;
  min-width: 200px;
}


.header {
  
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  transition: color 0.28s ease;
}


.header a {
  color: var(--bgBlack);
  font-family: 'Miletus Grotesk';
  font-weight: 500;
  font-size: calc(1.525 * var(--fsSmall));
  line-height: calc(1.75 * var(--fsDefault));
  transition: transform 0.28s ease, opacity 0.28s ease, color 0.28s ease;
  letter-spacing: 0.035rem;
}

.header a:hover {
  color: var(--themeColor);
}

.subheaderContainer {
  position: relative;
  justify-content: center;
  align-items: center;
  display: flex;
  
  pointer-events: none;


  gap: 0.35rem;

  transition: opacity 0.28s ease, max-height 0.28s ease;
}


.subhead {
  background-color: var(--bgGrey);
  padding: calc(var(--spacer01)/2) var(--spacer01);
  font-family: 'Miletus Grotesk';
  font-weight: 400;
  font-size: var(--fsXSmall);
  border-radius: var(--border-radius);
}

.subhead p {
  color: var(--subheadFGGrey);
  white-space: nowrap;

}

.description {
  flex: 1;
  max-width: 65ch;

  font-family: "Miletus Grotesk";
  font-weight: 400;
  font-style: normal;
  font-size: calc(1 * var(--fsSmall));
  line-height: calc(1.435 * var(--fsSmall));

  color: var(--bgBlack);

  margin-right: 0;
  
 
  pointer-events: none;
  transition: opacity 0.28s ease, max-height 0.28s ease;
}


/* credits */

.credits p {
  color: var(--subheadFGGrey);
  font-family: 'Miletus Grotesk';
  font-weight: 400;
  font-size: var(--fsXSmall);
  line-height: calc(1.5 * var(--fsXSmall));
  transition: color 0.28s ease;
}

.creditsHeader {
  font-weight: 500;
}

.credits p a:hover {
  transition: color 0.28s ease;
}

.credits p a:hover {
  color: var(--themeColor);
}


/* project content */

.projectContent {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  width: calc(100% - 7 * var(--spacer01));

  gap: calc(5 * var(--spacer01));

}


/* universal content styling */

.content {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  background-color: var(--themeColor);
  border-radius: var(--border-radius);
  overflow: hidden;
  transition: background-color 0.28s ease;  
  width: 100%;
}

.content video, .content img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: var(--border-radius);
  transition: opacity 0.28s ease;
}

/* content variations */

.content.text {
  flex-direction: column;
  align-items: flex-start;
  background-color: transparent;
  gap: calc(2 * var(--spacer01));
  font-family: "Miletus Grotesk";
  font-weight: 400;
  font-style: normal;
  font-size: calc(0.618 * var(--fsSmall));
  line-height: calc(1.435 * var(--fsSmall));
  color: var(--bgBlack);
}


/* media queries */


/* x-s */

@media (max-width: 480px) {

  /*
.outer {
  background-color: red;
} */

/* use column layout at smallest sizes */
.projectInformation {
  flex-direction: column;
  width: 100%;
  padding-left: 0;
  /* Reduce margins by half on mobile */
  margin-top: calc(3.5 * var(--spacer01));
  margin-bottom: calc(10 * var(--spacer01));
}

.description {
  flex: initial;
  max-width: 45ch;
  align-self: center;
  margin-right: 0;
}

/* make projectContent container larger at smallest sizes */
.projectContent {
  width: calc(100% - 2 * var(--spacer01));
}

/* Ensure hero touches the top of the container */
.hero {
  margin-top: 0;
  position: relative;
  top: 0;
}

}



/* small */

@media (min-width: 481px) and (max-width: 767px) {


/* inner */

.inner {
  /*width: calc(100% - 4 * var(--spacer01));*/
  /*background-color: orange;*/
}

/* use column layout at small sizes */
.projectInformation {
  flex-direction: column;
  width: 100%;
  gap: calc(7 * var(--spacer01));
  padding-left: 0;
  padding-right: calc(0 * var(--spacer01));
}

.description {
  max-width: 48ch;
}

/* make projectContent container larger */
.projectContent {
  width: calc(100% - 3 * var(--spacer01));
}

}


/* medium */ 

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

/* nothing specific for .inner */

.outer {
}

/* switch to column layout at medium breakpoint instead of small */
.projectInformation {
  flex-direction: column;
  width: 100%;
  gap: calc(10 * var(--spacer01));
  padding-left: 5rem;
  padding-right: 5rem;
}

.description {
  max-width: 50ch;
}

/* make projectContent container larger */
.projectContent {
  width: calc(100% - 4 * var(--spacer01));
}

}


/* large */

@media (min-width: 825px) and (max-width: 1279px) {

.inner {
  
}

.outer {
  /*background-color: blue;*/
}

.projectInformation {
  width: calc(100% - 7 * var(--spacer01));
  gap: calc(8 * var(--spacer01));
}

.projectContent {
  width: calc(100% - 7 * var(--spacer01));
}

.description {
  flex: 1;
  max-width: 52ch;
}

}


/* x-large */

@media (min-width: 1280px) and (max-width: 1535px) {

  /*
.outer {
  background-color: red;
}*/

.inner {
  /*background-color: green;*/
}

.projectInformation {
  width: calc(100% - 7 * var(--spacer01));
  gap: calc(14 * var(--spacer01));
}

.description {
  flex: 1;
  max-width: 52ch;
}

}


/* 2x-large */

@media (min-width: 1536px) {
  .projectInformation {
    width: calc(100% - 7 * var(--spacer01));
    gap: calc(16 * var(--spacer01));
  }

  .description {
    flex: 1;
    max-width: 52ch;
    margin-right: 0;
  }
} 