@layer utilities {
    .content-auto {
        content-visibility: auto;
    }
    .text-shadow {
        text-shadow: 0 2px 4px rgba(0,0,0,0.1);
    }
    .card-hover {
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .card-hover:hover {
        transform: translateY(-5px);
        box-shadow: 0 12px 24px -8px rgba(0,0,0,0.15);
    }
    .gradient-mask-b {
        mask-image: linear-gradient(to bottom, black 85%, transparent 100%);
        -webkit-mask-image: linear-gradient(to bottom, black 85%, transparent 100%);
    }
    .scrollbar-hide::-webkit-scrollbar {
        display: none;
    }
    .scrollbar-hide {
        -ms-overflow-style: none;
        scrollbar-width: none;
    }
    .timeline-connector {
        position: absolute;
        left: 1.5rem;
        top: 2rem;
        bottom: 0;
        width: 2px;
        background-color: #e2e8f0;
    }
}

@keyframes scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

.animate-scroll {
    will-change: transform;
    transition: none;
}

/* 开源致谢滚动容器优化 */
#opensourceScrollContainer {
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    perspective: 1000px;
    -webkit-perspective: 1000px;
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d;
}

/* 卡片悬停效果优化 */
.card-hover:hover {
    box-shadow: 0 10px 30px -5px rgba(0, 0, 0, 0.3);
    z-index: 10;
}

/* 轮播图样式 */
.carousel-track {
    will-change: transform;
}

.carousel-slide {
    flex-shrink: 0;
}

.carousel-btn {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.carousel-btn:hover {
    background-color: white !important;
}

/* 鼠标悬停时显示按钮 */
.carousel-track:hover ~ .carousel-btn,
.carousel-btn:hover {
    opacity: 1;
}

.carousel-indicator {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
}

.carousel-indicator:hover {
    transform: scale(1.2);
}

/* 轮播容器悬停时显示按钮 */
.carousel-track:hover + .carousel-btn-prev,
.carousel-track:hover + .carousel-btn-next,
.carousel-btn-prev:hover,
.carousel-btn-next:hover {
    opacity: 1;
}

/* 通过父容器控制按钮显示 */
div:has(> .carousel-track):hover .carousel-btn {
    opacity: 1;
}