/* 全局字体调整：使用 M PLUS Rounded 1c 作为首选字体，清晰且圆润 */
body {
    font-family: 'M PLUS Rounded 1c', sans-serif;
    background-color: #f3f4f6;
}

/* 标题特殊字体保留，增加趣味性 */
h1,
.special-font {
    font-family: 'ZCOOL KuaiLe', 'M PLUS Rounded 1c', cursive;
}

/* 隐藏滚动条但保留功能 */
.no-scrollbar::-webkit-scrollbar {
    display: none;
}

.no-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* 列表过渡动画 */
.list-move,
.list-enter-active,
.list-leave-active {
    transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);
}

.list-enter-from,
.list-leave-to {
    opacity: 0;
    transform: scale(0.9) translateY(30px);
}

.list-leave-active {
    position: absolute;
}

/* 弹窗过渡 */
.fade-enter-active,
.fade-leave-active {
    transition: opacity 0.3s ease;
}

.fade-enter-from,
.fade-leave-to {
    opacity: 0;
}

.pop-enter-active,
.pop-leave-active {
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.pop-enter-from,
.pop-leave-to {
    opacity: 0;
    transform: scale(0.8);
}

/* Toast 动画 */
.toast-enter-active,
.toast-leave-active {
    transition: all 0.3s ease;
}

.toast-enter-from,
.toast-leave-to {
    opacity: 0;
    transform: translateX(20px);
}

@keyframes progress {
    from {
        width: 100%;
    }

    to {
        width: 0%;
    }
}

.progress-bar {
    animation: progress 3s linear forwards;
}

/* 图片查看器的缩放控制 */
.image-viewer img {
    transition: transform 0.1s ease-out;
    cursor: grab;
}

.image-viewer img:active {
    cursor: grabbing;
}

/* 点击特效动画 */
@keyframes floatUp {
    0% {
        transform: scale(0.5) translateY(0);
        opacity: 1;
    }

    100% {
        transform: scale(1.5) translateY(-50px);
        opacity: 0;
    }
}

.click-effect {
    position: fixed;
    pointer-events: none;
    animation: floatUp 0.8s ease-out forwards;
    z-index: 9999;
    font-size: 24px;
}

/* 时间线动画效果 */
@keyframes timelinePulse {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0.8;
        transform: scale(1.1);
    }
}

/* 时间线进入动画 */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.timeline-item {
    animation: fadeInUp 0.5s ease-out forwards;
    animation-delay: calc(var(--index) * 0.1s);
    opacity: 0;
}

/* 时间线悬停效果 */
.timeline-dot {
    transition: all 0.3s ease;
}

.timeline-item:hover .timeline-dot {
    transform: scale(1.2);
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.1);
}

.timeline-item:hover .timeline-content {
    transform: translateX(4px);
}

/* 综合评价文本换行样式 */
.evaluation-text {
    white-space: pre-wrap; /* 保留换行符和空格，允许换行 */
    word-wrap: break-word; /* 长单词换行 */
    word-break: break-word; /* 强制换行 */
    line-height: 1.6; /* 行高适中 */
}
