        :root {
            --card-bg: #ffffff;
            --text-color: #333;
            --tantou-color: #0052cc;
            --ronbun-color: #d32f2f;
            --btn-active: #0052cc;
            --btn-inactive: #f0f0f0;
        }

        body {
            background-image: linear-gradient(to bottom, #ffffff 0%, #f7f9fc 100%);
            min-height: 100vh;
            margin: 0;
            padding: 0;
            overflow-x: hidden;
            position: relative;
        }

	.h1Wrap h1{
	text-align : left;
	}

        /* 
           ▼ 修正箇所：背景エフェクト用のコンテナ
           ここを「画面固定(fixed)」にすることで、スクロールしても
           常に画面全体に泡が出るようにしました。
        */
        #backgroundDecorations {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: -1; /* コンテンツの裏側へ */
            pointer-events: none; /* クリックを邪魔しない */
            overflow: hidden;
        }

        /* 泡のスタイル */
        .background-bubble {
            position: absolute;
            border-radius: 50%;
            background: rgba(0, 50, 150, 0.03);
            /* bottom: -100px;  ← JSでランダム生成時に指定されるか、アニメーション開始位置 */
            animation: rise 25s infinite ease-in;
            bottom: -150px; /* 画面外の下からスタート */
        }

        /* 共通レイアウト設定 */
        .board-header, 
        .filter-nav, 
        .card-container {
            display: block; 
            width: 100%;
            max-width: 700px;
            margin-left: auto !important;
            margin-right: auto !important;
            box-sizing: border-box;
        }

        /* ヘッダーエリア */
        .board-header {
            margin-top: 40px;
            margin-bottom: 30px;
            z-index: 10;
            padding: 0 10px;
            text-align: center;
        }

        .board-header h1 {
            font-family: 'M PLUS Rounded 1c', sans-serif;
            font-size: 2.0rem;
            margin: 0 0 10px 0;
            letter-spacing: 0.05em;
            line-height: 1.4;
            border: none;
            padding: 0;
            width: 100%;
            text-align: center !important;
        }

        .board-header .subtitle {
            font-family: 'M PLUS Rounded 1c', sans-serif;
            font-size: 0.95rem;
            color: #666;
            margin: 0;
            text-align: center;
        }

        /* フィルタボタンエリア */
        .filter-nav {
            z-index: 20;
            margin-bottom: 30px;
            text-align: center;
            padding: 0 10px;
        }
        
        .filter-nav-inner {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
            justify-content: center;
        }

        .filter-btn {
            appearance: none;
            outline: none;
            border: 1px solid #ddd;
            padding: 6px 20px;
            border-radius: 50px;
            font-family: 'M PLUS Rounded 1c', sans-serif;
            font-weight: bold;
            font-size: 0.9rem;
            cursor: pointer;
            background-color: white;
            color: #666;
            box-shadow: 0 2px 5px rgba(0,0,0,0.05);
            transition: all 0.3s ease;
        }

        .filter-btn:hover {
            transform: translateY(-2px);
            color: #333;
            box-shadow: 0 4px 10px rgba(0,0,0,0.1);
        }

        .filter-btn.active {
            background-color: var(--btn-active);
            color: white;
            border-color: var(--btn-active);
            box-shadow: 0 4px 12px rgba(0, 82, 204, 0.3);
        }

        /* カードコンテナ */
        .card-container {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 20px;
            padding: 0 15px 20px;;
            z-index: 10;
            min-height: 400px;
            align-content: flex-start;
            text-align: left;
        }

        @media (max-width: 600px) {
            .card-container {
                grid-template-columns: 1fr;
            }
        }

        /* カードスタイル */
        .message-card {
            background: var(--card-bg);
            border-radius: 8px;
            padding: 20px 20px;
            width: 100%;
            height: auto;
            box-sizing: border-box;
            box-shadow: 0 2px 8px rgba(0,0,0,0.08);
            border: 1px solid #eaeaea;
            position: relative;
            cursor: default;
            opacity: 0;
            transform: translateY(20px);
            font-family: 'M PLUS Rounded 1c', sans-serif;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }

        .message-card.show {
            animation: fadeUp 1.0s cubic-bezier(0.22, 1, 0.36, 1) forwards;
	margin-top : 0 !important;

        }

        .message-card.hide {
            animation: fadeOut 0.5s ease forwards;
        }

        .message-card:hover {
            transform: translateY(-3px) !important;
            box-shadow: 0 8px 20px rgba(0,0,0,0.1);
            border-color: #ddd;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }

        /* メッセージ本文 */
        .message-content {
            font-size: 0.95rem;
            line-height: 1.7;
            color: #333;
            margin-bottom: 20px;
            position: relative;
            text-align: left;
            padding-left: 2.2rem;
        }

        /* 引用符 */
        .message-content::before {
            content: "\201C";
            font-size: 3.5rem;
            color: #e0e0e0;
            position: absolute;
            left: -5px;
            top: -15px;
            z-index: 0;
            font-family: serif;
            line-height: 1;
        }

        .student-signature {
            border-top: 1px dotted #ccc;
            padding-top: 10px;
            text-align: right;
            font-size: 0.8rem;
            line-height: 1.5;
            margin-top: auto;
        }

        .pass-year { color: #888; margin-right: 5px; }
        .pass-exam { font-weight: bold; margin-right: 0px; }
        
        .tantou { color: var(--tantou-color); }
        .ronbun { color: var(--ronbun-color); }
        
        .student-name { color: #333; font-weight: bold; }

        @keyframes fadeUp {
            0% { opacity: 0; transform: translateY(30px) scale(0.98); }
            100% { opacity: 1; transform: translateY(0) scale(1); }
        }

        @keyframes fadeOut {
            0% { opacity: 1; transform: scale(1); }
            100% { opacity: 0; transform: scale(0.95); }
        }

        /* 
           ▼ 修正箇所：アニメーション定義
           画面の高さ(100vh)分だけ上がるように設定しています。
           コンテナがfixedになったので、これで画面下から上へ綺麗に抜けていきます。
        */
        @keyframes rise {
            0% { transform: translateY(0) scale(1); opacity: 0; }
            50% { opacity: 1; }
            100% { transform: translateY(-120vh) scale(1.2); opacity: 0; }
        }
