:root {
            --crt-blue: #00aaff;
            --deep-space: #000a1a;
            --film-stock: #0a0a2a;
            --reel-silver: #88aaff;
            --scanline: rgba(0, 170, 255, 0.05);
            --base-font: clamp(14px, 2.5vw, 18px);
        }

        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        body {
            background: 
                radial-gradient(circle at center, #000a2a, #000),
                repeating-linear-gradient(
                    180deg,
                    var(--scanline) 0px,
                    var(--scanline) 1px,
                    transparent 1px,
                    transparent 3px
                ),
                var(--deep-space);
            color: var(--crt-blue);
            font-family: 'Courier New', 'SimSun', monospace;
            line-height: 2.4;
            font-size: var(--base-font);
            min-height: 100vh;
            padding: 1rem;
        }

        .crt-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: repeating-linear-gradient(
                0deg,
                rgba(0, 170, 255, 0.1) 0px,
                rgba(0, 170, 255, 0.1) 1px,
                transparent 1px,
                transparent 3px
            );
            pointer-events: none;
            z-index: 9999;
        }

        .main-frame {
            max-width: 1000px;
            margin: 0 auto;
            border: 3px double var(--reel-silver);
            padding: clamp(1rem, 3vw, 2rem);
            background: rgba(0, 10, 30, 0.9);
            position: relative;
        }

        .pixel-header {
            text-align: center;
            margin-bottom: clamp(1rem, 3vw, 2rem);
            border-bottom: 3px dotted var(--reel-silver);
            padding-bottom: clamp(0.5rem, 2vw, 1rem);
        }

        .glitch-logo {
            image-rendering: pixelated;
            width: min(100%, 300px);
            height: auto;
            filter: drop-shadow(0 0 8px var(--crt-blue));
            margin: 0 auto;
        }

        .cyber-nav {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
            gap: clamp(0.5rem, 2vw, 1rem);
            margin: clamp(1rem, 3vw, 2rem) 0;
        }

        .nav-button {
            background: var(--film-stock);
            border: 2px outset var(--reel-silver);
            padding: clamp(0.5rem, 2vw, 1rem);
            color: var(--crt-blue);
            text-decoration: none;
            text-align: center;
            transition: all 0.3s;
            font-size: clamp(14px, 3vw, 16px);
            white-space: nowrap;
        }

        .film-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: clamp(1rem, 3vw, 2rem);
            margin: clamp(1rem, 3vw, 2rem) 0;
        }

        .film-card {
            border: 3px groove var(--reel-silver);
            padding: clamp(0.8rem, 2vw, 1.2rem);
            transition: transform 0.5s;
            break-inside: avoid;
        }

        .pixel-poster {
            width: 100%;
            height: auto;
            min-height: 200px;
            object-fit: cover;
            image-rendering: pixelated;
            border: 2px inset var(--crt-blue);
            aspect-ratio: 3/2;
        }

        .manifesto {
            border-left: 3px solid var(--reel-silver);
            padding-left: clamp(0.5rem, 2vw, 1rem);
            margin: clamp(1rem, 3vw, 2rem) 0;
            font-style: italic;
            color: #88ddff;
            font-size: clamp(14px, 3vw, 16px);
        }

        .retro-footer {
            border-top: 1px dashed var(--crt-blue);
            padding-top: clamp(1rem, 3vw, 1.5rem);
            text-align: center;
            margin-top: clamp(2rem, 5vw, 3rem);
            font-size: clamp(12px, 2.5vw, 14px);
        }

        /* 弹窗优化样式 */
        #vending-overlay {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0,10,30,0.95);
            z-index: 10000;
        }

        .vending-container {
            position: relative;
            background: var(--deep-space);
            border: 3px double var(--reel-silver);
            margin: 20px;
            max-width: 800px;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        }

        .close-btn {
            position: absolute;
            right: -15px;
            top: -15px;
            background: var(--film-stock);
            border: 2px outset var(--reel-silver);
            color: var(--crt-blue);
            width: 40px;
            height: 40px;
            border-radius: 50%;
            font-size: 1.2em;
            z-index: 10001;
            cursor: pointer;
        }

        @media (max-width: 600px) {
            body {
                padding: 0.5rem;
            }

            .cyber-nav {
                grid-template-columns: 1fr;
            }

            .nav-button {
                width: 100%;
                padding: 0.8rem;
            }

            .vending-container {
                margin: 10px;
                border-width: 2px;
            }

            .close-btn {
                right: -10px;
                top: -10px;
                width: 35px;
                height: 35px;
                font-size: 1em;
            }

            iframe {
                height: 90vh !important;
            }
        }

        @keyframes glitch {
            0% { text-shadow: 0 0 5px var(--crt-blue); }
            50% { text-shadow: 2px 2px 2px #ff00ff; }
            100% { text-shadow: -2px -2px 2px #00ffff; }
        }

        .blink {
            animation: blink 1s step-end infinite;
        }

        @keyframes blink {
            50% { opacity: 0; }
        }
