/* Motion follows browsing and shopping; reduced-motion keeps all content visible. */
.hero h1{font-size:clamp(56px,6.2vw,96px)}
.hero-copy>.eyebrow{animation:arrive .65s both}
.hero h1{animation:arrive .8s .1s both}
.hero .intro{animation:arrive .8s .2s both}
.hero .button{animation:arrive .8s .3s both}
.hero-photo>img{animation:photo-enter 1.2s cubic-bezier(.2,.65,.25,1) both}
.hero-product{transition:transform .25s,background .25s}
.hero-product:hover{transform:translateY(-6px);background:#fff}
.section-heading,.product,.sets-intro,.set-row,.story>*,.faq>*{transition:opacity .7s var(--reveal-delay,0ms),translate .7s var(--reveal-delay,0ms)}
.reveal-pending{opacity:0;translate:0 28px}
.button,.add-button,.detail-button,.set-action button,.swatch{transition:transform .22s,background .22s,color .22s,box-shadow .22s}
.button:hover{transform:translateY(-3px);box-shadow:0 8px 18px #151b3218}
.button span,.add-button span{transition:transform .25s}
.button:hover span{transform:translate(3px,-3px)}
.add-button:hover span{transform:rotate(90deg)}
.add-button:active,.button:active,.set-action button:active{transform:scale(.97)}
.detail-button:hover{transform:rotate(45deg);background:var(--pink)}
.swatch:hover{transform:translateY(-3px)}
.swatch:active{transform:scale(.85)}
.product-photo{transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .18s ease-out,box-shadow .3s}
.product-photo:hover{box-shadow:0 16px 30px #151b3212}
#patches .product-title{transition:color .25s}
#patches[data-active-color=pink]{--chosen:#eeb5c8}
#patches[data-active-color=blue]{--chosen:#a4c6e1}
#patches[data-active-color=black]{--chosen:#aaaeb8}
#patches[data-active-color=mint]{--chosen:#bbdcca}
#patches .add-button{background:var(--chosen,transparent)}
#patches .add-button:hover{background:var(--navy)}
.set-row:hover .set-action button{color:white}
.set-art:hover{transform:rotate(100deg);transition:transform .8s ease}
.bag-dialog[open]{animation:bag-enter .35s cubic-bezier(.2,.65,.25,1)}
.info-dialog[open]{animation:arrive .25s ease-out}
.bag-item{animation:arrive .25s ease-out}
.ticker{display:flex;background:#edeae4;align-items:center;height:63px;overflow:hidden}
.ticker-window{overflow:hidden;flex:1}
.ticker-track{display:flex;width:max-content;animation:ticker 28s linear infinite}
.ticker-group{display:flex;align-items:center;justify-content:space-around;gap:50px;padding-right:50px;min-width:100vw;flex-shrink:0;font-size:10px;letter-spacing:2px}
.ticker-group span:nth-child(even){color:#a68552;font-size:20px}
.motion-toggle{flex:0 0 48px;align-self:stretch;border-left:1px solid #151b321a;font-size:15px}
.ticker.paused .ticker-track{animation-play-state:paused}
@keyframes ticker{to{transform:translateX(-50%)}}
@keyframes arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes photo-enter{from{opacity:.3;scale:1.06}to{opacity:1;scale:1}}
@keyframes bag-enter{from{transform:translateX(100%)}to{transform:translateX(0)}}
@media(max-width:700px){.hero h1{font-size:62px}.ticker{height:49px}.ticker-group{min-width:700px;gap:25px;font-size:8px;letter-spacing:1px}.ticker-group span:nth-child(even){font-size:15px}.motion-toggle{flex-basis:40px}.product-photo{transform:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal-pending{opacity:1;translate:none}.product-photo{transform:none}.ticker-track{transform:none}.motion-toggle{display:none}.ticker-window{overflow-x:auto}.ticker-group{min-width:0;padding:0 20px}.ticker-group[aria-hidden=true]{display:none}}
