*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: 'DM Sans', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; color: #334155; background-color: #ffffff; }
h1, h2, h3 { font-family: 'Playfair Display', serif; }

#site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,0.92); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(226,232,240,0.6); }

.mobile-link { transition: background 0.15s ease, color 0.15s ease; }

.fade-up { opacity: 0; transform: translateY(24px); transition: opacity 0.7s ease, transform 0.7s ease; }
.fade-up.is-visible { opacity: 1; transform: translateY(0); }

.fade-up-delay-1 { transition-delay: 0.1s; }
.fade-up-delay-2 { transition-delay: 0.2s; }
.fade-up-delay-3 { transition-delay: 0.3s; }

::selection { background: #ccfbf1; color: #134e4a; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .fade-up { opacity: 1; transform: none; transition: none; }
    .animate-bounce { animation: none; }
}
