.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}
.reveal.active {
    opacity: 1;
    transform: translateY(0);
}
input, textarea {
    background-color: rgba(255, 255, 255, 0.5) !important;
    border-color: rgba(54, 31, 26, 0.1) !important;
}
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

#mobile-menu {
    background-color: #361f1a !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    isolation: isolate;
}

#slide-track > div {
    width: calc(100vw - 80px) !important;
    min-width: calc(100vw - 80px) !important;
    flex-shrink: 0 !important;
}
@media (min-width: 640px) {
    #slide-track > div {
        width: calc(50% - 20px) !important;
        min-width: calc(50% - 20px) !important;
    }
}
@media (min-width: 1024px) {
    #slide-track > div {
        width: calc(25% - 20px) !important;
        min-width: calc(25% - 20px) !important;
    }
}

#gallery-mobile-slider {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
}
#gallery-mobile-slider .gallery-slide {
    width: 85vw !important;
    min-width: 85vw !important;
    height: 85vw !important;
    flex-shrink: 0 !important;
    border-radius: 24px !important;
    overflow: hidden !important;
}
#gallery-mobile-slider .gallery-slide img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}
@keyframes bounce-x {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(5px); }
}
.animate-bounce-x { animation: bounce-x 1s infinite; }

#gallery-mobile-slider {
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}
#gallery-mobile-slider .gallery-slide {
    scroll-snap-align: start;
}

#swipe-hint {
    pointer-events: none;
    transition: opacity 0.5s ease;
}
#swipe-hint.hidden-hint {
    opacity: 0;
}
@keyframes swipe-anim {
    0%   { transform: translateX(0); opacity: 1; }
    50%  { transform: translateX(-18px); opacity: 0.6; }
    100% { transform: translateX(0); opacity: 1; }
}
.animate-swipe { animation: swipe-anim 1.6s ease-in-out infinite; }
