/* 
 * 动画样式文件
 * 参考网站: https://kaopu-xiaopu.github.io/XIAOPU/index.html
 */

/* 页面加载动画 */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

body {
    animation: fadeIn 0.8s ease-out;
}

/* 导航链接悬停动画 */
@keyframes linkHover {
    0% {
        width: 0;
    }
    100% {
        width: 100%;
    }
}

/* 内容淡入动画 */
.hero,
.featured-works,
.featured-articles,
.page-title,
.photography-gallery,
.articles-container,
.about-content,
.resume {
    opacity: 0;
    transform: translateY(30px);
    animation: contentFadeIn 1s ease-out forwards;
}

@keyframes contentFadeIn {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 延迟加载各个部分 */
.hero {
    animation-delay: 0.2s;
}

.featured-works {
    animation-delay: 0.4s;
}

.featured-articles {
    animation-delay: 0.6s;
}

.page-title {
    animation-delay: 0.2s;
}

.photography-gallery,
.articles-container,
.about-content,
.resume {
    animation-delay: 0.4s;
}

/* 作品卡片悬停动画 */
.work-card {
    transition: transform 0.3s ease;
}

.work-card:hover {
    transform: translateY(-5px);
}

/* 图片缩放动画 */
.gallery-item img {
    transition: transform 0.5s ease;
}

.gallery-item:hover img {
    transform: scale(1.05);
}

/* 图片覆盖层动画 */
.item-overlay {
    transition: opacity 0.3s ease;
}

/* 按钮悬停动画 */
.filter-btn::after {
    transition: width 0.3s ease;
}

/* 滚动显示动画 */
@keyframes scrollReveal {
    from {
        opacity: 0;
        transform: translateY(50px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.scroll-reveal {
    opacity: 0;
    transform: translateY(50px);
}

.scroll-reveal.active {
    animation: scrollReveal 0.8s ease-out forwards;
}

/* 页面过渡动画 */
.page-transition {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    z-index: 9999;
    transform: translateY(100%);
    transition: transform 0.5s ease-in-out;
}

.page-transition.active {
    transform: translateY(0);
}

/* 文字渐变动画 */
@keyframes textGradient {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.text-gradient {
    background: linear-gradient(45deg, #333, #999, #333);
    background-size: 200% auto;
    color: transparent;
    -webkit-background-clip: text;
    background-clip: text;
    animation: textGradient 5s ease infinite;
}

/* 平滑滚动 */
html {
    scroll-behavior: smooth;
} 