/* Motion uses independent translate/rotate, preserving the collage angles. */
.js .reveal,.js .reveal.visible{opacity:1;transform:none;transition:none}
.hero-art,.sticker-wall{transition:translate .35s cubic-bezier(.2,.7,.3,1)}
.button,.nav-contact{transition:background .2s,color .2s,transform .2s,box-shadow .25s}
.text-link{position:relative;transition:color .2s}
.text-link:after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.text-link:hover:after,.text-link:focus-visible:after{transform:scaleX(1)}
.video-cover img{transition:scale .65s cubic-bezier(.2,.8,.2,1),opacity .3s}
.video-cover .play-icon{transition:scale .3s,background .2s,box-shadow .3s}
.menu-toggle span{transition:rotate .25s}.menu-toggle[aria-expanded=true] span{rotate:45deg}
@media(hover:hover) and (pointer:fine){
 .video-cover:hover img{scale:1.035;opacity:1}
 .video-cover:hover .play-icon{scale:1.08;box-shadow:0 0 0 10px #ff690025}
 .button:hover,.nav-contact:hover{box-shadow:6px 6px 0 #eee}
 .record{transition:rotate 1.4s cubic-bezier(.2,.7,.2,1)}
 .music-panel:hover .record{rotate:35deg}
 .story-image{transition:rotate .6s cubic-bezier(.2,.7,.2,1)}
 .story-image:hover{rotate:2deg}
}
@media(max-width:600px) and (prefers-reduced-motion:no-preference){
 nav.open{animation:menu-enter .24s ease-out}
 @keyframes menu-enter{from{opacity:0;translate:0 -8px}to{opacity:1;translate:0 0}}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*:before,*:after{animation:none!important;transition:none!important}
 .hero-art,.sticker-wall{translate:none!important}
 .video-cover:hover img,.video-cover:hover .play-icon{scale:1}
 .music-panel:hover .record,.story-image:hover,.menu-toggle[aria-expanded=true] span{rotate:none}
}
