/* Douban Section Styles */
.douban-section {
    padding: 20px 5% 40px 5%;
}

/* Douban Movie Grid - 7 columns */
.douban-movie-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 20px;
}

.douban-movie-col {
    min-width: 0;
}

@media (max-width: 1400px) {
    .douban-movie-grid {
        grid-template-columns: repeat(6, 1fr);
    }
}

@media (max-width: 1200px) {
    .douban-movie-grid {
        grid-template-columns: repeat(5, 1fr);
    }
}

@media (max-width: 992px) {
    .douban-movie-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 768px) {
    .douban-movie-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 15px;
    }
}

@media (max-width: 480px) {
    .douban-movie-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
}

/* Loading Spinner */
.loading-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid rgba(255, 255, 255, 0.1);
    border-left-color: var(--accent-color);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin: 0 auto;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* Douban Card Transitions */
.douban-card-enter-active,
.douban-card-leave-active {
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.douban-card-enter-from {
    opacity: 0;
    transform: translateY(30px) scale(0.9);
}

.douban-card-leave-to {
    opacity: 0;
    transform: translateY(-30px) scale(0.9);
}

.douban-card-move {
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}