/* line-by-line text reveal, after makemepulse.com/contact: each line slides in from the left while fading, staggered */
[data-reveal]{ visibility:hidden; animation:rv-failsafe 0s 2.5s forwards; }
[data-reveal].rv-ready{ visibility:visible; animation:none; }
@keyframes rv-failsafe{ to{ visibility:visible; } }

[data-reveal] .rl{
  display:block; opacity:0;
  transform:translateX(var(--rx,-56px)) skewX(-9deg);
  transform-origin:left bottom;
  transition:transform 1.15s cubic-bezier(.16,1,.3,1), opacity .85s ease-out;
  transition-delay:calc(var(--i,0) * .11s + var(--d,0s));
  will-change:transform, opacity;
}
[data-reveal].in .rl{ opacity:1; transform:none; }
[data-reveal].rv-instant .rl{ transition:none; }
.cta-line[data-reveal]{ --rx:-100px; }

/* fun mode (About, Service): letters scramble into place while the font morphs from bold italic to regular;
   the mono face keeps every glyph the same width so nothing shifts. words also hop on hover. */
[data-reveal="fun"] .rw{ display:inline-block; white-space:pre; transition:transform .3s cubic-bezier(.16,1,.3,1), color .2s ease; }
[data-reveal="fun"] .rw.rw-s{ font-style:italic; font-weight:600; letter-spacing:0.02em; }
[data-reveal="fun"] .rw:hover{ transform:translateY(-3px) rotate(-2.5deg); font-style:italic; font-weight:600; color:#000; }

@media (prefers-reduced-motion:reduce){
  [data-reveal]{ visibility:visible; animation:none; }
  [data-reveal] .rl{ opacity:1; transform:none; transition:none; }
}
