/*
Theme Name: Lumina Logic Minds
Description: AI企業のカスタムWordPressテーマ
Version: 2.0
Author: Lumina Logic Minds
*/

/* カスタムプロパティ */
:root {
    --primary-color: #ffffff;
    --glow-color: #ffffff;
    --text-shadow: 0 0 20px rgba(255, 255, 255, 0.8);
}

/* ベーススタイル */
html {
    margin: 0;
    padding: 0;
    min-height: 100%;
    overflow-x: hidden;
}

body {
    margin: 0;
    padding: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
    font-family: 'Arial', sans-serif;
    background-color: #000;
    color: #fff;
    line-height: 1.6;
}

body.no-scroll {
    overflow: hidden;
    position: fixed;
    width: 100%;
    height: 100%;
}

/* ヘッダー */
header {
    background: linear-gradient(180deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0.8) 100%);
    position: fixed;
    width: 100%;
    height: 110px;
    overflow: hidden;
    top: 0;
    z-index: 999;
    display: flex;
    justify-content: space-between;
    align-items: center;
    opacity: 1;
    border-bottom: 2px solid #ff0000;
    backdrop-filter: blur(10px);
    transition: all 0.3s ease;
}

header.scrolled {
    background: rgba(0,0,0,0.95);
    height: 80px;
    box-shadow: 0 5px 30px rgba(255, 255, 255, 0.3);
}

main {
    padding-top: 0;
    width: 100%;
    overflow-x: hidden;
    flex: 1 0 auto;
}

section {
    padding: 3rem 2rem;
    max-width: none;
    margin: 0;
    position: relative;
}

/* ナビゲーション */
nav {
    display: inline-block;
    margin-right: 5rem;
    font-size: 1.2rem;
}

.desktop-nav ul {
    display: flex;
    list-style-type: none;
    padding: 0;
    margin: 0;
}

.desktop-nav ul li {
    margin: 0 2.8rem;
    position: relative;
}

.desktop-nav ul li::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--glow-color), transparent);
    transition: width 0.3s ease;
}

.desktop-nav ul li:hover::after {
    width: 100%;
}

.desktop-nav ul li a {
    color: white;
    text-decoration: none;
    font-weight: bold;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.desktop-nav ul li a:hover {
    color: var(--glow-color);
    text-shadow: var(--text-shadow);
}

/* タイポグラフィ */
h1, h2 {
    color: white;
    position: relative;
}

h1 {
    font-size: 3rem;
    margin-bottom: 0.5rem;
    animation: textGlow 2s ease-in-out infinite alternate;
}

h2 {
    font-size: 2rem;
    margin-bottom: 1rem;
    text-transform: uppercase;
    letter-spacing: 3px;
}

@keyframes textGlow {
    from { text-shadow: 0 0 10px rgba(255,255,255,0.5), 0 0 20px rgba(255,0,102,0.5); }
    to { text-shadow: 0 0 20px rgba(255,255,255,0.8), 0 0 30px rgba(255,0,102,0.8); }
}


/* ホームセクション */
#home {
    height: 100vh;   
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    position: relative;
    overflow: visible; 
    width: 100%;
    max-width: 100%;
    z-index: 2;
}

#home::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--glow-color), transparent);
    animation: lineMove 3s linear infinite;
}

#home::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: radial-gradient(circle at 30% 50%, rgba(255, 255, 255, 0.1) 0%, transparent 50%);
    pointer-events: none;
}

#home .content {
    position: relative;
    z-index: 2;
    color: #fff;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-top: 10vh;
    padding-left: 5vw;
    z-index: 2;
    animation: contentSlideIn 1.5s ease-out;
}

@keyframes contentSlideIn {
    from {
        opacity: 0;
        transform: translateX(-50px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

#home h1 {
    font-size: 4.5rem;
    text-shadow: 0 0 30px rgba(255, 255, 255, 0.5);
    text-align: left;
    background: linear-gradient(45deg, #fff, #ffffff);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: titlePulse 3s ease-in-out infinite;
}

@keyframes titlePulse {
    0%, 100% { filter: brightness(1); }
    50% { filter: brightness(1.2); }
}

#home p {
    font-size: 1.9rem;
    width: 100%;
    left: 40%;
    opacity: 0;
    animation: fadeInUp 1s ease-out 0.5s forwards;
}

/* 初期アニメーション */
#initial-animation {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: linear-gradient(135deg, #fff 0%, #f0f0f0 100%);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10001;
    pointer-events: all;
    overflow: hidden;
}

#initial-particles {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.lightning-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    pointer-events: none;
}

.lightning {
    position: absolute;
    width: 2px;
    background: linear-gradient(to bottom, transparent, #fff, transparent);
    box-shadow: 0 0 10px #fff, 0 0 20px #fff, 0 0 30px #ccc;
    animation: lightning 0.5s ease-out forwards;
    z-index: 100;
}

@keyframes lightning {
    0% {
        opacity: 0;
        transform: scaleY(0);
    }
    20% {
        opacity: 1;
    }
    80% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: scaleY(1);
    }
}

#animation-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    pointer-events: none;
}

#ai-animation {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

.text-container {
    text-align: center;
    margin-bottom: 10vh;
    transform-style: preserve-3d;
    position: relative;
    z-index: 3;
    perspective: 1000px;
}

.text {
    font-size: 6rem;
    font-weight: bold;
    color: black;
    opacity: 0;
    transform: translateY(50px) translateZ(-200px) rotateX(90deg) scale(0.5);
    transition: all 1.2s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    text-shadow: 0 0 0 transparent;
    position: relative;
    letter-spacing: 0.1em;
}

/* ハンバーガーメニュー */
.hamburger {
    display: none;
    width: 30px;
    height: 25px;
    position: relative;
    cursor: pointer;
    z-index: 1001;
    margin-right: 2rem;
}

.hamburger span {
    display: block;
    position: absolute;
    height: 3px;
    width: 100%;
    background: #fff;
    border-radius: 3px;
    opacity: 1;
    left: 0;
    transform: rotate(0deg);
    transition: .25s ease-in-out;
}

.hamburger span:nth-child(1) {
    top: 0px;
}

.hamburger span:nth-child(2) {
    top: 10px;
}

.hamburger span:nth-child(3) {
    top: 20px;
}

/* ハンバーガーメニューはシンプルに3本線のまま */

/* モバイルナビゲーション */
.mobile-nav {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(0, 0, 0, 0.98);
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* 閉じるボタン */
.close-btn {
    position: absolute;
    top: 2rem;
    right: 2rem;
    width: 50px;
    height: 50px;
    background: transparent;
    border: 2px solid #fff;
    border-radius: 50%;
    color: #fff;
    font-size: 2rem;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 1001;
}

.close-btn:hover {
    background: #fff;
    color: #000;
    transform: rotate(180deg);
}

.mobile-nav.active {
    opacity: 1;
    visibility: visible;
}

.mobile-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

.mobile-nav ul li {
    margin: 2rem 0;
}

.mobile-nav ul li a {
    color: #fff;
    text-decoration: none;
    font-size: 2rem;
    font-weight: 300;
    text-transform: uppercase;
    letter-spacing: 2px;
    transition: all 0.3s ease;
}

.mobile-nav ul li a:hover {
    color: var(--glow-color);
    text-shadow: 0 0 20px var(--glow-color);
}

/* デスクトップナビゲーション */
.desktop-nav {
    display: block;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .text {
        font-size: 3.5rem;
    }
    
    /* ハンバーガーメニューを表示 */
    .hamburger {
        display: block;
    }
    
    /* デスクトップナビゲーションを非表示 */
    .desktop-nav {
        display: none;
    }
    
    /* モバイルナビゲーションを有効化 */
    .mobile-nav {
        display: block;
    }
    
    /* ヘッダーのフレックスレイアウト調整 */
    header {
        padding: 0;
        height: 80px;
    }
}

.text.show {
    opacity: 1;
    transform: translateY(0) translateZ(0) rotateX(0) scale(1);
    animation: textGlowPulse 2s ease-in-out infinite alternate,
                floatingText 6s ease-in-out infinite,
                rotateText 8s linear infinite;
}

/* 浮遊アニメーション */
@keyframes floatingText {
    0%, 100% {
        transform: translateY(0) translateX(0) translateZ(0) rotateX(0) rotateY(0) scale(1);
    }
    25% {
        transform: translateY(-15px) translateX(10px) translateZ(50px) rotateX(5deg) rotateY(-10deg) scale(1.05);
    }
    50% {
        transform: translateY(10px) translateX(-10px) translateZ(-30px) rotateX(-5deg) rotateY(10deg) scale(0.95);
    }
    75% {
        transform: translateY(-10px) translateX(5px) translateZ(30px) rotateX(3deg) rotateY(-5deg) scale(1.02);
    }
}

/* 3D回転アニメーション */
@keyframes rotateText {
    0% {
        transform: rotateY(0deg);
    }
    100% {
        transform: rotateY(360deg);
    }
}

/* 各テキストに異なるアニメーションタイミング */
.text:nth-child(1).show {
    animation: textGlowPulse 2s ease-in-out infinite alternate,
                floatingText 6s ease-in-out infinite,
                rotateText 8s linear infinite,
                orbitalMotion 10s ease-in-out infinite;
}

.text:nth-child(2).show {
    animation: textGlowPulse 2s ease-in-out infinite alternate,
                floatingText 6s ease-in-out 0.5s infinite,
                rotateText 8s linear 0.5s infinite reverse,
                waveMotion 4s ease-in-out infinite;
}

.text:nth-child(3).show {
    animation: textGlowPulse 2s ease-in-out infinite alternate,
                floatingText 6s ease-in-out 1s infinite,
                rotateText 8s linear 1s infinite,
                spiralMotion 5s ease-in-out infinite;
}

/* 軌道運動 */
@keyframes orbitalMotion {
    0%, 100% {
        transform: translateX(0) translateY(0) translateZ(0);
    }
    25% {
        transform: translateX(30px) translateY(-20px) translateZ(100px) rotateZ(5deg);
    }
    50% {
        transform: translateX(0) translateY(-30px) translateZ(0) rotateZ(-5deg);
    }
    75% {
        transform: translateX(-30px) translateY(-20px) translateZ(-100px) rotateZ(5deg);
    }
}

/* 波動運動 */
@keyframes waveMotion {
    0%, 100% {
        transform: translateY(0) rotateZ(0deg) skewX(0deg);
    }
    25% {
        transform: translateY(-20px) rotateZ(3deg) skewX(5deg);
    }
    75% {
        transform: translateY(20px) rotateZ(-3deg) skewX(-5deg);
    }
}

/* らせん運動 */
@keyframes spiralMotion {
    0% {
        transform: rotate(0deg) translateX(20px) rotate(0deg);
    }
    100% {
        transform: rotate(360deg) translateX(20px) rotate(-360deg);
    }
}

@keyframes textGlowPulse {
    0% {
        text-shadow: 0 0 20px rgba(0, 0, 0, 0.2),
                     0 0 40px rgba(0, 0, 0, 0.1);
    }
    100% {
        text-shadow: 0 0 30px rgba(0, 0, 0, 0.3),
                     0 0 60px rgba(0, 0, 0, 0.2);
    }
}

.text.white-glow {
    animation: whiteGlowPulse 2s ease-in-out infinite alternate,
                floatingTextIntense 3s ease-in-out infinite,
                rotateTextFast 4s linear infinite,
                electricPulse 0.5s ease-in-out infinite;
}

/* 白色時の激しい浮遊 */
@keyframes floatingTextIntense {
    0%, 100% {
        transform: translateY(0) translateZ(0) scale(1);
    }
    50% {
        transform: translateY(-30px) translateZ(100px) scale(1.1);
    }
}

/* 高速回転 */
@keyframes rotateTextFast {
    0% {
        transform: rotateY(0deg) rotateX(0deg);
    }
    100% {
        transform: rotateY(360deg) rotateX(360deg);
    }
}

/* 電気パルス */
@keyframes electricPulse {
    0%, 100% {
        filter: brightness(1);
    }
    50% {
        filter: brightness(1.5) contrast(1.2);
    }
}

@keyframes whiteGlowPulse {
    0% {
        text-shadow: 0 0 20px rgba(255, 255, 255, 0.5),
                     0 0 40px rgba(255, 255, 255, 0.3),
                     0 0 60px rgba(200, 200, 200, 0.2);
    }
    100% {
        text-shadow: 0 0 30px rgba(255, 255, 255, 0.8),
                     0 0 60px rgba(255, 255, 255, 0.5),
                     0 0 80px rgba(200, 200, 200, 0.4);
    }
}

/* グリッチエフェクト用 */
.text::before,
.text::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
}

.text.glitch::before {
    animation: glitchTop 0.3s ease-in-out infinite alternate;
    color: #666;
    z-index: -1;
}

.text.glitch::after {
    animation: glitchBottom 0.3s ease-in-out infinite alternate;
    color: #999;
    z-index: -2;
}

@keyframes glitchTop {
    0%, 100% {
        opacity: 0.8;
        transform: translateX(-2px) translateY(-2px);
        clip-path: polygon(0 0, 100% 0, 100% 45%, 0 45%);
    }
    50% {
        transform: translateX(2px) translateY(2px);
    }
}

@keyframes glitchBottom {
    0%, 100% {
        opacity: 0.8;
        transform: translateX(2px) translateY(2px);
        clip-path: polygon(0 55%, 100% 55%, 100% 100%, 0 100%);
    }
    50% {
        transform: translateX(-2px) translateY(-2px);
    }
}

/* スクロールインジケーター */
.arrow-container {
    position: relative;
    bottom: auto;
    left: auto;
    width: 30px;
    height: 50px;
    transform: none;
    margin-right: 20px;
    z-index: 9999;
}

.arrow {
    position: absolute;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    z-index: 9999;
}

.arrow-shaft {
    width: 2px;
    height: 80px;
    background: linear-gradient(to bottom, transparent, #fff, transparent);
    z-index: 9999;
    position: relative;
    overflow: hidden;
}

.arrow-shaft::before {
    content: '';
    position: absolute;
    top: -100%;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, transparent, var(--glow-color), transparent);
    animation: shaftAnimation 2s linear infinite;
    z-index: 9999;
}

.arrow-head {
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 15px solid white;
    animation: headAnimation 2s ease-in-out infinite;
    z-index: 9999;
    filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.5));
}

.scroll-indicator {
    position: absolute;
    bottom: 180px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    z-index: 9999;
    animation: float 3s ease-in-out infinite;
}

@keyframes float {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(-10px); }
}

.scroll-text {
    color: var(--primary-color);
    font-size: 1rem;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 2px;
    text-shadow: 0 0 10px rgba(255, 0, 0, 0.5);
}

@keyframes shaftAnimation {
    0% { top: -100%; }
    100% { top: 100%; }
}

@keyframes headAnimation {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(10px); }
}

/* ロゴ */
.logo {
    margin-left: 8rem;
    height: 165px;
    display: flex;
    align-items: center;
    transition: all 0.3s ease;
}

.logo img {
    height: 165px;
    width: auto;
    vertical-align: middle;
    margin-top: 5px;
    transition: all 0.3s ease;
    filter: drop-shadow(0 0 20px rgba(255, 255, 255, 0.3));
}

.logo img:hover {
    filter: drop-shadow(0 0 30px rgba(255, 255, 255, 0.5));
    transform: scale(1.05);
}

/* Aboutセクション */
#about {
    position: relative;
    z-index: 2;
    padding: 6rem 2rem 6rem 2rem;
    max-width: none;
    width: 100%;
    margin: 0 auto;
    margin-left: -2rem;
    background: linear-gradient(180deg, rgba(0,0,0,0.95) 0%, rgba(10,10,20,0.98) 100%);
    text-align: center;
    overflow: hidden;
}


#about::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--glow-color), transparent);
    animation: lineMove 3s linear infinite;
    animation-delay: 0.5s;
    z-index: 10;
}

/* Message section */
#message {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
    overflow: hidden;
}

/* モバイル用改行 */
.mobile-br {
    display: none;
}

/* PC用改行 */
.pc-br {
    display: block;
}

#message::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: radial-gradient(ellipse at center, rgba(0, 100, 255, 0.1) 0%, transparent 50%);
    pointer-events: none;
}

#message-particles {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.message-content {
    position: relative;
    z-index: 2;
    max-width: 1000px;
    margin: 0 auto;
    text-align: center;
}

.message-block {
    margin-bottom: 3rem;
    opacity: 0;
    transform: translateY(30px);
}

.message-block.emphasis {
    margin: 4rem 0;
}

.message-block.final {
    margin-top: 5rem;
}

.message-line {
    font-size: 1.4rem;
    line-height: 2.2rem;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 1rem;
    letter-spacing: 0.05em;
    font-weight: 300;
}

.message-line .highlight {
    color: #fff;
    font-weight: 500;
    text-shadow: 0 0 20px rgba(100, 150, 255, 0.8),
                 0 0 40px rgba(100, 150, 255, 0.5),
                 0 0 60px rgba(100, 150, 255, 0.3);
    position: relative;
    display: inline-block;
}

.message-line .highlight::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(100, 150, 255, 0.8), transparent);
    animation: highlightPulse 3s ease-in-out infinite;
}

@keyframes highlightPulse {
    0%, 100% { opacity: 0.5; transform: scaleX(0.8); }
    50% { opacity: 1; transform: scaleX(1); }
}

#about::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
    pointer-events: none;
    animation: pulse 4s ease-in-out infinite;
}

@keyframes pulse {
    0%, 100% { transform: scale(1); opacity: 0.5; }
    50% { transform: scale(1.1); opacity: 0.8; }
}

#neural-network {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}

#about h2 {
    font-size: 2.5rem;
    margin-bottom: 2rem;
    color: white;
    position: relative;
    text-align: center;
}

@keyframes lineExpand {
    to { width: 100%; }
}

#about p {
    color: white;
    text-shadow: 8px 8px 8px rgba(255, 255, 255, 0.7);
}

#about .slogan {
    font-size: 1.8rem;
    font-weight: bold;
    color: white;
    margin-bottom: 5rem;
    background: linear-gradient(90deg, #fff, #ffffff, #fff);
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: gradientMove 3s linear infinite;
}

@keyframes gradientMove {
    to { background-position: 200% center; }
}

#about .description {
    font-size: 1.5rem;
    color: white;
    max-width: 800px;
    margin: 0 auto;
    line-height: 4rem;
    text-align: center;
}

/* 宇宙ビッグバンエフェクト付きタイトル */
.bigbang-title {
    position: relative;
    color: transparent;
    z-index: 10;
    font-weight: bold;
    text-transform: uppercase;
    overflow: visible;
    text-align: center;
    display: inline-block;
    width: 100%;
    font-size: inherit;
}

/* メインテキスト */
.bigbang-title::before {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    color: white;
    width: 100%;
    text-align: center;
    opacity: 0;
    z-index: 5;
}


/* 星屑 */
.bigbang-title .star {
    position: absolute;
    width: 2px;
    height: 2px;
    background: white;
    border-radius: 50%;
    opacity: 0;
    box-shadow: 0 0 4px white, 0 0 8px rgba(255, 255, 255, 0.5);
}

/* 多層レイヤー星雲エフェクト */
.bigbang-title .nebula-layer1 {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    transform: translate(-50%, -50%);
    background: radial-gradient(ellipse at center, 
        rgba(255, 255, 255, 0.4) 0%, 
        rgba(200, 220, 255, 0.3) 30%, 
        rgba(150, 200, 255, 0.1) 60%, 
        transparent 80%);
    filter: blur(25px);
    opacity: 0;
    z-index: 1;
}

.bigbang-title .nebula-layer2 {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 80%;
    height: 80%;
    transform: translate(-50%, -50%);
    background: radial-gradient(ellipse at center, 
        rgba(255, 230, 255, 0.3) 0%, 
        rgba(230, 200, 255, 0.2) 40%, 
        transparent 70%);
    filter: blur(15px);
    opacity: 0;
    z-index: 2;
}

.bigbang-title .nebula-layer3 {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 60%;
    height: 60%;
    transform: translate(-50%, -50%);
    background: radial-gradient(ellipse at center, 
        rgba(255, 255, 255, 0.6) 0%, 
        rgba(255, 255, 255, 0.3) 20%, 
        transparent 50%);
    filter: blur(10px);
    opacity: 0;
    z-index: 3;
}

/* ビッグバンアニメーション */

.bigbang-title.exploded .nebula-layer1 {
    animation: nebulaExpand1 2.5s linear forwards;
}

.bigbang-title.exploded .nebula-layer2 {
    animation: nebulaExpand2 2.2s linear forwards;
    animation-delay: 0.1s;
}

.bigbang-title.exploded .nebula-layer3 {
    animation: nebulaExpand3 2s linear forwards;
    animation-delay: 0.2s;
}

.bigbang-title.exploded::before {
    animation: titleReveal 1.5s ease-out 0.5s forwards;
}




@keyframes nebulaExpand1 {
    0% {
        transform: translate(-50%, -50%) scale(0) rotate(0deg);
        opacity: 0;
    }
    20% {
        opacity: 0.8;
    }
    80% {
        opacity: 0.5;
    }
    100% {
        transform: translate(-50%, -50%) scale(1.2) rotate(360deg);
        opacity: 0;
    }
}

@keyframes nebulaExpand2 {
    0% {
        transform: translate(-50%, -50%) scale(0) rotate(0deg);
        opacity: 0;
    }
    20% {
        opacity: 0.7;
    }
    80% {
        opacity: 0.4;
    }
    100% {
        transform: translate(-50%, -50%) scale(1.1) rotate(-240deg);
        opacity: 0;
    }
}

@keyframes nebulaExpand3 {
    0% {
        transform: translate(-50%, -50%) scale(0) rotate(0deg);
        opacity: 0;
    }
    20% {
        opacity: 0.9;
    }
    80% {
        opacity: 0.6;
    }
    100% {
        transform: translate(-50%, -50%) scale(1.05) rotate(180deg);
        opacity: 0;
    }
}

@keyframes titleReveal {
    0% {
        opacity: 0;
        transform: translateX(-50%) scale(0);
        filter: blur(20px);
    }
    50% {
        opacity: 0.5;
        transform: translateX(-50%) scale(1.2);
        filter: blur(10px);
    }
    100% {
        opacity: 1;
        transform: translateX(-50%) scale(1);
        filter: blur(0);
        text-shadow: 
            0 0 20px rgba(255, 255, 255, 0.8),
            0 0 40px rgba(255, 170, 0, 0.6),
            0 0 60px rgba(255, 0, 102, 0.4),
            0 0 80px rgba(138, 43, 226, 0.3);
    }
}

@keyframes starFormation {
    0% {
        transform: translate(-50%, -50%);
        opacity: 0;
    }
    30% {
        opacity: 1;
    }
    70% {
        opacity: 0.8;
        transform: translate(
            calc(-50% + var(--star-x) * 0.8), 
            calc(-50% + var(--star-y) * 0.8)
        );
    }
    100% {
        transform: translate(
            calc(-50% + var(--star-x)), 
            calc(-50% + var(--star-y))
        );
        opacity: 0;
    }
}


/* 未使用アニメーション */
@keyframes textMorphing {
    0% {
        text-shadow: 
            0 0 20px rgba(255, 255, 255, 0.8),
            0 0 40px rgba(255, 255, 255, 0.4);
        transform: translateX(-50%) scaleX(1) scaleY(1) skewX(0deg);
        letter-spacing: 0px;
    }
    25% {
        text-shadow: 
            0 0 30px rgba(255, 255, 255, 1),
            0 0 60px rgba(255, 255, 255, 0.6);
        transform: translateX(-50%) scaleX(1.1) scaleY(0.9) skewX(2deg);
        letter-spacing: 2px;
    }
    50% {
        text-shadow: 
            0 0 25px rgba(255, 255, 255, 0.9),
            0 0 50px rgba(255, 255, 255, 0.5);
        transform: translateX(-50%) scaleX(0.9) scaleY(1.1) skewX(-2deg);
        letter-spacing: -1px;
    }
    75% {
        text-shadow: 
            0 0 35px rgba(255, 255, 255, 1),
            0 0 70px rgba(255, 255, 255, 0.7);
        transform: translateX(-50%) scaleX(1.05) scaleY(0.95) skewX(1deg);
        letter-spacing: 1px;
    }
    100% {
        text-shadow: 
            0 0 20px rgba(255, 255, 255, 0.8),
            0 0 40px rgba(255, 255, 255, 0.4);
        transform: translateX(-50%) scaleX(1) scaleY(1) skewX(0deg);
        letter-spacing: 0px;
    }
}

/* デジタルノイズ効果 */
@keyframes digitalNoise {
    0%, 100% { opacity: 0; }
    10% { opacity: 0.1; }
    20% { opacity: 0; }
    30% { opacity: 0.05; }
    40% { opacity: 0; }
    80% { opacity: 0.08; }
    90% { opacity: 0; }
}

/* 完成後の電子干渉効果 */
.bigbang-title.complete::before {
    content: attr(data-text);
    animation: 
        titleReveal 1.5s ease-out 0.5s forwards,
        electronicInterference 3s linear infinite 2s;
}

/* 削除: 電子干渉縞 */

/* 干渉縞スキャンアニメーション */
@keyframes interferenceScan {
    0% {
        transform: translateY(0);
    }
    100% {
        transform: translateY(20px);
    }
}

/* 電子干渉効果アニメーション */
@keyframes electronicInterference {
    0%, 90% {
        text-shadow: 
            0 0 20px rgba(255, 255, 255, 0.8),
            0 0 40px rgba(255, 255, 255, 0.4);
        filter: none;
        transform: translateX(-50%) scale(1);
    }
    91%, 93% {
        text-shadow: 
            2px 0 0 rgba(255, 0, 0, 0.8),
            -2px 0 0 rgba(0, 255, 255, 0.8),
            0 0 30px rgba(255, 255, 255, 1);
        filter: contrast(2) brightness(1.2);
        transform: translateX(-50%) scale(1);
    }
    92%, 94% {
        text-shadow: 
            -1px 0 0 rgba(255, 0, 0, 0.8),
            1px 0 0 rgba(0, 255, 255, 0.8),
            0 0 25px rgba(255, 255, 255, 0.9);
        filter: contrast(0.8) brightness(1.1);
        transform: translateX(-50%) scale(1);
    }
    95% {
        text-shadow: 
            0 0 20px rgba(255, 255, 255, 0.8),
            0 0 40px rgba(255, 255, 255, 0.4);
        filter: none;
        transform: translateX(-50%) scale(1);
    }
}

/* 削除: ホログラム投影レイヤー */

/* カーソル点滅 */
@keyframes blinkCursor {
    0%, 50% { opacity: 1; }
    51%, 100% { opacity: 0; }
}

/* タイピング時の光効果 */
@keyframes typingCursor {
    0%, 100% {
        text-shadow: 
            0 0 20px rgba(255, 255, 255, 0.8),
            0 0 40px rgba(255, 255, 255, 0.4);
    }
    50% {
        text-shadow: 
            0 0 25px rgba(255, 255, 255, 0.9),
            0 0 50px rgba(255, 255, 255, 0.5);
    }
}

/* \u6587\u5b57\u6b6a\u307f\u52b9\u679c */
@keyframes textDistortion {
    0%, 100% {
        transform: translateX(-50%) skew(0deg, 0deg) rotateX(0deg);
    }
    20% {
        transform: translateX(-50%) skew(0.5deg, 0deg) rotateX(1deg);
    }
    40% {
        transform: translateX(-50%) skew(-0.5deg, 0.2deg) rotateX(-0.5deg);
    }
    60% {
        transform: translateX(-50%) skew(0.2deg, -0.3deg) rotateX(0.5deg);
    }
    80% {
        transform: translateX(-50%) skew(-0.3deg, 0deg) rotateX(-0.3deg);
    }
}

/* 削除: 旧ホログラムノイズオーバーレイ */

/* 削除された古いグリッチアニメーション */

/* スプリットテキストエフェクト */
.split-text {
    opacity: 0;
    transform: translateY(20px);
    position: relative;
    color: white;
}

.split-text.animate-split {
    opacity: 1;
    animation: fadeInUp 1.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards 0.5s;
}

/* サイバーテキストエフェクト */
.cyber-text {
    opacity: 0;
    color: white;
}

.cyber-text.animate-cyber {
    opacity: 1;
}

.text-block {
    display: inline;
    opacity: 0;
    transform: translateX(-20px) translateZ(-100px) rotateY(-90deg);
    filter: blur(10px);
}

.cyber-text.animate-cyber .text-block {
    animation: cyberReveal 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

/* 個別のディレイ設定 */
.cyber-text.animate-cyber .text-block:nth-child(1) { animation-delay: 1.0s; }
.cyber-text.animate-cyber .text-block:nth-child(2) { animation-delay: 1.5s; }
.cyber-text.animate-cyber .text-block:nth-child(3) { animation-delay: 2.0s; }
.cyber-text.animate-cyber .text-block:nth-child(4) { animation-delay: 2.5s; }
.cyber-text.animate-cyber .text-block:nth-child(5) { animation-delay: 3.0s; }

@keyframes glitchIn {
    0% {
        opacity: 0;
        transform: translateY(-50px) scale(0.9);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes glitch-anim {
    0% {
        clip: rect(44px, 9999px, 98px, 0);
        transform: translate(-2px, -2px);
    }
    25% {
        clip: rect(10px, 9999px, 85px, 0);
        transform: translate(2px, 2px);
    }
    50% {
        clip: rect(63px, 9999px, 32px, 0);
        transform: translate(-2px, 2px);
    }
    75% {
        clip: rect(5px, 9999px, 75px, 0);
        transform: translate(2px, -2px);
    }
    100% {
        clip: rect(32px, 9999px, 15px, 0);
        transform: translate(-2px, -2px);
    }
}

@keyframes glitch-anim2 {
    0% {
        clip: rect(32px, 9999px, 15px, 0);
        transform: translate(2px, 2px);
    }
    25% {
        clip: rect(5px, 9999px, 75px, 0);
        transform: translate(-2px, -2px);
    }
    50% {
        clip: rect(63px, 9999px, 32px, 0);
        transform: translate(2px, -2px);
    }
    75% {
        clip: rect(10px, 9999px, 85px, 0);
        transform: translate(-2px, 2px);
    }
    100% {
        clip: rect(44px, 9999px, 98px, 0);
        transform: translate(2px, 2px);
    }
}

@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes cyberReveal {
    0% {
        opacity: 0;
        transform: translateX(-20px) translateZ(-100px) rotateY(-90deg);
        filter: blur(10px);
    }
    100% {
        opacity: 1;
        transform: translateX(0) translateZ(0) rotateY(0);
        filter: blur(0);
    }
}

/* Servicesセクション */
#services-neural-network {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;  /* 背景として適切なz-indexを設定 */
    pointer-events: none;  /* クリックイベントを通過させる */
}

#services {
    position: relative;
    z-index: 2;
    padding: 5rem 2rem;
    background: linear-gradient(135deg, #000 0%, #0a0a0a 100%);
    overflow: hidden;
}

#services::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--glow-color), transparent);
    animation: lineMove 3s linear infinite;
    animation-delay: 1s;
    z-index: 10;
}

#services::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
    /* animation: rotate 20s linear infinite; */ /* 回転アニメーションを無効化 */
}

@keyframes rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

#services h2 {
    color: white;
    background-color: transparent;
    font-size: 2.5rem;
    margin-top: 4rem;
    margin-bottom: 2rem;
    text-align: center;
    position: relative;
    z-index: 1;
}


.service-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    padding: 0 7rem 0 4rem;
    margin: 2rem auto 0;
    width: 100%;
    max-width: 1800px;
    position: relative;
    z-index: 5;  /* 背景キャンバスより前面に配置 */
}

.service-item {
    /* グラスモーフィズム + モノトーンオーロラ効果 */
    background:
        /* モノトーンオーロラ（白・グレーの放射状グラデーション）- くっきり強調 */
        radial-gradient(ellipse at 20% 20%, rgba(255, 255, 255, 0.35) 0%, transparent 45%),
        radial-gradient(ellipse at 80% 30%, rgba(255, 255, 255, 0.28) 0%, transparent 45%),
        radial-gradient(ellipse at 30% 80%, rgba(220, 220, 220, 0.25) 0%, transparent 45%),
        radial-gradient(ellipse at 90% 80%, rgba(255, 255, 255, 0.22) 0%, transparent 45%),
        /* ベースのグラスモーフィズム */
        rgba(255, 255, 255, 0.06);
    background-size: 180% 180%, 180% 180%, 180% 180%, 180% 180%, 100% 100%;
    animation: monoAuroraShift 8s ease-in-out infinite;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-radius: 20px;
    margin: 0;
    transition: all 0.5s cubic-bezier(0.23, 1, 0.320, 1);
    width: 90%;
    min-height: 280px;
    display: flex;
    position: relative;
    z-index: 10;
    vertical-align: top;
    overflow: hidden;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: translateY(50px) scale(0.9);
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}

@keyframes monoAuroraShift {
    0%, 100% {
        background-position: 0% 0%, 100% 0%, 0% 100%, 100% 100%, 0% 0%;
    }
    25% {
        background-position: 50% 50%, 50% 100%, 100% 50%, 0% 0%, 0% 0%;
    }
    50% {
        background-position: 100% 100%, 0% 50%, 50% 0%, 50% 50%, 0% 0%;
    }
    75% {
        background-position: 50% 0%, 100% 50%, 0% 50%, 100% 100%, 0% 0%;
    }
}

.service-item.fade-in {
    opacity: 1;
    transform: translateY(0) scale(1);
}

/* スポットライト追従エフェクト */
.service-item::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(
        circle 150px at var(--mouse-x, 50%) var(--mouse-y, 50%),
        rgba(255, 255, 255, 0.3) 0%,
        rgba(255, 255, 255, 0.1) 40%,
        transparent 70%
    );
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    border-radius: 20px;
    z-index: 1;
}

.service-item:hover::after {
    opacity: 1;
}

.service-content {
    position: relative;
    z-index: 2;
    color: #ffffff;
    text-align: center;
    transform: translateZ(0);
    transition: transform 0.5s ease;
    padding: 2rem;
}


.service-item h3 {
    color: #ffffff;
    font-size: 1.8rem;
    margin-bottom: 1rem;
    text-align: center;
    z-index: 2;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    transition: all 0.3s ease;
}

.service-item:hover h3 {
    text-shadow: 0 0 20px rgba(255, 255, 255, 0.9),
                 0 0 40px rgba(255, 255, 255, 0.5);
}

.service-item p {
    font-size: 1.1rem;
    line-height: 1.6;
    text-align: center;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.9);
    z-index: 2;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.service-item:hover {
    background:
        radial-gradient(ellipse at 20% 20%, rgba(255, 255, 255, 0.25) 0%, transparent 45%),
        radial-gradient(ellipse at 80% 30%, rgba(255, 255, 255, 0.20) 0%, transparent 45%),
        radial-gradient(ellipse at 30% 80%, rgba(200, 200, 200, 0.18) 0%, transparent 45%),
        radial-gradient(ellipse at 90% 80%, rgba(255, 255, 255, 0.15) 0%, transparent 45%),
        rgba(255, 255, 255, 0.08);
    background-size: 180% 180%, 180% 180%, 180% 180%, 180% 180%, 100% 100%;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.4),
                0 0 80px rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.5);
    transform: translateY(-5px) scale(1.02);
    animation: monoAuroraShiftFast 4s ease-in-out infinite;
}

/* ボーダーライトトレイル用の疑似要素 */
.service-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: 20px;
    padding: 2px;
    background: linear-gradient(90deg, transparent, transparent);
    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    z-index: 10;
    pointer-events: none;
}

.service-item:hover::before {
    background: conic-gradient(
        from var(--light-angle, 0deg),
        transparent 0deg,
        transparent 20deg,
        var(--trail-color-dim) 40deg,
        var(--trail-color-mid) 55deg,
        var(--trail-color) 60deg,
        var(--trail-color-mid) 65deg,
        var(--trail-color-dim) 80deg,
        transparent 100deg,
        transparent 360deg
    );
    filter: drop-shadow(0 0 8px var(--trail-glow))
            drop-shadow(0 0 15px var(--trail-glow))
            drop-shadow(0 0 30px var(--trail-glow));
    animation:
        borderLightTrail 1.5s linear infinite,
        colorShift 6s ease-in-out infinite;
}

@keyframes borderLightTrail {
    0% {
        --light-angle: 0deg;
    }
    100% {
        --light-angle: 360deg;
    }
}

/* 白→赤→黒→青の色変化 */
@keyframes colorShift {
    0%, 100% {
        --trail-color: rgba(255, 255, 255, 1);
        --trail-color-mid: rgba(255, 255, 255, 0.9);
        --trail-color-dim: rgba(255, 255, 255, 0.5);
        --trail-glow: rgba(255, 255, 255, 0.8);
    }
    25% {
        --trail-color: rgba(255, 50, 50, 1);
        --trail-color-mid: rgba(255, 0, 0, 0.9);
        --trail-color-dim: rgba(255, 0, 0, 0.5);
        --trail-glow: rgba(255, 0, 0, 0.8);
    }
    50% {
        --trail-color: rgba(0, 0, 0, 1);
        --trail-color-mid: rgba(30, 30, 30, 0.9);
        --trail-color-dim: rgba(50, 50, 50, 0.7);
        --trail-glow: rgba(255, 255, 255, 0.5);
    }
    75% {
        --trail-color: rgba(0, 150, 255, 1);
        --trail-color-mid: rgba(0, 100, 255, 0.9);
        --trail-color-dim: rgba(0, 50, 255, 0.5);
        --trail-glow: rgba(0, 150, 255, 0.8);
    }
}

/* CSS変数アニメーション用 */
@property --light-angle {
    syntax: '<angle>';
    initial-value: 0deg;
    inherits: false;
}

@property --trail-color {
    syntax: '<color>';
    initial-value: rgba(255, 255, 255, 1);
    inherits: false;
}

@property --trail-color-mid {
    syntax: '<color>';
    initial-value: rgba(255, 255, 255, 0.9);
    inherits: false;
}

@property --trail-color-dim {
    syntax: '<color>';
    initial-value: rgba(255, 255, 255, 0.5);
    inherits: false;
}

@property --trail-glow {
    syntax: '<color>';
    initial-value: rgba(255, 255, 255, 0.8);
    inherits: false;
}

@keyframes monoAuroraShiftFast {
    0%, 100% {
        background-position: 0% 0%, 100% 0%, 0% 100%, 100% 100%, 0% 0%;
    }
    50% {
        background-position: 100% 100%, 0% 50%, 100% 0%, 0% 50%, 0% 0%;
    }
}

/* マトリックスコードアニメーション */
.matrix-card {
    position: relative;
    overflow: hidden;
}

.matrix-card.matrix-forming {
    background-color: #000;
    background-image: none !important;
}

.matrix-card.matrix-complete {
    transition: all 1s ease;
}

.matrix-rain {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 4;
    pointer-events: none;
}

.matrix-card .service-content {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s ease;
    position: relative;
    z-index: 5;
}

.matrix-card.content-visible .service-content {
    opacity: 1;
    transform: translateY(0);
}

/* モバイルでは即座に表示 */
@media (max-width: 768px) {
    .matrix-card .service-content {
        opacity: 1;
        transform: translateY(0);
    }
}

/* マトリックス形成中の効果 */
.matrix-card.matrix-forming {
    box-shadow: 0 0 30px rgba(0, 0, 255, 0.5);
    border: 1px solid rgba(0, 0, 255, 0.3);
}

/* グリーンのデジタル感 */
@keyframes matrixGlow {
    0%, 100% { opacity: 0.8; }
    50% { opacity: 1; }
}

/* サービスカード クリック誘導リンク */
.service-detail-link {
    display: inline-block;
    margin-top: 1.2rem;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.9rem;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: color 0.3s ease, letter-spacing 0.3s ease;
    position: relative;
    z-index: 2;
}

.service-detail-link:hover {
    color: #fff;
    letter-spacing: 0.12em;
}

/* カードをクリック可能に */
.service-item[data-modal] {
    cursor: pointer;
}

/* サービス詳細モーダル */
.service-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

.service-modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

/* モーダル本体 */
.service-modal {
    background: rgba(8, 8, 14, 0.92);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 20px;
    padding: 0;
    max-width: 760px;
    width: 90%;
    max-height: 80vh;
    position: relative;
    overflow: hidden;
    transform: translateY(40px) scale(0.92);
    opacity: 0;
    transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1),
                opacity 0.8s ease;
    box-shadow:
        0 30px 80px rgba(0, 0, 0, 0.6),
        0 0 0 1px rgba(255, 255, 255, 0.05);
}

.service-modal-overlay.active .service-modal {
    transform: translateY(0) scale(1);
    opacity: 1;
}

/* ボーダー（未使用） */
.service-modal-border {
    display: none;
}

/* 開いた瞬間の水平スキャンライン */
.service-modal-scanline {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 60px;
    z-index: 3;
    opacity: 0;
    transform: translateY(0);
    pointer-events: none;
    background:
        /* メインライン（太く明るい） */
        linear-gradient(180deg,
            transparent 0%,
            rgba(255, 255, 255, 0.05) 30%,
            rgba(255, 255, 255, 1) 48%,
            rgba(255, 255, 255, 1) 52%,
            rgba(255, 255, 255, 0.05) 70%,
            transparent 100%
        );
    box-shadow:
        0 0 30px 8px rgba(255, 255, 255, 0.3),
        0 0 60px 15px rgba(255, 255, 255, 0.1);
}

/* スキャンラインが照らすエリア（光の帯） */
.service-modal-scanline::before {
    content: '';
    position: absolute;
    top: -40px;
    left: 0;
    width: 100%;
    height: 140px;
    background: radial-gradient(
        ellipse 100% 100% at 50% 50%,
        rgba(255, 255, 255, 0.12) 0%,
        rgba(255, 255, 255, 0.04) 50%,
        transparent 100%
    );
}

.service-modal-overlay.active .service-modal-scanline {
    animation: modalScanline 2s cubic-bezier(0.25, 0.1, 0.25, 1) 0.5s forwards;
}

@keyframes modalScanline {
    0% {
        opacity: 1;
        transform: translateY(-30px);
    }
    70% {
        opacity: 0.8;
    }
    100% {
        opacity: 0;
        transform: translateY(calc(80vh));
    }
}

/* スクロール可能な内部コンテンツ */
.service-modal-inner {
    padding: 3rem;
    max-height: 80vh;
    overflow-y: auto;
    position: relative;
    z-index: 1;
}

.service-modal-inner::-webkit-scrollbar {
    width: 4px;
}

.service-modal-inner::-webkit-scrollbar-track {
    background: transparent;
}

.service-modal-inner::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.15);
    border-radius: 2px;
}

/* 閉じるボタン */
.service-modal-close {
    position: absolute;
    top: 1rem;
    right: 1.2rem;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, 0.5);
    font-size: 1.4rem;
    cursor: pointer;
    transition: all 0.3s ease;
    line-height: 1;
    padding: 0;
    z-index: 4;
}

.service-modal-close:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.35);
    transform: rotate(90deg);
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.1);
}

/* タイトル — フェードイン */
.service-modal-title {
    color: #fff;
    font-size: 1.4rem;
    margin-bottom: 1.8rem;
    padding-right: 2.5rem;
    padding-bottom: 1.2rem;
    line-height: 1.5;
    position: relative;
    text-shadow: 0 0 30px rgba(255, 255, 255, 0.2);
    opacity: 0;
    filter: blur(16px);
    transform: scale(1.04);
}

/* タイトル下のライン（左から伸びる） */
.service-modal-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    height: 1px;
    width: 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.5), transparent);
    transition: width 0.8s ease;
}

.service-modal-title.reveal::after {
    width: 100%;
    transition-delay: 0.4s;
}

/* リード文 — フェードイン */
/* リード文 */
.service-modal-lead {
    color: #fff;
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.8;
    margin-bottom: 1.4rem;
    padding: 1rem 1.2rem;
    background: rgba(255, 255, 255, 0.03);
    border-left: 2px solid rgba(255, 255, 255, 0.3);
    border-radius: 0 8px 8px 0;
    opacity: 0;
    filter: blur(12px);
    transform: scale(1.03);
}

/* 本文 */
.service-modal-body {
    color: rgba(255, 255, 255, 0.8);
    font-size: 1.05rem;
    line-height: 2;
    opacity: 0;
    filter: blur(12px);
    transform: scale(1.02);
}

/* ブラー→シャープ：ピントが合うように鮮明に */
.service-modal-title.reveal {
    animation: blurReveal 1s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}

.service-modal-lead.reveal {
    animation: blurReveal 0.9s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}

.service-modal-body.reveal {
    animation: blurReveal 1.1s cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
}

@keyframes blurReveal {
    0% {
        opacity: 0;
        filter: blur(16px);
        transform: scale(1.04);
    }
    40% {
        opacity: 0.6;
        filter: blur(6px);
    }
    100% {
        opacity: 1;
        filter: blur(0px);
        transform: scale(1);
    }
}

/* モーダル モバイル対応 */
@media (max-width: 768px) {
    .service-modal {
        width: 92%;
        max-height: 75vh;
        border-radius: 16px;
    }

    .service-modal-inner {
        padding: 2.2rem 1.5rem;
        max-height: 75vh;
    }

    .service-modal-title {
        font-size: 1.2rem;
        padding-right: 2.5rem;
    }

    .service-modal-lead {
        font-size: 1.05rem;
        padding: 0.8rem 1rem;
    }

    .service-modal-body {
        font-size: 1rem;
        line-height: 1.8;
    }
}

/* Companyセクション */
#company {
    position: relative;
    z-index: 2;
    padding: 5rem 2rem;
    text-align: center;
    background: linear-gradient(135deg, #000 0%, #0a0a0a 50%, #050510 100%);
    transform-style: preserve-3d;
    overflow: hidden;
}

#company::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--glow-color), transparent);
    animation: lineMove 3s linear infinite;
    animation-delay: 1.5s;
    z-index: 10;
}

#company-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

#company::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: radial-gradient(circle at 50% 50%, rgba(255,0,102,0.03) 0%, transparent 50%);
    z-index: -1;
    pointer-events: none;
}

.overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.3);
    z-index: 1;
    backdrop-filter: blur(2px);
    pointer-events: none;
}

#company h2 {
    color: white;
    font-size: 2.6rem;
    margin-top: 4rem;
    margin-bottom: 2rem;
    position: relative;
    z-index: 10;
    text-shadow: 0 0 30px rgba(255, 255, 255, 0.8);
}


.company-info {
    width: 100%;
    max-width: 640px;
    margin: 0 auto;
    border-collapse: separate;
    border-spacing: 0 15px;
    position: relative;
    z-index: 10;
    transform: translateZ(50px);
    background: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(10px);
    padding: 2rem;
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(255, 255, 255, 0.3);
}

.company-info tr {
    transition: all 0.3s ease;
}

/* ホバー時の右移動を削除 */
/*
.company-info tr:hover {
    transform: translateX(10px);
}
*/

.company-info th, .company-info td {
    text-align: center;
    vertical-align: top;
    padding: 10px;
    font-size: 1.5rem;
    font-weight: bold;
}

.company-info th {
    color: white;
    width: 30%;
    font-weight: normal;
    border-right: 2px solid #ff0000;
    font-weight: bold;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
}

.company-info td {
    color: white;
    width: 100%;
    text-shadow: 0 0 5px rgba(255, 255, 255, 0.3);
}

/* Contactセクション - contact.cssに移動しました */

/* button[type="submit"] - contact.cssに移動しました */

/* フッター */
footer {
    text-align: center;
    padding: 2rem 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.9) 0%, rgba(0,0,0,1) 100%);
    border-top: 1px solid #333;
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
}

footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--glow-color), transparent);
    animation: lineMove 3s linear infinite;
}

@keyframes lineMove {
    from { transform: translateX(-100%); }
    to { transform: translateX(100%); }
}

.footer-links {
    margin-bottom: 1rem;
    display: flex;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
}

.footer-links a {
    color: white;
    text-decoration: none;
    padding: 0.5rem 1rem;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 3px;
    font-size: 0.9rem;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.footer-links a::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: all 0.5s ease;
}

.footer-links a:hover::before {
    width: 200%;
    height: 200%;
}

.footer-links a:hover {
    color: #fff;
    border-color: var(--glow-color);
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(255, 255, 255, 0.3);
}

footer p {
    color: #ccc;
    margin: 0;
    font-size: 0.9rem;
}

/* パララックス効果 */
.parallax-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 0;
}

.parallax-layer {
    position: absolute;
    width: 110%;
    height: 110%;
}


/* 4番目と5番目のアイテムを中央寄せ（間隔を広げる） */
.service-item:nth-child(4) {
    grid-column: 1 / 2;
    justify-self: end;
    margin-top: 3rem;
    margin-right: -40%;
}

.service-item:nth-child(5) {
    grid-column: 3 / 4;
    justify-self: start;
    margin-top: 3rem;
    margin-left: -50%;
}

/* レスポンシブデザイン */
@media (max-width: 768px) {
    #services {
        overflow: hidden;
    }
    
    .service-container {
        display: flex;
        overflow-x: auto;
        overflow-y: hidden; /* 縦スクロールを無効化 */
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        padding: 0 1rem;
        gap: 1rem;
        /* グリッドの代わりにフレックスボックスを使用 */
        grid-template-columns: unset;
        align-items: center; /* カードを中央揃え */
    }
    
    .service-container::-webkit-scrollbar {
        height: 8px;
    }
    
    .service-container::-webkit-scrollbar-track {
        background: rgba(255, 255, 255, 0.1);
        border-radius: 4px;
    }
    
    .service-container::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, 0.3);
        border-radius: 4px;
    }
    
    .service-item {
        flex: 0 0 80vw; /* カード幅を画面幅の80%に */
        max-width: 350px;
        height: 400px; /* 固定高さを設定 */
        min-height: unset; /* min-heightを解除 */
        scroll-snap-align: center;
        margin: 0;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    
    .service-item:nth-child(4),
    .service-item:nth-child(5) {
        grid-column: unset;
        justify-self: unset;
        margin: 0;
    }
    
    /* 最初と最後のアイテムに余白を追加 */
    .service-item:first-child {
        margin-left: 10vw;
    }
    
    .service-item:last-child {
        margin-right: 10vw;
    }
    
    /* サービスコンテンツのパディング調整 */
    .service-content {
        padding: 2rem 1.5rem;
        width: 100%;
    }
    
    .service-item h3 {
        font-size: 1.5rem;
        margin-bottom: 1.5rem;
        display: block; /* ブロック要素として表示 */
        white-space: normal; /* 改行を許可 */
    }
    
    .service-item p {
        font-size: 1.1rem;
    }
    
    /* サービスカード内のPC用改行を非表示（mobile-br以外） */
    .service-content br:not(.mobile-br),
    .service-content h3 br:not(.mobile-br) {
        display: none;
    }
    
    /* サービスカード内のモバイル用改行を表示 */
    .service-content br.mobile-br,
    .service-content h3 br.mobile-br {
        display: block !important;
    }
    
    .desktop-nav ul li {
        margin: 0 1rem;
    }
    
    
    
    #home h1 {
        font-size: 3rem;
    }
    
    #home p {
        font-size: 1.5rem;
        line-height: 1.8;
    }
    
    /* サブタイトルの改行とレイアウト */
    #home p .subtitle-line1,
    #home p .subtitle-line2 {
        display: block;
    }
    
    #home p .subtitle-line1 {
        margin-left: 0;
    }
    
    #home p .subtitle-line2 {
        margin-left: 35%; 
    }
    
    .logo {
        margin-left: 0;
    }
    
    .logo img {
        height: 120px;
    }
    
    /* スクロールインジケーターのモバイル調整 */
    .scroll-indicator {
        bottom: 120px; /* 下に移動 */
    }
    
    .arrow-container {
        width: 20px; /* 小さく */
        height: 35px;
        margin-right: 15px;
    }
    
    .arrow-shaft {
        width: 1.5px; /* 細く */
        height: 60px;
    }
    
    .arrow-head {
        border-left: 7px solid transparent;
        border-right: 7px solid transparent;
        border-top: 10px solid white;
    }
    
    .scroll-text {
        font-size: 0.8rem; /* 小さく */
        letter-spacing: 1.5px;
    }
    
    /* メッセージセクションのテキストサイズ調整 */
    .message-line {
        font-size: 1rem;
        line-height: 1.5rem;
    }
    
    /* モバイル用改行を表示 */
    .mobile-br {
        display: block;
    }
    
    /* PC用改行を非表示 */
    .pc-br {
        display: none;
    }
    
    /* ABOUTセクションのテキストサイズ調整 */
    #about .slogan {
        font-size: 1.3rem;
        margin-bottom: 3rem;
    }
    
    #about .description {
        font-size: 1.1rem;
        line-height: 2.5rem;
    }
    
    /* 各セクションのh2タイトルを統一 */
    #services h2,
    #about h2,
    #company h2 {
        font-size: 2rem;
    }
    
    .company-info {
        padding: 1.5rem;
    }
    
    .company-info th, .company-info td {
        font-size: 1.1rem;
        padding: 8px;
    }
    
    .company-info th {
        width: 35%;
    }
}

/* AI動的ロゴアニメーション（一時的に無効化） */
/*
.ai-logos-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 3;
}

.floating-logo {
    position: absolute;
    width: 60px;
    height: 60px;
    transform-style: preserve-3d;
}

.ai-floating-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: brightness(1.5) drop-shadow(0 0 15px rgba(255, 255, 255, 0.8));
    transition: transform 0.3s ease;
}

.logo-trail {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.3) 0%, transparent 70%);
    filter: blur(10px);
    transform: scale(1.5);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.floating-logo:hover .logo-trail {
    opacity: 1;
}
*/

/* 各ロゴの独自の動き（一時的に無効化） */
/*
.logo-1 {
    animation: floatPath1 20s infinite ease-in-out;
}

.logo-2 {
    animation: floatPath2 25s infinite ease-in-out;
}

.logo-3 {
    animation: floatPath3 30s infinite ease-in-out;
}

.logo-4 {
    animation: floatPath4 22s infinite ease-in-out;
}

.logo-5 {
    animation: floatPath5 28s infinite ease-in-out;
}

.logo-6 {
    animation: floatPath6 24s infinite ease-in-out;
}

.logo-7 {
    animation: floatPath7 26s infinite ease-in-out;
}

.logo-8 {
    animation: floatPath8 23s infinite ease-in-out;
}

.logo-9 {
    animation: floatPath9 27s infinite ease-in-out;
}

.logo-10 {
    animation: floatPath10 21s infinite ease-in-out;
}

.logo-11 {
    animation: floatPath11 29s infinite ease-in-out;
}

.logo-12 {
    animation: floatPath12 25s infinite ease-in-out;
}
*/

/* 複雑な動きのパス（一時的に無効化） */
/*
@keyframes floatPath1 {
    0% { 
        transform: translate(10vw, 20vh) rotate(0deg) scale(0.8);
    }
    25% { 
        transform: translate(80vw, 70vh) rotate(90deg) scale(1.2);
    }
    50% { 
        transform: translate(20vw, 80vh) rotate(180deg) scale(0.9);
    }
    75% { 
        transform: translate(70vw, 30vh) rotate(270deg) scale(1.1);
    }
    100% { 
        transform: translate(10vw, 20vh) rotate(360deg) scale(0.8);
    }
}

@keyframes floatPath2 {
    0% { 
        transform: translate(90vw, 10vh) rotate(0deg) scale(1);
    }
    33% { 
        transform: translate(30vw, 50vh) rotate(120deg) scale(0.7);
    }
    66% { 
        transform: translate(60vw, 90vh) rotate(240deg) scale(1.3);
    }
    100% { 
        transform: translate(90vw, 10vh) rotate(360deg) scale(1);
    }
}

@keyframes floatPath3 {
    0% { 
        transform: translate(50vw, 5vh) rotate(0deg) scale(0.9);
    }
    20% { 
        transform: translate(10vw, 40vh) rotate(72deg) scale(1.1);
    }
    40% { 
        transform: translate(90vw, 60vh) rotate(144deg) scale(0.8);
    }
    60% { 
        transform: translate(40vw, 90vh) rotate(216deg) scale(1.2);
    }
    80% { 
        transform: translate(80vw, 20vh) rotate(288deg) scale(0.9);
    }
    100% { 
        transform: translate(50vw, 5vh) rotate(360deg) scale(0.9);
    }
}

@keyframes floatPath4 {
    0% { 
        transform: translate(20vw, 90vh) rotate(0deg) scale(1.1);
    }
    50% { 
        transform: translate(80vw, 10vh) rotate(180deg) scale(0.8);
    }
    100% { 
        transform: translate(20vw, 90vh) rotate(360deg) scale(1.1);
    }
}

@keyframes floatPath5 {
    0% { 
        transform: translate(70vw, 50vh) rotate(0deg) scale(1);
    }
    25% { 
        transform: translate(30vw, 20vh) rotate(90deg) scale(1.2);
    }
    50% { 
        transform: translate(50vw, 80vh) rotate(180deg) scale(0.7);
    }
    75% { 
        transform: translate(90vw, 40vh) rotate(270deg) scale(1.1);
    }
    100% { 
        transform: translate(70vw, 50vh) rotate(360deg) scale(1);
    }
}

@keyframes floatPath6 {
    0% { 
        transform: translate(5vw, 60vh) rotate(0deg) scale(0.8) translateZ(100px);
    }
    100% { 
        transform: translate(95vw, 40vh) rotate(720deg) scale(1.2) translateZ(-100px);
    }
}

@keyframes floatPath7 {
    0% { 
        transform: translate(85vw, 80vh) rotate(0deg) scale(1.3);
    }
    100% { 
        transform: translate(15vw, 10vh) rotate(-360deg) scale(0.7);
    }
}

@keyframes floatPath8 {
    0% { 
        transform: translate(40vw, 70vh) rotate(0deg) scale(0.9);
    }
    33% { 
        transform: translate(10vw, 10vh) rotate(120deg) scale(1.1);
    }
    66% { 
        transform: translate(80vw, 50vh) rotate(240deg) scale(0.8);
    }
    100% { 
        transform: translate(40vw, 70vh) rotate(360deg) scale(0.9);
    }
}

@keyframes floatPath9 {
    0% { 
        transform: translate(60vw, 30vh) rotate(0deg) scale(1);
    }
    50% { 
        transform: translate(20vw, 60vh) rotate(180deg) scale(1.2);
    }
    100% { 
        transform: translate(60vw, 30vh) rotate(360deg) scale(1);
    }
}

@keyframes floatPath10 {
    0% { 
        transform: translate(25vw, 25vh) rotate(0deg) scale(0.8);
    }
    100% { 
        transform: translate(75vw, 75vh) rotate(360deg) scale(1.3);
    }
}

@keyframes floatPath11 {
    0% { 
        transform: translate(95vw, 95vh) rotate(0deg) scale(1.1);
    }
    100% { 
        transform: translate(5vw, 5vh) rotate(-720deg) scale(0.9);
    }
}

@keyframes floatPath12 {
    0% { 
        transform: translate(35vw, 85vh) rotate(0deg) scale(1);
    }
    25% { 
        transform: translate(65vw, 15vh) rotate(90deg) scale(0.7);
    }
    50% { 
        transform: translate(85vw, 65vh) rotate(180deg) scale(1.2);
    }
    75% { 
        transform: translate(15vw, 35vh) rotate(270deg) scale(0.9);
    }
    100% { 
        transform: translate(35vw, 85vh) rotate(360deg) scale(1);
    }
}
*/

/* 3D効果を追加（一時的に無効化） */
/*
.floating-logo:nth-child(odd) .ai-floating-logo {
    animation: rotate3D 15s infinite linear;
}

.floating-logo:nth-child(even) .ai-floating-logo {
    animation: rotate3D 15s infinite linear reverse;
}

@keyframes rotate3D {
    0% {
        transform: rotateY(0deg) rotateX(0deg);
    }
    100% {
        transform: rotateY(360deg) rotateX(360deg);
    }
}
*/

/* レスポンシブ対応（浮遊ロゴ用、一時的に無効化） */
/*
@media (max-width: 768px) {
    .floating-logo {
        width: 40px;
        height: 40px;
    }
}
*/

/* 旧AIコア3Dアニメーション（使用しない） */
.ai-core-container {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 600px;
    height: 600px;
    perspective: 1000px;
    z-index: 3;
}

.ai-core {
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    animation: coreRotate 20s linear infinite;
}

@keyframes coreRotate {
    from { transform: rotateY(0deg) rotateX(10deg); }
    to { transform: rotateY(360deg) rotateX(10deg); }
}

/* ロゴの軌道 */
.logo-orbit {
    position: absolute;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
}

.logo-wrapper {
    position: absolute;
    width: 80px;
    height: 80px;
    transform-style: preserve-3d;
    animation: logoSpin 10s linear infinite;
}

@keyframes logoSpin {
    from { transform: rotateY(0deg); }
    to { transform: rotateY(-360deg); }
}

.ai-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: brightness(1.5) drop-shadow(0 0 20px rgba(255, 255, 255, 0.8));
}

.logo-glow {
    position: absolute;
    top: -20px;
    left: -20px;
    right: -20px;
    bottom: -20px;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.6) 0%, transparent 70%);
    filter: blur(15px);
    animation: glowPulse 2s ease-in-out infinite;
}

@keyframes glowPulse {
    0%, 100% { opacity: 0.5; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.2); }
}

/* 各軌道の配置 */
.orbit-1 { transform: rotateY(0deg) rotateX(0deg); }
.orbit-1 .logo-wrapper { 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%) translateZ(200px); 
}

.orbit-2 { transform: rotateY(45deg) rotateX(0deg); }
.orbit-2 .logo-wrapper { 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%) translateZ(200px); 
}

.orbit-3 { transform: rotateY(90deg) rotateX(0deg); }
.orbit-3 .logo-wrapper { 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%) translateZ(200px); 
}

.orbit-4 { transform: rotateY(135deg) rotateX(0deg); }
.orbit-4 .logo-wrapper { 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%) translateZ(200px); 
}

.orbit-5 { transform: rotateY(180deg) rotateX(0deg); }
.orbit-5 .logo-wrapper { 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%) translateZ(200px); 
}

.orbit-6 { transform: rotateY(225deg) rotateX(0deg); }
.orbit-6 .logo-wrapper { 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%) translateZ(200px); 
}

.orbit-7 { transform: rotateY(270deg) rotateX(0deg); }
.orbit-7 .logo-wrapper { 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%) translateZ(200px); 
}

.orbit-8 { transform: rotateY(315deg) rotateX(0deg); }
.orbit-8 .logo-wrapper { 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%) translateZ(200px); 
}

/* 中心のコア */
.core-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100px;
    height: 100px;
}

.core-pulse {
    position: absolute;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle, #fff 0%, transparent 70%);
    border-radius: 50%;
    animation: corePulse 2s ease-in-out infinite;
}

@keyframes corePulse {
    0%, 100% { transform: scale(0.8); opacity: 0.3; }
    50% { transform: scale(1.2); opacity: 0.8; }
}

.core-energy {
    position: absolute;
    width: 150%;
    height: 150%;
    top: -25%;
    left: -25%;
    background: radial-gradient(circle, rgba(0, 255, 255, 0.4) 0%, transparent 50%);
    filter: blur(20px);
    animation: energyRotate 5s linear infinite;
}

@keyframes energyRotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .ai-core-container {
        width: 400px;
        height: 400px;
    }
    
    .logo-wrapper {
        width: 60px;
        height: 60px;
    }
    
    .orbit-1 .logo-wrapper,
    .orbit-2 .logo-wrapper,
    .orbit-3 .logo-wrapper,
    .orbit-4 .logo-wrapper,
    .orbit-5 .logo-wrapper,
    .orbit-6 .logo-wrapper,
    .orbit-7 .logo-wrapper,
    .orbit-8 .logo-wrapper {
        transform: translate(-50%, -50%) translateZ(150px);
    }
}

/* カスタムスクロールバー */
::-webkit-scrollbar {
    width: 10px;
}

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

::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--primary-color), var(--glow-color));
    border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--glow-color);
}

/* マウスカーソル効果 */
.cursor-glow {
    position: fixed;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 0, 0, 0.5) 0%, transparent 70%);
    pointer-events: none;
    z-index: 9999;
    transform: translate(-50%, -50%);
    transition: all 0.1s ease;
}

/* ローディングアニメーション */
.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;
}

.loading-spinner {
    width: 50px;
    height: 50px;
    border: 3px solid rgba(255, 255, 255, 0.1);
    border-top-color: var(--glow-color);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* \u30c7\u30fc\u30bf\u30b9\u30c8\u30ea\u30fc\u30e0\u30b3\u30f3\u30c6\u30ca */
.data-stream-container {
    position: absolute;
    top: -50%;
    left: 0;
    width: 100%;
    height: 200%;
    overflow: hidden;
    pointer-events: none;
    z-index: 3;
}

/* \u30c7\u30fc\u30bf\u30b9\u30c8\u30ea\u30fc\u30e0\u30e9\u30a4\u30f3 */
.data-stream-line {
    position: absolute;
    width: 2px;
    height: 100%;
    background: linear-gradient(
        180deg,
        transparent 0%,
        rgba(0, 255, 255, 0.3) 10%,
        rgba(0, 255, 255, 0.6) 20%,
        rgba(0, 255, 255, 0.3) 30%,
        transparent 40%
    );
    animation: streamFlow 3s linear infinite;
}

/* \u30d0\u30a4\u30ca\u30ea\u30c6\u30ad\u30b9\u30c8 */
.binary-text {
    position: absolute;
    top: 0;
    left: -20px;
    width: 40px;
    font-family: 'Courier New', monospace;
    font-size: 10px;
    color: rgba(0, 255, 255, 0.4);
    writing-mode: vertical-rl;
    text-orientation: upright;
    letter-spacing: 2px;
    animation: streamFlow 3s linear infinite;
}

/* \u30b9\u30c8\u30ea\u30fc\u30e0\u30d5\u30ed\u30fc\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3 */
@keyframes streamFlow {
    0% {
        transform: translateY(-100%);
    }
    100% {
        transform: translateY(100%);
    }
}

/* \u30b9\u30ad\u30e3\u30f3\u30e9\u30a4\u30f3\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3 */
@keyframes scanLine {
    0% {
        transform: translateY(-100%);
    }
    100% {
        transform: translateY(100%);
    }
}

/* AI\u30b0\u30ed\u30fc\u52b9\u679c */
@keyframes aiGlow {
    0%, 100% {
        text-shadow: 
            0 0 20px rgba(255, 255, 255, 0.8),
            0 0 40px rgba(255, 255, 255, 0.4),
            0 0 60px rgba(0, 255, 255, 0.2);
    }
    50% {
        text-shadow: 
            0 0 30px rgba(255, 255, 255, 1),
            0 0 60px rgba(255, 255, 255, 0.6),
            0 0 90px rgba(0, 255, 255, 0.4);
    }
}

/* \u30b9\u30ad\u30e3\u30f3\u901a\u904e\u6642\u306e\u52b9\u679c */
.bigbang-title.complete {
    position: relative;
    overflow: visible;
    transform-style: preserve-3d;
    perspective: 1000px;
}

/* \u30db\u30ed\u30b0\u30e9\u30e0\u6295\u5f71\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3 */
@keyframes hologramProjection {
    0%, 100% {
        transform: translateX(-50%) rotateY(0deg) rotateX(0deg);
        background-position: 0% 50%;
        text-shadow: 
            2px 2px 0 rgba(255, 0, 255, 0.5),
            -2px -2px 0 rgba(0, 255, 255, 0.5),
            0 0 30px rgba(255, 255, 255, 0.8);
    }
    25% {
        transform: translateX(-50%) rotateY(5deg) rotateX(2deg);
        background-position: 50% 50%;
        text-shadow: 
            4px 1px 0 rgba(255, 0, 255, 0.6),
            -1px -4px 0 rgba(0, 255, 255, 0.6),
            0 0 40px rgba(255, 255, 255, 0.9);
    }
    50% {
        transform: translateX(-50%) rotateY(-5deg) rotateX(-2deg);
        background-position: 100% 50%;
        text-shadow: 
            -3px 3px 0 rgba(255, 0, 255, 0.5),
            3px -3px 0 rgba(0, 255, 255, 0.5),
            0 0 35px rgba(255, 255, 255, 0.85);
    }
    75% {
        transform: translateX(-50%) rotateY(3deg) rotateX(-1deg);
        background-position: 50% 50%;
        text-shadow: 
            1px -2px 0 rgba(255, 0, 255, 0.6),
            -2px 1px 0 rgba(0, 255, 255, 0.6),
            0 0 45px rgba(255, 255, 255, 0.95);
    }
}

/* \u30db\u30ed\u30b0\u30e9\u30e0\u30ec\u30a4\u30e4\u30fc\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3 */
@keyframes hologramLayer {
    0%, 100% {
        transform: translateX(-50%) translateZ(-20px);
        opacity: 0.3;
    }
    50% {
        transform: translateX(-50%) translateZ(-40px);
        opacity: 0.5;
    }
}

/* 量子分解効果 */
.bigbang-title.quantum-decompose::before {
    animation: quantumDecompose 1.5s ease-in forwards !important;
}

.bigbang-title.quantum-reconstruct::before {
    animation: quantumReconstruct 1s ease-out forwards !important;
}

/* 量子分解アニメーション */
@keyframes quantumDecompose {
    0% {
        opacity: 1;
        filter: blur(0);
        transform: translateX(-50%) scale(1);
    }
    50% {
        opacity: 0.3;
        filter: blur(5px) hue-rotate(180deg);
        transform: translateX(-50%) scale(1.1) skewX(10deg);
    }
    100% {
        opacity: 0.1;
        filter: blur(20px) hue-rotate(360deg);
        transform: translateX(-50%) scale(0.8) skewX(-10deg);
    }
}

/* 量子再構築アニメーション */
@keyframes quantumReconstruct {
    0% {
        opacity: 0.1;
        filter: blur(20px) hue-rotate(360deg);
        transform: translateX(-50%) scale(0.8) skewX(-10deg);
    }
    50% {
        opacity: 0.5;
        filter: blur(10px) hue-rotate(180deg);
        transform: translateX(-50%) scale(0.9) skewX(5deg);
    }
    100% {
        opacity: 1;
        filter: blur(0);
        transform: translateX(-50%) scale(1);
    }
}

/* 量子粒子 */
.quantum-particle {
    position: absolute;
    width: 4px;
    height: 4px;
    background: radial-gradient(circle, rgba(0, 255, 255, 1) 0%, rgba(255, 0, 255, 0.8) 50%, transparent 100%);
    border-radius: 50%;
    pointer-events: none;
    animation: quantumFloat 2.5s ease-out forwards;
}

/* 量子粒子浮遊アニメーション */
@keyframes quantumFloat {
    0% {
        transform: translate(0, 0) scale(1);
        opacity: 1;
    }
    100% {
        transform: translate(var(--random-x), var(--random-y)) scale(0);
        opacity: 0;
    }
}