/* Page & Parley — shared motion layer (scroll-reveal + card hover-lift).
   Scroll reveal is the Landing-style class reveal, driven by pp-reveal.js:
   it adds `pp-motion` to <html> ONLY when motion is allowed, so the hiding rule
   below never applies unless the JS is present to reveal it. pp-reveal.js also
   force-clears the transition in its failsafe, so content is NEVER left hidden. */

html { scroll-behavior: smooth; }

@keyframes pp-rise {
  from { opacity: 0; transform: translateY(26px); }
  to   { opacity: 1; transform: none; }
}

html.pp-motion [data-reveal] {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);
}
html.pp-motion [data-reveal].in {
  opacity: 1;
  transform: none;
}

/* Refined hover elevation for a premium feel — used on every card surface. */
.pp-lift {
  transition: transform .28s cubic-bezier(.22,.61,.36,1), box-shadow .28s cubic-bezier(.22,.61,.36,1), border-color .28s ease-out;
  will-change: transform;
}
.pp-lift:hover { transform: translateY(-6px); box-shadow: 0 18px 40px -12px rgba(44,42,68,.28); }

/* CTA weight rule (locked): all design-system buttons render at regular (400),
   matching the client demo. Overrides the bundle's semibold .ppbtn default
   without editing the bundle. Every shipped page links this file. */
.ppbtn, .ppb { font-weight: var(--fw-regular); }
