#banner-title, #banner-desc, #banner-bg {
    transition: opacity 0.5s ease-in-out;
}

/* Animations */
@keyframes fadeInSlideUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInZoom {
    from {
        opacity: 0;
        transform: scale(1.05);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.animate-banner-content {
    animation: fadeInSlideUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.animate-banner-bg {
    animation: fadeInZoom 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Rating Badges */
.rating-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    font-weight: 800;
    font-size: 14px;
    color: white;
    box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.rating-L { background-color: #00a54f; }
.rating-10 { background-color: #00a5e4; }
.rating-12 { background-color: #ffbd00; }
.rating-14 { background-color: #ff6900; }
.rating-16 { background-color: #db0000; }
.rating-18 { background-color: #1d1d1b; }