/* Плеер киоска: кадр 3840×2160 вписан в экран; мышь — только у кнопок проверки. */
html.film-hall, html.film-hall * { cursor: none !important; }   /* зал: только физические кнопки (decisions §20) */
.film { position: absolute; inset: 0; background: var(--amber-black); overflow: hidden; cursor: none; }
.film.is-test { cursor: default; }
.film-stage { position: absolute; left: 0; top: 0; width: 3840px; height: 2160px; transform-origin: 0 0;
  background: var(--amber-black); overflow: hidden; }
.film-pic, .film-live { position: absolute; left: 0; top: 0; width: 3840px; height: 2160px; }
.film-pic { object-fit: contain; background: var(--amber-black); }
.film-text { position: absolute; inset: 0; }
.film-black { position: absolute; inset: 0; background: var(--amber-black); opacity: 1; pointer-events: none; }

/* кнопки киоска мышью — пока идёт проверка (config film.testButtons, ?test=1) */
.film-test { position: absolute; right: 24px; bottom: 24px; display: flex; gap: 10px; z-index: 5; }
.film-test button { min-width: 64px; padding: 14px 18px; font: 600 22px/1 var(--font-caption); letter-spacing: .04em;
  color: var(--paper); background: rgba(var(--graphite-rgb), .85); border: 2px solid rgba(var(--paper-rgb), .3); cursor: pointer; }
.film-test button.on { background: var(--brass); color: var(--text-on-light); border-color: var(--brass); }
.film-test button:disabled { opacity: .45; cursor: default; }

.film-gate { position: absolute; inset: 0; display: none; place-content: center; justify-items: center; gap: 4vmin; z-index: 6;
  cursor: pointer; background: rgba(var(--amber-black-rgb), .6); color: var(--paper); font: 40px/1.2 var(--font-text); }
/* ▶ — браузер не пустил звук без жеста: часть стоит до клавиши или щелчка (dvn 28.09); в зале — без подписи */
.film-play { position: relative; box-sizing: border-box; width: 14vmin; height: 14vmin; border: .5vmin solid var(--brass); border-radius: 50%; }
.film-play::after { content: ''; position: absolute; left: 4.1vmin; top: 2.5vmin; border-style: solid;
  border-width: 4vmin 0 4vmin 6.5vmin; border-color: transparent transparent transparent var(--brass); }

/* ⏸ — пауза пробелом (dvn 28.09): крупно по центру, кадр вокруг не затемняется; в проверке — и «Пробел — дальше» */
.film-hold { position: absolute; inset: 0; display: none; place-content: center; justify-items: center; gap: 4vmin; z-index: 6;
  pointer-events: none; color: var(--paper); font: 40px/1.2 var(--font-text); }
.film-hold.on { display: grid; }
.film-hold span { padding: .3em .7em; background: rgba(var(--amber-black-rgb), .6); }
.film-pause { position: relative; box-sizing: border-box; width: 14vmin; height: 14vmin; border: .5vmin solid var(--brass); border-radius: 50%;
  background: rgba(var(--amber-black-rgb), .45); }
.film-pause::before, .film-pause::after { content: ''; position: absolute; top: 3.25vmin; width: 1.9vmin; height: 6.5vmin; background: var(--brass); }
.film-pause::before { left: 3.65vmin; }
.film-pause::after { left: 7.45vmin; }

/* что грузится (dvn 28.09): линия на вид — голос, видео или кадры и карта; подписи и проценты — только в проверке */
.film-load { position: absolute; left: 1120px; top: 1080px; width: 1600px; transform: translateY(-50%); display: none; }
.film-load.on { display: block; }
.film-load-row { position: relative; margin: 48px 0; }
.film-load-bar { height: 12px; background: rgba(var(--paper-rgb), .14); }
.film-load-bar span { display: block; width: 0; height: 100%; background: var(--brass); }
.film-load-row b, .film-load-row em { position: absolute; top: 50%; transform: translateY(-50%); white-space: nowrap;
  font: 400 44px/1 var(--font-caption); font-style: normal; letter-spacing: .04em; color: var(--telegrey); }
.film-load-row b { right: calc(100% + 40px); }
.film-load-row em { left: calc(100% + 40px); }
.film-toast { position: absolute; left: 50%; bottom: 96px; transform: translateX(-50%); z-index: 6; opacity: 0;
  padding: 14px 24px; background: rgba(var(--graphite-rgb), .9); color: var(--paper); font: 24px/1.2 var(--font-caption);
  pointer-events: none; }
