body {
            /* 麓(緑) -> 岩場(灰) -> 雪渓(白) -> 空(青) -> 宇宙(紺) */
            background: linear-gradient(to bottom, 
                #0f172a 0%,    /* 宇宙 */
                #1e3a8a 20%,   /* 空 */
                #f8fafc 40%,   /* 雪渓 */
                #57534e 70%,   /* 岩場 */
                #14532d 100%   /* 樹海 */
            );
            background-size: 100% 500vh; /* 画面高さの5倍の長さ */
            background-position: bottom; /* 最初は下（麓） */
            font-family: 'Shippori Mincho', serif;
            color: white;
            transition: background-position 0.1s linear; /* スクロールに合わせてJSで操作 */
        }

        /* 等高線アニメーション */
        .contour-lines {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            opacity: 0.1;
            z-index: 0;
        }
        .contour-path {
            fill: none;
            stroke: currentColor;
            stroke-width: 0.5;
            stroke-dasharray: 1000;
            stroke-dashoffset: 1000;
            animation: drawLine 10s ease-out forwards infinite alternate;
        }
        @keyframes drawLine {
            to { stroke-dashoffset: 0; }
        }

        /* 霧（雲）のエフェクト */
        .fog {
            position: absolute;
            width: 100%;
            height: 100px;
            background: linear-gradient(to top, rgba(255,255,255,0), rgba(255,255,255,0.2), rgba(255,255,255,0));
            filter: blur(20px);
        }

        /* 標高メーター */
        .elevation-meter {
            writing-mode: vertical-rl;
            text-orientation: mixed;
            font-family: 'Montserrat', sans-serif;
        }