:root {
  --default-white: rgb(250, 250, 250); 
  --default-black: rgb(20, 20, 20); 
  --navbar-height: 3rem; 
  --fancy-spacing-lowercase: 0.2ch; 
  --fancy-spacing-uppercase: 0.3ch; 
  --default-icon-size: 1.2rem; 
  --project-header-inset: -1rem; 
  --project-header-top-margin: 1rem; 
  --default-font: "Open Sans"; 
  --default-uppercase-font: "Open Sans"; 
  --default-lowercase-font: "Open Sans"; 
  --default-italic-font: "Open Sans"; 
  --window-top-spacing: 1rem; 
  --window-side-spacing: 2rem; 
  --project-sidebar-width: 7%;
} 

.p5sketch {

  width: 100vw; 
  height: 95vh; 

}

body {
  font-family: "Open Sans", sans-serif; 
  overflow: hidden; 
  background-color: var(--default-white);
}

a {
  color: inherit; 
} 

span {
  font-family: var(--default-font);
}

h1 {
  padding: 0px; 
  margin: 0px; 
  font-size: medium; 
  font-style: normal; 
  font-weight: normal; 
  text-transform: uppercase; 

  font-family: var(--default-uppercase-font); 
  letter-spacing: var(--fancy-spacing-uppercase); 
}

h2 {
  padding: 0px; 
  margin: 0px; 
  font-size: medium; 
  font-style: normal; 
  font-weight: normal; 

  font-family: var(--default-uppercase-font); 
}


button {
  background-color: transparent;
  border: none;
  margin: 0;
  padding: 0;
  text-align: inherit;
  font: inherit;
  border-radius: 0;
  appearance: none;
  cursor: pointer;
  transition: background-color 0.3s ease; 
} 

.description-paragraph{
  font-style: italic; 
  font-weight: lighter;
  font-family: var(--default-italic-font); 
  letter-spacing: 0.05ch;   
  margin: 0px 0px 1rem 0px; 
  padding: 0px; 
  font-size: smaller;
} 

.description-emphasis{
  font-family: "Open Sans", sans-serif; 
  font-weight: 200; 
  text-transform: uppercase; 
} 

.description-highlight.mousemarked{
  background-color: var(--default-black); 
  color: var(--default-white); 
} 

.spacer-top {
  width: 100%; 
  flex-shrink: 0;
} 

.spacer-between {
  width: 100%; 
  flex-shrink: 0;
} 

.spacer-bottom {
  width: 100%; 
  flex-shrink: 0;
} 


.body {
  scroll-behavior: auto;
  flex-flow: column;
  font-family: Arial, Helvetica, sans-serif; 
  color: var(--default-black); 
  display: block;
  margin: 0px; 
}

.navbar {
  display: flex; 
  position: fixed; 
  width: 100%; 
  flex-direction: row;
  height: var(--navbar-height);
  align-items: center; 
  color: var(--default-white); 
  z-index: 3; 
} 

.nav-icon-wrapper { 
  display: none; 
  justify-content: center; 
  align-items: center;
  width: 3rem; 
  height: 3rem; 
}

.nav-icon-wrapper img{
  width: var(--default-icon-size); 
  height: var(--default-icon-size); 
} 

.wordmark-wrapper {
  height: 100%;
  padding-left: 1rem;
  padding-right: 1rem;
  display: flex;
  align-items: center;
}

.wordmark-text {
  text-transform: uppercase; 
  letter-spacing: var(--fancy-spacing-uppercase);
  font-family: var(--default-uppercase-font);
}

.navbar-tab-container {
  display: flex; 
  position: absolute; 
  align-items: center;
  flex-direction: row; 
  height: 100%; 
  right: 0px; 
  top: 0px; 
} 

.navbar-tab-container .spacer-top {
  display: none; 
}

.tab-wrapper {
  height: 100%;
  margin-right: 0.5rem; 
  padding-left: 1rem;
  padding-right: 1rem;
  display: flex;
  align-items: center;
  text-decoration: none; 
  color: inherit; 
}

.tab-text {
  text-transform: lowercase; 
  letter-spacing: var(--fancy-spacing-lowercase); 
  font-family: var(--default-lowercase-font);
} 

.preview {
  display: flex; 
  flex-flow: column; 
  width: 100%;  
  height: 100vh; 
  overflow-y: scroll;  

  -ms-overflow-style: none;  /* IE and Edge */
  scrollbar-width: none;  /* Firefox */
} 

.preview::-webkit-scrollbar {
  display: none; /* Chrome, Safari and Opera */ 
}


.preview-anchor {
  width: 100%; 
}

.preview-wrapper { 
  position: relative; 
  display: flex; 
  justify-content: center; 
  align-items: center;  
  height: min(50vw, 60vh);  
}  

.preview-wrapper img {
  width: 100%; 
  height: 100%; 
  object-fit: cover; 
} 

.preview-description-collider {
  position: absolute; 
  display: flex; 
  justify-content: center; 
  align-items: center;  
  max-width: 90%; 
  min-width: 65%;  
  height: 50%; 
} 

.preview-description-wrapper {
  display: none; 
  align-items: center;
  background-color: var(--default-white);  
  padding: 0px 0.1rem; 
} 

.preview-description-collider:hover .preview-description-wrapper {
  display: flex; 
} 

.preview-wrapper.touched .preview-description-wrapper {
  display: flex; 
}

.preview-description-wrapper img { 
  width: calc(var(--default-icon-size) * 0.9); 
  object-fit: contain; 
  margin-left: 0.5rem; 
}


.preview-description-text { 
  text-decoration: none;
  color: var(--default-black); 
  text-transform: uppercase; 
  letter-spacing: var(--fancy-spacing-uppercase); 
  line-height: 1.3rem; 
} 

.preview-description-collider {
  text-decoration: none; 
} 

.project {
  position: relative; 
  display: none; 
  flex-flow: row; 
  justify-content: center;
  width: 100%; 
  height: 100vh; 
} 

.project .back-arrow-wrapper { 
  display: flex; 
  flex-flow: row;  
  position: absolute;  
  z-index: 4;
  align-items: center; 
  justify-content: center; 
  height: 3rem; 
  width: 3rem; 
  top: 0.62rem; 
  right: 0.62rem; 
} 

.project .back-arrow-wrapper img {
  width: var(--default-icon-size); 
  height: var(--default-icon-size); 
} 

.project-scroll-wrapper {
  display: flex; 
  flex-flow: column; 
  justify-content: center; 
  align-items: center;
  width: 100%; 
  height: 100%; 
  padding-left: var(--project-sidebar-width); 
  padding-right: var(--project-sidebar-width);
  overflow-y: auto; 
  overflow-x: visible;
  -ms-overflow-style: none;  /* IE and Edge */
  scrollbar-width: none;  /* Firefox */   
} 

.project-scroll-wrapper::-webkit-scrollbar {
  display: none; /* Chrome, Safari and Opera */ 
}

.project-content {
  display: flex; 
  flex-flow: column;  
  width: 100%; 
  max-width: min(80ch, 100%); 
  min-width: 30ch; 
  height: 100vh;  
} 

.project-header-container {
  display: flex; 
  flex-flow: column; 
  position: fixed; 
  z-index: 2; 
  top: 0px; 
  left: clamp(1rem, calc((100vw - 80ch) / 3), 100vw);  
  margin-top: var(--project-header-top-margin);  
  margin-right: 3.5rem; 
}  

.project-header-container h1{ 
  font-size: 32px; 
  text-transform: uppercase;
  margin-bottom: 0.3rem; 
  background-color: var(--default-white); 
  line-height: 2.2rem; 
}  


.project-header-container .project-tag-container {
  display: flex; 
  flex-flow: row; 
} 

.project-header-container .tag {
  margin-right: 0.5rem; 
  background-color: var(--default-black); 
  color: var(--default-white); 
  padding: 0px 1px; 

  font-family: var(--default-lowercase-font); 
  letter-spacing: var(--fancy-spacing-lowercase); 

  font-optical-sizing: auto; 
  font-weight: regular; 
  font-size: smaller;
} 

.project-content .introduction { 
  display: flex; 
  flex-flow: row-reverse;
  margin-top: 11rem; 
  width: 100%; 
  padding-bottom: 4rem; 
} 

.project-content .introduction p {
  font-style: italic; 
  width: 45ch; 
  min-width: 30ch;  
  
  font-weight: lighter;
  font-family: var(--default-italic-font); 
  letter-spacing: 0.05ch; 
  font-size: 0.9rem;  
} 

.project-content .content-section {
  width: 100%; 
  display: flex; 
  flex-flow: column; 
  align-items: center; 
} 

.content-section .module-wrapper { 
  position: relative; 
  z-index: 1;
  display: inline-flex; 
  flex-flow: column;
  margin-bottom: 3rem;
  align-items: center; 
  max-width: 100%; 
}

.content-section .module-wrapper img {
  object-fit: contain;
  max-height: min(45vh); 
  max-width: 100%; 
  height: auto; 
  width: auto; 

  box-shadow: rgba(0, 0, 0, 0.07) 0 0 30px 1px;
} 

.content-section .module-wrapper iframe {
  max-height: min(45vh); 
  max-width: 100%; 
  width: 1920px; 
  aspect-ratio: 16/9;

  box-shadow: rgba(0, 0, 0, 0.07) 0 0 30px 1px;
  border: none; /* Optional: Removes border from iframe */
}

.module-wrapper .media-description { 
  position: absolute; 
  bottom: -1.5rem; 
  display: none;  

  padding-left: 20%; 
  text-align: right;
  align-self: flex-end;
  font-weight: lighter;
  font-family: var(--default-italic-font);
  letter-spacing: 0.05ch;
  font-size: 0.6rem;
} 

.module-wrapper:hover .media-description { 
  display: flex; 
}

.project-content .timestamp { 
  position: relative;  
  margin-top: 3rem; 

  font-size: x-small; 
  text-transform: lowercase; 
  font-family: var(--default-font);
}

.project-content .spacer {
  height: 10rem; 
  width: 100%; 
  flex-shrink: 0; 
}

.impressum {
  display: none; 
  position: relative; 
  width: 100%; 
  height: 100vh; 
  display: flex; 
  flex-flow: column; 
  justify-content: flex-start;
} 

.impressum-text-wrapper { 
  position: relative;
  margin-left: 2rem; 
  margin-bottom: 2rem; 
  max-width: 40ch; 
  margin-top: auto;
}

.impressum .spacer-between {
  height: 0.1rem;
} 

.impressum .description-paragraph{
  font-size: small; 
  padding: 0px; 
  margin: 0px; 
  margin-bottom: 0.3rem;
} 

.impressum .description-emphasis{
  font-size: x-small; 
  margin-top: 1rem; 
  margin-bottom: 0.1rem; 
}

.about {
  display: none; 
  position: relative; 
  width: 100%; 
  height: 100%; 
} 

.tab-header {
  position: absolute; 
  background-color: var(--default-black); 
  color: var(--default-white); 
  top: 8rem;
  right: 5%;
} 

.scroll-wrapper {
  overflow-y: auto; 
  width: 100%; 
  height: 100vh;  
  display: flex; 
  justify-content: center;
} 

.about-wrapper { 
  display: flex; 
  flex-flow: column; 
  max-width: 55ch; 
} 

.about-wrapper .spacer-top {
  height: 20%; 
} 

.about-wrapper .spacer-between {
  height: 2rem; 
}

.about-wrapper .spacer-bottom {
  height: 15rem; 
}

.about-wrapper .description-paragraph{
  min-width: 30ch; 
  max-width: 60ch; 
  font-size: medium; 

  font-style: normal;
} 

.about-image-wrapper{
  width: 40%; 
  align-self: center; 
  margin-bottom: 2rem; 
} 

.about-image-wrapper img{
  object-fit: contain; 
  width: 100%; 
}

.contact {
  display: none; 
  position: relative; 
  width: 100%; 
  height: 100vh; 
  align-items: center; 
  justify-content: center;
}  

.contact-wrapper {
  display: flex; 
  flex-flow: column; 
}  

.contact .close-wrapper { 
  position: absolute;
  top: 0px; 
  right: 0px;  
}

.contact-wrapper .spacer-top {
  min-height: 3rem; 
} 

.contact-wrapper .spacer-between {
  height: 1rem; 
} 

.contact-description-wrapper { 
  margin-bottom: 2rem;
} 

.address-section {
 display: flex; 
 flex-flow: row; 
 margin-bottom: 0.7rem;
} 

.address-section .logo-wrapper { 
  width: 3rem; 
  display: flex; 
  justify-items: center; 
  align-items: center; 
} 

.address-section .logo-wrapper img{
  height: 1.5rem; 
  object-fit: contain;
} 

.address-section .address-text-wrapper{
  display: flex; 
  flex-flow: column; 
  justify-content: center; 
}  

.address-section .description-emphasis{
  font-size: small; 
  text-decoration: underline; 
  text-decoration-thickness: 0.01rem; 
  text-transform: lowercase; 
} 

#physical-address-text-id{
  text-transform: none; 
  line-height: 1.2rem;
} 

.close-wrapper {
  display: flex; 
  position: absolute;  
  right: 0px; 
  align-items: center; 
  justify-content: right;  
  padding: var(--window-top-spacing); 
  margin: .62rem; 
  width: 3rem; 
  height: 3rem;  
} 

.close-wrapper img{
  object-fit: contain; 
  width: var(--default-icon-size); 
  height: var(--default-icon-size); 
  
} 

.close-wrapper .tab-text{ 
  position: absolute; 
  left: -7rem; 
  color: var(--default-white); 
  background-color: var(--default-black); 
}

.footer {
  position: fixed; 
  display: flex; 
  flex-flow: row-reverse; 
  inset: auto 0% 0%; 
  height: var(--navbar-height); 
  color: var(--default-white); 
} 

@media screen and (max-width: 35rem){ 

  .nav-icon-wrapper { 
    display: flex; 
  } 

  .nav-icon-wrapper.hidden {
    display: none; 
  } 

  .description-highlight.mousemarked{
    background-color: transparent; 
    color: var(--default-black); 
  } 

  .navbar-tab-container {
    flex-flow: column; 
    align-items: end; 
    height: auto; 
  } 

  .navbar-tab-container .spacer-top { 
    display: block; 
    height: .15rem; 
  }

  .tab-wrapper { 
    display: flex; 
    flex-flow: row-reverse; 
    align-items: flex-end; 
    padding: .7rem .1rem; 
  }  

  .tab-wrapper.hidden { 
    display: none;
  } 

  .about-wrapper {
    padding: 0rem 2rem; 
  } 

  .about-wrapper .spacer-top {
    height: 8rem; 
  }

}
