.film-detail { background: #06101c; }

.film-hero {
  position: relative;
  min-height: 88svh;
  display: grid;
  align-items: end;
  overflow: hidden;
  padding: 130px 7vw 7vw;
}

.film-hero-image,
.film-hero-shade {
  position: absolute;
  inset: 0;
  height: 100%;
}

.film-hero-image {
  object-fit: cover;
  object-position: center 42%;
  filter: saturate(.8) contrast(1.05);
}

.film-hero-shade {
  background:
    linear-gradient(90deg, rgba(3,9,17,.9) 0%, rgba(3,9,17,.58) 44%, rgba(3,9,17,.12) 78%),
    linear-gradient(0deg, rgba(3,9,17,.86) 0%, transparent 55%);
}

.film-hero-content {
  position: relative;
  z-index: 2;
  width: min(960px, 78vw);
}

.film-back {
  display: inline-block;
  margin-bottom: clamp(3rem, 8vh, 6rem);
  padding-bottom: .35rem;
  border-bottom: 1px solid rgba(255,255,255,.42);
  color: #d6dbe0;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.film-hero h1 {
  max-width: 980px;
  font-size: clamp(4.2rem, 9.2vw, 9.5rem);
  line-height: .85;
  text-transform: none;
  text-wrap: balance;
}

.film-hero-role {
  margin: 2.2rem 0 0;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.15rem, 2vw, 1.75rem);
  color: rgba(255,255,255,.84);
}

.film-overview { position: relative; z-index: 12; background: #0a1626; }
.film-anchor-nav { position: sticky; top: 78px; z-index: 12; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.13); border-bottom: 1px solid rgba(255,255,255,.13); background: rgba(7,17,31,.96); backdrop-filter: blur(10px); }
.film-anchor-nav a { padding: 1rem; border-right: 1px solid rgba(255,255,255,.1); color: #c7cdd3; text-align: center; font-size: .66rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.film-anchor-nav a:last-child { border-right: 0; }
.film-anchor-nav a:hover, .film-anchor-nav a:focus-visible { color: #fff; background: rgba(238,119,34,.16); }
.film-facts { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 1320px; margin: 0 auto; padding: 2.2rem 6vw; }
.film-facts div { min-width: 0; padding: .35rem 2rem; border-right: 1px solid rgba(255,255,255,.13); }
.film-facts div:first-child { padding-left: 0; }
.film-facts div:last-child { border-right: 0; }
.film-facts small { display: block; margin-bottom: .55rem; color: var(--saffron); font-size: .58rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.film-facts strong { display: block; font-family: Georgia, serif; font-size: clamp(1rem, 1.5vw, 1.28rem); font-weight: 400; }
.next-production { display: grid; grid-template-columns: .7fr 2fr; gap: 2rem; align-items: center; max-width: 1320px; margin: 0 auto; padding: 2.2rem 6vw; border-top: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); background: #0a1626; }
.next-production small { color: var(--saffron); font-size: .62rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.next-production strong { display: flex; justify-content: space-between; gap: 1rem; font-family: Georgia, serif; font-size: clamp(1.5rem, 3vw, 2.8rem); font-weight: 400; }
.next-production:hover strong, .next-production:focus-visible strong { color: var(--saffron); }
.film-contact-copy .copy-email, .films-contact .copy-email { margin-top: .8rem; }

.film-section { max-width: 1440px; }

.film-intro {
  display: grid;
  grid-template-columns: minmax(240px, 340px) minmax(0, 1fr);
  gap: clamp(3rem, 8vw, 8rem);
  align-items: start;
  justify-content: center;
}

.film-poster {
  width: 100%;
  max-width: 340px;
  margin: 0;
  padding: .75rem;
  border: 1px solid rgba(255,255,255,.15);
  background: #0a192a;
}

.film-poster img {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}

.film-poster figcaption {
  padding: 1rem .4rem .35rem;
  color: #9fa9b4;
  font-size: .78rem;
}

.film-poster > a {
  display: inline-block;
  margin: .35rem .4rem .3rem;
  padding-bottom: .3rem;
  border-bottom: 1px solid var(--saffron);
  color: #e8e7e2;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.film-intro-copy h2,
.story-heading h2,
.arc-layout h2,
.gallery-heading h2,
.film-contact h2 {
  font-size: clamp(3rem, 6vw, 6.2rem);
}

.film-intro-copy .lead {
  max-width: 820px;
  margin: 2.4rem 0 0;
  color: #d4d8dc;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.3rem, 2.1vw, 1.8rem);
  line-height: 1.45;
}

.film-role {
  max-width: 720px;
  margin-top: 3rem;
  padding: 2rem;
  border-left: 2px solid var(--saffron);
  background: rgba(255,255,255,.035);
}

.film-role > p:last-child {
  margin: 0;
  color: #b9c0c7;
  font-size: 1.05rem;
}

.film-story { border-top: 1px solid rgba(255,255,255,.12); }

.story-layout,
.arc-layout {
  display: grid;
  grid-template-columns: minmax(290px, .9fr) minmax(0, 1.15fr);
  gap: clamp(3rem, 9vw, 9rem);
  align-items: start;
}

.story-copy {
  max-width: 760px;
  color: #bec5cc;
  font-size: clamp(1.02rem, 1.45vw, 1.2rem);
}

.story-copy p { margin: 0 0 1.45rem; }
.story-copy p:first-child { color: #f3f0e8; }

.film-arc {
  max-width: none;
  padding-left: max(6vw, calc((100vw - 1320px) / 2));
  padding-right: max(6vw, calc((100vw - 1320px) / 2));
  background:
    linear-gradient(120deg, rgba(238,119,34,.1), transparent 40%),
    #0a1626;
}

.film-gallery { max-width: 1500px; }

.gallery-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 3rem;
  margin-bottom: 3.5rem;
}

.gallery-heading .micro { margin-bottom: .6rem; }

.film-gallery-grid {
  display: grid;
  grid-template-columns: minmax(0, .99fr) minmax(0, 1.33fr);
  gap: 1rem;
  align-items: start;
}

.film-gallery-grid figure {
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.14);
  background: #0b192a;
}

.film-gallery-grid img {
  width: 100%;
  height: auto;
  min-height: 0;
  object-fit: contain;
  filter: saturate(.86) contrast(1.03);
}

.film-gallery-grid figure:first-child img { object-position: center top; }

.film-gallery-grid figcaption {
  min-height: 94px;
  padding: 1.15rem 1.25rem;
  color: #aeb7c1;
  font-size: .86rem;
}

.film-gallery-grid figcaption strong {
  color: var(--saffron);
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.film-contact {
  max-width: none;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3rem;
  align-items: end;
  min-height: 560px;
  padding-left: max(7vw, calc((100vw - 1320px) / 2));
  padding-right: max(7vw, calc((100vw - 1320px) / 2));
  background:
    linear-gradient(115deg, rgba(238,119,34,.16), transparent 31%),
    linear-gradient(245deg, rgba(11,123,82,.15), transparent 33%),
    #0d1d31;
}

.film-contact-copy > a {
  display: inline-flex;
  gap: 1rem;
  align-items: center;
  margin-top: 2.6rem;
  padding: .9rem 0;
  border-bottom: 1px solid var(--saffron);
  font-size: clamp(1rem, 2vw, 1.35rem);
}

.film-contact-copy > a span { color: var(--saffron); }

.film-page-links {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .8rem;
}

.film-page-links a {
  padding-bottom: .35rem;
  border-bottom: 1px solid rgba(255,255,255,.32);
  color: #c4cbd2;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.film-back:hover,
.film-poster > a:hover,
.film-page-links a:hover,
.film-contact-copy > a:hover,
.film-back:focus-visible,
.film-poster > a:focus-visible,
.film-page-links a:focus-visible,
.film-contact-copy > a:focus-visible {
  color: var(--saffron);
}

.waking-hero .film-hero-image { object-position: center 34%; }

.waking-page .film-intro {
  grid-template-columns: minmax(320px, 460px) minmax(0, 1fr);
  gap: clamp(3rem, 6vw, 6rem);
}

.film-poster-wide { max-width: 440px; }

.film-poster-wide img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.waking-dark-section {
  background:
    linear-gradient(110deg, rgba(238,119,34,.08), transparent 38%),
    #081321;
}

.waking-gallery {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.35fr);
}

.waking-gallery-secondary {
  grid-template-columns: minmax(0, .75fr) minmax(0, 1.49fr);
  margin-top: 1rem;
}

.united-hero .film-hero-image {
  object-position: center 36%;
  filter: saturate(.78) contrast(1.08);
}

.united-page .film-intro {
  grid-template-columns: minmax(320px, 460px) minmax(0, 1fr);
  gap: clamp(3rem, 6vw, 6rem);
}

.united-dark-section {
  background:
    linear-gradient(110deg, rgba(238,119,34,.08), transparent 38%),
    linear-gradient(245deg, rgba(11,123,82,.06), transparent 42%),
    #081321;
}

.mantra {
  margin: 2rem 0;
  padding: 1.4rem 1.6rem;
  border-left: 2px solid var(--saffron);
  background: rgba(255,255,255,.035);
  color: #f3f0e8;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  font-style: italic;
  line-height: 1.55;
}

.united-gallery {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.united-gallery img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.united-bts-heading {
  margin: clamp(4rem, 7vw, 7rem) 0 2rem;
}

.united-bts-heading h3 {
  margin: 0;
  color: #f3f0e8;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(2.1rem, 5vw, 4.8rem);
  font-weight: 400;
  line-height: .98;
}

.united-bts-heading h3 em {
  color: var(--saffron);
  font-weight: 400;
}

.united-bts-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.united-bts-gallery figure {
  margin: 0;
  border: 1px solid rgba(255,255,255,.12);
  background: #0a1726;
}

.united-bts-gallery img {
  display: block;
  width: 100%;
  height: auto;
}

.united-bts-gallery figcaption {
  padding: 1rem 1.1rem 1.2rem;
  color: #aeb7c0;
  font-size: .82rem;
  line-height: 1.55;
}

.united-bts-gallery figcaption strong {
  color: var(--saffron);
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.gallery-source {
  margin: 1rem 0 0;
  color: #7f8a95;
  font-size: .72rem;
}

.sarabha-hero .film-hero-image {
  object-position: center top;
  filter: saturate(.8) contrast(1.06);
}

.sarabha-hero h1 { font-size: clamp(4rem, 8vw, 8.4rem); }

.sarabha-page .film-intro {
  grid-template-columns: minmax(300px, 420px) minmax(0, 1fr);
  gap: clamp(3rem, 6vw, 6rem);
}

.sarabha-poster { max-width: 420px; }

.sarabha-poster img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.sarabha-dark-section {
  background:
    linear-gradient(110deg, rgba(238,119,34,.08), transparent 38%),
    linear-gradient(245deg, rgba(11,123,82,.06), transparent 42%),
    #081321;
}

.sarabha-gallery-lead,
.sarabha-gallery-wide {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
}

.sarabha-gallery-wide { margin-top: 1rem; }

.sarabha-gallery-poster {
  width: min(100%, 620px);
  margin: 1rem auto 0;
}

.sarabha-gallery-lead figure,
.sarabha-gallery-wide figure,
.sarabha-gallery-poster figure {
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.14);
  background: #0b192a;
}

.sarabha-gallery-lead img,
.sarabha-gallery-wide img,
.sarabha-gallery-poster img {
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: saturate(.9) contrast(1.02);
}

.sarabha-gallery-lead figcaption,
.sarabha-gallery-wide figcaption,
.sarabha-gallery-poster figcaption {
  min-height: 94px;
  padding: 1.15rem 1.25rem;
  color: #aeb7c1;
  font-size: .86rem;
}

.sarabha-gallery-lead figcaption strong,
.sarabha-gallery-wide figcaption strong,
.sarabha-gallery-poster figcaption strong {
  color: var(--saffron);
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.monte-hero .film-hero-image {
  object-position: center 44%;
  filter: saturate(.72) contrast(1.08);
}

.monte-hero h1 { font-size: clamp(3.8rem, 7.5vw, 8rem); }

.monte-page .film-intro {
  grid-template-columns: minmax(300px, 420px) minmax(0, 1fr);
  gap: clamp(3rem, 6vw, 6rem);
}

.monte-dark-section {
  background:
    linear-gradient(110deg, rgba(180,132,72,.1), transparent 38%),
    linear-gradient(245deg, rgba(92,44,37,.1), transparent 42%),
    #081321;
}

.monte-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
}

.monte-gallery-grid figure {
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.14);
  background: #0b192a;
}

.monte-gallery-grid img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: saturate(.88) contrast(1.03);
}

.monte-gallery-grid figcaption {
  min-height: 94px;
  padding: 1.15rem 1.25rem;
  color: #aeb7c1;
  font-size: .86rem;
}

.monte-gallery-grid figcaption strong {
  color: var(--saffron);
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.aryan-hero .film-hero-image {
  object-position: center 34%;
  filter: saturate(.62) contrast(1.08);
}

.aryan-hero .film-hero-shade {
  background: linear-gradient(90deg, rgba(3,8,14,.94) 0%, rgba(3,8,14,.62) 47%, rgba(3,8,14,.16) 100%), linear-gradient(0deg, rgba(3,8,14,.6), transparent 55%);
}

.aryan-page .film-intro { align-items: center; }
.aryan-dark-section { background: #081321; }

.aryan-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.aryan-gallery-grid figure {
  margin: 0;
  border: 1px solid rgba(255,255,255,.12);
  background: #0a1726;
}

.aryan-gallery-grid img {
  display: block;
  width: 100%;
  height: auto;
}

.aryan-gallery-grid figcaption {
  padding: 1rem 1.1rem 1.2rem;
  color: #aeb7c0;
  font-size: .82rem;
  line-height: 1.55;
}

.aryan-gallery-grid figcaption strong {
  color: var(--saffron);
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.aryan-gallery-grid .aryan-wide { grid-column: span 2; }

.mission-hero .film-hero-image {
  object-position: center 56%;
  filter: saturate(.72) contrast(1.08);
}

.mission-hero .film-hero-shade {
  background: linear-gradient(90deg, rgba(3,8,14,.94) 0%, rgba(3,8,14,.63) 49%, rgba(3,8,14,.12) 100%), linear-gradient(0deg, rgba(3,8,14,.68), transparent 58%);
}

.mission-page .film-intro { align-items: center; }
.mission-dark-section { background: #081321; }

.mission-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.mission-gallery-grid figure {
  margin: 0;
  border: 1px solid rgba(255,255,255,.12);
  background: #0a1726;
}

.mission-gallery-grid img {
  display: block;
  width: 100%;
  height: auto;
}

.mission-gallery-grid figcaption {
  padding: 1rem 1.1rem 1.2rem;
  color: #aeb7c0;
  font-size: .82rem;
  line-height: 1.55;
}

.mission-gallery-grid figcaption strong {
  color: var(--saffron);
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.mission-gallery-grid .mission-wide { grid-column: span 2; }

@media (max-width: 960px) {
  .film-hero { min-height: 780px; }
  .film-hero-content { width: 90%; }
  .film-intro { grid-template-columns: minmax(210px, 280px) minmax(0, 1fr); gap: 3rem; }
  .waking-page .film-intro { grid-template-columns: minmax(220px, 320px) minmax(0, 1fr); }
  .united-page .film-intro { grid-template-columns: minmax(220px, 320px) minmax(0, 1fr); }
  .sarabha-page .film-intro { grid-template-columns: minmax(220px, 320px) minmax(0, 1fr); }
  .monte-page .film-intro { grid-template-columns: minmax(220px, 320px) minmax(0, 1fr); }
  .story-layout, .arc-layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .film-gallery-grid { grid-template-columns: 1fr 1fr; }
  .waking-gallery { grid-template-columns: minmax(0, .9fr) minmax(0, 1.35fr); }
  .waking-gallery-secondary { grid-template-columns: minmax(0, .75fr) minmax(0, 1.49fr); }
}

@media (max-width: 680px) {
  .film-anchor-nav { top: 66px; display: flex; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
  .film-anchor-nav a { flex: 0 0 auto; min-width: max-content; padding: .9rem 1rem; font-size: .6rem; letter-spacing: .1em; }
  .film-facts { grid-template-columns: 1fr; padding: 1.2rem 1.3rem; }
  .film-facts div, .film-facts div:first-child { padding: .9rem 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .film-facts div:last-child { border-bottom: 0; }
  .next-production { grid-template-columns: 1fr; gap: .65rem; padding: 1.7rem 1.3rem; }
  .film-hero { display: block; min-height: 0; padding: 66px 0 0; overflow: hidden; background: #06101c; }
  .film-hero-image { position: relative; inset: auto; width: 100%; height: auto; object-fit: contain; background: #02070d; }
  .film-hero-shade { display: none; }
  .film-hero-content { width: 100%; padding: 2rem 1.3rem 2.8rem; border-top: 1px solid rgba(238,119,34,.42); background: #06101c; }
  .film-back { margin-bottom: 2rem; }
  .film-hero h1 { max-width: 100%; font-size: clamp(3.1rem, 14vw, 4.6rem); line-height: .9; overflow-wrap: normal; }
  .film-hero-role { font-size: 1.08rem; }
  .film-intro { display: flex; flex-direction: column; }
  .waking-page .film-intro { display: flex; }
  .united-page .film-intro { display: flex; }
  .sarabha-page .film-intro { display: flex; }
  .film-poster { width: min(100%, 320px); }
  .film-poster-wide { width: 100%; max-width: 520px; }
  .film-intro-copy h2,
  .story-heading h2,
  .arc-layout h2,
  .gallery-heading h2,
  .film-contact h2 { font-size: clamp(2.8rem, 13vw, 4.4rem); }
  .film-intro-copy .lead { font-size: 1.25rem; }
  .film-role { padding: 1.4rem; }
  .film-gallery-grid { grid-template-columns: 1fr; }
  .waking-gallery { grid-template-columns: 1fr; }
  .waking-gallery-secondary { grid-template-columns: 1fr; }
  .united-gallery { grid-template-columns: 1fr; }
  .united-bts-gallery { grid-template-columns: 1fr; }
  .sarabha-gallery-lead, .sarabha-gallery-wide { grid-template-columns: 1fr; }
  .sarabha-gallery-poster { width: 100%; }
  .monte-gallery-grid { grid-template-columns: 1fr; }
  .aryan-gallery-grid { grid-template-columns: 1fr; }
  .aryan-gallery-grid .aryan-wide { grid-column: auto; }
  .mission-gallery-grid { grid-template-columns: 1fr; }
  .mission-gallery-grid .mission-wide { grid-column: auto; }
  .film-contact { grid-template-columns: 1fr; min-height: 520px; padding-left: 1.3rem; padding-right: 1.3rem; }
  .film-page-links { align-items: flex-start; }
}
