/* wawww Animate v1.1.0 */

/*
 * will-change is NOT applied globally — it would permanently reserve GPU
 * compositor layers for every animated element, even after animation ends.
 * GSAP's clearProps handles GPU layer release per-tween automatically.
 */

/* ── Character split: word wrapper ────────────────────────────────────────── */
/* Keeps individual chars together; prevents mid-word line-breaks */
.w-word {
  display        : inline-flex;
  flex-wrap      : nowrap;
  white-space    : nowrap;
  vertical-align : baseline;
  align-items    : baseline;
}

.w-char {
  display     : inline-block;
  flex-shrink : 0;
}

/* ── SplitText / hero line mask ────────────────────────────────────────────── */
/* Clips lines so words can slide up/down without overflowing */
.split-line-mask {
  overflow         : hidden;
  display          : block;
  padding-bottom   : 0.1em; /* prevents descender clipping on g, p, y, etc. */
}

/* ── Gradient text: preserve gradient fill through GSAP char splits ────────── */
.gradient-text .w-word,
[class*="gradient"] .w-word {
  background              : inherit;
  -webkit-background-clip : text;
  background-clip         : text;
  -webkit-text-fill-color : inherit;
}

.gradient-text .w-char,
[class*="gradient"] .w-char {
  display                 : inline-block;
  background              : inherit;
  -webkit-background-clip : text;
  background-clip         : text;
  -webkit-text-fill-color : transparent;
}

/* ── Gradient / outline buttons ────────────────────────────────────────────── */
/* Preserve stacking context so GSAP opacity changes don't bleed through */
.button-gradient {
  transform-style : preserve-3d;
}
