* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  background: #111820;
  color: #f4f4f4;
  overflow-x: hidden;
}

/* =========================
   IMAGE SECTION
========================= */

.hero {
  position: relative;
  height: 100vh;
  overflow: hidden;

  display: flex;
  align-items: center;
  justify-content: center;
}

.hero__image {
  position: absolute;
  inset: 0;

  background-size: cover;
  background-position: center;

  width: 100%;
  height: 120%;

  transform: translateY(0);

  will-change: transform;
}

.hero__overlay {
  position: absolute;
  inset: 0;

  background: rgba(0,0,0,0.35);
}

.hero__box {
  position: relative;
  z-index: 2;

  text-align: center;
  padding: 2rem;

  max-width: 900px;

  text-shadow: 0 3px 20px rgba(0,0,0,.65);
}

.hero h1 {
  margin: 0 0 1rem;

  font-size: clamp(2.5rem, 8vw, 6rem);

  letter-spacing: .05em;
}

.hero p {
  margin: 0;

  font-size: clamp(1.1rem, 3vw, 2rem);
}

/* =========================
   TEXT SECTION
========================= */

.text-section {
  min-height: 70vh;

  display: grid;
  place-items: center;

  padding: clamp(3rem, 8vw, 8rem) 1.5rem;

  background: #16202a;
}

.text-section:nth-of-type(even) {
  background: #101820;
}

.text-section__inner {
  max-width: 760px;

  line-height: 1.8;

  font-size: clamp(1.1rem, 2vw, 1.35rem);
}

.text-section h2 {
  margin-top: 0;

  font-size: clamp(2rem, 5vw, 4rem);
}

/* =========================
   MOBILE
========================= */

@media (max-width: 900px) {

  .hero {
    height: 90vh;
  }

  .hero__image {
    height: 110%;
  }

}
