/* ============================================================
   COOPER — Text reveal (Framer-style word-by-word mask reveal)
   ------------------------------------------------------------
   Each word sits inside a clipping mask. On reveal, the word
   slides up from translateY(115%) → 0 with a small per-word
   stagger and an out-expo style ease. Inspired by Orlen Real
   Estate / Framer-default text reveals.
   ============================================================ */

.trv-mask {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
  line-height: inherit;
  /* Headroom so descenders (g, p, y, j) survive overflow clip
     without bloating the layout box. */
  padding-bottom: 0.18em;
  margin-bottom: -0.18em;
}

/* Italic glyphs (in <em>) slant past their character box on the right;
   give masks inside italics horizontal headroom so the overhang of
   characters like "?", "f", "y" isn't clipped by overflow:hidden. */
em .trv-mask,
i  .trv-mask {
  padding-right: 0.12em;
  margin-right: -0.12em;
}

.trv-word {
  display: inline-block;
  line-height: inherit;
  transform: translate3d(0, 115%, 0);
  transition:
    transform 1100ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: calc(var(--trv-i, 0) * 55ms);
  will-change: transform;
}

.trv-revealed .trv-word {
  transform: translate3d(0, 0, 0);
}
