/*
 * Copyright (C) 2020 Apple Inc.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
 */

#if defined(ENABLE_FULLSCREEN_API) && ENABLE_FULLSCREEN_API

:-webkit-full-screen {
    background-color: white;
    z-index: 2147483647 !important;
    width: 100%;
    height: 100%;
}

:root:-webkit-full-screen-document:not(:-webkit-full-screen), :root:-webkit-full-screen-ancestor {
    overflow: hidden !important;
}

:-webkit-full-screen-ancestor:not(iframe) {
    z-index: auto !important;
    position: static !important;
    opacity: 1 !important;
    transform: none !important;
    -webkit-mask: none !important;
    clip: none !important;
    filter: none !important;
    transition: none !important;
    -webkit-box-reflect: none !important;
    perspective: none !important;
    -webkit-transform-style: flat !important;
    overflow: visible !important;
}

video:-webkit-full-screen, audio:-webkit-full-screen {
    background-color: transparent !important;
    position: static !important;
    margin: 0 !important;
    height: 100% !important;
    width: 100% !important;
    flex: 1 !important;
    display: block !important;
    transition: none !important;
}

:-webkit-full-screen video,
video:-webkit-full-screen {
    -webkit-cursor-visibility: auto-hide;
}

img:-webkit-full-screen {
    width: auto;
    height: 100%;
    max-width: 100%;
}

iframe:-webkit-full-screen {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    position: fixed !important;
    height: 100% !important;
    width: 100% !important;
    left: 0 !important;
    top: 0 !important;
    max-width: none !important;
    max-height: none !important;
}

#endif
