html {
  font-size: 1vw;
  overflow: hidden;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
}
@media (min-width: 600px) {
  html {
    font-size: 6px;
  }
}

body {
  background-color: #000;
  font-family: 'Libre Baskerville', serif;
  height: 100%;
  left: 0;
  overflow: hidden;
  position: fixed;
  top: 0;
  width: 100%;
}

.wrap {
  left: 0;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  -ms-scroll-chaining: none;
      overscroll-behavior: none;
  position: absolute;
  top: 0;
  width: 100%;
  -webkit-overflow-scrolling: touch;
}

@supports (-webkit-touch-callout: none) {
  .wrap::-webkit-scrollbar {
    display: none;
  }
}
.slide {
  -webkit-box-align: center;
          align-items: center;
  background: #fff;
  color: #000;
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
          flex-direction: column;
  -webkit-box-pack: start;
          justify-content: flex-start;
  width: 100%;
}
.slide:nth-child(even) {
  background: #000;
  color: #fff;
}

.content {
  -webkit-box-align: center;
          align-items: center;
  box-sizing: border-box;
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
          flex-direction: column;
  -webkit-box-pack: center;
          justify-content: center;
  left: 0;
  max-width: 100rem;
  padding: 0 7rem;
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  width: 100%;
}

.content-inner {
  opacity: 0;
  -webkit-transform: scale(0.95);
          transform: scale(0.95);
  -webkit-transition: opacity 2000ms cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 2000ms cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 2000ms cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 2000ms cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 2000ms cubic-bezier(0.16, 1, 0.3, 1), transform 2000ms cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 2000ms cubic-bezier(0.16, 1, 0.3, 1), transform 2000ms cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 2000ms cubic-bezier(0.16, 1, 0.3, 1);
}
.slide--intro .content-inner {
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.in-view .content-inner {
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}

h1,
h2 {
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.3;
  text-align: center;
}

h1 {
  font-size: 11rem;
  padding: 0.25em 0;
  position: relative;
}

h2 {
  font-size: 6.5rem;
}

p {
  font-size: 4rem;
  font-weight: 400;
  line-height: 1.5;
  margin-top: 5rem;
  text-align: center;
}

.image-wrap {
  box-sizing: border-box;
  margin-top: 7rem;
  padding: 0 10rem;
  width: 100%;
}
.image-wrap:first-child {
  margin-top: 0;
}

img {
  display: block;
  margin: 0 auto;
  width: 100%;
}

.progress-track {
  background-color: #fff;
  height: 100%;
  left: 3px;
  overflow: hidden;
  mix-blend-mode: difference;
  position: fixed;
  top: 0;
  width: 1px;
}

.progress-wrap {
  height: 100%;
  left: 0;
  mix-blend-mode: difference;
  overflow: hidden;
  position: fixed;
  top: 0;
  width: 3px;
}

.progress {
  background-color: #fff;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  -webkit-transform: translate3d(0, -100%, 0);
          transform: translate3d(0, -100%, 0);
  width: 100%;
}

/* Title Intro Animation */
.line-wrap {
  height: 1px;
  left: 0;
  overflow: hidden;
  position: absolute;
  width: 100%;
}
.line-wrap.line-wrap--top {
  top: 0;
}
.line-wrap.line-wrap--bottom {
  bottom: 0;
}

.line {
  background-color: #000;
  height: 100%;
  opacity: 0;
  width: 100%;
}
.line-wrap--top .line {
  -webkit-animation: line-enter-top 1750ms 750ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
          animation: line-enter-top 1750ms 750ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.line-wrap--bottom .line {
  -webkit-animation: line-enter-bottom 1750ms 750ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
          animation: line-enter-bottom 1750ms 750ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@-webkit-keyframes line-enter-top {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
            transform: translate3d(100%, 0, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}

@keyframes line-enter-top {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
            transform: translate3d(100%, 0, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}
@-webkit-keyframes line-enter-bottom {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
            transform: translate3d(-100%, 0, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}
@keyframes line-enter-bottom {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
            transform: translate3d(-100%, 0, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}
.slide--intro h1 span {
  -webkit-animation: span-enter 1000ms forwards;
          animation: span-enter 1000ms forwards;
  display: inline-block;
  opacity: 0;
}
.slide--intro h1 span:nth-child(2) {
  -webkit-animation-delay: 820ms;
          animation-delay: 820ms;
}
.slide--intro h1 span:nth-child(3) {
  -webkit-animation-delay: 855ms;
          animation-delay: 855ms;
}
.slide--intro h1 span:nth-child(4) {
  -webkit-animation-delay: 890ms;
          animation-delay: 890ms;
}
.slide--intro h1 span:nth-child(5) {
  -webkit-animation-delay: 925ms;
          animation-delay: 925ms;
}
.slide--intro h1 span:nth-child(6) {
  -webkit-animation-delay: 960ms;
          animation-delay: 960ms;
}
.slide--intro h1 span:nth-child(7) {
  -webkit-animation-delay: 995ms;
          animation-delay: 995ms;
}
.slide--intro h1 span:nth-child(8) {
  -webkit-animation-delay: 1030ms;
          animation-delay: 1030ms;
}
.slide--intro h1 span:nth-child(9) {
  -webkit-animation-delay: 1065ms;
          animation-delay: 1065ms;
}
.slide--intro h1 span:nth-child(10) {
  -webkit-animation-delay: 1100ms;
          animation-delay: 1100ms;
}
.slide--intro h1 span:nth-child(11) {
  -webkit-animation-delay: 1135ms;
          animation-delay: 1135ms;
}
.slide--intro h1 span:nth-child(12) {
  -webkit-animation-delay: 1170ms;
          animation-delay: 1170ms;
}
.slide--intro h1 span:nth-child(13) {
  -webkit-animation-delay: 1205ms;
          animation-delay: 1205ms;
}

@-webkit-keyframes span-enter {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 0.1em, 0);
            transform: translate3d(0, 0.1em, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}

@keyframes span-enter {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 0.1em, 0);
            transform: translate3d(0, 0.1em, 0);
  }
  100% {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}
