/* GLOBAL TYPOGRAPHY */
body { font-family: 'Lato', sans-serif; background-color: #f8fafc; color: #1e293b; overflow-x: hidden; }
h1, h2, h3, h4, h5, h6 { font-family: 'Montserrat', sans-serif; letter-spacing: -0.02em; }
.serif-text { font-family: 'EB Garamond', serif; }

/* GOLD STANDARD UI */
::selection { background: #d4af37; color: white; }
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #fff; }
::-webkit-scrollbar-thumb { background: #94a3b8; border-radius: 3px; }

/* NAVIGATION */
.nav-link { position: relative; font-weight: 600; transition: color 0.3s; }
.nav-link::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 2px; background-color: #d4af37; transition: width 0.3s ease; }
.nav-link:hover::after { width: 100%; }

/* FILM GRAIN OVERLAY */
.noise-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9998; opacity: 0.03;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}

/* PRELOADER */
#preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #0f172a; z-index: 10000; display: flex; justify-content: center; align-items: center; transition: opacity 0.8s ease-out, visibility 0.8s; }
#preloader.hidden { opacity: 0; visibility: hidden; }
.loader-c { font-family: 'EB Garamond', serif; font-size: 4rem; color: #d4af37; animation: pulse 2s infinite; }

/* ANIMATIONS */
@keyframes pulse { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } }
@keyframes fadeUpEntry { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.fade-up { opacity: 0; transform: translateY(20px); transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1); }
.fade-up.visible { opacity: 1; transform: translateY(0); }

/* HERO DYNAMICS */
.hero-wrapper { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; z-index: -1; }
.hero-bg { width: 100%; height: 100%; background-size: cover; background-position: center; animation: slowZoom 40s infinite alternate; }
@keyframes slowZoom { from { transform: scale(1); } to { transform: scale(1.15); } }

/* UTILS */
.goog-te-banner-frame { display: none !important; } 
body { top: 0px !important; }