/* ==========================================
   KomeKaigi メインスタイル
   ========================================== */

/* CSS変数をインポート */
@import 'variables.css';

/* ==========================================
   基本設定
   ========================================== */
body {
    font-family: var(--font-primary), 'Noto Sans JP', sans-serif;
}

h1, h2 {
    font-family: var(--font-heading), 'Merriweather', serif;
}

/* スムーススクロール */
html {
    scroll-behavior: smooth;
}

/* ==========================================
   背景・デザイン要素
   ========================================== */

/* テックスタイル背景 */
.tech-bg {
    background-color: var(--color-gray-50);
    background-image: linear-gradient(rgba(var(--color-primary-rgb), 0.1) 1px, transparent 1px),
                      linear-gradient(90deg, rgba(var(--color-primary-rgb), 0.1) 1px, transparent 1px);
    background-size: 50px 50px;
}

/* アクセントカラー */
.accent-text {
    color: var(--color-primary);
}

.accent-border {
    border: var(--border-width-2) solid var(--color-primary);
    box-shadow: var(--shadow-primary);
}

/* ==========================================
   カードコンポーネント
   ========================================== */

/* 基本カード */
.card {
    background: var(--color-white);
    border-radius: var(--border-radius-xl);
    box-shadow: var(--shadow-md);
    transition: transform var(--transition-slow), box-shadow var(--transition-slow);
}

.card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-xl);
}

/* セクションカード */
.section-card {
    width: 100%;
    max-width: 48rem; /* 768px */
}

/* ターミナルスタイルカード */
.terminal-card {
    background: white;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.terminal-header {
    background: #f5f5f5;
    padding: 0.5rem 1rem;
    border-radius: 8px 8px 0 0;
    display: flex;
    gap: 0.5rem;
    border-bottom: 1px solid #e0e0e0;
}

.terminal-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
}

/* ==========================================
   ボタン
   ========================================== */

.tech-button {
    background: var(--color-white);
    border: var(--border-width-2) solid var(--color-primary);
    color: var(--color-primary);
    font-weight: var(--font-semibold);
    transition: all var(--transition-base);
}

.tech-button:hover:not(:disabled) {
    background: var(--color-primary);
    color: var(--color-white);
    transform: translateY(-2px);
    box-shadow: var(--shadow-primary);
}

/* 強調ボタンのホバー時（詳細度を上げて!importantを削除） */
.tech-button.bg-amber-50:hover:not(:disabled) {
    background: var(--color-primary);
    color: var(--color-white);
}

/* ==========================================
   アニメーション
   ========================================== */

/* タイピングアニメーション */
@keyframes typing {
    from {
        width: 0;
    }
    to {
        width: 100%;
    }
}

@keyframes blink-caret {
    from, to {
        border-color: transparent;
    }
    50% {
        border-color: #fabe00;
    }
}

.typing {
    overflow: hidden;
    border-right: 3px solid #fabe00;
    white-space: nowrap;
    animation: typing 3.5s steps(40, end),
               blink-caret .75s step-end infinite;
}

/* フェードインアニメーション */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fadeInUp {
    animation: fadeInUp 0.8s ease-out;
}

/* ==========================================
   レスポンシブデザイン
   ========================================== */

@media (max-width: 768px) {
    .section-card {
        max-width: 100%;
        margin: 0 1rem;
    }
    
    .card {
        border-radius: 12px;
    }
}

@media (max-width: 640px) {
    .tech-button {
        padding: 0.75rem 1rem;
        font-size: 0.875rem;
    }
}