/* CLNT-4439: shared micro-motion for the public marketing pages (landing, pricing).
   Arrow nudges and scroll reveal are armed by motion.js; without JS nothing is hidden. */
@keyframes motion-rise { from { opacity: 0; transform: translateY(8px); } }
.nav-link, .text-link, .footer-links a, .footer-column a, .footer-bottom a, .faq-list summary { transition: color var(--dur-short), border-color var(--dur-short); }
.text-link:hover { border-color: currentColor; }
[data-nudge] { display: inline-block; transition: transform var(--dur-short) var(--ease-out); }
@media (hover: hover) {
  :is(a, button):hover > [data-nudge="right"] { transform: translateX(3px); }
  :is(a, button):hover > [data-nudge="up-right"] { transform: translate(2px, -2px); }
  :is(a, button):hover > [data-nudge="down"] { transform: translateY(3px); }
  :is(a, button):hover > [data-nudge="up"] { transform: translateY(-3px); }
}
main details[open] > :not(summary) { animation: motion-rise 220ms var(--ease-out) both; }
[data-reveal] { transition: opacity 350ms var(--ease-out), transform 350ms var(--ease-out); }
[data-reveal]:not(.is-revealed) { opacity: 0; transform: translateY(12px); }
[data-reveal] + [data-reveal] { transition-delay: 80ms; }
[data-reveal][style*="--reveal-i"] { transition-delay: calc(var(--reveal-i) * 70ms); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0s !important; animation: none !important; }
  [data-reveal] { opacity: 1 !important; transform: none !important; }
}
@media print { [data-reveal], [data-reveal] * { opacity: 1 !important; transform: none !important; animation: none !important; } }
