/* ── Curve Media 3D Carousel ─────────────────────────────────────────────── */

/*
 * WRAPPER
 * In 3-D mode the JS sets overflow:visible on both wrapper and container
 * so the cylinder cards aren't clipped. In flat mode it resets to hidden.
 * We default to visible here; flat mode JS overrides per element.
 */
.curve-3d-carousel-wrapper {
    position: relative;
    width: 100%;
    /* overflow is managed by JS depending on mode */
    overflow: visible;
    padding: 40px 0;
    box-sizing: border-box;
}

/* ── Container ───────────────────────────────────────────────────────────── */

.curve-3d-carousel-container {
    position: relative;
    width: 100%;
    min-height: 200px;
    /* overflow also managed by JS */
    overflow: visible;
    cursor: grab;
}

.curve-3d-carousel-container.dragging {
    cursor: grabbing;
}

/* ── 3-D track (cylinder pivot) ──────────────────────────────────────────── */

/*
 * When in 3-D mode the JS sets all of these via .style — these are
 * fallback / initial values so there's no flash before JS runs.
 */
.curve-3d-carousel-container:not(.curve-flat-mode) .curve-3d-track {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    transform-style: preserve-3d;
    will-change: transform;
}

/* ── Flat track ──────────────────────────────────────────────────────────── */

.curve-flat-mode .curve-3d-track {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    will-change: transform;
}

/* ── Cards ───────────────────────────────────────────────────────────────── */

.curve-3d-card {
    overflow: hidden;
    background: #1a1a1a;
    border-radius: 16px;
    /* 3-D specific */
    backface-visibility: hidden;
    will-change: transform, opacity;
}

/* In flat mode cards just sit in the flex row */
.curve-flat-mode .curve-3d-card {
    flex-shrink: 0;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    margin-top: 0 !important;
    margin-left: 0 !important;
    opacity: 1 !important;
    transform: none !important;
}

/* ── Media ───────────────────────────────────────────────────────────────── */

.curve-3d-card-media {
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: relative;
}

.curve-3d-card-media img,
.curve-3d-card-media video {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: var(--media-object-fit, cover);
    object-position: center center;
}

/* ── Play icon ───────────────────────────────────────────────────────────── */

.curve-3d-play-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60px;
    height: 60px;
    background: rgba(0,0,0,0.6);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s, transform 0.2s;
    pointer-events: auto;
    z-index: 2;
}
.curve-3d-play-icon i { font-size: 24px; margin-left: 4px; }
.curve-3d-play-icon:hover { background: rgba(0,0,0,0.85); transform: translate(-50%,-50%) scale(1.1); }

/* ── Navigation ──────────────────────────────────────────────────────────── */

.curve-3d-navigation {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    pointer-events: none;
    padding: 0 20px;
    z-index: 20;
}

.curve-3d-nav-btn {
    pointer-events: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: rgba(0,0,0,0.5);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    transition: background 0.2s, transform 0.2s;
    color: white;
}
.curve-3d-nav-btn i { font-size: 20px; }
.curve-3d-nav-btn:hover { background: #000; transform: scale(1.08); }

/* ── Pagination ──────────────────────────────────────────────────────────── */

.curve-3d-pagination {
    position: absolute;
    bottom: -30px;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    gap: 10px;
    z-index: 10;
}
.curve-3d-dot { width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,0.5); cursor:pointer; transition:0.2s; }
.curve-3d-dot.active { background:#fff; transform:scale(1.2); }

/* ── Placeholder ─────────────────────────────────────────────────────────── */

.curve-3d-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #333;
    color: white;
    font-size: 14px;
}