:root{--ease:cubic-bezier(.22,.61,.36,1);--motion-fast:180ms;--motion-base:300ms;--motion-slow:600ms}

/* Public-store motion only. The ready gate keeps content visible if JavaScript is unavailable. */
body.motion-enabled{animation:public-page-in 200ms var(--ease) both}
@keyframes public-page-in{from{opacity:.78}to{opacity:1}}
.motion-enabled.motion-ready [data-reveal],.motion-enabled.motion-ready .section-intro,.motion-enabled.motion-ready .brand-story{opacity:0;transform:translateY(20px);transition:opacity var(--motion-base) var(--ease),transform var(--motion-base) var(--ease);transition-delay:calc(var(--motion-order,0)*60ms)}
.motion-enabled.motion-ready [data-reveal].is-motion-visible,.motion-enabled.motion-ready .section-intro.is-motion-visible,.motion-enabled.motion-ready .brand-story.is-motion-visible{opacity:1;transform:translateY(0)}
.motion-enabled .public-header__nav a,.motion-enabled .public-header__actions>* ,.motion-enabled .public-icon-button,.motion-enabled .button,.motion-enabled button,.motion-enabled .text-link{transition:transform var(--motion-fast) var(--ease),opacity var(--motion-fast) var(--ease)}
.motion-enabled :where(button,.button,a):active{transform:scale(.97)}
.motion-enabled :where(button,.button,a):focus-visible{outline:2px solid #111;outline-offset:3px}

/* Menus and header links use opacity/transform only. */
.motion-enabled .public-mega-menu{transition:opacity var(--motion-fast) var(--ease) 70ms,transform var(--motion-fast) var(--ease) 70ms,visibility 0s linear 250ms}
.motion-enabled .public-category:hover .public-mega-menu,.motion-enabled .public-category:focus-within .public-mega-menu{transition-delay:0ms}
.motion-enabled .public-header__nav> a,.motion-enabled .public-category>a{position:relative}
.motion-enabled .public-header__nav> a::after,.motion-enabled .public-category>a::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:center;transition:transform var(--motion-base) var(--ease)}
.motion-enabled .public-header__nav> a:hover::after,.motion-enabled .public-header__nav> a:focus-visible::after,.motion-enabled .public-category>a:hover::after,.motion-enabled .public-category>a:focus-visible::after{transform:scaleX(1)}

/* Announcement loop is duplicated in the public layout to make the translation seamless. */
.public-announcement__track{display:flex;width:max-content;min-width:0;animation:public-marquee 36s linear infinite;will-change:transform}
.public-announcement__group{display:flex;align-items:center;gap:clamp(2.5rem,5vw,5rem);flex:none;padding-right:clamp(2.5rem,5vw,5rem)}
.public-announcement__track:hover{animation-play-state:paused}
@keyframes public-marquee{to{transform:translateX(-50%)}}

/* Product images and action buttons animate only on devices with a real hover pointer. */
@media(hover:hover) and (pointer:fine){
 .motion-enabled .product-card{transition:transform var(--motion-base) var(--ease)}
 .motion-enabled .product-card:hover{transform:translateY(-2px)}
 .motion-enabled .product-card-image>img:first-child{transition:transform var(--motion-slow) var(--ease),opacity var(--motion-base) var(--ease)}
 .motion-enabled .product-card:hover .product-card-image>img:first-child{transform:scale(1.04)}
 .motion-enabled .product-card .product-second-image{transition:opacity var(--motion-base) var(--ease)}
 .motion-enabled .product-card-actions{top:auto;bottom:12px;opacity:0;transform:translateY(12px);transition:opacity var(--motion-base) var(--ease),transform var(--motion-base) var(--ease)}
 .motion-enabled .product-card:hover .product-card-actions,.motion-enabled .product-card:focus-within .product-card-actions{opacity:1;transform:translateY(0)}
 .motion-enabled .product-card-actions>*:nth-child(1){transition-delay:0ms}.motion-enabled .product-card-actions>*:nth-child(2){transition-delay:60ms}.motion-enabled .product-card-actions>*:nth-child(3){transition-delay:120ms}
 .motion-enabled .product-card-actions>*{opacity:0;transform:translateY(8px);transition:opacity var(--motion-fast) var(--ease),transform var(--motion-fast) var(--ease)}
 .motion-enabled .product-card:hover .product-card-actions>*,.motion-enabled .product-card:focus-within .product-card-actions>*{opacity:1;transform:translateY(0)}
 .motion-enabled .category-mosaic__tile img{transition:transform var(--motion-slow) var(--ease)}
 .motion-enabled .category-mosaic__tile:hover img{transform:scale(1.06)}
 .motion-enabled .category-mosaic__tile>span b{transform:scaleX(0);transform-origin:left;transition:transform var(--motion-base) var(--ease)}
 .motion-enabled .category-mosaic__tile:hover>span b{transform:scaleX(1)}
 .motion-enabled .product-row__arrow{opacity:0;transform:translateY(4px);transition:opacity var(--motion-fast) var(--ease),transform var(--motion-fast) var(--ease)}
 .motion-enabled .product-row-wrap:hover .product-row__arrow,.motion-enabled .product-row-wrap:focus-within .product-row__arrow{opacity:1;transform:translateY(0)}
}
.motion-enabled .wishlist-pop{animation:wishlist-pop 360ms var(--ease)}
@keyframes wishlist-pop{50%{transform:scale(1.22)}}
.motion-enabled .public-bag-count.is-bumping{animation:bag-bump 360ms var(--ease)}
@keyframes bag-bump{50%{transform:scale(1.2)}}
.motion-enabled .floating-bag-button.is-bumping{animation:bag-bounce 440ms var(--ease)}
@keyframes bag-bounce{35%{transform:translateY(-8px)}70%{transform:translateY(2px)}}
.motion-enabled .collection-panel{transition:opacity var(--motion-base) var(--ease)}
.motion-enabled .tab-indicator{transition:transform var(--motion-base) var(--ease)}
.motion-enabled .public-search-overlay,.motion-enabled .public-mobile-menu,.motion-enabled .public-cart-drawer,.motion-enabled .filter-drawer{transition:opacity var(--motion-base) var(--ease),transform var(--motion-base) var(--ease)}
.motion-enabled .public-search-overlay:not([hidden]){animation:overlay-enter var(--motion-base) var(--ease) both}
.motion-enabled .public-search-overlay.is-closing{animation:none;opacity:0;transform:translateY(-8px);transition:opacity var(--motion-fast) var(--ease),transform var(--motion-fast) var(--ease)}
@keyframes overlay-enter{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.motion-enabled .public-cart-content [data-cart-item]{animation:item-arrive var(--motion-base) var(--ease) both;animation-delay:calc(var(--motion-order,0)*45ms)}
@keyframes item-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.motion-enabled .public-cart-content [data-cart-item].is-removing{opacity:0;transform:translateX(12px);transition:opacity var(--motion-fast) var(--ease),transform var(--motion-fast) var(--ease)}
.motion-enabled .quick-view-dialog,.motion-enabled .public-login-dialog{opacity:0;transform:scale(.96);transition:opacity var(--motion-base) var(--ease),transform var(--motion-base) var(--ease),overlay var(--motion-base) allow-discrete,display var(--motion-base) allow-discrete}
.motion-enabled .quick-view-dialog[open],.motion-enabled .public-login-dialog[open]{opacity:1;transform:scale(1)}
.motion-enabled dialog::backdrop{background:rgba(0,0,0,.48);opacity:0;transition:opacity var(--motion-base) var(--ease)}
.motion-enabled dialog[open]::backdrop{opacity:1}
.motion-enabled .public-search-results>*{animation:item-arrive var(--motion-fast) var(--ease) both;animation-delay:calc(var(--motion-order,0)*35ms)}
.public-search-results[aria-busy="true"]{min-height:5rem;background:#f2f2f2;animation:search-shimmer 1.1s ease-in-out infinite alternate}
@keyframes search-shimmer{to{opacity:.55}}
.motion-enabled [data-add-to-cart].is-loading,.motion-enabled form[action="/cart/add"] button.is-loading{opacity:.68;pointer-events:none}.motion-enabled [data-add-to-cart].is-added,.motion-enabled form[action="/cart/add"] button.is-added{transform:scale(1.02)}
.public-motion-toast{position:fixed;z-index:150;right:1rem;bottom:1rem;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity var(--motion-base) var(--ease),transform var(--motion-base) var(--ease);background:#111;color:#fff;border-radius:999px;padding:.8rem 1.1rem;box-shadow:0 8px 24px #0002}.public-motion-toast.is-visible{opacity:1;transform:translateY(0)}
.motion-enabled .product-gallery img{opacity:0;transition:opacity var(--motion-base) var(--ease)}.motion-enabled .product-gallery img.is-loaded{opacity:1}
.motion-enabled .product-gallery-thumbnails button{transition:opacity var(--motion-fast) var(--ease),transform var(--motion-fast) var(--ease)}
.motion-enabled .mobile-product-cta{transform:translateY(105%);opacity:0;transition:transform var(--motion-base) var(--ease),opacity var(--motion-base) var(--ease);pointer-events:none}.motion-enabled .mobile-product-cta.is-sticky-visible{transform:translateY(0);opacity:1;pointer-events:auto}
.motion-enabled .back-to-top,.motion-enabled .floating-bag-button{transition:opacity var(--motion-base) var(--ease),transform var(--motion-base) var(--ease)}
.motion-enabled .back-to-top{opacity:0;transform:translateY(8px);pointer-events:none}.motion-enabled .back-to-top.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}
.motion-enabled .product-row{scroll-behavior:smooth;scroll-snap-type:x mandatory;overscroll-behavior-x:contain}.motion-enabled .product-row>*{scroll-snap-align:start}
.motion-enabled .product-row.is-dragging{cursor:grabbing;user-select:none;scroll-snap-type:none}.product-row{cursor:grab}
.motion-enabled .product-row__arrow{position:absolute;z-index:2;top:42%;width:42px;height:42px;border-radius:50%;border:1px solid #ddd;background:#fff;box-shadow:0 5px 18px #0001}.product-row__arrow--prev{left:.5rem}.product-row__arrow--next{right:.5rem}.product-row-wrap{position:relative}
.motion-enabled .product-detail-accordion__panel{transform-origin:top;transition:opacity var(--motion-base) var(--ease),transform var(--motion-base) var(--ease)}
.motion-enabled .page-main{animation:public-page-in 200ms var(--ease) both}
@media(max-width:700px){.motion-enabled .product-card-actions{display:none}.motion-enabled .product-card-actions .card-heart{display:flex}.public-announcement__track{animation-duration:46s}}
@media(prefers-reduced-motion:reduce){
 body,.motion-enabled .page-main{animation:none!important}
 .motion-enabled.motion-ready [data-reveal],.motion-enabled.motion-ready .section-intro,.motion-enabled.motion-ready .brand-story{opacity:1!important;transform:none!important;transition:opacity var(--motion-fast) ease!important}
 .motion-enabled *, .motion-enabled *::before,.motion-enabled *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--motion-fast)!important;transition-delay:0ms!important}
 .public-announcement__track{animation:none!important;transform:none!important;will-change:auto!important}
}
