/* H&S motion — structural styles only.
   Nothing here hides content: the hidden start state is applied by JS after
   GSAP loads, so a failed script leaves the page visible and static. */

.hs-w {
  display: inline-block;
  vertical-align: top;
  overflow: hidden;          /* the mask that words rise out of */
  padding-bottom: 0.12em;    /* room for descenders while clipped */
  margin-bottom: -0.12em;
}
.hs-w.is-open { overflow: visible; }

.hs-w-inner {
  display: inline-block;
  will-change: transform, opacity, filter;
}

/* Photo panels are revealed with clip-path; keep their corners crisp. */
.hs-clip { will-change: clip-path, transform; }

/* Magnetic buttons need their own transform space. */
.elementor-button { will-change: transform; }

/* Sticky header condenses on scroll. */
[data-elementor-type="header"] .elementor-sticky--effects {
  transition: none;          /* GSAP owns this */
}
