:root {
            --bg-color: #050505;
            --text-color: #e0e0e0;
            --gold: #d1ad3f;
            --gold-dim: rgba(209, 173, 63, 0.35);
            --gold-glow: rgba(209, 173, 63, 0.6);
            --crimson: #db0f4d;
            --crimson-dim: rgba(219, 15, 77, 0.3);
            --crimson-glow: rgba(219, 15, 77, 0.6);
            --nav-height: 110px;
            --void: #070307;
            --nyr-void:      #03010a;
            --nyr-deep:      #0a0015;
            --nyr-gold:      #c8a030;
            --nyr-gold-pale: rgba(200,160,48,0.55);
            --nyr-crimson:   #8b0020;
            --nyr-blood:     #c01030;
            --nyr-text-rest: rgba(190,175,155,0.45);
            --nyr-text-hover:rgba(240,215,130,0.95);
        }

        html, body {
            margin: 0; padding: 0;
            color: var(--text-color);
            background-color: transparent !important;
            font-family: 'Kaisei Decol', serif;
            overflow-x: hidden;
            cursor: none !important;
            scroll-behavior: smooth;
        }

        .base-bg {
            position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
            background-color: var(--bg-color);
            z-index: -105; pointer-events: none;
        }

        body::after {
            content: '';
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
            pointer-events: none; z-index: 9998; opacity: 0.5;
        }

        .bg-video {
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            z-index: -100; object-fit: cover; pointer-events: none;
            filter: brightness(1) saturate(0.85);
        }

        .bg-overlay {
            position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
            background:
                radial-gradient(ellipse at 20% 40%, rgba(90,5,25,0.18) 0%, transparent 55%),
                radial-gradient(ellipse at 80% 60%, rgba(25,8,50,0.12) 0%, transparent 55%),
                radial-gradient(circle at 50% 0%, rgba(5,0,0,0.55) 0%, transparent 60%),
                linear-gradient(to bottom, rgba(0,0,0,0.45), rgba(0,0,0,0.85));
            z-index: -99; pointer-events: none;
        }

        .stars-layer {
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            z-index: -98; pointer-events: none;
            background:
                radial-gradient(1px 1px at 15% 20%, rgba(209,173,63,0.45) 0%, transparent 100%),
                radial-gradient(1px 1px at 35% 65%, rgba(255,255,255,0.18) 0%, transparent 100%),
                radial-gradient(1px 1px at 70% 12%, rgba(209,173,63,0.3) 0%, transparent 100%),
                radial-gradient(1px 1px at 85% 80%, rgba(255,255,255,0.2) 0%, transparent 100%),
                radial-gradient(1px 1px at 50% 45%, rgba(219,15,77,0.28) 0%, transparent 100%),
                radial-gradient(1px 1px at 10% 85%, rgba(255,255,255,0.12) 0%, transparent 100%),
                radial-gradient(1px 1px at 90% 38%, rgba(209,173,63,0.22) 0%, transparent 100%),
                radial-gradient(1.5px 1.5px at 25% 5%, rgba(209,173,63,0.5) 0%, transparent 100%),
                radial-gradient(1.5px 1.5px at 75% 55%, rgba(219,15,77,0.38) 0%, transparent 100%),
                radial-gradient(1px 1px at 55% 92%, rgba(209,173,63,0.2) 0%, transparent 100%);
        }

        body { padding-bottom: 150px; }
        ::selection { background-color: var(--crimson); color: #fff; }
        a, button, input, .stream-tag, .tab-btn, .wish-item, .fantia-link-btn, .campfire-banner-inner, .booth-banner-inner { cursor: none !important; }
        ::-webkit-scrollbar { width: 8px; }
        ::-webkit-scrollbar-track { background: var(--bg-color); }
        ::-webkit-scrollbar-thumb { background: var(--crimson); border-radius: 4px; }

        /* ══════════════════════════════════════════════════
           #loader — 這い寄る混沌 / Nyarlathotep
           ══════════════════════════════════════════════════ */
        #loader {
            position: fixed; inset: 0;
            background: #020102;
            z-index: 100000;
            display: flex;
            justify-content: center;
            align-items: center;
            flex-direction: column;
            overflow: hidden;
            transition: opacity 1.2s cubic-bezier(0.7, 0, 0.3, 1),
                        visibility 1.2s ease;
        }
        #loader.loaded { opacity: 0; visibility: hidden; }

        /* 背景：コズミックグロー */
        #loader::before {
            content: '';
            position: absolute; inset: 0;
            background:
                radial-gradient(ellipse 60% 60% at 50% 50%, rgba(60,0,10,0.5) 0%, transparent 70%),
                radial-gradient(ellipse 80% 40% at 20% 80%, rgba(20,0,40,0.3) 0%, transparent 60%),
                radial-gradient(ellipse 50% 70% at 80% 20%, rgba(10,0,25,0.25) 0%, transparent 60%);
            pointer-events: none;
            animation: loaderBgBreath 8s ease-in-out infinite;
        }

        /* 星屑レイヤー */
        #loader::after {
            content: '';
            position: absolute; inset: 0;
            background-image:
                radial-gradient(1px 1px at 8%  15%, rgba(209,173,63,0.6)  0%, transparent 100%),
                radial-gradient(1px 1px at 92%  8%, rgba(209,173,63,0.4)  0%, transparent 100%),
                radial-gradient(1px 1px at 45% 78%, rgba(219,15,77,0.5)   0%, transparent 100%),
                radial-gradient(1.5px 1.5px at 72% 35%, rgba(255,255,255,0.25) 0%, transparent 100%),
                radial-gradient(1px 1px at 28% 55%, rgba(209,173,63,0.3)  0%, transparent 100%),
                radial-gradient(1px 1px at 85% 70%, rgba(255,255,255,0.2) 0%, transparent 100%),
                radial-gradient(1px 1px at 15% 90%, rgba(209,173,63,0.35) 0%, transparent 100%),
                radial-gradient(1px 1px at 60% 12%, rgba(219,15,77,0.4)   0%, transparent 100%),
                radial-gradient(1.5px 1.5px at 50% 50%, rgba(255,255,255,0.1) 0%, transparent 100%);
            pointer-events: none;
            animation: loaderStarsFlicker 4s ease-in-out infinite alternate;
        }

        /* ウジャトの目 */
        .loader-eye {
            position: relative;
            font-size: 1.3rem;
            color: rgba(200, 150, 30, 0.3);
            text-shadow: 0 0 12px rgba(180,120,20,0.4), 0 0 30px rgba(120,0,20,0.3);
            animation: loaderEyePulse 4s ease-in-out infinite;
            letter-spacing: 22px;
            z-index: 2;
            user-select: none;
            margin-bottom: 10px;
        }

        /* ステージ */
        .loader-stage {
            position: relative;
            width: 280px; height: 280px;
            display: flex; justify-content: center; align-items: center;
            z-index: 2;
        }

        /* 外周リング */
        .loader-outer-ring {
            position: absolute; inset: 0;
            border-radius: 50%;
            border: 1px solid rgba(180,130,20,0.18);
            box-shadow:
                0 0 0 1px rgba(0,0,0,0.9),
                0 0 30px rgba(180,100,15,0.08),
                inset 0 0 30px rgba(0,0,0,0.8);
            animation: loaderOuterRotate 30s linear infinite;
        }
        .loader-outer-ring::before,
        .loader-outer-ring::after {
            content: '';
            position: absolute;
            background: rgba(200,150,30,0.5);
            border-radius: 1px;
        }
        .loader-outer-ring::before {
            width: 6px; height: 1px;
            top: 50%; left: -3px;
            transform: translateY(-50%);
            box-shadow: 279px 0 rgba(200,150,30,0.5);
        }
        .loader-outer-ring::after {
            width: 1px; height: 6px;
            left: 50%; top: -3px;
            transform: translateX(-50%);
            box-shadow: 0 279px rgba(200,150,30,0.5);
        }

        /* ヒエログリフリング */
        .loader-glyph-ring {
            position: absolute;
            width: 248px; height: 248px;
            border-radius: 50%;
            display: flex; justify-content: center; align-items: flex-start;
            animation: loaderOuterRotate 18s linear infinite reverse;
        }
        .loader-glyph-ring span {
            position: absolute;
            font-size: 0.7rem;
            color: rgba(180,130,20,0.35);
            transform-origin: 0 124px;
            text-shadow: 0 0 6px rgba(180,120,15,0.4);
            animation: loaderGlyphPulse 3s ease-in-out infinite alternate;
        }

        /* 中間リング */
        .loader-mid-ring {
            position: absolute;
            width: 220px; height: 220px;
            border-radius: 50%;
            border: 1px solid transparent;
            border-top-color: rgba(219,15,77,0.7);
            border-bottom-color: rgba(209,173,63,0.4);
            filter: drop-shadow(0 0 8px rgba(219,15,77,0.5));
            animation: loaderMidRotate 3.5s cubic-bezier(0.445,0.05,0.55,0.95) infinite;
        }

        /* 内部リング */
        .loader-inner-ring {
            position: absolute;
            width: 160px; height: 160px;
            border-radius: 50%;
            border: 1px solid transparent;
            border-left-color:  rgba(209,173,63,0.6);
            border-right-color: rgba(219,15,77,0.35);
            animation: loaderMidRotate 2.8s cubic-bezier(0.445,0.05,0.55,0.95) infinite reverse;
        }

        /* 四芒星ラッパー */
        .loader-star-wrap {
            position: relative;
            width: 90px; height: 90px;
            display: flex; justify-content: center; align-items: center;
            animation: loaderStarWrapPulse 4s ease-in-out infinite;
        }

        /* 四芒星 メイン */
        .loader-star {
            position: absolute;
            width: 100%; height: 100%;
            animation: loaderStarRotate 6s ease-in-out infinite;
            filter:
                drop-shadow(0 0 6px  rgba(219,15,77,0.9))
                drop-shadow(0 0 18px rgba(219,15,77,0.5))
                drop-shadow(0 0 40px rgba(209,173,63,0.2));
        }

        /* 四芒星 サブ（ゴールド） */
        .loader-star-2 {
            position: absolute;
            width: 70%; height: 70%;
            animation: loaderStarRotate 8s ease-in-out infinite reverse;
            opacity: 0.6;
            filter:
                drop-shadow(0 0 4px  rgba(209,173,63,0.8))
                drop-shadow(0 0 12px rgba(209,173,63,0.4));
        }

        /* コア */
        .loader-core {
            position: absolute;
            width: 12px; height: 12px;
            background: radial-gradient(circle, #fff 0%, var(--crimson) 50%, transparent 100%);
            border-radius: 50%;
            box-shadow:
                0 0 8px #fff,
                0 0 20px rgba(219,15,77,1),
                0 0 40px rgba(219,15,77,0.6),
                0 0 80px rgba(219,15,77,0.2);
            animation: loaderCorePulse 1.8s ease-in-out infinite;
            z-index: 5;
        }

        /* タイトル */
        .loader-text-area {
            position: relative;
            margin-top: 44px;
            text-align: center;
            z-index: 2;
        }
        .loader-title {
            font-family: 'UnifrakturMaguntia', cursive;
            font-size: 1.8rem;
            letter-spacing: 6px;
            color: transparent;
            background: linear-gradient(90deg,
                rgba(180,130,20,0.5)    0%,
                rgba(230,200,80,0.95)  35%,
                rgba(255,255,255,0.9)  50%,
                rgba(230,200,80,0.95)  65%,
                rgba(180,130,20,0.5)  100%);
            background-size: 200% auto;
            -webkit-background-clip: text;
            background-clip: text;
            animation: loaderTitleShimmer 3s linear infinite;
        }

        /* プログレスバー */
        .loader-progress-wrap {
            position: relative;
            margin-top: 28px;
            width: 220px;
            z-index: 2;
        }
        .loader-progress-track {
            width: 100%; height: 1px;
            background: rgba(180,130,20,0.12);
            position: relative; overflow: visible;
        }
        .loader-progress-track::before,
        .loader-progress-track::after {
            content: '';
            position: absolute;
            top: 50%; transform: translateY(-50%);
            width: 4px; height: 4px;
            background: rgba(180,130,20,0.4);
            border-radius: 50%;
        }
        .loader-progress-track::before { left:  -6px; }
        .loader-progress-track::after  { right: -6px; }
        .loader-progress-fill {
            height: 100%;
            background: linear-gradient(90deg,
                transparent               0%,
                rgba(219,15,77,0.8)      40%,
                rgba(209,173,63,0.9)    100%);
            box-shadow: 0 0 8px rgba(219,15,77,0.6), 0 0 20px rgba(209,173,63,0.3);
            animation: loaderProgressFill 2.2s cubic-bezier(0.4,0,0.2,1) forwards;
            width: 0%;
        }

        /* ── ローダー専用キーフレーム ── */
        @keyframes loaderBgBreath {
            0%,100% { opacity: 0.8; }
            50%     { opacity: 1;   }
        }
        @keyframes loaderStarsFlicker {
            0%   { opacity: 0.6; }
            100% { opacity: 1;   }
        }
        @keyframes loaderOuterRotate {
            from { transform: rotate(0deg);   }
            to   { transform: rotate(360deg); }
        }
        @keyframes loaderMidRotate {
            0%   { transform: rotate(0deg);   }
            100% { transform: rotate(360deg); }
        }
        @keyframes loaderGlyphPulse {
            0%   { color: rgba(180,130,20,0.25); }
            100% { color: rgba(210,170,40,0.55); }
        }
        @keyframes loaderStarRotate {
            0%   { transform: rotate(0deg)   scale(1);    }
            25%  { transform: rotate(90deg)  scale(1.04); }
            50%  { transform: rotate(180deg) scale(1);    }
            75%  { transform: rotate(270deg) scale(1.04); }
            100% { transform: rotate(360deg) scale(1);    }
        }
        @keyframes loaderStarWrapPulse {
            0%,100% { filter: brightness(1);   }
            50%     { filter: brightness(1.3); }
        }
        @keyframes loaderCorePulse {
            0%,100% { transform: scale(1);   box-shadow: 0 0 8px #fff, 0 0 20px rgba(219,15,77,1), 0 0 40px rgba(219,15,77,0.6); }
            50%     { transform: scale(1.5); box-shadow: 0 0 12px #fff, 0 0 35px rgba(219,15,77,1), 0 0 70px rgba(219,15,77,0.5), 0 0 120px rgba(219,15,77,0.2); }
        }
        @keyframes loaderTitleShimmer {
            from { background-position: 200% center;  }
            to   { background-position: -200% center; }
        }
        @keyframes loaderProgressFill {
            0%   { width: 0%;   }
            30%  { width: 25%;  }
            60%  { width: 68%;  }
            85%  { width: 88%;  }
            100% { width: 100%; }
        }
        @keyframes loaderEyePulse {
            0%,100% { opacity: 0.4; transform: scale(1);    text-shadow: 0 0 6px rgba(180,120,20,0.4), 0 0 15px rgba(100,0,15,0.2); }
            30%     { opacity: 0.9; transform: scale(1.08); text-shadow: 0 0 14px rgba(200,150,20,0.7), 0 0 35px rgba(140,0,20,0.5); }
            60%     { opacity: 0.25; transform: scale(0.95); }
        }

        /* ─────────────────────────────────────────── */

        .fade-up { opacity: 0; transform: translateY(30px); transition: opacity 0.8s cubic-bezier(0.25, 1, 0.5, 1), transform 0.8s cubic-bezier(0.25, 1, 0.5, 1); }
        .fade-up.visible { opacity: 1; transform: translateY(0); }
        .delay-1 { transition-delay: 0.1s; }
        .delay-2 { transition-delay: 0.2s; }
        .delay-3 { transition-delay: 0.3s; }

        #cursor-wrap { position: fixed; top: 0; left: 0; width: 50px; height: 50px; pointer-events: none; z-index: 10001; transform: translate(-50%, -50%); opacity: 0; visibility: hidden; transition: opacity 0.3s; }
        #cursor-wrap.visible { opacity: 1; visibility: visible; }
        .cur-aura { position: absolute; top: 50%; left: 50%; width: 20px; height: 20px; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle, rgba(219,15,77,0.8) 0%, rgba(5,0,0,0.9) 60%, transparent 100%); filter: blur(4px); animation: auraPulse 3s ease-in-out infinite; }
        .cur-ring { position: absolute; top: 50%; left: 50%; width: 38px; height: 38px; border: 1.5px solid rgba(219,15,77,0.5); border-radius: 50%; transform: translate(-50%, -50%); box-shadow: 0 0 8px rgba(219,15,77,0.3), inset 0 0 8px rgba(219,15,77,0.3); transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
        .cur-core { position: absolute; top: 50%; left: 50%; width: 10px; height: 16px; transform: translate(-50%, -50%); background: linear-gradient(135deg, #ff4d79, var(--crimson)); clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); box-shadow: 0 0 10px var(--crimson); transition: all 0.3s ease; opacity: 1; }
        .cur-heart { position: absolute; top: 50%; left: 50%; width: 22px; height: 22px; transform: translate(-50%, -50%) scale(0); opacity: 0; transition: all 0.3s ease; }
        .cur-heart svg { width: 100%; height: 100%; fill: var(--crimson); filter: drop-shadow(0 0 2px rgba(219,15,77,0.5)); }
        #cursor-wrap.hover .cur-aura { width: 30px; height: 30px; background: radial-gradient(circle, rgba(219,15,77,0.6) 0%, rgba(219,15,77,0.3) 60%, transparent 100%); animation: auraPulseFast 0.8s ease-in-out infinite; }
        #cursor-wrap.hover .cur-ring { transform: translate(-50%, -50%) scale(0); opacity: 0; }
        #cursor-wrap.hover .cur-core { transform: translate(-50%, -50%) scale(0); opacity: 0; }
        #cursor-wrap.hover .cur-heart { transform: translate(-50%, -50%) scale(1); opacity: 1; animation: heartBeat 0.6s ease-in-out infinite alternate; }
        #cursor-wrap.clicking .cur-core { transform: translate(-50%, -50%) scale(0.2); }
        #cursor-wrap.clicking .cur-heart { transform: translate(-50%, -50%) scale(0.2); animation: none; }
        #cursor-wrap.clicking .cur-ring { transform: translate(-50%, -50%) scale(1.5); opacity: 0.5; animation: none; }
        .cursor-ripple { position: fixed; border-radius: 50%; pointer-events: none; z-index: 10000; transform: translate(-50%, -50%) scale(0); background: radial-gradient(circle, rgba(219,15,77,0.4) 0%, rgba(0,0,0,0.8) 50%, transparent 100%); border: 2px solid rgba(219,15,77,0.8); box-shadow: 0 0 20px rgba(219,15,77,0.5), inset 0 0 20px rgba(0,0,0,0.9); animation: darkRippleOut 0.7s cubic-bezier(0.165, 0.84, 0.44, 1) forwards; }

        .section-title {
            font-family: 'UnifrakturMaguntia', cursive; font-size: clamp(3rem, 7vw, 4.5rem); margin-bottom: 70px; letter-spacing: 10px; text-align: center;
            position: relative; display: inline-block; width: 100%;
            background: linear-gradient(90deg, var(--crimson), #fff 40%, var(--gold) 60%, var(--crimson)); background-size: 300% auto; -webkit-background-clip: text; background-clip: text; color: transparent; animation: titleFlow 5s linear infinite;
        }
        .section-title::before, .section-title::after { content: '✦'; font-family: 'Cinzel', serif; font-size: 0.5em; vertical-align: middle; margin: 0 20px; color: var(--gold); opacity: 0.7; -webkit-background-clip: unset; background-clip: unset; }
        .section-wrapper { text-align: center; padding-top: 80px; padding-bottom: 20px; }
        .section-divider { width: 60%; max-width: 600px; height: 1px; background: linear-gradient(to right, transparent, var(--gold-dim), var(--crimson-dim), var(--gold-dim), transparent); margin: -40px auto 80px; }

        .hero { position: relative; width: 100%; min-height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: center; overflow: hidden; padding-bottom: 80px; }
        .hero-ritual-circle { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); pointer-events: none; z-index: 5; }
        .ritual-ring { position: absolute; top: 50%; left: 50%; border-radius: 50%; border: 1px solid; transform: translate(-50%, -50%); }
        .ritual-ring-1 { width: 420px; height: 420px; border-color: rgba(209,173,63,0.07); animation: bgRingRotate 60s linear infinite; }
        .ritual-ring-2 { width: 520px; height: 520px; border-color: rgba(219,15,77,0.05); animation: bgRingRotate 80s linear infinite reverse; }
        .ritual-ring-3 { width: 620px; height: 620px; border-color: rgba(209,173,63,0.035); animation: bgRingRotate 100s linear infinite; }
        .hero-star-bg { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 300px; height: 300px; opacity: 0.04; animation: starPulse 7s ease-in-out infinite; pointer-events: none; z-index: 4; }
        .hero-text-box { position: relative; z-index: 20; text-align: center; padding: 20px; }
        .hero-incantation { font-family: 'Cinzel', serif; font-size: 0.72rem; color: rgba(209,173,63,0.45); letter-spacing: 10px; text-transform: uppercase; margin-bottom: 40px; display: flex; align-items: center; justify-content: center; gap: 20px; }
        .hero-incantation::before { content: ''; display: block; width: 80px; height: 1px; background: linear-gradient(to right, transparent, rgba(209,173,63,0.45)); }
        .hero-incantation::after { content: ''; display: block; width: 80px; height: 1px; background: linear-gradient(to left, transparent, rgba(209,173,63,0.45)); }
        .catchphrase { font-size: clamp(1.8rem, 5vw, 3rem); color: var(--text-color); letter-spacing: 8px; line-height: 1.7; text-shadow: 2px 2px 20px rgba(0,0,0,1); animation: glitchText 7s infinite; }
        .catchphrase span { font-size: clamp(2.5rem, 8vw, 4.5rem); display: inline-block; }
        .catchphrase .heal { color: var(--crimson); -webkit-text-stroke: 1.5px rgba(255,255,255,0.75); text-shadow: 0 0 12px rgba(255,255,255,0.5), 0 0 30px var(--crimson), 0 0 60px rgba(219,15,77,0.35), 2px 2px 0 rgba(0,0,0,0.95), -1px -1px 0 rgba(0,0,0,0.95); }
        .catchphrase .chaos { color: #050505; -webkit-text-stroke: 1px var(--gold); text-shadow: 0 0 25px rgba(219,15,77,0.9), 0 0 50px rgba(209,173,63,0.2); }
        .scroll-down { position: absolute; bottom: 50px; left: 0; right: 0; margin: 0 auto; width: fit-content; z-index: 20; display: flex; flex-direction: column; align-items: center; gap: 12px; }
        .scroll-down.fade-up { opacity: 0; animation: none; transform: translateY(20px); }
        .scroll-down.fade-up.visible { opacity: 1; transform: translateY(0); }
        .scroll-down span { color: rgba(209,173,63,0.5); font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 6px; text-transform: uppercase; }
        .scroll-diamond { width: 8px; height: 8px; border: 1px solid rgba(209,173,63,0.4); transform: rotate(45deg); animation: scrollDiamondBlink 2s infinite ease-in-out; }
        .scroll-down::after { content: ''; width: 1px; height: 50px; background: linear-gradient(to bottom, rgba(219,15,77,0.7) 0%, rgba(219,15,77,0.3) 50%, transparent 100%); animation: bloodDrip 2.5s cubic-bezier(0.45,0,0.55,1) infinite; }

        .profile-layout { display: flex; gap: 40px; max-width: 1400px; width: 92%; align-items: flex-start; background: rgba(15,5,5,0.75); backdrop-filter: blur(25px); border: 1px solid rgba(209,173,63,0.3); box-shadow: 0 20px 60px rgba(0,0,0,0.9); padding: 50px; position: relative; margin: 0 auto; scroll-margin-top: 60px; }
        .profile-layout::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: linear-gradient(to bottom, transparent, var(--crimson), transparent); }
        .corner-star { position: absolute; width: 20px; height: 20px; opacity: 0.35; }
        .corner-star svg { fill: var(--gold); }
        .corner-star.tl { top: -2px; left: -2px; } .corner-star.tr { top: -2px; right: -2px; }
        .corner-star.bl { bottom: -2px; left: -2px; } .corner-star.br { bottom: -2px; right: -2px; }
        .profile-visual-area { flex: 1.1; min-width: 350px; position: sticky; top: 120px; height: fit-content; margin-top: 20px; }
        .glitch-wrapper { position: relative; border-radius: 8px; border: 1px solid rgba(255,255,255,0.05); background: rgba(0,0,0,0.5); overflow: hidden; transition: all 0.3s ease; }
        .glitch-wrapper::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: repeating-linear-gradient(transparent, transparent 3px, rgba(219,15,77,0.15) 4px, rgba(219,15,77,0.15) 5px); opacity: 0; z-index: 5; pointer-events: none; transition: opacity 0.3s; }
        .glitch-wrapper:hover::before { opacity: 1; animation: scanline 1.5s linear infinite; }
        .glitch-wrapper:hover .full-body-img-box { animation: glitch-anim 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) infinite both; filter: drop-shadow(-3px 0 0 rgba(219,15,77,0.6)) drop-shadow(3px 0 0 rgba(209,173,63,0.6)); }
        .costume-indicators { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: row; gap: 20px; z-index: 10; background: rgba(0,0,0,0.8); backdrop-filter: blur(10px); padding: 12px 25px; border-radius: 50px; border: 1px solid rgba(209,173,63,0.3); box-shadow: 0 5px 20px rgba(0,0,0,0.8); }
        .indicator-wrap { display: flex; flex-direction: column; align-items: center; gap: 4px; background: transparent; border: none; color: rgba(209,173,63,0.5); font-family: 'Cinzel', serif; font-size: 0.7rem; transition: 0.3s; }
        .indicator-wrap .indicator-circle { width: 10px; height: 10px; border-radius: 2px; border: 1px solid rgba(209,173,63,0.5); transform: rotate(45deg); transition: 0.5s; }
        .indicator-wrap.active { color: var(--gold); }
        .indicator-wrap.active .indicator-circle { border-color: var(--crimson); background: var(--crimson); transform: rotate(225deg); box-shadow: 0 0 10px var(--crimson); }
        .full-body-img-box { width: 100%; height: 700px; display: flex; justify-content: center; align-items: center; transition: opacity 0.4s; }
        .channel-links { display: flex; gap: 15px; margin-top: 30px; justify-content: center; flex-wrap: nowrap; }
        .ch-link { display: inline-flex; align-items: center; gap: 8px; padding: 10px 20px; border-radius: 8px; font-family: 'Cinzel', serif; font-weight: bold; font-size: 1.1rem; text-decoration: none; color: rgba(255,255,255,0.7); background: rgba(10,0,5,0.6); border: 1px solid rgba(255,255,255,0.1); transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1); backdrop-filter: blur(5px); z-index: 10; white-space: nowrap; }
        .ch-link svg { width: 20px; height: 20px; fill: currentColor; transition: all 0.3s ease; }
        .ch-link.youtube { border-color: rgba(255, 0, 0, 0.3); }
        .ch-link.youtube:hover { background: rgba(255, 0, 0, 0.15); color: #fff; border-color: #ff0000; box-shadow: 0 0 20px rgba(255, 0, 0, 0.6), inset 0 0 10px rgba(255, 0, 0, 0.2); transform: translateY(-3px); text-shadow: 0 0 5px #fff; }
        .ch-link.youtube:hover svg { fill: #ff0000; filter: drop-shadow(0 0 8px #ff0000); }
        .ch-link.twitch { border-color: rgba(145, 70, 255, 0.3); }
        .ch-link.twitch:hover { background: rgba(145, 70, 255, 0.15); color: #fff; border-color: #9146FF; box-shadow: 0 0 20px rgba(145, 70, 255, 0.6), inset 0 0 10px rgba(145, 70, 255, 0.2); transform: translateY(-3px); text-shadow: 0 0 5px #fff; }
        .ch-link.twitch:hover svg { fill: #9146FF; filter: drop-shadow(0 0 8px #9146FF); }
        
        .youtube-wrap { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 10px; overflow: hidden; box-shadow: 0 5px 20px rgba(0,0,0,0.6); margin-top: 30px; border: 1px solid rgba(209,173,63,0.3); }
        .youtube-wrap iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }
        
        .profile-text-area { flex: 1.8; padding-left: 30px; display: flex; flex-direction: column; min-width: 0; }
        .profile-name-box { margin-bottom: 15px; display: block; width: 100%; }
        .profile-name-en { display: block; font-family: 'UnifrakturMaguntia', cursive; font-size: clamp(2.8rem, 5vw, 4.2rem); line-height: 1.1; background: linear-gradient(90deg, #fff, var(--gold), #8a6d1c, var(--gold), #fff); background-size: 300% auto; -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: 0 0 30px rgba(209,173,63,0.4); letter-spacing: 2px; margin: 0; animation: titleFlow 4s linear infinite; }
        .profile-name-ja { display: block; font-size: 1.2rem; font-family: 'Kaisei Decol', serif; letter-spacing: 8px; color: rgba(255,255,255,0.7); margin-top: 10px; }
        .profile-quote-sub-container { margin-bottom: 35px; margin-top: 15px; width: 100%; }
        .profile-quote-sub { font-size: 1.1rem; color: #fff; line-height: 2.2; font-family: 'Kaisei Decol', serif; letter-spacing: 1px; display: inline; background: linear-gradient(transparent 60%, rgba(219,15,77,0.6) 0%); -webkit-box-decoration-break: clone; box-decoration-break: clone; padding: 4px 10px; text-shadow: 0 1px 3px rgba(0,0,0,0.9); }
        .profile-tabs { display: flex; gap: 12px; margin-bottom: 25px; border-bottom: 1px solid rgba(209,173,63,0.2); padding-bottom: 12px; flex-wrap: wrap; }
        .tab-btn { background: rgba(209, 173, 63, 0.08); border: 1px solid rgba(209, 173, 63, 0.4); color: rgba(224,224,224,0.8); font-family: 'Cinzel', serif; font-size: 0.95rem; padding: 10px 20px; border-radius: 5px 5px 0 0; display: flex; align-items: center; gap: 10px; transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1); position: relative; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
        .tab-btn svg { width: 18px; height: 18px; fill: currentColor; }
        .tab-btn:hover { color: var(--gold); border-color: var(--gold); background: rgba(209,173,63,0.15); transform: translateY(-3px); box-shadow: 0 8px 15px rgba(0,0,0,0.6), 0 0 10px rgba(209,173,63,0.2); }
        .tab-btn.active { color: var(--gold); border-color: var(--gold); background: rgba(219,15,77,0.15); transform: translateY(0); box-shadow: inset 0 0 10px rgba(0,0,0,0.5); }
        .tab-btn.active::after { content: ''; position: absolute; bottom: -13px; left: 0; width: 100%; height: 2px; background: var(--crimson); box-shadow: 0 0 10px var(--crimson); }
        .tab-content { display: none; animation: fadeInTab 0.5s ease forwards; }
        .tab-content.active { display: block; line-height: 2.2; font-size: 1.1rem; }
        .tab-content p { margin-bottom: 1.4em; text-wrap: pretty; word-break: auto-phrase; }
        .tab-content p:last-child { margin-bottom: 0; }
        .profile-basic-info { display: flex; gap: 35px; flex-wrap: wrap; margin-bottom: 1.8em; }
        .info-item { display: flex; align-items: baseline; gap: 8px; }
        .info-label { color: var(--gold); font-size: 0.9rem; opacity: 0.9; }
        .info-value { color: #fff; font-size: 1.2rem; letter-spacing: 2px; font-weight: bold; }
        .profile-data-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 30px; }
        .likes-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
        .likes-tags span { background: rgba(10,0,0,0.6); border: 1px solid rgba(209,173,63,0.4); color: var(--text-color); padding: 6px 16px; border-radius: 20px; font-size: 0.9rem; transition: 0.3s; }
        .likes-tags span:hover { border-color: var(--gold); background: rgba(209,173,63,0.15); }
        .wish-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; margin-top: 15px; }
        .wish-item { display: flex; flex-direction: column; text-decoration: none; background: rgba(255,255,255,0.025); border: 1px solid rgba(209,173,63,0.2); color: var(--text-color); padding: 25px; border-radius: 12px; transition: 0.4s; }
        .wish-item:hover { border-color: var(--crimson); transform: translateY(-5px); background: rgba(219,15,77,0.08); box-shadow: 0 10px 40px rgba(0,0,0,0.6); }
        .wish-item .service-name { display: flex; align-items: center; gap: 12px; font-family: 'Cinzel', serif; font-size: 1.6rem; color: var(--gold); margin-bottom: 10px; }
        .wish-item .service-name svg { width: 26px; height: 26px; flex-shrink: 0; fill: var(--crimson); }
        /* ── クラウドファンディングバナー ── */
        .campfire-banner {
            position: relative;
            margin: 40px auto 0;
            max-width: 820px;
            width: 90%;
            z-index: 10;
        }
        .campfire-banner-inner {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 14px;
            text-decoration: none;
            padding: 28px 40px;
            border-radius: 18px;
            background: linear-gradient(135deg,
                rgba(5, 0, 12, 0.92) 0%,
                rgba(15, 2, 20, 0.95) 50%,
                rgba(5, 0, 12, 0.92) 100%);
            border: 1px solid rgba(209,173,63,0.5);
            box-shadow:
                0 0 0 1px rgba(0,0,0,0.8),
                0 0 30px rgba(209,173,63,0.15),
                0 0 60px rgba(219,15,77,0.08),
                inset 0 0 40px rgba(0,0,0,0.5);
            transition: all 0.45s cubic-bezier(0.25,1,0.5,1);
            overflow: hidden;
            position: relative;
        }
        .campfire-banner-inner::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(135deg,
                rgba(209,173,63,0.06) 0%,
                rgba(219,15,77,0.04) 50%,
                rgba(209,173,63,0.06) 100%);
            opacity: 0;
            transition: opacity 0.4s ease;
        }
        .campfire-banner-inner:hover::before { opacity: 1; }
        .campfire-banner-inner:hover {
            border-color: rgba(209,173,63,0.85);
            box-shadow:
                0 0 0 1px rgba(0,0,0,0.8),
                0 0 50px rgba(209,173,63,0.3),
                0 0 100px rgba(219,15,77,0.15),
                0 20px 60px rgba(0,0,0,0.8),
                inset 0 0 40px rgba(0,0,0,0.4);
            transform: translateY(-4px);
        }
        .campfire-badge {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            background: linear-gradient(90deg, rgba(219,15,77,0.9), rgba(180,5,50,0.9));
            color: #fff;
            font-family: 'Cinzel', serif;
            font-size: 0.72rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            padding: 5px 16px;
            border-radius: 20px;
            box-shadow: 0 0 15px rgba(219,15,77,0.5);
            animation: tagPulse 2.5s infinite ease-in-out;
        }
        .campfire-badge::before { content: '✦'; }
        .campfire-text {
            text-align: center;
            font-family: 'Kaisei Decol', serif;
            font-size: clamp(1.05rem, 2.2vw, 1.35rem);
            line-height: 1.85;
            letter-spacing: 2px;
            color: rgba(240,220,160,0.95);
            text-shadow: 0 0 20px rgba(209,173,63,0.4);
            position: relative;
            z-index: 1;
        }
        .campfire-period {
            font-family: 'Cinzel', serif;
            font-size: 0.8rem;
            letter-spacing: 4px;
            color: rgba(209,173,63,0.65);
            border: 1px solid rgba(209,173,63,0.2);
            padding: 4px 20px;
            border-radius: 20px;
            background: rgba(209,173,63,0.05);
        }
        .campfire-enter {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            font-family: 'Cinzel', serif;
            font-size: 0.85rem;
            letter-spacing: 4px;
            color: rgba(209,173,63,0.7);
            text-transform: uppercase;
            transition: color 0.3s, letter-spacing 0.3s;
        }
        .campfire-banner-inner:hover .campfire-enter {
            color: rgba(209,173,63,1);
            letter-spacing: 6px;
        }
        .campfire-enter::after {
            content: '→';
            transition: transform 0.3s;
        }
        .campfire-banner-inner:hover .campfire-enter::after { transform: translateX(5px); }
        /* 左右の装飾ライン */
        .campfire-deco-line {
            position: absolute;
            top: 0; bottom: 0;
            width: 2px;
            background: linear-gradient(to bottom, transparent, rgba(209,173,63,0.5), rgba(219,15,77,0.4), transparent);
        }
        .campfire-deco-line.left  { left: 18px; }
        .campfire-deco-line.right { right: 18px; }

        /* ── Ci-en バナー ── */
        .cien-banner-inner {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 14px;
            text-decoration: none;
            padding: 40px;
            border-radius: 18px;
            background: linear-gradient(135deg, rgba(5, 0, 12, 0.92) 0%, rgba(18, 2, 25, 0.95) 50%, rgba(5, 0, 12, 0.92) 100%);
            border: 1px solid rgba(219,15,77,0.45);
            box-shadow: 0 0 0 1px rgba(0,0,0,0.8), 0 0 30px rgba(219,15,77,0.12), 0 0 60px rgba(209,173,63,0.06), inset 0 0 40px rgba(0,0,0,0.5);
            transition: all 0.45s cubic-bezier(0.25,1,0.5,1);
            position: relative;
            overflow: hidden;
            width: 100%;
            box-sizing: border-box;
        }
        .cien-shimmer {
            position: absolute;
            top: 0; left: -100%; width: 50%; height: 100%;
            background: linear-gradient(90deg, transparent, rgba(219,15,77,0.05), rgba(255,255,255,0.03), transparent);
            transition: left 0.8s ease;
            pointer-events: none;
        }
        .cien-banner-inner:hover .cien-shimmer { left: 150%; }
        .cien-deco-line {
            position: absolute;
            top: 0; bottom: 0;
            width: 2px;
            background: linear-gradient(to bottom, transparent, rgba(219,15,77,0.45), rgba(209,173,63,0.35), transparent);
        }
        .cien-deco-line.left  { left: 18px; }
        .cien-deco-line.right { right: 18px; }
        .cien-badge {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            background: linear-gradient(90deg, rgba(219,15,77,0.9), rgba(180,5,50,0.9));
            color: #fff;
            font-family: 'Cinzel', serif;
            font-size: 0.72rem;
            font-weight: bold;
            letter-spacing: 3px;
            text-transform: uppercase;
            padding: 5px 16px;
            border-radius: 20px;
            box-shadow: 0 0 15px rgba(219,15,77,0.4);
        }
        .cien-banner-inner:hover {
            border-color: rgba(219,15,77,0.8);
            box-shadow: 0 0 0 1px rgba(0,0,0,0.8), 0 0 50px rgba(219,15,77,0.25), 0 0 100px rgba(209,173,63,0.1), 0 20px 60px rgba(0,0,0,0.8), inset 0 0 40px rgba(0,0,0,0.4);
            transform: translateY(-4px);
        }
        .cien-banner-inner .banner-title {
            font-family: 'Cinzel', serif;
            font-size: 2.8rem;
            letter-spacing: 8px;
            color: #fff;
            text-shadow: 0 0 15px rgba(219,15,77,0.7), 0 0 40px rgba(219,15,77,0.3);
            margin: 0;
            position: relative;
        }
        .cien-banner-inner .banner-sub {
            font-family: 'Kaisei Decol', serif;
            font-size: 1.1rem;
            color: rgba(240,220,160,0.9);
            letter-spacing: 2px;
        }
        .cien-enter {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            font-family: 'Cinzel', serif;
            font-size: 0.85rem;
            letter-spacing: 4px;
            color: rgba(219,15,77,0.7);
            text-transform: uppercase;
            transition: color 0.3s, letter-spacing 0.3s;
        }
        .cien-banner-inner:hover .cien-enter {
            color: rgba(219,15,77,1);
            letter-spacing: 6px;
        }
        .cien-enter::after {
            content: '→';
            transition: transform 0.3s;
        }
        .cien-banner-inner:hover .cien-enter::after { transform: translateX(5px); }

        /* ── Game バナー ── */
        .game-banner-inner {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            text-decoration: none;
            padding: 80px 40px;
            border-radius: 18px;
            border: 1px solid rgba(219,15,77,0.5);
            box-shadow: 0 0 0 1px rgba(0,0,0,0.8), 0 0 30px rgba(219,15,77,0.15), 0 0 60px rgba(219,15,77,0.08), inset 0 0 40px rgba(0,0,0,0.5);
            position: relative;
            overflow: hidden;
            width: 100%;
            box-sizing: border-box;
            background-color: #050005;
            transition: all 0.45s cubic-bezier(0.25,1,0.5,1);
        }
        .game-banner-inner:hover {
            border-color: rgba(219,15,77,0.85);
            box-shadow: 0 0 0 1px rgba(0,0,0,0.8), 0 0 50px rgba(219,15,77,0.3), 0 0 100px rgba(209,173,63,0.12), 0 20px 60px rgba(0,0,0,0.8), inset 0 0 40px rgba(0,0,0,0.4);
            transform: translateY(-4px);
        }
        .game-banner-bg {
            position: absolute;
            top: 0; left: 0; width: 100%; height: 100%;
            background-image: url('https://sharnoth0.github.io/images/%E5%91%8A%E7%9F%A5%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88%E3%83%A9%E3%83%95%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8.png');
            background-size: cover;
            background-position: center;
            opacity: 0.5;
            z-index: 0;
            transition: transform 0.8s ease, opacity 0.8s ease;
        }
        .game-banner-inner:hover .game-banner-bg {
            transform: scale(1.05);
            opacity: 0.7;
        }
        .game-banner-content {
            position: relative;
            z-index: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 15px;
            background: rgba(10, 0, 15, 0.7);
            padding: 25px 50px;
            border-radius: 12px;
            backdrop-filter: blur(4px);
            border: 1px solid rgba(219,15,77,0.3);
            box-shadow: 0 10px 30px rgba(0,0,0,0.8);
        }
        .game-banner-inner .banner-title {
            font-family: 'Cinzel', serif;
            font-size: clamp(2rem, 5vw, 3rem);
            letter-spacing: 8px;
            color: #fff;
            text-shadow: 0 0 15px rgba(219,15,77,0.9), 0 0 30px var(--crimson);
            margin: 0;
        }
        .game-banner-inner .banner-sub {
            font-family: 'Kaisei Decol', serif;
            font-size: clamp(1rem, 2.5vw, 1.2rem);
            color: rgba(240,220,160,0.95);
            letter-spacing: 4px;
            text-shadow: 0 2px 4px rgba(0,0,0,0.9);
        }

        .stream-tags-section { margin-top: 40px; }
        .stream-tags { display: flex; flex-wrap: wrap; gap: 15px; margin-top: 18px; align-items: center; }
        .stream-tag { background: rgba(10,0,0,0.6); border: 1px solid var(--gold-dim); color: var(--text-color); padding: 8px 18px; border-radius: 20px; font-size: 0.95rem; letter-spacing: 1px; transition: background 0.3s, color 0.3s, border-color 0.3s, box-shadow 0.3s, text-shadow 0.3s; position: relative; display: inline-flex; align-items: center; z-index: 10; }
        .stream-tag:hover { background: rgba(219,15,77,0.15); color: #fff; border-color: var(--crimson); box-shadow: 0 0 15px rgba(219,15,77,0.8), inset 0 0 10px rgba(219,15,77,0.3); text-shadow: 0 0 5px #fff; z-index: 100; }
        #kuenaden-trigger, #art-trigger { border-color: var(--gold); color: var(--gold); font-weight: bold; animation: tagGlow 2.5s infinite ease-in-out; }
        #kuenaden-trigger:hover, #art-trigger:hover { background: var(--crimson); color: #fff; border-color: var(--crimson); box-shadow: 0 0 20px var(--crimson); animation: none; transition: background 0.1s, color 0.1s, border-color 0.1s, box-shadow 0.1s; }
        .click-hint { display: inline-block; font-size: 0.7rem; font-family: 'Cinzel', serif; margin-left: 8px; background: var(--crimson); color: #fff; padding: 2px 8px; border-radius: 12px; box-shadow: 0 0 10px rgba(219,15,77,0.6); animation: bounceHint 1.5s infinite; }
        .stream-tag::after { content: attr(data-desc); position: absolute; top: 130%; left: 50%; transform: translateX(-50%); background: rgba(5, 0, 5, 0.98); border: 1px solid var(--gold); color: #fff; padding: 10px 18px; border-radius: 8px; font-size: 0.85rem; white-space: nowrap; opacity: 0; visibility: hidden; transition: opacity 0.25s ease, visibility 0.25s ease; box-shadow: 0 10px 25px rgba(0,0,0,1), 0 0 10px rgba(209,173,63,0.3); pointer-events: none; z-index: 10000; backdrop-filter: blur(10px); letter-spacing: 1px; }
        .stream-tag::before { content: ''; position: absolute; top: 110%; left: 50%; transform: translateX(-50%); border-width: 7px; border-style: solid; border-color: transparent transparent var(--gold) transparent; opacity: 0; visibility: hidden; transition: opacity 0.25s ease, visibility 0.25s ease; pointer-events: none; z-index: 10000; }
        .stream-tag:hover::after, .stream-tag:hover::before { opacity: 1; visibility: visible; }

        /* ── BOOTH バナー ── */
        .booth-banner-inner {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 14px;
            text-decoration: none;
            padding: 40px;
            border-radius: 18px;
            background: linear-gradient(135deg, rgba(5, 0, 12, 0.92) 0%, rgba(15, 2, 20, 0.95) 50%, rgba(5, 0, 12, 0.92) 100%);
            border: 1px solid rgba(209,173,63,0.5);
            box-shadow: 0 0 0 1px rgba(0,0,0,0.8), 0 0 30px rgba(209,173,63,0.15), 0 0 60px rgba(219,15,77,0.08), inset 0 0 40px rgba(0,0,0,0.5);
            transition: all 0.45s cubic-bezier(0.25,1,0.5,1);
            position: relative;
            overflow: hidden;
            width: 100%;
            box-sizing: border-box;
        }
        .booth-shimmer {
            position: absolute;
            top: 0; left: -100%; width: 50%; height: 100%;
            background: linear-gradient(90deg, transparent, rgba(209,173,63,0.06), rgba(255,255,255,0.03), transparent);
            transition: left 0.8s ease;
            pointer-events: none;
        }
        .booth-banner-inner:hover .booth-shimmer { left: 150%; }
        .booth-deco-line {
            position: absolute;
            top: 0; bottom: 0;
            width: 2px;
            background: linear-gradient(to bottom, transparent, rgba(209,173,63,0.5), rgba(219,15,77,0.4), transparent);
        }
        .booth-deco-line.left  { left: 18px; }
        .booth-deco-line.right { right: 18px; }
        .booth-badge {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            background: linear-gradient(90deg, rgba(209,173,63,0.85), rgba(180,140,30,0.85));
            color: #000;
            font-family: 'Cinzel', serif;
            font-size: 0.72rem;
            font-weight: bold;
            letter-spacing: 3px;
            text-transform: uppercase;
            padding: 5px 16px;
            border-radius: 20px;
            box-shadow: 0 0 15px rgba(209,173,63,0.4);
        }
        .booth-banner-inner:hover {
            border-color: rgba(209,173,63,0.85);
            box-shadow: 0 0 0 1px rgba(0,0,0,0.8), 0 0 50px rgba(209,173,63,0.3), 0 0 100px rgba(219,15,77,0.15), 0 20px 60px rgba(0,0,0,0.8), inset 0 0 40px rgba(0,0,0,0.4);
            transform: translateY(-4px);
        }
        .booth-banner-inner .banner-title {
            font-family: 'Cinzel', serif;
            font-size: 2.8rem;
            letter-spacing: 8px;
            color: #fff;
            text-shadow: 0 0 15px rgba(209,173,63,0.7), 0 0 40px rgba(209,173,63,0.3);
            margin: 0;
            position: relative;
        }
        .booth-banner-inner .banner-sub {
            font-family: 'Kaisei Decol', serif;
            font-size: 1.1rem;
            color: rgba(240,220,160,0.9);
            letter-spacing: 2px;
        }
        .booth-enter {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            font-family: 'Cinzel', serif;
            font-size: 0.85rem;
            letter-spacing: 4px;
            color: rgba(209,173,63,0.7);
            text-transform: uppercase;
            transition: color 0.3s, letter-spacing 0.3s;
        }
        .booth-banner-inner:hover .booth-enter {
            color: rgba(209,173,63,1);
            letter-spacing: 6px;
        }
        .booth-enter::after {
            content: '→';
            transition: transform 0.3s;
        }
        .booth-banner-inner:hover .booth-enter::after { transform: translateX(5px); }

        .floating-nav {
            position: fixed;
            bottom: 32px; left: 50%; transform: translateX(-50%);
            z-index: 9000;
            animation: nyrDrift 8s ease-in-out infinite;
            transition:
                left 0.65s cubic-bezier(0.25, 1, 0.5, 1),
                transform 0.65s cubic-bezier(0.25, 1, 0.5, 1),
                bottom 0.65s cubic-bezier(0.25, 1, 0.5, 1),
                border-radius 0.65s ease,
                padding 0.5s ease;
        }
        .floating-nav::before {
            content: '';
            position: absolute; inset: 0;
            border-radius: inherit;
            background: linear-gradient(135deg,
                rgba(8, 2, 14, 0.96) 0%,
                rgba(4, 0, 8, 0.98) 50%,
                rgba(10, 2, 4, 0.96) 100%);
            border: 1px solid rgba(180, 140, 30, 0.28);
            box-shadow:
                0 0 0 1px rgba(0, 0, 0, 0.95),
                0 12px 45px rgba(0, 0, 0, 0.95),
                0 4px 15px rgba(0, 0, 0, 0.9),
                inset 0 1px 0 rgba(200, 155, 30, 0.08),
                inset 0 0 25px rgba(0, 0, 0, 0.7),
                0 0 30px rgba(130, 0, 20, 0.06);
            backdrop-filter: blur(24px) saturate(0.6);
            -webkit-backdrop-filter: blur(24px) saturate(0.6);
            transition: border-color 0.5s ease, box-shadow 0.5s ease;
            pointer-events: none; z-index: 0;
        }
        .floating-nav::after {
            content: '𓂀';
            position: absolute;
            top: -22px; left: 50%; transform: translateX(-50%);
            font-size: 0.9rem;
            color: rgba(200, 150, 30, 0.4);
            text-shadow:
                0 0 8px rgba(180, 120, 20, 0.5),
                0 0 20px rgba(130, 0, 20, 0.3);
            animation: pharaohEyePulse 5s ease-in-out infinite;
            pointer-events: none;
        }
        .floating-nav:hover::before {
            border-color: rgba(200, 155, 30, 0.45);
            box-shadow:
                0 0 0 1px rgba(0, 0, 0, 0.95),
                0 16px 55px rgba(0, 0, 0, 0.98),
                0 0 40px rgba(120, 0, 20, 0.12),
                0 0 20px rgba(180, 130, 20, 0.08),
                inset 0 1px 0 rgba(200, 160, 30, 0.14),
                inset 0 0 30px rgba(0, 0, 0, 0.65);
        }
        .floating-nav:hover::after {
            color: rgba(210, 165, 40, 0.85);
            text-shadow:
                0 0 14px rgba(210, 160, 25, 0.9),
                0 0 35px rgba(170, 90, 10, 0.6),
                0 0 55px rgba(130, 0, 20, 0.4);
        }
        .floating-nav ul { list-style: none; padding: 5px 10px; margin: 0; display: flex; gap: 0; position: relative; z-index: 2; flex-direction: row; transition: gap 0.45s ease; }
        .floating-nav li { position: relative; z-index: 2; }
        .floating-nav li:not(:last-child)::after {
            content: '';
            position: absolute; right: 0; top: 20%; bottom: 20%;
            width: 1px;
            background: linear-gradient(to bottom, transparent, rgba(180, 130, 20, 0.2) 30%, rgba(130, 0, 20, 0.14) 70%, transparent);
            pointer-events: none;
            animation: sepBreath 6s ease-in-out infinite;
        }
        .floating-nav a {
            font-family: 'Cinzel', serif; font-size: 0.88rem; letter-spacing: 2.5px; text-transform: uppercase;
            color: var(--nyr-text-rest); text-decoration: none; padding: 12px 22px;
            display: flex; align-items: center; gap: 7px; border-radius: 6px;
            position: relative; overflow: hidden;
            transition: color 0.4s ease, letter-spacing 0.4s ease, text-shadow 0.4s ease;
            white-space: nowrap; /* 2行になるのを防ぐ */
        }
        .floating-nav a .nav-rune { display: inline-flex; align-items: center; justify-content: center; width: 14px; height: 14px; flex-shrink: 0; opacity: 0.35; transition: opacity 0.4s ease, transform 0.6s cubic-bezier(0.25, 1, 0.5, 1), filter 0.4s ease; animation: navStarIdle 4s ease-in-out infinite; }
        .floating-nav a .nav-rune svg { width: 100%; height: 100%; fill: rgba(200, 160, 40, 0.8); filter: drop-shadow(0 0 2px rgba(180, 120, 20, 0.3)); transition: fill 0.4s ease, filter 0.4s ease; }
        @keyframes navStarIdle { 0%,100%{transform:scale(1) rotate(0deg);} 50%{transform:scale(1.15) rotate(45deg);} }
        .floating-nav a::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(100, 0, 15, 0.22) 0%, rgba(60, 0, 8, 0.12) 40%, transparent 100%); transform: translateY(100%); transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1); border-radius: 6px; pointer-events: none; z-index: -1; }
        .floating-nav a::after { content: ''; position: absolute; bottom: 4px; left: 15%; right: 15%; height: 1px; background: linear-gradient(90deg, transparent, rgba(200, 150, 30, 0.65) 30%, rgba(160, 0, 25, 0.55) 70%, transparent); transform: scaleX(0); transform-origin: center; transition: transform 0.45s cubic-bezier(0.25, 1, 0.5, 1); pointer-events: none; }
        .floating-nav a:hover { color: var(--nyr-text-hover); letter-spacing: 3px; text-shadow: 0 0 8px rgba(210, 165, 40, 0.7), 0 0 20px rgba(190, 130, 20, 0.35), 0 0 35px rgba(130, 0, 20, 0.25); }
        .floating-nav a:hover::before  { transform: translateY(0); }
        .floating-nav a:hover::after   { transform: scaleX(1); }
        .floating-nav a:hover .nav-rune { opacity: 1; transform: rotate(180deg) scale(1.3); filter: drop-shadow(0 0 6px rgba(210, 165, 35, 0.8)); animation: none; }
        .floating-nav a:hover .nav-rune svg { fill: rgba(240, 200, 60, 1); filter: drop-shadow(0 0 4px rgba(219, 15, 77, 0.5)); }
        .floating-nav a.active { color: rgba(220, 185, 80, 0.92); text-shadow: 0 0 6px rgba(200, 155, 30, 0.55), 0 0 18px rgba(180, 110, 15, 0.3); }
        .floating-nav a.active .nav-rune { opacity: 0.7; }
        .floating-nav a.active .nav-rune svg { fill: rgba(210, 170, 40, 0.95); filter: drop-shadow(0 0 4px rgba(200, 150, 30, 0.5)); }
        .floating-nav a.active::after { transform: scaleX(0.7); }
        .nav-slider { position: absolute; background: radial-gradient(ellipse at 50% 70%, rgba(100, 0, 18, 0.18) 0%, rgba(55, 0, 8, 0.10) 50%, transparent 100%); border: 1px solid rgba(180, 130, 20, 0.2); border-radius: 6px; transition: all 0.45s cubic-bezier(0.25, 1, 0.5, 1); z-index: 1; pointer-events: none; box-shadow: 0 2px 12px rgba(100, 0, 15, 0.15), inset 0 0 10px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(0, 0, 0, 0.6); }
        .floating-nav.corner-nav { left: 100%; bottom: 40px; transform: translateX(calc(-100% - 28px)); border-radius: 10px; animation: none; }
        .floating-nav.corner-nav::after { display: none; }
        .floating-nav.corner-nav::before { background: linear-gradient(160deg, rgba(8,2,14,0.92) 0%, rgba(4,0,8,0.95) 100%); border-color: rgba(180,140,30,0.18); box-shadow: 0 0 0 1px rgba(0,0,0,0.95), 0 6px 20px rgba(0,0,0,0.8), inset 0 0 15px rgba(0,0,0,0.6); }
        .floating-nav.corner-nav ul { flex-direction: column; gap: 0; padding: 6px 4px; }
        .floating-nav.corner-nav li:not(:last-child)::after { content: ''; position: absolute; right: unset; top: unset; bottom: 0; left: 15%; width: 70%; height: 1px; background: linear-gradient(90deg, transparent, rgba(180,130,20,0.14) 50%, transparent); }
        .floating-nav.corner-nav a { padding: 10px 18px; font-size: 0.83rem; }
        .floating-nav.corner-nav:hover { transform: translateX(calc(-100% - 28px)) translateY(-3px); }
        .floating-nav:hover:not(.corner-nav) { transform: translateX(-50%) translateY(-5px); animation-play-state: paused; }

        #goods, #game, #ci-en { padding-top: 60px; padding-bottom: 40px; }
        .media-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; width: 92%; max-width: 1200px; margin: 0 auto; align-items: flex-start; }
        .media-item { display: flex; flex-direction: column; background: rgba(15,5,5,0.7); backdrop-filter: blur(10px); padding: 30px; border-radius: 15px; text-align: center; border: 1px solid rgba(209,173,63,0.2); box-shadow: 0 10px 30px rgba(0,0,0,0.8); flex: 1; min-width: 0; overflow: hidden; }
        .modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.9); backdrop-filter: blur(10px); z-index: 9500; display: flex; justify-content: center; align-items: center; opacity: 0; visibility: hidden; transition: all 0.4s ease; }
        .modal-overlay.active { opacity: 1; visibility: visible; }
        .modal-content { background: rgba(15,5,5,0.98); border: 1px solid var(--gold); padding: 40px 30px; border-radius: 15px; max-width: 550px; width: 90%; max-height: 90vh; overflow-y: auto; position: relative; box-shadow: 0 0 50px rgba(219,15,77,0.4); }
        .modal-close { position: absolute; top: 15px; right: 15px; color: var(--gold); background: transparent; border: none; padding: 5px; display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: all 0.3s ease; }
        .modal-close svg { width: 28px; height: 28px; }
        .modal-close:hover { background: rgba(219,15,77,0.15); color: var(--crimson); transform: rotate(90deg); }

        @media (max-width: 1100px) {
            .profile-layout { flex-direction: column; padding: 30px; width: 90%; }
            .profile-visual-area { position: static; width: 100%; min-width: auto; margin-top: 0; }
            .full-body-img-box { height: 500px; }
            .profile-text-area { padding-left: 0; margin-top: 35px; }
            .media-grid { grid-template-columns: 1fr; }
            .ritual-ring-1, .ritual-ring-2, .ritual-ring-3 { display: none; }
        }
        @media (max-width: 900px) {
            .floating-nav { bottom: 18px; }
            .floating-nav a { padding: 9px 14px; font-size: 0.79rem; letter-spacing: 2px; }
            .floating-nav.corner-nav { transform: translateX(calc(-100% - 14px)); bottom: 18px; }
            .floating-nav.corner-nav:hover { transform: translateX(calc(-100% - 14px)) translateY(-3px); }
        }
        @media (max-width: 400px) {
            .channel-links { flex-wrap: wrap; }
            .ch-link { width: 100%; justify-content: center; }
        }

        /* ══ 依頼モーダル ══ */
        .inquiry-overlay { align-items: flex-end; padding: 0; }
        @media(min-width:768px){ .inquiry-overlay { align-items: center; padding: 20px; } }

        .inquiry-modal-wrap {
            position: relative;
            width: 100%; max-width: 800px;
            max-height: 92vh;
            background: linear-gradient(160deg, rgba(6,1,12,0.99) 0%, rgba(4,0,8,0.99) 100%);
            border: 1px solid rgba(209,173,63,0.3);
            border-radius: 20px 20px 0 0;
            overflow: hidden;
            display: flex; flex-direction: column;
            box-shadow: 0 -10px 60px rgba(0,0,0,0.9), 0 0 80px rgba(219,15,77,0.06);
        }
        @media(min-width:768px){
            .inquiry-modal-wrap { border-radius: 20px; max-height: 88vh; }
        }
        .inquiry-close {
            position: absolute; top: 16px; right: 16px; z-index: 10;
            color: rgba(209,173,63,0.6); background: rgba(0,0,0,0.5);
            border: 1px solid rgba(209,173,63,0.2); border-radius: 50%;
            width: 36px; height: 36px; display: flex; align-items: center; justify-content: center;
        }
        .inquiry-close:hover { color: var(--gold); border-color: var(--gold); }

        .inq-header {
            text-align: center; padding: 28px 60px 18px;
            background: linear-gradient(to bottom, rgba(15,2,25,0.8), transparent);
            flex-shrink: 0;
        }
        .inq-header-deco { font-size: 1.2rem; color: rgba(209,173,63,0.35); margin-bottom: 6px; }
        .inq-title {
            font-family: 'Cinzel', serif; font-size: clamp(1.3rem,3vw,1.9rem);
            letter-spacing: 6px; color: var(--gold); margin: 0;
        }
        .inq-subtitle { font-size: 0.78rem; color: rgba(200,175,110,0.5); letter-spacing: 2px; margin-top: 6px; }

        .inq-tabs {
            display: flex; gap: 0; flex-shrink: 0;
            border-bottom: 1px solid rgba(209,173,63,0.15);
            padding: 0 24px; overflow-x: auto;
        }
        .inq-tab {
            display: flex; align-items: center; gap: 6px;
            font-family: 'Cinzel', serif; font-size: 0.78rem; letter-spacing: 2px;
            color: rgba(190,175,155,0.4); padding: 12px 20px;
            border-bottom: 2px solid transparent; white-space: nowrap;
            transition: all 0.3s; background: none; border-top: none; border-left: none; border-right: none;
            cursor: none !important;
        }
        .inq-tab:hover { color: rgba(209,173,63,0.8); }
        .inq-tab.active { color: var(--gold); border-bottom-color: var(--crimson); }

        .inq-body {
            flex: 1; overflow-y: auto; padding: 24px 28px 8px;
        }
        .inq-body::-webkit-scrollbar { width: 5px; }
        .inq-body::-webkit-scrollbar-thumb { background: rgba(209,173,63,0.3); border-radius: 3px; }

        .inq-panel { display: none; }
        .inq-panel.active { display: block; }

        .inq-panel-desc { color: rgba(200,185,155,0.75); font-size: 0.9rem; line-height: 2.0; margin-bottom: 16px; }

        .inq-notice {
            display: flex; gap: 8px; align-items: flex-start;
            background: rgba(209,173,63,0.06); border: 1px solid rgba(209,173,63,0.2);
            border-left: 3px solid var(--gold); border-radius: 8px;
            padding: 12px 16px; font-size: 0.82rem; color: rgba(209,173,63,0.8);
            line-height: 1.7; margin-bottom: 18px;
        }

        .inq-service-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 24px; }

        .inq-service-row {
            display: grid; grid-template-columns: 24px 1fr auto;
            align-items: center; gap: 14px;
            padding: 14px 16px; border-radius: 10px;
            border: 1px solid rgba(209,173,63,0.12);
            background: rgba(5,0,10,0.5);
            transition: all 0.3s; cursor: none !important;
        }
        .inq-service-row:hover { border-color: rgba(209,173,63,0.35); background: rgba(209,173,63,0.04); }
        .inq-service-row:has(input:checked) {
            border-color: rgba(219,15,77,0.5);
            background: rgba(219,15,77,0.06);
            box-shadow: 0 0 16px rgba(219,15,77,0.08);
        }

        /* カスタムチェックボックス */
        .inq-cb { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; flex-shrink: 0;
            border: 1px solid rgba(209,173,63,0.4); border-radius: 4px; background: rgba(5,0,10,0.8);
            position: relative; transition: all 0.2s; cursor: none !important;
        }
        .inq-cb:checked { background: var(--crimson); border-color: var(--crimson); box-shadow: 0 0 8px rgba(219,15,77,0.5); }
        .inq-cb:checked::after {
            content: ''; position: absolute; left: 5px; top: 2px;
            width: 5px; height: 9px; border: 2px solid #fff;
            border-top: none; border-left: none; transform: rotate(45deg);
        }

        .inq-service-info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
        .inq-service-name { font-size: 0.95rem; color: rgba(230,215,180,0.9); letter-spacing: 0.5px; line-height: 1.4; }
        .inq-service-detail { font-size: 0.75rem; color: rgba(180,160,120,0.5); letter-spacing: 0.5px; line-height: 1.5; }

        .inq-price-badge {
            font-family: 'Cinzel', serif; font-size: 0.8rem; letter-spacing: 1px;
            color: rgba(209,173,63,0.85); white-space: nowrap;
            background: rgba(209,173,63,0.08); border: 1px solid rgba(209,173,63,0.25);
            padding: 4px 10px; border-radius: 6px;
        }
        .inq-price-badge.consult { color: rgba(180,160,120,0.6); background: rgba(180,160,120,0.06); border-color: rgba(180,160,120,0.2); }
        .inq-price-badge.add { color: rgba(219,15,77,0.8); background: rgba(219,15,77,0.06); border-color: rgba(219,15,77,0.25); }

        .inq-terms { background: rgba(0,0,0,0.35); border-radius: 10px; padding: 16px 20px; margin-top: 4px; }
        .inq-terms-title { font-family: 'Cinzel', serif; font-size: 0.75rem; letter-spacing: 4px; color: var(--gold); margin-bottom: 10px; }
        .inq-steps { padding-left: 20px; margin: 0; }
        .inq-steps li { font-size: 0.85rem; color: rgba(200,185,155,0.65); line-height: 2.2; letter-spacing: 0.5px; }
        .inq-caution { padding-left: 18px; margin: 0; }
        .inq-caution li { font-size: 0.8rem; color: rgba(200,175,130,0.55); line-height: 2.0; letter-spacing: 0.5px; }

        /* スティッキー合計バー */
        .inq-total-bar {
            flex-shrink: 0;
            display: flex; align-items: center; justify-content: space-between; gap: 16px;
            padding: 14px 28px;
            background: rgba(3,0,8,0.97);
            border-top: 1px solid rgba(209,173,63,0.2);
            box-shadow: 0 -8px 30px rgba(0,0,0,0.6);
        }
        .inq-selected-list {
            flex: 1; display: flex; flex-wrap: wrap; gap: 6px; min-width: 0;
        }
        .inq-no-select { font-size: 0.72rem; color: rgba(180,160,120,0.35); letter-spacing: 1px; }
        .inq-selected-chip {
            font-size: 0.68rem; color: rgba(219,15,77,0.85);
            background: rgba(219,15,77,0.08); border: 1px solid rgba(219,15,77,0.3);
            padding: 2px 10px; border-radius: 12px; letter-spacing: 0.5px;
            white-space: nowrap; max-width: 180px; overflow: hidden; text-overflow: ellipsis;
        }
        .inq-total-right { text-align: right; flex-shrink: 0; }
        .inq-total-label { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 3px; color: rgba(200,175,110,0.45); }
        .inq-total-amount {
            font-family: 'Cinzel', serif; font-size: 1.6rem;
            color: var(--gold); letter-spacing: 2px; line-height: 1.1;
            transition: all 0.3s;
            text-shadow: 0 0 20px rgba(209,173,63,0.4);
        }
        .inq-total-amount.has-value { color: #fff; text-shadow: 0 0 20px rgba(219,15,77,0.5); }
        .inq-total-note { font-size: 0.62rem; color: rgba(180,155,100,0.4); letter-spacing: 1px; }

        .inq-footer {
            flex-shrink: 0; padding: 16px 28px 24px;
            text-align: center;
            background: linear-gradient(to top, rgba(3,0,8,0.95) 80%, transparent);
        }
        .inq-footer-note { font-size: 0.75rem; color: rgba(180,160,120,0.45); line-height: 1.9; letter-spacing: 0.5px; margin-bottom: 14px; }
        .inq-contact-btn {
            display: inline-flex; align-items: center; gap: 10px;
            padding: 14px 40px; border-radius: 10px;
            background: linear-gradient(135deg, rgba(219,15,77,0.18), rgba(180,5,50,0.12));
            border: 1px solid rgba(219,15,77,0.5);
            color: rgba(255,200,200,0.95); font-family: 'Cinzel', serif;
            font-size: 0.85rem; letter-spacing: 3px; text-decoration: none;
            transition: all 0.35s cubic-bezier(0.25,1,0.5,1);
            box-shadow: 0 0 25px rgba(219,15,77,0.1);
        }
        .inq-contact-btn:hover {
            background: linear-gradient(135deg, rgba(219,15,77,0.32), rgba(180,5,50,0.22));
            border-color: rgba(219,15,77,0.9); color: #fff;
            box-shadow: 0 0 40px rgba(219,15,77,0.3); transform: translateY(-3px);
        }

        .mf-sent-view, .mf-error-view {
            display: none; text-align: center; padding: 20px 10px 10px;
        }
        .mf-sent-view.active, .mf-error-view.active { display: block; }
        .mf-sent-icon { font-size: 2.5rem; color: rgba(209,173,63,0.5); margin-bottom: 14px; animation: pharaohEyePulse 4s ease-in-out infinite; }
        .mf-sent-title { font-family: 'Cinzel', serif; font-size: 1.2rem; letter-spacing: 4px; color: var(--gold); margin-bottom: 14px; }
        .mf-sent-msg { font-size: 0.88rem; color: rgba(200,185,155,0.75); line-height: 2.2; }
        .mf-error-msg { font-size: 0.88rem; color: rgba(219,100,100,0.85); background: rgba(219,15,77,0.08); border: 1px solid rgba(219,15,77,0.25); border-radius: 8px; padding: 14px 16px; line-height: 1.9; margin-bottom: 12px; }
        .mf-form-body { transition: opacity 0.3s; }
        .mf-form-body.hidden { opacity: 0; pointer-events: none; height: 0; overflow: hidden; }

        /* ══ メールフォームモーダル end ══ */

        /* スピナー行 */
        .inq-spinner-row { display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 10px; border: 1px solid rgba(209,173,63,0.12); background: rgba(5,0,10,0.5); transition: all 0.3s; }
        .inq-spinner-row.active { border-color: rgba(219,15,77,0.5); background: rgba(219,15,77,0.06); }
        .inq-spinner-check { display: flex; align-items: center; }
        .inq-cb-spinner { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; border: 1px solid rgba(209,173,63,0.4); border-radius: 4px; background: rgba(5,0,10,0.8); position: relative; transition: all 0.2s; cursor: none !important; flex-shrink: 0; }
        .inq-cb-spinner:checked { background: var(--crimson); border-color: var(--crimson); box-shadow: 0 0 8px rgba(219,15,77,0.5); }
        .inq-cb-spinner:checked::after { content: ''; position: absolute; left: 5px; top: 2px; width: 5px; height: 9px; border: 2px solid #fff; border-top: none; border-left: none; transform: rotate(45deg); }
        .inq-spinner-wrap { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
        .inq-spin-btn { width: 28px; height: 28px; border-radius: 6px; border: 1px solid rgba(209,173,63,0.3); background: rgba(209,173,63,0.07); color: var(--gold); font-size: 1rem; line-height: 1; display: flex; align-items: center; justify-content: center; transition: all 0.2s; cursor: none !important; }
        .inq-spin-btn:hover { background: rgba(209,173,63,0.18); border-color: var(--gold); }
        .inq-spin-num { font-family: 'Cinzel', serif; font-size: 1.1rem; color: #fff; min-width: 24px; text-align: center; }
        .inq-spin-price { font-family: 'Cinzel', serif; font-size: 0.78rem; color: rgba(219,15,77,0.8); white-space: nowrap; min-width: 72px; text-align: right; }
        .inq-select { background: rgba(5,0,12,0.9); border: 1px solid rgba(209,173,63,0.3); color: var(--gold); font-family: 'Cinzel', serif; font-size: 0.82rem; padding: 6px 10px; border-radius: 6px; cursor: none !important; outline: none; }
        .inq-select:focus { border-color: var(--gold); }

        /* ══ メールフォームモーダル ══ */
        .mailform-content { max-width: 520px !important; }
        .mf-summary { background: rgba(0,0,0,0.4); border: 1px solid rgba(209,173,63,0.2); border-left: 3px solid var(--gold); border-radius: 8px; padding: 14px 18px; margin-bottom: 22px; }
        .mf-summary-title { font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 4px; color: rgba(209,173,63,0.6); margin-bottom: 8px; }
        .mf-summary-items { font-size: 0.82rem; color: rgba(220,205,170,0.8); line-height: 2.0; }
        .mf-summary-total { font-family: 'Cinzel', serif; font-size: 0.9rem; color: var(--gold); margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(209,173,63,0.15); }
        .mf-field { margin-bottom: 16px; }
        .mf-label { display: block; font-size: 0.78rem; color: rgba(209,173,63,0.75); letter-spacing: 2px; margin-bottom: 6px; font-family: 'Cinzel', serif; }
        .mf-required { color: var(--crimson); }
        .mf-opt { font-size: 0.65rem; color: rgba(180,160,120,0.45); letter-spacing: 1px; }
        .mf-input, .mf-textarea { width: 100%; background: rgba(3,0,8,0.8); border: 1px solid rgba(209,173,63,0.2); border-radius: 8px; color: rgba(230,215,180,0.9); font-family: 'Kaisei Decol', serif; font-size: 0.9rem; padding: 10px 14px; outline: none; transition: border-color 0.3s; resize: vertical; box-sizing: border-box; }
        .mf-input:focus, .mf-textarea:focus { border-color: rgba(209,173,63,0.6); box-shadow: 0 0 12px rgba(209,173,63,0.08); }
        .mf-input::placeholder, .mf-textarea::placeholder { color: rgba(180,155,100,0.3); font-size: 0.85rem; }
        .mf-actions { display: flex; gap: 12px; margin-top: 24px; }
        .mf-cancel { flex: 1; padding: 12px; border-radius: 8px; border: 1px solid rgba(180,155,100,0.25); background: transparent; color: rgba(180,155,100,0.5); font-family: 'Cinzel', serif; font-size: 0.82rem; letter-spacing: 2px; cursor: none !important; transition: all 0.3s; }
        .mf-cancel:hover { border-color: rgba(180,155,100,0.5); color: rgba(200,180,140,0.8); }
        .mf-submit { flex: 2; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px; border-radius: 8px; background: linear-gradient(135deg, rgba(219,15,77,0.22), rgba(180,5,50,0.15)); border: 1px solid rgba(219,15,77,0.55); color: rgba(255,200,200,0.95); font-family: 'Cinzel', serif; font-size: 0.88rem; letter-spacing: 2px; cursor: none !important; transition: all 0.35s; }
        .mf-submit:hover { background: linear-gradient(135deg, rgba(219,15,77,0.35), rgba(180,5,50,0.25)); border-color: rgba(219,15,77,0.9); color: #fff; box-shadow: 0 0 25px rgba(219,15,77,0.25); }

        /* ══ 依頼モーダル end ══ */

        /* ── Creator Cards ── */
        .creator-cards {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 20px;
            margin-top: 4px;
        }
        .creator-card {
            position: relative;
            display: flex; flex-direction: column; align-items: center; justify-content: center;
            gap: 10px;
            padding: 32px 20px;
            border-radius: 14px;
            background: rgba(5,0,12,0.7);
            border: 1px solid rgba(209,173,63,0.25);
            color: var(--text-color);
            overflow: hidden;
            transition: all 0.4s cubic-bezier(0.25,1,0.5,1);
            cursor: none !important;
        }
        .creator-card-bg {
            position: absolute; inset: 0;
            background: radial-gradient(ellipse at 50% 100%, rgba(209,173,63,0.1) 0%, transparent 70%);
            opacity: 0; transition: opacity 0.4s;
        }
        .creator-card:hover .creator-card-bg { opacity: 1; }
        .creator-card:hover {
            border-color: rgba(209,173,63,0.7);
            transform: translateY(-6px);
            box-shadow: 0 16px 40px rgba(0,0,0,0.8), 0 0 25px rgba(209,173,63,0.15);
        }
        .creator-card-icon { font-size: 2rem; line-height: 1; position: relative; z-index: 1; }
        .creator-card-label {
            font-family: 'Cinzel', serif; font-size: 1.0rem; letter-spacing: 4px;
            text-transform: uppercase; color: rgba(209,173,63,0.9);
            position: relative; z-index: 1;
        }
        .creator-card-count {
            font-size: 0.72rem; color: rgba(200,175,110,0.45);
            letter-spacing: 2px; position: relative; z-index: 1;
        }
        .creator-card-hint {
            font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 3px;
            color: rgba(219,15,77,0.6); text-transform: uppercase;
            position: relative; z-index: 1;
            border: 1px solid rgba(219,15,77,0.3); padding: 3px 12px; border-radius: 20px;
            transition: all 0.3s;
        }
        .creator-card:hover .creator-card-hint {
            background: rgba(219,15,77,0.12); color: rgba(219,15,77,0.9);
            border-color: rgba(219,15,77,0.6); box-shadow: 0 0 10px rgba(219,15,77,0.2);
        }
        @media(max-width:700px) { .creator-cards { grid-template-columns: 1fr; } }

        /* ── Creator Modal ── */
        .creator-modal-content {
            max-width: 600px !important;
            max-height: 85vh;
        }
        .creator-modal-header {
            display: flex; align-items: center; gap: 16px;
            margin-bottom: 28px; padding-bottom: 20px;
            border-bottom: 1px solid rgba(209,173,63,0.2);
        }
        .creator-modal-icon { font-size: 2.2rem; line-height: 1; }
        .creator-modal-title {
            font-family: 'Cinzel', serif; font-size: 1.5rem;
            letter-spacing: 5px; color: var(--gold); margin: 0;
        }
        .creator-modal-sub {
            font-size: 0.78rem; color: rgba(200,175,110,0.5);
            letter-spacing: 2px; margin: 4px 0 0;
        }

        /* タイムライン */
        .creator-timeline {
            display: flex; flex-direction: column; gap: 0;
            position: relative;
            padding-left: 28px;
        }
        .creator-timeline::before {
            content: '';
            position: absolute; left: 7px; top: 6px; bottom: 6px; width: 1px;
            background: linear-gradient(to bottom, rgba(219,15,77,0.6), rgba(209,173,63,0.4), transparent);
        }
        .tl-item {
            position: relative;
            padding: 0 0 24px 24px;
        }
        .tl-item:last-child { padding-bottom: 0; }
        .tl-dot {
            position: absolute; left: -22px; top: 5px;
            width: 10px; height: 10px; border-radius: 2px;
            background: var(--crimson); transform: rotate(45deg);
            box-shadow: 0 0 8px rgba(219,15,77,0.6);
            flex-shrink: 0;
        }
        .tl-date {
            font-family: 'Cinzel', serif; font-size: 0.68rem;
            letter-spacing: 3px; color: var(--crimson); margin-bottom: 4px;
        }
        .tl-title {
            font-size: 1.0rem; color: rgba(240,225,185,0.95);
            letter-spacing: 1px; line-height: 1.5; margin-bottom: 4px;
        }
        .tl-desc {
            font-size: 0.82rem; color: rgba(200,180,140,0.55);
            line-height: 1.8; letter-spacing: 0.5px;
        }

        /* ── Supporters Modal ── */
        .supporters-modal-content { max-width: 560px !important; }
        .supporters-tier {
            margin-bottom: 22px;
            padding: 16px 20px;
            background: rgba(5,0,10,0.6);
            border-radius: 10px;
            border: 1px solid rgba(209,173,63,0.15);
        }
        .supporters-tier-label {
            font-family: 'Cinzel', serif; font-size: 0.72rem;
            letter-spacing: 4px; color: var(--gold);
            border-bottom: 1px solid rgba(209,173,63,0.2);
            padding-bottom: 8px; margin-bottom: 12px;
        }
        .supporters-names {
            display: flex; flex-wrap: wrap; gap: 8px;
        }
        .supporter-name {
            font-size: 0.9rem; color: rgba(240,220,170,0.85);
            background: rgba(209,173,63,0.06);
            border: 1px solid rgba(209,173,63,0.2);
            padding: 4px 14px; border-radius: 20px;
            letter-spacing: 1px;
        }

        /* クラファン支援者ボタン */
        .cf-supporters-btn {
            display: inline-flex; align-items: center; gap: 10px;
            padding: 14px 36px; border-radius: 10px;
            background: linear-gradient(135deg, rgba(219,15,77,0.12), rgba(180,5,50,0.08));
            border: 1px solid rgba(219,15,77,0.4);
            color: rgba(240,180,180,0.9);
            font-family: 'Cinzel', serif; font-size: 0.88rem; letter-spacing: 3px;
            cursor: none !important;
            transition: all 0.35s cubic-bezier(0.25,1,0.5,1);
            box-shadow: 0 0 20px rgba(219,15,77,0.08);
        }
        .cf-supporters-btn:hover {
            background: linear-gradient(135deg, rgba(219,15,77,0.22), rgba(180,5,50,0.15));
            border-color: rgba(219,15,77,0.8);
            color: #fff;
            box-shadow: 0 0 30px rgba(219,15,77,0.25);
            transform: translateY(-3px);
        }

        /* ── Works Section Layout ── */
        .works-section-wrap {
            width: 92%; max-width: 1100px; margin: 0 auto;
            display: flex; flex-direction: column; gap: 50px;
            padding: 20px 0 40px;
        }
        .works-category {
            background: rgba(8,2,14,0.7);
            border: 1px solid rgba(209,173,63,0.18);
            border-radius: 16px;
            padding: 36px 40px;
            backdrop-filter: blur(10px);
            box-shadow: 0 10px 40px rgba(0,0,0,0.6);
        }
        .works-category-header {
            display: flex; align-items: center; gap: 18px;
            margin-bottom: 28px;
            padding-bottom: 18px;
            border-bottom: 1px solid rgba(219,15,77,0.25);
        }
        .works-cat-icon {
            width: 48px; height: 48px;
            border-radius: 10px;
            background: rgba(219,15,77,0.12);
            border: 1px solid rgba(219,15,77,0.3);
            display: flex; align-items: center; justify-content: center;
            color: var(--crimson);
            flex-shrink: 0;
            box-shadow: 0 0 18px rgba(219,15,77,0.12);
        }
        .works-cat-icon svg { width: 24px; height: 24px; }
        .works-cat-label {
            font-family: 'Cinzel', serif; font-size: 1.4rem;
            letter-spacing: 5px; text-transform: uppercase;
            color: var(--crimson);
        }
        .works-cat-sub {
            font-size: 0.78rem; color: rgba(200,180,140,0.5);
            letter-spacing: 2px; margin-top: 3px;
        }
        @media (max-width: 700px) {
            .works-category { padding: 24px 20px; }
            .work-item { grid-template-columns: auto 1fr; }
            .work-item .work-tag { display: none; }
        }

        /* ── Works / 案件実績 ── */
        .works-list { display: flex; flex-direction: column; gap: 16px; margin-top: 10px; }
        .work-item {
            display: grid;
            grid-template-columns: auto 1fr auto;
            align-items: center;
            gap: 18px;
            padding: 20px 24px;
            background: rgba(5,0,10,0.65);
            border: 1px solid rgba(209,173,63,0.18);
            border-left: 3px solid var(--crimson);
            border-radius: 10px;
            transition: all 0.35s cubic-bezier(0.25,1,0.5,1);
            position: relative;
            overflow: hidden;
        }
        .work-item::before {
            content: '';
            position: absolute; inset: 0;
            background: linear-gradient(90deg, rgba(219,15,77,0.05) 0%, transparent 60%);
            opacity: 0;
            transition: opacity 0.35s;
        }
        .work-item:hover { border-left-color: var(--gold); border-color: rgba(209,173,63,0.4); transform: translateX(4px); box-shadow: 0 6px 28px rgba(0,0,0,0.7), -4px 0 20px rgba(209,173,63,0.1); }
        .work-item:hover::before { opacity: 1; }
        .work-date { font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 2px; color: rgba(209,173,63,0.55); white-space: nowrap; }
        .work-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
        .work-title { font-size: 1.0rem; color: rgba(240,225,185,0.95); letter-spacing: 1px; line-height: 1.5; }
        .work-client { font-size: 0.8rem; color: rgba(200,180,140,0.55); letter-spacing: 1px; }
        .work-tag {
            display: inline-flex; align-items: center;
            font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 2px;
            padding: 3px 12px; border-radius: 20px; white-space: nowrap;
            border: 1px solid;
        }
        .work-tag.voice  { color: rgba(219,15,77,0.9);  border-color: rgba(219,15,77,0.4);  background: rgba(219,15,77,0.07); }
        .work-tag.illust { color: rgba(209,173,63,0.9); border-color: rgba(209,173,63,0.4); background: rgba(209,173,63,0.07); }
        .work-tag.collab { color: rgba(100,180,255,0.9); border-color: rgba(100,180,255,0.35); background: rgba(100,180,255,0.06); }
        .work-tag.narr   { color: rgba(170,120,255,0.9); border-color: rgba(170,120,255,0.35); background: rgba(170,120,255,0.06); }
        .work-tag.other  { color: rgba(160,200,160,0.9); border-color: rgba(160,200,160,0.35); background: rgba(160,200,160,0.06); }
        .works-note { margin-top: 22px; text-align: center; font-size: 0.8rem; color: rgba(200,175,110,0.45); letter-spacing: 2px; line-height: 1.8; }
        .works-inquiry {
            display: inline-flex; align-items: center; gap: 8px;
            margin-top: 20px; padding: 14px 30px; border-radius: 8px;
            border: 1px solid rgba(209,173,63,0.35);
            color: rgba(209,173,63,0.8); font-family: 'Cinzel', serif;
            font-size: 0.8rem; letter-spacing: 3px; text-transform: uppercase;
            background: rgba(209,173,63,0.05);
            transition: all 0.3s;
        }
        .works-inquiry:hover { border-color: rgba(209,173,63,0.8); color: #fff; background: rgba(209,173,63,0.12); box-shadow: 0 0 20px rgba(209,173,63,0.2); }
        .special-thanks-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
            gap: 16px;
            margin-top: 20px;
        }
        .thanks-card {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 8px;
            background: rgba(10,0,10,0.6);
            border: 1px solid rgba(209,173,63,0.25);
            border-radius: 12px;
            padding: 20px 16px;
            transition: all 0.35s cubic-bezier(0.25,1,0.5,1);
            text-align: center;
        }
        .thanks-card:hover {
            border-color: rgba(219,15,77,0.6);
            background: rgba(219,15,77,0.06);
            transform: translateY(-4px);
            box-shadow: 0 8px 30px rgba(0,0,0,0.7), 0 0 15px rgba(219,15,77,0.2);
        }
        .thanks-role {
            font-size: 0.72rem;
            font-family: 'Cinzel', serif;
            letter-spacing: 3px;
            color: var(--crimson);
            text-transform: uppercase;
        }
        .thanks-name {
            font-size: 1.1rem;
            color: rgba(240,220,160,0.95);
            letter-spacing: 2px;
            font-family: 'Kaisei Decol', serif;
        }
        .thanks-note {
            font-size: 0.82rem;
            color: rgba(200,180,130,0.6);
            line-height: 1.6;
        }
        .thanks-section-title {
            color: var(--gold);
            font-family: 'Cinzel', serif;
            font-size: 0.85rem;
            letter-spacing: 5px;
            text-transform: uppercase;
            margin-top: 30px;
            margin-bottom: 10px;
            padding-bottom: 6px;
            border-bottom: 1px solid rgba(209,173,63,0.2);
        }
        .thanks-section-title:first-child { margin-top: 0; }

        @keyframes auraPulse { 0%,100%{transform:translate(-50%,-50%) scale(1);opacity:0.6;}50%{transform:translate(-50%,-50%) scale(1.2);opacity:1;} }
        @keyframes auraPulseFast { 0%,100%{transform:translate(-50%,-50%) scale(1);opacity:0.8;}50%{transform:translate(-50%,-50%) scale(1.1);opacity:1;} }
        @keyframes heartBeat { 0%{transform:translate(-50%,-50%) scale(1);}100%{transform:translate(-50%,-50%) scale(1.15);} }
        @keyframes darkRippleOut { 0%{transform:translate(-50%,-50%) scale(0);opacity:1;width:20px;height:20px;}100%{transform:translate(-50%,-50%) scale(1);opacity:0;width:120px;height:120px;} }
        @keyframes bgRingRotate { from{transform:translate(-50%,-50%) rotate(0deg);}to{transform:translate(-50%,-50%) rotate(360deg);} }
        @keyframes starPulse { 0%,100%{opacity:0.04;transform:translate(-50%,-50%) scale(1);}50%{opacity:0.08;transform:translate(-50%,-50%) scale(1.05) rotate(45deg);} }
        @keyframes scrollDiamondBlink { 0%,100%{opacity:0.4;transform:rotate(45deg) scale(1);}50%{opacity:0.9;transform:rotate(45deg) scale(1.4);border-color:var(--crimson);} }
        @keyframes titleFlow { from{background-position:0% center;}to{background-position:300% center;} }
        @keyframes bloodDrip { 0%{transform:scaleY(0);transform-origin:top;opacity:0;}15%{opacity:1;}50%{transform:scaleY(1);transform-origin:top;opacity:1;}50.1%{transform:scaleY(1);transform-origin:bottom;}85%{opacity:1;}100%{transform:scaleY(0);transform-origin:bottom;opacity:0;} }
        @keyframes fadeInTab { from{opacity:0;transform:translateY(15px);}to{opacity:1;transform:translateY(0);} }
        @keyframes glitchText { 0%,90%{transform:translate(0,0);}92%{transform:translate(-3px,1px);text-shadow:-2px 0 var(--crimson),2px 0 var(--gold);}94%{transform:translate(3px,-1px);}96%{transform:translate(-2px,2px);}98%{transform:translate(2px,-2px);}100%{transform:translate(0,0);} }
        @keyframes tagPulse { 0%,100%{transform:scale(1);box-shadow:0 0 5px rgba(219,15,77,0.4);}50%{transform:scale(1.03);box-shadow:0 0 15px rgba(219,15,77,0.8);} }
        @keyframes bounceHint { 0%,100%{transform:translateY(0);}50%{transform:translateY(-3px);} }
        @keyframes pharaohEyePulse { 0%,100%{opacity:0.5;text-shadow:0 0 6px rgba(180,120,20,0.4),0 0 15px rgba(100,0,15,0.2);transform:translateX(-50%) scale(1);}30%{opacity:0.9;text-shadow:0 0 12px rgba(200,150,20,0.7),0 0 30px rgba(140,0,20,0.4);transform:translateX(-50%) scale(1.1);}50%{opacity:0.35;text-shadow:0 0 4px rgba(180,120,20,0.2);transform:translateX(-50%) scale(0.95);}70%{opacity:1;text-shadow:0 0 18px rgba(200,160,25,0.9),0 0 40px rgba(150,0,20,0.5);transform:translateX(-50%) scale(1.15);} }
        @keyframes nyrDrift { 0%,100%{transform:translateX(-50%) translateY(0px);}25%{transform:translateX(-50%) translateY(-6px);}60%{transform:translateX(-50%) translateY(-3px);}80%{transform:translateX(-50%) translateY(-7px);} }
        @keyframes sepBreath { 0%,100%{opacity:0.6;}50%{opacity:0.18;} }
        @keyframes scanline { 0%{transform:translateY(-100%);}100%{transform:translateY(100%);} }
        @keyframes glitch-anim { 0%{transform:translate(0);}20%{transform:translate(-2px,2px);}40%{transform:translate(-2px,-2px);}60%{transform:translate(2px,2px);}80%{transform:translate(2px,-2px);}100%{transform:translate(0);} }

        /* ── Game バナー ── */
        .game-banner-inner {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            text-decoration: none;
            padding: 80px 40px;
            border-radius: 18px;
            border: 1px solid rgba(219,15,77,0.5);
            box-shadow: 0 0 0 1px rgba(0,0,0,0.8), 0 0 30px rgba(219,15,77,0.15), 0 0 60px rgba(219,15,77,0.08), inset 0 0 40px rgba(0,0,0,0.5);
            position: relative;
            overflow: hidden;
            width: 100%;
            box-sizing: border-box;
            background-color: #050005;
            transition: all 0.45s cubic-bezier(0.25,1,0.5,1);
        }
        .game-banner-inner:hover {
            border-color: rgba(219,15,77,0.85);
            box-shadow: 0 0 0 1px rgba(0,0,0,0.8), 0 0 50px rgba(219,15,77,0.3), 0 0 100px rgba(209,173,63,0.12), 0 20px 60px rgba(0,0,0,0.8), inset 0 0 40px rgba(0,0,0,0.4);
            transform: translateY(-4px);
        }
        .game-banner-bg {
            position: absolute;
            top: 0; left: 0; width: 100%; height: 100%;
            background-image: url('https://sharnoth0.github.io/images/%E5%91%8A%E7%9F%A5%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88%E3%83%A9%E3%83%95%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8.png');
            background-size: cover;
            background-position: center;
            opacity: 0.5;
            z-index: 0;
            transition: transform 0.8s ease, opacity 0.8s ease;
        }
        .game-banner-inner:hover .game-banner-bg {
            transform: scale(1.05);
            opacity: 0.7;
        }
        .game-banner-content {
            position: relative;
            z-index: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 15px;
            background: rgba(10, 0, 15, 0.7);
            padding: 25px 50px;
            border-radius: 12px;
            backdrop-filter: blur(4px);
            border: 1px solid rgba(219,15,77,0.3);
            box-shadow: 0 10px 30px rgba(0,0,0,0.8);
        }
        .game-banner-inner .banner-title {
            font-family: 'Cinzel', serif;
            font-size: clamp(2rem, 5vw, 3rem);
            letter-spacing: 8px;
            color: #fff;
            text-shadow: 0 0 15px rgba(219,15,77,0.9), 0 0 30px var(--crimson);
            margin: 0;
        }
        .game-banner-inner .banner-sub {
            font-family: 'Kaisei Decol', serif;
            font-size: clamp(1rem, 2.5vw, 1.2rem);
            color: rgba(240,220,160,0.95);
            letter-spacing: 4px;
            text-shadow: 0 2px 4px rgba(0,0,0,0.9);
        }
        /* ── Game Genre Badge ── */
        .game-genre-badge {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            background: linear-gradient(90deg, rgba(219,15,77,0.85), rgba(180,5,50,0.85));
            color: #fff;
            font-family: 'Kaisei Decol', serif;
            font-size: 0.78rem;
            letter-spacing: 3px;
            padding: 5px 16px;
            border-radius: 20px;
            box-shadow: 0 0 15px rgba(219,15,77,0.5);
        }

        /* ── tagGlow (scale無し、glow のみ) ── */
        @keyframes tagGlow {
            0%,100% { box-shadow: 0 0 5px rgba(219,15,77,0.4); }
            50%     { box-shadow: 0 0 15px rgba(219,15,77,0.8); }
        }

        /* ── Ci-en Description Card ── */
        .cien-desc-card {
            position: relative;
            text-align: center;
            padding: 36px 40px 40px;
            margin-bottom: 0;
            border-radius: 16px;
            background:
                radial-gradient(ellipse at 50% 0%, rgba(219,15,77,0.08) 0%, transparent 60%),
                radial-gradient(ellipse at 50% 100%, rgba(209,173,63,0.06) 0%, transparent 60%),
                linear-gradient(160deg, rgba(8,2,14,0.85) 0%, rgba(12,3,18,0.9) 50%, rgba(8,2,14,0.85) 100%);
            border: 1px solid rgba(209,173,63,0.25);
            box-shadow:
                0 0 0 1px rgba(0,0,0,0.7),
                0 10px 40px rgba(0,0,0,0.6),
                inset 0 0 40px rgba(0,0,0,0.4);
            overflow: hidden;
        }
        .cien-desc-glow {
            position: absolute;
            top: -50%; left: 50%; transform: translateX(-50%);
            width: 200px; height: 200px;
            background: radial-gradient(circle, rgba(219,15,77,0.12) 0%, transparent 70%);
            pointer-events: none;
            animation: cienGlowPulse 5s ease-in-out infinite;
        }
        @keyframes cienGlowPulse {
            0%,100% { opacity: 0.6; transform: translateX(-50%) scale(1); }
            50%     { opacity: 1;   transform: translateX(-50%) scale(1.3); }
        }
        .cien-desc-corner {
            position: absolute;
            font-size: 0.7rem;
            color: rgba(209,173,63,0.3);
            line-height: 1;
        }
        .cien-desc-corner.tl { top: 12px; left: 14px; }
        .cien-desc-corner.tr { top: 12px; right: 14px; }
        .cien-desc-corner.bl { bottom: 12px; left: 14px; }
        .cien-desc-corner.br { bottom: 12px; right: 14px; }
        .cien-desc-header {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 8px;
            margin-bottom: 22px;
            position: relative;
            z-index: 1;
        }
        .cien-desc-eye {
            font-size: 1.4rem;
            color: rgba(209,173,63,0.4);
            text-shadow: 0 0 10px rgba(180,120,20,0.4), 0 0 25px rgba(120,0,20,0.25);
            animation: pharaohEyePulse 5s ease-in-out infinite;
        }
        .cien-desc-label {
            font-family: 'Cinzel', serif;
            font-size: 0.72rem;
            letter-spacing: 5px;
            text-transform: uppercase;
            color: rgba(219,15,77,0.7);
            border: 1px solid rgba(219,15,77,0.3);
            padding: 4px 18px;
            border-radius: 20px;
            background: rgba(219,15,77,0.06);
        }
        .cien-desc-text {
            position: relative;
            z-index: 1;
            font-family: 'Kaisei Decol', serif;
            font-size: 1.1rem;
            line-height: 2.2;
            color: rgba(240,220,160,0.95);
            letter-spacing: 1.5px;
            margin: 0 0 24px;
            text-shadow: 0 1px 4px rgba(0,0,0,0.8);
        }
        .cien-desc-features {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 10px;
            margin-bottom: 24px;
            position: relative;
            z-index: 1;
        }
        .cien-feature {
            font-size: 0.88rem;
            letter-spacing: 1px;
            color: rgba(255,255,255,0.85);
            padding: 7px 18px;
            border-radius: 22px;
            background: rgba(219,15,77,0.1);
            border: 1px solid rgba(219,15,77,0.35);
            transition: all 0.3s;
        }
        .cien-feature:hover {
            background: rgba(219,15,77,0.2);
            border-color: rgba(219,15,77,0.7);
            box-shadow: 0 0 12px rgba(219,15,77,0.3);
            color: #fff;
        }
        .cien-desc-sub {
            position: relative;
            z-index: 1;
            font-size: 0.95rem;
            line-height: 2.2;
            color: rgba(255,255,255,0.7);
            margin: 0;
            letter-spacing: 0.5px;
        }

        /* ── Ci-en Card Button (inside card) ── */
        .cien-card-btn {
            display: inline-flex;
            align-items: center;
            gap: 12px;
            margin-top: 28px;
            padding: 16px 44px;
            border-radius: 12px;
            text-decoration: none;
            position: relative;
            z-index: 1;
            background: linear-gradient(135deg, rgba(219,15,77,0.18), rgba(180,5,50,0.12));
            border: 1px solid rgba(219,15,77,0.5);
            color: rgba(255,200,200,0.95);
            font-family: 'Cinzel', serif;
            font-size: 1rem;
            letter-spacing: 4px;
            transition: all 0.4s cubic-bezier(0.25,1,0.5,1);
            box-shadow: 0 0 25px rgba(219,15,77,0.1);
            overflow: hidden;
        }
        .cien-card-btn::before {
            content: '';
            position: absolute;
            top: 0; left: -100%; width: 50%; height: 100%;
            background: linear-gradient(90deg, transparent, rgba(219,15,77,0.08), rgba(255,255,255,0.04), transparent);
            transition: left 0.6s ease;
            pointer-events: none;
        }
        .cien-card-btn:hover::before { left: 150%; }
        .cien-card-btn:hover {
            background: linear-gradient(135deg, rgba(219,15,77,0.32), rgba(180,5,50,0.22));
            border-color: rgba(219,15,77,0.9);
            color: #fff;
            box-shadow: 0 0 40px rgba(219,15,77,0.3), 0 8px 30px rgba(0,0,0,0.5);
            transform: translateY(-3px);
        }
        .cien-card-btn-text {
            font-family: 'Kaisei Decol', serif;
            letter-spacing: 3px;
        }
        .cien-card-btn-arrow {
            transition: transform 0.3s;
            font-size: 1.1rem;
        }
        .cien-card-btn:hover .cien-card-btn-arrow { transform: translateX(5px); }

        /* ── Works Inquiry Button (big & stylish) ── */
        .works-inquiry-btn {
            display: inline-flex;
            align-items: center;
            gap: 14px;
            position: relative;
            padding: 20px 50px;
            border-radius: 14px;
            background: linear-gradient(135deg, rgba(209,173,63,0.1) 0%, rgba(219,15,77,0.08) 100%);
            border: 1px solid rgba(209,173,63,0.45);
            color: rgba(240,220,160,0.95);
            text-decoration: none;
            font-family: 'Cinzel', serif;
            font-size: 1.05rem;
            letter-spacing: 4px;
            cursor: none !important;
            transition: all 0.4s cubic-bezier(0.25,1,0.5,1);
            box-shadow: 0 0 30px rgba(209,173,63,0.08), 0 8px 25px rgba(0,0,0,0.5);
            overflow: hidden;
        }
        .works-inquiry-deco {
            position: absolute;
            top: 0; bottom: 0; width: 2px;
            background: linear-gradient(to bottom, transparent, rgba(209,173,63,0.4), rgba(219,15,77,0.3), transparent);
            pointer-events: none;
        }
        .works-inquiry-deco.left  { left: 14px; }
        .works-inquiry-deco.right { right: 14px; }
        .works-inquiry-btn::before {
            content: '';
            position: absolute;
            top: 0; left: -100%; width: 50%; height: 100%;
            background: linear-gradient(90deg, transparent, rgba(209,173,63,0.06), rgba(255,255,255,0.03), transparent);
            transition: left 0.7s ease;
            pointer-events: none;
        }
        .works-inquiry-btn:hover::before { left: 150%; }
        .works-inquiry-btn:hover {
            border-color: rgba(209,173,63,0.85);
            color: #fff;
            background: linear-gradient(135deg, rgba(209,173,63,0.18) 0%, rgba(219,15,77,0.15) 100%);
            box-shadow: 0 0 50px rgba(209,173,63,0.2), 0 0 80px rgba(219,15,77,0.08), 0 12px 35px rgba(0,0,0,0.6);
            transform: translateY(-4px);
        }
        .works-inquiry-label {
            font-family: 'Kaisei Decol', serif;
            letter-spacing: 3px;
        }
        .works-inquiry-arrow {
            font-size: 1.2rem;
            transition: transform 0.3s;
            color: rgba(209,173,63,0.7);
        }
        .works-inquiry-btn:hover .works-inquiry-arrow {
            transform: translateX(5px);
            color: rgba(209,173,63,1);
        }
