body { 
    font-family: 'Noto Sans SC', sans-serif; 
    background-color: #fafafa; 
    color: #1a1a1a; 
    overflow-x: hidden;
}

/* 导航栏动态毛玻璃与阴影类 */
.nav-scrolled {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    background-color: rgba(255, 255, 255, 0.85) !important;
    border-bottom-color: rgba(243, 244, 246, 0.8);
}

/* 导航链接高级悬停动效（从中间向两端展开） */
.nav-link { 
    position: relative;
    padding-bottom: 5px;
    transition: color 0.3s ease; 
}
.nav-link::after {
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    bottom: 0;
    left: 50%;
    background-color: #2563EB;
    transition: all 0.3s ease;
    transform: translateX(-50%);
}
.nav-link:hover::after {
    width: 100%;
}

/* 卡片高级悬停动效 */
.smooth-card {
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.smooth-card:hover {
    transform: translateY(-6px) scale(1.01);
    box-shadow: 0 20px 38px rgba(37, 99, 235, 0.04), 0 4px 12px rgba(0, 0, 0, 0.01);
}

/* 呼吸按钮特效 */
.pulse-btn {
    position: relative;
    overflow: hidden;
    animation: pulse-shadow 3s infinite;
}
@keyframes pulse-shadow {
    0% { box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.4); }
    70% { box-shadow: 0 0 0 10px rgba(37, 99, 235, 0); }
    100% { box-shadow: 0 0 0 0 rgba(37, 99, 235, 0); }
}
.pulse-btn::after {
    content: '';
    position: absolute;
    top: -50%; left: -60%;
    width: 30%; height: 200%;
    background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.3) 50%, rgba(255,255,255,0) 100%);
    transform: rotate(25deg);
    transition: 0.8s;
    opacity: 0;
}
.pulse-btn:hover::after {
    opacity: 1;
    left: 130%;
}

/* 卡片隐藏状态（取消过渡动画交给 JS 父容器统一处理，避免闪烁） */
.fade-hidden {
    display: none !important;
}
