:root{
  --indigo:#45007a;
  --coral:#fe5f55;
  --antique:#f0e7d8;
  --orchid:#ca61c3;
  --champagne:#fae3c6;

  --text-dark:#1f1f1f;
  --text-light:#ffffff;

  --grad-primary:linear-gradient(135deg,var(--indigo),var(--orchid));
  --grad-accent:linear-gradient(135deg,var(--coral),var(--orchid));
  --texture-purple:url("image/purpletexture1-optimized.jpg");
  --texture-white:url("image/white-texture-light.jpg");
  --texture-paper:url("image/paper-texture-light.jpg");

  --radius:18px;
  --shadow:0 10px 25px rgba(0,0,0,.12);
  --shadow-soft:0 8px 18px rgba(0,0,0,.10);
}

/* =========================
   Base / Resets
   ========================= */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:"PT Sans",Arial,sans-serif;
  background:
    linear-gradient(rgba(240,231,216,.86), rgba(240,231,216,.88)),
    var(--texture-paper) center / 680px auto repeat;
  color:var(--text-dark);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img{max-width:100%;display:block}
a{color:inherit}
a:hover{color:inherit}
main{overflow-x:hidden}

/* Bootstrap helpers you rely on */
.container{position:relative}

/* =========================
   Typography
   ========================= */
h1,h2,h3,h4,h5,h6{
  font-family:"Playfair Display",Georgia,serif;
  letter-spacing:.2px;
}
.section-head{
  text-align:center;
  margin-bottom:26px;
}
.section-head h2{
  font-weight:700;
  margin:0 0 10px;
}
.section-head p{
  margin:0 auto;
  max-width:850px;
  opacity:.86;
  font-size:1.05rem;
}

/* =========================
   Sections
   ========================= */
.section{
  position:relative;
  padding:72px 0;
}

main > section:not(:first-child),
main > footer{
  position:relative;
}

main > section:not(:first-child)::after,
main > footer::after{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  z-index:20;
  pointer-events:none;
  background:linear-gradient(to right, #B38728, #FBF5B7, #DAA520, #FBF5B7, #AA771C);
  box-shadow:0 0 10px rgba(218,165,32,.42);
}

.bg-soft{
  background:
    radial-gradient(circle at 12% 0%, rgba(202,97,195,.10), transparent 30%),
    linear-gradient(135deg, rgba(250,227,198,.76), rgba(255,255,255,.70)),
    var(--texture-paper) center / 620px auto repeat;
}
.section-dark{
  background:
    linear-gradient(180deg, rgba(69,0,122,.90), rgba(26,0,48,.97)),
    var(--texture-purple) center / cover;
  color:#fff;
}
.section-dark .section-head p{opacity:.88}
.section-faq-purple{
  background:
    linear-gradient(180deg, rgba(69,0,122,.90), rgba(26,0,48,.98)),
    var(--texture-purple) center / cover;
  color:#fff;
}
.section-faq-purple .section-head p{opacity:.88}

/* =========================
   HERO
   ========================= */
.hero{
  position:relative;
  min-height:100vh;
  overflow:hidden;
  background:var(--indigo);
}
.hero-media{position:absolute;inset:0}
.hero-embed{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:100vw;height:56.25vw; /* 16:9 */
  min-width:177.78vh;
  min-height:100vh;
  border:0;
}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.78));
}
.hero-title-art{
  position:absolute;
  z-index:3;
  top:50%;
  left:50%;
  width:clamp(280px,72vw,1040px);
  max-height:44vh;
  height:auto;
  object-fit:contain;
  transform:translate(-50%,-50%);
  pointer-events:none;
  filter:drop-shadow(0 18px 28px rgba(0,0,0,.32));
}
.hero-content{
  position:relative;
  z-index:4;
  min-height:100vh;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:0 0 96px;
}
.hero-kicker{
  margin:0 0 10px;
  font-weight:700;
  letter-spacing:.6px;
  text-transform:uppercase;
  font-size:.95rem;
}
.hero-note{
  margin:14px 0 0;
  opacity:.88;
  font-weight:700;
}
.hero-actions{
  display:flex;
  gap:12px;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:14px;
}

/* Loader overlay for the hero video */
.hero-loader{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.30);
  z-index:5;
  transition:opacity .2s ease;
}
.hero-loader.is-hidden{
  opacity:0;
  pointer-events:none;
}
.hero-spinner{
  width:54px;height:54px;
  border-radius:50%;
  border:4px solid rgba(255,255,255,.28);
  border-top-color:#fff;
  animation:spin .9s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

/* =========================
   Buttons (matches your design)
   ========================= */
.btn{
  border-radius:999px;
  padding:12px 20px;
  font-weight:700;
  letter-spacing:.2px;
}
.btn-cta{
  background:var(--grad-primary) !important;
  color:white !important;
  border:none !important;
  box-shadow:0 10px 20px rgba(0,0,0,.14);
}
.btn-cta:hover{
  filter:saturate(1.05) brightness(1.04);
  transform:translateY(-1px);
}
.btn-outline{
  background:transparent !important;
  border:1px solid rgba(31,31,31,.35) !important;
  color:var(--text-dark) !important;
}
.btn-outline:hover{
  border-color:rgba(31,31,31,.55) !important;
  background:rgba(255,255,255,.35) !important;
}

/* =========================
   Benefit cards
   ========================= */
.cardx{
  height:100%;
  background:rgba(255,255,255,.50);
  border:1px solid rgba(69,0,122,.10);
  border-radius:20px;
  padding:22px 20px;
  box-shadow:var(--shadow-soft);
}
.cardx h3{
  margin:0 0 10px;
  font-weight:700;
}
.cardx p{margin:0;opacity:.86}

/* =========================
   Cast
   ========================= */
.cast-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.cast-card{
  position:relative;
  border-radius:18px;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.cast-card img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
}
.cast-card figcaption{
  position:absolute;
  bottom:0;left:0;right:0;
  padding:14px 60px 14px 14px;
  font-weight:800;
  color:white;
  background:linear-gradient(transparent,rgba(0,0,0,.76));
}

@media (min-width: 992px){
  .cast-card--new-left{
    grid-column:2;
  }

  .cast-card--new-right{
    grid-column:3;
  }
}

/* =========================
   Creative team (CIRCULAR 500x500 + NAME UNDER)
   ========================= */
.section-dark .team-clean{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:18px;
  padding:10px 0;
}
.team-avatar-big{
  width:500px;
  height:500px;
  border-radius:50%;
  object-fit:cover;
  object-position:center;
  display:block;

  border:6px solid rgba(255,255,255,.12);
  box-shadow:0 18px 50px rgba(0,0,0,.45);
}
.team-name-big{
  margin:0;
  line-height:1.15;
  font-weight:800;
  letter-spacing:.2px;
  color:rgba(255,255,255,.92);
  text-shadow:0 2px 10px rgba(0,0,0,.35);
}
.team-name-big br{
  content:"";
  display:block;
  margin-top:10px;
}

/* =========================
   Trailer section
   ========================= */
.trailer-section{
  position:relative;
  background:
    radial-gradient(circle at 10% 12%, rgba(202,97,195,.10), transparent 30%),
    linear-gradient(135deg, rgba(255,255,255,.78), rgba(250,227,198,.64)),
    var(--texture-white) center / cover !important;
}

.trailer-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.trailer-card{
  border-radius:18px;
  overflow:hidden;
  box-shadow:var(--shadow);
  background:
    linear-gradient(145deg, rgba(255,255,255,.72), rgba(250,227,198,.50)),
    var(--texture-white) center / cover;
  border:1px solid rgba(69,0,122,.10);
  padding:10px;
}

.video-frame{
  position:relative;
  width:100%;
  aspect-ratio:16 / 9;
  overflow:hidden;
  background:#000;
}

.video-frame iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  display:block;
}


/* =========================
   FAQ (accordion)
   ========================= */
.faq{max-width:980px;margin:0 auto}
.faq-item{
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  overflow:hidden;
  background:rgba(255,255,255,.08);
  margin-bottom:12px;
}
.faq-q{
  width:100%;
  text-align:left;
  padding:16px 18px;
  background:transparent;
  border:0;
  color:#fff;
  font-weight:800;
  letter-spacing:.2px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.faq-q::after{
  content:"+";
  font-weight:900;
  opacity:.9;
}
.faq-item.open .faq-q::after{content:"–"}
.faq-a{
  height:0;
  overflow:hidden;
  transition:height .25s ease;
}
.faq-a-inner{
  padding:0 18px 18px;
  opacity:.92;
  line-height:1.55;
}

/* =========================
   Testimonials
   ========================= */
.praise-section{
  background:
    radial-gradient(circle at 86% 10%, rgba(202,97,195,.12), transparent 28%),
    linear-gradient(135deg, rgba(255,255,255,.90), rgba(250,227,198,.54)),
    var(--texture-paper) center / 620px auto repeat;
}
.praise-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  align-items:start;
}
.praise-video{
  background:
    linear-gradient(145deg, rgba(255,255,255,.94), rgba(250,227,198,.50)),
    var(--texture-white) center / cover;
  border:1px solid rgba(69,0,122,.14);
  border-radius:8px;
  padding:10px 10px 14px;
  box-shadow:var(--shadow-soft);
  margin:0;
}
.praise-frame{
  border-radius:6px;
  overflow:hidden;
  aspect-ratio:9/16;
  background:#000;
}
.praise-frame iframe{width:100%;height:100%;border:0}
.praise-video figcaption{
  margin-top:12px;
  color:var(--indigo);
  font-family:"Playfair Display", Georgia, serif;
  font-size:1.15rem;
  font-weight:900;
  line-height:1.15;
  text-align:center;
}

/* =========================================================
   DINE TO DONATE – APPLEBEE'S BANNER
   Modern Glass Gradient Section
   ========================================================= */

.dine-banner{
  position:relative;
  padding:90px 0;
  background:
    linear-gradient(135deg, rgba(69,0,122,.95), rgba(202,97,195,.85)),
    radial-gradient(circle at 20% 20%, rgba(255,0,0,.25), transparent 50%);
  color:#fff;
  overflow:hidden;
}

.dine-inner{
  display:flex;
  flex-wrap:wrap;
  gap:60px;
  align-items:center;
  justify-content:space-between;
}

.dine-left{
  flex:1 1 520px;
}

.dine-right{
  flex:1 1 320px;
  text-align:center;
}

.dine-badge{
  display:inline-block;
  background:rgba(255,255,255,.12);
  padding:6px 14px;
  border-radius:999px;
  font-size:.85rem;
  letter-spacing:.5px;
  margin-bottom:18px;
}

.dine-title{
  font-size:2.2rem;
  font-weight:800;
  line-height:1.2;
  margin-bottom:18px;
}

.dine-title span{
  color:#fae3c6;
}

.dine-text{
  font-size:1.1rem;
  margin-bottom:14px;
  opacity:.95;
}

.dine-subtext{
  opacity:.85;
  margin-bottom:28px;
}

.dine-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:18px;
}

.dine-btn{
  padding:12px 22px;
  border-radius:999px;
  font-weight:700;
  text-decoration:none;
  transition:all .2s ease;
  display:inline-block;
}

.dine-btn.primary{
  background:#e31837; /* Applebee’s red */
  color:#fff;
}

.dine-btn.primary:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 25px rgba(0,0,0,.25);
}

.dine-btn.secondary{
  background:rgba(255,255,255,.15);
  color:#fff;
  border:1px solid rgba(255,255,255,.25);
}

.dine-btn.secondary:hover{
  background:rgba(255,255,255,.25);
}

.dine-address{
  font-size:.95rem;
  opacity:.75;
}

.dine-logo{
  max-width:220px;
  margin:0 auto 20px;
  filter:drop-shadow(0 10px 25px rgba(0,0,0,.35));
}

.dine-tagline{
  font-size:1rem;
  opacity:.9;
}

.dine-tagline span{
  opacity:.7;
  font-size:.9rem;
}

@media (max-width:768px){
  .dine-inner{
    text-align:center;
  }
  .dine-actions{
    justify-content:center;
  }
}

/* Cast modal trigger button (small arrow on each card) */
.cast-caption-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.cast-more-btn{
  appearance:none;
  border:0;
  background:transparent;
  color:#fff;
  padding:0;
  margin:0;
  cursor:pointer;
  font-size:1.25rem;
  line-height:1;
  opacity:.95;
}
.cast-more-btn:hover{
  transform:translateY(-1px);
  opacity:1;
}

/* =========================
   Sponsors marquee
   ========================= */
.sponsor-marquee{
  position:relative;
  overflow:hidden;
  padding:18px 0;
  background:
    linear-gradient(90deg, rgba(240,231,216,.86), rgba(255,255,255,.68), rgba(240,231,216,.86)),
    var(--texture-white) center / cover;
}
/* Fade-edge masks — left and right */
.sponsor-marquee::before,
.sponsor-marquee::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 100px;
  z-index: 2;
  pointer-events: none;
}
.sponsor-marquee::before {
  left: 0;
  background: linear-gradient(90deg, rgba(240,231,216,1) 0%, transparent 100%);
}
.sponsor-marquee::after {
  right: 0;
  background: linear-gradient(270deg, rgba(240,231,216,1) 0%, transparent 100%);
}
.marquee-track{
  display:flex;
  gap:18px;
  align-items:center;
  will-change:transform;
  padding:0 18px;
  transform:translateX(0);
}
.sponsor-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  text-decoration:none;
  border-radius:16px;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.sponsor-link img{
  width:300px;height:150px;
  object-fit:cover;
  border-radius:16px;
}
.sponsor-hover-zone{
  position:absolute;
  top:0;bottom:0;
  width:18%;
  z-index:3;
}
.sponsor-hover-left{left:0}
.sponsor-hover-right{right:0}
.sponsor-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px;height:44px;
  border-radius:50%;
  border:1px solid rgba(31,31,31,.18);
  background:rgba(255,255,255,.75);
  z-index:4;
  display:none; /* shown on small screens */
  font-size:28px;
  line-height:40px;
  padding:0;
  cursor:pointer;
}
.sponsor-arrow-left{left:12px}
.sponsor-arrow-right{right:12px}

/* Visionaries: make image clickable + arrow overlay */
.team-photo-wrap{
  position:relative;
  width:fit-content;
  margin:0 auto;
  cursor:pointer;
}

/* Arrow button on bottom-left (matches your Vimeo preference too) */
.team-more-btn{
  position:absolute;
  left:18px;
  bottom:18px;
  appearance:none;
  border:0;
  background:rgba(0,0,0,.28);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  color:#fff;
  width:44px;
  height:44px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(0,0,0,.28);
  transition:transform .15s ease, background .15s ease, opacity .15s ease;
  opacity:.95;
}
.team-more-btn:hover{
  transform:translateY(-1px);
  background:rgba(0,0,0,.36);
  opacity:1;
}
.team-more-btn i{
  font-size:1.25rem;
  line-height:1;
}

/* =========================
   Footer
   ========================= */
.footer{
  background:linear-gradient(180deg,rgba(69,0,122,.85),rgba(69,0,122,1));
  color:white;
  padding:70px 0;
}
.footer a{color:rgba(255,255,255,.92);text-decoration:none}
.footer a:hover{color:#fff;text-decoration:underline}
.footer input.form-control{
  border-radius:999px;
  padding:14px 16px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.10);
  color:#fff;
}
.footer input.form-control::placeholder{color:rgba(255,255,255,.70)}
.social-btn{
  display:inline-flex;
  width:40px;height:40px;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.78);
  color:#fff;
  text-decoration:none;
}
.social-btn:hover{
  background:rgba(255,255,255,.10);
  transform:translateY(-1px);
}

/* =========================
   Responsive
   ========================= */
@media (max-width: 991.98px){
  .cast-grid{grid-template-columns:repeat(2,1fr)}
  .praise-grid{grid-template-columns:repeat(2,1fr)}
  /* keep creative team circles responsive */
  .team-avatar-big{
    width:min(500px,82vw);
    height:min(500px,82vw);
  }
}
@media (max-width: 767.98px){
  .section{padding:58px 0}
  .cast-grid{grid-template-columns:1fr}
  .trailer-grid{grid-template-columns:1fr}
  .praise-grid{grid-template-columns:1fr}
  .hero-content{padding-bottom:72px}
  .hero-title-art{
    width:min(92vw,680px);
    max-height:34vh;
  }
  .sponsor-arrow{display:inline-flex;align-items:center;justify-content:center}
  .sponsor-hover-zone{display:none} /* mobile uses arrows/drag */
}
@media (max-width: 420px){
  .cast-grid{grid-template-columns:1fr}
}

/* =========================
   Cast + Visionaries modal triggers
   ========================= */
.bio-trigger{cursor:pointer}

/* Cast intro block */
.cast-intro{
  max-width:980px;
  margin:0 auto 22px;
  padding:0;
  text-align:center;
  background:transparent;
  border:none;
  box-shadow:none;
}
.cast-intro-title{
  margin:0 0 10px;
  font-weight:800;
  line-height:1.1;
}
.cast-intro-title span{
  opacity:.88;
  font-weight:700;
}
.cast-intro-text{margin:0 0 10px;opacity:.88}
.cast-intro-hint{margin:0;opacity:.75;font-weight:700}

/* Cast "more" button overlay */
.cast-card{position:relative}
.cast-more-btn{
  position:absolute;
  right:12px;
  bottom:12px;
  left:auto;
  top:auto;

  border:0;
  background:rgba(0,0,0,.40);
  color:#fff;
  width:44px;
  height:44px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  box-shadow:0 10px 25px rgba(0,0,0,.22);
  transition:transform .15s ease, background .15s ease, box-shadow .15s ease;
  z-index:3;
}
.cast-more-btn:hover{
  transform:translateY(-2px) scale(1.03);
  background:rgba(0,0,0,.55);
}
.cast-more-btn i{font-size:22px;line-height:1}

/* Visionaries overlay button */
.team-photo-wrap{position:relative; display:inline-block}
.team-more-btn{
  position:absolute;
  left:18px;
  bottom:18px;
  border:0;
  background:rgba(0,0,0,.35);
  color:#fff;
  width:52px;
  height:52px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 14px 35px rgba(0,0,0,.30);
  transition:transform .15s ease, background .15s ease;
}
.team-more-btn:hover{transform:translateY(-2px) scale(1.03); background:rgba(0,0,0,.50)}
.team-more-btn i{font-size:24px;line-height:1}

/* =========================
   Bio Modal styling
   ========================= */
.bio-modal{
  border-radius:22px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg,rgba(69,0,122,.96),rgba(45,0,85,.98));
  color:#fff;
}
.bio-modal .modal-header{
  border-bottom:1px solid rgba(250,227,198,.18);
}
.bio-modal-sub{opacity:.75;font-size:.95rem}
.bio-modal-grid{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:18px;
  align-items:start;
}
.bio-modal-photo img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:18px;
  border:1px solid rgba(250,227,198,.22);
  box-shadow:0 18px 50px rgba(0,0,0,.35);
}
.bio-modal-photo img.bio-modal-img--terrell{
  object-position:center calc(50% + 18px);
}
.atma-signup{
  background:var(--antique);
  color:#321044;
  border:1px solid var(--champagne);
  border-radius:20px;
  overflow:hidden;
}
.atma-signup .modal-header{
  background:var(--grad-primary);
  color:#fff;
  border-bottom:0;
  align-items:flex-start;
  padding:1.5rem;
}
.atma-signup .btn-close{flex-shrink:0; margin-left:1rem;}
.atma-signup small{line-height:1.5;}

.bio-modal-name{
  margin:0 0 6px;
  font-weight:800;
}
.vincent-portrait{
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  border-radius:18px;
}
.vincent-portrait img{
  position:absolute;
  top:0;
  left:-30%;
  width:160%;
  max-width:none;
  height:auto;
  aspect-ratio:auto;
}
.bio-modal-role{
  margin:0 0 12px;
  opacity:.88;
  font-weight:700;
}
.bio-modal-text{margin:0;opacity:.92;line-height:1.6}

@media (max-width: 767.98px){
  .bio-modal-grid{grid-template-columns:1fr}
  .team-more-btn{left:14px;bottom:14px;width:46px;height:46px}
  .cast-more-btn{width:42px;height:42px}
}


/* =========================================================
   Director Spotlight (Donald Gray) — text left, 16:9 video right
   ========================================================= */
.director-feature{
  width:100%;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(250,227,198,.16);
  border-radius:22px;
  padding:18px;
  box-shadow:0 18px 55px rgba(0,0,0,.25);
}

.director-feature-grid{
  display:grid;
  grid-template-columns:1fr minmax(220px, 320px);
  gap:18px;
  align-items:center;
}

.director-feature-kicker{
  display:inline-block;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-size:.78rem;
  opacity:.88;
  margin-bottom:8px;
}

.director-feature-name{
  margin:0 0 6px;
  font-weight:800;
  color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.35);
}

.director-feature-role{
  margin:0 0 12px;
  font-weight:800;
  opacity:.9;
  color:rgba(250,227,198,.95);
}

.director-feature-text{
  margin:0 0 16px;
  opacity:.9;
  line-height:1.6;
  color:rgba(255,255,255,.92);
}

.director-bio-trigger{
  border-color:rgba(255,255,255,.35) !important;
  color:#fff !important;
}

.director-bio-trigger:hover{
  background:rgba(255,255,255,.10) !important;
  border-color:rgba(255,255,255,.55) !important;
}

.director-video-portrait{
  width:100%;
  aspect-ratio:16 / 9;
  border-radius:18px;
  overflow:hidden;
  background:#000;
  box-shadow:0 18px 50px rgba(0,0,0,.35);
  border:1px solid rgba(250,227,198,.18);
}

.director-video-portrait iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}

.director-video-note{
  margin-top:8px;
  text-align:center;
  font-size:.85rem;
  opacity:.75;
}

@media (max-width: 991.98px){
  .director-feature-grid{
    grid-template-columns:1fr;
  }
  .director-video-portrait{
    max-width:420px;
    margin:0 auto;
  }
}


/* =========================
   QUICK FIXES (cast arrows + cast intro box)
   ========================= */

/* Put cast arrows at bottom-right and keep them off the names */
.cast-more-btn{
  left:auto !important;
  right:12px !important;
  top:auto !important;
  bottom:12px !important;
}

/* Give the name gradient room so the arrow never covers the text */
.cast-card figcaption{
  padding-right:64px !important;
}

/* Remove the boxed background from the cast intro/title block (center text only) */
.cast-intro{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  text-align:center;
}



/* =========================================================
   Director Feature Banner (matches Applebee's style)
   ========================================================= */
.director-feature-section{
  position:relative;
  padding:90px 0;
  background:
    linear-gradient(135deg, rgba(69,0,122,.95), rgba(202,97,195,.85)),
    radial-gradient(circle at 20% 20%, rgba(254,95,85,.20), transparent 55%);
  color:#fff;
  overflow:hidden;
}

.director-feature{
  border-radius:24px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 24px 70px rgba(0,0,0,.22);
  padding:34px;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

.director-feature-grid{
  display:grid;
  grid-template-columns: 1.25fr .75fr;
  gap:34px;
  align-items:center;
}

.director-feature-kicker{
  display:inline-block;
  background:rgba(255,255,255,.14);
  padding:6px 14px;
  border-radius:999px;
  font-size:.85rem;
  letter-spacing:.6px;
  text-transform:uppercase;
  margin-bottom:14px;
}

.director-feature-name{
  margin:0 0 6px;
  font-weight:800;
  font-size:2.2rem;
  line-height:1.1;
  color:#fff;
}

.director-feature-role{
  margin:0 0 14px;
  font-weight:800;
  opacity:.9;
  letter-spacing:.4px;
}

.director-feature-text{
  margin:0 0 18px;
  font-size:1.05rem;
  line-height:1.6;
  opacity:.92;
}

/* Make outline button readable on purple banner */
.director-feature-section .btn-outline{
  border-color:rgba(255,255,255,.42) !important;
  color:#fff !important;
}
.director-feature-section .btn-outline:hover{
  background:rgba(255,255,255,.14) !important;
  border-color:rgba(255,255,255,.60) !important;
}

.director-video-portrait{
  width:min(520px, 100%);
  aspect-ratio: 16 / 9;
  border-radius:18px;
  overflow:hidden;
  background:#000;
  box-shadow:0 22px 55px rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.18);
}

.director-video-portrait iframe{
  width:100%;
  height:100%;
  border:0;
}

.director-video-note{
  margin-top:10px;
  font-size:.9rem;
  opacity:.80;
  text-align:center;
}

.director-praise-video{
  width:100%;
  max-width:none;
}

.director-praise-video iframe{
  position:relative;
  left:-20px;
  width:calc(100% + 40px);
  height:100%;
  max-width:none;
  margin:0;
  display:block;
}

/* Responsive */
@media (max-width: 991.98px){
  .director-feature{ padding:26px; }
  .director-feature-grid{
    grid-template-columns: 1fr;
    gap:22px;
    text-align:center;
  }
  .director-feature-media{
    display:flex;
    flex-direction:column;
    align-items:center;
  }
}


/* =========================================================
   Genius overrides: Cast intro no box + arrows bottom-right
   ========================================================= */
.cast-intro{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  padding:0 !important;
}
.cast-more-btn{
  left:auto !important;
  top:auto !important;
  right:12px !important;
  bottom:12px !important;
}

/* =========================================================
   Play Promo Video Banner
   ========================================================= */
.play-promo{
  position:relative;
  padding:86px 0;
  overflow:hidden;
  color:#fff;
  background:
    radial-gradient(circle at 8% 12%, rgba(255,216,154,.16), transparent 28%),
    radial-gradient(circle at 92% 88%, rgba(18,0,5,.58), transparent 42%),
    linear-gradient(128deg, #310009 0%, #720f22 52%, #42000d 100%);
}
.play-promo::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:2;
  background:
    linear-gradient(to right,#B38728,#FBF5B7,#DAA520,#FBF5B7,#AA771C) top/100% 3px no-repeat,
    linear-gradient(to right,#B38728,#FBF5B7,#DAA520,#FBF5B7,#AA771C) bottom/100% 3px no-repeat,
    repeating-linear-gradient(118deg,transparent 0 28px,rgba(255,255,255,.04) 29px 30px);
  box-shadow:inset 0 3px 10px rgba(218,165,32,.28),inset 0 -3px 10px rgba(218,165,32,.28);
}
.play-promo-panel{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
  gap:clamp(30px,5vw,72px);
  align-items:center;
  padding:clamp(20px,3vw,38px);
  border:1px solid rgba(250,227,198,.28);
  border-radius:24px;
  background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.035));
  box-shadow:0 28px 80px rgba(20,0,4,.42),inset 0 1px 0 rgba(255,255,255,.10);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.play-promo-video{
  position:relative;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:16px;
  border:1px solid rgba(250,227,198,.30);
  background:#130004;
  box-shadow:0 20px 55px rgba(15,0,3,.52);
}
.play-promo-video::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
}
.play-promo-video iframe{width:100%;height:100%;border:0;display:block}
.play-promo-copy{text-align:right}
.play-promo-kicker{
  margin:0 0 5px;
  color:var(--champagne);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.play-promo-title{
  margin:0 0 14px;
  color:#fff;
  font-family:"PT Sans",Arial,sans-serif;
  font-size:clamp(4.6rem,10vw,8.5rem);
  font-weight:900;
  line-height:.82;
  letter-spacing:-.075em;
  text-align:right;
  text-shadow:0 10px 35px rgba(15,0,3,.35);
}
.play-promo-lead{
  margin:0 0 12px auto;
  max-width:500px;
  color:#fff7ed;
  font-family:"Playfair Display",Georgia,serif;
  font-size:clamp(1.18rem,2vw,1.55rem);
  font-weight:700;
  line-height:1.35;
}
.play-promo-text{
  margin:0 0 24px auto;
  max-width:520px;
  color:rgba(255,255,255,.82);
  font-size:1rem;
  line-height:1.65;
}
.play-promo-cta{
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:12px 22px;
  border:1px solid rgba(250,227,198,.55);
  border-radius:999px;
  color:#3b0711;
  background:linear-gradient(135deg,#fff2d8,#d9af62);
  font-weight:900;
  text-decoration:none;
  box-shadow:0 12px 30px rgba(20,0,4,.24);
  transition:transform .2s ease,box-shadow .2s ease;
}
.play-promo-cta:hover{
  color:#3b0711;
  transform:translateY(-2px);
  box-shadow:0 16px 36px rgba(20,0,4,.34);
}
.play-promo-cta span{font-size:1.2em}
@media (max-width:991.98px){
  .play-promo{padding:64px 0}
  .play-promo-panel{grid-template-columns:1fr}
  .play-promo-copy{text-align:left}
  .play-promo-title{text-align:center;font-size:clamp(4.2rem,20vw,7rem)}
  .play-promo-lead,.play-promo-text{margin-left:0;margin-right:0}
}
@media (max-width:575.98px){
  .play-promo{padding:48px 0}
  .play-promo-panel{padding:14px;border-radius:18px}
  .play-promo-video{border-radius:11px}
  .play-promo-copy{padding:10px 7px 8px}
}
.cast-card figcaption{
  padding-right:60px !important; /* keep names clear of arrow */
}
/* ===== CAST TITLE (Fancy) ===== */
.cast-head{ margin-bottom: 28px; }

.cast-eyebrow{
  display:inline-block;
  font-weight:800;
  letter-spacing:2.4px;
  text-transform:uppercase;
  font-size:.78rem;
  opacity:.75;
  padding:6px 14px;
  border-radius:999px;
  background:rgba(69,0,122,.08);
  border:1px solid rgba(69,0,122,.10);
  margin-bottom:12px;
}

.cast-title{
  font-weight:800;
  margin:0 0 10px;
  line-height:1.05;
}

.cast-title span{
  background: linear-gradient(135deg, rgba(69,0,122,1), rgba(202,97,195,1));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.cast-subtitle{
  margin:0 auto;
  max-width:900px;
  opacity:.88;
  font-size:1.07rem;
}

.cast-divider{
  width:140px;
  height:3px;
  border-radius:999px;
  margin:18px auto 0;
  background: linear-gradient(90deg, rgba(69,0,122,1), rgba(202,97,195,1));
  opacity:.9;
}

/* =========================
   PAUSE BANNER
   ========================= */
.pause-banner{
  padding:70px 0;
  text-align:center;
  background:linear-gradient(135deg,#8b0000,#c1121f,#e63946);
  color:#fff;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
}
.pause-banner h2{
  font-weight:800;
  font-size:2.4rem;
  margin-bottom:20px;
}
.pause-banner p{
  font-size:1.15rem;
  max-width:900px;
  margin:0 auto 14px;
  opacity:.95;
}
.pause-banner strong{color:#ffdede}

@media (max-width: 767.98px){
  .pause-banner{padding:56px 0}
  .pause-banner h2{font-size:1.9rem}
  .pause-banner p{font-size:1.05rem}
}

.flyer-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
  align-items:start;
  max-width:1120px;
  margin:0 auto;
}
.flyer-link{
  display:block;
  text-decoration:none;
  outline:none;
}
.flyer-link img{
  width:100%;
  height:auto;
  display:block;
  border-radius:14px;
  background:transparent;
  box-shadow:0 28px 80px rgba(0,0,0,.26);
  transform:translateY(0) scale(1);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.flyer-link:hover img,
.flyer-link:focus-visible img{
  transform:translateY(-8px) scale(1.015);
  box-shadow:0 34px 90px rgba(0,0,0,.32);
  filter:saturate(1.04);
}

@media (max-width: 767.98px){
  .flyer-grid{
    grid-template-columns:1fr;
    gap:22px;
    max-width:520px;
  }
}


.hero-content{
  padding:0 0 42px !important;
}

/* ===== 404 Page ===== */
.not-found-page{
  min-height:100vh;
  background:
    linear-gradient(135deg, rgba(27,0,48,.94), rgba(69,0,122,.88), rgba(202,97,195,.76)),
    var(--texture-purple) center / cover;
  color:#fff;
}

.not-found-hero{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:32px 18px;
}

.not-found-panel{
  width:min(680px, 100%);
  padding:clamp(28px, 6vw, 56px);
  border-radius:8px;
  text-align:center;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(250,227,198,.24);
  box-shadow:0 28px 80px rgba(0,0,0,.28);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

.not-found-kicker{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:7px 15px;
  margin:0 0 16px;
  border-radius:999px;
  background:rgba(250,227,198,.16);
  border:1px solid rgba(250,227,198,.26);
  color:var(--champagne);
  font-weight:900;
  letter-spacing:.14em;
}

.not-found-panel h1{
  margin:0 0 12px;
  font-size:clamp(2.4rem, 8vw, 4.8rem);
  font-weight:800;
  line-height:1;
}

.not-found-panel p:not(.not-found-kicker){
  max-width:480px;
  margin:0 auto 24px;
  color:rgba(255,255,255,.88);
  font-size:1.08rem;
}

.not-found-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:center;
}

.not-found-page .btn-outline{
  border-color:rgba(255,255,255,.42) !important;
  color:#fff !important;
}

.not-found-page .btn-outline:hover{
  background:rgba(255,255,255,.14) !important;
  border-color:rgba(255,255,255,.60) !important;
}

/* ===== Final polish: Cast Praise + Director Spotlight ===== */
.praise-section{
  position:relative;
  overflow:hidden;
  padding:clamp(74px, 9vw, 118px) 0;
  background:
    linear-gradient(180deg, rgba(17,0,31,.98), rgba(54,0,92,.98)),
    var(--texture-purple) center / cover;
}

.praise-section::before,
.praise-section::after{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  border:1px solid rgba(69,0,122,.09);
  border-radius:50%;
  pointer-events:none;
}

.praise-section::before{
  top:-100px;
  left:-70px;
  border-color:rgba(250,227,198,.14);
}

.praise-section::after{
  right:-110px;
  bottom:-125px;
  border-color:rgba(202,97,195,.20);
}

.praise-container{position:relative;z-index:2}

.praise-stage-glow{
  position:absolute;
  top:-18%;
  width:42%;
  height:82%;
  opacity:.30;
  filter:blur(12px);
  pointer-events:none;
  clip-path:polygon(44% 0, 56% 0, 100% 100%, 0 100%);
  background:linear-gradient(180deg, rgba(250,227,198,.75), transparent 76%);
}

.praise-stage-glow--left{left:-17%;transform:rotate(-10deg)}
.praise-stage-glow--right{right:-17%;transform:rotate(10deg)}

.praise-editorial-head{
  max-width:900px;
  margin:0 auto clamp(34px, 5vw, 58px);
  text-align:center;
}

.praise-editorial-head .premiere-cast-eyebrow{color:rgba(250,227,198,.72)}

.praise-title{
  font-size:clamp(2.5rem, 6vw, 4.6rem);
  letter-spacing:-.035em;
  text-shadow:0 12px 34px rgba(0,0,0,.28);
}

.praise-intro{
  max-width:710px;
  margin:0 auto;
  color:rgba(255,255,255,.75);
  font-size:clamp(.98rem, 1.8vw, 1.12rem);
  line-height:1.75;
}

.praise-intro em{color:var(--champagne)}

.praise-head-rule{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  max-width:320px;
  margin:24px auto 0;
  color:var(--champagne);
}

.praise-head-rule span{height:1px;flex:1;background:linear-gradient(90deg, transparent, rgba(250,227,198,.65))}
.praise-head-rule span:last-child{transform:scaleX(-1)}

.praise-stage{
  position:relative;
  padding:clamp(20px, 3vw, 38px);
  border:1px solid rgba(250,227,198,.20);
  border-radius:28px;
  background:linear-gradient(145deg, rgba(255,255,255,.105), rgba(255,255,255,.035));
  box-shadow:0 34px 80px rgba(0,0,0,.34), inset 0 1px rgba(255,255,255,.12);
  backdrop-filter:blur(8px);
}

.praise-stage::before{
  content:"";
  position:absolute;
  inset:10px;
  border:1px solid rgba(250,227,198,.08);
  border-radius:20px;
  pointer-events:none;
}

.praise-stage-label{
  position:relative;
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:0 6px 22px;
  color:rgba(250,227,198,.66);
  font-size:.69rem;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
}

.praise-section .section-head{
  position:relative;
  max-width:860px;
  margin-left:auto;
  margin-right:auto;
}

.praise-kicker{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-bottom:8px;
  color:var(--indigo);
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.praise-kicker::before,
.praise-kicker::after{
  content:"";
  width:24px;
  height:2px;
  background:linear-gradient(90deg, var(--coral), var(--indigo));
}

.praise-grid{
  position:relative;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}

.praise-video{
  position:relative;
  overflow:hidden;
  padding:9px 9px 14px;
  border-radius:18px;
  border-color:rgba(250,227,198,.24);
  background:
    linear-gradient(145deg, rgba(255,255,255,.96), rgba(250,227,198,.60)),
    var(--texture-white) center / cover;
  box-shadow:0 18px 38px rgba(0,0,0,.24);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.praise-video:nth-child(even){
  transform:translateY(14px);
}

.praise-video:nth-child(even):hover{
  transform:translateY(9px);
}

.praise-video figcaption{
  position:relative;
  margin-top:4px;
  padding:10px 8px 2px 32px;
  color:var(--indigo);
  font-weight:900;
  letter-spacing:.025em;
}

.praise-video figcaption::before{
  content:"";
  position:absolute;
  left:8px;
  top:50%;
  width:14px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--coral), var(--orchid));
}

@media (max-width: 760px){
  .praise-section{padding:64px 0}
  .praise-stage{padding:16px 12px 22px;border-radius:20px}
  .praise-stage-label{justify-content:center;text-align:center}
  .praise-stage-label span:last-child{display:none}
  .praise-video:nth-child(even),
  .praise-video:nth-child(even):hover{
    transform:none;
  }
}

.praise-video:hover{
  transform:translateY(-5px);
  border-color:rgba(254,95,85,.34);
  box-shadow:0 18px 45px rgba(69,0,122,.16);
}

.director-feature-section{
  background:
    linear-gradient(120deg, rgba(27,0,48,.96), rgba(69,0,122,.90) 48%, rgba(202,97,195,.78)),
    var(--texture-purple) center / cover;
}

.director-feature-section::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 16% 18%, rgba(250,227,198,.18), transparent 28%),
    radial-gradient(circle at 86% 18%, rgba(254,95,85,.16), transparent 30%);
}

.director-feature{
  position:relative;
  overflow:hidden;
  padding:clamp(22px, 4vw, 44px);
  border-radius:8px;
  background:linear-gradient(145deg, rgba(255,255,255,.16), rgba(255,255,255,.07));
  border:1px solid rgba(250,227,198,.26);
}

.director-feature::after{
  content:"";
  position:absolute;
  right:-90px;
  bottom:-110px;
  width:280px;
  height:280px;
  border-radius:50%;
  border:1px solid rgba(250,227,198,.16);
  pointer-events:none;
}

.director-feature-grid{
  position:relative;
  z-index:1;
  grid-template-columns:minmax(0, .92fr) minmax(320px, 1.08fr);
  gap:clamp(24px, 5vw, 54px);
}

.director-feature-kicker{
  border-radius:999px;
  background:rgba(250,227,198,.14);
  border:1px solid rgba(250,227,198,.24);
  color:rgba(250,227,198,.98);
}

.director-feature-name{
  font-size:clamp(2.25rem, 6vw, 5rem);
  max-width:620px;
}

.director-feature-role{
  color:rgba(250,227,198,.96);
  text-transform:uppercase;
  font-size:.9rem;
}

.director-feature-text{
  max-width:560px;
  font-size:clamp(1rem, 1.7vw, 1.16rem);
}

.director-feature-highlights{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 22px;
}

.director-feature-highlights span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.92);
  font-weight:800;
  font-size:.84rem;
}

.director-feature-media{
  position:relative;
  min-height:430px;
  display:grid;
  align-items:center;
}

.director-portrait-card{
  position:absolute;
  left:0;
  bottom:0;
  z-index:2;
  width:min(44%, 210px);
  margin:0;
  padding:8px;
  border-radius:8px;
  background:rgba(250,227,198,.95);
  box-shadow:0 24px 55px rgba(0,0,0,.34);
  transform:rotate(-2deg);
}

.director-portrait-card img{
  width:100%;
  aspect-ratio:4 / 5;
  object-fit:cover;
  border-radius:6px;
}

.director-portrait-card figcaption{
  margin-top:8px;
  color:#2b123d;
  font-weight:900;
  text-align:center;
  font-size:.86rem;
  line-height:1.15;
}

.director-praise-video{
  justify-self:end;
  width:min(82%, 430px);
  margin:0;
  padding:9px;
  border-radius:8px;
  transform:rotate(1.2deg);
}

.director-praise-video .praise-frame{
  border-radius:6px;
}

.director-praise-video iframe{
  left:0;
  width:100%;
}

@media (max-width: 1199.98px){
  .praise-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:760px;
    margin:0 auto;
  }
}

@media (max-width: 991.98px){
  .director-feature-grid{
    grid-template-columns:1fr;
    text-align:left;
  }

  .director-feature-media{
    min-height:0;
    grid-template-columns:.62fr 1fr;
    gap:14px;
    align-items:end;
  }

  .director-portrait-card{
    position:relative;
    width:100%;
    max-width:220px;
  }

  .director-praise-video{
    width:100%;
    justify-self:stretch;
  }
}

@media (max-width: 767.98px){
  .praise-grid{
    grid-template-columns:1fr;
    max-width:360px;
  }

  .director-feature-section{
    padding:64px 0;
  }

  .director-feature{
    padding:20px;
  }

  .director-feature-grid{
    gap:20px;
  }

  .director-feature-highlights{
    gap:8px;
  }

  .director-feature-highlights span{
    font-size:.78rem;
    min-height:32px;
  }

  .director-feature-media{
    grid-template-columns:1fr;
    gap:16px;
  }

  .director-portrait-card{
    max-width:210px;
    margin:0 auto;
    transform:none;
  }

  .director-praise-video{
    max-width:360px;
    margin:0 auto;
    transform:none;
  }
}

.hero-actions{
  margin-top:8px !important;
  gap:10px !important;
}


.hero-content{
  padding:0 0 42px !important;
}
.hero-actions{
  margin-top:8px !important;
  gap:10px !important;
}

/* High-impact 3D hero button */
.hero-actions .btn-outline{
  padding:14px 28px;
  background:linear-gradient(180deg, #fff98a 0%, #ffd83d 55%, #f5b800 100%) !important;
  border:2px solid #ffe96a !important;
  color:#32104b !important;
  font-weight:900;
  letter-spacing:.045em;
  text-transform:uppercase;
  text-shadow:0 1px 0 rgba(255,255,255,.55);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.72),
    inset 0 -2px 0 rgba(173,105,0,.28),
    0 7px 0 #a96800,
    0 13px 26px rgba(0,0,0,.38);
  transform:translateY(0);
  transition:transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

.hero-actions .btn-outline:hover,
.hero-actions .btn-outline:focus-visible{
  background:linear-gradient(180deg, #fffdb3 0%, #ffe04d 55%, #ffc400 100%) !important;
  border-color:#fff5a6 !important;
  color:#26053c !important;
  filter:saturate(1.08) brightness(1.04);
  transform:translateY(-3px);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.8),
    inset 0 -2px 0 rgba(173,105,0,.25),
    0 10px 0 #a96800,
    0 18px 34px rgba(0,0,0,.44);
}

.hero-actions .btn-outline:active{
  transform:translateY(5px);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.58),
    inset 0 -2px 0 rgba(173,105,0,.28),
    0 2px 0 #a96800,
    0 7px 15px rgba(0,0,0,.34);
}

@media (prefers-reduced-motion:reduce){
  .hero-actions .btn-outline{transition:none}
}

/* =========================================================
   CAST STARRING HERO BANNER
   ========================================================= */
.cast-section {
  padding: 0 0 72px;
}

.cast-hero-banner {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  margin-bottom: 56px;
  background: linear-gradient(135deg, rgba(45,0,85,.98), rgba(69,0,122,.95));
}

.cast-hero-image-area {
  position: absolute;
  inset: 0;
}

.cast-hero-image-area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.cast-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(45,0,85,.25) 0%,
    rgba(45,0,85,.60) 45%,
    rgba(45,0,85,.96) 100%
  );
}

.cast-hero-content {
  position: relative;
  z-index: 2;
  padding: 80px 0 56px;
  text-align: center;
  color: #fff;
  width: 100%;
}

.cast-eyebrow-hero {
  display: inline-block;
  font-weight: 800;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  font-size: .78rem;
  opacity: .75;
  padding: 6px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  margin-bottom: 16px;
}

.cast-hero-title {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 800;
  font-size: clamp(2.6rem, 6vw, 4.8rem);
  line-height: 1.05;
  margin: 0 0 14px;
  color: #fff;
  text-shadow: 0 4px 28px rgba(0,0,0,.35);
}

.cast-hero-title span {
  background: linear-gradient(135deg, var(--champagne), var(--orchid));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.cast-hero-sub {
  max-width: 820px;
  margin: 0 auto 30px;
  opacity: .88;
  font-size: 1.08rem;
  line-height: 1.55;
  color: rgba(255,255,255,.92);
}

/* Starring block */
.starring-block {
  margin: 0 auto 24px;
  text-align: center;
}

.starring-word {
  display: block;
  font-family: "Playfair Display", Georgia, serif;
  font-style: italic;
  font-weight: 600;
  font-size: clamp(1.1rem, 2.5vw, 1.5rem);
  color: var(--champagne);
  letter-spacing: .12em;
  margin-bottom: 10px;
  opacity: .90;
}

.starring-names {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 6px 18px;
}

.starring-name-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
}

.starring-name {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 800;
  font-size: clamp(1.15rem, 2.8vw, 1.85rem);
  color: #fff;
  letter-spacing: .02em;
  line-height: 1;
  text-shadow: 0 2px 14px rgba(0,0,0,.30);
}

.starring-credit {
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  opacity: .65;
  color: var(--champagne);
}

.starring-sep {
  font-size: 1.6rem;
  opacity: .35;
  align-self: center;
  margin-top: -8px;
}

.cast-hint-hero {
  margin: 0;
  opacity: .62;
  font-size: .9rem;
  font-weight: 700;
  color: #fff;
}

.cast-hint-hero .bi {
  margin-right: 5px;
  font-size: .95rem;
}

/* Starring badge on cast cards */
.cast-starring-badge {
  display: inline-block;
  font-size: .62rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .10em;
  background: linear-gradient(135deg, rgba(69,0,122,.88), rgba(202,97,195,.88));
  color: #fff;
  padding: 2px 8px;
  border-radius: 999px;
  margin-right: 6px;
  margin-bottom: 1px;
  vertical-align: middle;
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
}

/* Benefits section eyebrow */
.benefits-eyebrow {
  display: inline-block;
  font-weight: 800;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: 1.4px;
  color: var(--indigo);
  background: rgba(69,0,122,.08);
  border: 1px solid rgba(69,0,122,.14);
  padding: 6px 16px;
  border-radius: 999px;
  margin-bottom: 14px;
  opacity: .90;
}

/* Responsive cast hero */
@media (max-width: 767.98px) {
  .cast-hero-banner { min-height: 420px; }
  .cast-hero-content { padding: 60px 0 44px; }
  .starring-names { gap: 6px 10px; }
  .starring-sep { display: none; }
  .starring-name-item { 
    background: rgba(255,255,255,.07); 
    border-radius: 12px; 
    padding: 6px 14px; 
  }
}

@media (max-width: 480px) {
  .cast-hero-banner { min-height: 360px; }
  .cast-hero-title { font-size: 2.1rem; }
}

/* =================================================================
   PREMIERE SECTION — unified "Why Attend + Starring + Cast"
   One dark section, no cards, no bubbles, cinema-playbill grade.
   ================================================================= */

.premiere-section {
  background:
    linear-gradient(180deg, rgba(26,0,48,.96) 0%, rgba(45,0,80,.94) 42%, rgba(58,0,104,.96) 100%),
    var(--texture-purple) center top / cover fixed;
  color: #fff;
  padding: 0 0 80px;
}

/* ── TOP STATEMENT ── */
.premiere-top {
  padding: 90px 0 70px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

/* Soft radial glow behind the headline — editorial luxury touch */
.premiere-top::before {
  content: '';
  position: absolute;
  top: 10%; left: 50%;
  transform: translateX(-50%);
  width: 700px; height: 400px;
  border-radius: 50%;
  background: radial-gradient(ellipse at center,
    rgba(202,97,195,.18) 0%,
    rgba(69,0,122,.10) 50%,
    transparent 75%
  );
  pointer-events: none;
  z-index: 0;
}
.premiere-top .container { position: relative; z-index: 1; }

.premiere-presents {
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 3.5px;
  color: rgba(250,227,198,.65);
  margin: 0 0 20px;
}

.premiere-headline {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 800;
  font-size: clamp(2.4rem, 5.5vw, 4.2rem);
  line-height: 1.08;
  margin: 0 0 20px;
  color: #fff;
  letter-spacing: -.01em;
}

.premiere-tagline {
  font-size: clamp(1rem, 1.8vw, 1.15rem);
  opacity: .80;
  max-width: 700px;
  margin: 0 auto 52px;
  line-height: 1.6;
  color: rgba(250,227,198,.90);
}

/* Starring credits — one clean typographic line */
.premiere-credits {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}

.premiere-credits-label {
  font-family: "Playfair Display", Georgia, serif;
  font-style: italic;
  font-weight: 500;
  font-size: 1rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(250,227,198,.60);
}

.premiere-credits-rule {
  display: block;
  width: 60px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(250,227,198,.45), transparent);
}

.premiere-credits-names {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 700;
  font-size: clamp(1.2rem, 2.8vw, 2rem);
  letter-spacing: .01em;
  color: #fff;
  margin: 0;
  line-height: 1.3;
  text-align: center;
}

.pcr {          /* separator between names */
  color: rgba(250,227,198,.35);
  font-weight: 300;
  font-style: normal;
}

.premiere-name{
  display:inline;
}

/* ── THREE FEATURES — WHITE PANEL with purple headers ── */
.premiere-features {
  background:
    radial-gradient(circle at 12% 12%, rgba(202,97,195,.12), transparent 28%),
    linear-gradient(128deg, rgba(255,255,255,.78), rgba(250,227,198,.64) 48%, rgba(255,255,255,.74)),
    var(--texture-white) center / cover;
  border-top: none;
  border-bottom: none;
  padding: 80px 0;
  position: relative;
  /* Lift effect inside the dark section */
  box-shadow:
    0 -32px 60px rgba(0,0,0,.18),
     0 32px 60px rgba(0,0,0,.18);
  z-index: 2;
}

/* Gradient rule — top */
.premiere-features::before {
  content: '';
  position: absolute;
  top: 0; left: 8%; right: 8%;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, var(--indigo) 35%, var(--orchid) 65%, transparent);
}

/* Gradient rule — bottom */
.premiere-features::after {
  content: '';
  position: absolute;
  bottom: 0; left: 8%; right: 8%;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, var(--orchid) 35%, var(--indigo) 65%, transparent);
}

.premiere-feat-grid {
  display: grid;
  grid-template-columns: 1fr 1px 1fr 1px 1fr;
  gap: 0 44px;
  align-items: start;
}

.premiere-feat-rule {
  width: 1px;
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(69,0,122,.18) 20%,
    rgba(202,97,195,.18) 80%,
    transparent 100%
  );
  align-self: stretch;
  min-height: 140px;
}

.premiere-feat {
  position:relative;
  padding: 18px 16px;
  border-radius:18px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.50), rgba(250,227,198,.22)),
    var(--texture-paper) center / 520px auto repeat;
  border:1px solid rgba(69,0,122,.07);
}

.premiere-feat-num {
  display: block;
  font-family: "Playfair Display", Georgia, serif;
  font-style: italic;
  font-size: .9rem;
  /* Gradient numeral */
  background: linear-gradient(135deg, var(--indigo) 20%, var(--orchid));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  letter-spacing: .15em;
  margin-bottom: 14px;
}

.premiere-feat-title {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 700;
  font-size: 1.18rem;
  color: var(--indigo);
  margin: 0 0 12px;
  line-height: 1.25;
}

.premiere-feat-text {
  font-size: .97rem;
  color: #252525;
  line-height: 1.68;
  margin: 0;
  opacity: 1;
}

/* ── CAST SUBHEAD ── */
.premiere-cast-head {
  padding: 70px 0 32px;
  text-align: center;
  position: relative;
}
/* Subtle gradient shimmer strip below white panel */
.premiere-cast-head::before {
  content: '';
  position: absolute;
  top: 0; left: 15%; right: 15%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(202,97,195,.30), rgba(250,227,198,.22), transparent);
}

.premiere-cast-eyebrow {
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 3px;
  color: rgba(250,227,198,.55);
  margin: 0 0 12px;
}

.premiere-cast-title {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 800;
  font-size: clamp(2rem, 4.5vw, 3.2rem);
  color: #fff;
  margin: 0 0 14px;
  line-height: 1.1;
}

.premiere-cast-title span {
  background: linear-gradient(135deg, var(--champagne) 20%, var(--orchid));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.premiere-cast-hint {
  font-size: .85rem;
  color: rgba(250,227,198,.45);
  margin: 0;
  letter-spacing: .04em;
}

/* ── RESPONSIVE ── */
@media (max-width: 991.98px) {
  .premiere-top {
    padding: 72px 0 56px;
  }

  .premiere-tagline {
    max-width: 620px;
    margin-bottom: 38px;
  }

  .premiere-credits {
    gap: 12px;
  }

  .premiere-credits-names {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    max-width: 560px;
    margin: 0 auto;
    font-size: 1.24rem;
    line-height: 1.2;
  }

  .premiere-credits-names .pcr {
    display: none;
  }

  .premiere-name{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 14px;
    border-radius:999px;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(250,227,198,.16);
    color:#fff;
    white-space:nowrap;
  }

  .premiere-features {
    padding: 60px 0;
  }
  .premiere-feat-grid {
    grid-template-columns: 1fr;
    gap: 0;
    /* give grid a little horizontal breathing room on tablet */
    padding: 0 4px;
  }
  .premiere-feat-rule { display: none; }

  /* Premium stacked cards on mobile/tablet */
  .premiere-feat {
    position: relative;
    padding: 28px 22px 28px 30px;
    border-bottom: none;
    border-radius: 16px;
    background: rgba(69,0,122,.028);
    box-shadow:
      0 2px 0 rgba(69,0,122,.06),
      0 6px 24px rgba(69,0,122,.07);
    margin-bottom: 16px;
    overflow: visible;
  }
  .premiere-feat:last-child { margin-bottom: 0; }

  /* Gradient left accent bar */
  .premiere-feat::before {
    content: '';
    position: absolute;
    left: 0; top: 16px; bottom: 16px;
    width: 3px;
    border-radius: 999px;
    background: linear-gradient(180deg, var(--indigo), var(--orchid));
  }

  .footer .d-flex.flex-column.flex-md-row{
    flex-direction:column !important;
    align-items:center !important;
    text-align:center;
  }
}

@media (max-width: 767.98px) {
  .premiere-top { padding: 64px 0 50px; }
  .premiere-headline {
    font-size: clamp(2.15rem, 12vw, 3rem);
  }
  .premiere-tagline {
    max-width: 340px;
  }
  .premiere-credits-names {
    max-width: 330px;
    gap: 8px;
  }
  .premiere-name {
    width:100%;
    max-width:260px;
    padding:9px 14px;
  }
  .premiere-features {
    padding: 52px 0;
  }
  .premiere-feat {
    padding: 24px 18px 24px 26px;
    border-radius: 14px;
    margin-bottom: 12px;
  }
  .premiere-feat-title { font-size: 1.08rem; }

}

/* =========================================================
   STORY FEATURE BANNER
   ========================================================= */
.story-feature{
  position:relative;
  isolation:isolate;
  padding:4px 0;
}

.story-feature::before,
.story-feature::after{
  content:'';
  position:absolute;
  border-radius:999px;
  pointer-events:none;
  z-index:-1;
}

.story-feature::before{
  top:-34px;
  right:2%;
  width:260px;
  height:260px;
  background:radial-gradient(circle, rgba(202,97,195,.18), transparent 68%);
}

.story-feature::after{
  left:4%;
  bottom:-44px;
  width:340px;
  height:180px;
  background:radial-gradient(ellipse, rgba(254,95,85,.14), transparent 70%);
}

.story-hero{
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  min-height:300px;
  padding:42px;
  margin-bottom:22px;
  color:#fff;
  overflow:hidden;
  border-radius:24px;
  background:
    linear-gradient(135deg, rgba(26,0,48,.92), rgba(69,0,122,.78) 56%, rgba(202,97,195,.68)),
    linear-gradient(90deg, rgba(254,95,85,.18), transparent 55%),
    var(--texture-purple) center / cover;
  box-shadow:0 28px 80px rgba(69,0,122,.22);
}

.story-hero::before{
  content:'';
  position:absolute;
  inset:16px;
  border:1px solid rgba(250,227,198,.18);
  border-radius:18px;
  pointer-events:none;
}

.story-hero::after{
  content:'';
  position:absolute;
  top:-42%;
  right:-8%;
  width:380px;
  height:520px;
  transform:rotate(18deg);
  background:
    linear-gradient(90deg, transparent, rgba(250,227,198,.16), transparent),
    repeating-linear-gradient(90deg, rgba(255,255,255,.10) 0 1px, transparent 1px 26px);
  opacity:.75;
  pointer-events:none;
}

.story-eyebrow{
  display:inline-block;
  margin-bottom:14px;
  padding:7px 15px;
  border:1px solid rgba(250,227,198,.25);
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:rgba(250,227,198,.88);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:2.4px;
  text-transform:uppercase;
}

.story-hero h3{
  position:relative;
  max-width:820px;
  margin:0 0 14px;
  font-size:clamp(2.4rem, 6vw, 5rem);
  line-height:.98;
  font-weight:800;
  color:#fff;
  text-shadow:0 8px 30px rgba(0,0,0,.22);
  z-index:1;
}

.story-hero p{
  position:relative;
  margin:0;
  color:rgba(250,227,198,.92);
  font-size:1rem;
  line-height:1.62;
  z-index:1;
}

.story-synopsis-layout{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(240px, 360px) minmax(0, 1fr);
  gap:26px;
  align-items:stretch;
  max-width:1040px;
  margin-top:22px;
}

.story-photo-area{
  position:relative;
  min-height:100%;
  margin:0;
  overflow:hidden;
  border-radius:18px;
  background:#120020;
  box-shadow:0 20px 54px rgba(0,0,0,.28);
  border:0;
}

.story-photo-area > img{
  width:100%;
  height:100%;
  min-height:360px;
  object-fit:cover;
  transform:scale(1.01);
}

.story-cast-slider{
  min-height:440px;
}

.story-cast-slider .story-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-height:100%;
  object-fit:cover;
  object-position:center top;
  opacity:0;
  transform:scale(1.045);
  animation:storyCastFade 27s infinite;
}

.story-cast-slider .story-slide:nth-child(1){animation-delay:0s}
.story-cast-slider .story-slide:nth-child(2){animation-delay:3s}
.story-cast-slider .story-slide:nth-child(3){animation-delay:6s}
.story-cast-slider .story-slide:nth-child(4){animation-delay:9s}
.story-cast-slider .story-slide:nth-child(5){animation-delay:12s}
.story-cast-slider .story-slide:nth-child(6){animation-delay:15s}
.story-cast-slider .story-slide:nth-child(7){animation-delay:18s}
.story-cast-slider .story-slide:nth-child(8){animation-delay:21s}
.story-cast-slider .story-slide:nth-child(9){animation-delay:24s}

@keyframes storyCastFade{
  0%{opacity:0; transform:scale(1.045)}
  4%{opacity:1}
  10%{opacity:1; transform:scale(1)}
  14%{opacity:0; transform:scale(1)}
  100%{opacity:0; transform:scale(1.045)}
}

/* Overlap the frame edge and fully mask photo seams beneath the caption. */
.story-photo-area::after{
  content:'';
  position:absolute;
  left:-1px;
  right:-1px;
  bottom:-1px;
  height:76px;
  z-index:1;
  background:linear-gradient(to bottom, rgba(18,0,32,0), #120020 88%, #120020);
  pointer-events:none;
}

.story-photo-area figcaption{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2;
  margin:0;
  padding:30px 18px 16px;
  color:#fff;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:.78rem;
  text-shadow:0 2px 14px rgba(0,0,0,.45);
}

.story-synopsis{
  padding:28px;
  border-radius:18px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(250,227,198,.16);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

.story-synopsis span{
  display:block;
  margin-bottom:12px;
  color:var(--champagne);
  font-family:"Playfair Display", Georgia, serif;
  font-size:1.35rem;
  font-weight:800;
}

.story-synopsis p + p{
  margin-top:12px;
}

.story-hero .btn{
  position:relative;
  flex:0 0 auto;
  z-index:1;
  background:linear-gradient(135deg, var(--champagne), #fff) !important;
  color:var(--indigo) !important;
}

.story-radio-card{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(320px, 52%);
  gap:22px;
  align-items:center;
  width:100%;
  margin:0 0 24px;
  padding:20px 26px;
  overflow:hidden;
  border-radius:20px;
  color:#fff;
  background:
    linear-gradient(90deg, rgba(250,227,198,.22), transparent 34%, rgba(254,95,85,.20)),
    radial-gradient(circle at 88% 18%, rgba(254,95,85,.34), transparent 32%),
    linear-gradient(135deg, rgba(69,0,122,.98), rgba(202,97,195,.88) 58%, rgba(26,0,48,.96)),
    var(--texture-purple) center / cover;
  border:1px solid rgba(250,227,198,.32);
  box-shadow:0 24px 72px rgba(69,0,122,.30);
}

.story-radio-card::before{
  content:'';
  position:absolute;
  inset:10px;
  border:1px solid rgba(250,227,198,.20);
  border-radius:14px;
  pointer-events:none;
}

.story-radio-card::after{
  content:'';
  position:absolute;
  top:0;
  left:12%;
  right:12%;
  height:4px;
  border-radius:0 0 999px 999px;
  background:linear-gradient(90deg, transparent, var(--champagne), #fff, var(--champagne), transparent);
  pointer-events:none;
}

.story-radio-copy{
  position:relative;
  z-index:1;
  max-width:620px;
  text-align:left;
}

.story-radio-copy span{
  display:inline-block;
  margin-bottom:10px;
  padding:6px 16px;
  border-radius:999px;
  color:var(--indigo);
  background:linear-gradient(135deg, var(--champagne), #fff);
  box-shadow:0 10px 22px rgba(0,0,0,.18);
  font-size:.74rem;
  font-weight:800;
  letter-spacing:1.8px;
  text-transform:uppercase;
}

.story-radio-copy h4{
  margin:0 0 6px;
  color:#fff;
  font-size:clamp(1.35rem, 2.1vw, 1.85rem);
  font-weight:800;
  line-height:1.08;
  text-shadow:0 4px 22px rgba(0,0,0,.24);
}

.story-radio-copy p{
  max-width:620px;
  margin:0;
  color:rgba(255,255,255,.88);
  font-size:.98rem;
  line-height:1.42;
}

.story-audio-player{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:16px;
  width:100%;
  min-width:0;
  padding:14px 16px;
  border-radius:18px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(250,227,198,.94)),
    var(--texture-white) center / cover;
  border:1px solid rgba(255,255,255,.54);
  box-shadow:0 20px 46px rgba(0,0,0,.24);
}

.story-audio-player audio{
  display:none;
}

.story-audio-toggle{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border:0;
  border-radius:50%;
  background:linear-gradient(135deg, var(--coral), var(--orchid));
  color:#fff;
  box-shadow:0 12px 26px rgba(69,0,122,.30);
  transition:transform .18s ease, box-shadow .18s ease;
}

.story-audio-toggle:hover,
.story-audio-toggle:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 14px 28px rgba(0,0,0,.28);
}

.story-audio-toggle i{
  font-size:1.45rem;
  line-height:1;
}

.story-audio-meta{
  min-width:0;
  flex:1 1 auto;
}

.story-audio-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
  color:var(--indigo);
  font-size:.86rem;
  font-weight:800;
}

.story-audio-label{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.story-audio-time{
  color:var(--orchid);
  font-variant-numeric:tabular-nums;
}

.story-audio-range{
  -webkit-appearance:none;
  appearance:none;
  width:100%;
  height:6px;
  display:block;
  margin:0;
  accent-color:var(--orchid);
  cursor:pointer;
}

.story-audio-range::-webkit-slider-runnable-track{
  height:6px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--orchid) var(--audio-progress, 0%), rgba(69,0,122,.16) var(--audio-progress, 0%));
}

.story-audio-range::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:16px;
  height:16px;
  margin-top:-5px;
  border-radius:50%;
  background:#fff;
  border:3px solid var(--orchid);
  box-shadow:0 4px 12px rgba(0,0,0,.24);
}

.story-audio-range::-moz-range-track{
  height:6px;
  border-radius:999px;
  background:rgba(69,0,122,.16);
}

.story-audio-range::-moz-range-progress{
  height:6px;
  border-radius:999px;
  background:var(--orchid);
}

.story-audio-range::-moz-range-thumb{
  width:12px;
  height:12px;
  border-radius:50%;
  background:#fff;
  border:3px solid var(--orchid);
  box-shadow:0 4px 12px rgba(0,0,0,.24);
}

.story-feature-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:22px;
  align-items:stretch;
}

.story-mini,
.story-video-card{
  min-height:100%;
  border-radius:20px;
  background:
    radial-gradient(circle at 100% 0%, rgba(202,97,195,.10), transparent 34%),
    linear-gradient(155deg, rgba(255,255,255,.76), rgba(250,227,198,.52)),
    var(--texture-paper) center / 520px auto repeat;
  border:1px solid rgba(69,0,122,.12);
  box-shadow:0 16px 42px rgba(69,0,122,.10);
}

.story-mini{
  position:relative;
  padding:28px;
  overflow:hidden;
}

.story-mini::before{
  content:'';
  position:absolute;
  left:0;
  top:22px;
  bottom:22px;
  width:4px;
  border-radius:999px;
  background:linear-gradient(180deg, var(--indigo), var(--orchid));
}

.story-mini-num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  margin-bottom:18px;
  border-radius:50%;
  background:rgba(69,0,122,.09);
  color:var(--indigo);
  font-family:"Playfair Display", Georgia, serif;
  font-weight:800;
}

.story-mini h4{
  margin:0 0 12px;
  color:var(--indigo);
  font-size:1.26rem;
  font-weight:800;
  line-height:1.2;
}

.story-mini p{
  margin:0;
  color:#252525;
  font-size:.98rem;
  line-height:1.68;
}

.story-video-card{
  padding:10px;
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(135deg, var(--indigo), var(--orchid), var(--coral)) border-box;
  border:2px solid transparent;
}

.story-video-frame{
  position:relative;
  width:100%;
  height:100%;
  min-height:260px;
  overflow:hidden;
  border-radius:14px;
  background:#120020;
}

.story-video-frame iframe{
  position:absolute;
  top:50%;
  left:50%;
  width:calc(100% + 60px);
  height:calc(100% + 60px);
  transform:translate(-50%,-50%);
  border:0;
  display:block;
}

@media (max-width: 991.98px){
  .story-hero{
    align-items:flex-start;
    flex-direction:column;
    min-height:auto;
    padding:34px;
  }
  .story-synopsis-layout{
    grid-template-columns:1fr;
  }
  .story-photo-area > img{
    min-height:320px;
    aspect-ratio:16 / 10;
  }
  .story-cast-slider{
    min-height:380px;
  }
  .story-feature-grid{
    grid-template-columns:1fr;
  }
  .story-radio-card{
    width:100%;
    grid-template-columns:1fr;
    gap:18px;
    padding:24px;
  }
  .story-audio-player{
    width:100%;
  }
  .story-video-frame{
    aspect-ratio:16 / 9;
    min-height:auto;
  }
}

/* Keep tablet portraits fully visible without the slideshow zoom cropping them. */
@media (min-width: 768px) and (max-width: 1199.98px){
  .story-cast-slider{
    width:100%;
    max-width:360px;
    min-height:0;
    aspect-ratio:4 / 5;
    align-self:start;
    justify-self:center;
  }
  .story-cast-slider .story-slide{
    object-fit:contain;
    object-position:center;
    transform:none;
    animation-name:storyCastTabletFade;
  }
}

@keyframes storyCastTabletFade{
  0%{opacity:0}
  4%, 10%{opacity:1}
  14%, 100%{opacity:0}
}

@media (max-width: 767.98px){
  .story-hero{
    padding:28px 22px;
    border-radius:18px;
  }
  .story-hero::before{
    inset:10px;
    border-radius:14px;
  }
  .story-mini{
    padding:24px 22px;
  }
  .story-radio-card{
    padding:22px;
    border-radius:18px;
  }
  .story-audio-player{
    align-items:stretch;
    flex-direction:column;
    border-radius:16px;
  }
  .story-audio-toggle{
    width:44px;
    height:44px;
  }
  .story-synopsis{
    padding:22px;
  }
  .story-photo-area > img{
    min-height:260px;
  }
  .story-cast-slider{
    min-height:320px;
  }
}

/* Cast card name + recognizable credits */
.cast-card figcaption{
  display:flex;
  flex-direction:column;
  gap:3px;
  line-height:1.15;
}

.cast-name{
  display:block;
}

.cast-credit{
  display:block;
  max-width:100%;
  color:var(--champagne);
  font-family:"PT Sans", Arial, sans-serif;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.06em;
  line-height:1.25;
  text-transform:uppercase;
  text-shadow:0 2px 10px rgba(0,0,0,.55);
  opacity:.96;
}

@media (max-width: 767.98px){
  .cast-credit{
    font-size:.68rem;
  }
}

/* Ramonski Luv testimonial banner */
.ramonski-banner{
  --ramonski-purple:#c545ff;
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:minmax(300px,.85fr) minmax(430px,1.15fr);
  align-items:center;
  min-height:460px;
  margin:58px 0 8px;
  overflow:hidden;
  border:1px solid rgba(184,82,255,.48);
  border-radius:28px;
  background:
    radial-gradient(circle at 17% 12%, rgba(255,123,220,.68), transparent 34%),
    radial-gradient(circle at 83% 78%, rgba(122,70,255,.5), transparent 40%),
    linear-gradient(112deg, #8d1bb3 0%, #471080 44%, #1d0b50 100%);
  box-shadow:0 30px 80px rgba(74,9,104,.42), inset 0 0 90px rgba(255,160,231,.16);
}

.ramonski-banner::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:12px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:20px;
  pointer-events:none;
}

.ramonski-banner::after{
  content:"TESTIMONIAL";
  position:absolute;
  z-index:-1;
  right:-18px;
  top:14px;
  color:rgba(255,255,255,.025);
  font-size:clamp(4rem,9vw,8.5rem);
  font-weight:900;
  letter-spacing:-.05em;
  line-height:1;
  pointer-events:none;
}

.ramonski-art{align-self:stretch;min-height:460px;overflow:hidden}
.ramonski-art img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(1.12) contrast(1.03) brightness(1.08)}
.ramonski-art::after{content:"";position:absolute;inset:0 auto 0 0;width:38%;background:linear-gradient(90deg,transparent 42%,rgba(91,20,135,.9) 100%);pointer-events:none}

.ramonski-content{position:relative;z-index:1;padding:46px 28px 42px 16px}
.ramonski-kicker{display:inline-flex;align-items:center;gap:8px;margin-bottom:25px;padding:8px 13px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font-size:.71rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;box-shadow:0 8px 22px rgba(51,0,89,.2)}
.ramonski-kicker i{color:#ffd6f5}
.ramonski-label{margin:0 0 7px;color:#ffd0f4;font-size:.78rem;font-weight:900;letter-spacing:.24em;text-transform:uppercase}
.ramonski-content h3{margin:0;color:#fff;font-size:clamp(2.2rem,4vw,4rem);font-weight:900;letter-spacing:-.045em;line-height:.92;text-transform:uppercase}
.ramonski-content h3 span{display:block;margin-top:6px;color:transparent;background:linear-gradient(120deg,#fff 5%,#ffd3f4 42%,#ff94dc 92%);-webkit-background-clip:text;background-clip:text}
.ramonski-role{margin:13px 0 17px;color:#f2d7ff;font-size:.78rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase}
.ramonski-copy{max-width:540px;margin:0;color:rgba(255,255,255,.9);font-size:.98rem;line-height:1.55}
.ramonski-actions{display:flex;align-items:center;gap:15px;margin-top:24px;flex-wrap:wrap}
.ramonski-video-section{padding:42px 0 64px;background:linear-gradient(180deg,rgba(64,10,91,.06),rgba(91,21,134,.14))}
.ramonski-video-banner{position:relative;isolation:isolate;width:min(900px,100%);margin:0 auto;padding:30px;overflow:hidden;border:1px solid rgba(255,188,239,.52);border-radius:26px;background:radial-gradient(circle at 85% 10%,rgba(255,169,227,.42),transparent 36%),linear-gradient(135deg,#8f24b8 0%,#54209a 48%,#281064 100%);box-shadow:0 26px 65px rgba(61,10,98,.38)}
.ramonski-video-banner::before{content:"";position:absolute;z-index:-1;inset:9px;border:1px solid rgba(255,255,255,.13);border-radius:19px;pointer-events:none}
.ramonski-video-wrap{position:relative;z-index:2;width:100%;margin:0}
.ramonski-video-badge{display:flex;align-items:center;gap:8px;margin:0 0 10px 4px;color:#f1dfff;font-size:.69rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.ramonski-video-badge span{width:7px;height:7px;border-radius:50%;background:#d071ff;box-shadow:0 0 13px #c357ff}
.ramonski-video{position:relative;overflow:hidden;aspect-ratio:16/9;border:1px solid rgba(215,151,255,.55);border-radius:18px;background:#000;box-shadow:0 22px 48px rgba(0,0,0,.55),0 0 35px rgba(158,45,226,.16)}
.ramonski-video iframe{position:absolute;inset:0;width:100%;height:100%}

@media (max-width:1199.98px){
  .ramonski-banner{grid-template-columns:300px 1fr}
  .ramonski-content{padding-left:4px;padding-right:20px}
}

@media (max-width:991.98px){
  .ramonski-banner{grid-template-columns:230px 1fr;align-items:stretch}
  .ramonski-content{padding:38px 28px 28px 0}
  .ramonski-art::after{width:42%}
}

@media (max-width:767.98px){
  .ramonski-banner{display:block;margin-top:38px;border-radius:20px}
  .ramonski-banner::before{inset:8px;border-radius:15px}
  .ramonski-art{height:285px;min-height:0}
  .ramonski-art img{object-position:center 32%}
  .ramonski-art::after{inset:0 0 auto;width:100%;height:285px;background:linear-gradient(180deg,transparent 42%,#711b9b 100%)}
  .ramonski-content{padding:4px 22px 28px;text-align:center}
  .ramonski-kicker{margin-bottom:20px}
  .ramonski-copy{font-size:.94rem}
  .ramonski-actions{justify-content:center}
  .ramonski-video-section{padding:28px 0 46px}
  .ramonski-video-banner{padding:16px;border-radius:20px}
  .ramonski-video-banner::before{inset:6px;border-radius:15px}
  .ramonski-video-badge{justify-content:center}
}

/* Ramonski standalone feature — bright editorial banner */
.ramonski-feature{
  position:relative;
  overflow:hidden;
  padding:82px 0 88px;
  color:#fff;
  background:
    radial-gradient(circle at 8% 12%,rgba(255,220,93,.62),transparent 27%),
    radial-gradient(circle at 92% 18%,rgba(255,113,218,.76),transparent 30%),
    linear-gradient(135deg,#c82ddb 0%,#8a36e8 48%,#4b28c7 100%);
}
.ramonski-feature::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.12),transparent 35%);pointer-events:none}
.ramonski-feature .container{position:relative;z-index:1}
.ramonski-feature-head{display:flex;align-items:center;justify-content:space-between;gap:64px;max-width:1120px;margin:0 auto 48px}
.ramonski-feature-copy{flex:1 1 560px}
.ramonski-feature-copy .ramonski-kicker{margin-bottom:18px;background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.42)}
.ramonski-feature-copy h2{max-width:700px;margin:0 0 20px;color:#fff;font-size:clamp(2.7rem,5vw,5rem);font-weight:900;letter-spacing:-.055em;line-height:.9;text-transform:uppercase}
.ramonski-feature-copy h2 span{display:block;margin-top:9px;color:#fff3a8;font-size:.54em;letter-spacing:-.025em;line-height:1.05}
.ramonski-feature-copy p{max-width:650px;margin:0 0 27px;color:rgba(255,255,255,.94);font-size:1.12rem;line-height:1.6}
.ramonski-feature-photo{position:relative;flex:0 1 390px;overflow:hidden;border:8px solid rgba(255,255,255,.92);border-radius:28px;background:#fff;box-shadow:0 28px 60px rgba(47,5,84,.32);transform:rotate(2deg)}
.ramonski-feature-photo img{display:block;width:100%;aspect-ratio:1.28/1;object-fit:cover}
.ramonski-feature-photo div{display:flex;flex-direction:column;padding:15px 18px;background:#fff;color:#4d176c}
.ramonski-feature-photo strong{font-size:1.3rem;font-weight:900;text-transform:uppercase}
.ramonski-feature-photo span{color:#9b3bbb;font-size:.73rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.ramonski-video-shell{width:min(900px,100%);margin:0 auto;padding:18px;border:1px solid rgba(255,255,255,.42);border-radius:27px;background:rgba(38,9,83,.34);box-shadow:0 30px 70px rgba(42,5,80,.35);backdrop-filter:blur(10px)}
.ramonski-video-shell .ramonski-video-badge{margin:1px 0 13px 5px;color:#fff}
.ramonski-video-shell .ramonski-video{border:5px solid #fff;border-radius:18px;box-shadow:0 20px 48px rgba(33,4,62,.38)}
.ramonski-video-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 7px 2px;color:rgba(255,255,255,.86);font-size:.82rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.ramonski-video-footer a{color:#fff3a8;font-weight:900;text-decoration:none}
.ramonski-video-footer a:hover{color:#fff}
@media(max-width:767.98px){
  .ramonski-feature{padding:58px 0 60px}
  .ramonski-feature-head{flex-direction:column;gap:34px;margin-bottom:36px;text-align:center}
  .ramonski-feature-copy{flex-basis:auto}
  .ramonski-feature-copy p{font-size:1rem}
  .ramonski-feature-photo{width:min(390px,92%);flex-basis:auto;transform:none}
  .ramonski-video-shell{padding:10px;border-radius:20px}
  .ramonski-video-footer{align-items:flex-start;flex-direction:column;padding:14px 5px 3px}
}

/* Final compact Ramonski quarter-banner layout */
.ramonski-feature{
  padding:54px 0;
  background:
    radial-gradient(circle at 4% 15%,rgba(255,225,105,.5),transparent 25%),
    radial-gradient(circle at 96% 20%,rgba(255,136,220,.55),transparent 29%),
    linear-gradient(125deg,#b92cce 0%,#7833d6 52%,#4724a9 100%);
}
.ramonski-feature-inner{
  display:grid;
  grid-template-columns:minmax(300px,.78fr) minmax(480px,1.22fr);
  align-items:center;
  gap:54px;
  max-width:1120px;
  margin:0 auto;
}
.ramonski-feature-copy{min-width:0}
.ramonski-feature-copy .ramonski-kicker{margin:0 0 15px;padding:6px 12px;font-size:.68rem}
.ramonski-feature-copy h2{margin:0 0 15px;font-size:clamp(2.15rem,3.8vw,3.65rem);line-height:.92}
.ramonski-feature-copy h2 span{margin-top:8px;font-size:.43em;line-height:1.08;letter-spacing:.01em}
.ramonski-feature-copy p{margin:0 0 21px;font-size:1rem;line-height:1.45}
.ramonski-feature .ramonski-video-shell{width:100%;margin:0;padding:9px;border:1px solid rgba(255,255,255,.48);border-radius:18px;background:rgba(30,8,70,.3);box-shadow:0 20px 46px rgba(37,3,72,.3)}
.ramonski-feature .ramonski-video{border:3px solid rgba(255,255,255,.96);border-radius:12px;box-shadow:0 14px 34px rgba(27,2,53,.3)}
@media(max-width:991.98px){
  .ramonski-feature-inner{grid-template-columns:minmax(250px,.72fr) minmax(400px,1.28fr);gap:30px}
}
@media(max-width:767.98px){
  .ramonski-feature{padding:42px 0}
  .ramonski-feature-inner{grid-template-columns:1fr;gap:28px;text-align:center}
  .ramonski-feature-copy .ramonski-kicker{margin-bottom:14px}
  .ramonski-feature-copy h2{font-size:2.5rem}
}

/* Visionaries: preserve the writer and director portraits without circular cropping. */
.visionaries-section{
  isolation:isolate;
}

.visionaries-section::before{
  content:none;
}

.visionaries-section .container{
  z-index:1;
}

.section-dark .team-clean{
  gap:22px;
}

.team-photo-wrap{
  width:min(100%, 470px);
  overflow:hidden;
  border:3px solid #d9ae43;
  border-radius:18px;
  background:transparent;
  box-shadow:none;
  line-height:0;
}

.team-avatar-big{
  width:100%;
  height:auto;
  aspect-ratio:4 / 5;
  border:0;
  border-radius:0;
  object-fit:cover;
  transition:transform .28s ease, filter .28s ease;
}

.team-photo-wrap--writer .team-avatar-big{
  object-fit:contain;
  object-position:center top;
  background:#fff;
}
.team-photo-wrap--director .team-avatar-big{object-position:center 24%}

.team-clean:hover .team-avatar-big,
.team-clean:focus-visible .team-avatar-big{
  transform:scale(1.018);
  filter:saturate(1.04);
}

.team-name-big{font-size:clamp(1.55rem, 3vw, 2.3rem)}

/* Flyers: restore the production palette and premium poster treatment. */
.flyer-section{
  isolation:isolate;
  overflow:hidden;
  color:#fff;
  background:
    radial-gradient(circle at 12% 12%, rgba(250,227,198,.18), transparent 28%),
    radial-gradient(circle at 88% 78%, rgba(254,95,85,.18), transparent 30%),
    linear-gradient(135deg, rgba(31,0,55,.97), rgba(69,0,122,.94) 48%, rgba(151,45,143,.90)),
    var(--texture-purple) center / cover;
}

.flyer-section::before{
  content:"";
  position:absolute;
  inset:18px;
  z-index:-1;
  border:1px solid rgba(250,227,198,.18);
  border-radius:8px;
  pointer-events:none;
}

.flyer-section .section-head h2{
  color:#fff;
  font-size:clamp(2.2rem, 5vw, 4.2rem);
}

.flyer-section .section-head p:not(.flyer-eyebrow){color:rgba(255,255,255,.86)}

.flyer-eyebrow{
  margin-bottom:8px !important;
  color:var(--champagne);
  font-size:.75rem !important;
  font-weight:900;
  letter-spacing:0;
  text-transform:uppercase;
}

.flyer-grid{
  gap:clamp(22px, 4vw, 42px);
  max-width:1080px;
}

.flyer-link{
  position:relative;
  padding:10px;
  border:1px solid rgba(250,227,198,.45);
  border-radius:8px;
  background:linear-gradient(145deg, rgba(255,255,255,.18), rgba(255,255,255,.06));
  box-shadow:0 28px 70px rgba(14,0,26,.42);
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.flyer-link img{border-radius:4px;box-shadow:none}

.flyer-link:hover img,
.flyer-link:focus-visible img{
  transform:none;
  box-shadow:none;
  filter:saturate(1.05);
}

.flyer-link:hover,
.flyer-link:focus-visible{
  transform:translateY(-6px);
  border-color:rgba(250,227,198,.88);
  box-shadow:0 36px 88px rgba(14,0,26,.52);
}

@media (max-width:767.98px){
  .team-photo-wrap{width:min(100%, 390px)}
  .flyer-section{padding:64px 0}
  .flyer-section::before{inset:10px}
}
