        /* Recreating original custom styles */
        .anti-copy {
            user-select: none;
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
        }

        @keyframes bounce {
            0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
            40% { transform: translateY(-10px); }
            60% { transform: translateY(-5px); }
        }

        .animate-bounce {
            animation: bounce 2s infinite;
        }

        .text-\[\#4A3B31\] {
            letter-spacing: 0.2em !important;
        }

        /* Ken Burns Effect */
        @keyframes kenburns {
            0% { transform: scale(1); }
            100% { transform: scale(1.15); }
        }
        .swiper-slide-active .ken-burns-anim {
            animation: kenburns 6s linear forwards;
        }

        /* --- Included from style.css --- */
        :root {
            --theme-gold: #D4AF37;
            --theme-btn: #B39127;
            --theme-dark: #1F1A17;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: "Noto Sans JP", sans-serif;
            color: #333;
            background-color: #fff;
            line-height: 1.8;
            overflow-x: hidden;
            font-size: 16px;
        }

        @media (max-width: 768px) {
            body {
                font-size: 14px;
            }
        }

        #back-to-top {
            opacity: 0;
            visibility: hidden;
            transition: all 0.3s ease;
        }

        #back-to-top.show {
            opacity: 1;
            visibility: visible;
        }

        #back-to-top:hover {
            transform: translateY(-5px);
        }

        @keyframes shimmer {
            0% { background-position: -200% 0; }
            100% { background-position: 200% 0; }
        }

        .shimmer-bg {
            background: linear-gradient(105deg, transparent 40%, rgba(212,175,55,0.06) 45%, rgba(212,175,55,0.12) 50%, rgba(212,175,55,0.06) 55%, transparent 60%);
            background-size: 200% 100%;
            animation: shimmer 6s ease-in-out infinite;
        }

        .anim-fade-up {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.8s ease, transform 0.8s ease;
        }

        .anim-fade-up.aos-animate {
            opacity: 1;
            transform: translateY(0);
        }

        header.scrolled {
            background: rgba(255, 255, 255, 0.8);
            backdrop-filter: blur(10px);
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
        }

        header.scrolled nav a {
            color: var(--theme-dark);
            text-shadow: none;
        }

        .anti-copy {
            -webkit-touch-callout: none;
            -webkit-user-select: none;
            -khtml-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
        }

        .fv-swiper {
            width: 100%;
            height: 100%;
        }

        .dummy-img-placeholder {
            background: linear-gradient(45deg, #f3f4f6 25%, #e5e7eb 25%, #e5e7eb 50%, #f3f4f6 50%, #f3f4f6 75%, #e5e7eb 75%, #e5e7eb 100%);
            background-size: 40px 40px;
        }

        .char-anim {
            opacity: 0;
            transform: translateY(20px);
        }

        .char-anim.animate {
            animation: char-fade-in 0.5s ease forwards;
        }

        @keyframes char-fade-in {
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

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

        .animate-scroll-line {
            animation: scroll-line 2s cubic-bezier(0.65, 0, 0.35, 1) infinite;
        }

        @media (min-width: 1024px) {
            .lg\:text-7xl {
                line-height: 1.5 !important;
            }
        }

        .ken-burns-anim,
        .swiper-slide-active .ken-burns-anim {
            animation: none !important;
            transform: none !important;
        }

        .char-anim,
        .char-anim.animate {
            opacity: 1 !important;
            transform: none !important;
            animation: none !important;
        }

        /* conceptセクションを除外してpaddingを適用 */
        main > section[id]:not(#concept) {
            padding-top: clamp(6.5rem, 8vw, 9rem) !important;
            padding-bottom: clamp(6.5rem, 8vw, 9rem) !important;
        }

        @media (max-width: 768px) {
            main > section[id]:not(#concept) {
                padding-top: 5.5rem !important;
                padding-bottom: 5.5rem !important;
            }
        }

        /* Accordion UI */
        .accordion-trigger {
            width: 100%;
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 1rem;
            text-align: left;
            cursor: pointer;
        }

        .accordion-symbol {
            flex-shrink: 0;
            width: 2.25rem;
            height: 2.25rem;
            border: 1px solid rgba(212, 175, 55, 0.75);
            border-radius: 9999px;
            color: var(--theme-btn);
            font-size: 1.5rem;
            line-height: 1;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            transition: background-color 0.3s ease, color 0.3s ease;
        }

        .accordion-trigger[aria-expanded="true"] .accordion-symbol {
            background-color: rgba(212, 175, 55, 0.15);
        }

        .accordion-panel {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.45s ease;
        }

        .content-accordion-trigger {
            align-items: center;
            margin-top: 1.5rem;
            padding: 0.9rem 0;
            border-top: 1px solid rgba(74, 59, 49, 0.18);
            border-bottom: 1px solid rgba(74, 59, 49, 0.18);
        }

        .content-accordion-label {
            flex: 1;
            color: #4A3B31;
            font-family: "EB Garamond", serif;
            font-size: 0.88rem;
            font-weight: 700;
            letter-spacing: 0.22em;
            text-transform: uppercase;
        }

        .content-accordion-panel > * {
            padding-top: 1.4rem;
        }

        #greeting .content-accordion-trigger {
            border-color: rgba(212, 175, 55, 0.32);
        }
        
        /* Concept section specific accordion adjustments */
        #concept .content-accordion-trigger {
            border-color: rgba(74, 59, 49, 0.18);
        }
        #concept .content-accordion-label {
            color: #4A3B31; /* Dark text for white background */
        }

        @media (min-width: 768px) {
            .md\:text-5xl {
                line-height: 1.5 !important;
            }
        }
