/* One viewport-sized film continues behind every dark section. */
body { isolation:isolate; }
.stage-film { position:fixed; inset:0; height:100vh; height:100lvh; z-index:-1; overflow:hidden; pointer-events:none; background:var(--bg); contain:paint; }
.stage-film picture,.stage-film img,.stage-film-video { position:absolute; inset:0; width:100%; height:100%; }
/* Keep the whole camera frame visible; dark film edges blend into the stage. */
.stage-film img,.stage-film-video { object-fit:contain; object-position:center; }
.stage-film-video { opacity:0; transition:opacity 1.2s ease; }
.stage-film.is-ready .stage-film-video { opacity:1; }
.hero { background:linear-gradient(90deg,rgba(20,20,20,.5),rgba(20,20,20,.22) 35%,rgba(20,20,20,.02) 60%); }
.directions,.team,.life { background:linear-gradient(90deg,rgba(20,20,20,.34),rgba(20,20,20,.08) 70%); }
.footer { background:linear-gradient(90deg,rgba(29,29,27,.56),rgba(29,29,27,.24)); }
.hero-motion { font:inherit; text-transform:uppercase; letter-spacing:inherit; color:var(--muted); background:none; border:0; border-bottom:1px solid #64645b; padding:0 0 3px; white-space:nowrap; cursor:pointer; }
.hero-motion:hover { color:var(--ink); border-color:var(--orange); }
.hero-motion:focus-visible { outline:2px solid var(--orange); outline-offset:6px; }
@media(max-width:650px) {
  .hero { background:linear-gradient(90deg,rgba(20,20,20,.35),rgba(20,20,20,.05)); }
  .hero-top .hero-motion { margin-left:auto; font-size:9px; }
}
@media(prefers-reduced-motion:reduce) { .stage-film-video { transition:none; } }
@media print { .stage-film { display:none; } }
