        :root {
            --pastel-yellow: #FFEF91;
            --sage-green: #A0D585;
            --bg-white: #ffffff;
            --text-black: #0a0a0a;
        }

        * { margin: 0; padding: 0; box-sizing: border-box; cursor: none; }
        
        body {
            font-family: 'Plus Jakarta Sans', sans-serif;
            background-color: var(--bg-white);
            color: var(--text-black);
            overflow-x: hidden;
            scroll-behavior: smooth;
            line-height: 1.6;
        }

        h1, h2, h3, h4, .serif { font-family: 'Libre Baskerville', serif; }

        /* --- UI Elements --- */
        #custom-cursor { width: 10px; height: 10px; background: black; border-radius: 50%; position: fixed; pointer-events: none; z-index: 10000; transition: transform 0.1s; }
        #cursor-glow { width: 50px; height: 50px; border: 1px solid rgba(0,0,0,0.1); border-radius: 50%; position: fixed; pointer-events: none; z-index: 9999; transition: transform 0.2s ease-out; }
        
        .blob { position: absolute; border-radius: 50%; filter: blur(80px); z-index: -1; opacity: 0.35; animation: blobFloat 20s infinite alternate; }
        @keyframes blobFloat {
            0% { transform: translate(0, 0) scale(1); }
            100% { transform: translate(100px, 50px) scale(1.2); }
        }

        /* --- Navigation --- */
        .nav-underline { position: relative; }
        .nav-underline::after { content: ''; position: absolute; width: 0; height: 1px; bottom: -4px; left: 0; background: black; transition: width 0.4s cubic-bezier(0.7, 0, 0.3, 1); }
        .nav-underline:hover::after { width: 100%; }
        
        .glass-header { background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(15px); border-bottom: 1px solid rgba(0,0,0,0.05); }

        /* --- Layout Logic --- */
        .page-view { display: none; opacity: 0; transform: translateY(20px); transition: opacity 0.8s, transform 0.8s; }
        .page-view.active { display: block; opacity: 1; transform: translateY(0); }

        .reveal { opacity: 0; transform: translateY(40px); transition: all 1s cubic-bezier(0.2, 1, 0.3, 1); }
        .reveal.active { opacity: 1; transform: translateY(0); }

        .horizontal-scroller { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; }
        .horizontal-scroller::-webkit-scrollbar { display: none; }

        .vertical-label { writing-mode: vertical-rl; text-orientation: mixed; transform: rotate(180deg); }

        /* --- Search Overlay --- */
        #search-overlay { position: fixed; inset: 0; z-index: 2000; background: white; display: none; flex-direction: column; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.5s ease; }
        #search-overlay.active { display: flex; opacity: 1; }

        .brand-tile { transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
        .brand-tile:hover { transform: scale(1.05) translateY(-10px); z-index: 10; }

        .image-canvas-item { transition: all 0.6s ease; filter: grayscale(100%); }
        .image-canvas-item:hover { filter: grayscale(0%); transform: scale(1.1) rotate(0deg) !important; z-index: 50; }

        .stagger-img { transition: transform 0.1s ease-out; }
