html.reveal-ready .reveal-item {
  opacity: 0;
  filter: blur(16px);
  transform: translate3d(0, 38px, 0) scale(0.982);
  transition:
    opacity 1250ms cubic-bezier(0.19, 1, 0.22, 1),
    filter 1250ms cubic-bezier(0.19, 1, 0.22, 1),
    transform 1250ms cubic-bezier(0.19, 1, 0.22, 1);
  transition-delay: calc(var(--reveal-delay, 0) * 105ms);
  will-change: opacity, filter, transform;
}

html.reveal-ready .reveal-item.is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0) scale(1);
}

html.reveal-ready .reveal-card {
  transform: translate3d(0, 32px, 0) scale(0.968);
}

html.reveal-ready .reveal-card.is-visible {
  transform: translate3d(0, 0, 0) scale(1);
}

html.reveal-ready .reveal-side {
  transform: translate3d(48px, 0, 0) scale(0.982);
}

html.reveal-ready .reveal-side.is-visible {
  transform: translate3d(0, 0, 0) scale(1);
}

html.reveal-ready h1.reveal-item,
html.reveal-ready h2.reveal-item {
  letter-spacing: 0;
  transform: translate3d(0, 48px, 0) scale(0.972);
}

html.reveal-ready h1.reveal-item.is-visible,
html.reveal-ready h2.reveal-item.is-visible {
  transform: translate3d(0, 0, 0) scale(1);
}

html.reveal-ready .hero .reveal-item {
  transition-duration: 1450ms;
}

html.reveal-ready .site-header {
  animation: reveal-header 1200ms cubic-bezier(0.19, 1, 0.22, 1) both;
}

.hero-title-write {
  position: relative;
  display: inline-block;
  overflow: hidden;
  max-width: 100%;
}

html.reveal-ready .hero-title-write.reveal-item {
  opacity: 1;
  filter: none;
  transform: none;
  clip-path: inset(0 100% 0 0);
  transition: none;
  animation: reveal-title-write 14000ms cubic-bezier(0.19, 1, 0.22, 1) 420ms both;
}

.hero-title-write::after {
  content: "";
  position: absolute;
  top: 4%;
  bottom: 4%;
  left: 0;
  width: 22%;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(215, 179, 106, 0.1),
    rgba(244, 240, 232, 0.36),
    rgba(215, 179, 106, 0.16),
    transparent
  );
  filter: blur(10px);
  opacity: 0;
  transform: translateX(-130%);
}

html.reveal-ready .hero-title-write.reveal-item::after {
  animation: reveal-title-glint 14200ms cubic-bezier(0.19, 1, 0.22, 1) 420ms both;
}

html.reveal-ready .hero-title-write.reveal-item.is-visible {
  opacity: 1;
  filter: none;
  transform: none;
}

.prose-wave {
  overflow: hidden;
}

.prose-wave .prose-word {
  display: inline-block;
  color: rgba(244, 240, 232, 0.24);
  opacity: 0;
  filter: blur(10px);
  transform: translate3d(0, 1.1em, 0);
  transition:
    color 1700ms cubic-bezier(0.19, 1, 0.22, 1),
    opacity 1300ms cubic-bezier(0.19, 1, 0.22, 1),
    filter 1400ms cubic-bezier(0.19, 1, 0.22, 1),
    transform 1400ms cubic-bezier(0.19, 1, 0.22, 1);
  transition-delay: var(--word-delay, 0ms);
  will-change: color, opacity, filter, transform;
}

.prose-wave.is-visible .prose-word {
  color: inherit;
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0);
}

.prose-wave.prose-lit.is-visible .prose-word {
  background: linear-gradient(
    90deg,
    currentColor 0%,
    #f0dba3 44%,
    currentColor 78%
  );
  background-size: 260% 100%;
  background-position: 120% 0;
  background-clip: text;
  -webkit-background-clip: text;
  animation: reveal-prose-light 3600ms cubic-bezier(0.19, 1, 0.22, 1) both;
  animation-delay: var(--prose-light-delay, 360ms);
}

.prose-wave.kinetic-copy {
  position: relative;
  display: block;
  max-width: 840px;
  isolation: isolate;
  perspective: 900px;
}

.prose-wave.kinetic-copy::before,
.prose-wave.kinetic-copy::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.prose-wave.kinetic-copy::before {
  left: 0;
  right: 0;
  top: 52%;
  z-index: 2;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(215, 179, 106, 0.86), rgba(244, 240, 232, 0.72), transparent);
  box-shadow: 0 0 20px rgba(215, 179, 106, 0.35);
  opacity: 0;
  transform: scaleX(0) translate3d(0, 0, 0);
  transform-origin: left center;
}

.prose-wave.kinetic-copy::after {
  inset: -20% -12%;
  z-index: 3;
  width: 42%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(215, 179, 106, 0.16),
    rgba(244, 240, 232, 0.42),
    rgba(215, 179, 106, 0.18),
    transparent
  );
  filter: blur(9px);
  opacity: 0;
  transform: translate3d(-140%, 0, 0) skewX(-18deg);
}

.prose-wave.kinetic-copy .prose-word {
  position: relative;
  z-index: 1;
  color: rgba(244, 240, 232, 0.18);
  opacity: 0;
  filter: blur(15px);
  clip-path: inset(0 100% 0 0);
  transform: translate3d(var(--word-flight, 58px), var(--word-hop, 22px), 0)
    rotateX(18deg)
    skewX(var(--word-skew, -16deg))
    scale(0.88);
  transform-origin: center bottom;
  transition: none;
}

.prose-wave.kinetic-copy.is-visible .prose-word {
  animation: reveal-kinetic-word 520ms cubic-bezier(0.14, 1, 0.24, 1) both;
  animation-delay: var(--kinetic-word-delay, 20ms);
}

.prose-wave.kinetic-copy.prose-lit.is-visible .prose-word {
  background: linear-gradient(
    90deg,
    rgba(244, 240, 232, 0.52) 0%,
    #f5deb0 34%,
    #ffffff 48%,
    #d7b36a 62%,
    currentColor 100%
  );
  background-size: 320% 100%;
  background-position: 118% 0;
  background-clip: text;
  -webkit-background-clip: text;
  animation:
    reveal-kinetic-word 520ms cubic-bezier(0.14, 1, 0.24, 1) both,
    reveal-kinetic-scan 520ms cubic-bezier(0.14, 1, 0.24, 1) both;
  animation-delay:
    var(--kinetic-word-delay, 20ms),
    var(--kinetic-scan-delay, 70ms);
}

.prose-wave.kinetic-copy.is-visible {
  animation: reveal-copy-lock 640ms cubic-bezier(0.14, 1, 0.24, 1) both;
}

.prose-wave.kinetic-copy.is-visible::before {
  animation: reveal-kinetic-line 760ms cubic-bezier(0.14, 1, 0.24, 1) 40ms both;
}

.prose-wave.kinetic-copy.is-visible::after {
  animation: reveal-kinetic-sweep 820ms cubic-bezier(0.14, 1, 0.24, 1) 80ms both;
}

@keyframes reveal-header {
  from {
    opacity: 0;
    transform: translate3d(0, -16px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes reveal-kinetic-scan {
  0% {
    background-position: 118% 0;
  }

  100% {
    background-position: -70% 0;
  }
}

@keyframes reveal-kinetic-sweep {
  0% {
    opacity: 0;
    transform: translate3d(-140%, 0, 0) skewX(-18deg);
  }

  16% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    transform: translate3d(360%, 0, 0) skewX(-18deg);
  }
}

@keyframes reveal-kinetic-line {
  0% {
    opacity: 0;
    transform: scaleX(0);
  }

  20% {
    opacity: 0.92;
  }

  64% {
    opacity: 0.68;
    transform: scaleX(1);
  }

  100% {
    opacity: 0;
    transform: scaleX(1);
  }
}

@keyframes reveal-copy-lock {
  0% {
    transform: translate3d(-18px, 16px, 0) skewX(-4deg);
  }

  42% {
    transform: translate3d(5px, -2px, 0) skewX(1.6deg);
  }

  100% {
    transform: translate3d(0, 0, 0) skewX(0);
  }
}

@keyframes reveal-kinetic-word {
  0% {
    color: rgba(244, 240, 232, 0.18);
    opacity: 0;
    filter: blur(15px);
    clip-path: inset(0 100% 0 0);
    transform: translate3d(var(--word-flight, 58px), var(--word-hop, 22px), 0)
      rotateX(18deg)
      skewX(var(--word-skew, -16deg))
      scale(0.88);
  }

  52% {
    color: #f5deb0;
    opacity: 1;
    filter: blur(1px);
    clip-path: inset(0 0 0 0);
    transform: translate3d(var(--word-overshoot, -7px), -4px, 0)
      rotateX(0)
      skewX(var(--word-overskew, 4deg))
      scale(1.04);
  }

  100% {
    color: inherit;
    opacity: 1;
    filter: blur(0);
    clip-path: inset(0 0 0 0);
    transform: translate3d(0, 0, 0) skewX(0) scale(1);
  }
}

@keyframes reveal-prose-light {
  0% {
    background-position: 120% 0;
  }

  100% {
    background-position: -80% 0;
  }
}

@keyframes reveal-title-write {
  0% {
    clip-path: inset(0 100% 0 0);
  }

  100% {
    clip-path: inset(0 0 0 0);
  }
}

@keyframes reveal-title-glint {
  0% {
    opacity: 0;
    transform: translateX(-130%);
  }

  18% {
    opacity: 0.82;
  }

  72% {
    opacity: 0.58;
  }

  100% {
    opacity: 0;
    transform: translateX(540%);
  }
}

@media (prefers-reduced-motion: reduce) {
  html.reveal-ready .reveal-item,
  html.reveal-ready .reveal-card,
  html.reveal-ready .reveal-side,
  html.reveal-ready h1.reveal-item,
  html.reveal-ready h2.reveal-item,
  html.reveal-ready .hero-title-write.reveal-item,
  html.reveal-ready .hero-title-write.reveal-item::after,
  html.reveal-ready .site-header,
  .prose-wave .prose-word,
  .prose-wave.prose-lit.is-visible .prose-word,
  .prose-wave.kinetic-copy .prose-word,
  .prose-wave.kinetic-copy.prose-lit.is-visible .prose-word,
  .prose-wave.kinetic-copy.is-visible,
  .prose-wave.kinetic-copy.is-visible::before,
  .prose-wave.kinetic-copy.is-visible::after {
    animation: none;
    clip-path: none;
    filter: none;
    opacity: 1;
    transform: none;
    transition: none;
  }
}
