/* Movement follows content and user actions. The page stays readable without JavaScript. */
.motion-ready .motion-reveal{opacity:0;transform:translateY(19px);transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1);transition-delay:var(--motion-delay,0ms)}
.motion-ready .motion-reveal.is-visible{opacity:1;transform:none}
.motion-ready .motion-reveal.motion-left{transform:translateX(-18px)}
.motion-ready .motion-reveal.motion-right{transform:translateX(18px)}
.motion-ready .motion-reveal.motion-left.is-visible,.motion-ready .motion-reveal.motion-right.is-visible{transform:none}
.store-button:active,.submitted-shop-button:active,.checkout-place-button:active,.admin-button:active{transform:scale(.98)}
.store-filter-chip,.store-size-options button,.store-color-option,.listing-size-button,.listing-color-option,.checkout-option,.shipping-option{transition:background-color .22s,border-color .22s,color .22s,box-shadow .22s,transform .22s}
.store-filter-chip:active,.store-size-options button:active,.listing-size-button:active,.shipping-option:active{transform:scale(.98)}
.store-product-photo img,.listing-related-card img{will-change:transform}
@media(prefers-reduced-motion:reduce){.motion-ready .motion-reveal,.motion-ready .motion-reveal.motion-left,.motion-ready .motion-reveal.motion-right{opacity:1;transform:none;transition:none}.store-button:active,.submitted-shop-button:active,.checkout-place-button:active,.admin-button:active,.store-filter-chip:active,.store-size-options button:active,.listing-size-button:active,.shipping-option:active{transform:none}html{scroll-behavior:auto!important}}
/* Cart continuity: the bag arrives from the edge and the quantity confirms an update. */
.store-backdrop{opacity:0;transition:opacity .31s ease}.store-backdrop.is-open{opacity:1}
.store-cart{transform:translateX(102%);transition:transform .31s cubic-bezier(.22,1,.36,1)}.store-cart.is-open{transform:translateX(0)}
.store-cart-toggle span.is-updating,.store-utility-count.is-updating{animation:bag-count .55s cubic-bezier(.2,1,.25,1)}
@keyframes bag-count{0%{transform:translateY(5px) scale(.55,.65)}38%{transform:translateY(-8px) scale(1.32,1.14)}62%{transform:translateY(2px) scale(.88,1.08)}80%{transform:translateY(-2px) scale(1.08,.96)}100%{transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.store-backdrop,.store-cart{transition:none}.store-cart-toggle span.is-updating,.store-utility-count.is-updating{animation:none}}
/* The opened product and the item just added to a bag settle into place once. */
.store-product-dialog[open]{animation:store-dialog-enter .24s cubic-bezier(.2,.8,.3,1) both}
.store-product-dialog[open]::backdrop{animation:store-dialog-backdrop .24s ease both}
.store-cart-item.is-newly-added{animation:store-bag-row-enter .32s .13s cubic-bezier(.2,.8,.3,1) both}
@keyframes store-dialog-enter{from{opacity:0;transform:translateY(9px) scale(.992)}to{opacity:1;transform:none}}
@keyframes store-dialog-backdrop{from{opacity:0}to{opacity:1}}
@keyframes store-bag-row-enter{from{opacity:.3;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.store-product-dialog[open],.store-product-dialog[open]::backdrop,.store-cart-item.is-newly-added{animation:none}}
