/**
 * VanipediaEntry3D v18.22.0 - 2.5D Depth Displacement Base Engine
 * Dual-Texture Day/Night Engine, Animated Glass Bottom Dock, Suppressed Top Notification
 */

/* Fullscreen MediaWiki UI Suppression */
body.ext-vp3d-fullscreen {
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background-color: #08090d !important;
}

body.ext-vp3d-fullscreen #mw-navigation,
body.ext-vp3d-fullscreen #mw-header-container,
body.ext-vp3d-fullscreen .vector-header-container,
body.ext-vp3d-fullscreen .vector-main-menu-container,
body.ext-vp3d-fullscreen #mw-panel,
body.ext-vp3d-fullscreen #mw-head,
body.ext-vp3d-fullscreen #footer,
body.ext-vp3d-fullscreen .mw-footer,
body.ext-vp3d-fullscreen #siteNotice,
body.ext-vp3d-fullscreen .mw-indicators,
body.ext-vp3d-fullscreen #firstHeading,
body.ext-vp3d-fullscreen #catlinks,
body.ext-vp3d-fullscreen .cdx-menu {
    display: none !important;
}

body.ext-vp3d-fullscreen #content,
body.ext-vp3d-fullscreen .mw-body {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    width: 100vw !important;
    height: 100vh !important;
    max-width: 100vw !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 99999 !important;
}

/* Hide Windows / OS Mouse Cursor Everywhere on the Page */
html, body.ext-vp3d-fullscreen, 
.vp-entry3d-wrapper, 
.vp-entry3d-container, 
#vp-depth-canvas,
.vp-cursor-canvas {
    cursor: none !important;
}

/* 3D Entry Container */
.vp-entry3d-wrapper {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    background: #08090d;
    overflow: hidden;
    user-select: none;
    -webkit-user-select: none;
    touch-action: none;
}

.vp-entry3d-container {
    position: relative;
    width: 100%;
    height: 100%;
}

#vp-depth-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
}

/* Radiant Celestial Stars Canvas Layer */
.vp-cursor-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 100;
}

.vp-cursor-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

/* Fully Suppress Top Time of Day Label Pill */
.vp-time-indicator {
    display: none !important;
}

/* Bottom Controls Dock with Entrance Animation */
.vp-bottom-controls {
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    z-index: 120;
    pointer-events: auto;
    animation: vpDockFloatIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes vpDockFloatIn {
    0% {
        opacity: 0;
        transform: translate(-50%, 22px);
    }
    100% {
        opacity: 1;
        transform: translate(-50%, 0);
    }
}

/* Base Animated Button Styling */
.vp-ctrl-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(14, 16, 24, 0.82);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(212, 175, 55, 0.42);
    border-radius: 28px;
    color: #ebdcc2;
    font-family: 'Cinzel', 'Cormorant Garamond', 'Georgia', serif;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.10em;
    padding: 9px 22px;
    outline: none;
    cursor: pointer !important;
    overflow: hidden;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.6), 0 0 12px rgba(212, 175, 55, 0.14);
    transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1),
                background-color 0.28s ease,
                border-color 0.28s ease,
                color 0.28s ease,
                box-shadow 0.28s ease;
    user-select: none;
    -webkit-user-select: none;
}

/* Ambient Golden Aura Breathing Animation */
.vp-audio-btn {
    animation: vpBtnGlowAura 4s ease-in-out infinite;
}

.vp-time-btn {
    animation: vpBtnGlowAura 4s ease-in-out infinite 1.2s;
}

@keyframes vpBtnGlowAura {
    0%, 100% {
        border-color: rgba(212, 175, 55, 0.38);
        box-shadow: 0 4px 18px rgba(0, 0, 0, 0.6), 0 0 10px rgba(212, 175, 55, 0.12);
    }
    50% {
        border-color: rgba(255, 215, 0, 0.65);
        box-shadow: 0 4px 22px rgba(0, 0, 0, 0.65), 0 0 18px rgba(212, 175, 55, 0.30);
    }
}

/* Luminous Diagonal Light Shimmer Sweep on Hover */
.vp-ctrl-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(115deg, transparent 25%, rgba(255, 235, 170, 0.28) 50%, transparent 75%);
    background-size: 200% 100%;
    background-position: 150% 0;
    transition: background-position 0.6s ease, opacity 0.3s ease;
    opacity: 0;
    pointer-events: none;
}

.vp-ctrl-btn:hover {
    background: rgba(24, 26, 38, 0.94);
    border-color: rgba(255, 215, 0, 0.85);
    color: #ffd875;
    box-shadow: 0 8px 28px rgba(212, 175, 55, 0.38), 0 0 22px rgba(255, 215, 0, 0.24);
    transform: translateY(-3px) scale(1.03);
}

.vp-ctrl-btn:hover::before {
    background-position: -50% 0;
    opacity: 1;
}

.vp-ctrl-btn:active {
    transform: translateY(1px) scale(0.96);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.7);
    transition: transform 0.08s ease;
}

/* Button Icon Animation */
.vp-btn-icon {
    display: inline-block;
    font-size: 14px;
    color: #ffd875;
    line-height: 1;
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.vp-ctrl-btn:hover .vp-btn-icon {
    transform: scale(1.2);
}

.vp-btn-label {
    white-space: nowrap;
    transition: opacity 0.16s ease, transform 0.16s ease;
}

.vp-btn-label.is-updating {
    opacity: 0;
    transform: translateY(-4px);
}

/* Prayers Button Playing Animation */
.vp-audio-btn.is-playing {
    border-color: rgba(255, 215, 0, 0.70);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6), 0 0 16px rgba(212, 175, 55, 0.35);
}

.vp-audio-btn.is-playing .vp-btn-icon {
    animation: vpMusicBeat 2s infinite ease-in-out;
}

@keyframes vpMusicBeat {
    0%, 100% {
        transform: scale(1) rotate(0deg);
    }
    20% {
        transform: scale(1.22) rotate(-8deg);
    }
    40% {
        transform: scale(1.05) rotate(6deg);
    }
    60% {
        transform: scale(1.22) rotate(-5deg);
    }
    80% {
        transform: scale(1.08) rotate(3deg);
    }
}

/* Audio Status Dot with Acoustic Wave Ripple */
.vp-status-dot {
    position: relative;
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #68707c;
    transition: all 0.3s ease;
}

.vp-status-dot.is-active {
    background: #4cd964;
    box-shadow: 0 0 10px #4cd964;
    animation: vpAcousticRipple 1.8s infinite cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes vpAcousticRipple {
    0% {
        box-shadow: 0 0 0 0 rgba(76, 217, 100, 0.8);
    }
    70% {
        box-shadow: 0 0 0 8px rgba(76, 217, 100, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(76, 217, 100, 0);
    }
}

.vp-status-dot.is-muted {
    background: #8e94a0;
    box-shadow: none;
    animation: none;
}

/* Time Button Hover & Celestial Spin Animation */
.vp-time-btn:hover .vp-btn-icon {
    transform: rotate(45deg) scale(1.25);
    filter: drop-shadow(0 0 6px #ffd875);
}

.vp-time-btn.is-cycling .vp-btn-icon {
    animation: vpCelestialSpin 0.52s cubic-bezier(0.2, 0.8, 0.2, 1);
}

@keyframes vpCelestialSpin {
    0% {
        transform: rotate(0deg) scale(1);
    }
    50% {
        transform: rotate(180deg) scale(1.4);
    }
    100% {
        transform: rotate(360deg) scale(1);
    }
}

/* Mobile Auto-Landscape Rotation when holding phone in portrait */
.vp-entry3d-container.is-auto-landscape {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    transform-origin: top left !important;
    transform: rotate(90deg) translate(0, -100%) !important;
}

/* Transition Curtain Overlay */
.vp-entry3d-curtain {
    position: absolute;
    inset: 0;
    background: #06070a;
    pointer-events: none;
    z-index: 200;
    opacity: 0;
    transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.vp-entry3d-curtain.active {
    opacity: 1;
    pointer-events: auto;
}
