.custom-scrollbar {
    scrollbar-width: thin;
    scrollbar-color: #94a3b8 transparent;
}

.custom-scrollbar::-webkit-scrollbar {
    width: 8px;
    background: transparent;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
    background: #94a3b8;
    border-radius: 4px;
}

.custom-scrollbar::-webkit-scrollbar-thumb:hover {
    background: #64748b;
}

.scrollbar-hide {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.scrollbar-hide::-webkit-scrollbar {
    display: none;
}

.no-scrollbar-to-show {
    scrollbar-width: none;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes scaleIn {
    from {
        transform: scale(0.95);
        opacity: 0;
    }
    to {
        transform: scale(1);
        opacity: 1;
    }
}

@keyframes fadeOut {
    from { opacity: 1; }
    to { opacity: 0; }
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeRight {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.animate-fade-in {
    animation: fadeIn 0.2s ease-out;
}

.animate-scale-in {
    animation: scaleIn 0.2s ease-out;
}

.animate-fade-out {
    animation: fadeOut 0.2s ease-out;
}

.animate-fade-up {
    animation: fadeUp 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.animate-fade-right {
    animation: fadeRight 0.75s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.delay-100 { animation-delay: 0.1s; }
.delay-200 { animation-delay: 0.2s; }
.delay-300 { animation-delay: 0.3s; }
.delay-400 { animation-delay: 0.4s; }

@keyframes checkPop {
    0% {
        transform: scale(0);
        opacity: 0;
    }
    60% {
        transform: scale(1.2);
        opacity: 1;
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

.contact-success-check {
    animation: checkPop 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.15s both;
}

.contact-success-icon {
    transform-origin: left center;
}

@media (prefers-reduced-motion: reduce) {
    .animate-fade-up,
    .animate-fade-right,
    .contact-success-check {
        animation: none;
        opacity: 1;
        transform: none;
    }
}
