body {
  background: top / 100vw 25vw no-repeat linear-gradient(195deg,
    #9AD3FF,
    #E6E2FF 25%,
    #FFF 45%
  );
}

section:where(:not(.footer-cta, #integrations)) {
  padding: 4rem max((100% - 1300px) / 2 + 2rem, 2rem);
  section { padding: 0; }
}

#hero, #pricing {
  a {
    font-size: 1.1rem;
    font-weight: 700;
    &.primary {
      padding: 1.25rem 1.75rem;
      color: white;
      background-color: black;
      border-radius: .4rem;
      text-decoration: none;
      transition: opacity .2s;
      &:hover { opacity: .8; }
    }
    &.secondary {
      padding: .5rem .75rem;
      color: black;
      text-decoration: underline transparent;
      text-decoration-thickness: 3px;
      text-underline-offset: .8rem;
      transition: text-decoration-color .2s;
      &:hover { text-decoration-color: currentcolor; }
    }
  }
}

#hero {
  padding-top: 10rem;
  text-align: center;
  h1 {
    margin: 0;
    font-size: clamp(2rem, 2.4vw + 1.3rem, 3.6rem);
  }
  p {
    max-width: 56rem;
    margin: 1em auto;
    font-size: clamp(1rem, .8vw + .9rem, 1.3rem);
    line-height: 1.75;
  }
  nav {
    display: flex;
    margin: 4rem auto 7rem;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem 2rem;
    font-weight: 700;
    font-size: 1.1rem;
    letter-spacing: .01em;
    white-space: nowrap;
  }
  #hero-video {
    position: relative;
    img {
      max-width: 100%;
      height: auto;
    }
    img.face {
      border-radius: 50%;
      width: clamp(6rem, 12.5vw + 3.4rem, 9rem);
      box-shadow: 0 5px 30px rgb(0 0 0 / 25%);
      position: absolute;
      inset: 100% clamp(2rem, 12.5vw - .6rem, 5rem) auto auto;
      translate: 0 -70%;
    }
    button {
      display: grid;
      place-items: center;
      width: 10rem;
      aspect-ratio: 1 / 1;
      margin: 0;
      position: absolute;
      inset: 50% auto auto 50%;
      translate: -50% -50%;
      background: #DEEBFAC8;
      border: none;
      border-radius: 50%;
      cursor: pointer;
      transition: scale .3s;
      svg {
        display: block;
        width: 5rem;
        aspect-ratio: 1 / 1;
      }
      &:hover { scale: 1.07; }
    }
  }
  dialog {
    display: block;
    width: 90%;
    height: 90%;
    padding: 0;
    position: fixed;
    background: none;
    border: none;
    &:not([open]){
      opacity: 0;
      pointer-events: none;
    }
    &::backdrop { background: rgb(0 0 0 / 40%); }
    video-player {
      display: block;
      max-width: 100%;
      max-height: 100%;
      aspect-ratio: 16 / 9;
      border-radius: .5rem;
      overflow: clip;
      &:not(:fullscreen){
        position: absolute;
        translate: -50% -50%;
        inset: 50% -50% -50% 50%;
      }
    }
  }
}

#features {
  display: flex;
  gap: 4rem;
  justify-content: center;
  padding-bottom: 6rem;
  background: bottom / cover no-repeat linear-gradient(
    white,
    #F2F5FF 80%
  );
  font-size: 1.1rem;
  img {
    width: auto;
    height: 2rem;
  }
  h3 {
    max-width: 20rem;
    margin: .5rem 0;
    font-size: 1.3rem;
    font-weight: 600;
  }
  p { max-width: 17rem; }

  @media (width < 768px){
    flex-flow: column;
    align-items: center;
  }
}

#customer-experiences {
  padding-block: 9rem 2rem;
  h2 {
    max-width: 60rem;
    margin: 0 auto;
    font-size: clamp(1.8rem, 3.75vw + .675rem, 3rem);
    text-align: center;
  }
  section {
    display: flow-root;
    margin: 8rem 0;
  }
  h3 {
    margin: 1em 0 1em;
    font-weight: 600;
    font-size: clamp(1.3rem, 1.4vw + 1rem, 1.8rem);
  }
  p {
    font-size: 1.1rem;
  }
  img {
    height: auto;
    float: right;
    width: min(55vw, 65%);
    margin: 0 0 0 10%;
  }

  @media (width < 800px){
    section {
      max-width: 33rem;
      margin: 4rem auto;
    }
    img {
      display: block;
      width: 100%;
      margin: 2rem auto;
      float: none;
    }
  }
}

#best-analytics {
  padding-inline: max((100% - 1300px) / 2 + 2rem, 2rem);
  background: bottom / 100% 100% no-repeat linear-gradient(135deg,
    #D2F3FF 10%,
    #FFEBD4,
    #E2DAFF 90%
  );
  text-align: center;
  h2 {
    margin: 1.5em auto 1em;
    font-weight: 600;
    font-size: clamp(1.8rem,.8vw + 1.6rem,2.2rem);
  }
  p {
    margin: 1rem auto;
    font-size: 1.1rem;
    max-width: 54rem;
  }
  img {
    width: 100%;
    height: auto;
    margin: 3rem auto;
  }
  img.narrow {
    display: none;
    max-width: 400px;
  }

  @media (width < 700px){
    text-align: left;
    img:not(.narrow){ display: none; }
    img.narrow { display: block; }
  }
}

#selling-points {
  display: grid;
  grid: auto / repeat(auto-fill, minmax(calc(10vw + 280px), max-content));
  justify-content: center;
  gap: 8rem 4rem;
  padding: 10rem max((100% - 1400px) / 2 + 2rem, 2rem);
  section {
    display: flex;
    flex-flow: column;
    max-width: 40rem;
  }
  h3 {
    margin: 0 0 1em;
    font-weight: 600;
    font-size: clamp(1.4rem, .8vw + .8rem, 1.5rem);
  }
  p {
    margin: 0 0 4rem;
    font-size: 1.1rem;
    max-width: 90%;
  }
  img {
    max-width: 100%;
    height: auto;
    margin-top: auto;
  }
}

#integrations {
  margin: 4rem auto 6rem;
}

#how-we-use {
  padding-block: 4rem 8rem;
  h2 {
    margin-block: 0 2em;
    font-size: clamp(1.8rem, 3.75vw + .675rem, 3rem);
    text-align: center;
  }
  nav {
    display: flex;
    flex-flow: row;
    gap: 2rem;
  }
  a {
    flex: 0 1 800px;
    overflow: clip;
    border-radius: 1rem;
    img {
      display: block;
      width: 100%;
      height: auto;
      transition: scale .2s;
    }
    &:hover img { scale: 1.05; }
  }

  @media (width < 800px){
    nav {
      flex-flow: column;
      max-width: 30rem;
      margin-inline: auto;
    }
    a { flex: 0 0 auto; }
  }
}

#stats {
  padding-top: 5rem;
}

#pricing {
  padding-block: 8rem;
  text-align: center;
  background: 30% 70% / 1000px 700px no-repeat radial-gradient(
    closest-side at center,
    #d3eaff,
    transparent
  ), 70% 80% / 900px 600px no-repeat radial-gradient(
    closest-side at center,
    #e1aeff,
    transparent
  );
  h2 {
    margin-block: 0 1em;
    font-size: clamp(1.8rem, 3.75vw + .675rem, 3rem);
    text-align: center;
  }
  h3 {
    margin: 0;
    font-size: clamp(1.8rem, 3.75vw + .675rem, 2.5rem);
  }
  p {
    margin: 1rem 0 3rem;
    font-size: 1.2rem;
  }
  .price {
    display: block;
    font-weight: 700;
    font-size: 1.5rem;
  }
  .price-suffix, .price-subtext {
    font-weight: normal;
    font-size: 1rem;
    color: #606784;
  }
  section {
    display: inline-block;
    max-width: 19rem;
    padding: 3rem;
    margin: 2.5rem 1.5rem 6rem;
    position: relative;
    background: white;
    border-radius: 1rem;
    text-align: left;
  }
  section[data-banner]{
    margin-top: 0;
    border-radius: 0 0 1rem 1rem;
    &::before {
      content: attr(data-banner);
      display: block;
      height: 2.5rem;
      position: absolute;
      inset: auto 0 100% 0;
      color: white;
      background: linear-gradient(260deg,#1f50ff,#8c56ff);
      font-size: .9rem;
      line-height: 2.5rem;
      font-weight: 600;
      text-transform: uppercase;
      text-align: center;
      border-radius: 1rem 1rem 0 0;
    }
  }
  @media(width < 900px){
    background: 10vw 30% / 100vw 700px no-repeat radial-gradient(
      closest-side at center,
      #d3eaff,
      transparent
    ), -10vw 70% / 110vw 700px no-repeat radial-gradient(
      closest-side at center,
      #e1aeff,
      transparent
    );
  }
  @media(width < 500px){
    section {
      margin-inline: 0;
    }
  }
}
