/* Each section owns its variables; nested sections can choose their own effect. */
[data-section-motion]{isolation:isolate}
[data-section-motion]:not(.site-header){position:relative}
.section-motion-background{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;border-radius:inherit}
.section-motion-background::before,.motion-preview::before{content:'';position:absolute;inset:-30%;pointer-events:none;background:linear-gradient(120deg,color-mix(in srgb,var(--motion-color-one) 20%,transparent),transparent 45%,color-mix(in srgb,var(--motion-color-two) 18%,transparent));background-size:200% 200%;opacity:.8;animation:motion-gradient var(--motion-background-seconds,20s) ease-in-out infinite}
[data-motion-background=none]>.section-motion-background{display:none}
[data-motion-background=aurora]>.section-motion-background::before,.motion-preview[data-background=aurora]::before{background:radial-gradient(ellipse at 25% 35%,color-mix(in srgb,var(--motion-color-one) 26%,transparent),transparent 55%),radial-gradient(ellipse at 75% 65%,color-mix(in srgb,var(--motion-color-two) 23%,transparent),transparent 55%);animation-name:motion-aurora}
[data-motion-background=glow]>.section-motion-background::before,.motion-preview[data-background=glow]::before{background:radial-gradient(ellipse at center,color-mix(in srgb,var(--motion-color-one) 22%,transparent),transparent 60%),radial-gradient(ellipse at 70% 40%,color-mix(in srgb,var(--motion-color-two) 18%,transparent),transparent 55%);animation-name:motion-ambient}
@keyframes motion-gradient{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes motion-aurora{0%,100%{translate:-4% 0;rotate:-3deg}50%{translate:4% 2%;rotate:3deg}}
@keyframes motion-ambient{0%,100%{opacity:.45;scale:.97}50%{opacity:.95;scale:1.03}}

.section-motion-button{animation-duration:var(--motion-button-seconds,4.5s);animation-timing-function:cubic-bezier(.37,0,.63,1);animation-iteration-count:infinite;transform-origin:center}
.section-motion-button[data-motion-button=none]{animation-name:none}
.section-motion-button[data-motion-button=breathe],.motion-preview[data-buttons=breathe] .motion-preview-button{animation-name:motion-button-breathe}
.section-motion-button[data-motion-button=float],.motion-preview[data-buttons=float] .motion-preview-button{animation-name:motion-button-float}
.section-motion-button[data-motion-button=glow],.motion-preview[data-buttons=glow] .motion-preview-button{animation-name:motion-button-glow}
.section-motion-button[data-motion-button=tilt],.motion-preview[data-buttons=tilt] .motion-preview-button{animation-name:motion-button-tilt}
@keyframes motion-button-breathe{0%,100%{scale:1}50%{scale:var(--motion-button-scale,1.04)}}
@keyframes motion-button-float{0%,100%{translate:0 0}50%{translate:0 calc((var(--motion-button-scale,1.04) - 1)*-100px)}}
@keyframes motion-button-glow{0%,100%{filter:brightness(1)}50%{filter:brightness(calc(1 + (var(--motion-button-scale,1.04) - 1)*3));box-shadow:0 0 20px #00d4ef20}}
@keyframes motion-button-tilt{0%,100%{rotate:0deg}35%{rotate:calc((var(--motion-button-scale,1.04) - 1)*-40deg)}65%{rotate:calc((var(--motion-button-scale,1.04) - 1)*40deg)}}
.section-motion-artwork{animation-duration:var(--motion-artwork-seconds,6s);animation-timing-function:cubic-bezier(.37,0,.63,1);animation-iteration-count:infinite;transform-origin:center}
.section-motion-artwork[data-motion-art=none]{animation-name:none}
.section-motion-artwork[data-motion-art=breathe],.motion-preview[data-artwork=breathe] .motion-preview-art{animation-name:motion-art-breathe}
.section-motion-artwork[data-motion-art=float],.motion-preview[data-artwork=float] .motion-preview-art{animation-name:motion-art-float}
.section-motion-artwork[data-motion-art=glow],.motion-preview[data-artwork=glow] .motion-preview-art{animation-name:motion-art-glow}
.section-motion-artwork[data-motion-art=tilt],.motion-preview[data-artwork=tilt] .motion-preview-art{animation-name:motion-art-tilt}
@keyframes motion-art-breathe{0%,100%{scale:1}50%{scale:var(--motion-artwork-scale,1.04)}}
@keyframes motion-art-float{0%,100%{translate:0 0}50%{translate:0 calc(var(--motion-artwork-distance,4px)*-1)}}
@keyframes motion-art-glow{0%,100%{filter:brightness(1)}50%{filter:brightness(calc(1 + (var(--motion-artwork-scale,1.04) - 1)*3))}}
@keyframes motion-art-tilt{0%,100%{rotate:0deg}35%{rotate:calc((var(--motion-artwork-scale,1.04) - 1)*-35deg)}65%{rotate:calc((var(--motion-artwork-scale,1.04) - 1)*35deg)}}
.section-motion-artwork.is-playing{animation-name:none}
[data-motion-platform=none]{animation-name:none}
[data-motion-platform=breathe]{animation-duration:var(--platform-seconds,1.6s);animation-delay:0s}
[data-motion-platform=glow]{animation-duration:var(--platform-seconds,1.6s);animation-delay:0s}
@keyframes motion-platform-breathe{0%,100%{scale:1}50%{scale:var(--platform-scale,1.08)}}
@keyframes motion-platform-glow{0%,100%{filter:brightness(1)}50%{filter:brightness(calc(1 + (var(--platform-scale,1.08) - 1)*3))}}
.section-motion-button:focus-visible,[data-pulse-item]:focus-visible{animation-play-state:paused}
[data-section-motion].motion-offscreen .section-motion-button,[data-section-motion].motion-offscreen .section-motion-artwork,[data-section-motion].motion-offscreen [data-pulse-item],[data-section-motion].motion-offscreen>.section-motion-background::before,body.motion-page-hidden .section-motion-button,body.motion-page-hidden .section-motion-artwork,body.motion-page-hidden [data-pulse-item],body.motion-page-hidden .section-motion-background::before{animation-play-state:paused}

.reveal-ready[data-motion-entry]{transition-duration:var(--motion-entry-seconds,.75s)}
.reveal-pending[data-motion-entry=fade]{opacity:0;transform:none}
.reveal-pending[data-motion-entry=rise]{opacity:0;transform:translateY(24px)}
.reveal-pending[data-motion-entry=slide]{opacity:0;transform:translateX(-24px)}
.reveal-pending[data-motion-entry=zoom]{opacity:0;transform:scale(.96)}
.reveal-ready.reveal-shown[data-motion-entry]{opacity:1;transform:none}
.featured-art.reveal-shown[data-motion-entry]{transform:rotate(-2deg)}

#shop[data-motion-carousel=slide] .music-slide[data-position=left]{transform:translate(-50%,-50%) scale(.8)}
#shop[data-motion-carousel=slide] .music-slide[data-position=right]{transform:translate(-50%,-50%) scale(.8)}
#shop:is([data-motion-carousel=fade],[data-motion-carousel=zoom],[data-motion-carousel=instant]) .music-slide{left:50%;transition:opacity var(--music-transition,1.1s),transform var(--music-transition,1.1s);opacity:0;pointer-events:none;filter:none;transform:translate(-50%,-50%)}
#shop:is([data-motion-carousel=fade],[data-motion-carousel=zoom],[data-motion-carousel=instant]) .music-slide[data-position=current]{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)}
#shop[data-motion-carousel=zoom] .music-slide:not([data-position=current]){transform:translate(-50%,-50%) scale(.92)}
#shop[data-motion-carousel=instant] .music-slide{transition:none}
#artista .artist-slide{transition:opacity var(--motion-carousel-transition,1.1s) ease,transform var(--motion-carousel-transition,1.1s) ease}
#artista[data-motion-carousel=slide] .artist-slide{transform:translateX(8%)}
#artista[data-motion-carousel=zoom] .artist-slide{transform:scale(1.04)}
#artista:is([data-motion-carousel=slide],[data-motion-carousel=zoom]) .artist-slide.is-active{transform:none}
#artista[data-motion-carousel=instant] .artist-slide{transition:none}
.release-platform-ribbon[data-motion-carousel=left] .ribbon-scroll{animation-direction:reverse}
.release-platform-ribbon[data-motion-carousel=pingpong] .ribbon-scroll{animation-direction:alternate;animation-timing-function:ease-in-out}
.release-platform-ribbon:is([data-motion-carousel=static],[data-motion-auto=false]) .ribbon-scroll{animation:none;transform:none;width:100%}
.release-platform-ribbon:is([data-motion-carousel=static],[data-motion-auto=false]) .ribbon-cycle{min-width:0;width:100%;padding:var(--ribbon-padding-y,8px) 20px}
.release-platform-ribbon:is([data-motion-carousel=static],[data-motion-auto=false]) :is(.ribbon-cycle,.ribbon-unit)[aria-hidden]{display:none}
.release-platform-ribbon:is([data-motion-carousel=static],[data-motion-auto=false]) .ribbon-unit{flex-wrap:wrap;white-space:normal;text-align:center}
.release-platform-ribbon:is([data-motion-carousel=static],[data-motion-auto=false]) .ribbon-platforms{flex-wrap:wrap;max-width:100%;gap:4px}
.release-platform-ribbon .ribbon-scroll:has(:focus-visible),.release-platform-ribbon.is-paused .ribbon-scroll{animation-play-state:paused}

@media(prefers-reduced-motion:reduce){
 .section-motion-button,.section-motion-artwork,[data-pulse-item],.section-motion-background::before,.motion-preview::before,.motion-preview-button,.motion-preview-art{animation:none!important;scale:1!important;translate:0 0!important;rotate:0deg!important}
 .reveal-pending[data-motion-entry]{opacity:1;transform:none}.reveal-ready[data-motion-entry],#artista .artist-slide,#shop .music-slide{transition:none!important}
}
