/* player: preto, tela cheia, sem cursor, sem scroll. nada de rotacao (feita no sistema operacional) */
html,
body.player {
    margin: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: #000;
    cursor: none;
}

/* janela de exibicao da tv: exatamente a viewport. --gap = compensacao de borda (em vw) */
.player__stage {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    background: #000;
    --gap: 0vw;
}

/*
 * cada midia cobre a regiao inteira (--span tvs + as bordas entre elas)
 * e e deslocada ate a faixa desta tv (--off = posicao da tv dentro da regiao).
 * com compensacao, a imagem "passa por tras" da moldura entre as tvs.
 */
.player__layer {
    position: absolute;
    top: 0;
    height: 100%;
    width: calc(var(--span, 1) * 100vw + (var(--span, 1) - 1) * var(--gap));
    left: calc(var(--off, 0) * -1 * (100vw + var(--gap)));
    object-fit: cover;
    background: #000;
    opacity: 0;
    z-index: 1;
    pointer-events: none;
}

/* o que esta no ar nesta tv (os demais ficam escondidos pre-carregando).
   opacidade e ordem sao controladas pelo player.js (corte ou fade) */
.player__layer.is-active {
    opacity: 1;
}

/* overlay de debug (?debug=1) */
.player__debug {
    position: fixed;
    top: 16px;
    left: 16px;
    z-index: 10;
    margin: 0;
    padding: 12px 16px;
    background: rgba(0, 0, 0, 0.75);
    color: #0f0;
    font: 600 20px/1.45 ui-monospace, Menlo, Consolas, monospace;
    border-radius: 6px;
    white-space: pre;
}
