:root {
  /* colors */
  --color-white: #FFFFFF;
  --color-primary-lightest: hsl(77, 20%, 93%);
  --color-primary-light: hsl(95, 70%, 18%);
  --color-primary: hsl(95, 43%, 18%);
  --color-primary-opaque-100: hsla(95, 43%, 18%, 0);

  /* global pads */
  --page-tb-padding-1: 2.5rem; /* top-bottom-1 */
  --page-tb-padding-2: 3.5rem; /* top-bottom-2 */
  --page-lr-padding: 5rem; /* left-right */

  /* interactions */
  --time-reveal: 0.175s;
  --time-hide: 0s;

  /* easings */
  --ease-inout: ease-in-out;
  --ease-out: ease-out;
  --ease-in: ease-in;
}


*, *:before, *:after {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
html {
  width: 100%;
  height: 100%;
}
body {
  margin: 0;
  height: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* global */
ul, li {
  padding: 0;
  margin: 0;
  list-style: none;
}
a {
  color: #fff;
  text-decoration: none;
}
a:hover, a:focus {
  color: #fff;
  text-decoration: none;
}
.section {
  --bs-gutter-x: 0;
  font-family: din-2014;
  height: 100vh;
}
.full-height {
  min-height: 100vh;
  height: 100%;
}
.full-width {
  width: 100%;
}

.section-wrapper {
  padding: var(--page-tb-padding-1) 1rem;
}
@media (min-width: 1024px) {
  .section-wrapper {
    padding: 2rem 3rem;
  }
}
:where(#section_2, #section_4, #section_6) .section-wrapper {
  padding: var(--page-tb-padding-2) 1rem;
}
@media (min-width: 1024px) {
  :where(#section_2, #section_4, #section_6) .section-wrapper {
    padding: 2rem 3rem;
  }
}
.icon {
  font-size: 2.5rem;
  cursor: pointer;
}
.light-bg {
  background-color: var(--color-primary-lightest);
}
.dark-bg {
  background-color: var(--color-primary);
}

/* font-sizes */
.fs-1 {
  font-size: min(3.4vw, 4.5rem) !important;
  line-height: 1.1;
}
.fs-2 {
  font-size: min(4rem, 3.02vw) !important;
  line-height: 1;
}
.fs-3 {
  font-size: min(2.75rem, 2.075vw) !important;
  line-height: 1.2;
}
.fs-4 {
  font-size: min(1.25rem, .95vw) !important;
}
.fs-5 {
  font-size: min(6rem, 4.5vw) !important;
}
.fs-6 {
  font-size: min(6.5rem, 4.85vw) !important;
}
.fs-body-tiny {
  font-size: min(0.95rem, .72vw);
  line-height: 1.25;
}
.fs-body-1 {
  font-size: min(1rem, .75vw);
}
.fs-body-2 {
  font-size: min(1.35rem, 1.02vw);
  line-height: 1.25;
}
.fs-huge {
  font-size: min(13rem, 9.725vw);
}
.lh-1 {
  line-height: 0.75;
}

/* underlines */
#section_1 .text-decoration-underline {
  text-decoration-thickness: min(0.3rem, 0.25vw) !important;
  text-underline-offset: min(0.375rem, .313vw);
}
:where(#section_2, #section_3, #section_6) .text-decoration-underline {
  text-decoration-thickness: min(0.15rem, 0.125vw) !important;
  text-underline-offset: min(0.2rem, .167vw);
}
#section_7 .text-decoration-underline {
  text-decoration-thickness: min(0.35rem, 0.292vw) !important;
  text-underline-offset: min(0.55rem, 0.35vw);
}


main {
  height: 100%;
}

/* section 1 */
#section_1 {
  --bs-gutter-x: 0;
  position: relative;
  //height: 100%;
  color: var(--color-white)
}
#section_1:after {
  /* position: absolute; */
  content: '';
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background-color: rgba(0 0 0 / 0.15);
}
#section_1 .section-wrapper {
  background-image: linear-gradient(rgba(0 0 0 / 0.3), rgba(0 0 0 / 0.3)), url('../media/hero-bg-2k.jpg');
  background-position: 50% 60%;
  background-repeat: no-repeat;
  background-size: cover;
}
#section_1 .title-copy {
  max-width: 29ch;
  align-self: flex-end;
}


/* section 2 */
#section_2 {
  color: var(--color-primary)
}
#section_2 .pane:first-child {
  position: relative;
}
#section_2 .title-copy {
  position: relative;
  max-width: 50ch;
}
#section_2 .graph {
  /*position: absolute;
  width: 120%;
  bottom: 0;*/
}
#section_2 .graph > img {
  display: block;
}
#section_2 .graph .mobile {
  display: none;
}
.timeline-container .title {
  position: relative;
  max-width: 14ch;
  padding-bottom: 1.5rem
}
.timeline-container .title:after {
  position: absolute;
  content: '';
  width: 100%;
  height: 2px;
  background-color: var(--color-primary);
  left: 0;
  bottom: 0;
}
.timeline-container .item-container {
  margin-top: 1.5rem;
}
.timeline-container .item {
  position: relative;
  border-bottom: 1px solid var(--color-primary-opaque-100);
  transition: var(--time-reveal) var(--ease-out) border-bottom;
  cursor: pointer;
}
.timeline-container .item:hover {
  border-bottom: 1px solid var(--color-primary);
  transition: var(--time-reveal) var(--ease-in) border-bottom;
}

.timeline-container .item:not(:first-child) {
  padding-top: 0.75rem;
}
.timeline-container .item:not(:last-child) {
  padding-bottom: 0.75rem;
}
.item-trigger {
  position: relative;
  text-align: right;
  transition: calc(var(--time-reveal) * 0.125) var(--ease-inout) width;
  width: 100%;
}
.item:hover .item-trigger {
  width: 0;
  transition: var(--time-reveal) var(--ease-inout) width;

}
.sub-item {
  position: absolute;
  max-width: 15ch;
  bottom: 0;
  padding-top: 0.75rem;
  transform: translate(0, 100%);
}
.item .sub-title {
  white-space: pre;
  margin-bottom: 0;
  opacity: 0;
  transition: var(--time-reveal) var(--ease-out) opacity;
}
.item:hover .sub-title {
  opacity: 1;
  transition: var(--time-reveal) var(--ease-in) calc(var(--time-reveal) * 0.5) opacity;
}
.item .sub-copy {
  color: var(--color-primary-light);
  opacity: 0;
  transition: var(--time-reveal) var(--ease-out) opacity;
}
.item:hover .sub-copy {
  opacity: 1;
  transition: var(--time-reveal) var(--ease-in) calc(var(--time-reveal) * 0.5) opacity;
}
.item .sub-img {
  opacity: 0;
  max-width: 6rem;
  height: auto;
}
.item:hover .sub-img {
  opacity: 1;
  transition: var(--time-reveal) var(--ease-in) calc(var(--time-reveal) * 1) opacity;
}
.item:last-child .sub-item {
  /*max-width: 100%;*/
}
.item:nth-child(3) .sub-img {
  max-width: 6rem;
}
.item:nth-child(4) .sub-img {
  max-width: 6rem;
}
.item:nth-child(5) .sub-img {
  max-width: 6rem;
}
.item:nth-child(6) .sub-img {
  max-width: 7.5rem;
}
.item:nth-child(7) .sub-img {
  max-width: 4.5rem;

  /*
  height: min(12rem, 7.5vw);
  margin-left: 1.25rem;
  */
}
.item:last-child .sub-img {
  max-width: 4.5rem;

  /*
  height: min(12rem, 7.5vw);
  margin-left: 1.25rem;
  */
}
@media (min-width: 1024px) {
  .item:nth-child(3) .sub-img {
    max-width: 7.5rem;
  }
  .item:nth-child(4) .sub-img {
    max-width: 7.5rem;
  }
  .item:nth-child(5) .sub-img {
    max-width: 7.5rem;
  }
  .item:nth-child(6) .sub-img {
    max-width: 8.65rem;
  }
  .item:nth-child(7) .sub-img {
    max-width: 6rem;
  }
  .item:last-child .sub-img {
    max-width: 6rem;
  }
}

/* #section_3 */
#section_3 {
  color: #fff;
}
#section_3 .section-wrapper {
  opacity: 0;
  gap: 3rem;
}
#section_3 .section-wrapper.active {
  opacity: 1;
}
#section_3 .title-copy {
  max-width: 23ch
}
#section_3 .section-wrapper .pane:last-child {
  position: relative;
}
#section_3 .desktop {
  display: block;
}
#section_3 .mobile {
  display: none;
  position: absolute;
  left: 0;
  top: 0;
}

/* section_4 */
#section_4 {
  color: var(--color-primary);
}
#section_4 .section-wrapper {
  gap: 3rem;
}
#section_4 .title-copy {
  max-width: 26ch;
}
@media (min-width: 768px) {
  #section_4 .title-copy {
    max-width: 61ch;
  }
}
#section_4 .pane.d-grid {
  position: relative;
  grid-template-columns: 1fr auto;
  justify-items: center;
}
#section_4 svg {
  width: 54%;
}
#section_4 .cta {
  position: absolute;
  right: 0;
  bottom: 0;
  gap: 1rem;
}
#section_4 .cta .copy {
  max-width: 28ch;
  line-height: 1.05;
  color: var(--color-primary);
  text-underline-offset: 0.15rem;
}
#section_4 .cta .copy:hover {
  text-decoration: underline;
}
#section_4 .cta .copy a {
  color: var(--color-primary);
}
#section_4 .angle-right-icon {
  font-size: 2.5rem;
}

/* #section_5 */
#section_5 {
  color: #fff;
}
#section_5 .section-wrapper {
  position: relative;
}
#section_5 .section-wrapper {
  background-image: linear-gradient(rgba(0 0 0 / 0.3), rgba(0 0 0 / 0.3)), url('../media/APDBackground_20250519.jpg');
  background-position: 50% 60%;
  background-repeat: no-repeat;
  background-size: cover;
}
#section_5 figure {
  position: absolute;
  height: 74%;
  /*top: 49.4%;*/
  top: 50.075%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin: 0;
}
@media (min-width: 1024px) {
  #section_5 figure {
    top: 50.15%;
  }
}
#section_5 svg {
  height: 100%;
}
#section_5 .title-copy:first-child {
  max-width: 19ch;
  line-height: 1
}
#section_5 .title-copy:last-child {
  max-width: 28ch;
  align-self: end
}
@media (min-width: 1024px) {
  #section_5 .title-copy:last-child {
    padding-bottom: 2.75rem;
  }
}

/* #section_6 */
#section_6 {
  color: var(--color-primary)
}
#section_6 .wrapper {
  position: relative;
}
#section_6 .year {
  position: absolute;
  left: 0;
  top: 0;
  will-change: transform;
  transition: .25s ease-in-out .5s transform;
  transform: translate3d(var(--year-x), var(--year-y), 0) scale(var(--year-scale), var(--year-scale));
  backface-visibility: hidden;
}
#section_6 .tabs-container {
  position: relative;
  z-index: 1;
}
#section_6 .tabs-container:has(> .tabs .tab.active) + .achievements + .year {
  transform: translate3d(0, 0, 0) scale(1, 1);
  transition-duration: 0.125s;
  transition-delay: 0s
}
#section_6 .tab {
  cursor: pointer;
  font-weight: 100;
}
#section_6 .tab.active {
  text-decoration: underline;
  font-weight: 600;
}

.achievements {
  /*
  position: relative;
  height: 100%;
  margin-top: 3rem;
  */
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  margin-top: 3rem;
  right: 0;
}
.achievement {
  position: absolute;
  height: 100%;
  width: 100%;
  opacity: 0;
  transition: .125s ease-out .2s opacity;
}
.tabs-container:has(> .tabs .tab.active:first-child) + .achievements > .achievement:first-child,
.tabs-container:has(> .tabs .tab.active:nth-child(2)) + .achievements > .achievement:nth-child(2),
.tabs-container:has(> .tabs .tab.active:nth-child(3)) + .achievements > .achievement:nth-child(3),
.tabs-container:has(> .tabs .tab.active:nth-child(4)) + .achievements > .achievement:nth-child(4),
.tabs-container:has(> .tabs .tab.active:last-child) + .achievements > .achievement:last-child {
  opacity: 1;
}



.achievement .achievement-wrapper.d-grid {
  grid-template-rows: 1fr 1fr;
  height: 100%;
}
.achievement img {
  width: 100%;
}
.achievement .copy {
  max-width: 41ch;
  justify-self: center;
}
.achievement .content {
  height: 100%;
  grid-template-columns: 36.5vw 1fr;
  gap: 3vw;
}
.achievement .fs-6 {
  margin-inline: 3rem
}
.achievement .content + .content {
  border-top: 1px solid var(--color-primary);
}
.achievement:last-child .content {
  grid-template-columns: 35vw 1fr;
  gap: 6rem;
  padding-block: 8rem;
}
.achievement:last-child .fs-huge {
  line-height: 0.71;
}
.achievement:last-child .copy.nap-1 {
  max-width: 14ch
}
.achievement:last-child .copy.nap-2 {
  max-width: 38ch
}
.achievement img.ap-img-1 {
  max-width: 92%;
}
.achievement img.ap-img-1-mobile {
  display: none;
}
.achievement img.ap-img-2 {
  max-width: 78%;
}
.achievement:last-child .content:last-child .text-end {
  align-self: end;
}

/* #section_7 */
#section_7 {
  color: #fff;
}
#section_7 .title-copy {
  position: relative;
  max-width: 15ch;
  line-height: 1.15;
  padding-bottom: 4rem;
}
#section_7 .footer {
  border-top: 1px solid #fff;
  padding-top: 2rem
}
.footer .icon {
  font-size: 1.5rem;
  color: #fff;
  text-decoration: none;
}
.footer .icon:hover, .footer .icon:focus {
  color: #fff;
  text-decoration: none;
}
.footer .icon:not(:first-child) {
  margin-left: 2rem;
}
.footer .copyright {
  margin-top: 2rem;
}

@media (min-aspect-ratio: 21/10.5) {
  .timeline-container .title {
    padding-bottom: 1rem;
  }
  .timeline-container .item-container {
    margin-top: 1rem;
  }
  .timeline-container .item:not(:last-child) {
    padding-bottom: .5rem;
  }
  .timeline-container .item:not(:first-child) {
    padding-top: .5rem;
  }
  .sub-item {
    padding-top: .5rem;
  }

  #section_4 svg {
    width: 49%;
  }
}

@media (max-width: 1399px) {

  :root {
    --page-tb-padding-1: 2rem;
    --page-tb-padding-2: 3rem;
    --page-lr-padding: 4rem;
  }

}

@media (max-width: 1199px) {
  :root {
    --page-tb-padding-1: 1.5rem;
    --page-tb-padding-2: 2.5rem;
    --page-lr-padding: 3.5rem;
  }

  /* global */
  .icon {
    font-size: 1.25rem;
  }

  /* section_2 */
  .timeline-container .item:not(:last-child) {
    padding-bottom: 0.5rem;
  }
  .timeline-container .item:not(:first-child) {
    padding-top: 0.5rem;
  }
  .sub-item {
    padding-top: .5rem;
  }
  #section_2 .graph {
    width: 110%;
  }

  /* section_3 */
  #section_3 .pane:last-child {
    display: flex;
    height: 100%;
  }

  /* section_4 */
  #section_4 .pane.d-grid {
    height: 100%;
    align-items: center;
  }
  #section_4 svg {
    width: 75%;
  }

}

@media (max-width: 374px) {
  .fs-1 {
    font-size: 1.7rem !important;
    line-height: 1.1;
  }
}

@media (max-width: 767px) {
  :root {
    --page-tb-padding-1: 1rem;
    --page-tb-padding-2: 2rem;
    --page-lr-padding: 2rem;
  }
  html, body {
    min-height: 100lvh;
    min-height: -webkit-fill-available;
  }
  main {
    min-width: 100vw;
    width: 100%;
    /* height: 100lvh; */
    height: 100%;
    overflow-x: clip;
  }
  .icon {
    font-size: 2rem;
  }
  .full-height {
    min-height: 930px;
    height: 100lvh;
  }
  #section_1 .full-height, #section_1.full-height {
    min-height: 100%;
  }
  #section_2 .full-height, #section_2.full-height {
    min-height: 1000px;
  }
  #section_3 .full-height, #section_3.full-height {
    min-height: 920px;
  }
  @media (min-width: 400px) {
    #section_3 .full-height, #section_3.full-height {
      /*min-height: 780px;*/
    }
  }
  #section_4 .full-height, #section_4.full-height {
    min-height: 675px;
  }
  #section_5 .full-height, #section_5.full-height {
    min-height: 675px;
  }
  @media (min-width: 768px) {
    .full-height {
      min-height: 100%;
      height: 100%;
    }
  }


  /* font-sizes */
  .fs-1 {
    font-size: 2.1rem !important;
    line-height: 1.1;
  }
  .fs-2 {
    font-size: 1.75rem !important;
    line-height: 1;
  }
  .fs-3 {
    font-size: 1.25rem !important;
    line-height: 1.2;
  }
  .fs-4 {
    font-size: 0.75rem !important;
  }
  .fs-5 {
    font-size: 2.5rem !important;
  }
  .fs-6 {
    font-size: min(6.5rem, 4.85vw) !important;
  }
  .fs-body-tiny {
    font-size: 0.75rem;
    line-height: 1.25;
  }
  .fs-body-1 {
    font-size: 0.65rem;
  }
  .fs-body-2 {
    font-size: 0.85rem;
    line-height: 1.25;
  }
  .fs-huge {
    font-size: 6rem;
  }

  /* section_1 */
  #section_1 .section-wrapper {
    background-position-x: 1.75%;
    padding-bottom: 9.5rem;
  }
  #section_1 .section-wrapper .wrapper {
    flex-direction: row;
    justify-content: end !important;
    align-items: end;
    gap: 1rem;
    max-height: 100svh;
    height: 100svh;
    /* margin-bottom: 7rem; */
  }
  #section_1 .title-copy {
    max-width: 15ch;
    margin-bottom: 0;
    align-self: flex-start;
  }

  /* section_2 */
  #section_2 .section-wrapper {
    padding-top: 1rem;
    padding-bottom: 1rem;
    flex-direction: column-reverse !important;
  }
  .timeline-container .title {
    align-self: end;
    padding-bottom: 0.125rem;
  }
  .timeline-container .item-container {
    margin-top: 0.125rem;
  }
  .timeline-container .item:not(:last-child) {
    padding-bottom: 0.125rem;
  }
  .timeline-container .item:not(:first-child) {
    padding-top: 0.125rem;
  }
  .sub-item {
    /*max-width: 22ch;*/
    max-width: 25ch;
    padding-top: 0.25rem;
  }
  @media (min-width: 1024px) {
    .sub-item {
      max-width: 22ch;
    }
  }
  .item .sub-img {
    /*
    display: none;
    width: 0;
    opacity: 0;
    */
  }
  .item .sub-copy {
    line-height: 1.15;
  }

  #section_2 .pane:first-child {
    display: flex;
    justify-content: center;
  }

  #section_2 .graph {
    width: 95%;
  }
  #section_2 .graph > img {
    display: none;
  }
  #section_2 .graph .mobile {
    display: block;
  }

  /* section_3 */
  #section_3 .pane:last-child {
    margin-block: auto;
  }
  #section_3 .desktop {
    display: none;
  }
  #section_3 .mobile {
    display: block;
  }

  /* section_4 */
  #section_4 .pane.d-grid {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    height: 100%;
    margin-block: auto;
  }
  #section_4 svg {
    margin-block: auto;
    width: 100%;
  }
  #section_4 .cta {
    gap: 0.5rem;
  }
  #section_4 .angle-right-icon {
    font-size: 1.5rem;
  }

  /* section 5 */
  #section_5 .wrapper {
    flex-direction: column;
    min-height: 100%;
    height: 100%;
  }
  #section_5 figure {
    height: unset;
    width: 85%;
  }

  /* section 6 */
  #section_6 .section-wrapper {
    padding-bottom: 4rem;
  }
  #section_6 .wrapper.full-height {
    min-height: 100%;
    height: 100%;
  }
  .achievements-container.full-height {
    min-height: 100%;
    height: 100%;
  }
  .achievements-container {
    flex-direction: column !important;
  }
  .achievement.full-height {
    min-height: 100%;
    height: 100%;
  }
  .achievement .achievement-wrapper.d-grid {
    display: flex !important;
    flex-direction: column;
    height: 100%;
  }
  .achievement .content {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
  }
  .achievement:last-child .content {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    padding-block: 1rem;
  }
  .achievement-wrapper .content.d-grid .pane {
    justify-content: normal !important;
    gap: 1rem;
  }
  .achievement-wrapper .content.d-grid:first-child .pane {
    flex-direction: column-reverse !important;
  }
  .achievement-wrapper .content.d-grid:last-child .pane {
    flex-direction: column !important;
  }
  .achievement:last-child .copy {
    text-align: center;
    margin: 0 auto;
  }
  .achievement:last-child .content:last-child .text-end {
    text-align: center !important;
    align-self: center;
  }
  .achievement img {
    width: 80%;
    margin: 0 auto;
  }
  .achievement img.ap-img-1, .achievement img.ap-img-1-mobile, .achievement img.ap-img-2 {
    width: 70%;
  }
  .achievement img.ap-img-2 {
    width: 100%;
    max-width: unset;
  }
  .achievement img.ap-img-1 {
    display: none;
  }
  .achievement img.ap-img-1-mobile {
    display: block;
  }
  .achievement .fs-6 {
    font-size: 3rem !important;
    margin-inline: 1rem;
  }
  .achievement .content + .content .text-end span {
    display: inline-block;
    line-height: 0.71;
  }
  .achievement .copy {
    align-self: end;
  }
  .achievement:last-child {
    padding-top: 2rem;
  }

  #section_6 .tabs {
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
  }
  #section_6 .tab {
    width: 100%;
    text-align: end;
  }
  .achievement:last-child .copy.nap-1 {
    max-width: 100%;
  }

  /* section 7 */
  #section_7 .title-copy {
    padding-bottom: 1rem;
  }
  #section_7 .text-decoration-underline {
    text-decoration-thickness: 0.175rem !important;
    text-underline-offset: 0.35rem;
  }
  #section_7 .footer {
    padding-top: 1rem;
  }
  .footer .icon:not(:first-child) {
    margin-left: 1rem;
  }
  .footer .copyright {
    margin-top: 1rem;
  }

}