/* 劇団暗号資産 レスポンシブデザイン */

/* タブレット対応 (768px以下) */
@media screen and (max-width: 768px) and (min-width: 481px) {
    /* タブレットでも2行表示を維持 */
    .philosophy .mobile-lines {
        display: none !important;
    }
    
    .philosophy .desktop-lines {
        display: block !important;
    }
    
    .main-container {
        padding: 1.5rem 1rem;
    }
    
    .hero {
        margin-bottom: 1.5rem;
    }
    
    .main-title {
        font-size: clamp(1.6rem, 5vw, 3.5rem);
        line-height: 1.1;
    }
    
    .title-line {
        margin-bottom: 0.2rem;
    }
    
    .philosophy {
        font-size: clamp(1rem, 2.5vw, 1.4rem);
        line-height: 1.7;
    }
    
    .author {
        font-size: clamp(1.2rem, 3vw, 1.8rem);
    }
    
    .preparing {
        font-size: clamp(0.9rem, 1.8vw, 1.2rem);
    }
    
    .quote {
        margin-bottom: 1.2rem;
    }
    
    .credit {
        margin-bottom: 0.8rem;
    }
}

/* スマートフォン対応 (480px以下) */
@media screen and (max-width: 480px) {
    /* スマートフォンでは4行表示 */
    .philosophy .desktop-lines {
        display: none !important;
    }
    
    .philosophy .mobile-lines {
        display: block !important;
    }
    .main-container {
        padding: 2rem 0.8rem;
        justify-content: center;
    }
    
    .content {
        max-width: 100%;
        justify-content: center;
    }
    
    .hero {
        margin-bottom: 1.5rem;
    }
    
    .main-title {
        font-size: clamp(1.6rem, 5vw, 2.8rem);
        line-height: 1.1;
        margin-bottom: 1.5rem;
    }
    
    .title-line {
        margin-bottom: 0.15rem;
    }
    
    .philosophy {
        font-size: clamp(0.9rem, 2.2vw, 1.3rem);
        line-height: 1.6;
    }
    
    .philosophy p {
        margin-bottom: 0.4rem;
    }
    
    .author {
        font-size: clamp(1rem, 2.5vw, 1.5rem);
    }
    
    .preparing {
        font-size: clamp(0.8rem, 1.8vw, 1.1rem);
        letter-spacing: 0.15em;
    }
    
    .quote {
        margin-bottom: 1.5rem;
    }
    
    .credit {
        margin-bottom: 1rem;
    }
    
    .coming-soon {
        margin-top: 1.2rem;
    }
}

/* 超小型デバイス対応 (320px以下) */
@media screen and (max-width: 320px) {
    .main-container {
        padding: 1.5rem 0.5rem;
    }
    
    .main-title {
        font-size: clamp(1.2rem, 4vw, 2.2rem);
        margin-bottom: 1.2rem;
        line-height: 1.1;
    }
    
    .philosophy {
        font-size: clamp(0.85rem, 2vw, 1.1rem);
        line-height: 1.6;
    }
    
    .author {
        font-size: clamp(0.9rem, 2vw, 1.2rem);
    }
    
    .preparing {
        font-size: clamp(0.75rem, 1.5vw, 1rem);
    }
    
    .hero {
        margin-bottom: 1.5rem;
    }
    
    .quote {
        margin-bottom: 1.2rem;
    }
    
    .credit {
        margin-bottom: 1rem;
    }
}

/* 大画面対応 (1200px以上) */
@media screen and (min-width: 1200px) {
    .main-container {
        padding: 2rem;
    }
    
    .content {
        max-width: 1200px;
    }
    
    .hero {
        margin-bottom: 2rem;
    }
    
    .main-title {
        font-size: clamp(3rem, 5.5vw, 4.5rem);
        margin-bottom: 1.5rem;
    }
    
    .title-line {
        margin-bottom: 0.2rem;
    }
    
    .philosophy {
        font-size: clamp(1.4rem, 2.8vw, 1.8rem);
        line-height: 1.5;
    }
    
    .author {
        font-size: clamp(1.6rem, 3vw, 2rem);
    }
    
    .preparing {
        font-size: clamp(1.1rem, 1.8vw, 1.4rem);
    }
    
    .quote {
        margin-bottom: 1.5rem;
    }
    
    .credit {
        margin-bottom: 1.2rem;
    }
    
    /* 大画面では2行表示 */
    .philosophy .mobile-lines {
        display: none !important;
    }
    
    .philosophy .desktop-lines {
        display: block !important;
    }
}

/* 超大画面対応 (1600px以上) */
@media screen and (min-width: 1600px) {
    .main-container {
        padding: 3rem;
    }
    
    .content {
        max-width: 1400px;
    }
    
    .hero {
        margin-bottom: 2.5rem;
    }
    
    .main-title {
        font-size: clamp(4rem, 6vw, 5.5rem);
        margin-bottom: 2rem;
    }
    
    .title-line {
        margin-bottom: 0.3rem;
    }
    
    .philosophy {
        font-size: clamp(1.6rem, 3.2vw, 2.2rem);
        line-height: 1.6;
    }
    
    .philosophy p {
        margin-bottom: 0.5rem;
    }
    
    .author {
        font-size: clamp(1.8rem, 3.5vw, 2.4rem);
    }
    
    .preparing {
        font-size: clamp(1.3rem, 2.2vw, 1.6rem);
    }
    
    .quote {
        margin-bottom: 2rem;
    }
    
    .credit {
        margin-bottom: 1.5rem;
    }
    
    .coming-soon {
        margin-top: 1.5rem;
    }
}

/* 横向き対応 */
@media screen and (orientation: landscape) and (max-height: 600px) {
    .main-container {
        padding: 0.5rem;
        padding-top: 2vh;
    }
    
    .hero {
        margin-bottom: 0.8rem;
    }
    
    .main-title {
        font-size: clamp(1.5rem, 4vw, 2.5rem);
        margin-bottom: 0.8rem;
        line-height: 1.0;
    }
    
    .philosophy {
        font-size: clamp(0.9rem, 1.8vw, 1.1rem);
        line-height: 1.3;
    }
    
    .author {
        font-size: clamp(1rem, 2vw, 1.3rem);
    }
    
    .preparing {
        font-size: clamp(0.8rem, 1.3vw, 1rem);
    }
    
    .quote {
        margin-bottom: 0.6rem;
    }
    
    .credit {
        margin-bottom: 0.5rem;
    }
    
    .coming-soon {
        margin-top: 0.5rem;
    }
    
    /* 横向きでは2行表示 */
    .philosophy .mobile-lines {
        display: none !important;
    }
    
    .philosophy .desktop-lines {
        display: block !important;
    }
}

/* 印刷対応 */
@media print {
    * {
        background: transparent !important;
        color: black !important;
        text-shadow: none !important;
        box-shadow: none !important;
    }
    
    .main-container {
        background: white !important;
        min-height: auto;
        padding: 2rem;
    }
    
    #particles-background,
    .glitch-overlay {
        display: none !important;
    }
    
    .main-title {
        color: black !important;
        text-shadow: none !important;
    }
    
    .philosophy {
        color: #333 !important;
        text-shadow: none !important;
    }
    
    .author {
        color: black !important;
        text-shadow: none !important;
    }
    
    .preparing {
        color: #666 !important;
        text-shadow: none !important;
    }
}

/* ダークモード対応 */
@media (prefers-color-scheme: dark) {
    /* すでにダークテーマなので、明示的な変更は不要 */
    /* 必要に応じて、より深い黒を使用 */
    body {
        background-color: #000000;
    }
    
    .main-container {
        background: linear-gradient(135deg, #000000 0%, #0a0a0a 50%, #000000 100%);
    }
}

/* ライトモード対応（デバッグ用） */
@media (prefers-color-scheme: light) {
    /* サイバーパンクテーマを保持するため、ライトモードでも暗いテーマを使用 */
    /* 必要に応じてコメントアウトを解除 */
    /*
    body {
        background-color: #1a1a1a;
        color: #e0e0e0;
    }
    */
}

/* 高コントラストモード対応 */
@media (prefers-contrast: high) {
    .main-title {
        color: #ffffff;
        text-shadow: 
            0 0 5px rgba(255, 255, 255, 0.8),
            0 0 10px rgba(255, 255, 255, 0.6);
    }
    
    .philosophy {
        color: #00ff88;
        text-shadow: 
            0 0 5px rgba(0, 255, 136, 0.8),
            0 0 10px rgba(0, 255, 136, 0.6);
    }
    
    .author {
        color: #ffffff;
        text-shadow: 
            0 0 5px rgba(255, 255, 255, 0.8),
            0 0 10px rgba(255, 255, 255, 0.6);
    }
    
    .preparing {
        color: #00ffff;
        text-shadow: 
            0 0 5px rgba(0, 255, 255, 0.8),
            0 0 10px rgba(0, 255, 255, 0.6);
    }
}

/* フォーカス表示改善 */
@media (prefers-reduced-motion: no-preference) {
    *:focus {
        outline: 2px solid #00ff88;
        outline-offset: 2px;
    }
}

/* 極小デバイス対応 */
@media screen and (max-width: 280px) {
    .main-container {
        padding: 0.5rem;
    }
    
    .main-title {
        font-size: 1.1rem;
        line-height: 1.1;
    }
    
    .philosophy {
        font-size: 0.8rem;
        line-height: 1.6;
    }
    
    .author {
        font-size: 0.8rem;
    }
    
    .preparing {
        font-size: 0.7rem;
    }
}