/* Keep the cinematic timing; avoid repainting large filtered surfaces. */
.film-grain{display:none;background-image:none}
.site-header.scrolled{background:#090d11f5;backdrop-filter:none;-webkit-backdrop-filter:none}
.chapter-dialog::backdrop,.photo-dialog::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none}

/* Foreground words retain their focus pull, while whole reading panels stay crisp. */
.js-enabled:not(.motion-off) .reveal,.js-enabled:not(.motion-off) .reveal.is-visible{
  filter:none;
  transition:opacity .8s ease,transform .8s var(--motion-curve);
}

/* Reserve large compositor surfaces only while their scene is near the viewport. */
.cinema-ready .scene,.hero .hero-copy,.film-panel .panel-copy,
.epic-motion .archive-scene-copy,.epic-motion .contact-orbit{will-change:auto}
.archive-scene-photo,.epic-motion .archive-scene-stage{will-change:auto}
.epic-motion .archive-sequence.continuity-nearby .archive-scene-photo{will-change:transform}
.epic-motion .archive-sequence.continuity-nearby .archive-scene-stage{will-change:clip-path}

@media(max-width:760px){
  /* Same animation names preserve the title completion events and two-second hold. */
  @keyframes word-arrival{
    0%{transform:translate3d(0,90%,0) rotate(1.2deg);filter:blur(2px);opacity:0}
    45%{opacity:1}
    100%{transform:translateZ(0);filter:blur(0);opacity:1}
  }
  @keyframes initial-arrival{
    from{opacity:0;filter:blur(2px);transform:translate3d(0,.3em,0)}
    to{opacity:1;filter:blur(0);transform:none}
  }
  @keyframes title-resolution{
    from{opacity:0;filter:blur(2px);transform:translate3d(.13em,0,0)}
    to{opacity:1;filter:blur(0);transform:none}
  }
  @keyframes cinema-soft-in{
    from{opacity:0;transform:translate3d(0,12px,0)}
    to{opacity:1;transform:none}
  }
}
