 :root {
            --accent: #d4af37; /* Rich Gold */
            --white: #ffffff;
            --bg: #010103;
        }

        * { margin: 0; padding: 0; box-sizing: border-box; }

        body {
            background-color: var(--bg);
            color: var(--white);
            font-family: 'Lato', sans-serif;
            overflow: hidden; 
            height: 100svh;
            width: 100vw;
            touch-action: none; /* Disables browser-default scrolling */
        }

        #canvas-container {
            position: fixed;
            top: 0; left: 0;
            width: 100%; height: 100%;
            z-index: -1;
        }

        .scroll-wrapper {
            position: absolute;
            top: 0; left: 0;
            width: 100%;
            will-change: transform;
        }

        section {
            height: 100svh;
            width: 100%;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            text-align: center;
            padding: 2rem;
            opacity: 0;
            /* Physics-based transition: Scale and Blur */
            transform: scale(0.7) translateY(50px);
            filter: blur(15px);
            transition: opacity 0.8s ease, transform 0.9s cubic-bezier(0.2, 0.8, 0.2, 1), filter 0.8s ease;
        }

        /* The Center Focus Effect */
        section.active {
            opacity: 1;
            transform: scale(1) translateY(0px);
            filter: blur(0px);
        }

        /* --- TYPOGRAPHY: BOLD & LARGE --- */
        .eyebrow {
            font-family: 'Lato', sans-serif;
            text-transform: uppercase;
            letter-spacing: 0.6em;
            font-size: 1rem;
            font-weight: 700;
            margin-bottom: 2rem;
            color: rgba(255,255,255,0.7);
        }

        h1 {
            font-family: 'Cinzel Decorative', serif;
            font-size: clamp(3.5rem, 12vw, 8rem);
            font-weight: 900;
            line-height: 1;
            color: var(--accent);
            text-shadow: 0 0 40px rgba(212, 175, 55, 0.4);
        }

        .names {
            font-family: 'Cinzel Decorative', serif;
            font-size: clamp(4rem, 14vw, 10rem);
            font-weight: 900;
            line-height: 0.85;
            color: var(--white);
        }

        .ampersand {
            font-family: 'Cinzel', serif;
            font-size: 3.5rem;
            font-weight: 900;
            display: block;
            margin: 1.5rem 0;
            color: var(--accent);
        }

        .date-container {
            margin-top: 1rem;
        }

        .date-day {
            font-family: 'Cinzel', serif;
            font-size: clamp(1.8rem, 5vw, 3rem);
            font-weight: 700;
            letter-spacing: 0.3em;
            margin-bottom: 0.5rem;
        }

        .date-main {
            font-family: 'Cinzel Decorative', serif;
            font-size: clamp(5rem, 15vw, 12rem);
            font-weight: 900;
            color: var(--accent);
            line-height: 1;
        }

        .venue-name {
            font-family: 'Cinzel Decorative', serif;
            font-size: clamp(2.5rem, 7vw, 5rem);
            font-weight: 700;
            margin-bottom: 1rem;
            color: var(--white);
        }

        .venue-loc {
            font-family: 'Lato', sans-serif;
            font-weight: 700;
            font-size: 1.4rem;
            color: var(--accent);
            letter-spacing: 0.3em;
        }

        /* UI ELEMENTS */
        .hint {
            position: fixed;
            bottom: 40px; left: 50%;
            transform: translateX(-50%);
            letter-spacing: 0.5em;
            font-size: 0.75rem;
            font-weight: 900;
            text-align: center;
            opacity: 0.5;
            z-index: 10;
        }