/* Global Styles for Sleeping Beauty Winery */ * { box-sizing: border-box; margin: 0; padding: 0; } body { margin: 0; font-family: Georgia, serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* Page load fade-in animation */ #app { animation: pageLoadFadeIn 0.6s ease-out; } @keyframes pageLoadFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } /* Smooth transitions for interactive elements */ a, button, .MuiButton-root, .MuiCard-root, .MuiIconButton-root { transition: all 0.3s ease-in-out !important; } /* Enhanced button hover effects */ .MuiButton-contained:hover { transform: translateY(-2px); box-shadow: 0 8px 16px rgba(114, 47, 55, 0.3); } .MuiButton-outlined:hover { transform: translateY(-2px); } /* Enhanced card hover effects (already in components, but ensuring consistency) */ .MuiCard-root { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; } /* Image loading fade-in */ img { opacity: 0; animation: imageFadeIn 0.4s ease-out forwards; } @keyframes imageFadeIn { to { opacity: 1; } } /* Scroll reveal animation for sections */ .section-reveal { opacity: 0; transform: translateY(30px); animation: sectionReveal 0.8s ease-out forwards; } @keyframes sectionReveal { to { opacity: 1; transform: translateY(0); } } /* Staggered animation delays for grid items */ .stagger-1 { animation-delay: 0.1s; } .stagger-2 { animation-delay: 0.2s; } .stagger-3 { animation-delay: 0.3s; } .stagger-4 { animation-delay: 0.4s; } .stagger-5 { animation-delay: 0.5s; } .stagger-6 { animation-delay: 0.6s; } /* Respect user motion preferences */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } img { opacity: 1; } #app { animation: none; } } /* Smooth scroll behavior */ html { scroll-behavior: smooth; } /* Focus styles for accessibility */ *:focus-visible { outline: 2px solid #D4AF37; outline-offset: 2px; } /* Loading state for images */ img[loading="lazy"] { background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); background-size: 200% 100%; animation: imageFadeIn 0.4s ease-out forwards, shimmer 1.5s ease-in-out infinite; } @keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } /* Ensure no horizontal scroll on any page */ body, html { overflow-x: hidden; max-width: 100%; } #app { overflow-x: hidden; max-width: 100%; }