.reference-approach {
  isolation: isolate;
  color: #090909;
  background: #fff;
  padding: 12vh 30px;
  position: relative;
  overflow: clip;
}

.reference-approach:before {
  content: "";
  z-index: -1;
  pointer-events: none;
  background: url("../media/approach-ribbon.webp") 0 20vh / 100vw no-repeat;
  position: absolute;
  inset: 0;
}

.reference-approach-inner {
  max-width: 1620px;
  margin-inline: auto;
}

.reference-approach-intro {
  max-width: 630px;
  margin: 0 auto calc(65px + 1vh);
}

.reference-approach .reference-approach-label {
  letter-spacing: .12em;
  text-transform: uppercase;
  margin: 0 0 24px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.3;
}

.reference-approach-intro > p {
  letter-spacing: -.025em;
  margin: 0;
  font-size: 34px;
  font-weight: 500;
  line-height: 1.3;
}

.reference-approach-tiles {
  align-items: stretch;
  gap: 0;
  margin: 0;
  padding: 0 0 0 20px;
  list-style: none;
  display: flex;
}

.reference-approach-slot {
  flex-shrink: 0;
  width: calc(25% + 15px);
  min-width: 0;
  margin-left: -20px;
  padding-bottom: 50px;
  position: relative;
}

.reference-approach-slot:nth-child(2n) {
  padding-top: 50px;
  padding-bottom: 0;
}

.reference-approach-slot:first-child {
  z-index: 2;
  --tile-tint: 222,242,255;
}

.reference-approach-slot:nth-child(2) {
  z-index: 3;
  --tile-tint: 197,255,207;
}

.reference-approach-slot:nth-child(3) {
  z-index: 4;
  --tile-tint: 239,227,255;
}

.reference-approach-slot:nth-child(4) {
  z-index: 1;
  --tile-tint: 200,212,253;
}

.reference-approach-card {
  background: linear-gradient(145deg,#ffffffb8,#ffffff8c),rgb(var(--tile-tint));
  -webkit-backdrop-filter: blur(5px);
  height: 100%;
  min-height: 330px;
  transform: translate3d(0,var(--card-parallax, 0px),0);
  will-change: transform;
  border: 1px solid #09090933;
  border-radius: 20px;
  padding: 30px 30px 20px;
  position: relative;
  box-shadow: inset 0 1px 1px #ffffffa6, 0 5px 15px #09090906;
}

.reference-approach-number {
  margin-bottom: 8vh;
  font-size: 14px;
  line-height: 1.3;
  display: block;
}

.reference-approach-card h3 {
  letter-spacing: -.025em;
  margin: 0 0 10px;
  font-size: 26px;
  font-weight: 500;
  line-height: 1.15;
}

.reference-approach-card p {
  margin: 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
}

.reference-approach-label, .reference-approach-number {
  opacity: 0;
  transition: opacity 1s 50ms;
}

.reference-approach .is-revealed {
  opacity: 1;
}

@media (width >= 1600px) {
  .reference-approach-intro {
    max-width: 800px;
  }

  .reference-approach-intro > p {
    font-size: 40px;
  }

  .reference-approach-card h3 {
    font-size: 30px;
  }
}

@media (width <= 1100px) {
  .reference-approach {
    padding: 60px 20px;
  }

  .reference-approach-card {
    padding: 20px;
  }

  .reference-approach-card h3 {
    font-size: 23px;
  }

  .reference-approach-card p {
    font-size: 14px;
  }

  .reference-approach-number {
    margin-bottom: 30px;
  }
}

@media (width <= 767px) {
  .reference-approach {
    padding: 60px 20px 40px;
  }

  .reference-approach:before {
    background-position: 0 80px;
    background-size: auto 650px;
  }

  .reference-approach-intro {
    margin-bottom: 32px;
  }

  .reference-approach-intro > p {
    font-size: 26px;
  }

  .reference-approach-tiles {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 0;
    display: grid;
  }

  .reference-approach-slot, .reference-approach-slot:nth-child(2n) {
    width: 100%;
    margin: 0;
    padding: 0;
  }

  .reference-approach-card {
    will-change: auto;
    min-height: 230px;
    padding: 24px;
    transform: none;
  }

  .reference-approach-number {
    margin-bottom: 30px;
  }

  .reference-approach-card h3 {
    font-size: 25px;
  }

  .reference-approach-card p {
    font-size: 15px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .reference-approach-card {
    will-change: auto;
    transform: none;
  }

  .reference-approach-label, .reference-approach-number {
    opacity: 1;
    transition: none;
  }
}

.reference-approach:before {
  transform-origin: 50% 45%;
  animation: 16s cubic-bezier(.45, 0, .55, 1) infinite paused approach-glass-wave;
}

.reference-approach.wave-is-visible:before {
  will-change: transform;
  animation-play-state: running;
}

@keyframes approach-glass-wave {
  0%, 100% {
    transform: translate3d(-2%, 12px, 0) rotate(-1.8deg) scale(1.08, 1.02) skewX(-2deg);
  }

  25% {
    transform: translate3d(1%, -22px, 0) rotate(.8deg) scale(1.04, 1.09) skewX(1.5deg);
  }

  50% {
    transform: translate3d(2.5%, 8px, 0) rotate(2deg) scale(1.1, .98) skewX(3deg);
  }

  75% {
    transform: translate3d(-.5%, 26px, 0) rotate(-.5deg) scale(1.06) skewX(-1deg);
  }
}

@media (width <= 767px) {
  .reference-approach:before {
    animation-duration: 20s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .reference-approach:before, .reference-approach.wave-is-visible:before {
    will-change: auto;
    animation: none;
    transform: none;
  }
}

@media (width >= 768px) and (width <= 1100px) {
  .reference-approach-tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
    padding: 0;
    display: grid;
  }

  .reference-approach-slot {
    width: 100%;
    margin-left: 0;
    padding-bottom: 0;
  }

  .reference-approach-slot:nth-child(2n) {
    padding-top: 0;
  }

  .reference-approach-card {
    transform: none;
  }
}
