        :root {
            --paper: #F5F2EB;
            --ink: #121212;
            --stone: #7A7A7A;
            --sepia: #D4C9B5;
            --accent: #3A4D5C;
            --grid-line: rgba(18, 18, 18, 0.04);
        }

        body {
            background-color: var(--paper);
            color: var(--ink);
            font-family: 'Montserrat', sans-serif;
            overflow-x: hidden;
            line-height: 1.8;
            scroll-behavior: smooth;
        }

        .serif-heading { font-family: 'Playfair Display', serif; font-weight: 400; }
        .serif-body { font-family: 'Cormorant Garamond', serif; }

        /* Grain & Archival Texture */
        .grain::after {
            content: ""; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: url('https://grainy-gradients.vercel.app/noise.svg');
            opacity: 0.06; pointer-events: none; z-index: 10000;
        }

        .archival-grid {
            background-size: 60px 60px;
            background-image: linear-gradient(to right, var(--grid-line) 1px, transparent 1px),
                              linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);
        }

        /* Narrative Animations */
        .reveal { opacity: 0; transform: translateY(30px); transition: all 1.4s cubic-bezier(0.19, 1, 0.22, 1); }
        .reveal.active { opacity: 1; transform: translateY(0); }

        /* Custom Scrollbar */
        ::-webkit-scrollbar { width: 4px; }
        ::-webkit-scrollbar-track { background: var(--paper); }
        ::-webkit-scrollbar-thumb { background: var(--ink); }

        /* Search Overlay */
        #search-overlay {
            position: fixed; inset: 0; background: var(--paper); z-index: 9000;
            display: none; flex-direction: column; align-items: center; justify-content: center;
            padding: 2rem;
        }

        /* Cart/Collector UI */
        #cart-sidebar {
            position: fixed; right: 0; top: 0; height: 100%; width: 350px;
            background: white; z-index: 9500; transform: translateX(100%);
            transition: transform 0.6s cubic-bezier(0.19, 1, 0.22, 1);
            box-shadow: -20px 0 50px rgba(0,0,0,0.05);
            display: flex; flex-direction: column;
        }
        #cart-sidebar.open { transform: translateX(0); }

        /* Buttons & Interactions */
        .btn-museum {
            position: relative; padding: 12px 30px; border: 1px solid var(--ink);
            font-size: 11px; letter-spacing: 3px; text-transform: uppercase;
            overflow: hidden; transition: all 0.5s ease;
        }
        .btn-museum:hover { color: var(--paper); background: var(--ink); }

        .tag { font-size: 10px; text-transform: uppercase; letter-spacing: 2px; color: var(--stone); border: 1px solid rgba(0,0,0,0.1); padding: 4px 10px; border-radius: 20px; }

        #entry-curtain {
            position: fixed; inset: 0; background: var(--paper); z-index: 11000;
            display: flex; flex-direction: column; align-items: center; justify-content: center;
        }

        .map-container { position: relative; height: 600px; width: 100%; }
        .map-dot { position: absolute; width: 8px; height: 8px; background: var(--ink); border-radius: 50%; cursor: pointer; transition: transform 0.3s; }
        .map-dot:hover { transform: scale(2.5); background: var(--accent); }

        /* Modal Transitions */
        .modal-fade { display: none; opacity: 0; transition: opacity 0.5s ease; }
        .modal-fade.active { display: block; opacity: 1; }
    