.lvw-grid{
  display:grid;
  gap:18px;
  grid-template-columns:repeat(1,minmax(0,1fr));
  width:100%;
}

@media (min-width:640px){
  .lvw-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (min-width:1024px){
  .lvw-cols-1{ grid-template-columns:repeat(1,minmax(0,1fr)); }
  .lvw-cols-2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .lvw-cols-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .lvw-cols-4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
}

.lvw-tile{
  position:relative;
  overflow:hidden;
  border-radius:14px;
  cursor:pointer;
  aspect-ratio:4/5;
  background:#111;
}

.lvw-preview,
.lvw-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

/* Preview is now <img> */
.lvw-preview{
  object-fit:cover;
  object-position:center top;
  display:block;
  opacity:1;
  transition:opacity .28s ease, filter .28s ease;
  z-index:2;
}

.lvw-video{
  object-fit:cover;
  object-position:center top;
  display:block;
  z-index:1;
}

.lvw-tile.is-playing .lvw-preview{
  opacity:0;
}

.lvw-overlay{
  position:absolute;
  left:20px;
  right:20px;
  bottom:20px;
  background:rgba(0,0,0,.55);
  padding:12px 16px;
  border-radius:6px;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  z-index:3;
}

.lvw-text{ min-width:0; }

.lvw-name{
  font-size:1.05rem;
  font-weight:600;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.lvw-role{
  font-size:.9rem;
  opacity:.85;
  margin-top:2px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.lvw-youtube{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}

.lvw-yt-icon{
  fill:#fff;
  opacity:.9;
  transition:fill .25s ease, transform .25s ease, opacity .25s ease;
}

.lvw-youtube:hover .lvw-yt-icon{
  fill:#FF0000;
  opacity:1;
  transform:scale(1.08);
}

/* Standard: entsättigt */
.lvw-preview,
.lvw-video{
  filter:saturate(0);
}

/* Hover / Playing: volle Sättigung */
.lvw-tile:hover .lvw-preview,
.lvw-tile:hover .lvw-video,
.lvw-tile.is-playing .lvw-preview,
.lvw-tile.is-playing .lvw-video{
  filter:saturate(1);
}

/* Bild-Fallback weiterhin entsättigt */
.lvw-no-video .lvw-preview{
  filter:saturate(0);
}

/* Bei Hover: volle Sättigung */
.lvw-no-video:hover .lvw-preview{
  filter:saturate(1);
}