/* One composited marquee; remaining animations only run on entry or interaction. */
.ticker>.ticker-track{display:flex;width:max-content;gap:0;animation:calanque-ticker var(--ticker-duration,32s) linear infinite;animation-play-state:paused;transform:translate3d(0,0,0)}
.ticker-group{display:flex;flex:0 0 auto;align-items:center;justify-content:space-around;gap:32px;min-width:100vw;padding:0 20px;white-space:nowrap}
.ticker-group b{display:flex;align-items:center;justify-content:center;padding:0;font-size:28px;flex-shrink:0}
.ticker-group>span{flex-shrink:0}
.ticker.motion-ready[data-moving=true]>.ticker-track{animation-play-state:running;will-change:transform}
html.modal-open .ticker>.ticker-track{animation-play-state:paused;will-change:auto}
.ticker-control{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:1.5px solid var(--ink);border-radius:50%;background:var(--lime);padding:8px;box-shadow:0 0 0 5px var(--lime);z-index:4;display:grid;place-items:center}
.ticker-control svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.ticker-control:hover{background:var(--paper)}
@keyframes calanque-ticker{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.motion-card{opacity:0;transform:translateY(14px);transition:opacity .42s ease var(--enter-delay,0ms),transform .42s cubic-bezier(.2,.75,.25,1) var(--enter-delay,0ms)}
.motion-card.motion-visible{opacity:1;transform:translateY(0)}
.button .ui-icon,.card-quantity-button .ui-icon,.text-link .ui-icon{transition:transform .2s ease}
.gallery-primary{transition:opacity .18s ease,transform .32s ease}
nav a{position:relative;padding-block:8px}
nav a:after{content:'';position:absolute;left:0;right:0;bottom:1px;height:2px;background:var(--purple);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}
nav a:focus-visible:after{transform:scaleX(1)}
summary>span{transition:transform .18s ease}
.pro-grid .reveal:nth-child(2){transition-delay:65ms}.pro-grid .reveal:nth-child(3){transition-delay:130ms}
@media(hover:hover) and (pointer:fine){.shop-card{transition:transform .22s ease,opacity .42s ease}.shop-card.motion-visible:hover,.shop-card:not(.motion-card):hover{transform:translateY(-4px)}.shop-card:hover .product-gallery:not(.has-second) .gallery-primary{transform:scale(1.035)}.shop-card .product-label{transition:transform .2s ease}.shop-card:hover .product-label{transform:rotate(-2deg) translateY(-1px)}.button:hover .ui-icon,.card-quantity-button:hover .ui-icon,.text-link:hover .ui-icon{transform:translate(2px,-2px)}nav a:hover:after{transform:scaleX(1)}.filters button{transition:transform .15s ease,background .15s ease}.filters button:hover{transform:translateY(-2px)}.street-board .sticker,.wall-stamp,.wall-joint,.cta-star{transition:transform .45s cubic-bezier(.2,.8,.2,1)}.street-board:hover .sticker-pink{transform:rotate(18deg) translateY(-4px)}.street-board:hover .sticker-blue{transform:rotate(-16deg) translateY(-3px)}.manifesto-art:hover .wall-stamp{transform:rotate(5deg)}.manifesto-art:hover .wall-joint{transform:rotate(-8deg) translateX(5px)}.final-cta:hover .cta-star{transform:rotate(32deg)}}
@media(max-width:720px){.ticker-group{gap:24px;padding:0 12px}.ticker-group b{font-size:23px}.motion-card{transform:translateY(9px);transition-duration:.3s}.motion-card.motion-visible{transform:none}}
@media(prefers-reduced-motion:reduce){.ticker>.ticker-track{animation:none!important;will-change:auto!important}.motion-card{opacity:1;transform:none!important;transition:none!important}nav a:after,.gallery-primary,.product-label,.sticker,.wall-stamp,.wall-joint,.cta-star,.button .ui-icon,.card-quantity-button .ui-icon,.text-link .ui-icon,summary>span{transition:none!important}.shop-card:hover,.shop-card:hover .gallery-primary{transform:none!important}}
@media(prefers-reduced-motion:reduce){.ticker.ticker-forced>.ticker-track{animation:calanque-ticker var(--ticker-duration,32s) linear infinite!important;animation-play-state:paused!important}.ticker.ticker-forced.motion-ready[data-moving=true]>.ticker-track{animation-play-state:running!important}html.modal-open .ticker.ticker-forced>.ticker-track{animation-play-state:paused!important}}
