/* Progressive motion: content remains visible without JavaScript. */
@media(prefers-reduced-motion:no-preference){
 .hero-copy>.eyebrow{animation:welcome-in .7s ease both}
 .hero-copy>h1{animation:welcome-in .9s .08s ease both}
 .hero-copy>p:not(.eyebrow){animation:welcome-in .9s .16s ease both}
 .hero-copy>.button,.hero-bottom{animation:welcome-in .9s .24s ease both}
 .hero-art img{animation:welcome-view 4s ease-out both}
 .reveal-ready{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s ease;transition-delay:var(--reveal-delay,0ms)}
 .reveal-ready.is-visible{opacity:1;transform:none}
 .world-grid>button,.product-art,.button,.add,.cart-button{transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease}
 .product-art svg{transition:transform .45s ease}
 .cart-pulse{animation:cart-pop .4s ease}
 dialog[open]{animation:dialog-in .25s ease-out}
 @media(hover:hover){.product-art:hover svg{transform:scale(1.045)}.world-grid>button:hover{transform:translateY(-5px);box-shadow:0 12px 24px #32190e35}.button:hover{transform:translateY(-2px)}.add:hover{transform:rotate(90deg)}.cart-button:hover{transform:translateY(-2px)}}
}
@keyframes welcome-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes welcome-view{from{transform:scale(1.055)}to{transform:scale(1)}}
@keyframes cart-pop{50%{transform:scale(1.28)}}
@keyframes dialog-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.reveal-ready{opacity:1!important;transform:none!important;transition:none!important}*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}}
