/**
 * Text Effects — word reveals, overline labels, gradient text.
 * @since 3.3.0
 */

/* Section Overline Labels */
.ccec-overline {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--ccec-font-size-xs);
    text-transform: uppercase;
    letter-spacing: var(--ccec-label-tracking, 0.15em);
    font-weight: 700;
    color: var(--ccec-primary);
}
.ccec-overline::before {
    content: '';
    width: 24px;
    height: 2px;
    background: currentColor;
    flex-shrink: 0;
}

/* Mixed Weight Headings */
.ccec-heading--mixed .light { font-weight: 300; }
.ccec-heading--mixed .bold { font-weight: 800; }

/* Word-by-Word Clip Reveal */
.ccec-word-reveal .w {
    display: inline-block;
    overflow: hidden;
    vertical-align: top;
    margin-right: 0.15em;
}
.ccec-word-reveal .w i {
    display: inline-block;
    font-style: normal;
    transform: translateY(110%);
    animation: ccec-word-up 0.75s var(--ccec-ease-expo, cubic-bezier(0.16, 1, 0.3, 1)) forwards;
}
.ccec-word-reveal .w:nth-child(1) i { animation-delay: 0.15s; }
.ccec-word-reveal .w:nth-child(2) i { animation-delay: 0.25s; }
.ccec-word-reveal .w:nth-child(3) i { animation-delay: 0.35s; }
.ccec-word-reveal .w:nth-child(4) i { animation-delay: 0.2s; }
.ccec-word-reveal .w:nth-child(5) i { animation-delay: 0.3s; }
.ccec-word-reveal .w:nth-child(6) i { animation-delay: 0.4s; }
.ccec-word-reveal .w:nth-child(7) i { animation-delay: 0.45s; }
.ccec-word-reveal .w:nth-child(8) i { animation-delay: 0.5s; }
@keyframes ccec-word-up { to { transform: translateY(0); } }

/* Fade-Up */
.ccec-fade-up {
    opacity: 0;
    transform: translateY(16px);
    animation: ccec-fade-up 0.7s var(--ccec-ease-expo, cubic-bezier(0.16, 1, 0.3, 1)) forwards;
}
.ccec-fade-up--d1 { animation-delay: 0.3s; }
.ccec-fade-up--d2 { animation-delay: 0.5s; }
.ccec-fade-up--d3 { animation-delay: 0.7s; }
.ccec-fade-up--d4 { animation-delay: 0.9s; }
@keyframes ccec-fade-up { to { opacity: 1; transform: translateY(0); } }

/* Gradient Text */
.ccec-gradient-text {
    background: linear-gradient(135deg, var(--ccec-primary), var(--ccec-secondary-light));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Scroll Indicator */
.ccec-scroll-hint {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    margin-top: 2rem;
}
.ccec-scroll-hint span {
    font-size: 0.6rem;
    color: rgba(255, 255, 255, 0.3);
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.ccec-scroll-hint__mouse {
    width: 20px;
    height: 30px;
    border: 1.5px solid rgba(255, 255, 255, 0.25);
    border-radius: 10px;
    position: relative;
}
.ccec-scroll-hint__mouse::after {
    content: '';
    width: 3px;
    height: 7px;
    background: var(--ccec-primary);
    border-radius: 2px;
    position: absolute;
    top: 5px;
    left: 50%;
    transform: translateX(-50%);
    animation: ccec-scroll-dot 1.8s ease-in-out infinite;
}
@keyframes ccec-scroll-dot {
    0%, 100% { transform: translateX(-50%) translateY(0); opacity: 1; }
    50% { transform: translateX(-50%) translateY(10px); opacity: 0.3; }
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
    .ccec-word-reveal .w i { animation: none; transform: none; }
    .ccec-fade-up { animation: none; opacity: 1; transform: none; }
    .ccec-scroll-hint__mouse::after { animation: none; }
}
