/* ============================================================================
   ОКНО НОМИНАЦИЙ НА ТВ-ВИДАХ — одно на все режимы (как Result Window главной сцены Unity:
   ResultWindow.cs, SoloContent.cs, DuoContent.cs, TournamentPlaceItem.cs). Скрипт —
   connection/_Scripts/Utils/PBTvAwards.js; картинки — public/images_web/tv/awards/
   (tools/export_tv_awards.py). Переход к окну — чёрный круг (SimpleCircleTransition).

   Холст Unity 2208×1242 вписан в окно целиком; стадия — во всё окно (--tva-w × --tva-h), элементы
   держатся своих краёв, как якоря Unity. Места ставит скрипт по координатам холста; здесь — вид.
   Приставка tva- — своя (с телефонными окнами style.css не пересекается).
   ============================================================================ */
:root {
  --tva-head-ms: 1000;          /* заголовок номинации въезжает справа / уезжает, мс (titleMoveDuration 1, InOutQuint) */
  --tva-head-wait: 2000;        /* после въезда заголовка — пауза до игрока, мс (без озвучки; в Unity 2 с) */
  --tva-hold: 3000;             /* номинация на экране после лучей, мс (Unity 3 с) */
  --tva-hold-table: 5000;       /* «Победитель» / «Лучший зритель» с таблицей мест, мс (winnerWithTableDisplayDuration 5) */
  --tva-rays-a: 0.039;          /* лучи за игроком: непрозрачность (Highlight, цвет картинки α 0.039) */
  --tva-rays-turn: 240s;        /* …полный оборот (Rotator −1.5°/с) */
  --tva-table-step: 150;        /* таблица мест: плашки выезжают одна за другой через, мс (tournamentShowCascadeDelay) */
  --tva-table-ms: 500;          /* …за, мс (OutQuint) */
  --tva-place-x: 74px;          /* …цифра места от левого края плашки; аватарка и ник едут вместе с ней (Unity 74) */
  --tva-name-w: 165px;          /* …ник: длина поля — ник длиннее уменьшается (Unity 165.85; кегль 69.6) */
  --tva-circle-ms: 1000;        /* переход: круг раскрывается за, мс (expandDuration 1, InOutExpo) */
  --tva-circle-hold: 500;       /* …держится на весь экран, мс (peakDelay) */
  --tva-circle-out: 800;        /* …сходится за, мс (Unity shrinkDuration 0.5 InOutExpo — окно появлялось рывком; здесь InOutCubic) */
}

.tva { position: absolute; inset: 0; pointer-events: none; z-index: 5; display: none; overflow: hidden; background: #000; }
.tva.is-on { display: block; }
/* «Закрыть» — слева снизу над нижней панелью сайта: назад на экран ожидания. Вне холста — как кнопки сайта. */
.tva-close { position: absolute; z-index: 2; width: auto; margin: 0; pointer-events: auto;
  left: var(--tva-close-x, 24px); bottom: calc(var(--pb-bottom-bar-height, 76px) + env(safe-area-inset-bottom, 0px) + var(--tva-close-y, 24px)); }
/* Круг перехода: размер (до углов окна) ставит скрипт, растёт и сходится масштабом. */
.tva-circle { position: absolute; left: 50%; top: 50%; width: 0; height: 0; z-index: 6; border-radius: 50%; background: #000;
  transform: scale(0); pointer-events: none; will-change: transform; }
.tva-stage { position: absolute; left: 0; top: 0; width: 2208px; transform-origin: 0 0;
  font-family: 'Bebas Neue', 'Bebas Neue Pro', Impact, sans-serif; line-height: 1; color: #F7E8DC; }
.tva-stage > *, .tva-stage div, .tva-stage i { position: absolute; }
.tva img { max-width: none; }
.tva-sc { font-size: 0.8em; }
.tva-text { display: flex; align-items: center; justify-content: center; text-align: center; white-space: nowrap; }
.tva-text > .tva-in { position: static; display: block; }

/* Фон, лучи, дерево, солнце — порядок отрисовки Unity: Background, Highlight, Tree, BIrd. */
.tva-bg { left: calc(var(--tva-w) / 2); top: calc(var(--tva-h) / 2 - 7px); translate: -50% -50%;
  height: max(1266.9px, var(--tva-h), calc(var(--tva-w) / 2.7778));
  width: calc(max(1266.9px, var(--tva-h), calc(var(--tva-w) / 2.7778)) * 2.7778);
  background: url('/images_web/tv/awards/bg.webp') center / 100% 100% no-repeat; }
.tva-hl { opacity: 0; }
.tva-rays { inset: 0; opacity: var(--tva-rays-a); background: url('/images_web/tv/awards/rays.svg') center / 100% 100% no-repeat;
  animation: tva-spin var(--tva-rays-turn) linear infinite; }
@keyframes tva-spin { to { rotate: 360deg; } }
.tva-tree { background: #D6D1CB url('/images_web/tv/awards/tree.webp') center / 100% 100% no-repeat; background-blend-mode: multiply;
  -webkit-mask: url('/images_web/tv/awards/tree.webp') center / 100% 100% no-repeat; mask: url('/images_web/tv/awards/tree.webp') center / 100% 100% no-repeat; }
.tva-sun { rotate: 10.75deg; background: url('/images_web/tv/awards/sun.webp') center / 100% 100% no-repeat; }

/* Плашки: белые картинки Unity с цветом — маской. tab — ник и опыт (mainmenu_chestno_button), plate — места и блеф (Description). */
.tva-tab, .tva-plate { -webkit-mask: var(--tva-mask) center / 100% 100% no-repeat; mask: var(--tva-mask) center / 100% 100% no-repeat; }
.tva-tab { --tva-mask: url('/images_web/tv/awards/tab.webp'); }
.tva-plate { --tva-mask: url('/images_web/tv/awards/plate.webp'); }

/* Игрок (Solo / Duo Content): аватарка в чёрном круге выезжает снизу (маска — круг), плашка ника растёт. */
.tva-avatab { border-radius: 50%; background: #000; overflow: hidden; }
.tva-avatab img { position: absolute; display: block; }
.tva-name { rotate: -2.864deg; scale: 0; }
.tva-name.is-cream { background: #F7E8DC; }
.tva-name.is-black { background: #000; }
.tva-name .tva-text { font-weight: 400; }
.tva-name.is-cream .tva-text { color: #000; }
.tva-name.is-black .tva-text { color: #F7E8DC; }
.tva-duo .tva-ava1 { filter: brightness(0.396); }   /* Avatar Icon 1 — цвет #656565 */

/* Заголовок номинации: чёрная полоса по ширине текста от правого края, въезжает справа. */
.tva-head { right: 90px; top: 72.51px; height: 171.86px; display: flex; align-items: center; background: #000;
  padding: 0 76.19px 0 81.28px; translate: 1640px 0; }
.tva-head > .tva-in { position: static; font-size: 111.1px; font-weight: 400; color: #F7E8DC; white-space: nowrap; }
/* Плашка опыта (+100 exp) — у правого верхнего края, въезжает вместе с заголовком. */
.tva-exp { right: 109.28px; top: 39.22px; width: 234.84px; height: 55.16px; background: #F7E8DC; translate: 456px 0; display: none; }
.tva-exp.is-on { display: block; }
.tva-exp .tva-text { left: 17.42px; top: 5.32px; width: 200px; height: 44.52px; color: #000; font-weight: 400; }

/* Описание номинации («Обманул 4 игроков») и «лучший ответ» (вопрос + блеф на плашке). */
.tva-desc, .tva-q { color: #fff; align-items: flex-start; white-space: normal; overflow-wrap: anywhere; opacity: 0; }
.tva-desc { font-weight: 300; }
.tva-q { font-weight: 400; }
.tva-ans { rotate: -5.61deg; scale: 0; background: #000; }
.tva-ans .tva-text { color: #fff; font-weight: 400; white-space: normal; overflow-wrap: anywhere; }

/* Таблица мест: плашки лесенкой справа (первое место — кремовая), выезжают справа каскадом. */
.tva-row { width: 1309.62px; height: 121.32px; background: #000; overflow: hidden; }
.tva-row.is-first { background: #F7E8DC; }
.tva-row .tva-text { justify-content: flex-start; text-align: left; font-size: 69.6px; color: #F7E8DC; }
.tva-row.is-first .tva-text { color: #543D36; }
.tva-row .tva-place { font-weight: 700; }
.tva-row .tva-rname { font-weight: 400; }
.tva-row .tva-score { justify-content: flex-end; text-align: right; color: #4C4C4C !important; font-weight: 400; }
.tva-row img { position: absolute; display: block; width: 155.84px; height: 155.84px; }
