/* Site-wide scroll motion for public pages. Content below the first screen rises into place once;
   large photographs drift gently where the browser supports scroll timelines. Nothing is hidden
   unless motion.js has measured the page, so content stays visible without JavaScript. */
[data-reveal]{transition:opacity .95s cubic-bezier(.2,.7,.1,1),translate .95s cubic-bezier(.2,.7,.1,1);transition-delay:var(--reveal-delay,0ms)}
[data-reveal]:not(.is-in){opacity:0;translate:0 34px}
[data-reveal="frame"]{transition-property:opacity,translate,clip-path;clip-path:inset(0 0 0 0)}
[data-reveal="frame"]:not(.is-in){translate:0 18px;clip-path:inset(14% 0 0 0)}
[data-reveal="frame"] img{transition:scale 1.5s cubic-bezier(.2,.7,.1,1);transition-delay:var(--reveal-delay,0ms)}
[data-reveal="frame"]:not(.is-in) img{scale:1.1}

@supports (animation-timeline: view()){
  .motion-drift{scale:1.12;animation:motion-drift linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
  @keyframes motion-drift{from{translate:0 -5%}to{translate:0 5%}}
}

@media(prefers-reduced-motion:reduce){
  [data-reveal],[data-reveal] img{transition:none!important;opacity:1!important;translate:none!important;clip-path:none!important;scale:1!important}
  .motion-drift{animation:none!important}
}
@media print{[data-reveal]{opacity:1!important;translate:none!important;clip-path:none!important}[data-reveal] img{scale:1!important}}
