body, html {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    background-image: url('../img/背景.png');
    background-repeat: repeat;
    background-color: #121212; /* 画像が読み込めない場合の背景色 */
    color: #000000; /* 全体の文字色を黒に */
    font-family: 'M PLUS Rounded 1c', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', Meiryo, メイリオ, Osaka, 'MS PGothic', arial, helvetica, sans-serif;
    overflow: hidden;
    transition: background-color 0.5s ease; /* 背景色の切り替えを滑らかに */
}

body.negative-mode {
    background-image: none;
    background-color: #000000; /* 真っ黒に */
}

.cat-container {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* 上下に要素を配置 */
    align-items: center;
    padding: 10px; /* スマホ用に少し狭く */
    box-sizing: border-box;
}

.main-header {
    width: 100%;
    text-align: center;
    padding: 10px 0;
}

.main-header h1 {
    font-size: 4rem; /* 大きく */
    font-weight: bold;
    color: #FF69B4; /* ピンク色に */
    text-shadow: 2px 2px 0 #FFF, -2px -2px 0 #FFF, -2px 2px 0 #FFF, 2px -2px 0 #FFF, 2px 0px 0 #FFF, -2px 0px 0 #FFF, 0px 2px 0 #FFF, 0px -2px 0 #FFF; /* 白い縁取り */
    margin: 0;
}

/* 結果表示エリア */
.interaction-wrapper {
    width: 100%;
    max-width: 800px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.user-message-display {
    text-align: center;
    padding: 10px;
    margin-bottom: 15px;
    font-size: 1.2rem; /* スマホ用に調整 */
    font-weight: bold;
    color: #000000; /* 黒文字に */
    text-shadow: 2px 2px 0 #FFF, -2px -2px 0 #FFF, -2px 2px 0 #FFF, 2px -2px 0 #FFF, 2px 0px 0 #FFF, -2px 0px 0 #FFF, 0px 2px 0 #FFF, 0px -2px 0 #FFF; /* 白い縁取り */
    min-height: 40px;
}

.cat-response {
    cursor: pointer;
}

.cat-image-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 45vh; /* スマホ用に調整 */
}

#cat-image {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.cat-dialogue-wrapper {
    text-align: center;
    padding: 15px;
}

.cat-dialogue {
    font-size: 1.5rem; /* スマホ用に調整 */
    font-weight: bold;
    color: #000000; /* 黒文字に */
    text-shadow: 2px 2px 0 #FFF, -2px -2px 0 #FFF, -2px 2px 0 #FFF, 2px -2px 0 #FFF, 2px 0px 0 #FFF, -2px 0px 0 #FFF, 0px 2px 0 #FFF, 0px -2px 0 #FFF; /* 白い縁取り */
    line-height: 1.5;
}

.cat-dialogue.serif-font {
    font-family: 'Shippori Mincho', serif;
    font-weight: 700; /* 太めの明朝体 */
    font-size: 1.7rem; /* 少し大きくして強調 */
}

/* 入力フォームエリア */
.input-area {
    width: 100%;
    max-width: 800px;
    padding: 10px 0;
    transition: opacity 0.5s, visibility 0.5s;
}

.message-form {
    display: flex;
    gap: 8px; /* スマホ用に調整 */
    width: 100%;
}

#user-input {
    flex-grow: 1;
    padding: 12px 18px; /* スマホ用に調整 */
    border: 1px solid #000; /* 黒い枠線 */
    border-radius: 0; /* 真四角に */
    background-color: #ffffff; /* 白背景 */
    color: #000000; /* 黒文字 */
    font-size: 14px; /* スマホ用に調整 */
    outline: none;
}

button[type="submit"] {
    padding: 12px 20px; /* スマホ用に調整 */
    border: 1px solid #000; /* 黒い枠線を追加 */
    background-color: #cccccc; /* グレー背景 */
    color: #000000; /* 黒文字 */
    border-radius: 0; /* 真四角に */
    font-size: 14px; /* スマホ用に調整 */
    font-weight: bold;
    cursor: pointer;
    transition: none; /* アニメーションを削除 */
}

button[type="submit"]:hover {
    background-color: #bbbbbb; /* 少し濃いグレーに */
    box-shadow: 1px 1px 0px #000; /* クリック感 */
}

button[type="submit"]:active {
    background-color: #aaaaaa;
    box-shadow: -1px -1px 0px #000; /* へこむ感じ */
}

/* ユーティリティクラス */
.hidden {
    opacity: 0;
    visibility: hidden;
}

/* --- スマートフォン向けのスタイル (メディアクエリ) --- */
@media (max-width: 768px) {
    .cat-container {
        padding: 10px;
    }

    .main-header h1 {
        font-size: 2rem; /* 少し小さく */
    }

    .user-message-display {
        font-size: 1.1rem;
        margin-bottom: 10px;
        min-height: 30px;
    }

    .cat-image-wrapper {
        height: 40vh; /* 高さを少し調整 */
    }

    .cat-dialogue {
        font-size: 1.3rem; /* 少し小さく */
    }

    #user-input {
        padding: 10px 15px;
        font-size: 14px;
    }

    button[type="submit"] {
        padding: 10px 15px;
        font-size: 14px;
    }
}