* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
  font-size: 20px;
  scroll-behavior: smooth;
}

:root {
  --heading-font: 'Mona Sans', sans-serif;
  --body-font: 'Mona Sans', sans-serif;
  --accent-color: #AAB6C4;
  --bold-color: #E9F0F8;
  --background-color: #0A0A0A;
  --card-color: #121212;
  --font-color: #C2D1E1;
  --border-radius: 16px;
  --opacity: 0.2;
}

body {
  font-family: var(--body-font);
  background: var(--background-color);
  color: var(--font-color);
  line-height: 1.6;
  font-weight: 300;
  overflow-x: hidden;
  overflow-y: scroll;
}

/*body.light-mode {
  --accent-color: #000000;
  --bold-color: #000000;
  --background-color: #F9F9F9;
  --font-color: #222222;
  --line-color: #D6D6D6;
}*/

.material-symbols-outlined {
  font-variation-settings:
  'FILL' 0,
  'wght' 200,
  'GRAD' 0,
  'opsz' 24
}

.gradient {
  background: linear-gradient(45deg, #45C1FF 20%, #906BFF 57%, #FF1FF8 88%); 
  color: transparent; 
  background-clip: text;
}

body.index {
  --accent-color: #AAB6C4;
  width: 100%;
  height: 100%;
  background-color: var(--background-color);
  background-image: radial-gradient(circle at 0% 58%, hsla(259.4117647058824, 59%, 18%, 0.63) 0%, transparent 29.228663052913646%), radial-gradient(circle at 25% 96%, hsla(215.73529411764713, 81%, 38%, 0.16) 4.830917874396135%, transparent 39.23671615526872%), radial-gradient(circle at 102% 68%, hsla(342.7941176470588, 63%, 28%, 0.16) 4.830917874396135%, transparent 39.23671615526872%);
  background-blend-mode: normal, normal, normal;
}

body.account, body.qs {
  --accent-color: #40A6FF;
}

body.rooms {
  --accent-color: #FFE600;
}

body.cmo {
  --accent-color: #38D472;
}

body.driver {
  --accent-color: #FF775D;
}

body.hexahedron {
  --accent-color: #C5DDFF;
}

body.pdp {
  --accent-color: #C497FF;
}

ol, ul {
  margin: 16px 0 0 28px;
  padding: 0;
}

li {
  margin: 16px 0;
}

ol > li::marker {
  font-weight: 500;
  color: var(--bold-color);
}

h1, h2, h3 {
  font-family: var(--heading-font);
  font-weight: 600;
  line-height: 1.2;
  color: var(--bold-color);
}

h1 {
  font-size: 2rem;
}

h2 {
  font-size: 2rem;
  margin-bottom: 8vh;
  font-weight: 800 !important;
  color: var(--accent-color) !important;
}

h3 {
  font-size: 1.4rem;
}

h4 {
  font-size: 1.2rem;
  line-height: 1.2;
  font-weight: 600;
  color: var(--bold-color);
}

.overline {
  font-size: 0.8rem;
  font-weight: 400;
  color: var(--accent-color);
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom:8px;
}

.o-indicator {
  width: 12px;
  height: 8px;
  border-radius: var(--border-radius);
}

figcaption {
  text-align: center;
  font-size: 0.8rem;
  width: 100%;
  margin: 16px auto;
  line-height: 1.2;
}

a {
  color: var(--font-color);
  text-decoration: none;
  transition: transform 0.4s ease-out;
}

b {
  font-weight: 500;
  color: var(--bold-color);
}

p {
  margin: 8px 0;
}

.content p {
  margin: 24px 0;
}

mark {
  background-color: var(--accent-color);
  color: var(--background-color);
}


@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.fadeIn {
  animation: 1.5s fadeIn;
}


#navigation {
  top: 0;
  left: 0;
  position: fixed;
  width: 100%;
  z-index: 1;
  backdrop-filter: blur(20px);
  background: rgb(from var(--background-color) r g b / 0.8);
  padding: 16px calc(6vw - 8px);
  display:flex;
  justify-content:space-between;
  line-height: 0;
}

#navigation a {
  margin: 0 8px;
  font-size: 20px !important;
}

#navigation img {
  border-radius: 0;
}

.heading-section {
  max-width: 1780px;
  padding: 24vh 6vw 0;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

section {
  max-width: 1780px;
  padding: 4vh 6vw 0;
  margin: 0 auto;
}

.content {
  max-width: 700px;
  margin: 8vh auto 0 0;
}

.index-section {
  max-width: 1780px;
  padding: 4vh 6vw 0;
  display: block;
  margin: 0 auto;
}

.module {
  max-width: 1780px;
  padding: 4vh 6vw;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

img {
  border-radius: var(--border-radius);
}

.project {
  position: relative;
  margin-bottom: 40px;
}

.hero {
  width: 100%;
  aspect-ratio: auto;
  overflow: hidden;
  border-radius: var(--border-radius);
  background: rgba(0,0,0,0.4);
  border: 1px solid #151515;
}

.hero img {
  width: 100%;
  height: auto;
  transition: transform 0.4s ease-out;
  border-radius: var(--border-radius);
  display: block;
}

.hero:hover {
  border: 1px solid #1A1A1A;
}

.hero:hover img {
  transform: scale(1.02);
}

.col, .col-three, .col-four {
  width: 100%;
  margin-left:0;
  margin-bottom: 16px;
}

.col p {
  margin: 24px 0;
}

.description {
  text-align: left;
  padding: clamp(40px, 6vw, 120px);
  padding-bottom: 0;
}

video {
  margin: 20px 0;
}


.fade {
  -webkit-animation-name: fade;
  -webkit-animation-duration: 0.5s;
  animation-name: fade;
  animation-duration: 0.5s;
}

@-webkit-keyframes fade {
    from {opacity:.4} 
    to {opacity:1}
}

@keyframes fade {
    from {opacity:.4} 
    to {opacity:1}
}


footer {
  font-size: 0.9rem;
  padding: 32px 6vw 0;
  display:flex;
  justify-content:space-between;
  transition:all 0.4s ease-in-out;
}

footer a {
  margin-left:16px;
  transition:all 0.4s ease-in-out;
}

footer img {
  width:24px;
  transition:all 0.4s ease-in-out;
}

footer img:hover {
  filter:opacity(50%);
  transition:all 0.4s ease-in-out;
}


@media only screen and (min-width: 1536px) {
  html {
    font-size: 1.4rem;
  }

/*
  section {
    padding: 12vh 0 0 0;
  }

  .heading-section {
    padding: 24vh 0 0 0;
  }

  .module, .index-section {
    padding: 4vh 0 0 0;
  }

*/

}


@media only screen and (min-width: 960px) {
  .index-section {
    display: flex !important;
    justify-content: space-between !important;
    flex-wrap: wrap !important;
  }

  .project {
    width: calc(50% - 20px) !important;
    margin-bottom: 40px !important;
  }

  .col {
    width: calc(50% - 24px) !important;
  }

  .col-four {
    width: calc(25% - 32px) !important;
  }

  content {
    margin-top: 12vh;
  }

  body.index h1 {
    font-size: 3rem;
  }


}
