.films-page { --film-orange:#ff4b16; --film-line:rgba(241,240,235,.25); background:var(--ink); color:var(--paper); }
.films-page [hidden] { display:none!important; }
.films-page :focus-visible { outline:3px solid var(--film-orange); outline-offset:5px; }
.films-page .desktop-nav { gap:clamp(.8rem,2vw,2rem); }
.films-page .contact-link { background:var(--paper); }
.film-skip { position:fixed; z-index:1000; left:1rem; top:1rem; transform:translateY(-200%); background:var(--paper); color:var(--ink); padding:1rem; }
.film-skip:focus { transform:none; }
.film-hero { padding:8rem 2.25rem 3rem; }
.film-eyebrow { display:flex; gap:2rem; justify-content:space-between; padding-bottom:.85rem; border-bottom:1px solid var(--film-line); font:.65rem/1.5 var(--mono); }
.film-hero h1 { max-width:1400px; margin:4rem 0 3rem; font-size:clamp(3.2rem,6vw,7rem); line-height:1.02; font-weight:700; letter-spacing:-.065em; text-wrap:balance; }
.film-hero h1 em { display:block; max-width:900px; margin-top:2rem; font-size:.55em; color:var(--film-orange); font-style:normal; line-height:1.1; letter-spacing:-.04em; }
.film-hero-bottom { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:end; border-top:1px solid var(--film-line); padding-top:1.5rem; }
.film-hero-bottom p { margin:0; max-width:35rem; font-size:clamp(1.05rem,1.5vw,1.5rem); line-height:1.5; color:#c4c3bd; }
.film-hero-bottom a { justify-self:end; display:flex; align-items:center; gap:2rem; padding:.8rem 0; font:.7rem var(--mono); border-bottom:1px solid; }
.film-down { display:inline-block; width:.55rem; height:.55rem; border-right:1px solid; border-bottom:1px solid; transform:rotate(45deg); }
.film-positioning { padding:3rem 2.25rem 5rem; display:grid; grid-template-columns:1fr 2fr; gap:3rem; }
.film-positioning>span { font:.62rem/1.5 var(--mono); color:#a7a59d; }
.film-positioning>div { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.film-positioning p { font-size:.95rem; line-height:1.75; margin:0; max-width:33rem; }
.film-positioning p+p { color:#a7a59d; }
.film-catalogue { padding:5rem 2.25rem 6rem; background:var(--paper); color:var(--ink); scroll-margin-top:5rem; }
.catalogue-heading { display:flex; align-items:end; justify-content:space-between; gap:3rem; margin-bottom:3rem; }
.catalogue-heading h2,.film-cta h2 { font-size:clamp(3rem,6.5vw,7rem); font-weight:800; line-height:.9; letter-spacing:-.07em; margin:0; }
.catalogue-heading p { max-width:19rem; font-size:.9rem; line-height:1.6; margin:0; }
.film-filter-bar { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-top:1px solid; border-bottom:1px solid; margin-bottom:2rem; }
.film-filters { display:flex; gap:1.8rem; flex-wrap:wrap; }
.film-filters button { position:relative; min-height:3.5rem; border:0; padding:.8rem 0; background:none; font:.7rem var(--mono); cursor:pointer; text-transform:uppercase; }
.film-filters button.active::after { content:""; position:absolute; bottom:-1px; height:3px; background:var(--ink); left:0; right:0; }
.film-filters small { font-size:.52rem; margin-left:.6rem; }
.film-result-count { font:.58rem/1.5 var(--mono); text-align:right; }
.film-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2.5rem 1.25rem; }
.film-card { min-width:0; }
.film-open { width:100%; display:block; border:0; padding:0; background:none; text-align:left; cursor:pointer; }
.film-slate { position:relative; display:flex; flex-direction:column; justify-content:space-between; width:100%; aspect-ratio:4/3; padding:1.1rem; background:#1b1b1b; color:var(--paper); border-top:4px solid var(--film-orange); overflow:hidden; transition:background .3s; }
.commercial .film-slate { background:#e4e1d5; color:var(--ink); }
.commercial:nth-child(2n) .film-slate { background:#c9c5b6; }
.events .film-slate { border-top-color:#bcb8ab; }
.slate-top,.slate-bottom { display:flex; align-items:center; justify-content:space-between; gap:.6rem; font:.5rem/1.5 var(--mono); text-transform:uppercase; }
.slate-top { align-items:start; }
.slate-top>span:first-child { max-width:11rem; }
.slate-top>span:last-child { white-space:nowrap; }
.slate-title { display:block; font-size:clamp(1.6rem,3.2vw,3.7rem); line-height:.95; letter-spacing:-.06em; max-width:12ch; font-weight:700; white-space:pre-line; padding:1.2rem 0; }
.commercial .slate-title { font-size:clamp(2.5rem,4vw,4.5rem); }
.slate-bottom { justify-content:start; border-top:1px solid currentColor; padding-top:.8rem; }
.slate-bottom>span:last-child { margin-left:auto; font-size:.45rem; }
.film-play-symbol { width:0; height:0; border-top:.36rem solid transparent; border-bottom:.36rem solid transparent; border-left:.6rem solid currentColor; display:inline-block; }
.film-open:hover .film-slate { background:var(--film-orange); color:var(--ink); }
.film-card-caption { display:flex; flex-direction:column; gap:.5rem; padding:1rem 0; border-bottom:1px solid rgba(10,10,10,.25); }
.film-card-caption strong { font-size:1.15rem; line-height:1.2; letter-spacing:-.035em; }
.film-card-caption>span { font:.57rem/1.5 var(--mono); color:#595850; }
.film-cta { padding:5rem 2.25rem; }
.film-cta>span { display:block; border-top:1px solid var(--film-line); padding-top:1rem; font:.65rem var(--mono); }
.film-cta h2 { margin:3rem 0; }
.film-cta>div { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:end; }
.film-cta p { font-size:1rem; line-height:1.7; max-width:34rem; margin:0; color:#c4c3bd; }
.film-cta a { display:flex; align-items:center; justify-content:center; min-height:4rem; padding:1rem 1.5rem; background:var(--film-orange); color:var(--ink); font-weight:600; text-align:center; }
body.film-opened { overflow:hidden; }
.film-player-dialog { position:fixed; width:min(1200px,calc(100vw - 3rem)); max-height:calc(100svh - 3rem); padding:0; border:1px solid #444; background:#0a0a0a; color:var(--paper); }
.film-player-dialog::backdrop { background:rgba(0,0,0,.9); }
.film-player-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.15rem 1.5rem; border-bottom:1px solid var(--film-line); }
.film-player-header>div>span { font:.55rem/1.4 var(--mono); color:#bcbab0; }
.film-player-header h2 { font-size:clamp(1rem,2vw,1.7rem); line-height:1.2; letter-spacing:-.035em; margin:.4rem 0 0; }
.film-close { display:flex; gap:1rem; align-items:center; justify-content:center; min-width:5rem; min-height:2.75rem; border:1px solid #777; background:transparent; font:.65rem var(--mono); cursor:pointer; padding:.7rem; }
.film-close>span { font-size:1.3rem; }
.film-stage { background:#050505; display:flex; align-items:center; justify-content:center; min-height:min(43vw,55svh); }
.film-stage video { width:100%; max-height:65svh; object-fit:contain; display:block; background:#050505; }
.film-playback-state { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:0 1.5rem; }
.film-player-status { font-size:.78rem; line-height:1.6; margin:.8rem 0; color:#c4c3bd; }
.film-retry { border:1px solid #777; background:transparent; min-height:2.75rem; color:inherit; padding:.7rem 1rem; cursor:pointer; font-size:.75rem; }
.film-player-bottom { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 1.5rem; border-top:1px solid var(--film-line); }
.film-position { font:.6rem var(--mono); color:#bcbab0; }
.film-player-bottom>div { display:flex; gap:.75rem; }
.film-player-bottom button { min-height:2.75rem; border:1px solid #777; padding:.7rem 1rem; background:none; color:var(--paper); cursor:pointer; font-size:.75rem; }
.film-player-bottom .film-next { background:var(--paper); border-color:var(--paper); color:var(--ink); }
.media-film-link { display:inline-flex; padding:.8rem 0; margin:0 0 2.5rem; border-bottom:1px solid; font:500 .8rem var(--mono); }
@media(max-width:1000px) { .film-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.slate-title { font-size:clamp(2rem,4vw,3.7rem); }.film-positioning { grid-template-columns:1fr 3fr; } }
@media(max-width:900px) { .film-hero { padding:6.5rem 1rem 2.5rem; }.film-hero h1 { font-size:clamp(3rem,7vw,5rem); }.film-positioning,.film-catalogue,.film-cta { padding:3rem 1rem; }.film-positioning { grid-template-columns:1fr; gap:1.5rem; }.film-down { display:none; } }
@media(max-width:620px) {
  .film-eyebrow { font-size:.56rem; }.film-eyebrow>span:last-child { display:none; }
  .film-hero h1 { font-size:clamp(2.5rem,10.4vw,4rem); margin:3rem 0 2rem; }.film-hero h1 em { font-size:.65em; }
  .film-hero-bottom,.film-positioning>div,.film-cta>div { grid-template-columns:1fr; gap:1.5rem; }.film-hero-bottom a { justify-self:start; }
  .catalogue-heading { display:block; margin-bottom:2rem; }.catalogue-heading h2,.film-cta h2 { font-size:clamp(2.7rem,11vw,4rem); }.catalogue-heading p { margin-top:1.5rem; }
  .film-filter-bar { display:block; }.film-filters { justify-content:space-between; gap:.5rem; }.film-filters button { font-size:.61rem; }.film-filters small { margin-left:.3rem; }.film-result-count { display:block; text-align:left; font-size:.53rem; padding:.7rem 0; border-top:1px solid #aaa; }
  .film-grid { grid-template-columns:1fr; gap:2rem; }.film-slate { aspect-ratio:16/10; padding:1rem; }.slate-title,.commercial .slate-title { font-size:clamp(2.2rem,10vw,3.7rem); }.slate-top,.slate-bottom { font-size:.52rem; }.slate-bottom>span:last-child { font-size:.48rem; }
  .film-player-dialog { width:calc(100vw - 1rem); max-height:calc(100svh - 1rem); }.film-player-header { padding:1rem; }.film-player-header>div>span { font-size:.48rem; }.film-player-header h2 { font-size:1rem; }.film-close { min-width:3rem; gap:.5rem; font-size:.57rem; }
  .film-stage { min-height:40svh; }.film-stage video { max-height:58svh; }.film-playback-state { padding:0 1rem; }.film-player-bottom { padding:1rem; }.film-player-bottom>div { gap:.5rem; }.film-player-bottom button { font-size:.65rem; padding:.7rem; }
}
@media(prefers-reduced-motion:reduce) { .films-page *, .films-page *::before, .films-page *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }.films-page .transition-screen { display:none; } }
