/* Shared motion layer for RU / UZ / EN and all concert-theme routes. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1);--motion-hover:280ms;--motion-press:130ms}
.nm a,.nm button,.nm input,.nm .soc b,.nm .soc small,.nm .tlist li,.nm .sres li{
 transition-property:color,background-color,border-color,opacity,transform;
 transition-duration:var(--motion-hover);
 transition-timing-function:var(--motion-ease);
}
.nm .btn,.nm .lg a,.nm .ic a,.nm .soc a,.nm .ctl button,.nm .mini button,.nm .burger{position:relative;transform-origin:center}
.nm .lg a{display:inline-block}.nm .lg a.on{color:#fff}
.nm .al .cv,.nm .ga .c,.nm .mos a,.nm .gm a,.nm .igg a{overflow:clip}
.nm .al .cv .c,.nm .ga img,.nm .mos img,.nm .gm img,.nm .igg img,.nm .vd .th img,.nm .c09-bio>img{
 transition:transform 850ms var(--motion-ease),opacity 400ms ease;
}
.nm .vd .th:after,.nm .soc svg,.nm .ic svg{transition:transform 350ms var(--motion-ease),background-color 280ms ease,color 280ms ease}
.nm .bar b{transition:width 240ms linear;background:var(--accent)}
.nm .disc .cd,.nm .disc .lab{animation:spin 12s linear infinite;animation-play-state:paused}
.nm.playing .disc .cd,.nm.playing .disc .lab{animation:spin 12s linear infinite;animation-play-state:running}
.nm .mini .md{animation-play-state:paused}.nm.playing .mini .md{animation-play-state:running}
.nm .reveal.in{animation:none}
/* Preserve stateful movement of the menu, mini-player and gallery loads. */
.nm nav.mn{transition:transform 420ms var(--motion-ease)}
.nm .mini{transition:transform 450ms var(--motion-ease)}
.nm #nmig a{transition:opacity 650ms ease,transform 750ms var(--motion-ease)}
.nm .lb{display:flex;visibility:hidden;opacity:0;pointer-events:none;transition:opacity 240ms ease,visibility 240ms}
.nm .lb.open{visibility:visible;opacity:1;pointer-events:auto}
.nm .lb .body{transform:translateY(12px) scale(.985);transition:transform 350ms var(--motion-ease);max-width:100%}
.nm .lb.open .body{transform:none}
.nm h1,.nm h2,.nm h3,.nm p{transition:color 280ms ease}
/* Two soft fog planes over the photograph, under every interactive element. */
.c09-atmosphere{position:absolute;inset:0;z-index:0;overflow:clip;pointer-events:none;user-select:none;mask-image:linear-gradient(90deg,#000 0%,#000 46%,#0009 65%,transparent 87%)}
.c09-atmosphere span{position:absolute;left:-30%;bottom:-10%;width:160%;height:65%;background:url('img/stage-fog.webp') center bottom/100% 100% no-repeat;opacity:.3;animation:c09-fog-near 28s ease-in-out infinite alternate;pointer-events:none}
.c09-atmosphere span+span{left:-20%;bottom:9%;height:45%;opacity:.17;animation:c09-fog-far 37s ease-in-out infinite alternate}
.c09-intro{position:relative;z-index:2}.c09-player{z-index:3}
.nm .c09-photo{animation:c09-photo-breathe 26s ease-in-out infinite alternate;transform-origin:40% 42%}
.c09-effects-paused .c09-photo,.c09-effects-paused .c09-atmosphere span{animation-play-state:paused}
@keyframes c09-fog-near{from{transform:translate3d(-7%,3%,0) scale(1.02)}to{transform:translate3d(9%,-5%,0) scale(1.1)}}
@keyframes c09-fog-far{from{transform:translate3d(6%,2%,0) scaleX(-1) scale(1.05)}to{transform:translate3d(-10%,-7%,0) scaleX(-1) scale(1.14)}}
@keyframes c09-photo-breathe{from{transform:scale(1.012) translate3d(0,0,0)}to{transform:scale(1.045) translate3d(-.35%,-.25%,0)}}
@media(max-width:767px){.c09-atmosphere{inset:0 0 auto;height:480px;mask-image:linear-gradient(0deg,transparent,#000 12%,#000 62%,transparent 88%)}.c09-atmosphere span{width:180%;left:-40%;height:54%;opacity:.25}.c09-atmosphere span+span{left:-30%;bottom:12%;height:35%;opacity:.13}.nm .c09-photo{transform-origin:45% 38%}}
.nm .btn:active,.nm .lg a:active,.nm .ic a:active,.nm .soc a:active,.nm .ctl button:active,.nm .mini button:active,.nm .burger:active{
 transform:scale(.96);transition-duration:var(--motion-press);
}
.nm .tlist li:active,.nm .sres li:active{background:#e5192828}
@media(hover:hover) and (pointer:fine){
 .nm .btn:hover,.nm .lg a:hover,.nm .ic a:hover{transform:translateY(-2px)}
 .nm .lg a:hover,.nm .soc a:hover,.nm .ft a:hover{color:#ff6872}
 .nm .soc a:hover{transform:translateY(-3px)}
 .nm .soc a:hover small{color:#fff}
 .nm .ctl button:hover,.nm .mini button:hover{transform:scale(1.08)}
 .nm .al:hover .cv .c,.nm .ga a:hover img,.nm .mos a:hover img,.nm .gm a:hover img,.nm .igg a:hover img,.nm .vd:hover .th img{transform:scale(1.035)}
 .nm .vd:hover .th:after{transform:scale(1.1)}
 .nm .tlist li:hover,.nm .sres li:hover{background:#e519281c}
 .nm .ic a:hover svg{transform:scale(1.1)}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .nm *,.nm *:before,.nm *:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
 .nm .disc .cd,.nm .disc .lab,.nm .mini .md{animation:none!important}
 .nm .btn:hover,.nm .soc a:hover,.nm .lg a:hover,.nm .ic a:hover,.nm .ctl button:hover,.nm .mini button:hover{transform:none}
 .nm .lb .body{transform:none}
 .nm .c09-photo{animation:none!important;transform:none}
 .c09-atmosphere{display:none}
}

/* Player feedback shares the same motion on every album and language. */
.nm .tlist li{transition:background-color 380ms var(--motion-ease),color 380ms var(--motion-ease)}
.nm .tlist li>span:nth-child(2){transition:transform 380ms var(--motion-ease)}
.nm .tlist li.on{background:#e5192810}
.nm .disc{transition:transform 500ms var(--motion-ease)}
.nm .disc .lab:after{z-index:3}
.nm .lab img.nm-art-previous,.nm .md img.nm-art-previous{position:absolute;inset:0;z-index:2;pointer-events:none;width:100%;height:100%;object-fit:cover}
.nm .mini .md{position:relative}
@media(hover:hover) and (pointer:fine){.nm .disc:hover{transform:scale(1.015)}.nm .tlist li:not(.na):hover>span:nth-child(2){transform:translateX(4px)}}
@media(prefers-reduced-motion:reduce){.nm .disc:hover,.nm .tlist li:hover>span:nth-child(2){transform:none}.nm .nm-art-previous{display:none}}
