/* ===========================================
 * View Transitions — быстрый переход без сдвига макета
 *
 * Старый документ остаётся стабильным до готовности нового и ещё на короткое
 * окно стабилизации шрифтов. Затем браузер сразу показывает живой новый DOM.
 * Не назначаем отдельные transition-name
 * шапке, main, футеру и товару: их геометрия различается между шаблонами,
 * поэтому браузерный morph выглядел как скачок или «заезжающая» страница.
 * =========================================== */

@view-transition {
  navigation: auto;
}

/* У корневого снимка одинаковая геометрия на всех шаблонах. */
::view-transition-group(root) {
  animation-duration: 0.1s;
  animation-timing-function: cubic-bezier(0.2, 0.7, 0.2, 1);
}

::view-transition-image-pair(root) {
  isolation: isolate;
}

/* Старый viewport не двигаем и не масштабируем. */
::view-transition-old(root) {
  animation: none;
}

/*
 * Новый snapshot может быть снят до загрузки webfont. Не смешиваем его со
 * старым экраном: по завершении короткой root-анимации откроется уже живой DOM.
 */
::view-transition-new(root) {
  animation: none;
  opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(root),
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation-duration: 0.01s !important;
  }
}
