.wpl-heading .highlight.background,
.wpl-heading .highlight.gradient {
    -webkit-text-fill-color: transparent;
    -webkit-background-clip: text;
    background-clip: text;
    padding: 0 !important;
}

/* Hidden until .is-visible */
.wpl-heading.wpl-split-animation .wpl-split-char {
    display: inline-block;
    opacity: 0;
    transform: translateY(30px);
}

/* Animation runs only when .is-visible */
.wpl-heading.wpl-split-animation.is-visible .wpl-split-char {
    animation: wplSplitAnim var(--duration,800ms) cubic-bezier(.2,.6,.4,1) forwards;
    animation-delay: calc(var(--char-index) * var(--stagger,50ms));
}

/* Variants */
.wpl-heading.wpl-split-animation.is-visible[data-anim="fade-up"]   .wpl-split-char { animation-name: wplFadeUp; }
.wpl-heading.wpl-split-animation.is-visible[data-anim="fade-down"] .wpl-split-char { animation-name: wplFadeDown; transform: translateY(-30px); }
.wpl-heading.wpl-split-animation.is-visible[data-anim="slide-left"] .wpl-split-char { animation-name: wplSlideLeft; transform: translateX(30px); }
.wpl-heading.wpl-split-animation.is-visible[data-anim="slide-right"] .wpl-split-char { animation-name: wplSlideRight; transform: translateX(-30px); }
.wpl-heading.wpl-split-animation.is-visible[data-anim="scale"]    .wpl-split-char { animation-name: wplScale; transform: scale(0.3); }

/* Keyframes */
@keyframes wplFadeUp    { to { opacity:1; transform:translateY(0); } }
@keyframes wplFadeDown  { to { opacity:1; transform:translateY(0); } }
@keyframes wplSlideLeft { to { opacity:1; transform:translateX(0); } }
@keyframes wplSlideRight{ to { opacity:1; transform:translateX(0); } }
@keyframes wplScale     { to { opacity:1; transform:scale(1); } }