/* ============================================================================
   ТВ-ВИД «МЕЖДУ НАМИ» (GM1) НА БОЛЬШОМ ЭКРАНЕ — телевизор Unity в браузере.
   Скрипт: connection/_Scripts/Game/Bt_Tv.js. Картинки: /images_web/tv/gm1/
   (выгружены из Unity: tools/export_gm1_tv_sprites.py, цвет спрайтов запечён;
   плашки — маски, цвет здесь). Костёр — общий со «Сказкой» (/images_web/tv/gm8/).

   Сцена — 1920×1080: числа — пиксели экрана 1920×1080 при камере в покое
   (перспективная, FOV 60, cameraAnimation[0] = (0, 0.14, −0.65)); сняты с
   Game Mode 1.prefab и сцены GameMode1.unity. Слои на разной глубине — свои
   планы (.bttv-plane), их двигает камера (Bt_Tv.js). Порядок в разметке и
   z-index = порядок отрисовки Unity: слои сортировки Background → Front →
   (вспышка: холст на слое Front, порядок 1) → Overlay.

   Чего в Unity на экране нет, того нет и здесь: заставки «Честно говоря»
   (объект выключен), курицы (выключен её родитель), кружков загрузки, второй
   луны «Правды или лжи» (слой Default — под фоном), покадрового облачка птиц.

   Ручки в :root — только то, чего в Unity нет: ведущий ещё и игрок.
   ============================================================================ */
:root {
  --bttv-min-w: 1000;         /* ТВ-вид — с такой ширины окна, px; уже — телефонные окна */
  --bttv-min-aspect: 1.2;     /* …и окно не уже этого: ширина / высота */
  /* Костёр — видео firewood.webm (как в «Сказке») вместо частиц FX_Fire_05. */
  --bttv-fire-video: url('/images_web/tv/gm8/firewood.webm');
  --bttv-fire-x: 1880px;         /* видео: центр по горизонтали (px сцены; центр огня Unity 1879.9) */
  --bttv-fire-y: 1391px;         /* видео: низ (огонь Unity — 1389) */
  --bttv-fire-w: 327px;          /* видео: ширина (×1.64 к «Сказке»: огонь здесь крупнее) */
  --bttv-logs: 0;                /* брёвна из Unity под огнём: 1 — есть, 0 — нет */
  --bttv-embers: 1;              /* искры из Unity над огнём: 1 — есть, 0 — нет */
  /* Окно очков после раунда (на десктопе; на телефоне — таблица мест): встаёт за деревом,
     дерево уезжает вниз. Само окно — общее для всех режимов: tv-score.css (--tvs-*). */
  --bttv-score-scene: tree;      /* ВРЕМЕННО два варианта: tree — дерево уезжает вниз, окно за ним;
                                    camera — камера поднимается к точке старта заставки, окно на экране */
  --bttv-tree-ms: 850;           /* дерево уезжает вниз и возвращается (или камера летит вверх и обратно), мс */
  /* «Кто из нас», итог: блок имён тех, кто за победителя, и сколько итог держится. */
  --bttv-who-cam-ms: 2500;       /* камера летит к итогу, мс (Unity: 2 с InOutQuart) */
  --bttv-who-cam-ease: outQuint; /* …кривая: резкий старт, плавный доезд (outQuad/outCubic/outQuart/outQuint/outExpo, inOutQuart — как Unity) */
  --bttv-who-scale: 1.35;        /* блок имён: размер (1 — как имена «Правды или лжи») */
  /* «Правда» / «Ложь» нажимаются (ведущий голосует): подсветка под мышью. */
  --bttv-hover: 0.18;
  --bttv-pick-bounce: 1.045;     /* «Правда» / «Ложь»: баунс по клику — максимальный масштаб (как плитка квиза) */
  --bttv-pick-ms: 300ms;         /* …длительность */
  /* Оптимизации (29.10): вид тот же; 0 — откат к прежнему способу (Bt_Tv.js, optSync). */
  --bttv-opt-cam: 1;             /* полёт камеры: планы на видеокарте, сцена не перерисовывается каждый кадр */
  --bttv-opt-flash: 1;           /* вспышка: прозрачность двух слоёв вместо перекраски экрана кадрами */
  --bttv-opt-rays: 1;            /* лучи: вращается слой, а не угол узора (узор не перерисовывается) */
  --bttv-opt-embers: 1;          /* искры: спрайт окрашен один раз, без временного холста на каждую искру */
  --bttv-opt-idle: 1;            /* цикл частиц спит, когда частиц нет */
  --bttv-opt-tree: 1;            /* дерево уезжает: сдвигаются сами элементы, а не общая переменная */
}

.bttv {
  position: fixed; inset: 0; z-index: 25;
  overflow: hidden; display: none;
  /* под фоном Unity — его же цвета сверху и снизу (на случай очень высокого окна) */
  background: linear-gradient(#212836, #887454);
  -webkit-user-select: none; user-select: none;
}
body.bttv-on .bttv { display: block; }
.bttv.is-cover::after { content: ''; position: absolute; inset: 0; background: rgba(0, 0, 0, .55); }
.bttv img { max-width: none; }

.bttv-stage {
  position: absolute; left: 50%; top: 50%;
  width: 1920px; height: 1080px; margin: -540px 0 0 -960px;
  transform-origin: 50% 50%;
  font-family: 'Bebas Neue', 'Bebas Neue Pro', Impact, sans-serif;
  line-height: 1;
}
.bttv-plane, .bttv-layer {
  position: absolute; left: 0; top: 0; width: 1920px; height: 1080px;
  transform-origin: 960px 540px; pointer-events: none;
}
.bttv-plane > *, .bttv-layer > *, .bttv-grp > * { position: absolute; }
/* --bttv-opt-cam: пока летит камера — планы на видеокарте (Bt_Tv.js, moveCamera). */
.bttv.is-flying .bttv-plane { will-change: transform; }
/* Группа внутри плана (вкладка, луна с барабанами): во весь план, своё начало координат. */
.bttv-grp { position: absolute; left: 0; top: 0; width: 1920px; height: 1080px; }
.bttv-sc { font-size: 0.8em; }                        /* TMP SmallCaps */
.bttv-spr { background: center / 100% 100% no-repeat; }
.bttv-mirror { scale: -1 1; }
/* Плашки — маска спрайта, цвет — фон. */
.bttv-mask { -webkit-mask: center / 100% 100% no-repeat; mask: center / 100% 100% no-repeat; }
.bttv-text {
  display: flex; align-items: center; justify-content: center; text-align: center;
  white-space: normal; overflow-wrap: anywhere;
}
.bttv-text > .bttv-in { display: block; width: 100%; }

/* ------------------------------------------------------- Background -- */
.bttv-bg { left: -619.4px; top: -264.2px; width: 3166.8px; height: 1781.3px;
  background:
    radial-gradient(ellipse 34.81% 27% at 72.25% 34.44%, rgb(255 206 191 / 0.298) 0%, rgb(255 206 191 / 0.294) 12.5%, rgb(255 206 191 / 0.279) 25%, rgb(255 206 191 / 0.242) 37.5%, rgb(255 206 191 / 0.167) 50%, rgb(255 206 191 / 0.079) 62.5%, rgb(255 206 191 / 0.03) 75%, rgb(255 206 191 / 0.008) 87.5%, rgb(255 206 191 / 0) 100%),
    radial-gradient(ellipse 124.45% 41.53% at 65% 43.49%, rgb(255 115 75 / 0.287) 0%, rgb(255 115 75 / 0.259) 12.5%, rgb(255 115 75 / 0.234) 25%, rgb(255 115 75 / 0.182) 37.5%, rgb(255 115 75 / 0.143) 50%, rgb(255 115 75 / 0.102) 62.5%, rgb(255 115 75 / 0.065) 75%, rgb(255 115 75 / 0.025) 87.5%, rgb(255 115 75 / 0) 100%),
    linear-gradient(191.0deg, rgb(32 48 82 / 1) 0%, rgb(73 79 93 / 1) 21.91%, rgb(159 142 117 / 1) 56.52%, rgb(164 146 120 / 1) 60.73%, rgb(255 202 124 / 1) 100%);
  filter: brightness(.608); }     /* цвет спрайта #9B9B9B */
/* Небо — CSS вместо картинки (юзер 30.10: у сжатой картинки была видна ступенчатость). Слои подобраны
   под GameDesign_1/BG.jpg Unity по пикселям (подбор — tools/sky_fit): градиент, зарево, круги-холмы со своим
   градиентом, туман снизу. Круги и туман — дети фона (.bttv-hill, .bttv-fog). */
.bttv-bg > i { position: absolute; display: block; }
.bttv-bg > .bttv-hill { border-radius: 50%; }
.bttv-bg > .bttv-hill.h1 { left: -19.2%; top: 62.29%; width: 40.5%; height: 72%;
  background: linear-gradient(to bottom, rgb(255 206 137 / 0.228) 0%, rgb(217 181 120 / 0.934) 75.92%, rgb(217 181 120 / 0) 100%); }
.bttv-bg > .bttv-hill.h2 { left: 6.46%; top: 53.81%; width: 36.75%; height: 65.33%;
  background: linear-gradient(to bottom, rgb(255 189 125 / 1) 0%, rgb(248 213 191 / 0) 54.45%, rgb(248 213 191 / 0) 100%); }
.bttv-bg > .bttv-hill.h3 { left: 47.71%; top: 60.78%; width: 25.65%; height: 45.61%;
  background: linear-gradient(to bottom, rgb(255 186 107 / 0.891) 0%, rgb(239 177 113 / 0.121) 41.47%, rgb(239 177 113 / 0) 100%); }
.bttv-bg > .bttv-hill.h4 { left: 64.43%; top: 51.61%; width: 31.99%; height: 56.86%;
  background: linear-gradient(to bottom, rgb(255 200 114 / 1) 0%, rgb(255 176 104 / 0.043) 67.39%, rgb(255 176 104 / 0) 100%); }
.bttv-bg > .bttv-fog { inset: 0;
  background:
    linear-gradient(to bottom, rgb(11 55 94 / 0) 65.96%, rgb(11 55 94 / 0.077) 75.15%, rgb(185 207 189 / 0.12) 91.36%, rgb(227 255 254 / 0.108) 100%),
    radial-gradient(ellipse 52.37% 50.76% at 24.7% 85.49%, rgb(255 218 171 / 1) 0%, rgb(255 218 171 / 1) 12.5%, rgb(255 218 171 / 0.86) 25%, rgb(255 218 171 / 0.329) 37.5%, rgb(255 218 171 / 0.108) 50%, rgb(255 218 171 / 0.048) 62.5%, rgb(255 218 171 / 0.009) 75%, rgb(255 218 171 / 0) 87.5%, rgb(255 218 171 / 0) 100%); }
/* Облако: Cloud 2.svg, z 4.294, белое 5% (13/255), едет влево: 0.075 ед/с → плитка за 173.4 с. */
.bttv-clouds { left: -180.3px; top: -84.9px; height: 258.9px; width: 7377.3px; display: flex;
  animation: bttv-clouds 173.4s linear infinite; }
.bttv-clouds i { flex: 0 0 2459.1px; height: 100%; opacity: .051;
  background: url('/images_web/tv/gm1/cloud.svg') center / 100% 100% no-repeat; }
@keyframes bttv-clouds { to { transform: translateX(-2459.1px); } }
/* Лучи (Background/Rays, Rays.png): 31 чёрный клин через 11.613°, вращаются по часовой
   5°/с (SlowRotateZ). Прозрачность ставит код: 15/255 «Правда или ложь», 20/255 «Кто из нас». */
@property --bttv-ray-a { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
.bttv-rays {
  left: -2097.55px; top: -2589.55px; width: 6000px; height: 6000px; opacity: 0;
  background: repeating-conic-gradient(from calc(78.1deg + var(--bttv-ray-a)), #000 0 5.806deg, transparent 0 11.613deg);
}
.bttv-rays.is-spin { animation: bttv-rays 72s linear infinite; }
@keyframes bttv-rays { to { --bttv-ray-a: 360deg; } }
/* --bttv-opt-rays: вращается сам слой вокруг центра узора — то же, но без перерисовки. */
.bttv-rays.is-spin.is-rot { animation-name: bttv-rays-rot; }
@keyframes bttv-rays-rot { to { rotate: 360deg; } }
/* Плашка вопроса (Background/Question Tab): подложка выключена — только белый текст.
   Растёт из точки опоры (2315.5, 410.5) до масштаба 0.2066 (customMaxScale). */
.bttv-qtab { transform-origin: 2315.5px 410.5px; scale: 0; }
.bttv-qtext { left: 1736.9px; top: 158.4px; width: 1056.9px; height: 559.5px; color: #fff; font-weight: 400; }

/* ------------------------------------------------------------ Front -- */
/* Порядок внутри группы Front — порядок спрайтов Unity (0 → 5). */
.bttv-square { left: -509.1px; top: 1277.5px; width: 4463.5px; height: 712.3px; background: #D19236; }
.bttv-logs2 { left: 1728.3px; top: 1251.8px; width: 328.3px; height: 215.7px;
  background-image: url('/images_web/tv/gm1/campfire2.webp'); opacity: var(--bttv-logs); }
.bttv-logs1 { left: 1827.1px; top: 1260.8px; width: 138.1px; height: 136.6px;
  background-image: url('/images_web/tv/gm1/campfire1.webp'); opacity: var(--bttv-logs); }
.bttv-firevid {
  left: calc(var(--bttv-fire-x) - var(--bttv-fire-w) / 2); top: calc(var(--bttv-fire-y) - var(--bttv-fire-w) * 150 / 133);
  width: var(--bttv-fire-w); height: calc(var(--bttv-fire-w) * 150 / 133); display: none;
}
.bttv.is-fire .bttv-firevid { display: block; }
.bttv-canvas { left: 0; top: 0; width: 1920px; height: 1080px; }
/* Откуда Bt_Tv.js берёт лист кадров огня и искру (те же, что у «Сказки»). */
.bttv-fire-src { background-image: url('/images_web/tv/gm8/fire.webp'); }
.bttv-ember-src { background-image: url('/images_web/tv/gm8/ember.webp'); }
.bttv-moon { left: 2180.05px; top: 916.45px; width: 872.3px; height: 890.3px; rotate: 10.1deg;
  background-image: url('/images_web/tv/gm1/moon.webp'); }
.bttv-tree { left: 247.7px; top: 13.5px; width: 1341.1px; height: 1366.6px;
  background-image: url('/images_web/tv/gm1/tree.webp'); }
/* Дерево и всё, что на нём, сдвигаются одной переменной (окно очков увозит дерево вниз и
   возвращает): рассказчик, ник, плашки, «Правда» / «Ложь» с именами, крестики, имена «Кто из нас». */
@property --bttv-tree-dy { syntax: '<length>'; inherits: true; initial-value: 0px; }
.bttv-tree, .bttv-ava, .bttv-name, .bttv-plate, .bttv-tab, .bttv-x, .bttv-wchips { translate: 0 var(--bttv-tree-dy); }
/* Окно очков: здесь — только место (за деревом или на экране, Bt_Tv.js); само окно — tv-score.css. */
.bttv-score { left: 0; top: 0; display: none; }
.bttv.is-score .bttv-score { display: block; }
/* Облачко птицы (Speach_Bubble_1) растёт из своей точки опоры за 0.25 с (OutQuad).
   Облачка — на своём плане поверх всего: плашек, вопроса, вспышки (просьба юзера 28.10). */
.bttv-bub { scale: 0; }
.bttv-bub i { position: absolute; inset: 0; background: url('/images_web/tv/gm1/bubble.webp') center / 100% 100% no-repeat; }
.bttv-btext { position: absolute; color: #543D36; font-weight: 400; }
.bttv-bub1 { left: 1585.2px; top: 862.1px; width: 577.6px; height: 355.4px; }
.bttv-bub1 .bttv-btext { left: 114.4px; top: 81.2px; width: 355.4px; height: 124.3px; }
.bttv-bub3 { left: 2058.5px; top: 483.7px; width: 542.8px; height: 333.9px; transform-origin: 457.5px 316.7px; }
.bttv-bub3 i { scale: -1 1; }
.bttv-bub3 .bttv-btext { left: 101.3px; top: 76.5px; width: 333.8px; height: 116.4px; }
.bttv-bub2 { left: 737.5px; top: 518.5px; width: 475.8px; height: 292.7px; transform-origin: 41.8px 285.4px; }
.bttv-bub2 .bttv-btext { left: 94.3px; top: 67px; width: 292.6px; height: 102px; }
/* Аватарка рассказчика — в круге (маска Player_avatar_bg.svg), поднимается снизу.
   Спрятана — целиком ниже круга (256 px): в Unity сдвиг 238 px оставляет внизу круга полоску,
   но у спрайта там прозрачные поля; у веб-аватарок край непрозрачный — была видна полоска. */
.bttv-ava { left: 841.5px; top: 162.5px; width: 236.9px; height: 236.9px; border-radius: 50%; overflow: hidden; }
.bttv-ava img { position: absolute; left: 6px; top: -16.3px; width: 236.9px; height: 236.9px; translate: 0 256px; }
.bttv-name { left: 785.3px; top: 338px; width: 352.6px; height: 99.3px; scale: 0; }
.bttv-name i { position: absolute; inset: 0; background: #000;
  -webkit-mask: url('/images_web/tv/gm1/name_tab.webp') center / 100% 100% no-repeat;
  mask: url('/images_web/tv/gm1/name_tab.webp') center / 100% 100% no-repeat; }
.bttv-name-t { position: absolute; left: -6.1px; top: 16.2px; width: 347.8px; height: 75.1px; color: #F7E8DC; font-weight: 400; rotate: -1.08deg; }
.bttv-bird3 { left: 2533.4px; top: 819px; width: 148.3px; height: 141.3px; background-image: url('/images_web/tv/gm1/bird3.webp'); }
.bttv-bird2 { left: 656.5px; top: 792.3px; width: 109.1px; height: 134.4px; background-image: url('/images_web/tv/gm1/bird2.webp'); display: none; }
.bttv.has-bird2 .bttv-bird2 { display: block; }
.bttv-bird1 { left: 1499.15px; top: 1220.05px; width: 141.9px; height: 159.5px; rotate: 2.77deg;
  background-image: url('/images_web/tv/gm1/bird1.webp'); }
.bttv-ground { top: 1365.4px; width: 3392.1px; height: 450.1px; background-image: url('/images_web/tv/gm1/ground.webp'); }
.bttv-ground.g0 { left: -146.1px; }
.bttv-ground.g1 { left: -3556.4px; }
.bttv-ground.g2 { left: 3149.1px; }

/* Вспышка (FlashEffect): холст на слое Front — над миром, под плашками и надписями.
   Белый → Color.clear за 2 с OutQuad (белый темнеет, пока гаснет) — цвет ставит код. */
.bttv-flash { position: absolute; inset: -3000px; background: transparent; pointer-events: none; }
/* --bttv-opt-flash: чёрный и белый слои, ведётся только их прозрачность (Bt_Tv.js, flash). */
.bttv-flash > i { position: absolute; inset: 0; opacity: 0; }
.bttv-flash-b { background: #000; }
.bttv-flash-w { background: #fff; }

/* ---------------------------------------------------------- Overlay -- */
/* Плашки подрежима и категории: падают с ×3.33 до ×1 за 0.1 с (OutQuint). */
.bttv-plate { scale: 0; }
.bttv-plate i { position: absolute; inset: 0; background: var(--bttv-plate, #F7E8DC);
  -webkit-mask: url('/images_web/tv/gm1/cat_tab.webp') center / 100% 100% no-repeat;
  mask: url('/images_web/tv/gm1/cat_tab.webp') center / 100% 100% no-repeat; }
.bttv-plate .bttv-text { position: absolute; font-weight: 400; }
.bttv-mode { left: 755.8px; top: 499.1px; width: 408.4px; height: 113.5px; z-index: 10; }
.bttv-mode .bttv-text { left: 35.4px; top: 21.7px; width: 335.3px; height: 74.8px; color: #543D36; rotate: -1.08deg; }
.bttv-cat { left: 748.6px; top: 641.5px; width: 408.4px; height: 113.5px; z-index: 11; --bttv-plate: #7ABC97; }
/* Цвет плашки категории (ShowCategoryController): Для всех / свои — #7ABC97. */
.bttv-cat.c-trash { --bttv-plate: #A93743; }
.bttv-cat.c-adult { --bttv-plate: #F185E3; }
.bttv-cat.c-psychology { --bttv-plate: #5C428C; }
.bttv-cat .bttv-text { left: 80.6px; top: 21.5px; width: 243.4px; height: 74.1px; color: #F7E8DC; rotate: 1.08deg; }

/* «Правда» / «Ложь» (TrueFalse/True Tab, False Tab): растут из точки опоры. */
.bttv-tab { z-index: 13; scale: 0; }
.bttv-tab.t1 { transform-origin: 571.5px 583.2px; }
.bttv-tab.t0 { transform-origin: 1305.4px 583.2px; }
.bttv-tab-bg { top: 506.5px; width: 473.8px; height: 155.4px; background: #000;
  -webkit-mask: url('/images_web/tv/gm1/result_tab.webp') center / 100% 100% no-repeat;
  mask: url('/images_web/tv/gm1/result_tab.webp') center / 100% 100% no-repeat; }
.bttv-tab-t { top: 516.2px; width: 505px; height: 139.6px; font-size: 75.5px; font-weight: 400; color: #F7E8DC; rotate: -0.48deg; }
.t1 .bttv-tab-bg { left: 342.7px; }
.t1 .bttv-tab-t { left: 324.9px; }
.t0 .bttv-tab-bg { left: 1076.5px; }
.t0 .bttv-tab-t { left: 1058.8px; }
.bttv-tab.is-right .bttv-tab-bg, .bttv-tab.is-mine .bttv-tab-bg { background: #F7E8DC; }
.bttv-tab.is-right .bttv-tab-t, .bttv-tab.is-mine .bttv-tab-t { color: #543D36; }
.bttv.is-tf-vote .bttv-tab-bg { pointer-events: auto; cursor: pointer; }
/* Клик — лёгкий баунс, как у плитки ответа квиза (qz-tv.css, юзер 30.10). */
.bttv-tab.is-pick-bounce { animation: bttv-pick-bounce var(--bttv-pick-ms) ease-out; }
@keyframes bttv-pick-bounce {
  0%, 100% { transform: scale(1); }
  40% { transform: scale(var(--bttv-pick-bounce)); }
  72% { transform: scale(calc(1 - (var(--bttv-pick-bounce) - 1) * .35)); }
}
@media (prefers-reduced-motion: reduce) {
  .bttv-tab.is-pick-bounce { animation: none; }
}
.bttv.is-tf-vote .bttv-tab:not(.is-mine) .bttv-tab-bg:hover { background: color-mix(in srgb, #000, #F7E8DC calc(var(--bttv-hover) * 100%)); }
/* Имена проголосовавших (ChoiceTab): кремовые плашки, чёрный текст. */
.bttv-chip { width: 195.7px; height: 64.2px; margin: -32.1px 0 0 -97.85px; scale: 0; }
.bttv-chip i { position: absolute; inset: 0; background: #F7E8DC;
  -webkit-mask: url('/images_web/tv/gm1/result_tab.webp') center / 100% 100% no-repeat;
  mask: url('/images_web/tv/gm1/result_tab.webp') center / 100% 100% no-repeat; }
.bttv-chip .bttv-text { position: absolute; left: 33.6px; top: -1.1px; width: 134px; height: 63.3px; color: #000; font-weight: 300; }
/* Крестик (close 1.png): картинка — во всю рамку (без размера фона она рисовалась 64×64 и
   обрезалась рамкой 55 / 30 px — по-разному на каждом шаге поворота). */
.bttv-x { background: url('/images_web/tv/gm1/x.webp') center / 100% 100% no-repeat; scale: 0; }
.bttv-x.tf { left: 935.9px; top: 553.8px; width: 55.2px; height: 55.2px; z-index: 16; }
.bttv-x.who { left: 944.95px; top: 468.1px; width: 30.1px; height: 28.6px; z-index: 1; }

/* «Кто из нас»: проголосовавшие за победителя — чёрные плашки, кремовый текст (цвет Unity).
   Размер, кегль и отступы — как у имён «Правды или лжи» (юзер 28.10: в Unity здесь они
   в 1.5 раза крупнее и почти без промежутков). */
/* Блок имён растёт и сжимается от середины верхнего ряда. */
.bttv-wchips { transform-origin: 941.5px 600px; scale: var(--bttv-who-scale); }
.bttv-wchip { width: 195.7px; height: 64.2px; margin: -32.1px 0 0 -97.85px; scale: 0; z-index: 2; }
.bttv-wchip i { position: absolute; inset: 0; background: #000;
  -webkit-mask: url('/images_web/tv/gm1/result_tab.webp') center / 100% 100% no-repeat;
  mask: url('/images_web/tv/gm1/result_tab.webp') center / 100% 100% no-repeat; }
.bttv-wchip .bttv-text { position: absolute; left: 33.6px; top: -1.1px; width: 134px; height: 63.3px; color: #F7E8DC; font-weight: 300; }

/* Луна с барабанами: Moon_2 («Правда или ложь») и MoonAll («Кто из нас»). Позиции —
   в конце въезда; въезд — сдвиг слоёв группы (Bt_Tv.js). Палочки — SimpleDrumRotation
   (перескок между углами bps раз в секунду) и DrumstickYMovement; барабан — только Y. */
.bttv-m2, .bttv-ma { display: none; }
.bttv.is-moon2 .bttv-m2, .bttv.is-moonall .bttv-ma { display: block; }
.bttv-m2.is-off, .bttv-ma.is-off { display: none !important; }
.bttv-m2 > *, .bttv-ma > * { position: absolute; background: center / 100% 100% no-repeat; }
.bttv-mmoon { background-image: url('/images_web/tv/gm1/moon.webp'); }
.bttv-drum2 { background-image: url('/images_web/tv/gm1/drums2.webp'); }
.bttv-stick { width: 75px; height: 309px; transform-origin: 42.12% 86.03%;
  background-image: url('/images_web/tv/gm1/drums1.webp'); }
.m2-moon { left: 1674.1px; top: 99.2px; width: 643.8px; height: 657.1px; rotate: -3.51deg; }
.m2-drum2 { left: 1679.6px; top: 555.7px; width: 423px; height: 319.1px; rotate: -18.63deg;
  animation: bttv-m2-drum .234s linear infinite alternate; }
.m2-stick-a { left: 1493px; top: 411.9px; animation: bttv-rot-a 66.7ms step-end infinite, bttv-m2-a-y 19ms linear infinite alternate; }
/* Палочка (1): у спрайта flipY — отражена по вертикали вокруг своей опоры (как в квизе). */
.m2-stick-b { left: 2056.4px; top: 117.9px; scale: 1 -1; animation: bttv-rot-b 100ms step-end infinite; }
.ma-moon { left: 1478.7px; top: 323.2px; width: 715.3px; height: 730.1px; rotate: 15.12deg; }
.ma-drum2 { left: 1231.1px; top: 676.2px; width: 420px; height: 319.7px; rotate: 21.27deg;
  animation: bttv-ma-drum .234s linear infinite alternate; }
.ma-stick-a { left: 1155.8px; top: 304.9px; animation: bttv-rot-a 66.7ms step-end infinite, bttv-ma-a-y 23.3ms linear infinite alternate; }
.ma-stick-b { left: 1725px; top: 499.8px; scale: 1 -1; animation: bttv-rot-b 100ms step-end infinite, bttv-ma-b-y 18ms linear infinite alternate; }
@keyframes bttv-rot-a { 0% { rotate: 62.5deg; } 50% { rotate: 70deg; } }
@keyframes bttv-rot-b { 0% { rotate: 79.3deg; } 50% { rotate: 58.2deg; } }
@keyframes bttv-m2-a-y { to { translate: 0 -73.8px; } }
@keyframes bttv-m2-drum { to { translate: 0 -30.3px; } }
@keyframes bttv-ma-a-y { to { translate: 58.1px -69.7px; } }
@keyframes bttv-ma-b-y { to { translate: 73.5px -89.1px; } }
@keyframes bttv-ma-drum { to { translate: 19.3px -23.3px; } }

/* Отсчёт «3», «2», «GO!»: белый, без капители, по центру. */
.bttv-count { left: 758.8px; top: 183.3px; width: 402.4px; height: 396.9px; font-size: 366.9px; font-weight: 400; color: #fff;
  opacity: 0; z-index: 18; }
/* «Жми кнопку «Готов»»: выезжает справа и пульсирует. */
.bttv-ready { left: 1412px; top: 177.6px; width: 474.6px; height: 137.7px; color: #fff; font-weight: 300;
  opacity: 0; z-index: 18; }
/* Листья и салют (CFXR3 Hit Leaves, CFXR4 Firework) — частицами на холсте. */
.bttv-fx { z-index: 19; }

/* ------------------------------------------------- таймер (Main UI) -- */
/* «Timer Text» главной сцены: Bebas Bold 68 × 0.7 на 2208 → ≈41 px, слева сверху. */
.bttv-timer {
  left: 59px; top: 24px; color: #fff; font-size: 41.4px; font-weight: 700; display: none;
  font-variant-numeric: tabular-nums;
}

/* Панель ведущего («Готов!», «Ответил», реакции, выбор игрока) — общая для ТВ-видов:
   _Styles/tv-panel.css. */

/* Название режима на заставке — как в «Шпионаже» (Game Name: z 0.6 → на кадре 1547×663 по центру 960, 411;
   Bebas 407 px, #FFDAB1, капитель), юзер 30.10. Скрипт — gameNameIn(). */
.bttv-gname { position: absolute; left: 186.3px; top: calc(var(--bttv-gname-y) - 331.45px); width: 1547.4px; height: 662.9px; opacity: 0;
  display: flex; align-items: center; justify-content: center; text-align: center; line-height: 1; white-space: normal;
  color: var(--bttv-gname-c); font-family: 'Bebas Neue', 'Bebas Neue Pro', Impact, sans-serif; font-weight: 400; pointer-events: none; }
:root {
  --bttv-gname-z: 2.44;            /* название режима на заставке: дальше камеры в покое на, единиц Unity (как «Шпионаж»: 1.36) */
  --bttv-gname-y: 411px;         /* …центр по высоте на кадре в покое */
  --bttv-gname-fs: 407px;        /* …кегль (длинное название уменьшается, чтобы влезть) */
  --bttv-gname-c: #FFDAB1;         /* …цвет */
}
.bttv-gname > span { display: block; }
.bttv-gname-sc { font-size: 0.8em; }
