/* ==========================================
CAST HERO
========================================== */

.cast-hero{
    padding:180px 0 50px;
    text-align:center;
}

.cast-hero h1{
    font-size:clamp(3rem,8vw,6rem);
    font-weight:800;
    line-height:.9;
    margin-bottom:1.5rem;
}

.cast-intro{
    max-width:700px;
    margin:0 auto;
    font-size:1.2rem;
    line-height:1.5;
    opacity:.9;
    font-weight:400;
}

.people-section{
    padding:30px 0;
}

/* ==========================================
CAST GRID
========================================== */

.cast-section{
    padding-bottom:120px;
}

.cast-grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:1.5rem;
    align-items:stretch;
}

.cast-bottom-button{
    text-align:center;
    margin-top:-8rem;
    margin-bottom:3rem;
    margin-right: 2rem;
    margin-left: 2rem;
}


/* ==========================================
CAST CARD
========================================== */

.cast-card{
    display:flex;
    flex-direction:column;
    height:100%;

    background:var(--card-bg);
    backdrop-filter:blur(15px);

    border-radius:5px;
    overflow:hidden;

    transition:.3s ease;

    cursor:pointer;

    border:1.5px solid rgba(255,255,255,.08);
}

.cast-card:hover{
    transform:translateY(-4px);
    background:rgba(255,255,255,.08);
    box-shadow:0 8px 30px rgba(0,0,0,.25);
    border: 1.5px solid var(--accent-purple);
}



/* ==========================================
IMAGE
========================================== */

.cast-image{
    aspect-ratio:1/1;
    overflow:hidden;
}

.cast-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

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

.cast-info{
    padding:1rem;
    text-align:center;
}

.cast-info h3{
    font-size:1rem;
    font-weight:800;
    text-transform:uppercase;
    margin-bottom:.3rem;
    line-height:1.2;
}

.cast-info p{
    font-size:.85rem;
    opacity:.75;
    line-height:1.3;
    min-height:2.6em;
}

/* ==========================================
MODAL
========================================== */

.bio-modal{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.75);
    backdrop-filter:blur(5px);
    display:flex;
    justify-content:center;
    align-items:center;
    opacity:0;
    visibility:hidden;
    transition:.3s ease;
    z-index:5000;
}

.bio-modal.active{
    opacity:1;
    visibility:visible;
}

/* ==========================================
MODAL CONTENT
========================================== */

.bio-modal-content{
    position:relative;
    background: var(--bg-dark);
    border-radius:30px;
    width:min(900px,100%);
    max-height:85vh;
    overflow-y:auto;
    padding:3rem;
    animation:modalIn .35s ease;
}

/* ==========================================
MODAL IMAGE
========================================== */

.bio-modal-content img{
    width:220px;
    aspect-ratio:1;
    object-fit:cover;
    display:block;
    margin:0 auto 2rem;
    border-radius:5px;
}

/* ==========================================
MODAL TEXT
========================================== */

.bio-modal-content h2{
    text-align:center;
    font-size:2rem;
    margin-bottom:.3rem;
}

.bio-modal-content h3{
    text-align:center;
    color:var(--accent-purple);
    margin-bottom:2rem;
    font-size:1.2rem;
    font-weight:600;
}

.modalBio{
    line-height:1.8;
    font-size:1rem;
}

.modalBio p{
    margin-bottom:1.25rem;
}

/* ==========================================
LINKS
========================================== */

.modalLinks{
    margin-top:2rem;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:1rem;
}

.modal-bio-link{
    margin:0;
    max-width:320px;
    width:100%;
    text-align:center;
}

.modalLinks a{
    text-decoration:none;
    color:var(--button-text);
    background:var(--button-bg);
    padding:.85rem 1.6rem;
    border-radius:999px;
    transition:.3s;
}

.modalLinks a:hover{
    background:var(--accent-purple);
}

.inline-link{
    color:var(--accent-purple);
    text-decoration:none;
    transition:.3s;
}

.inline-link:hover{
    color:var(--accent-pink);
}

/* ==========================================
CLOSE BUTTON
========================================== */

.close-modal{
    position:absolute;
    top:18px;
    right:22px;
    width:46px;
    height:46px;
    border:none;
    border-radius:50%;
    background:rgba(255,255,255,.08);
    color:white;
    font-size:2rem;
    cursor:pointer;
    transition:.3s;
}

.close-modal:hover{
    transform:rotate(90deg);
    background:rgba(255,255,255,.16);
}

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

@keyframes modalIn{

    from{
        opacity:0;
        transform:translateY(30px) scale(.96);
    }

    to{
        opacity:1;
        transform:none;
    }
}

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

@media (max-width:900px){
    .bio-modal-content{
        padding:2rem;
    }
}

@media (max-width:650px){

    .cast-info{
        padding:1.2rem;
    }

    .bio-modal{
        padding:1rem;
    }

    .bio-modal-content{
        padding:1.5rem;
    }

    .bio-modal-content img{
        width:180px;
    }
}

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

@media (max-width:1200px){

    .cast-grid{
        grid-template-columns:repeat(4,1fr);
    }

}

@media (max-width:900px){

    .cast-grid{
        grid-template-columns:repeat(3,1fr);
    }

}

@media (max-width:600px){

    .cast-grid{
        grid-template-columns:repeat(2,1fr);
    }
}