/* BYME.AM — единая система движения: короткие, спокойные переходы (только opacity/transform). */
:root{--m-fast:.16s;--m-base:.26s;--m-slow:.42s;--m-ease:cubic-bezier(.2,.7,.2,1)}
/* вход страницы: контент появляется по очереди — заголовок → фильтры → карточки; шапка не мигает */
@keyframes m-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes m-in-soft{from{opacity:0}to{opacity:1}}
.js main{animation:m-in var(--m-base) var(--m-ease) both}
.js main .pagehead,.js main .ph{animation:m-in-soft .3s .04s var(--m-ease) both}
.js main .flt,.js main .bar{animation:m-in .3s .08s var(--m-ease) both}
/* выход: быстро гасим контент и уходим по ссылке */
.js body.m-leave main{opacity:0;transform:translateY(-4px);transition:opacity var(--m-fast) ease-in,transform var(--m-fast) ease-in;pointer-events:none}
/* выпадающие слои: плавно, без display:none */
.mega{display:block!important;opacity:0;visibility:hidden;transform:translateY(8px);pointer-events:none;transition:opacity var(--m-base) var(--m-ease),transform var(--m-base) var(--m-ease),visibility 0s linear var(--m-base)}
.has-mega:hover .mega,.has-mega:focus-within .mega{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:.06s,.06s,0s}
.mm[hidden],.so[hidden]{display:flex!important;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--m-base) var(--m-ease),visibility 0s linear var(--m-base)}
.so[hidden]{display:block!important}
.mm,.so{transition:opacity var(--m-base) var(--m-ease),visibility 0s}
.mm:not([hidden]),.so:not([hidden]){animation:m-pop var(--m-base) var(--m-ease) both}
@keyframes m-pop{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
.hq-r{transition:opacity var(--m-fast) ease,transform var(--m-fast) ease}
.hq-r[hidden]{display:block!important;opacity:0;transform:translateY(-4px);visibility:hidden;pointer-events:none;transition:opacity var(--m-fast) ease,transform var(--m-fast) ease,visibility 0s linear var(--m-fast)}
.toast{transition:opacity var(--m-base) var(--m-ease),transform var(--m-base) var(--m-ease)}
body.flt-open::after{animation:m-in-soft var(--m-base) ease both}
/* смена фото в галерее */
.gal-i.m-swap{animation:m-swap .28s var(--m-ease) both}
@keyframes m-swap{from{opacity:.15;transform:scale(.985)}to{opacity:1;transform:none}}
/* корзина: отклик кнопки, «полёт» в корзину, счётчик */
.m-added{animation:m-btn .45s var(--m-ease)}
@keyframes m-btn{0%{transform:scale(1)}35%{transform:scale(.965)}100%{transform:scale(1)}}
.m-dot{position:fixed;z-index:200;width:14px;height:14px;border-radius:50%;background:var(--gg,#1EA354);box-shadow:0 4px 14px #1ea35466;pointer-events:none;left:0;top:0}
.m-bump{animation:m-bump .5s var(--m-ease)}
@keyframes m-bump{0%{transform:scale(1)}30%{transform:scale(1.22)}60%{transform:scale(.95)}100%{transform:scale(1)}}
[data-cart-count].m-bump{animation-name:m-bump}
/* ♥ */
.pc-fav.on svg{animation:m-heart .35s var(--m-ease)}
@keyframes m-heart{0%{transform:scale(.7)}60%{transform:scale(1.25)}100%{transform:scale(1)}}
/* слабые устройства и «уменьшить движение» */
@media (prefers-reduced-motion:reduce){
  .js main,.js main *,.mm,.so,.mega,.hq-r,.gal-i.m-swap,.m-added,.m-bump,.pc-fav.on svg{animation:none!important}
  .js body.m-leave main{transition:none;opacity:1;transform:none}
  .mega,.mm[hidden],.so[hidden],.hq-r[hidden]{transition:none!important}
}
@media (max-width:760px){
  .js main .flt,.js main .bar{animation:none}
  .js main{animation-duration:.2s}
}
.m-lite main,.m-lite main *{animation:none!important}
.m-lite.m-leave main{transition:none}
