        :root {
            --blush: #E7CCCC;
            --navy: #28396C;
            --charcoal: #1A1A1A;
            --white: #FFFFFF;
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            cursor: crosshair; /* Artistic gallery feel */
        }

        body {
            background-color: var(--blush);
            color: var(--charcoal);
            font-family: 'Public Sans', sans-serif;
            overflow-x: hidden;
            scroll-behavior: smooth;
        }

        h1, h2, h3, h4, .serif {
            font-family: 'Source Serif 4', serif;
        }

        .national-park {
            font-family: 'Public Sans', sans-serif;
            letter-spacing: 0.2em;
            text-transform: uppercase;
            font-size: 0.65rem;
        }

        /* --- NAVIGATION SYSTEM --- */
        #fixed-logo {
            position: fixed;
            top: 3rem;
            right: 3rem;
            z-index: 1000;
            transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s ease;
        }

        .logo-text {
            font-size: 1.8rem;
            font-weight: 300;
            letter-spacing: -0.01em;
            color: var(--charcoal);
        }
#persistent-nav {
    position: fixed;
    bottom: 2rem;
    left: 3rem;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: -8px;
}

.nav-link {
    text-decoration: none;
    color: black;
    font-size: 1.4rem;      /* bigger font */
    font-weight: 400;       /* FIXED: removed 'px' */
    text-transform: uppercase;
    font-family: 'Source Serif 4', serif;

    writing-mode: vertical-rl;
    transform: rotate(270deg);

    margin: 0;
    padding: 0;
    line-height: 1;         /* keeps text tight */
    display: block;
}
        .nav-link:hover, .nav-link.active {
            color: var(--navy);
            opacity: 1;
        }

        /* --- HERO: ART INSTALLATION --- */
        .hero-container {
            height: 100vh;
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
        }

        .installation-cluster {
            position: relative;
            width: 450px;
            height: 550px;
        }

        .art-piece {
            position: absolute;
            background-size: cover;
            background-position: center;
            box-shadow: 0 20px 60px rgba(0,0,0,0.08);
            transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1), filter 0.6s ease;
            cursor: pointer;
            overflow: hidden;
        }

        .art-piece:hover {
            z-index: 50;
            transform: scale(1.03) !important;
        }

        /* Animation Directions */
        #piece-1 { width: 280px; height: 380px; top: 0; left: 0; transform: translateY(-120vh); }
        #piece-2 { width: 300px; height: 350px; bottom: 0; right: 0; transform: translateY(120vh); }
        #piece-3 { width: 250px; height: 300px; top: 20%; right: -20%; transform: translateX(120vw); }
        #piece-4 { width: 320px; height: 280px; bottom: 15%; left: -25%; transform: translateX(-120vw); }

        .loaded #piece-1 { transform: translateY(0) rotate(-2deg); }
        .loaded #piece-2 { transform: translateY(0) rotate(3deg); }
        .loaded #piece-3 { transform: translateX(0) rotate(-5deg); }
        .loaded #piece-4 { transform: translateX(0) rotate(4deg); }

        /* --- MODAL SYSTEM --- */
        #gallery-modal {
            position: fixed;
            inset: 0;
            z-index: 2000;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 2rem;
        }

        .modal-overlay {
            position: absolute;
            inset: 0;
            background: rgba(231, 204, 204, 0.9);
            backdrop-filter: blur(20px);
        }

        .modal-content {
            position: relative;
            background: white;
            width: 100%;
            max-width: 1100px;
            max-height: 90vh;
            overflow-y: auto;
            padding: 4rem;
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 4rem;
        }

        /* --- SECTION STYLING --- */
        .section-white { background: white; padding: 12rem 8vw; }
        .reveal-element { opacity: 0; transform: translateY(30px); transition: 1s cubic-bezier(0.16, 1, 0.3, 1); }
        .reveal-element.visible { opacity: 1; transform: translateY(0); }

        /* --- CUSTOM HAMBURGER (Mobile) --- */
        #menu-toggle {
            display: none;
            position: fixed;
            top: 2rem;
            left: 2rem;
            z-index: 3000;
        }

        @media (max-width: 1024px) {
            #persistent-nav { display: none; }
            #fixed-logo { right: 1.5rem; top: 1.5rem; }
            .logo-text { font-size: 1.3rem; }
            #menu-toggle { display: block; }
            .modal-content { grid-template-columns: 1fr; padding: 2rem; }
            .installation-cluster { width: 300px; height: 400px; }
            #piece-1, #piece-2, #piece-3, #piece-4 { width: 180px; height: 220px; }
            .section-white { padding: 6rem 5vw; }
        }
