/* Isolated addition: the approved homepage composition is unchanged. */
.project-film{--film-open:0;--film-top:76px;background:var(--paper)}
.film-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:0 var(--gutter) 32px}
.film-eyebrow{margin:0 0 22px;color:var(--stone-dark);font-size:.75rem;letter-spacing:.17em}
.film-intro h2{margin:0;font-size:clamp(44px,5.5vw,84px);line-height:1.04;letter-spacing:-.055em;font-weight:400}
.film-intro h2 em{font-family:var(--serif);font-weight:400;color:var(--stone-dark)}
.film-scroll-cue{display:flex;align-items:center;gap:25px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.875rem;white-space:nowrap}
.film-scroll-cue svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.2}
.film-track{height:auto}
.film-stage{position:relative;height:calc(100svh - var(--film-top));min-height:400px;max-height:1100px;scroll-margin-top:var(--film-top)}
.film-frame{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;width:calc(76% + 24% * var(--film-open));height:calc(70% + 30% * var(--film-open));overflow:hidden;background:var(--ink);isolation:isolate}
.film-frame video{pointer-events:none;display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.film-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(7,10,9,.72),transparent 33%);z-index:1}
.film-caption{--film-label-x:clamp(18px,3vw,48px);--film-label-y:30px;position:absolute;left:var(--film-label-x);bottom:var(--film-label-y);z-index:2;color:white;pointer-events:none;max-width:calc(100% - 195px)}
.film-caption>span{display:block;font-size:.75rem;letter-spacing:.13em}
.film-caption p{margin:6px 0 0;font-size:.75rem;color:#e1e3de;line-height:1.5}
.film-status[hidden]{display:none}
/* The only interactive player is this homepage film frame. */
.film-toggle[hidden]{display:none}
.film-toggle{position:absolute;inset:0;z-index:3;display:block;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:pan-y}
.film-toggle-position{position:absolute;left:calc(100% - 44px * var(--film-ui-scale-x,1));top:calc(100% - 44px * var(--film-ui-scale-y,1));pointer-events:none}
.film-toggle-circle{display:grid;place-items:center;width:64px;height:64px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(15,18,16,.38);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);transform:translate(-50%,-50%) scale(var(--film-ui-scale-x,1),var(--film-ui-scale-y,1));transform-origin:center;transition:opacity .2s ease,background .2s ease}
.film-toggle svg{grid-area:1/1;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.film-toggle .film-toggle-play{display:none}
.film-toggle.is-paused .film-toggle-pause{display:none}
.film-toggle.is-paused .film-toggle-play{display:block}
.film-toggle:focus-visible{outline:none}
.film-toggle:focus-visible .film-toggle-position{left:calc(100% - 44px * var(--film-ui-scale-x,1));top:calc(100% - 44px * var(--film-ui-scale-y,1));transform:none!important}
.film-toggle:focus-visible .film-toggle-circle{opacity:1;outline:2px solid #fff;outline-offset:4px;background:rgba(15,18,16,.7)}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .film-toggle{cursor:none}
  .film-toggle-circle{opacity:0}
  .film-toggle.has-pointer-position .film-toggle-position{left:0;top:0}
  .film-toggle.is-pointer-active .film-toggle-circle{opacity:1}
  .film-toggle:focus-visible{cursor:pointer}
  .film-toggle:focus-visible .film-toggle-position{left:calc(100% - 44px * var(--film-ui-scale-x,1));top:calc(100% - 44px * var(--film-ui-scale-y,1))}
}
.film-scroll-cue:focus-visible{outline:2px solid var(--stone);outline-offset:5px}
.film-status{position:absolute;z-index:3;left:20px;right:20px;top:20px;margin:0;padding:12px 18px;background:rgba(17,20,19,.9);color:white;font-size:.875rem}
.project-film.is-enhanced .film-track{height:240svh}
.project-film.is-enhanced .film-stage{position:sticky;top:var(--film-top)}
/* Only transforms animate: no changing clipping mask or layout dimensions. */
.project-film.is-enhanced .film-frame{inset:0;width:100%;height:100%;transform:translate3d(0,0,0) scale(var(--film-scale-x,.76),var(--film-scale-y,.70));transform-origin:center;backface-visibility:hidden;will-change:transform}
.project-film.is-enhanced .film-frame video{position:absolute;left:50%;top:50%;width:var(--film-media-width,100%);height:var(--film-media-height,100%);max-width:none;transform:translate3d(-50%,-50%,0) scale(var(--film-media-scale-x,1),var(--film-media-scale-y,1));transform-origin:center;backface-visibility:hidden;will-change:transform}
.project-film.is-enhanced .film-caption{opacity:clamp(0,calc((var(--film-open) - .3) / .4),1)}
.project-film.is-enhanced .film-caption{transform:translate3d(calc(var(--film-label-x) * (var(--film-ui-scale-x,1) - 1)),calc(var(--film-label-y) * (1 - var(--film-ui-scale-y,1))),0) scale(var(--film-ui-scale-x,1),var(--film-ui-scale-y,1));transform-origin:bottom left;max-width:calc(70% - 195px)}
.project-film.is-enhanced .film-status{left:50%;right:auto;width:min(620px,calc(70% - 40px));transform:translate3d(-50%,0,0) scale(var(--film-ui-scale-x,1.315789),var(--film-ui-scale-y,1.428571));transform-origin:top center}
.project-film:not(.is-enhanced) .film-caption{bottom:75px}
.project-film.is-reduced .film-track{height:auto}
.project-film.is-reduced .film-stage{position:relative}
.project-film.is-reduced .film-frame{width:100%;height:100%}
@media(max-width:760px){
  .project-film{--film-top:72px;--film-mobile-ratio:1.25;--film-mobile-height:min(80vw,calc(100svh - var(--film-top) - 104px));--film-mobile-travel:clamp(260px,60svh,520px)}
  .film-intro{align-items:center;padding-bottom:20px}
  .film-intro h2{font-size:clamp(37px,9vw,58px)}
  .film-eyebrow{font-size:.75rem;letter-spacing:.1em;margin-bottom:16px}
  .film-scroll-cue{gap:10px;font-size:.875rem}
  .film-stage{height:var(--film-mobile-height);min-height:0;max-height:none;margin-bottom:104px}
  .film-frame{width:min(100%,calc((100svh - var(--film-top) - 104px) * 1.25));height:auto;aspect-ratio:5/4;overflow-x:clip;overflow-y:visible}
  .film-caption{--film-label-x:16px;--film-label-y:-82px;right:auto;width:calc(100% - 96px);max-width:none;color:var(--ink)}
  .film-caption>span{font-size:.75rem;letter-spacing:.08em}
  .film-caption p{max-width:245px;color:var(--muted)}
  .film-shade{display:none}
  /* Pin the taller picture and its caption in the usable screen center.
     The remaining scroll distance holds the fully expanded film in view. */
  .project-film.is-enhanced .film-stage{top:max(var(--film-top),calc((100svh - var(--film-mobile-height) - 104px + var(--film-top)) / 2))}
  .project-film.is-enhanced .film-track{height:calc(var(--film-mobile-height) + 104px + var(--film-mobile-travel))}
  .project-film.is-enhanced .film-caption{width:calc(100% * var(--film-scale-x,1) - 96px);max-width:none}
  .project-film:not(.is-enhanced) .film-caption{bottom:-82px}
  .project-film.is-reduced .film-track{height:auto}
}
@media(max-width:760px) and (orientation:landscape){
  /* Short rotated phones retain the fitted landscape picture. */
  .project-film{--film-mobile-ratio:1.7777777778;--film-mobile-height:min(56.25vw,calc(100svh - var(--film-top) - 104px))}
  .film-frame{width:min(100%,calc((100svh - var(--film-top) - 104px) * 16 / 9));aspect-ratio:16/9}
}
@media(prefers-reduced-motion:reduce){
  .project-film.is-enhanced .film-track{height:auto}
  .project-film.is-enhanced .film-stage{position:relative;top:0}
  .film-frame{width:100%;height:100%}
  .project-film.is-enhanced .film-frame{transform:none;will-change:auto}
  .project-film.is-enhanced .film-frame video{transform:translate3d(-50%,-50%,0);will-change:auto}
  .project-film.is-enhanced .film-caption{transform:none}
  .project-film.is-enhanced .film-status{transform:translate3d(-50%,0,0)}
}
@media(max-width:760px) and (prefers-reduced-motion:reduce){
  /* Retain the mobile viewport and full-sized captions without motion. */
  .project-film.is-enhanced .film-frame{transform:scale(var(--film-scale-x,1),var(--film-scale-y,1))}
  .project-film.is-enhanced .film-frame video{transform:translate3d(-50%,-50%,0) scale(var(--film-media-scale-x,1),var(--film-media-scale-y,1))}
  .project-film.is-enhanced .film-caption{transform:translate3d(calc(var(--film-label-x) * (var(--film-ui-scale-x,1) - 1)),calc(var(--film-label-y) * (1 - var(--film-ui-scale-y,1))),0) scale(var(--film-ui-scale-x,1),var(--film-ui-scale-y,1))}
}
