* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Arial', 'Helvetica', system-ui, -apple-system, sans-serif;
  font-size: 16px;
  color: #131313;
}

html {
  overflow-x: clip;
}

body {
  display: flex;
  flex-direction: column;
  row-gap: 64px;
  min-height: 100vh;
  padding: 12px 24px 24px;
  background: #F9F9F9;

  @media (max-width: 991px) {
    padding: 12px;
  }

  ul {
    list-style: circle;

    li {
      margin-left: 24px;
      border-bottom: 1px dotted #131313;
      padding: 5px 12px 5px 0;

      &:first-child {
        border-top: 1px dotted #131313;
      }
    }
  }

  h1,
  h2 {
    font-size: 34px;
    letter-spacing: -0.01em;
    line-height: 1;

    @media (max-width: 991px) {
      font-size: min(5.6vw, 24px);
      line-height: 1;
    }
  }

  h3 {
    font-weight: normal;
  }

  h4 {
    font-size: 21px;
    letter-spacing: -0.01em;

    @media (max-width: 991px) {
      font-size: min(5.6vw, 24px);
      line-height: 1;
    }
  }

  p,
  li {
    a {
      text-decoration: underline dotted;
      text-underline-offset: 3px;
    }
  }

  a {
    transition: opacity 0.15s ease;

    &:hover {
      opacity: 0.75;
    }
  }
}

.row {
  display: flex;
  flex-wrap: wrap;
  column-gap: 40px;

  .col {
    &.col-33 {
      width: calc(33.33% - 40px * 2 / 3);
    }

    &.col-66 {
      width: calc(66.66% - 40px * 1 / 3);
    }

    @media (max-width: 991px) {
      &.col-33,
      &.col-66 {
        width: 100%;
      }
    }
  }
}

.header {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 4;
  opacity: var(--header-opacity, 1);
  filter: blur(var(--header-blur, 0px));
  transition: opacity 0.1s ease, filter 0.1s ease;
  pointer-events: none;
  padding: 12px 24px;

  @media (max-width: 991px) {
    top: 12px;
    left: 0;
    padding: 0 12px;
  }

  img {
    width: 100%;
  }
}

.intro {
  margin-top: 15vw;
  position: sticky;
  top: 0;
  z-index: 3;

  @media (max-width: 991px) {
    margin-top: calc(11vw + 12px);
  }

  .row {
    background: #F9F9F9;
    padding-top: 12px;
    align-items: flex-end;

    .col:last-child {
      display: flex;
      justify-content: flex-end;
    }
  }

  &::after {
    display: block;
    content: '';
    height: 60px;
    width: 100%;
    background: linear-gradient(to bottom, #F9F9F9, transparent);
  }

  .col-66 {
    h2 {
      margin-bottom: 12px;
    }

    p {
      width: calc(50% - 40px * 1 / 2);

      @media (max-width: 991px) {
        width: 100%;
      }
    }
  }

  h1,
  h2 {
    text-transform: uppercase;
  }

  .cta {
    display: block;
    padding: 28px 76px;
    font-weight: bold;
    background: #251193;
    color: #F9F9F9;
    text-decoration: none;
    border-radius: 12px;
    text-align: center;

    @media (max-width: 991px) {
      width: 100%;
      padding: 12px;
      margin-top: 1em;
      border-radius: 9px;
    }
  }
}

.main {
  flex-grow: 1;
  z-index: 2;
  position: sticky;
  top: max(calc(15vw + 40px), calc(var(--intro-height, 0px) - 60px + 40px));
  padding-bottom: 80px;
  display: flex;
  flex-direction: column;
  row-gap: 260px;

  @media (max-width: 991px) {
    padding-bottom: 200px;
    row-gap: 80px;
  }

  h3 {
    margin-bottom: 1em;

    @media (max-width: 991px) {
      color: #251193;
      margin-bottom: 12px;
    }
  }

  h4 {
    text-transform: uppercase;
    margin-bottom: 3em;
    padding-right: 24px;

    @media (max-width: 991px) {
      margin-bottom: 2em;
    }
  }

  a {
    font-weight: bold;
    color: #251193;
  }

  .row {
    .col {
      @media (max-width: 991px) {
        margin-bottom: 100px;
      }
    }

    &:last-child {
      border-top: 1px dotted #131313;
      padding-top: 12px;

      .col {
        @media (max-width: 991px) {
          margin-bottom: 1em;
        }
      }

      p, strong, a, span, li {
        font-size: 14px;
      }

      li {
        border-top: none;
        border-bottom: none;
      }
    }
  }
}

@keyframes blob {
  0%, 100% {
    border-radius: 40% 60% 60% 40% / 60% 30% 70% 40%;
    transform: translate(0, 0) scale(1);
  }
  25% {
    border-radius: 50% 50% 30% 70% / 50% 60% 40% 50%;
    transform: translate(20px, -15px) scale(1.05);
  }
  50% {
    border-radius: 30% 70% 50% 50% / 40% 50% 50% 60%;
    transform: translate(-10px, 10px) scale(0.95);
  }
  75% {
    border-radius: 60% 40% 40% 60% / 50% 40% 60% 50%;
    transform: translate(15px, 5px) scale(1.02);
  }
}

footer {
  position: relative;
  overflow: visible;
  pointer-events: none;

  a {
    text-decoration: none;
    text-transform: uppercase;
  }

  .row {
    align-items: flex-end;
    position: relative;
    z-index: 2;
    pointer-events: auto;

    .col {
      &:nth-child(1) {
        a {
          margin-right: 24px;
        }

        @media (max-width: 991px) {
          padding-bottom: 12px;
          border-bottom: 1px #131313 dotted;
        }
      }

      &:nth-child(2) {
        display: flex;
        justify-content: space-between;
        column-gap: 40px;

        @media (max-width: 991px) {
          gap: 12px;
          flex-wrap: wrap;
          margin-top: 12px;
        }

        .footer-logo {
          max-height: 40px;
          max-width: 168px;
          /* flex: 1; */
          height: 40px;
          
          img {
            min-width: 0;
            width: 100%;
            height: 100%;
          }

          @media (max-width: 1200px) {
            height: auto;
            max-height: 28px;
            flex: 1;
          }

          @media (max-width: 991px) {
            max-width: calc(20% - 12px * 4 / 5);
            /* flex: 0 1 calc(20% - 24px * 4 / 5); */
            display: flex;
            align-items: flex-start;
            flex: none;
            max-height: 28px;

            img {
              max-height: 28px;
              width: 100%;
              object-fit: contain;
              object-position: left;
            }

            &:last-child {
              padding-top: 12px;
              border-top: 1px #131313 dotted;
              width: 100%;
              min-width: 100%;
              max-height: 36px;
            }
          }
        }
      }
    }
  }
}

.blob-wrapper {
  position: absolute;
  bottom: -24px;
  left: -24px;
  width: 100vw;
  height: 30vw;
  overflow: hidden;
  pointer-events: none;
  z-index: 1;
  padding-left: 5%;

  @media (max-width: 991px) {
    bottom: -12px;
    left: -12px;
    height: 50vh;
    padding-left: 0;
  }

  .blob {
    width: 90%;
    height: 45vw;
    background: linear-gradient(135deg, #7FAEFF, #2AFF87);
    opacity: 1;
    filter: blur(40px);
    animation: blob 6s ease-in-out infinite;
    margin-top: 7vw;

    @media (max-width: 991px) {
      width: 100%;
      height: 80vh;
      margin-top: 15vh;
    }
  }
}