﻿/*==========================================*/
/* || Typography */
/*==========================================*/
@font-face {
  font-family: "Inter";
  src: url(../fonts/Inter/Inter-VariableFont_opsz,wght.ttf) format("truetype");
}
@font-face {
  font-family: "Inter-bold";
  src: url(../fonts/Inter/Inter-VariableFont_opsz,wght.ttf) format("truetype");
  font-weight: bold;
}
@font-face {
  font-family: "Inter-SemiBold";
  src: url(../fonts/Inter/static/Inter_24pt-SemiBold.ttf) format("truetype");
}
@font-face {
  font-family: "DMMono-Regular";
  src: url(../fonts/DM_Mono/DMMono-Regular.ttf) format("truetype");
}
@font-face {
  font-family: "Inter-bold";
  src: url(../fonts/Inter/Inter-VariableFont_opsz,wght.ttf) format("truetype");
}
@font-face {
  font-family: "public-sans";
  src: url(../fonts/Public_Sans/static/PublicSans-Regular.ttf) format("truetype");
}
/*==========================================*/
/* || Colors */
/*==========================================*/
/*==========================================*/
/* || Responsive Breakpoints/Mixins */
/*==========================================*/
/* Responds to a landscape orientation below a certain screen size */
/* Responds to an aspect ratio above a certain screen size */
/*==========================================*/
/* || Top Level Styles */
/*==========================================*/
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  /*border: 1px solid red;*/
}

:root {
  font-size: clamp(26px, 3vh, 65px);
}

:root[data-theme=light] {
  --info-text-color: black;
  --info-subtext-color-light: #58585B;
  --info-subtext-color-dark: #2E2E32;
  --event-color: white;
}

:root[data-theme=dark] {
  --info-text-color: #E3E3E3;
  --info-subtext-color-light: #959599;
  --info-subtext-color-dark: #959599;
  --event-color: #E3E3E3;
}

body {
  background-color: black;
  color: black;
  display: flex;
  flex-direction: column;
  font-family: public-sans, sans-serif;
  font-size: 0.8rem;
  padding-top: env(safe-area-inset-top);
  width: 100%;
}
@media (min-width: 576px) {
  body {
    font-size: 1rem;
  }
}
@media (min-width: 768px) {
  body {
    font-size: 1rem;
  }
}
@media (min-width: 992px) {
  body {
    font-size: 0.8rem;
  }
}
@media (min-width: 1200px) {
  body {
    font-size: 0.8rem;
  }
}
@media (min-width: 1400px) {
  body {
    font-size: 0.9rem;
  }
}
@media (min-width: 1930px) {
  body {
    font-size: 1.1rem;
  }
}
@media (orientation: landscape) and (max-width: 992px) {
  body {
    font-size: 0.7rem;
  }
}
@media (min-aspect-ratio: 2.3) and (min-width: 1930px) {
  body {
    font-size: 1.1rem;
  }
}

main {
  background-image: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url(../img/background/WebbStarField.jpg);
  border-bottom: 2px solid #959599;
  border-top: 2px solid white;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  width: auto;
  z-index: -3;
}
@media (min-width: 992px) {
  main {
    flex-direction: row;
    height: auto;
  }
}
@media (orientation: landscape) and (max-width: 992px) {
  main {
    flex-direction: row;
  }
}
@media (min-aspect-ratio: 2.3) and (min-width: 1930px) {
  main {
    font-size: 1.1rem;
  }
}

::before main {
  background-color: white;
}

.launch-info-wrapper {
  width: 100%;
}
@media (min-aspect-ratio: 2.3) and (min-width: 1930px) {
  .launch-info-wrapper {
    max-width: 750px;
  }
}
@media (min-aspect-ratio: 2.3) and (min-width: 3440px) {
  .launch-info-wrapper {
    max-width: 1000px;
  }
}

.launch-event-wrapper {
  width: 100%;
}
@media (min-aspect-ratio: 2.3) and (min-width: 1930px) {
  .launch-event-wrapper {
    max-width: 950px;
  }
}
@media (min-aspect-ratio: 2.3) and (min-width: 3440px) {
  .launch-event-wrapper {
    max-width: 1200px;
  }
}

/*==========================================*/
/* || Util Classes */
/*==========================================*/
.fade-element {
  opacity: 100;
  visibility: visible;
  transition: opacity 0.75s ease-in-out;
}

.fade-element.is-hidden {
  opacity: 0;
  transition: opacity 0.75s ease-in-out;
}

.display-none {
  display: none !important;
}

.hidden {
  visibility: hidden !important;
}

.show {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.rotated {
  transform: translateY(2px) rotate(-180deg) !important;
}

/*==========================================*/
/* || Header and Main Nav */
/*==========================================*/
.header__nasa {
  align-items: center;
  background-color: black;
  color: white;
  display: flex;
  font-family: Inter;
  font-size: 1em;
  font-size: clamp(1em, 1.5vw, 3em);
  font-weight: bold;
  height: 6vh;
  justify-content: center;
  position: relative;
  width: 100%;
}

.header-text {
  align-content: center;
  font-size: 0.6em;
  height: 100%;
  justify-content: center;
  text-align: center;
  width: 82%;
}
@media (min-width: 768px) {
  .header-text {
    text-align: left;
    width: 73%;
    padding-left: 3%;
  }
}
@media (min-width: 992px) {
  .header-text {
    font-size: 0.5em;
  }
}
@media (min-width: 1200px) {
  .header-text {
    padding-left: 0%;
  }
}
@media (min-aspect-ratio: 2.3) and (min-width: 3000px) {
  .header-text {
    font-size: 0.5em;
  }
}
.header-text span {
  display: block;
}
@media (min-width: 768px) {
  .header-text span {
    display: inline;
  }
}
@media (orientation: landscape) and (max-width: 992px) {
  .header-text span {
    display: inline;
  }
}

.nasa-logo__container {
  position: relative;
  width: 15%;
  height: 100%;
  margin-left: 0.75%;
}
@media (min-width: 992px) {
  .nasa-logo__container {
    width: 5%;
    margin-left: 0;
  }
}
@media (min-aspect-ratio: 2.3) and (min-width: 1400px) {
  .nasa-logo__container {
    width: 4%;
  }
}

.nasa-logo {
  height: 100%;
  object-fit: contain;
  padding: 11% 13% 12% 16%;
  padding: 13%;
  padding-bottom: 12%;
  padding-top: 11%;
  width: 100%;
}
@media (min-width: 992px) {
  .nasa-logo {
    padding-left: 13%;
  }
}
.lsp-logo__container {
  display: none;
  height: 100%;
  margin-right: 0%;
  position: relative;
  width: 13%;
}
@media (min-width: 992px) {
  .lsp-logo__container {
    width: 5%;
    display: revert;
  }
}
@media (min-aspect-ratio: 2.3) and (min-width: 1400px) {
  .lsp-logo__container {
    width: 4%;
  }
}

.lsp-logo {
  display: none;
  height: 100%;
  object-fit: contain;
  padding: 13%;
  width: 100%;
}
@media (min-width: 992px) {
  .lsp-logo {
    display: revert;
    padding: 10%;
  }
}

.header__lsp {
  align-items: center;
  background-color: white;
  color: black;
  display: flex;
  font-family: Inter-SemiBold;
  height: 1.5vw;
  justify-content: center;
  padding-bottom: 0.5%;
  padding-top: 0.5%;
  width: 100%;
}

.dropdown {
  display: flex;
  font-family: Inter-SemiBold;
  height: 100%;
  justify-content: center;
  margin-left: auto;
  position: relative;
  width: 15%;
  touch-action: manipulation;
}
@media (min-width: 992px) {
  .dropdown {
    width: 5%;
    justify-content: flex-end;
    justify-content: right;
  }
}

.dropdown-toggle {
  background-color: black;
  border-width: 0;
  color: white;
  display: none;
  font-family: Inter-SemiBold;
  font-size: 0.5em;
}
@media (min-width: 992px) {
  .dropdown-toggle {
    display: revert;
  }
}

.dropdown-toggle:hover {
  cursor: pointer;
}

.dropdown-arrow {
  display: inline-block;
  transition: transform 0.3s ease;
  width: auto;
  transform: translateY(-2px) rotate(0deg);
}

.dropdown-toggle-mobile {
  background-color: black;
  border: 0;
  color: white;
  display: revert;
  font-size: 1.4em;
  height: 100%;
  touch-action: manipulation;
}
@media (min-width: 992px) {
  .dropdown-toggle-mobile {
    display: none;
  }
}

.dropdown-menu {
  background-color: black;
  border: 0;
  border-top: 1px solid white;
  display: flex;
  flex-direction: column;
  height: auto;
  list-style-type: none;
  margin-left: auto;
  opacity: 0.95;
  padding-bottom: 35%;
  padding-top: 25%;
  position: absolute;
  right: 0;
  top: 100%;
  width: 75vw;
  z-index: 2;
}
@media (min-width: 992px) {
  .dropdown-menu {
    border-bottom: 2px solid white;
    border-left: 2px solid white;
    border-right: 2px solid white;
    border-top: 0;
    height: 18vh;
    height: auto;
    margin-left: auto;
    min-width: 250%;
    opacity: 0.95;
    padding-bottom: 15%;
    padding-top: 10%;
    width: auto;
  }
}

.dropdown-item {
  background-color: black;
  border: 0;
  color: white;
  font-family: Inter-SemiBold;
  font-size: 1em;
  margin: 2% 0 2% 0;
  overflow: hidden;
  padding-left: 7.5%;
  padding-right: 10%;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (min-width: 992px) {
  .dropdown-item {
    font-size: 0.5em;
  }
}

.dropdown-item:hover {
  text-decoration: none;
}
@media (min-width: 992px) {
  .dropdown-item:hover {
    cursor: pointer;
    text-decoration: underline;
  }
}

/*==========================================*/
/* || Launch Info Section */
/*==========================================*/
.launch-info {
  background-color: white;
  border-bottom: 2px solid #2E2E32;
  color: var(--info-text-color);
  display: flex;
  flex: 0 0 50%;
  font-family: Inter-SemiBold;
  font-size: 1em;
  height: auto;
  justify-content: flex-end;
  padding: 0% 10% 0% 5%;
  padding-bottom: 15%;
  width: 100%;
  z-index: 1;
}
@media (min-width: 992px) {
  .launch-info {
    padding-bottom: 10%;
    border-bottom: 0;
    border-right: 2px solid #2E2E32;
  }
}
@media (min-width: 1400px) {
  .launch-info {
    padding-bottom: 0%;
  }
}
@media (min-aspect-ratio: 2.3) and (min-width: 1930px) {
  .launch-info {
    padding-right: 5%;
  }
}

[data-theme=dark] .launch-info {
  background-color: transparent;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.1));
  color: var(--info-text-color);
}
@media (min-width: 992px) {
  [data-theme=dark] .launch-info {
    background: linear-gradient(to right, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.1));
  }
}

.launch-info__header {
  align-items: flex-start;
  display: flex;
  flex-direction: row;
  font-size: 1em;
  justify-content: space-between;
  margin-bottom: 13%;
  margin-top: 6%;
  position: relative;
}
@media (min-width: 992px) {
  .launch-info__header {
    margin-bottom: 8%;
  }
}

.mission-name-container {
  display: flex;
  flex-direction: column;
  width: 70%;
}

.mission-name {
  font-size: 2em;
  hyphens: auto;
  line-height: 1.1;
  margin-bottom: 1%;
  overflow-wrap: anywhere;
  padding-right: 4.6%;
  width: 100%;
}

.launch-vehicle-name {
  color: var(--info-subtext-color-dark);
  font-size: 0.95em;
}

.active-mission-container {
  display: flex;
  align-items: center;
  height: 15%;
  margin-bottom: 1.5%;
}

.active-mission-text {
  display: flex;
  color: var(--info-subtext-color-light);
  font-family: DMMono-Regular;
  font-size: 0.65em;
}

.active-mission-indicator {
  aspect-ratio: 1;
  background-color: #47DA84;
  border-radius: 50%;
  content: "";
  display: flex;
  left: 0%;
  top: 50%;
  width: 2.1%;
}

.logo-container {
  align-items: center;
  align-self: flex-start;
  border-radius: 10%;
  content: "";
  display: flex;
  height: 3.7em;
  justify-content: center;
  padding: 1%;
  position: absolute;
  right: 0%;
  width: 30%;
  --image-error-dark: 1;
  /*
  background: rgba(255,255,255,0.4); for logo background testing later
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.1);*/
}

[data-theme=dark] .logo-container::before {
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 2%, rgba(255, 255, 255, 0.32) 40%, rgba(255, 255, 255, 0.32) 60%, rgba(255, 255, 255, 0) 98%);
  background-position: center;
  background-size: cover;
  content: "";
  filter: drop-shadow(10px 10px 5px black);
  height: 100%;
  opacity: var(--image-error-dark);
  position: absolute;
  width: 100%;
  z-index: -1;
}

.mission-logo {
  display: block;
  margin: 0 auto;
  max-height: 100%;
  object-fit: contain;
  position: relative;
  width: 150%;
}

.stat-group, .mission-progress, .mission-timing {
  flex-direction: column;
  border-top: 2px solid #D1D1D1;
  font-size: 1.3em;
  margin-bottom: 5%;
}
@media (min-width: 992px) {
  .stat-group, .mission-progress, .mission-timing {
    margin-bottom: 3%;
  }
}

.stat {
  display: flex;
  flex-direction: column;
  margin-top: 2%;
}
@media (min-width: 992px) {
  .stat {
    margin-top: 1%;
  }
}

.countdown-text {
  font-family: DMMono-Regular;
  font-size: 1em;
  text-align: right;
  width: auto;
}

.mission-timing .stat {
  position: relative;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}
.mission-timing .countdown-text {
  left: 55%;
}
@media (min-width: 576px) {
  .mission-timing .countdown-text {
    left: 55%;
  }
}

.mission-progress .stat {
  align-items: center;
  flex-direction: row;
  justify-content: space-between;
  position: relative;
  width: 100%;
}
.mission-progress .countdown-text {
  left: 57%;
}
@media (min-width: 576px) {
  .mission-progress .countdown-text {
    left: 57%;
  }
}
@media (min-width: 992px) {
  .mission-progress .countdown-text {
    left: 54%;
  }
}

.progress-container {
  height: 20%;
  margin-left: 3%;
  margin-right: 5%;
  margin-top: 5%;
  padding-top: 3%;
  width: auto;
}
@media (min-width: 992px) {
  .progress-container {
    margin-left: 2%;
    margin-right: 2%;
    margin-top: 2%;
  }
}

.progress-bar, .progress-bar-active, .progress-bar-base {
  height: 0.25em;
}

.progress-bar-base {
  background-color: #E3E3E3;
  border: 1px solid #959599;
  content: "";
  padding-right: 10%;
  position: relative;
}

.progress-bar-active {
  background-color: #1C67E3;
  border-radius: 5px;
  position: absolute;
  right: 0;
  transition: width 0.8s linear;
  width: 100%;
}

.progress-circle, .progress-circle--left, .progress-circle--right, .progress-circle-active {
  aspect-ratio: 1;
  background-color: white;
  border: 1.5px solid #1C67E3;
  border-radius: 50%;
  content: "";
  height: 0.9em;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: auto;
  z-index: 2;
}

.progress-circle-active {
  left: 0;
  z-index: 3;
}

.progress-circle--right {
  right: 0;
  transform: translate(50%, -50%);
}

.progress-circle--left {
  border: 1.5px solid #959599;
  left: 0;
}

.progress-label-container {
  display: flex;
  flex-direction: row;
  margin-bottom: 3%;
}

.progress-label--right {
  display: flex;
  flex-direction: column;
  font-size: 0.68em;
  text-align: right;
  transform: translateX(5%);
  vertical-align: top;
  width: 50%;
}

.progress-label--left {
  display: flex;
  flex-direction: column;
  font-size: 0.68em;
  transform: translateX(-5%);
  vertical-align: top;
  width: 50%;
}

.progress-timing--right {
  font-family: DMMono-Regular;
}

.progress-timing--left {
  font-family: DMMono-Regular;
}

.marker-container, .marker-container--left, .marker-container--right {
  border-bottom: 3px solid var(--info-subtext-color-light);
  color: var(--info-subtext-color-light);
  font-size: 0.6em;
  height: 50%;
  padding-bottom: 3%;
  padding-top: 2%;
  position: relative;
  width: 10%;
  z-index: 1;
}

.marker-container--right {
  border-left: none;
  border-right: 2px solid var(--info-subtext-color-light);
  padding-left: 2%;
  left: 0%;
}

.marker-container--left {
  border-left: 2px solid var(--info-subtext-color-light);
  border-right: none;
  left: 100%;
  padding-right: 2%;
}

.marker-text, .marker-text--left, .marker-text--right {
  padding-left: 10%;
  padding-right: 10%;
  position: absolute;
  transform: translate(0%, 25%);
  width: 120%;
}

.marker-text--right {
  border-left: none;
  border-right: 2px solid var(--info-subtext-color-light);
  right: 100%;
  text-align: right;
  width: 200%;
}

.marker-text--left {
  border-left: 2px solid var(--info-subtext-color-light);
  border-right: none;
  left: 100%;
  text-align: right;
}

/*==========================================*/
/* || Launch Events Section */
/*==========================================*/
.launch-events {
  background-color: transparent;
  background-size: cover;
  color: white;
  color: var(--event-color);
  font-size: 1em;
  height: 100%;
  padding-bottom: 10%;
  position: relative;
  width: 100%;
  z-index: -1;
}
@media (min-width: 992px) {
  .launch-events {
    min-height: 92vh;
  }
}
.launch-events h2 {
  text-align: center;
  font-size: 1.5em;
  margin: 10% 0 4.5% 0;
}
@media (min-width: 992px) {
  .launch-events h2 {
    margin-top: 6%;
  }
}
.launch-events .launch-events__container {
  border-left: 3px solid white;
  border-right: 3px solid white;
  display: flex;
  justify-content: center;
  margin: 0 4% 0 4%;
  padding: 3% 0 3% 0;
  position: relative;
  width: auto;
}
.launch-events .event-pointer, .launch-events .event-pointer--right, .launch-events .event-pointer--left {
  background-color: white;
  height: 5%;
  position: absolute;
  top: 37%;
  transform: translateY(-50%);
  width: 3%;
}
.launch-events .event-pointer--left {
  left: -0.25%;
  clip-path: polygon(0% 0%, 0% 100%, 100% 50%);
}
@media (min-width: 992px) {
  .launch-events .event-pointer--left {
    clip-path: polygon(0% 0%, 0% 100%, 60% 50%);
    left: -0.15%;
  }
}
.launch-events .event-pointer--right {
  right: -0.25%;
  clip-path: polygon(100% 0%, 100% 100%, 0% 50%);
}
@media (min-width: 992px) {
  .launch-events .event-pointer--right {
    clip-path: polygon(100% 0%, 100% 100%, 40% 50%);
  }
}
.launch-events ol {
  display: flex;
  flex-direction: column;
  font-size: 0.8em;
  list-style: none;
  text-align: center;
  vertical-align: central;
  width: 80%;
  --outer-indent: 5%;
  --inner-indent: 2.5%;
}
.launch-events ol li {
  align-items: center;
  display: flex;
  flex-direction: column;
  height: auto;
  padding: 0.5rem 7% 0.5rem 7%;
  width: auto;
}
@media (min-width: 992px) {
  @media not all and (min-aspect-ratio: 0.75) and (max-aspect-ratio: 1.25) {
    .launch-events ol li {
      flex-direction: row;
      justify-content: space-between;
      text-align: left;
      padding: 0.7rem 7% 0.7rem 7%;
    }
  }
}
@media (min-width: 1400px) {
  .launch-events ol li {
    padding: 0.65rem 7% 0.65rem 7%;
  }
}
@media (min-width: 1930px) {
  .launch-events ol li {
    padding: 0.75rem 7% 0.75rem 7%;
  }
}
@media (orientation: landscape) and (max-width: 992px) {
  .launch-events ol li {
    padding: 0.3rem 7% 0.3rem 7%;
  }
}
.launch-events ol li:nth-child(1) {
  border-top: 2px solid rgba(255, 255, 255, 0.5333333333);
  color: rgba(255, 255, 255, 0.5333333333);
  font-size: 0.95em;
  margin: 0 var(--outer-indent) 0 var(--outer-indent);
}
.launch-events ol li:nth-child(2) {
  border-top: 2px solid rgba(255, 255, 255, 0.8117647059);
  color: rgba(255, 255, 255, 0.8117647059);
  font-size: 0.97em;
  margin: 0 var(--inner-indent) 0 var(--inner-indent);
}
.launch-events ol li:nth-child(3) {
  font-weight: bold;
  border-top: 6px solid white;
  border-bottom: 6px solid white;
}
.launch-events ol li:nth-child(4) {
  border-bottom: 3px solid white;
}
.launch-events ol li:nth-child(5) {
  border-bottom: 2px solid white;
}
.launch-events ol li:nth-child(6) {
  font-size: 0.97em;
  margin: 0 var(--inner-indent) 0 var(--inner-indent);
  border-bottom: 2px solid rgba(255, 255, 255, 0.8117647059);
  color: rgba(255, 255, 255, 0.8117647059);
}
.launch-events ol li:nth-child(7) {
  font-size: 0.95em;
  margin: 0 var(--outer-indent) 0 var(--outer-indent);
  border-bottom: 2px solid rgba(255, 255, 255, 0.5333333333);
  color: rgba(255, 255, 255, 0.5333333333);
}

.eventTime {
  font-family: DMMono-Regular;
  font-size: 1em;
  margin-top: 4%;
}
@media (min-width: 992px) {
  @media not all and (min-aspect-ratio: 0.75) and (max-aspect-ratio: 1.25) {
    .eventTime {
      text-align: right;
      width: 30%;
      margin-top: 0%;
    }
  }
}

/*==========================================*/
/* || Footer */
/*==========================================*/
footer {
  background-color: black;
  display: flex;
  flex-direction: column;
  font-family: public-sans, sans-serif;
  font-size: 0.4em;
  height: auto;
  justify-content: left;
  padding: 4% 1% 4% 1%;
  z-index: 5;
}
@media (min-width: 992px) {
  footer {
    justify-content: space-between;
    flex-direction: row;
    padding: 1.5% 1% 1.5% 1%;
  }
}
@media (orientation: landscape) and (max-width: 992px) {
  footer {
    justify-content: space-between;
    flex-direction: row;
    padding: 1.5% 1% 1.5% 1%;
  }
}
footer a:link, footer a:visited, footer a:hover, footer a:active {
  text-decoration: none;
}

.footer-block {
  display: flex;
  flex-direction: column;
  text-align: center;
}

.footer-block:nth-child(1) {
  padding-bottom: 3%;
}
@media (min-width: 992px) {
  .footer-block:nth-child(1) {
    text-align: left;
    padding-bottom: 0%;
    margin-left: 1%;
  }
}
@media (orientation: landscape) and (max-width: 992px) {
  .footer-block:nth-child(1) {
    text-align: left;
    padding-bottom: 0%;
    margin-left: 1%;
  }
}

@media (min-width: 992px) {
  .footer-block:nth-child(2) {
    text-align: right;
    margin-right: 1%;
  }
}
@media (orientation: landscape) and (max-width: 992px) {
  .footer-block:nth-child(2) {
    text-align: right;
    margin-right: 1%;
  }
}

.footer-text {
  padding-bottom: 0.75%;
  color: #959599;
}
.footer-text a {
  color: #959599;
}
.footer-text a:link, .footer-text a:visited, .footer-text a:hover, .footer-text a:active {
  text-decoration: none;
}
