/* ==========================================================================
   Переход между страницами — кросс-документные View Transitions.

   Опт-ин нужен на ОБОИХ документах (уходящем и приходящем), поэтому файл
   подключён на всех страницах. Где API не поддержан (Firefox и старые
   браузеры) — переход просто не проигрывается, навигация обычная.

   ВАЖНО: гасим ТОЛЬКО приходящую страницу (проявляем поверх). Уходящую не
   трогаем — она остаётся непрозрачной снизу. Если гасить обе (кроссфейд по
   opacity), на середине перехода обе полупрозрачные и сквозь них проступает
   белый фон — это читается как вспышка. Приходящая рисуется ПОВЕРХ уходящей,
   поэтому её проявления достаточно, а белому зазору взяться неоткуда.
   ========================================================================== */
/* ВРЕМЕННО ОТКЛЮЧЕНО для диагностики мигания.
   С этим опт-ином Chrome берёт отрисовку перехода на себя, и в момент
   навигации на кадр мелькает белое (новая страница ещё не готова). Без него
   работает встроенное «paint holding» Chrome: старая страница держится на
   экране, пока не отрисуется новая — переход без вспышки, но и без кроссфейда.
@view-transition {
  navigation: auto;
}
*/

/* Уходящая страница держится непрозрачной весь переход (без анимации), потом
   убирается — под ней никогда не видно фон. */
::view-transition-old(root) {
  animation: none;
}

/* Приходящая проявляется снизу вверх поверх уходящей. */
::view-transition-new(root) {
  animation: page-in var(--page-transition-duration) var(--reveal-ease) both;
}

@keyframes page-in {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
}

/* «Уменьшить движение» — мгновенная смена без анимации */
@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation: none;
  }
}
