/* Shared loading presentation; palette remains overridable in Additional CSS. */
html.camsers-media-js :is(.videowhisperWebcam, .videowhisperWebcam2, .videowhisperPicture, .videowhisperVideo, .videowhisperContent) { background-color: var(--reign-site-sections-bg-color); }
html.camsers-media-js :is(.videowhisperWebcam, .videowhisperWebcam2, .videowhisperPicture, .videowhisperVideo, .videowhisperContent) :is(img.videowhisperPreview, img.videowhisperPreview2, img.videowhisperPreviewImg, img.camsers-vwcp-image, .videowhisperPicture > a > img, .videowhisperVideo > a > img) { transition: opacity .18s ease; }
html.camsers-media-js :is(.videowhisperWebcam, .videowhisperWebcam2, .videowhisperPicture, .videowhisperVideo, .videowhisperContent) :is(img.videowhisperPreview, img.videowhisperPreview2, img.videowhisperPreviewImg, img.camsers-vwcp-image, .videowhisperPicture > a > img, .videowhisperVideo > a > img):not(.camsers-media-ready) { opacity: 0 !important; }
html.camsers-media-js :is(.videowhisperWebcam, .videowhisperWebcam2, .videowhisperPicture, .videowhisperVideo, .videowhisperContent) img.camsers-media-failed { visibility: hidden !important; }
@media (prefers-reduced-motion: reduce) {
    html.camsers-media-js :is(.videowhisperWebcam, .videowhisperWebcam2, .videowhisperPicture, .videowhisperVideo, .videowhisperContent) :is(img.videowhisperPreview, img.videowhisperPreview2, img.videowhisperPreviewImg, img.camsers-vwcp-image, .videowhisperPicture > a > img, .videowhisperVideo > a > img) { transition: none; }
}
