@charset "UTF-8";

/* ローディング画面スタイル（フェードアウト） */
.loading-gradient {
    background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 50%, #e0e0e0 100%);
    opacity: 1;
    transition: opacity 1.2s cubic-bezier(0.4, 0, 0.2, 1);
}
#loading-screen.fade-out .loading-gradient {
    opacity: 0;
}
#loading-content {
    opacity: 1;
    transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
#loading-screen.fade-out #loading-content {
    opacity: 0;
}

/* ロゴアニメーション */
.loading-logo-animate {
    opacity: 0;
    transform: scale(0.9) translateY(10px);
    animation: logoAppear 0.8s cubic-bezier(0.4, 0, 0.2, 1) 0.2s forwards;
}
@keyframes logoAppear {
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* SINCE 1915アニメーション */
#loading-since {
    animation: textFadeIn 0.6s cubic-bezier(0.4, 0, 0.2, 1) 0.6s forwards;
}
@keyframes textFadeIn {
    to {
        opacity: 1;
    }
}

/* 緑の縦線アニメーション */
#loading-line {
    animation: lineGrow 0.8s cubic-bezier(0.4, 0, 0.2, 1) 0.9s forwards;
}
@keyframes lineGrow {
    to {
        height: 40px;
    }
}
@media (min-width: 768px) {
    @keyframes lineGrow {
        to {
            height: 50px;
        }
    }
}

/* タグラインアニメーション */
#loading-tagline {
    animation: textFadeIn 0.6s cubic-bezier(0.4, 0, 0.2, 1) 1.4s forwards;
}

/* ローディング完了後の非表示 */
#loading-screen.done {
    display: none;
}

/* ヒーローコンテンツ初期非表示 */
.loading-hidden {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}
.loading-hidden.show {
    opacity: 1;
    transform: translateY(0);
}
