/* ── Авторские движения разворотов (19.10) ──────────────────────
   Одно главное движение на разворот, 0,6–1,4 с, мягкое торможение.
   Запуск — .spread[data-in]; уход листа снимает пометку, и при
   возвращении движение отыгрывает заново. «Уменьшить движение» —
   всё сразу на месте. */
@media (prefers-reduced-motion: no-preference) {
  .spread[data-reveal] { --an-ease: cubic-bezier(.16, 1, .3, 1); }
  /* общий сброс: пока лист вне экрана, всё в исходной позиции без анимации */
  .spread[data-reveal]:not([data-in]) * { transition-delay: 0s !important; }

  /* Ж01 · двери двух домов: MAISON выезжает из-за шва влево, ROUGE вправо */
  #zh01 .cv-name span { display: inline-block; transition: clip-path 1.3s var(--an-ease) .25s, transform 1.3s var(--an-ease) .25s; }
  #zh01:not([data-in]) .cv-name span:first-child { clip-path: inset(0 0 0 100%); transform: translateX(calc(60 * var(--u))); }
  #zh01:not([data-in]) .cv-name span:last-child { clip-path: inset(0 100% 0 0); transform: translateX(calc(-60 * var(--u))); }
  #zh01[data-in] .cv-name span { clip-path: inset(0 0 0 0); transform: none; }
  #zh01 .cv-sign, #zh01 .cv-addr { transition: opacity .8s ease 1.1s, transform .8s var(--an-ease) 1.1s; }
  #zh01:not([data-in]) .cv-sign, #zh01:not([data-in]) .cv-addr { opacity: 0; transform: translateY(calc(-10 * var(--u))); }

  /* Ж02 · подпись пишется слева направо */
  #zh02 .sign__mark { transition: clip-path 1.6s cubic-bezier(.6, 0, .3, 1) .7s; }
  #zh02:not([data-in]) .sign__mark { clip-path: inset(0 100% 0 0); }
  #zh02[data-in] .sign__mark { clip-path: inset(0 0 0 0); }

  /* Ж03 · портрет открывается шторкой снизу, блюдо медленно наезжает */
  #zh03 .rm-restaurant-chef__photo { transition: clip-path 1.2s var(--an-ease) .3s; }
  #zh03:not([data-in]) .rm-restaurant-chef__photo { clip-path: inset(100% 0 0 0); }
  #zh03[data-in] .rm-restaurant-chef__photo { clip-path: inset(0 0 0 0); }
  #zh03 [data-slot="dish-full"] img { transition: transform 3s var(--an-ease); }
  #zh03:not([data-in]) [data-slot="dish-full"] img { transform: scale(1.1); }

  /* Ж04 · меню «кладут на стол»: въезжает снизу с поворотом, блюда проступают по очереди */
  #zh04 .mr-cover, #zh04 .mr-card__over { transition: transform 1.2s var(--an-ease) .15s, opacity .6s ease .15s; }
  #zh04:not([data-in]) .mr-cover, #zh04:not([data-in]) .mr-card__over { transform: translateY(calc(120 * var(--u))) rotate(-7deg); opacity: 0; }
  #zh04 .mr-card__list li { transition: opacity .6s ease, transform .6s var(--an-ease); transition-delay: calc(1s + var(--k) * 110ms); }
  #zh04:not([data-in]) .mr-card__list li { opacity: 0; transform: translateY(calc(8 * var(--u))); }

  /* Ж05 · буквы LE BAR поднимаются из-под края по одной */
  #zh05 .bj-giant .an-ch { display: inline-block; transition: transform 1s var(--an-ease); transition-delay: calc(.35s + var(--k) * 70ms); }
  #zh05:not([data-in]) .bj-giant .an-ch { transform: translateY(115%); }

  /* Ж06 · рамка распускается, затем девушка */
  #zh06 .mr-floral { transition: opacity 1.4s ease .1s, transform 1.8s var(--an-ease) .1s; }
  #zh06:not([data-in]) .mr-floral { opacity: 0; transform: scale(1.12); }
  #zh06 .v2-media img[src*="fashion-plate"] { transition: clip-path 1.1s var(--an-ease) .7s; }
  #zh06:not([data-in]) .v2-media img[src*="fashion-plate"] { clip-path: inset(100% 0 0 0); }
  #zh06[data-in] .v2-media img[src*="fashion-plate"] { clip-path: inset(0 0 0 0); }

  /* Ж07 · даты перелистываются табло, LE SALON встаёт по буквам */
  #zh07 .v2-ag3__date { perspective: calc(400 * var(--u)); }
  #zh07 .v2-ag3__date b { display: inline-block; transform-origin: 50% 0; transition: transform .9s var(--an-ease), opacity .4s ease; transition-delay: calc(.3s + var(--k) * 160ms); }
  #zh07:not([data-in]) .v2-ag3__date b { transform: rotateX(-90deg); opacity: 0; }
  #zh07 .v2-ag3__mark .an-ch { display: inline-block; transition: transform 1s var(--an-ease), opacity .5s ease; transition-delay: calc(.5s + var(--k) * 60ms); }
  #zh07:not([data-in]) .v2-ag3__mark .an-ch { transform: translateY(60%); opacity: 0; }

  /* Ж08 · строки шапки выезжают из-под маски, девушка с пластинкой — справа */
  #zh08 .mr-h3__h .an-line { display: block; overflow: hidden; padding-bottom: .24em; margin-bottom: -.24em; }
  #zh08 .mr-h3__h .an-in { display: inline-block; transition: transform 1.1s var(--an-ease); transition-delay: calc(.15s + var(--k) * 120ms); }
  #zh08:not([data-in]) .mr-h3__h .an-in { transform: translateY(105%); }
  #zh08 .mr-h3__fig { transition: transform 1.4s var(--an-ease) .45s, opacity .8s ease .45s; }
  #zh08:not([data-in]) .mr-h3__fig { transform: translateX(calc(140 * var(--u))) rotate(6deg); opacity: 0; }

  /* Ж10 · имя дома проступает по буквам, карта мягко наезжает */
  #zh10 .v2-back__name .an-ch { display: inline-block; transition: opacity .7s ease, filter .9s ease; transition-delay: calc(.2s + var(--k) * 70ms); }
  #zh10:not([data-in]) .v2-back__name .an-ch { opacity: 0; filter: blur(calc(6 * var(--u))); }
  #zh10 .v2-back__map img { transition: transform 2.6s var(--an-ease); }
  #zh10:not([data-in]) .v2-back__map img { transform: scale(1.08); }
}
