.tv-wrapper{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  background:#000;
  overflow:hidden;
}

.tv-wrapper iframe,
.tv-wrapper video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:1;
}

/* Оверлей всегда поверх */
.tv-overlay{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
}

/* TV fullscreen (псевдо-фуллскрин, рамка НЕ пропадает) */
.tv-wrapper.tv-fullscreen{
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  height:100vh !important;
  aspect-ratio:auto !important;
  z-index:999999 !important;
  background:#000;
}

/* кнопка fullscreen */
.tv-fs-btn{
  position:absolute;
  top:12px;
  right:12px;
  z-index:3;
  pointer-events:auto;
  width:44px;
  height:44px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(0,0,0,.45);
  color:#fff;
  font-size:20px;
  cursor:pointer;
}

/* ======= твои стили рамки (почти без изменений) ======= */

.ticker-text { transition: opacity .3s ease; }
.ticker-text.fade-out { opacity: 0; }
.ticker-text.fade-in { opacity: 1; }

.news-logo{
  position:absolute;
  top:1vh;
  left:1vw;
  z-index:5;
}
.news-logo img{
  width:clamp(100px, 8vw, 180px);
  height:auto;
  display:block;
}

.news-weather{
  position:absolute;
  top:0.1vh;
  right:3vw;
  color:#fff;
  font-family:Arial, sans-serif;
  font-weight:600;
  font-size:clamp(10px, 2vw, 23px);
  text-shadow:3px 3px 3px #000 !important;
  z-index:5;
}
.news-weather span{
  color:#fff;
  font-family:Arial, sans-serif;
  font-weight:600;
  font-size:clamp(10px, 2vw, 23px);
  text-shadow:3px 3px 3px #000 !important;
}

.news-ticker{
  position:absolute;
  bottom:0;
  left:0;
  width:100%;
  height:clamp(40px, 7vh, 80px);
  background:linear-gradient(135deg,#004ba3,#00418e,#0055c9,#00306d);
  background-size:400% 400%;
  animation:gradientFlow 6s ease infinite;
  color:#fff;
  font-size:clamp(15px, 2.2vw, 28px);
  overflow:hidden;
  display:flex;
  align-items:center;
  z-index:5;
}

@keyframes gradientFlow {
  0%{background-position:0% 50%;}
  50%{background-position:100% 50%;}
  100%{background-position:0% 50%;}
}

.ticker-text{
  display:inline-block;
  white-space:nowrap;
  animation:scroll-fixed linear infinite;
  animation-duration:18s;
}

@keyframes scroll-fixed{
  0%{transform:translateX(100%);}
  100%{transform:translateX(-100%);}
}

.news-clock{
  position:absolute;
  bottom:0;
  right:0;
  color:#fff;
  font-family:Arial, sans-serif;
  font-weight:600;
  font-size:clamp(14px, 2.2vw, 28px);
  text-shadow:3px 3px 3px #000 !important;
  padding:10px;
  background:linear-gradient(270deg,#FFC40C 50.78%,#F6A71C 83.36%),#FFC40C;
  z-index:6;
}

@media (max-width:768px){
  .ticker-text{ animation-duration:23s; }
}
