/* Движение главного приложения (31.10.2026, просьба владельца: «эмблемы и движение в главное приложение тоже»).
   Приложение рисует вкладки скриптом заново при каждом переключении, поэтому app-fx.js помечает свежие строки и карточки
   классом pr-in, а здесь они по очереди появляются. Всё на animation (не на скрытом исходном состоянии): если скрипт не
   загрузился, элементы просто на месте. «Уменьшить анимацию» у владельца включена Windows-ом, поэтому всё здесь работает при любых настройках:
   сдвиги небольшие (до 14 px), вечных циклов нет. */

@keyframes pr-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes pr-in-row { from { opacity: 0; transform: translateX(-12px); } to { opacity: 1; transform: none; } }
@keyframes pr-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes pr-crest { 0% { opacity: 0; transform: scale(.4) rotate(-10deg); } 100% { opacity: 1; transform: none; } }

.pr-in { animation: pr-in .5s cubic-bezier(.2, .8, .2, 1) backwards; animation-delay: calc(var(--i, 0) * 38ms); }
tr.pr-in { animation-name: pr-in-row; }

/* Полосы шансов и сравнения растут слева направо */
.rf-row [aria-hidden="true"] > span,
#forecastView .rounded-full > span.block,
#cards .rounded-full > span.block { transform-origin: left center; animation: pr-grow .9s cubic-bezier(.2, .8, .2, 1) backwards; animation-delay: calc(var(--i, 0) * 38ms + 120ms); }

/* Эмблемы выскакивают вслед за строкой */
.pr-in img[src*="/assets/crests/"], .pr-in img.object-contain { animation: pr-crest .6s cubic-bezier(.2, 1.35, .3, 1) backwards; animation-delay: calc(var(--i, 0) * 38ms + 100ms); }

/* Наведение: эмблема подрастает, строка матча чуть приподнимается */
img.object-contain { transition: transform .25s cubic-bezier(.2, 1.4, .3, 1); }
@media (hover: hover) {
  tr:hover img.object-contain, a:hover > img.object-contain, .rf-row:hover img.object-contain, article:hover img.object-contain { transform: scale(1.16) rotate(-3deg); }
  .rf-row { transition: transform .25s ease, box-shadow .25s ease; }
  .rf-row:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0, 0, 0, .35), 0 0 22px rgba(52, 211, 153, .1); }
}

/* Строка прогноза тура: эмблема и название в один ряд */
#forecastView .rf-row img.object-contain { filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .55)); }
