.fade-up {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.fade-up.visible {
    opacity: 1;
    transform: translateY(0);
}

.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }

.pulse-btn:hover {
    animation: pulse 1.5s infinite;
}

@keyframes pulse {
    0% { box-shadow: 0 0 0 0 rgba(242, 101, 34, 0.7); }
    70% { box-shadow: 0 0 0 15px rgba(242, 101, 34, 0); }
    100% { box-shadow: 0 0 0 0 rgba(242, 101, 34, 0); }
}

.bg-arcoiris {
    background: linear-gradient(to right, #00843D 20%, #FCD116 20% 40%, #D80027 40% 60%, #FFFFFF 60% 80%, #0038A8 80%);
    height: 6px;
    width: 100%;
}