/*==================================================
 CINELUX HERO SLIDER
 Part 1
==================================================*/

#slider-section{
    position:relative;
    min-height:100vh;
    background:var(--cx-gradient-navy);
    overflow:hidden;
    display:flex;
    flex-direction:column;
    isolation:isolate;
}

/*==================================================
BACKGROUND SWIPER
==================================================*/

#bg-swiper{
    position:absolute;
    inset:0;
    z-index:1;
}

#bg-swiper .swiper-wrapper,
#bg-swiper .swiper-slide{
    width:100%;
    height:100%;
}

#bg-swiper .swiper-slide{

    background-size:cover;

    background-position:center center;

    background-repeat:no-repeat;

    position:relative;

}

#bg-swiper .swiper-slide::before{

    content:"";

    position:absolute;

    inset:0;

    background:

        linear-gradient(
            90deg,
            rgba(5,8,16,.96) 0%,
            rgba(5,8,16,.82) 38%,
            rgba(5,8,16,.55) 68%,
            rgba(5,8,16,.18) 100%
        ),

        linear-gradient(
            180deg,
            rgba(5,8,16,.08) 0%,
            rgba(5,8,16,.65) 60%,
            #050810 100%
        );

}

/*==================================================
ATMOSPHERE
==================================================*/

.atmosphere{

    position:absolute;

    inset:0;

    pointer-events:none;

    overflow:hidden;

    z-index:3;

}

.glow-orb{

    position:absolute;

    border-radius:50%;

    filter:blur(120px);

    opacity:.22;

}

.glow-orb-1{

    width:520px;

    height:520px;

    background:var(--cx-gold-500);

    top:-180px;

    right:-80px;

    animation:cxFloat 12s ease-in-out infinite;

}

.glow-orb-2{

    width:420px;

    height:420px;

    background:#234178;

    bottom:-140px;

    left:-100px;

    animation:cxFloat 14s ease-in-out infinite;

    animation-delay:-6s;

}

@keyframes cxFloat{

    0%,100%{

        transform:translate(0,0);

    }

    50%{

        transform:translate(25px,-25px);

    }

}

.noise{

    position:absolute;

    inset:0;

    z-index:4;

    opacity:.03;

    pointer-events:none;

    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");

}

/*==================================================
MAIN LAYOUT
==================================================*/

.ms-body{

    position:relative;

    z-index:20;

    flex:1;

    display:grid;

    grid-template-columns:1.1fr .9fr;

    align-items:center;

    gap:5rem;

    padding:4rem 5rem 7rem;

}

.ms-left{

    max-width:700px;

}

/*==================================================
GENRES
==================================================*/

.genre-tags{

    display:flex;

    flex-wrap:wrap;

    gap:.75rem;

    margin-bottom:1.6rem;

}

.genre-tag{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:.55rem 1rem;

    border-radius:999px;

    background:rgba(212,163,67,.08);

    border:1px solid var(--cx-border-subtle);

    color:var(--cx-gold-300);

    font-size:.72rem;

    font-family:var(--cx-font-body);

    font-weight:600;

    letter-spacing:.12em;

    text-transform:uppercase;

    transition:var(--cx-transition-base);

}

.genre-tag:hover{

    background:var(--cx-gradient-gold);

    color:var(--cx-text-inverse);

    transform:translateY(-2px);

}

/*==================================================
TITLE
==================================================*/

.ms-title{

    font-family:var(--cx-font-heading);

    font-size:var(--cx-fs-hero);

    line-height:1;

    font-weight:800;

    color:var(--cx-text-primary);

    margin-bottom:1.4rem;

    letter-spacing:.02em;

    text-wrap:balance;

    max-width:650px;

    text-shadow:

        0 8px 30px rgba(0,0,0,.45);

}

/*==================================================
DESCRIPTION
==================================================*/

.ms-desc{

    font-family:var(--cx-font-body);

    color:var(--cx-text-secondary);

    font-size:1.05rem;

    line-height:1.9;

    max-width:620px;

}

/*==================================================
BUTTONS
==================================================*/

.ms-btns{

    display:flex;

    gap:1rem;

    flex-wrap:wrap;

    margin-top:2rem;

}

.btn-watch,

.btn-trailer{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:.65rem;

    text-decoration:none;

    transition:var(--cx-transition-base);

    font-family:var(--cx-font-body);

    font-weight:700;

}

.btn-watch{

    padding:1rem 2rem;

    border-radius:999px;

    background:var(--cx-gradient-gold);

    color:var(--cx-text-inverse);

    box-shadow:var(--cx-shadow-gold-glow);

}

.btn-watch:hover{

    transform:translateY(-4px);

    color:var(--cx-text-inverse);

    box-shadow:

        0 18px 40px rgba(212,163,67,.35);

}

.btn-watch svg{

    width:18px;

    height:18px;

}

.btn-trailer{

    padding:1rem 2rem;

    border-radius:999px;

    border:1px solid var(--cx-border-strong);

    background:rgba(255,255,255,.03);

    color:var(--cx-text-primary);

    backdrop-filter:blur(20px);

}

.btn-trailer:hover{

    color:var(--cx-text-primary);

    background:rgba(212,163,67,.08);

    border-color:var(--cx-gold-500);

}

.btn-trailer svg{

    width:18px;

    height:18px;
}

/*==================================================
 RIGHT COLUMN
==================================================*/

.ms-right{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0;
    overflow:hidden;

    -webkit-mask-image:linear-gradient(
        to right,
        transparent 0%,
        black 12%,
        black 100%
    );

    mask-image:linear-gradient(
        to right,
        transparent 0%,
        black 12%,
        black 100%
    );
}

/*==================================================
 POSTER SWIPER
==================================================*/

#poster-swiper{
    width:100%;
    height:clamp(320px,38vw,520px);
    overflow:visible;
    padding:2rem 0;
}

#poster-swiper .swiper-wrapper{
    align-items:center;
}

#poster-swiper .swiper-slide{

    position:relative;

    overflow:hidden;

    border-radius:var(--cx-radius-lg);

    background:var(--cx-bg-secondary);

    border:1px solid var(--cx-border-subtle);

    box-shadow:var(--cx-shadow-md);

    cursor:pointer;

    transition:
    transform .45s ease,
    filter .45s ease,
    box-shadow .45s ease,
    border-color .35s ease;

}

#poster-swiper .swiper-slide img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

}

/* glossy reflection */

#poster-swiper .swiper-slide::before{

    content:"";

    position:absolute;

    inset:0;

    background:

    linear-gradient(

        135deg,

        rgba(255,255,255,.22),

        transparent 28%,

        transparent 70%,

        rgba(255,255,255,.05)

    );

    opacity:0;

    transition:.45s;

    z-index:2;

}

#poster-swiper .swiper-slide:hover::before{

    opacity:1;

}

/*==================================================
 ACTIVE CARD
==================================================*/

#poster-swiper .swiper-slide-active{

    transform:scale(1.08);

    border-color:var(--cx-gold-500);

    box-shadow:

    var(--cx-shadow-lg),

    var(--cx-shadow-gold-glow);

    z-index:20;

}

#poster-swiper .swiper-slide-prev,
#poster-swiper .swiper-slide-next{

    transform:scale(.9);

    filter:brightness(.55);

}

#poster-swiper .swiper-slide:not(.swiper-slide-active){

    opacity:.82;

}

/*==================================================
 BADGE
==================================================*/

.poster-badge{

    position:absolute;

    top:1rem;

    left:1rem;

    z-index:10;

    padding:.45rem .9rem;

    border-radius:999px;

    background:var(--cx-gradient-gold);

    color:var(--cx-text-inverse);

    font-size:.7rem;

    font-weight:700;

    text-transform:uppercase;

    letter-spacing:.08em;

    box-shadow:var(--cx-shadow-sm);

}

/*==================================================
 RATING
==================================================*/

.poster-rating{

    position:absolute;

    right:1rem;

    bottom:1rem;

    z-index:10;

    display:flex;

    align-items:center;

    gap:.45rem;

    padding:.45rem .8rem;

    border-radius:999px;

    background:rgba(5,8,16,.78);

    backdrop-filter:blur(18px);

    border:1px solid var(--cx-border-subtle);

    color:var(--cx-text-primary);

    font-weight:700;

    font-size:.82rem;

}

.poster-rating svg{

    width:14px;

    height:14px;

    fill:var(--cx-gold-500);

}

/*==================================================
 BOTTOM BAR
==================================================*/

.ms-bottom{

    position:absolute;

    left:0;

    right:0;

    bottom:0;

    z-index:30;

    display:flex;

    align-items:center;

    gap:1rem;

    padding:0 5rem 2rem;

}

/*==================================================
 NAV BUTTONS
==================================================*/

.nav-btn{

    width:52px;

    height:52px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(255,255,255,.04);

    border:1px solid var(--cx-border-subtle);

    color:var(--cx-text-primary);

    cursor:pointer;

    transition:var(--cx-transition-base);

    backdrop-filter:blur(18px);

}

.nav-btn svg{

    width:18px;

    height:18px;

    stroke:currentColor;

    fill:none;

    stroke-width:2;

}

.nav-btn:hover{

    background:var(--cx-gradient-gold);

    color:var(--cx-text-inverse);

    border-color:transparent;

    transform:translateY(-3px);

}

/*==================================================
 COUNTER
==================================================*/

.slide-counter{

    font-family:var(--cx-font-heading);

    font-size:1rem;

    color:var(--cx-text-secondary);

    letter-spacing:.08em;

    white-space:nowrap;

}

.slide-counter .cur{

    color:var(--cx-gold-400);

}

/*==================================================
 PROGRESS BAR
==================================================*/

.progress-wrap{

    flex:1;

    height:4px;

    background:rgba(255,255,255,.08);

    border-radius:999px;

    overflow:hidden;

}

.progress-fill{

    height:100%;

    width:0;

    border-radius:999px;

    background:var(--cx-gradient-gold);

    transition:width .06s linear;

}

/*==================================================
 TEXT ANIMATION
==================================================*/

.ca{

    opacity:0;

    transform:translateY(35px);

    transition:

    opacity .65s ease,

    transform .65s ease;

}

.ca.d1{transition-delay:.08s;}
.ca.d2{transition-delay:.18s;}
.ca.d3{transition-delay:.28s;}
.ca.d4{transition-delay:.38s;}

.ca.vis{

    opacity:1;

    transform:translateY(0);

}

/*==================================================
 RESPONSIVE
==================================================*/

@media (max-width:1100px){

.ms-body{

    grid-template-columns:1fr;

    gap:3rem;

    text-align:center;

    padding:3rem 2rem 8rem;

}

.ms-left{

    max-width:700px;

    margin:auto;

}

.genre-tags{

    justify-content:center;

}

.ms-btns{

    justify-content:center;

}

.ms-desc{

    margin:auto;

}

.ms-right{

    order:-1;

    mask-image:none;

    -webkit-mask-image:none;

}

#poster-swiper{

    height:420px;

}

}

@media (max-width:768px){

.ms-title{

    font-size:3rem;

}

.ms-desc{

    font-size:.95rem;

}

#poster-swiper{

    height:320px;

}

.ms-bottom{

    padding:0 1rem 1.5rem;

}

.nav-btn{

    width:44px;

    height:44px;

}

.btn-watch,
.btn-trailer{

    width:100%;

    justify-content:center;

}

}

@media (max-width:576px){

.ms-body{

    padding:2rem 1rem 7rem;

}

#poster-swiper{

    height:260px;

}

#poster-swiper .swiper-slide{

    width:165px !important;

}

.genre-tag{

    font-size:.65rem;

}

.ms-title{

    font-size:2.35rem;

}

.ms-desc{

    font-size:.88rem;

    line-height:1.75;

}

.slide-counter{

    display:none;

}

}