
html {
  scroll-behavior: smooth;
  scrollbar-color: #404040 #1e1e1e;
  scroll-behavior: smooth;
}
body {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100vh;

  font-family: system-ui, sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  color: #f7f7f7;
  line-height: 1.45;
  margin: 0;
  padding: 0;
  background-color: #121212;
}

::selection {
  background-color: #5a5a5a;
  color: #f7f7f7;
}

#navbar {
  position: fixed;
  display: flex;
  flex-direction: column;
  align-items: start;
  justify-content: center;
  top: 0;
  width: 100%;
  min-height: 60px;
  background-color: #1e1e1e;
}

#navbar .navbar_button {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 8px;
  height: 48px;
  padding: 0 1rem;
  flex-shrink: 0;
  background-color: inherit;
  color: inherit;
  font: inherit;
  cursor: pointer;
  transition: background-color 150ms;
  text-decoration: none;
}
#navbar .navbar_button:hover {
  background-color: #353535;
}
#navbar .navbar_button:active {
  transform: scale(0.97);
}
#navbar #navbar_login {
  background-color: #2b6cf6;
}
#navbar #navbar_login:hover {
  background-color: #709eff;
}

#navbar_header {
  display: flex;
  height: 60px;
  width: 100%;
  justify-content: center;
}

#navbar_button_wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin: 0 8px;
  max-width: 1200px;
}

#navbar_buttons {
  display: flex;
  gap: 16px;
}

.navbar_button span {
  display: flex;
  justify-content: center;
  align-items: center;
}

#navbar_menu_icon {
  display: none;
  white-space: nowrap;
  text-align: center;
}

#navbar_logo {
  display: flex;
  align-items: center;
  justify-content: center;
}

#navbar_logo_content {
  display: flex;
  gap: 16px;
  margin-top: 8px;
}

#navbar_logo_icon {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  width: 32px;
}
#navbar_logo_icon img {
  height: 32px;
  width: 32px;
}

#navbar_logo_text_wrapper {
  display: flex;
  flex-direction: column;
}

#navbar_logo_text {
  display: flex;
  align-items: start;
  font-size: 1.1rem;
  line-height: 1.4;
}

@media (min-width: 801px) {
  #navbar_menu {
    display: none;
  }

  .tallscreen_image_container {
    display: none !important;
  }
}

@media (max-width: 800px) {
  #navbar_menu_icon {
    display: block;
  }
  #navbar_menu_icon img {
    height: 48px;
    width: 48px;
  }
  #navbar_button_wrapper #navbar_buttons {
    display: none;
  }

  #navbar_menu {
    position: fixed;
    top: 60px;
    display: flex;
    background-color: #1e1e1e;
    transition: height 150ms linear;
    width: 200px;
    justify-content: end;
    align-items: center;
    overflow: hidden;
    align-self: end;
    border-radius: 0 0 8px 8px;
    margin-right: 8px;
    padding: 0 8px;
  }

  #navbar_menu #navbar_buttons {
    display: flex;
    flex-direction: column;
    align-items: end;
    width: 100%;
  }

  #navbar_menu #navbar_buttons .navbar_button {
    border: 0;
    justify-content: end;
  }
  #navbar_menu.navbar_menu--collapsed {
    height: 0px;
  }
  #navbar_menu.navbar_menu--expanded {
    height: 252px;
    border-bottom: 1px #353535 solid;
    border-left: 1px #353535 solid;
    border-right: 1px #353535 solid;
  }
  #navbar_menu.navbar_menu--expanded .navbar_button {
    width: 168px;
  }
  .widescreen_image_container {
    display: none !important;
  }
}

.page {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 32px;
  overflow: hidden;
  width: 95%;
  max-width: 1200px;
  margin-top: 60px;
  margin-bottom: 64px;
}

.section_container {
  display: flex;
  flex-direction: column;
  width: 100%;
  border-radius: 16px;
  gap: 16px;
}

#hero_container {
  align-items: center;
}

.image_container {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 8px;
  width: 100%;
  height: auto;
  overflow: hidden;
}

.image_container img {
  object-fit: contain;
  width: 100%;
  height: auto;
}
.image_container video {
  object-fit: contain;
  width: 100%;
  height: auto;
}

#hero_content {
  justify-content: center;
  align-items: center;
  margin-top: 32px;
}

#hero_title {
  font-size: 32px;
  font-weight: 600;
}

#hero_subtitle {
  font-size: 20px;
  padding-bottom: 30px;
  color: #959595;
}

#feature_about .card {
  border: 1px solid #959595;
}

#feature_credits a {
  text-decoration: none;
  color: inherit;
  transition: text-decoration 200ms;
}
#feature_credits a:hover {
  text-decoration: underline;
}

.title_container {
  display: flex;
  text-align: center;
  padding: 16px 32px;
  max-width: 700px;
  font-size: 32px;
}
.title_row {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
}
.title_row a {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: text-decoration 150ms, color 150ms;
}
.title_row a:hover {
  text-decoration: underline;
  color:#f7f7f7;
}
#project {
  display: flex;
}

#project_container {
  background-color: rgba(230, 255, 242, .5);
}

#about {
  background-color: rgba(230, 247, 255, .5);
}
#contact {
  background-color: rgba(242, 230, 255, .5); 
}
#download_page {
  max-width: 800px;
}
#download_page .card_row {
  justify-content: start;
}

#home_page .card {
  margin-top: 32px;
  background-color: transparent;
  border: 1px #353535 solid;
}

#about_page {
  max-width: 800px;
}
#about_page .section {
  scroll-margin-top: 68px;
}
#about_page .card {
  background-color: transparent;
  border: 1px #353535 solid;
}
#about_page .card_subtitle {
  color: #f7f7f7;
}
#about_page .card_body {
  color: #959595;
  line-height: 1.6;
}
#attributions_page {
  max-width: 800px;
}
#attributions_page .card {
  background-color: transparent;
  border: 1px #353535 solid;
}
#attributions_page .card_subtitle {
  color: #f7f7f7;
}
#attributions_page .card_body {
  line-height: 1.6;
}
#attributions_page .card_text {
  width: 100%;
  word-wrap: break-word;
}
#attributions_page dd {
  color: #959595;
}
#attributions_page dt {
  text-decoration: underline;
}

#features_page #showcase {
  gap: 128px;
}
#features_page #hero_content {
  flex-direction: column;
}
#features_page .section_card {
  flex-direction: row;
}
#features_page .image_first {
  flex-flow: wrap-reverse;
}
#features_page .text_first {
  flex-flow: row wrap;
}
#features_page .image_container {
  width: auto; 
  max-width: 600px;
}
#features_page .image_wide.image_container {
  width: auto; 
  max-width: none;
}
#features_page .card {
  width: 400px;
  background-color: transparent;
}
#features_page .card_wide.card {
  width: auto;
}
#features_page .card_wide.card_text {
  gap: 0;
  padding: 0;
}
#features_page .card_text {
  gap: 16px;
  padding: 32px;
}
#features_page .card_title {
  font-size: 48px;
  font-weight: 600;
}
#features_page .card_subtitle {
  font-size: 28px;
}
@media (min-width: 801px) {
  #features_page .text_first {
    text-align: end;
  }
}
#features_page .button a:hover {
  text-decoration: none;
}

.card_body {
  line-height: 1.6;
}

.section {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.section_card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 16px;
}

.section_title {
  font-size: 72px;
}
.card {
  display: flex;
  border-radius: 8px;
  background-color: #1e1e1e;
  padding: 16px;
}
.card_row {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-flow: row wrap;
  gap: 16px;
}
.button {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 24px;
  height: 40px;
  border-radius: 8px;
  background-color: #1e1e1e;
  transition: background-color 150ms;
  cursor: pointer;
  color: #f7f7f7;
  font: inherit;
  text-decoration: none;
  border: 1px #353535 solid;

}
.button:active {
  transform: scale(0.97);
}
.button:hover {
  background-color: #404040;
}
.button--highlight {
  background-color: #2b6cf6;
}
.button--highlight:hover {
  background-color: #709eff;
}
.card_title {
  transition: transform .6s linear, opacity 2s ease;
  font-size: 28px;
}
.card_subtitle {
   font-size: 20px;
   color: #959595;
}
.card_image {
  transition: transform .6s linear, opacity 2s ease;
}
.card_image img {
  max-height: 400px;
  max-width: 800px;
}
.card_content {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.card_text {
  display: flex;
  flex-direction: column;
  padding: 16px;
}
.card_body {
  color: #f7f7f7;
  padding: 0 16px;
}
.alert {
  display: flex;
  border-radius: 8px;
  border: 1px solid #ffb94c;
  padding: 16px 32px;
  color: #959595;
}
.alert p {
  margin: 0;
}

.material-symbols-outlined {
  font-size: inherit;
  font-variation-settings:
  'FILL' 0,
  'wght' 400,
  'GRAD' 0,
  'opsz' 24
}
.material-symbols-outlined svg {
  pointer-events: none;
  fill: currentColor;
}
.image_container {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 8px;
  overflow: hidden;
}

footer {
  display: flex;
  height: 60px;
  align-items: center;
  justify-content: center;
  width: 100%;
  background-color: #1e1e1e;
  margin-top: auto;
}
.footer_wrapper {
  display: flex;
  align-items: end;
  justify-content: end;
  width: 100%;
  margin: 0 16px;
  max-width: 1200px;
  color: #959595;
  font-size: .875rem;
}

.nav_footer {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #404040;
  font-size: .875rem;
}
