/* ==========================================================
   EAGLE HORIZON — FLOWING SIGNATURE REVEAL 13.0.5
   Exact approved moments only. The reveal is a single continuous,
   pen-like sweep with oversized vertical bounds so long script strokes
   are never cropped while the animation is in progress.
   ========================================================== */

.eagle-write{
  --eagle-write-duration:1.52s;
  --eagle-write-delay:.08s;
  overflow:visible!important;
}

/*
   IMPORTANT: use clip-path instead of the old mask-size animation.
   Negative top/bottom/left coordinates deliberately extend the reveal
   beyond the element box, preserving Eagle Horizon's high ascenders and
   low descenders from the first frame onward.

   The leading edge is slightly angled instead of perfectly vertical,
   which reads more like a moving pen stroke than a rectangular wipe.
*/
html.eagle-write-active .eagle-write:not(.is-write-complete){
  -webkit-clip-path:polygon(-12% -52%,-5% -52%,1% 152%,-12% 152%);
  clip-path:polygon(-12% -52%,-5% -52%,1% 152%,-12% 152%);
}

html.eagle-write-active .eagle-write.is-writing{
  animation:eagleFlowWrite1305 var(--eagle-write-duration) cubic-bezier(.32,.04,.16,1) var(--eagle-write-delay) both;
  will-change:clip-path;
}

/* One uninterrupted movement — no stepped keyframes and no pauses. */
@keyframes eagleFlowWrite1305{
  from{
    -webkit-clip-path:polygon(-12% -52%,-5% -52%,1% 152%,-12% 152%);
    clip-path:polygon(-12% -52%,-5% -52%,1% 152%,-12% 152%);
  }
  to{
    -webkit-clip-path:polygon(-12% -52%,108% -52%,114% 152%,-12% 152%);
    clip-path:polygon(-12% -52%,108% -52%,114% 152%,-12% 152%);
  }
}

html.eagle-write-active .eagle-write.is-write-complete{
  -webkit-clip-path:none!important;
  clip-path:none!important;
  will-change:auto;
}

/* The write-on replaces the legacy vertical entrance on the main names. */
html.eagle-write-active .hero-name.eagle-write{
  -webkit-clip-path:polygon(-12% -52%,-5% -52%,1% 152%,-12% 152%);
  clip-path:polygon(-12% -52%,-5% -52%,1% 152%,-12% 152%);
}
body.invite-opened .hero-name.eagle-write{
  animation-name:none!important;
}
html.eagle-write-active .hero-name.eagle-write.is-writing{
  animation:eagleFlowWrite1305 var(--eagle-write-duration) cubic-bezier(.32,.04,.16,1) var(--eagle-write-delay) both!important;
}
html.eagle-write-active .hero-name.eagle-write.is-write-complete{
  -webkit-clip-path:none!important;
  clip-path:none!important;
}

/* “Beautifully invited” has its own word animation in the finale. Disable
   only that inner clipping so the approved Eagle reveal owns the lettering.
   The surrounding finale movement/opacity remains intact. */
html.eagle-write-active .finale-end-title>strong.eagle-write{
  overflow:visible!important;
}
html.eagle-write-active .finale-end-title>strong.eagle-write b,
html.eagle-write-active .finale-end-title>strong.eagle-write em{
  opacity:1!important;
  -webkit-clip-path:none!important;
  clip-path:none!important;
  transform:none!important;
}

@media (max-width:760px){
  .eagle-write{--eagle-write-duration:1.46s}
}

@media (prefers-reduced-motion:reduce){
  html.eagle-write-active .eagle-write,
  html.eagle-write-active .eagle-write.is-writing,
  html.eagle-write-active .eagle-write.is-write-complete,
  html.eagle-write-active .hero-name.eagle-write,
  html.eagle-write-active .hero-name.eagle-write.is-writing{
    animation:none!important;
    -webkit-clip-path:none!important;
    clip-path:none!important;
  }
}
