/* Signature intro — smooth left-to-right reveal */

.intro-signature-wrap {
  width: min(84vw, 760px);
  margin: 0 auto;
  opacity: 0;
  transform: scale(0.98);
  animation: introSignatureIn 0.45s cubic-bezier(0.16, 1, 0.3, 1) 0.05s forwards;
}

@keyframes introSignatureIn {
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.intro-signature__reveal {
  position: relative;
  overflow: hidden;
  width: 100%;
  transform: translateZ(0);
}

.intro-signature__reveal::after {
  content: '';
  position: absolute;
  inset: 0;
  background: #ffffff;
  transform-origin: right center;
  transform: scaleX(1);
  will-change: transform;
  pointer-events: none;
}

.intro-signature__reveal.is-writing::after {
  animation: signatureCurtain 2.8s linear forwards;
}

.intro-signature__reveal.is-complete::after {
  transform: scaleX(0);
  opacity: 0;
}

@keyframes signatureCurtain {
  to {
    transform: scaleX(0);
  }
}

.intro-signature__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 2 / 1;
}

#intro-overlay.is-exiting .intro-signature-wrap {
  transition: opacity 0.22s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  opacity: 0;
  transform: scale(1.02);
}

@media (prefers-reduced-motion: reduce) {
  .intro-signature-wrap {
    animation: none;
    opacity: 1;
    transform: none;
  }

  .intro-signature__reveal::after,
  .intro-signature__reveal.is-writing::after {
    animation: none;
    transform: scaleX(0);
    opacity: 0;
  }
}
