/* Prism Motion Effects */
:root { --pme-duration: 760ms; --pme-distance: 24px; }
html.pme-ready .pme-reveal {
  opacity: 0; transform: translate3d(0,var(--pme-distance),0) scale(.985);
  transition: opacity var(--pme-duration) cubic-bezier(.2,.7,.2,1), transform var(--pme-duration) cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
}
html.pme-ready .pme-reveal.pme-visible { opacity: 1; transform: translate3d(0,0,0) scale(1); }
html.pme-ready .pme-from-left { transform: translate3d(-30px,0,0); }
html.pme-ready .pme-from-right { transform: translate3d(30px,0,0); }
html.pme-ready .pme-from-top { transform: translate3d(0,-26px,0); }
html.pme-ready .pme-from-bottom { transform: translate3d(0,26px,0); }
.pme-typing-caret::after { content:""; display:inline-block; width:2px; height:1em; margin-left:3px; vertical-align:-.12em; background:currentColor; animation:pme-blink .8s steps(2,start) infinite; }
@keyframes pme-blink { to { visibility:hidden; } }
.pme-3d {
  transform: perspective(700px) translateZ(0);
  transform-style:preserve-3d;
  transition: transform 220ms ease, box-shadow 220ms ease, filter 220ms ease;
}
.pme-3d:hover { transform: perspective(700px) translateY(-3px) rotateX(3deg) rotateY(-2deg); filter:brightness(1.04); box-shadow:0 10px 22px rgba(0,0,0,.16); }
.pme-3d:active { transform: perspective(700px) translateY(1px) scale(.98); box-shadow:0 3px 8px rgba(0,0,0,.12); }
@media (prefers-reduced-motion: reduce) {
  html.pme-ready .pme-reveal, html.pme-ready .pme-reveal.pme-visible, .pme-3d, .pme-3d:hover, .pme-3d:active {
    opacity:1 !important; transform:none !important; transition:none !important; animation:none !important; filter:none !important; box-shadow:none !important;
  }
  .pme-typing-caret::after { display:none; }
}
