/**
    リセット
*/
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
main {
    min-height: 100vh;
}

/**
    ローディング用CSS
*/
#loadingBackground {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 1);
    z-index: 100; /* 他の要素より前面に表示 */
    display: flex;
    justify-content: center;
    align-items: center;
    transition: opacity 0.5s ease; /* 透明度が変わるのに0.5秒かかるように設定 */
}

#loadingBarContainer {
    width: 100px;
    height: 3px;
    background-color: #3c3c3c;
}

#loadingBar {
    width: 0%;
    height: 100%;
    background-color: #ffffff;
    transition: width 2s;
}

/**
    セクション用
*/
.fadeInUp {
    animation-name: fadeInUp;
    animation-duration: 1s;
    animation-fill-mode: both;
}

@keyframes fadeInUp {
    from {
        transform: translate3d(0, 40px, 0);
        opacity: 0;
    }

    to {
        transform: translate3d(0, 0, 0);
        opacity: 1;
    }
}

.section {
    width: 100%; /* 横幅いっぱい */
    height: 645px; /* 暫定 */
    padding: 20px; /* コンテンツに少し余白を持たせる */
    box-sizing: border-box; /* パディングとボーダーを幅に含める */
    opacity: 0; /* 最初は透明に設定 */
    transform: translate3d(0, 30px, 0); /* 初期状態では少し下にオフセット */
    transition: opacity 0.5s, transform 0.5s; /* 透明度と位置の変化をアニメーション */
}
.isVisible {
    opacity: 1; /* ビューポート内に入ったら不透明に */
    transform: translate3d(0, 0, 0); /* 元の位置に戻す */
}
#concept_section {
    background-color: lightgreen;
}

#description_section {
    background-color: lightblue;
}

#contact_section {
    background-color: lightgoldenrodyellow;
}




/**
* フッター関連
*/
footer {
    width: 100%;
    background-color: #89c7de;
    color: #fff;
    text-align: center;
    padding: 30px 0;
    bottom: 0; /* 下に固定 */
}