/* Player da TV. Objetivo: leve e legivel de longe. */

:root {
  --bg: #071633;      /* navy da identidade Guilly Moove */
  --fg: #f2e6dc;      /* champagne */
  --ok: #59d98e;
  --off: #e0603a;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--bg);
}

body {
  font-family: "Jost", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color: var(--fg);
  display: grid;
  place-items: center;
}

/* A "cena" ocupa a tela toda e gira conforme a orientacao escolhida.
   Fica presa no centro da tela (position: fixed + translate -50%), entao
   a rotacao nunca "escapa" da tela e nada e cortado, em qualquer resolucao
   (celular, notebook, TV). */
.stage {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 100vw;
  height: 100vh;
  display: grid;
  place-items: center;
  padding: 6vmin;
  text-align: center;
  transform: translate(-50%, -50%) rotate(0deg);
  transform-origin: center center;
  /* Virada de orientacao instantanea (sem transition em width/height/
     transform): assim nunca "trava no meio" e o conteudo aparece sempre
     inteiro e centralizado, em qualquer resolucao (celular, notebook, TV). */
}

/* Deitado (padrao): ja e o .stage acima, sem rotacao. */
.stage.layout-horizontal {
  width: 100vw;
  height: 100vh;
  transform: translate(-50%, -50%) rotate(0deg);
}

/* Em pe: gira 90 graus e troca largura/altura para preencher a tela. */
.stage.layout-vertical {
  width: 100vh;
  height: 100vw;
  transform: translate(-50%, -50%) rotate(90deg);
}

.aviso {
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 8vmin, 7rem);
  font-weight: 600;
  line-height: 1.15;
  max-width: 92%;
  white-space: pre-wrap;
  word-break: break-word;
}

/* Video / imagem: aparece inteiro (nunca cortado), centralizado, seja
   qual for a resolucao da tela ou do arquivo.
   Obs: nao definir "display" aqui -> o atributo [hidden] no elemento
   escondido precisa continuar valendo (display: none). */
.media {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  background: #000;
}

/* Ao exibir midia, tira o respiro do palco para preencher a tela */
.stage.has-media {
  padding: 0;
}

.fs-btn {
  position: fixed;
  right: 2vmin;
  bottom: 2vmin;
  padding: 0.6em 1.1em;
  font: inherit;
  font-size: 0.9rem;
  color: var(--bg);
  background: var(--fg);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  opacity: 0.2;
  transition: opacity 0.2s ease;
}

.fs-btn:hover,
.fs-btn:focus-visible {
  opacity: 1;
}

body:fullscreen .fs-btn {
  display: none;
}

.status {
  position: fixed;
  left: 2vmin;
  bottom: 2vmin;
  font-size: 1.6rem;
  line-height: 1;
  opacity: 0.5;
}

.status[data-state="connected"] {
  color: var(--ok);
}

.status[data-state="connecting"],
.status[data-state="disconnected"] {
  color: var(--off);
}
