.portal-carousel {
    position: relative;
    border-radius: 0.75rem;
    overflow: hidden;
    background: rgba(0, 0, 0, 0.04);
    width: 100%;
    max-width: 100%;
    margin: 1.5rem auto;
}

.portal-carousel-track {
    display: flex;
    transition: transform 300ms ease;
    will-change: transform;
}

.portal-carousel-slide {
    flex: 0 0 100%;
    min-width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px;
}

.portal-carousel-slide img {
    width: 100%;
    height: auto;
    display: block;
}

.portal-carousel-placeholder {
    width: 100%;
    min-height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    color: rgba(17, 24, 39, 0.8);
    background: repeating-linear-gradient(
        45deg,
        rgba(0, 0, 0, 0.04),
        rgba(0, 0, 0, 0.04) 12px,
        rgba(0, 0, 0, 0.08) 12px,
        rgba(0, 0, 0, 0.08) 24px
    );
}

.portal-carousel-prev,
.portal-carousel-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.5);
    color: #ffffff;
    font-size: 22px;
    line-height: 40px;
    cursor: pointer;
}

.portal-carousel-prev { left: 12px; }
.portal-carousel-next { right: 12px; }

.portal-carousel-prev:hover,
.portal-carousel-next:hover {
    background: rgba(0, 0, 0, 0.65);
}

@media (prefers-reduced-motion: reduce) {
    .portal-carousel-track {
        transition: none;
    }
}
