/* REVE Store — Minimal custom styles (Tailwind handles the rest) */

.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

.kerning-loose { letter-spacing: 0.25em; }
.kerning-ultra { letter-spacing: 0.4em; }

/* Page loader */
#pageLoader { transition: opacity 0.5s ease; }

/* Scroll animations */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.animate-on-scroll.animate-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Toast animation */
@keyframes toastSlide {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
.animate-toast { animation: toastSlide 0.3s ease; }

/* Skeleton pulse animation */
@keyframes skeleton-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}
.animate-pulse {
    animation: skeleton-pulse 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Selection */
::selection {
    background: #fdeced;
    color: #6d4849;
}

/* Smooth scroll */
html { scroll-behavior: smooth; }

/* Body antialiasing */
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* Lazy images — fade in when loaded */
img[loading="lazy"] {
    opacity: 0;
    transition: opacity 0.3s ease;
}
img[loading="lazy"].loaded,
img[loading="lazy"][complete] {
    opacity: 1;
}
