        /* Page entry animation - inline to prevent FOUC */
        body.page-entering {
            animation: page-enter 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
        }

        @keyframes page-enter {
            from {
                opacity: 0;
                transform: translateY(20px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        /* Specific styles for the landing page */
        body {
            overflow: hidden;
            background-color: #D6D3C1;
            /* Text color from style.css becomes background */
            color: #000000;
            /* Text color becomes black */
            height: 100vh;
            width: 100vw;
            display: flex;
            flex-direction: column;
            position: relative;
        }

        .hero-section {
            position: relative;
            flex: 1;
            width: 100%;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            padding: 2rem;
        }

        /* Navigation */
        .hero-nav {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            padding: clamp(1rem, 2.5vw, 2.5rem);
            /* Removed extra specific padding to rely on grid/flex evenly */
            display: grid;
            grid-template-columns: 1fr auto 1fr;
            /* Left, Center, Right */
            align-items: center;
            z-index: 100;
            mix-blend-mode: difference;
            pointer-events: none;
            /* Let clicks pass through if empty space */
        }

        .hero-nav a {
            pointer-events: auto;
            /* Re-enable clicks for links */
        }

        .nav-brand {
            font-family: var(--font-primary);
            font-size: 0.7rem;
            /* Unified size */
            font-weight: 700;
            color: #d6d3c2;
            /* With mix-blend-mode: difference, white text turns black-ish on light bg */
            color: #fff;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            text-decoration: none;
            justify-self: start;
        }

        /* Override for Ritankar text specifically to be black if blend mode fails or is disabled */
        /* But user wants "negative effect" on mobile, so we need #fff + mix-blend-mode: difference */
        /* Desktop already has mix-blend-mode difference on .hero-nav */


        .nav-center {
            font-family: var(--font-primary);
            font-size: 0.7rem;
            /* Unified size */
            font-weight: 700;
            color: #fff;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            text-decoration: none;
            text-align: center;
        }

        .nav-link-hero {
            font-family: var(--font-primary);
            font-size: 0.7rem;
            /* Unified size */
            text-transform: uppercase;
            color: #fff;
            text-decoration: none;
            letter-spacing: 0.1em;
            display: flex;
            align-items: center;
            font-weight: 700;
            position: relative;
            justify-self: end;
            /* Push to right */
            margin-right: clamp(1rem, 2.5vw, 2.5rem);
            /* Add margin to keep away from edge */
        }

        .nav-link-hero .arrow {
            position: absolute;
            right: -20px;
            width: auto;
            opacity: 0;
            transform: translateX(-10px);
            transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
            display: inline-block;
            white-space: nowrap;
            pointer-events: none;
        }

        /* Arrow color update for black text */
        .nav-link-hero .arrow svg {
            fill: #fff;
        }

        .nav-link-hero:hover .arrow {
            opacity: 1;
            transform: translateX(0);
        }

        /* Custom Cursor Override for light background */
        #custom-cursor {
            background-color: #d6d3c2 !important;
            /* White difference = inversion */
            mix-blend-mode: difference !important;
        }

        /* Footer / Bottom Elements */
        .landing-footer {
            width: 100%;
            padding: clamp(1rem, 2.5vw, 2.5rem);
            /* Match nav grid for alignment */
            display: grid;
            grid-template-columns: 1fr auto 1fr;
            /* Left, Center, Right */
            align-items: end;
            position: fixed;
            /* Fixed to stay on screen */
            bottom: 0;
            left: 0;
            z-index: 100;
            padding-bottom: 2rem;
            mix-blend-mode: difference;
            pointer-events: none;
        }

        .footer-left {
            font-family: var(--font-primary);
            font-size: 0.7rem;
            font-weight: 700;
            color: #fff;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            justify-self: start;
        }

        .footer-center {
            font-family: var(--font-primary);
            font-size: 0.7rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            text-align: center;
            display: flex;
            justify-content: center;
            align-items: center;
            position: relative;
            min-height: 24px;
            width: 60px;
            /* Force width */
            pointer-events: auto !important;
            /* Ensure text color is explicit if mix-blend-mode fails or background matches */
            color: #000;
            mix-blend-mode: difference;
            color: #fff;
        }

        .scroll-text {
            opacity: 1;
            transform: translateY(0);
        }

        .scroll-text,
        .scroll-top-btn {
            position: absolute;
            transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
            cursor: none !important;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .scroll-top-btn {
            opacity: 0;
            pointer-events: none;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            transform: translateY(10px);
        }

        .scroll-top-btn svg {
            /* Hardcode fill to ensure visibility against mix-blend-mode difference */
            fill: #fff;
            stroke: #fff;
            width: 20px;
            height: 20px;
        }



        .footer-center.at-bottom .scroll-text {
            opacity: 0;
            transform: translateY(-10px);
            pointer-events: none;
        }

        .footer-center.at-bottom .scroll-top-btn {
            opacity: 1;
            transform: translateY(0);
            pointer-events: auto;
        }

        .scroll-top-btn:hover {
            transform: translateY(-5px) !important;
        }

        /* Fix Cursor Glitch */
        a,
        button,
        .scroll-top-btn,
        .nav-link-hero {
            cursor: none !important;
            /* Force custom cursor everywhere */
        }

        /* Wholesome Popup */
        #wholesome-popup {
            position: fixed;
            top: 0;
            left: 0;
            width: 80px;
            /* Reduced from 250px */
            background: #fff;
            padding: 4px;
            /* Reduced from 1rem */
            border-radius: 4px;
            pointer-events: none;
            opacity: 0;
            /* Reset transform here, managed by JS position */
            transform-origin: top left;
            transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1);
            z-index: 200;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
            /* Minimal shadow */
            display: flex;
            flex-direction: column;
        }

        #wholesome-popup.active {
            opacity: 1;
        }

        .popup-img {
            width: 100%;
            height: 80px;
            /* Square */
            object-fit: cover;
            background-color: #eee;
        }

        .popup-msg {
            display: none;
            /* Hide message */
            font-size: 0.8rem;
            color: #000;
            line-height: 1.4;
        }

        /* Thank You Cursor Extension */
        #thank-you-cursor {
            position: fixed;
            top: 0;
            left: 0;
            z-index: 300;
            pointer-events: none;
            display: flex;
            flex-direction: column;
            /* Stack image and text vertically */
            align-items: center;
            gap: 5px;
            /* transform removed to allow custom offset via JS */
            opacity: 0;
            transition: opacity 0.3s ease;
        }

        #thank-you-cursor.visible {
            opacity: 1;
        }

        .cursor-img {
            width: 80px;
            /* Slightly larger for square showcase */
            height: 80px;
            border-radius: 4px;
            /* Slight rounded corners for square */
            object-fit: cover;
            border: 1px solid #fff;
            /* Thinner border */
            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
        }

        .cursor-msg {
            background: #fff;
            color: #000;
            padding: 4px 10px;
            border-radius: 4px;
            /* Square off the pill slightly or keep it pill? User said text below. */
            font-family: var(--font-primary);
            font-size: 0.7rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
            white-space: nowrap;
        }

        .footer-right {
            font-family: var(--font-primary);
            font-size: 0.7rem;
            font-weight: 700;
            color: #fff;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            justify-self: end;
            margin-right: clamp(1rem, 2.5vw, 2.5rem);
            /* Align with About button */
        }

        /* Default: Hide Mobile Elements on Desktop */
        #mobile-canvas,
        .mobile-fixed-footer,
        .mobile-scroll-indicator {
            display: none;
        }

        /* Responsive Adjustments */
        @media (max-width: 768px) {

            /* MOBILE VIEW: Hide all desktop content */
            .scroll-spacer,
            .scroll-container,
            .gallery-item,
            .end-canvas,
            .nav-center {
                /* Hide redundant header text */
                display: none !important;
            }

            /* Adjust Nav for Mobile (2 columns instead of 3) */
            .hero-nav {
                grid-template-columns: 1fr auto;
                pointer-events: none;
            }

            .hero-nav a {
                pointer-events: auto;
            }

            /* Show mobile canvas */
            #mobile-canvas {
                display: block;
                width: 100%;
                min-height: 100vh;
                position: relative;
                background-color: #D6D3C1;
                margin-top: 0;
                padding-top: 0;
                padding-bottom: 80px;
                /* Space for footer */
                z-index: 1;
                /* Behind nav/footer */
            }

            .mobile-gallery-container {
                padding-top: 15vh;
                /* Initial push so images start below "SCROLL" */
                padding-bottom: 5vh;
            }

            .mobile-gallery-item {
                width: 100%;
                margin-bottom: 4rem;
                display: flex;
                flex-direction: column;
                align-items: center;
                padding: 0 1.5rem;
                opacity: 0;
                /* Revert to opacity 0, but handle in JS */
                transform: translateY(20px);
                transition: opacity 0.6s ease-out, transform 0.6s ease-out;
            }

            .mobile-gallery-item.visible {
                opacity: 1;
                transform: translateY(0);
            }

            /* Mobile Footer Hidden - We will reuse parts or create new */
            .landing-footer {
                display: none !important;
            }

            /* Hide Desktop Hover Features */
            #custom-cursor,
            #thank-you-cursor,
            #wholesome-popup {
                display: none !important;
            }

            /* Mobile Nav Styling - Transparent & Fixed with negative effect */
            .hero-nav {
                background: transparent;
                backdrop-filter: none;
                padding: 1.5rem;
                mix-blend-mode: difference;
                /* Force negative effect on mobile */
                /* grid-template-columns handled in media query start */
                gap: 1rem;
                position: fixed;
                top: 0;
                left: 0;
                width: 100%;
                z-index: 1000;
                box-shadow: none;
                pointer-events: none;
                /* Allow clickthrough on header area */
            }

            .hero-nav a {
                pointer-events: auto;
                /* Re-enable for links */
                display: initial;
                /* Restore visibility if hidden */
            }

            .nav-link-hero {
                color: #fff;
                /* White + difference = Blackish text effect */
                font-size: 0.7rem;
                margin-right: 0;
                mix-blend-mode: normal;
            }

            .nav-link-hero .arrow svg {
                fill: #fff;
                /* White + difference = Blackish icon */
            }

            /* Mobile Fixed Footer Text */
            .mobile-fixed-footer {
                position: fixed;
                bottom: 0;
                left: 0;
                width: 100%;
                padding: 1.5rem;
                text-align: center;
                z-index: 1000;
                pointer-events: none;
                display: flex;
                justify-content: center;
                mix-blend-mode: difference;
            }

            .mobile-footer-text {
                font-family: var(--font-primary);
                font-size: 0.7rem;
                font-weight: 700;
                color: #fff;
                text-transform: uppercase;
                letter-spacing: 0.1em;
            }

            /* Body reset for mobile */
            body {
                background-color: #D6D3C1;
                overflow-y: auto;
                overflow-x: hidden;
                /* Prevent horizontal drift */
                height: auto;
                min-height: 100vh;
                display: block;
                /* Remove flex layout constraints */
            }

            html {
                overflow-y: auto;
                height: auto;
            }

            body.no-scroll {
                overflow: hidden;
                height: 100vh;
            }

            /* Mobile Scroll Indicator */
            .mobile-scroll-indicator {
                position: fixed;
                bottom: 15vh;
                left: 50%;
                transform: translateX(-50%);
                display: flex;
                flex-direction: column;
                align-items: center;
                gap: 0.5rem;
                z-index: 900;
                transition: opacity 0.5s ease;
                pointer-events: none;
                mix-blend-mode: difference;
            }

            .mobile-scroll-indicator.hidden {
                opacity: 0;
            }

            .mobile-scroll-text {
                font-family: var(--font-primary);
                font-size: 0.65rem;
                font-weight: 700;
                color: #fff;
                text-transform: uppercase;
                letter-spacing: 0.1em;
            }

            .mobile-scroll-arrow svg {
                fill: #fff;
                width: 24px;
                height: 24px;
                animation: bounce 2s infinite;
            }

            @keyframes bounce {

                0%,
                20%,
                50%,
                80%,
                100% {
                    transform: translateY(0);
                }

                40% {
                    transform: translateY(-5px);
                }

                60% {
                    transform: translateY(-3px);
                }
            }

            /* Mobile Gallery Images */
            .mobile-gallery-item {
                width: 100%;
                margin-bottom: 4rem;
                display: flex;
                flex-direction: column;
                align-items: center;
                padding: 0 1.5rem;
            }

            .mobile-gallery-img {
                width: 100%;
                height: auto;
                object-fit: cover;
                box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
            }

            .mobile-gallery-caption {
                font-family: var(--font-primary);
                font-size: 0.6rem;
                text-transform: uppercase;
                letter-spacing: 0.1em;
                color: #000;
                margin-top: 0.5rem;
                align-self: flex-start;
            }

            /* Mobile End Section - Increased Space */
            .mobile-end-section {
                padding: 0 1.5rem;
                /* Remove top/bottom padding as we want to control height precisely */
                display: flex;
                flex-direction: column;
                gap: 4rem;
                min-height: 100vh;
                /* Full viewport height */
                justify-content: center;
                margin-top: 10vh;
                /* separation */
                opacity: 0;
                transform: translateY(50px);
                transition: opacity 1s ease, transform 1s ease;
            }

            .mobile-end-section.visible {
                opacity: 1;
                transform: translateY(0);
            }

            .mobile-thank-you-container {
                position: relative;
                width: 100%;
                margin-bottom: 2rem;
                /* Additional space before player */
            }

            .mobile-thank-you-text {
                font-family: var(--font-nippo);
                font-size: 15vw;
                font-weight: 900;
                line-height: 0.85;
                text-transform: uppercase;
                color: #222;
                text-align: left;
                /* Aligned left as requested */
                width: fit-content;
                margin: 0 auto;
                /* Centered block */
            }

            .mobile-thank-you-text span {
                display: block;
            }

            /* Square Image & Message - South East of Thank You */
            .mobile-signature-block {
                position: absolute;
                bottom: -20px;
                /* Brought closer to text (was -60px) */
                right: 0;
                /* Align to right */
                display: flex;
                flex-direction: column;
                align-items: flex-end;
                /* Align items to right */
                gap: 0;
                transform: translateX(5%);
                /* Reduced offset */
            }

            .mobile-sig-img {
                width: 45px;
                /* Smaller image as requested */
                height: 45px;
                object-fit: cover;
                border: 1px solid #fff;
                box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
                border-radius: 4px;
            }

            .mobile-sig-msg {
                display: none;
                /* Hide message as requested */
            }

            /* Mobile Music Player */
            .mobile-player-container {
                display: flex;
                flex-direction: column;
                align-items: center;
                /* Center aligned */
                gap: 1.5rem;
                width: 100%;
                margin-top: 4rem;
                /* More space from previous section */
            }

            .mobile-on-repeat {
                font-family: var(--font-primary);
                font-size: 0.6rem;
                letter-spacing: 0.1em;
                text-transform: uppercase;
                color: #000;
                margin-bottom: 1rem;
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 6px;
                opacity: 0.6;
            }

            .mobile-on-repeat::before {
                content: '';
                display: block;
                width: 6px;
                height: 6px;
                background-color: #000;
                border-radius: 50%;
                animation: blink 2s infinite;
            }

            @keyframes blink {

                0%,
                100% {
                    opacity: 1;
                }

                50% {
                    opacity: 0.4;
                }
            }

            .mobile-player-wrapper {
                position: relative;
                width: 250px;
                height: 250px;
                cursor: pointer;
                /* Clickable */
            }

            .mobile-player-inner {
                position: relative;
                width: 100%;
                height: 100%;
            }

            .mobile-album-art {
                width: 100%;
                height: 100%;
                object-fit: cover;
                position: relative;
                z-index: 10;
                box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
                border-radius: 4px;
                /* Slight radius */
            }

            /* Peeking Record Logic for Mobile */
            .mobile-vinyl-record {
                position: absolute;
                top: 5px;
                bottom: 5px;
                right: 5px;
                left: 5px;
                border-radius: 50%;
                background: #111;
                /* Concentric circles */
                background-image: repeating-radial-gradient(#111 0, #111 2px, #222 3px, #222 4px);
                z-index: 5;
                display: flex;
                align-items: center;
                justify-content: center;
                /* Peek out to the right */
                transform: translateX(25%) rotate(20deg);
                transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
                /* Bouncy spring */
            }

            .mobile-player-wrapper.playing .mobile-vinyl-record {
                animation: mobileSpin 3s linear infinite;
                /* When playing, maybe peek out a bit more? */
                transform: translateX(40%);
            }

            @keyframes mobileSpin {
                from {
                    transform: translateX(40%) rotate(0deg);
                }

                to {
                    transform: translateX(40%) rotate(360deg);
                }
            }

            .mobile-vinyl-label {
                width: 35%;
                height: 35%;
                background: #d6d3c2;
                border-radius: 50%;
            }

            .mobile-play-btn {
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                z-index: 20;
                background: transparent;
                border: none;
                /* Provide visual cue on the record part? */
            }

            /* Arrow to scroll top */
            .mobile-scroll-top {
                margin-top: 2rem;
                margin-left: auto;
                margin-right: auto;
                display: flex;
                align-items: center;
                justify-content: center;
                cursor: pointer;
                width: 44px;
                height: 44px;
                border-radius: 50%;
                transition: transform 0.3s ease;
            }

            .mobile-scroll-top:active {
                transform: scale(0.9);
            }

            .mobile-scroll-top svg {
                fill: #000;
                width: 24px;
                height: 24px;
            }
        }

        /* New Styles for Horizontal Scroll */
        body {
            /* Reset body to allow scroll */
            overflow-y: scroll;
            overflow-x: hidden;
            height: auto;
            min-height: 100vh;
        }

        .scroll-spacer {
            height: 300vh;
            /* Reduced from 400vh for snappier experience */
            pointer-events: none;
        }

        .hero-section {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100vh;
            overflow: hidden;
            display: flex;
            align-items: center;
            justify-content: flex-start;
            /* Start from left */
            padding: 0;
            perspective: 1000px;
        }

        .scroll-container {
            position: absolute;
            top: 0;
            left: 0;
            height: 100%;
            width: 100%;
            display: flex;
            align-items: center;
        }

        .scroll-track {
            display: flex;
            gap: 2vw;
            padding-left: 50vw;
            padding-right: 50vw;
            height: 100vh;
            align-items: center;
            will-change: transform;
            /* GPU acceleration for smooth scrolling */
            transform: translateZ(0);
        }

        .gallery-item {
            position: relative;
            flex-shrink: 0;
            opacity: 1;
            /* Simplified transform - just Y offset, no scale animation */
            transform: translateY(var(--y-offset, 0)) translateZ(0);
            /* Smoother, longer transitions with GPU acceleration */
            transition: filter 1.2s cubic-bezier(0.16, 1, 0.3, 1);
            filter: grayscale(60%) brightness(0.95);
            display: flex;
            flex-direction: column;
        }

        /* Smooth color transition when in view */
        .gallery-item.visible {
            filter: grayscale(0%) brightness(1);
        }

        .gallery-image {
            width: auto;
            height: 100%;
            flex-grow: 1;
            object-fit: contain;
            display: block;
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
            /* GPU acceleration */
            transform: translateZ(0);
            backface-visibility: hidden;
        }

        .gallery-caption {
            font-family: var(--font-primary);
            font-size: 0.6rem;
            /* Decreased size */
            text-transform: uppercase;
            letter-spacing: 0.1em;
            /* Increased spacing */
            color: #000;
            opacity: 0.8;
            max-width: 100%;
            /* Absolute positioning to handle "on top" or "below" without layout shift */
            position: absolute;
            left: 0;
        }

        /* Default caption below */
        .gallery-caption.bottom {
            top: 100%;
            margin-top: 0.8vh;
        }

        /* Caption above for low-hanging images */
        .gallery-caption.top {
            bottom: 100%;
            margin-bottom: 0.8vh;
        }

        /* End Canvas Section */
        .end-canvas {
            position: relative;
            width: 100%;
            height: 100vh;
            background-color: #D6D3C1;
            /* Clean slate */
            color: #000;
            display: flex;
            /* Flexbox */
            align-items: stretch;
            /* Full height grid */
            justify-content: center;
            z-index: 50;
            /* Above fixed hero as we scroll into it */
            overflow: hidden;
            padding: 0 5vw;
            /* Left/Right padding */
        }

        .canvas-grid {
            display: flex;
            width: 100%;
            height: 100%;
            align-items: center;
            justify-content: space-between;
            position: relative;
        }

        /* Left Side */
        .canvas-left {
            flex: 0 0 50%;
            /* Strictly 50% */
            width: 50%;
            display: flex;
            align-items: center;
            justify-content: flex-end;
            /* Align text close to the divider */
            padding-right: 4vw;
            /* Space from divider */
            opacity: 0;
            transform: translateX(-50px);
            transition: opacity 1s ease, transform 1s ease;
            height: 100%;
        }

        .thank-you-stack {
            font-family: var(--font-nippo);
            font-size: 10vw;
            /* Reduced from 13vw */
            font-weight: 900;
            line-height: 0.85;
            text-transform: uppercase;
            display: flex;
            flex-direction: column;
            color: #222;
            text-align: right;
        }

        .canvas-grid {
            width: 100%;
            height: 100%;
            display: flex;
            align-items: center;
            /* Center vertical */
            justify-content: center;
            margin: 0;
        }

        /* Subtle Divider Line */
        .canvas-divider {
            display: block;
            width: 1px;
            height: 0%;
            /* Starts at 0 */
            background-color: rgba(0, 0, 0, 0.15);
            /* Subtle opacity */
            transition: height 1.5s cubic-bezier(0.16, 1, 0.3, 1);
        }

        /* Right Side - Music Player Canvas */
        .canvas-right {
            flex: 0 0 50%;
            /* Strictly 50% */
            width: 50%;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: flex-start;
            padding-left: 6vw;
            /* Reduced padding for player */
            position: relative;
        }

        .music-player-container {
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
            position: relative;
            transform: translateX(50px);
            opacity: 0;
            transition: opacity 1s ease 0.2s, transform 1s ease 0.2s;
            /* Delayed Entry */
            margin-left: 20px;
            /* Shift a bit from divider */
            z-index: 100;
            /* Ensure it is top of everything */
        }

        .end-canvas.visible .music-player-container {
            opacity: 1;
            transform: translateX(0);
        }

        /* Album Art Wrapper */
        .player-wrapper {
            position: relative;
            width: 300px;
            height: 300px;
            /* Container for art + vinyl */
        }

        .album-art-wrapper {
            position: relative;
            width: 100%;
            height: 100%;
            z-index: 10;
            background: #000;
            overflow: hidden;
            /* Keep art contained */
        }

        .album-art {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
            position: relative;
            z-index: 2;
        }

        /* Vinyl Record */
        .vinyl-record {
            position: absolute;
            top: 2%;
            /* Slightly smaller than art to peek naturally */
            right: 2%;
            bottom: 2%;
            left: 2%;
            border-radius: 50%;
            background: #111;
            /* Concentric circles "grooves" */
            background-image: repeating-radial-gradient(#111 0,
                    #111 2px,
                    #222 3px,
                    #222 4px);
            z-index: 1;
            /* Behind Art */
            transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
            display: flex;
            align-items: center;
            justify-content: center;
        }

        /* Vinyl Peek on Hover (Only if not expanded) */
        .player-wrapper:not(.expanded):hover .vinyl-record {
            transform: translateX(20%) rotate(20deg);
        }

        /* Expanded State (Clicked Arrow) */
        .player-wrapper.expanded .vinyl-record {
            /* Move out completely to the right */
            transform: translateX(60%) rotate(0deg);
            /* No rotation on expand, so button is Up */
            z-index: 5;
        }

        /* Spinning Animation When Playing */
        @keyframes spin {
            from {
                transform: translateX(60%) rotate(0deg);
            }

            to {
                transform: translateX(60%) rotate(360deg);
            }
        }

        .player-wrapper.expanded.playing .vinyl-record {
            animation: spin 3s linear infinite;
        }

        /* Toggle Button (The Subtle Arrow) */
        .vinyl-toggle-btn {
            position: absolute;
            bottom: 12px;
            right: 12px;
            width: 32px;
            height: 32px;
            background: rgba(0, 0, 0, 0.5);
            border: none;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            opacity: 0;
            transform: scale(0.8);
            transition: all 0.3s ease;
            backdrop-filter: blur(4px);
            z-index: 20;
        }

        /* Ensure normal hover keeps it scale 1 but rotate 0 IF NOT ACTIVE */
        .player-wrapper:hover .vinyl-toggle-btn:not(.active) {
            opacity: 1;
            transform: scale(1);
        }

        /* If ACTIVE, it should be rotated regardless of wrapper hover */
        .vinyl-toggle-btn.active,
        .player-wrapper:hover .vinyl-toggle-btn.active {
            opacity: 1;
            background: #fff;
            transform: scale(1) rotate(180deg);
        }

        .vinyl-toggle-btn svg {
            fill: #fff;
            width: 18px;
            height: 18px;
            transition: fill 0.3s;
        }

        .vinyl-toggle-btn.active svg {
            fill: #000;
        }

        /* Play/Pause Button on Vinyl Center */
        .vinyl-control-btn {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 40px;
            height: 40px;
            background: rgba(255, 255, 255, 0.2);
            border-radius: 50%;
            border: none;
            cursor: pointer;
            z-index: 30;
            display: flex;
            /* Always flex to center content */
            align-items: center;
            justify-content: center;
            pointer-events: none;
            /* Only clickable when expanded */
            opacity: 0;
            transition: opacity 0.3s;
        }

        .player-wrapper.expanded .vinyl-control-btn {
            pointer-events: auto;
            opacity: 1;
        }

        .vinyl-control-btn svg {
            fill: #fff;
            width: 24px;
            height: 24px;
        }

        /* Label Center */
        .vinyl-label {
            width: 35%;
            height: 35%;
            background: #d6d3c2;
            border-radius: 50%;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            /* Center it */
        }

        .song-info {
            display: flex;
            flex-direction: column;
            gap: 2px;
        }

        .song-title {
            font-family: var(--font-nippo);
            font-size: 1.2rem;
            font-weight: 700;
            text-transform: uppercase;
        }

        .artist-name {
            font-family: var(--font-primary);
            font-size: 0.8rem;
            color: #666;
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }

        /* Visible State Triggered by JS */
        .end-canvas.visible .canvas-left {
            opacity: 1;
            transform: translateX(0);
        }

        .end-canvas.visible .canvas-divider {
            height: 80%;
            /* Grows to 80% */
        }

        #site-loader {
            position: fixed;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            background-color: #D6D3C1;
            z-index: 10000;
            display: flex;
            justify-content: center;
            align-items: center;
            opacity: 1;
            transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1);
        }

        #site-loader.hidden {
            opacity: 0;
            pointer-events: none;
        }

        .loader-content {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 1.5rem;
        }

        /* Minimal Loader Design */
        .loader-text {
            font-family: 'Inter', sans-serif;
            font-size: 0.7rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.2em;
            color: #000;
            opacity: 0.8;
        }

        .loader-bar {
            width: 120px;
            height: 2px;
            background-color: rgba(0, 0, 0, 0.15);
            border-radius: 1px;
            overflow: hidden;
        }

        .loader-bar-fill {
            height: 100%;
            width: 0%;
            background-color: #000;
            border-radius: 1px;
            transition: width 0.3s cubic-bezier(0.16, 1, 0.3, 1);
        }

        /* Initial Hide Content with Staggered Entrance */
        .hero-section,
        .end-canvas,
        .mobile-canvas,
        .hero-nav,
        .mobile-fixed-footer,
        .landing-footer {
            opacity: 0;
            transform: translateY(30px) translateZ(0);
            transition: opacity 1.2s cubic-bezier(0.25, 0.1, 0.25, 1),
                transform 1.2s cubic-bezier(0.25, 0.1, 0.25, 1);
        }

        body.loaded .hero-nav {
            opacity: 1;
            transform: translateY(0) translateZ(0);
            transition-delay: 0.15s;
        }

        body.loaded .hero-section,
        body.loaded .mobile-canvas {
            opacity: 1;
            transform: translateY(0) translateZ(0);
            transition-delay: 0.35s;
        }

        body.loaded .end-canvas {
            opacity: 1;
            transform: translateY(0) translateZ(0);
            transition-delay: 0.45s;
        }

        body.loaded .mobile-fixed-footer,
        body.loaded .landing-footer {
            opacity: 1;
            transform: translateY(0) translateZ(0);
            transition-delay: 0.55s;
        }

        body {
            overflow: hidden !important;
            /* Force no-scroll initially */
        }

        body.loaded {
            overflow: auto !important;
            /* Reset generic override */
            overflow-x: hidden !important;
            /* Keep horizontal hidden */
        }
