/* Site-wide motion: scroll reveals, button and card micro-interactions.
   motion.js adds .mo-reveal to content blocks, so without JS everything just shows. */
.mo-reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.mo-reveal.mo-in{opacity:1;transform:none}

.mo-arr{display:inline-block;transition:transform .25s ease}
:where(.btn-primary,.btn-primary-lg,.btn,.cta-btn,.nav-cta,.order-btn,.cart-btn,.reorder-btn,.pdf-btn,.user-btn,.toc-cta,.botm-btn,button[type=submit]){transition:background .2s,color .2s,border-color .2s,transform .2s ease,box-shadow .2s}
:where(.btn-primary,.btn-primary-lg,.btn,.cta-btn,.nav-cta,.order-btn,.cart-btn,.reorder-btn,.pdf-btn,.toc-cta,button[type=submit]):not(:disabled):hover{transform:translateY(-2px);box-shadow:0 8px 22px -8px rgba(14,165,165,.55)}
:where(.btn-primary,.btn-primary-lg,.btn,.cta-btn,.nav-cta,.order-btn,.cart-btn,.reorder-btn,.pdf-btn,.user-btn,.toc-cta,button[type=submit]):not(:disabled):active{transform:translateY(0) scale(.97);box-shadow:none;transition-duration:.08s}
a:hover>.mo-arr,button:hover>.mo-arr{transform:translateX(4px)}

:where(.post-card,.cap-card,.action-card,.rule-card,.intro-card,.order-card,.address-card,.cart-card,.acct-card,.contact-item){transition:transform .25s ease,box-shadow .25s,border-color .25s}
:where(.post-card,.cap-card,.action-card,.order-card,.address-card,.cart-card):hover{transform:translateY(-4px);box-shadow:0 14px 30px -14px rgba(20,40,45,.35)}
:where(.rule-card,.contact-item):hover{transform:translateX(4px)}
.mo-reveal.mo-in:where(.post-card,.cap-card,.action-card,.order-card,.address-card,.cart-card):hover{transform:translateY(-4px)}
.mo-reveal.mo-in:where(.rule-card,.contact-item):hover{transform:translateX(4px)}

@media (prefers-reduced-motion:reduce){.mo-reveal{opacity:1;transform:none;transition:none}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important}.mo-arr,:where(.btn-primary,.btn,.cta-btn,.post-card,.cap-card,.rule-card){transition:none!important;transform:none!important}}
