/* Google Fonts Imports */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/icon?family=Material+Icons+Outlined|Material+Icons');

/* Base Styles */
body {
    font-family: 'Noto Sans KR', sans-serif;
    /* Fade In Animation for Page Load */
    animation: fadeIn 0.4s ease-out;
}

/* Utilities */
.text-shadow {
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
}

.gradient-text {
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Animations */
@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes fadeUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* =========================================
   [추가됨] 모달 및 타임라인 고급 애니메이션
   ========================================= */

/* 1. 배경이 서서히 어두워지는 효과 */
@keyframes backdropFadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}


/* 3. 타임라인 리스트가 하나씩 톡톡 올라오는 효과 (Stagger) */
@keyframes listSlideUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* JS에서 제어할 클래스들 */
.animate-backdrop {
    animation: backdropFadeIn 0.3s ease-out forwards;
}

/* 타임라인 리스트 아이템에 적용할 클래스 */
.timeline-item-enter {
    opacity: 0;
    /* 애니메이션 시작 전 숨김 */
    animation: listSlideUp 0.5s ease-out forwards;
}

/* 1. 활동 상세 팝업용 (Absolute 방식) - 중앙 위치를 잡으면서 커짐 */
@keyframes modalPopAbsolute {
    from {
        opacity: 0;
        transform: translate(-50%, -45%) scale(0.95);
    }

    to {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

/* 2. 타임라인 팝업용 (Flex 방식) - 위치 이동 없이 크기만 커짐 */
@keyframes modalPopFlex {
    from {
        opacity: 0;
        transform: scale(0.95) translateY(10px);
    }

    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* 클래스 정의 */
.animate-modal-absolute {
    animation: modalPopAbsolute 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.animate-modal-flex {
    animation: modalPopFlex 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}