*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#000;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.stage{position:relative;width:100vw;height:100vh;background:#000;overflow:hidden;touch-action:manipulation}.stage video{width:100%;height:100%;display:block;object-fit:contain;background:#000}.hidden{display:none!important}.channel-logo{position:absolute;z-index:7;left:2.2%;top:3.2%;width:min(18%,220px);height:auto;filter:drop-shadow(0 3px 8px #000b);pointer-events:none}.live-clock{position:absolute;z-index:8;right:2.2%;top:4%;display:flex;flex-direction:column;gap:5px;pointer-events:none}.onair{background:#ef174d;color:#fff;border-radius:999px;padding:7px 12px;font-weight:900;font-size:clamp(9px,1.4vw,17px);text-align:center;box-shadow:0 4px 14px #0007}.onair i{display:inline-block;width:8px;height:8px;background:#fff;border-radius:50%;margin-right:6px}.clock{background:#090b18d9;color:#fff;border:1px solid #ffffff33;border-radius:10px;padding:5px 12px;text-align:center;backdrop-filter:blur(4px)}.clock strong{display:block;font-size:clamp(18px,3vw,36px);line-height:1}.clock span{display:block;margin-top:3px;font-size:clamp(8px,1.2vw,14px)}.now{position:absolute;z-index:8;left:2.2%;bottom:18%;max-width:38%;padding:6px 14px 7px 18px;background:linear-gradient(90deg,#061a51ef,#102c79e8,#111c57b5);border-left:6px solid #ffd21d;clip-path:polygon(3% 0,100% 0,94% 100%,0 100%);color:#fff;text-shadow:0 2px 5px #000;pointer-events:none}.now small{display:inline-block;background:#008edb;padding:2px 7px;margin:-6px 0 3px -9px;font-weight:800;font-size:clamp(6px,.82vw,11px)}.now strong{display:block;font-size:clamp(11px,1.8vw,24px);line-height:1.05}.now span{display:block;font-size:clamp(7px,.95vw,13px);margin-top:2px}.verse{position:absolute;z-index:7;left:0;right:0;bottom:8%;height:10%;display:flex;align-items:center;justify-content:center;padding:0 17%;background:linear-gradient(90deg,#071742ed,#173c6ae6,#0a2145ed);background-size:cover;background-repeat:no-repeat;border-top:1px solid #44c8ff;border-bottom:1px solid #44c8ff;color:#fff;text-align:center;font-family:Georgia,serif;font-weight:700;font-style:italic;font-size:clamp(8px,1.35vw,17px);text-shadow:0 2px 5px #000;pointer-events:none}.verse.visual:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,12,35,.52),rgba(3,12,35,.14),rgba(3,12,35,.52))}.verse span{position:relative;z-index:1}.ticker{position:absolute;z-index:9;left:0;right:0;bottom:0;height:8%;min-height:25px;background:#fff;color:#101426;display:flex;align-items:center;font-weight:700;font-size:clamp(7px,1vw,13px);overflow:hidden}.ticker>b{align-self:stretch;display:flex;align-items:center;padding:0 14px;background:#e51d37;color:#fff;white-space:nowrap}.ticker-window{flex:1;overflow:hidden;white-space:nowrap}.ticker-window span{display:inline-block;padding-left:100%;animation:ticker 26s linear infinite}.ticker>a{align-self:stretch;display:flex;gap:6px;align-items:center;background:#08733e;color:#fff;text-decoration:none;padding:0 10px;white-space:nowrap}.ticker svg{width:18px;height:18px;flex:none}.ticker a span{font-weight:900}@keyframes ticker{to{transform:translateX(-100%)}}.touch-controls{position:absolute;z-index:30;left:50%;top:50%;transform:translate(-50%,-50%) scale(.98);display:flex;gap:10px;opacity:0;pointer-events:none;transition:.18s}.stage.controls-visible .touch-controls{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}.touch-controls button{border:1px solid #ffffff55;background:#080b18df;color:#fff;border-radius:999px;padding:10px 14px;font:800 12px/1 system-ui;box-shadow:0 5px 20px #0008;backdrop-filter:blur(5px)}.only-full{display:none}.stage:fullscreen .only-full,.stage:-webkit-full-screen .only-full{display:inline-block}.stage:fullscreen #full,.stage:-webkit-full-screen #full{display:none}@media(max-width:650px){.channel-logo{width:22%;top:2.5%}.live-clock{top:3%;right:2%}.onair{padding:5px 8px}.clock{padding:4px 8px}.now{left:2.5%;bottom:18%;max-width:54%;padding:4px 9px 5px 12px;border-left-width:4px}.now small{font-size:7px;padding:1px 5px;margin:-4px 0 2px -6px}.now strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now span{font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.verse{padding:0 15%}.ticker>b{padding:0 7px}.ticker>a{padding:0 7px}.ticker svg{width:14px;height:14px}.touch-controls{gap:6px}.touch-controls button{padding:8px 10px;font-size:10px}}


/* TV Emanuel7 · ajuste responsive 2026-09-25
   En teléfonos en vertical, el player usa 16:9 y evita el lienzo 100vh
   que producía grandes espacios negros arriba y abajo.
   En horizontal/fullscreen se conserva el diseño broadcast actual. */
@media (orientation:portrait) and (max-width:900px){
  html,body{
    width:100%;
    height:auto;
    min-height:0;
    overflow:hidden;
    background:#000;
  }
  .stage{
    width:100vw;
    height:auto;
    aspect-ratio:16/9;
    min-height:0;
    max-height:none;
  }
  .stage video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:contain;
  }

  /* Ajustes proporcionales para que los elementos no ocupen demasiado
     espacio dentro del player 16:9 del celular. */
  .channel-logo{left:2%;top:3%;width:18%;max-width:none}
  .live-clock{right:2%;top:3%;gap:2px}
  .onair{padding:3px 7px;font-size:clamp(7px,2.1vw,10px)}
  .onair i{width:5px;height:5px;margin-right:4px}
  .clock{padding:3px 6px;border-radius:7px}
  .clock strong{font-size:clamp(12px,4vw,18px)}
  .clock span{font-size:clamp(6px,1.8vw,8px);margin-top:1px}

  .now{
    left:2%;
    bottom:18%;
    max-width:42%;
    padding:3px 7px 4px 10px;
    border-left-width:3px;
  }
  .now small{font-size:5.5px;padding:1px 4px;margin:-3px 0 1px -5px}
  .now strong{font-size:9px}
  .now span{font-size:5.5px;margin-top:1px}

  .verse{
    bottom:8%;
    height:10%;
    min-height:0;
    padding:0 14%;
    font-size:clamp(6px,1.8vw,8px);
  }
  .ticker{
    height:8%;
    min-height:0;
    font-size:clamp(5.5px,1.6vw,7px);
  }
  .ticker>b{padding:0 5px}
  .ticker>a{padding:0 5px;gap:3px}
  .ticker svg{width:11px;height:11px}
}

/* Fullscreen siempre vuelve a ocupar toda la pantalla,
   incluso si el dispositivo entró desde orientación vertical. */
.stage:fullscreen,
.stage:-webkit-full-screen{
  width:100vw!important;
  height:100vh!important;
  max-height:none!important;
  aspect-ratio:auto!important;
}
.stage:fullscreen video,
.stage:-webkit-full-screen video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
}
