/* Окно со страницей спектакля: сама страница показывается поверх афиши,
 * как есть. Здесь только затемнение, рамка окна и кнопка закрытия —
 * содержимое страницы не оформляется и не переопределяется.
 */

.tmod {
    position: fixed; inset: 0; z-index: 10000;
    display: flex; align-items: center; justify-content: center;
    /* Сверху больше места: там, за границей окна, стоит крестик. */
    padding: 58px 26px 26px;
    background: rgba(20, 17, 12, .68);
    /* Появление анимацией, а не переходом из невидимого состояния: обычное
       состояние окна — видимое, поэтому непроигравшаяся анимация (браузер
       придушил вкладку, старый движок) не оставит окно невидимым. */
    animation: tmod-poyavlenie .18s ease;
}
@keyframes tmod-poyavlenie { from { opacity: 0; } }

.tmod__box {
    position: relative;
    width: 100%; height: 100%; max-width: 1200px;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .4);
    animation: tmod-podyom .2s ease;
}
@keyframes tmod-podyom { from { transform: translateY(12px); } }

/* Рамки живут в окне постоянно: показывается та, что нужна сейчас. Переносить
   iframe между узлами нельзя — браузер грузит страницу заново, и кэш стал бы
   поддельным. Спрятанная через display:none рамка ничего не грузит повторно. */
.tmod__frame { display: none; width: 100%; height: 100%; border: 0; }
.tmod__frame_вид { display: block; }
.tmod[hidden] { display: none; }

/* Пока страница в окне не готова, её не показываем: полсекунды белого листа
   с проступающей вёрсткой читаются как поломка. Вместо этого — три точки. */
.tmod_ждёт .tmod__frame_вид { visibility: hidden; }
.tmod__ожидание {
    position: absolute; inset: 0; z-index: 1;
    display: none; align-items: center; justify-content: center; gap: 8px;
    pointer-events: none;
}
.tmod_ждёт .tmod__ожидание { display: flex; }
.tmod__точка {
    width: 9px; height: 9px; border-radius: 50%; background: #b60000;
    animation: tmod-tochka 1s ease-in-out infinite;
}
.tmod__точка:nth-child(2) { animation-delay: .15s; }
.tmod__точка:nth-child(3) { animation-delay: .3s; }
@keyframes tmod-tochka {
    0%, 80%, 100% { opacity: .25; transform: translateY(0); }
    40%           { opacity: 1;   transform: translateY(-5px); }
}
@media (prefers-reduced-motion: reduce) {
    .tmod__точка { animation: none; opacity: .6; }
}

/* Крестик стоит НАД окном, на затемнении, а не внутри страницы спектакля:
   внутри он накрывал бы её содержимое и читался бы как часть страницы. */
.tmod__close {
    position: absolute; top: 12px; right: 26px; z-index: 2;
    width: 40px; height: 40px; padding: 0;
    display: flex; align-items: center; justify-content: center;
    background: transparent; border: 0; border-radius: 50%;
    cursor: pointer; font-size: 30px; line-height: 1; color: #fff;
    opacity: .75; transition: opacity .15s;
}
.tmod__close:hover { opacity: 1; background: rgba(255, 255, 255, .14); }

body.tmod-locked { overflow: hidden; }

@media (max-width: 640px) {
    .tmod { padding: 0; }
    .tmod__box { border-radius: 0; }
}
