.tc-fade-in {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.tc-fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

.tc-fade-in-delay-1 { transition-delay: 0.1s; }
.tc-fade-in-delay-2 { transition-delay: 0.2s; }
.tc-fade-in-delay-3 { transition-delay: 0.3s; }
.tc-fade-in-delay-4 { transition-delay: 0.4s; }

@keyframes gradient-shift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.tc-animate-gradient {
    background-size: 200% 200%;
    animation: gradient-shift 8s ease infinite;
}

@keyframes pulse-glow {
    0%, 100% { opacity: 0.4; }
    50% { opacity: 0.8; }
}

.tc-hero::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--tc-gradient-accent);
    opacity: 0.3;
}
