.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.float-card { animation: gentleFloat 5s ease-in-out infinite; }
@keyframes gentleFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

.btn:hover { transform: translateY(-2px) scale(1.025); }
.btn:active { transform: translateY(0) scale(.97); }
.filter-btn:hover, .category-card__button:hover { transform: translateY(-2px) scale(1.015); }

/* Convenzioni: hover più lineare nel carousel, senza salto verso l'alto. */
.filter-carousel .filter-btn:hover,
.filter-carousel .filter-btn:focus-visible { transform: scale(1.025); }
.filter-carousel .filter-carousel__nav:hover:not(:disabled) { transform: scale(1.045); }
