        :root {
            --bg-color: #080a0f;
            --accent-color: #00f3ff;
            --glitch-red: rgba(255, 0, 80, 0.8);
            --glitch-blue: rgba(0, 255, 255, 0.8);
        }

        body {
            margin: 0;
            background-color: var(--bg-color);
            color: #fff;
            font-family: 'Fira Code', 'Courier New', Courier, monospace;
            overflow: hidden;
        }

        /* イントロオーバーレイ */
        #intro-overlay {
            position: fixed;
            inset: 0;
            z-index: 100;
            display: flex;
            justify-content: center;
            align-items: center;
            background-color: var(--bg-color);
        }

        /* スキャンライン効果 */
        #intro-overlay::before {
            content: "";
            position: absolute;
            inset: 0;
            background: linear-gradient(
                rgba(18, 16, 16, 0) 50%,
                rgba(0, 0, 0, 0.3) 50%
            ), linear-gradient(
                90deg,
                rgba(255, 0, 0, 0.03),
                rgba(0, 255, 0, 0.01),
                rgba(0, 0, 255, 0.03)
            );
            background-size: 100% 3px, 2px 100%;
            pointer-events: none;
            z-index: 10;
        }

        .intro-text-wrapper {
            position: relative;
            font-size: clamp(1.5rem, 6vw, 4rem);
            font-weight: bold;
            text-transform: uppercase;
            letter-spacing: 0.3em;
            opacity: 0;
            color: var(--accent-color);
            text-shadow: 0 0 10px var(--accent-color);
        }

        /* メインコンテンツ */
        #main-content {
            opacity: 0;
            visibility: hidden;
            width: 100vw;
            height: 100vh;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }

        .hero-container {
            position: relative;
            width: 90vw;
            max-width: 1100px;
            aspect-ratio: 16 / 9;
            overflow: hidden;
            border: 1px solid rgba(0, 243, 255, 0.3);
            box-shadow: 0 0 40px rgba(0, 0, 0, 0.5);
        }

        .hero-img {
            width: 100%;
            height: 100%;
            /* プログラミングテイストの画像に変更 */
            background-image: url('https://images.unsplash.com/photo-1555066931-4365d14bab8c?q=80&w=2070&auto=format&fit=crop');
            background-size: cover;
            background-position: center;
            filter: saturate(0.8) brightness(0.9);
        }

        /* グリッジレイヤー */
        .glitch-layer {
            position: absolute;
            inset: 0;
            background-image: inherit;
            background-size: cover;
            background-position: center;
            mix-blend-mode: screen;
            pointer-events: none;
            display: none;
        }

        .layer-red { background-color: var(--glitch-red); background-blend-mode: multiply; }
        .layer-blue { background-color: var(--glitch-blue); background-blend-mode: multiply; }

        .nav-ui {
            margin-top: 30px;
            text-align: center;
            font-size: 0.8rem;
            letter-spacing: 0.2em;
            opacity: 0.7;
            color: var(--accent-color);
        }

        .replay-btn {
            position: fixed;
            bottom: 30px;
            right: 30px;
            background: rgba(0, 243, 255, 0.1);
            border: 1px solid var(--accent-color);
            color: var(--accent-color);
            padding: 8px 16px;
            cursor: pointer;
            font-family: inherit;
            font-size: 10px;
            text-transform: uppercase;
            z-index: 200;
            transition: 0.3s;
        }
        .replay-btn:hover { background: var(--accent-color); color: #000; }
