/* ViewStream tile mode (spec S11). The host keeps the page's size; the player fills it. */
.vs-tile { position: relative; overflow: hidden; cursor: pointer; background: #0b0d12; }
.vs-tile .video-js.vs-tile__v { position: absolute; inset: 0; width: 100%; height: 100%; background: transparent; }
.vs-tile .vs-tile__v video { object-fit: cover; }
.vs-tile .vs-tile__v .vjs-poster img { object-fit: cover; }
/* poster until the first painted frame, and for good if playback failed */
.vs-tile:not(.vs-tile--frame) .vs-tile__v .vjs-poster,
.vs-tile.vs-tile--failed .vs-tile__v .vjs-poster { display: block !important; z-index: 1; }
.vs-tile.vs-tile--failed .vs-tile__v video { visibility: hidden; }
/* belt and braces: no chrome can appear even if a plugin adds some */
.vs-tile .vjs-control-bar, .vs-tile .vjs-big-play-button, .vs-tile .vjs-loading-spinner,
.vs-tile .vjs-error-display, .vs-tile .vjs-text-track-display, .vs-tile .vjs-title-bar,
.vs-tile .vjs-modal-dialog { display: none !important; }
