/* Clean fullscreen playback v1.
   Every visual control belongs to the same visibility state. While playback
   continues it auto-hides after four seconds; a light tap restores the group. */
.video-fullscreen-overlay .fullscreen-slide::after {
  opacity: 0 !important;
  transition: opacity 0.18s ease !important;
}

.video-fullscreen-overlay .fullscreen-close,
.video-fullscreen-overlay .fullscreen-mini-back,
.video-fullscreen-overlay .fullscreen-counter,
.video-fullscreen-overlay .fullscreen-operation,
.video-fullscreen-overlay .fullscreen-info,
.video-fullscreen-overlay .fullscreen-actions,
.video-fullscreen-overlay .fullscreen-play,
.video-fullscreen-overlay .fullscreen-controls {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.video-fullscreen-overlay.controls-visible .fullscreen-slide::after {
  opacity: 0.72 !important;
}

.video-fullscreen-overlay.controls-visible .fullscreen-close,
.video-fullscreen-overlay.controls-visible .fullscreen-mini-back,
.video-fullscreen-overlay.controls-visible .fullscreen-counter,
.video-fullscreen-overlay.controls-visible .fullscreen-operation,
.video-fullscreen-overlay.controls-visible .fullscreen-info,
.video-fullscreen-overlay.controls-visible .fullscreen-actions,
.video-fullscreen-overlay.controls-visible .fullscreen-play,
.video-fullscreen-overlay.controls-visible .fullscreen-controls {
  opacity: 1 !important;
  visibility: visible !important;
}

.video-fullscreen-overlay.controls-visible .fullscreen-close,
.video-fullscreen-overlay.controls-visible .fullscreen-mini-back,
.video-fullscreen-overlay.controls-visible .fullscreen-operation,
.video-fullscreen-overlay.controls-visible .fullscreen-actions,
.video-fullscreen-overlay.controls-visible .fullscreen-play,
.video-fullscreen-overlay.controls-visible .fullscreen-controls,
.video-fullscreen-overlay.controls-visible .fullscreen-author[data-user-profile] {
  pointer-events: auto !important;
}

.video-fullscreen-overlay.controls-visible .fullscreen-info,
.video-fullscreen-overlay.controls-visible .fullscreen-counter {
  pointer-events: none !important;
}

.video-fullscreen-overlay .fullscreen-play.hidden,
.video-fullscreen-overlay.controls-visible .fullscreen-play.hidden {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Existing swipe feedback must never resurrect one control by itself. */
.video-fullscreen-overlay:not(.controls-visible).dragging .fullscreen-close,
.video-fullscreen-overlay:not(.controls-visible).dragging .fullscreen-mini-back,
.video-fullscreen-overlay:not(.controls-visible).dragging .fullscreen-counter,
.video-fullscreen-overlay:not(.controls-visible).dragging .fullscreen-operation,
.video-fullscreen-overlay:not(.controls-visible).dragging .fullscreen-info,
.video-fullscreen-overlay:not(.controls-visible).dragging .fullscreen-actions,
.video-fullscreen-overlay:not(.controls-visible).dragging .fullscreen-play,
.video-fullscreen-overlay:not(.controls-visible).dragging .fullscreen-controls {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Preserve the no-flicker compositor path already used by the mini-program. */
.video-fullscreen-overlay.mini-program-fullscreen .fullscreen-close,
.video-fullscreen-overlay.mini-program-fullscreen .fullscreen-mini-back,
.video-fullscreen-overlay.mini-program-fullscreen .fullscreen-counter,
.video-fullscreen-overlay.mini-program-fullscreen .fullscreen-operation,
.video-fullscreen-overlay.mini-program-fullscreen .fullscreen-info,
.video-fullscreen-overlay.mini-program-fullscreen .fullscreen-actions,
.video-fullscreen-overlay.mini-program-fullscreen .fullscreen-play,
.video-fullscreen-overlay.mini-program-fullscreen .fullscreen-controls,
.video-fullscreen-overlay.mini-program-fullscreen .fullscreen-slide::after {
  transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .video-fullscreen-overlay .fullscreen-close,
  .video-fullscreen-overlay .fullscreen-mini-back,
  .video-fullscreen-overlay .fullscreen-counter,
  .video-fullscreen-overlay .fullscreen-operation,
  .video-fullscreen-overlay .fullscreen-info,
  .video-fullscreen-overlay .fullscreen-actions,
  .video-fullscreen-overlay .fullscreen-play,
  .video-fullscreen-overlay .fullscreen-controls,
  .video-fullscreen-overlay .fullscreen-slide::after {
    transition: none !important;
  }
}
