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

.fade-in { animation: fadeIn .8s ease-out both; }
.delay-1 { animation-delay: .15s; }
.delay-2 { animation-delay: .3s; }
.delay-3 { animation-delay: .45s; }

.gradient-text {
    background: linear-gradient(90deg, #4f46e5, #2563eb);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.card-hover:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 10px 10px -5px rgb(0 0 0 / .04);
}

.transition-all { transition: all .3s ease; }
.product-image { transition: transform .5s ease; }
article:hover .product-image { transform: scale(1.025); }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .fade-in { animation: none; }
    .transition-all, .product-image { transition: none; }
}
