[data-pv-video] { position: relative; overflow: hidden; background: #000; }
.pv-video:not([style*="aspect-ratio"]) { aspect-ratio: 16 / 9; }
[data-pv-video] video { display: block; width: 100%; height: 100%; object-fit: contain; }

/* Filigrane */
.pv-wm {
  position: absolute; z-index: 2; pointer-events: none; user-select: none;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  opacity: var(--pv-wm-opacity, .5);
  font: 600 14px/1 system-ui, sans-serif; color: #fff;
  text-shadow: 0 0 2px rgba(0, 0, 0, .6);
}
.pv-wm img { display: block; width: var(--pv-wm-width, 120px); max-width: 30vw; height: auto; }

.pv-wm--random { transition: top 1s, left 1s; }
/* Positions fixes : 56px en bas pour ne pas recouvrir la barre de contrôles */
.pv-wm--bottom-right { right: 16px; bottom: 56px; align-items: flex-end; }
.pv-wm--bottom-left  { left: 16px;  bottom: 56px; align-items: flex-start; }
.pv-wm--top-right    { right: 16px; top: 16px;    align-items: flex-end; }
.pv-wm--top-left     { left: 16px;  top: 16px;    align-items: flex-start; }

.pv-error::after {
  content: "Vidéo indisponible"; position: absolute; inset: 0; z-index: 3;
  display: grid; place-items: center; background: #000;
  color: #fff; font: 14px system-ui, sans-serif;
}
