/* Shine Store - scroll effects (light: opacity + transform only) */
.fx-bar{position:fixed;left:0;top:0;width:100%;height:3px;z-index:60;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#0a84ff,#bf5af2,#ff2d55);pointer-events:none;will-change:transform}
.fx :is(.hero .eyebrow,.hero h1,.hero .sub,.hero .chips,.hero .cta,.sec>h2,.gsl,.ads,.step,.agt,.sell,.pick-b,.ft-row>div,.gb-in,.card,.acard,.pk):not(.fxd){opacity:0;transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transition-delay:var(--d,0s);will-change:opacity,transform}
.fx .hero .eyebrow:not(.fxd){transform:translateY(-12px)}
.fx .hero h1:not(.fxd){transform:translateY(22px)}
.fx :is(.hero .sub,.hero .chips,.hero .cta,.gsl,.ads,.step,.agt,.sell,.ft-row>div,.gb-in):not(.fxd){transform:translateY(24px)}
.fx .sec>h2:not(.fxd){transform:translateX(-26px)}
.fx :is(.card,.acard,.pk):not(.fxd){transform:translateY(32px) scale(.96)}
.fx .grid .card:nth-child(odd):not(.fxd){transform:translate(-22px,22px) scale(.96)}
.fx .grid .card:nth-child(even):not(.fxd){transform:translate(22px,22px) scale(.96)}
.fx .pick-b:not(.fxd){transform:scale(.92)}
.fx .fxin:not(.fxd){opacity:1!important;transform:none!important}
@media(prefers-reduced-motion:no-preference){
@keyframes fxfloat{0%,100%{translate:0 0}50%{translate:0 -6px}}
@keyframes fxkb{from{scale:1}to{scale:1.08}}
@keyframes fxbob{0%,100%{translate:0 0;rotate:0deg}25%{translate:0 -3px;rotate:-5deg}75%{translate:0 -2px;rotate:5deg}}
.poster.live{animation:fxfloat 3.6s ease-in-out infinite}
.card:nth-child(3n+2) .poster.live{animation-duration:4.2s;animation-delay:-1.3s}
.card:nth-child(3n) .poster.live{animation-duration:3.9s;animation-delay:-2.4s}
.acard .aimg.live img{animation:fxkb 9s ease-in-out infinite alternate}
.pick-ic.live{animation:fxbob 3.2s ease-in-out infinite}
.card:active .poster{scale:.92;transition:scale .15s}
}
