/* Prolific Society — "alive" layer styles.
   Paired with ps-alive.js, which tags the elements itself.
   Nothing here applies unless the JS adds the classes, so a
   no-JS visitor sees the full site, just static. */

/* scroll reveal: hidden, then springs up */
html.ps-alive .ps-rv{
  opacity:0; transform:translateY(26px) scale(.985);
  transition:opacity .62s cubic-bezier(.2,.8,.2,1) var(--ps-d,0ms),
             transform .62s cubic-bezier(.2,.8,.2,1) var(--ps-d,0ms);
  will-change:opacity,transform;
}
html.ps-alive .ps-rv.ps-in{ opacity:1; transform:none; }

/* headings reveal more softly than cards */
html.ps-alive .ps-rv-soft{
  opacity:0; transform:translateY(14px);
  transition:opacity .7s ease var(--ps-d,0ms), transform .7s ease var(--ps-d,0ms);
}
html.ps-alive .ps-rv-soft.ps-in{ opacity:1; transform:none; }

/* while tilting, drop the CSS transition so the card tracks the cursor
   in real time instead of lagging behind it */
.ps-tilting{ transition:box-shadow .2s ease, border-color .2s ease !important; }

@media (prefers-reduced-motion:reduce){
  html.ps-alive .ps-rv, html.ps-alive .ps-rv-soft{
    opacity:1 !important; transform:none !important;
  }
}
