body,
        html {
            margin: 0;
            padding: 0;
            width: 100%;
            height: 100%;
            background-color: #050505;
            color: #fff;
            overflow: hidden;
        }

        /* BACKGROUND 2D GRID */
        .synth-sky {
            position: absolute;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            background: radial-gradient(circle at 50% 0%, rgba(0, 255, 65, 0.08) 0%, #050505 60%);
            z-index: 1;
            pointer-events: none;
        }

        .synth-grid {
            position: absolute;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            background-size: 50px 50px;
            background-image:
                linear-gradient(to right, rgba(0, 255, 65, 0.04) 1px, transparent 1px),
                linear-gradient(to bottom, rgba(0, 255, 65, 0.04) 1px, transparent 1px);
            z-index: 2;
            pointer-events: none;
        }

        /* CANVAS 3D E UI DE SOBREPOSIÇÃO */
        #scene-container {
            position: absolute;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            z-index: 5;
        }

        #ui-layer {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 10;
            pointer-events: none;
            display: flex;
            flex-direction: column;
            align-items: center;
            padding-top: 40px;
            perspective: 1500px;
        }

        #insert-flash {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: white;
            opacity: 0;
            pointer-events: none;
            z-index: 9999;
            transition: opacity 0.1s ease-out;
        }

        #fallback-loading {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            font-family: 'Press Start 2P', monospace;
            color: #00ff41;
            font-size: 16px;
            text-align: center;
            opacity: 0;
            transition: opacity 0.3s;
            z-index: 10000;
            text-shadow: 0 0 20px #00ff41;
        }

        @media (min-width: 768px) {
            #fallback-loading {
                font-size: 20px;
            }
        }

        /* O CARTUCHO 3D CSS */
        .cartridge-wrapper {
            position: absolute;
            pointer-events: auto;
            cursor: pointer;
            width: 240px;
            transform-style: preserve-3d;
            transform-origin: center center;
        }

        .cartridge-box {
            position: relative;
            width: 240px;
            height: 280px;
            transform-style: preserve-3d;
            transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
        }

        .face {
            position: absolute;
            background-color: #1a1a1a;
            border: 1px solid #333;
        }

        .face-front,
        .face-back {
            width: 240px;
            height: 280px;
            top: 0;
            left: 0;
            border-radius: 8px 8px 0 0;
        }

        .face-front {
            transform: translateZ(20px);
            z-index: 2;
            display: flex;
            justify-content: center;
            align-items: center;
            box-shadow: inset 0 0 20px rgba(0, 0, 0, 1), inset 0px 25px 0px #111, inset 0px -25px 0px #111;
        }

        .face-back {
            transform: rotateY(180deg) translateZ(20px);
            background: #111;
            box-shadow: inset 0 0 30px rgba(0, 0, 0, 1);
        }

        .face-left,
        .face-right {
            width: 40px;
            height: 280px;
            top: 0;
            left: 100px;
        }

        .face-left {
            transform: rotateY(-90deg) translateZ(120px);
            background: linear-gradient(to right, #0a0a0a, #2a2a2a);
            border-radius: 8px 0 0 0;
        }

        .face-right {
            transform: rotateY(90deg) translateZ(120px);
            background: linear-gradient(to left, #0a0a0a, #2a2a2a);
            border-radius: 0 8px 0 0;
        }

        .face-top,
        .face-bottom {
            width: 240px;
            height: 40px;
            top: 120px;
            left: 0;
        }

        .face-top {
            transform: rotateX(90deg) translateZ(140px);
            background: #222;
            border-radius: 4px;
        }

        .face-bottom {
            transform: rotateX(-90deg) translateZ(140px);
            background: #050505;
            box-shadow: inset 0 0 15px #000;
            border-top: 6px solid #111;
            border-bottom: 6px solid #111;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .pins {
            width: 80%;
            height: 14px;
            background: repeating-linear-gradient(90deg, #00ff41, #00ff41 3px, #000 3px, #000 6px);
            opacity: 0.7;
        }

        .cart-label {
            width: 200px;
            height: 210px;
            background-color: #000;
            border-radius: 6px;
            position: relative;
            overflow: hidden;
            border: 1px solid rgba(255, 255, 255, 0.1);
            background-size: cover;
            background-position: center;
        }

        .label-header {
            background: #000;
            border-bottom: 3px solid #00ff41;
            padding: 6px;
            text-align: center;
        }

        /* AJUSTE: Textos mais próximos do cartucho */
        .course-info {
            position: absolute;
            width: 100%;
            text-align: center;
            bottom: -70px;
            /* Reduzido de -90px para ficar mais perto da fita */
            pointer-events: none;
            opacity: 1;
            transition: opacity 0.3s ease;
        }

        .neon-shelf {
            height: 4px;
            border-radius: 50%;
            margin-top: 105px;
            /* Reduzido para encostar mais na caixa 3D */
            position: relative;
            z-index: 0;
            opacity: 0.6;
        }