.banner {
    height: 406px;
    border: 1px solid #2b3039;
    border-radius: 13px;
    overflow: hidden;
    position: relative;
    background: #080b11;
}

.banner-background {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background-color: #101423;
    z-index: 0;
}

    .banner-background img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        display: block;
    }

    .banner-background::after {
        content: "";
        position: absolute;
        inset: 0;
        background: radial-gradient(circle at 78% 45%, rgba(135, 63, 208, .35), transparent 34%);
    }

.banner-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, #070b10, transparent 82%);
    z-index: 1;
}

.banner-content {
    position: absolute;
    right: 7%;
    top: 62px;
    width: 53%;
    z-index: 2;
}

.banner-label {
    display: inline-block;
    background: #7e3bd2;
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 10px;
}

.banner h1 {
    font-size: 34px;
    margin: 14px 0 1px;
}

.banner h2 {
    font-size: 18px;
    font-weight: 500;
    margin: 0 0 20px;
}

.banner p {
    max-width: 540px;
    color: #d0d2d7;
    font-size: 12px;
    line-height: 2.1;
}

.banner-meta {
    display: flex;
    gap: 16px;
    color: #d5d7db;
    font-size: 11px;
    margin-bottom: 18px;
}

.banner-rating {
    color: var(--gold);
}

.primary-button {
    border: 0;
    background: linear-gradient(90deg, #883df0, #a64eff);
    color: white;
    border-radius: 8px;
    padding: 11px 20px;
}

.banner-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 50%;
    background: #ffffff18;
    color: #fff;
    z-index: 3;
}

.banner-prev {
    right: 20px;
}

.banner-next {
    left: 20px;
}

.banner-dots {
    position: absolute;
    bottom: 14px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 3;
}

    .banner-dots button {
        width: 8px;
        height: 8px;
        padding: 0;
        border: 0;
        border-radius: 50%;
        background: #858a93;
    }

        .banner-dots button.active {
            width: 26px;
            border-radius: 8px;
            background: var(--purple-light);
        }

.banner-skeleton {
    position: absolute;
    inset: 0;
    padding: 62px 7%;
    z-index: 4;
    direction: rtl;
}

.banner-real-content {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity .25s ease;
    z-index: 2;
}

.banner.loaded .banner-real-content {
    opacity: 1;
}

.banner.loaded .banner-skeleton {
    display: none;
}

.skeleton {
    background: linear-gradient(90deg, #171c23 25%, #242a32 50%, #171c23 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.4s infinite;
    border-radius: 7px;
}

.skeleton-label {
    width: 90px;
    height: 25px;
}

.skeleton-title {
    width: 300px;
    height: 42px;
    margin-top: 16px;
}

.skeleton-subtitle {
    width: 180px;
    height: 22px;
    margin-top: 10px;
}

.skeleton-description {
    width: 500px;
    max-width: 80%;
    height: 12px;
    margin-top: 30px;
}

    .skeleton-description.short {
        width: 380px;
        margin-top: 9px;
    }

.skeleton-meta {
    width: 230px;
    height: 15px;
    margin-top: 25px;
}

.skeleton-button {
    width: 125px;
    height: 42px;
    margin-top: 22px;
}

@keyframes skeleton-loading {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}
