/* Static photographic framing, with optically rendered moving objects. */
[data-project-scene] .scene-mount { position:absolute; z-index:1; inset:0; overflow:hidden; pointer-events:none; opacity:0; transition:opacity 320ms ease; }
[data-project-scene] .scene-film { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:50% 50%; pointer-events:none; opacity:0; }
[data-project-scene="nopecube"] .scene-film { object-position:50% 55%; }
[data-project-scene="milemori"] .scene-film { object-position:52% 50%; }
[data-project-scene] .scene-film.is-active { opacity:1; }
[data-project-scene].scene-ready .scene-mount { opacity:1; }
[data-project-scene]>.desk-photo { opacity:1; }
[data-project-scene] .desk-photo img,.project-card:hover [data-project-scene] .desk-photo img { transform:none; }
[data-project-scene]>.visual-caption { z-index:2; }
[data-project-motion-toggle][hidden] { display:none!important; }
@media (prefers-reduced-motion:reduce) {
  [data-project-scene] .scene-mount { display:none; transition:none; }
  [data-project-scene].scene-ready>.desk-photo { opacity:1; transition:none; }
}
