
        body {
            font-family: 'Montserrat', 'Noto Sans JP', sans-serif;
            background-color: #514B47; /* bgram-brown をサイト全体の基本背景色に */
            color: #EAEAEA; /* 基本のテキストカラーを白/ライトグレー基調に */
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }

        /* ローダーのアニメーション */
        #loader {
            transition: opacity 1s ease-in-out, visibility 1s;
        }

        #loader.hidden-loader {
            opacity: 0;
            visibility: hidden;
        }

        /* テキスト選択時の色 */
        ::selection {
            background-color: #86A8B1; /* 選択時ブルー */
            color: #fff;
        }

        /* スクロールアニメーション (下からゆっくり浮かび上がる) */
        .reveal {
            opacity: 0;
            transform: translateY(40px);
            transition: all 1.2s cubic-bezier(0.25, 1, 0.5, 1);
        }

        .reveal.active {
            opacity: 1;
            transform: translateY(0);
        }

        /* 画像パララックス用のコンテナ */
        .parallax-container {
            overflow: hidden;
            position: relative;
        }

        .parallax-img {
            transition: transform 0.1s linear;
            height: 120%;
            /* パララックスの余白分 */
            width: 100%;
            object-fit: cover;
            position: absolute;
            top: -10%;
        }

        /* Mission scroll-driven accordion */
        .mission-cards-wrapper {
            position: relative;
            height: 300vh;
        }
        .mission-inner {
            position: sticky;
            top: var(--header-h, 56px);
            height: calc(100vh - var(--header-h, 56px));
            display: flex;
            flex-direction: column;
            padding: 12px 1rem 0 1rem;
            gap: 4px;
            overflow: hidden;
        }
        @media (min-width: 768px) {
            .mission-inner {
                padding: 12px 2.5rem 0 2.5rem;
                gap: 6px;
            }
        }
        .mission-card {
            position: relative;
            overflow: hidden;
            border-radius: 8px;
            flex-shrink: 0;
        }
        @media (min-width: 768px) {
            .mission-card {
                border-radius: 10px;
            }
        }
        .mission-card .card-bg {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        .mission-card .card-overlay {
            position: absolute;
            inset: 0;
            background: linear-gradient(to top, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0.1) 100%);
        }
        .mission-card .card-title {
            position: absolute;
            top: 50%;
            left: 1.5rem;
            transform: translateY(-50%);
            z-index: 10;
            transition: top 0.4s ease, transform 0.4s ease;
        }
        .mission-card.is-expanded .card-title {
            top: 2rem;
            transform: translateY(0);
        }
        @media (min-width: 768px) {
            .mission-card .card-title {
                left: 2.5rem;
            }
        }
        .mission-card .card-desc {
            position: absolute;
            inset: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 10;
            padding: 0 2rem;
            opacity: 0;
            transition: opacity 0.5s ease;
        }
        .mission-card.is-expanded .card-desc {
            opacity: 1;
        }

        /* カスタムスクロールバー (細く目立たなくする) */
        ::-webkit-scrollbar {
            width: 4px;
        }

        ::-webkit-scrollbar-track {
            background: #fff;
        }

        ::-webkit-scrollbar-thumb {
            background: #514B47;
        }

        /* ヘッダーの背景変化 */
        .header-scrolled {
            background-color: rgba(255, 255, 255, 0.95); /* 白ベースの半透明 */
            backdrop-filter: blur(8px);
            border-bottom: 1px solid rgba(81, 75, 71, 0.1); /* bgram-brownの薄い線 */
        }

        .header-scrolled .nav-text {
            color: #514B47 !important; /* スクロール時の文字色をbgram-brownに変更 */
        }

        /* ハンバーガーメニューの三本線もスクロール時に色を変更 */
        .header-scrolled .menu-btn span {
            background: #514B47;
        }

        /* 横線のホバーエフェクト */
        .hover-line {
            position: relative;
            display: inline-block;
        }

        .hover-line::after {
            content: '';
            position: absolute;
            width: 0;
            height: 1px;
            bottom: -4px;
            left: 0;
            background-color: currentColor;
            transition: width 0.4s ease;
        }

        .hover-line:hover::after {
            width: 100%;
        }

        /* byd-p.jp風のアニメーションキーフレームとクラス */
        @keyframes fadeLeft {
            0% {
                opacity: 0;
                left: 40%;
                transform: translate(-50%, -50%);
            }
            100% {
                opacity: 1;
                left: 50%;
                transform: translate(-50%, -50%);
            }
        }
        @keyframes fadeRight {
            0% {
                opacity: 0;
                right: 40%;
                transform: translate(73%, -10%);
            }
            100% {
                opacity: 1;
                right: 36%;
                transform: translate(73%, -10%);
            }
        }
        @keyframes fadeDown {
            0% {
                opacity: 0;
                top: 0;
                transform: translate(0%, 221px);
            }
            100% {
                opacity: 1;
                top: 0;
                transform: translate(0, 251px);
            }
        }
        @keyframes spFadeDown {
            0% {
                opacity: 0;
                top: 0;
                transform: translate(0%, 100px);
            }
            100% {
                opacity: 1;
                top: 0;
                transform: translate(0%, 140px);
            }
        }

        .tit-first {
            font-family: 'Noto Serif JP', serif;
            font-weight: 300;
            position: absolute;
            z-index: 9999;
            top: 50%;
            left: 0%;
            transform: translate(0%, -50%);
            white-space: nowrap;
        }
        .active-slide .tit-first.fadeLeft {
            animation: fadeLeft 3.5s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
            animation-delay: 2s;
            opacity: 0;
        }
        .active-slide .tit-first-sub.fadeLeft {
            animation: fadeLeft 3.5s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
            animation-delay: 1s;
            opacity: 0;
        }

        .tit-sub {
            font-family: 'Inter', 'Montserrat', sans-serif;
            font-weight: 300;
            position: absolute;
            z-index: 1;
            top: 50%;
        }
        .active-slide .tit-sub.fadeRight {
            animation: fadeRight 3.5s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
            animation-delay: 1.5s;
            opacity: 0;
        }

        .tit-vertical {
            position: absolute;
            z-index: 1;
            top: 0;
            right: 32%;
            transform: translate(0, 0px);
            writing-mode: vertical-rl;
            text-orientation: upright;
            font-family: 'Noto Serif JP', serif;
            font-weight: 300;
            letter-spacing: 0.3em;
        }
        .active-slide .tit-vertical.fadeDown {
            animation: fadeDown 3.5s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
            animation-delay: 1s;
            opacity: 0;
        }

        /* 非アクティブかつフェードアウト済みのスライドのテキストを非表示（スライドが完全に透明になった後に適用） */
        .slide-item.fade-done .tit-first,
        .slide-item.fade-done .tit-sub,
        .slide-item.fade-done .tit-vertical {
            opacity: 0;
            animation: none;
        }

        @media screen and (max-width: 767px) {
            .tit-first {
                font-size: 20px !important;
            }
            .tit-sub {
                font-size: 19.2px !important;
            }
            .tit-vertical {
                font-size: 11.5px !important;
                right: 10% !important;
            }
            .active-slide .tit-vertical.fadeDown {
                animation: spFadeDown 3.5s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
            }
            @keyframes fadeRight {
                0% { opacity: 0; left: 50%; transform: translate(-50%, 40px); }
                100% { opacity: 1; left: 50%; transform: translate(-50%, 60px); }
            }
            .tit-sub {
                left: auto;
                right: auto;
            }
        }

        /* Privacy Policy Modal Styles */
        #privacy-modal {
            transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .modal-show {
            opacity: 1 !important;
            visibility: visible !important;
        }
        .modal-content-anim {
            transform: translateY(20px);
            transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .modal-show .modal-content-anim {
            transform: translateY(0);
        }

        /* Hamburger Menu Styles */
        .menu-btn {
            width: 30px;
            height: 20px;
            position: relative;
            cursor: pointer;
            z-index: 100;
        }
        .menu-btn span {
            display: block;
            position: absolute;
            height: 1px;
            width: 100%;
            background: #fff;
            transition: .4s ease;
        }
        .menu-btn span:nth-child(1) { top: 0; }
        .menu-btn span:nth-child(2) { top: 10px; }
        .menu-btn span:nth-child(3) { top: 20px; }
        .menu-btn.active span:nth-child(1) { top: 10px; transform: rotate(45deg); }
        .menu-btn.active span:nth-child(2) { opacity: 0; }
        .menu-btn.active span:nth-child(3) { top: 10px; transform: rotate(-45deg); }

        #mobile-menu {
            transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .menu-show {
            opacity: 1 !important;
            visibility: visible !important;
        }
        .menu-item-anim {
            opacity: 0;
            transform: translateY(20px);
            transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .menu-show .menu-item-anim {
            opacity: 1;
            transform: translateY(0);
        }

        /* News アニメーション用 */
        .news-item.hidden-news {
            display: none;
            opacity: 0;
            transform: translateY(20px);
        }
        .news-item.fade-in-news {
            display: block;
            animation: fadeInNews 0.8s ease forwards;
        }
        @keyframes fadeInNews {
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
                /* Ken Burns アニメーション: 約左方向にパンしながら少し拡大 */
        @keyframes kenBurns {
            0% {
                transform: scale(1.0) translateX(0%);
            }
            100% {
                transform: scale(1.15) translateX(-4%);
            }
        }

        .hero-kb-img {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            opacity: 0.7;
        }

        @keyframes scrollLine {
            0% {
                transform: translateY(-100%);
            }
            100% {
                transform: translateY(100%);
            }
        }