    /* Base & Reset */
    *, *::before, *::after { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
        font-family: 'Inter', system-ui, -apple-system, sans-serif;
        color: #0f172a;
        background: #ffffff;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }

    /* Scrollbar */
    ::-webkit-scrollbar { width: 8px; }
    ::-webkit-scrollbar-track { background: #fdf4f8; }
    ::-webkit-scrollbar-thumb { background: #be185d; border-radius: 4px; }
    ::-webkit-scrollbar-thumb:hover { background: #9d174d; }

    /* Selection */
    ::selection { background: #fbcfe8; color: #500724; }

    /* Focus visible */
    :focus-visible { outline: 2px solid #f59e0b; outline-offset: 2px; border-radius: 4px; }

    /* Smooth image rendering */
    img { image-rendering: -webkit-optimize-contrast; image-rendering: crisp-edges; }

    /* Animation for mobile menu */
    @keyframes slideDown {
        from { opacity: 0; transform: translateY(-8px); }
        to { opacity: 1; transform: translateY(0); }
    }
    @keyframes slideUp {
        from { opacity: 0; transform: translateY(8px); }
        to { opacity: 1; transform: translateY(0); }
    }

    /* Mobile menu open state */
    #mobileMenu.open {
        animation: slideDown 0.2s ease-out;
    }

    /* Nav scroll state */
    #nav.scrolled {
        box-shadow: 0 4px 20px rgba(157, 23, 77, 0.08);
    }

    /* Hero scroll indicator bounce */
    @keyframes scrollBounce {
        0%, 100% { transform: translateY(0); }
        50% { transform: translateY(4px); }
    }

    /* Gallery hover */
    .rounded-2xl.overflow-hidden img {
        transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }

    /* Reduced motion */
    @media (prefers-reduced-motion: reduce) {
        html { scroll-behavior: auto; }
        *, *::before, *::after {
            animation-duration: 0.01ms !important;
            animation-iteration-count: 1 !important;
            transition-duration: 0.01ms !important;
        }
        .rounded-2xl.overflow-hidden img {
            transition: none;
        }
    }

    /* Print styles */
    @media print {
        header, footer, #gallery, .rounded-2xl.overflow-hidden img { display: none; }
        body { color: #000; background: #fff; }
        a { color: #000; text-decoration: underline; }
    }

    /* Custom utility classes */
    .font-display { font-family: 'Playfair Display', Georgia, serif; }

    /* Subtle card lift on hover */
    .group:hover { transform: translateY(-2px); }
    .group { transition: transform 0.3s ease; }
</style>
