/* ===== ENHANCED VIDEO PLAY BUTTON & ANIMATIONS ===== */

/* Video Play Overlay Container */
.video-play-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 15;
    background: rgba(0, 0, 0, 0.15);
    transition: background 0.4s ease;
}

.video-play-overlay:hover {
    background: rgba(0, 0, 0, 0.25);
}

/* Play Button Container with Shadow and Glow */
.play-button-container {
    position: relative;
    width: 120px;
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-right: 50px;
}

/* Inner Shadow/Glow Effect */
.play-button-container::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 130px;
    height: 130px;
    background: radial-gradient(circle, rgba(255, 215, 0, 0.3) 0%, rgba(255, 215, 0, 0.1) 70%, transparent 100%);
    border-radius: 50%;
    z-index: 1;
    animation: glowPulse 3s ease-in-out infinite;
}

/* Main Play Button */
.play-button {
    position: relative;
    width: 100px;
    height: 100px;
    background: linear-gradient(135deg, #ffd700 0%, #ffed4e 50%, #ffc700 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1a1a1a;
    font-size: 2.5rem;
    font-weight: bold;
    z-index: 3;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: 
        0 10px 40px rgba(255, 215, 0, 0.4),
        0 0 0 0 rgba(255, 215, 0, 0.7),
        inset -2px -2px 8px rgba(0, 0, 0, 0.1),
        inset 2px 2px 8px rgba(255, 255, 255, 0.3);
    border: 3px solid rgba(255, 255, 255, 0.4);
}

/* Play Button Icon Animation */
.play-button i::before {
    display: block;
    animation: playIconBounce 2s ease-in-out infinite;
}

/* Play Button Hover State */
.video-play-overlay:hover .play-button {
    background: linear-gradient(135deg, #ffed4e 0%, #fff500 50%, #ffd700 100%);
    transform: scale(1.12);
    box-shadow: 
        0 15px 50px rgba(255, 215, 0, 0.6),
        0 0 0 8px rgba(255, 215, 0, 0.2),
        inset -2px -2px 8px rgba(0, 0, 0, 0.15),
        inset 2px 2px 8px rgba(255, 255, 255, 0.4);
}

/* Ripple Effect Circles */
.play-ripple {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100px;
    height: 100px;
    border-radius: 50%;
    z-index: 2;
}

/* Ripple 1 - Slow outer ring */
.play-ripple::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    border: 2px solid rgba(255, 215, 0, 0.6);
    box-shadow: 0 0 15px rgba(255, 215, 0, 0.4);
    animation: rippleExpand 2.5s ease-out infinite;
    z-index: 1;
}

/* Ripple 2 - Medium speed ring */
.play-ripple::after {
    content: '';
    position: absolute;
    top: -15px;
    left: -15px;
    width: calc(100% + 30px);
    height: calc(100% + 30px);
    border-radius: 50%;
    border: 1.5px solid rgba(255, 215, 0, 0.4);
    box-shadow: 0 0 10px rgba(255, 215, 0, 0.3);
    animation: rippleExpand 3s ease-out infinite;
    animation-delay: 0.3s;
    z-index: 0;
}

/* Pulsing Stars Around Button */
.play-button-container::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 160px;
    height: 160px;
    border-radius: 50%;
    background: radial-gradient(circle at 0% 50%, rgba(255, 215, 0, 0.2), transparent 50%),
                radial-gradient(circle at 100% 50%, rgba(255, 215, 0, 0.2), transparent 50%),
                radial-gradient(circle at 50% 0%, rgba(255, 215, 0, 0.2), transparent 50%),
                radial-gradient(circle at 50% 100%, rgba(255, 215, 0, 0.2), transparent 50%);
    animation: starsRotate 8s linear infinite;
    z-index: 0;
}

/* ===== ANIMATIONS ===== */

/* Glow Pulse Animation */
@@keyframes glowPulse {
    0%, 100% {
        box-shadow: 0 0 30px rgba(255, 215, 0, 0.4),
                    0 0 60px rgba(255, 215, 0, 0.2);
        transform: translate(-50%, -50%) scale(1);
    }
    50% {
        box-shadow: 0 0 40px rgba(255, 215, 0, 0.6),
                    0 0 80px rgba(255, 215, 0, 0.3);
        transform: translate(-50%, -50%) scale(1.05);
    }
}

/* Ripple Expand Animation */
@@keyframes rippleExpand {
    0% {
        transform: scale(1);
        opacity: 1;
    }
    100% {
        transform: scale(1.8);
        opacity: 0;
    }
}

/* Stars Rotate Animation */
@@keyframes starsRotate {
    0% {
        transform: translate(-50%, -50%) rotate(0deg);
    }
    100% {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

/* Play Icon Bounce Animation */
@@keyframes playIconBounce {
    0%, 100% {
        transform: translateX(0);
    }
    25% {
        transform: translateX(2px);
    }
    75% {
        transform: translateX(-2px);
    }
}

/* Active/Clicked State Animation */
.video-play-overlay.active .play-button {
    animation: clickPulse 0.6s ease-out;
}

@@keyframes clickPulse {
    0% {
        transform: scale(1.12);
        box-shadow: 
            0 15px 50px rgba(255, 215, 0, 0.8),
            0 0 0 15px rgba(255, 215, 0, 0.3);
    }
    50% {
        transform: scale(1.08);
        box-shadow: 
            0 10px 30px rgba(255, 215, 0, 0.5),
            0 0 0 20px rgba(255, 215, 0, 0.15);
    }
    100% {
        transform: scale(1.12);
        box-shadow: 
            0 15px 50px rgba(255, 215, 0, 0.6),
            0 0 0 8px rgba(255, 215, 0, 0.2);
    }
}

/* Shine Effect Animation */
@@keyframes shine {
    0% {
        background-position: -1000px 0;
    }
    100% {
        background-position: 1000px 0;
    }
}

/* Additional Shimmer on Hover */
.video-play-overlay:hover .play-button {
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.3) 50%,
        rgba(255, 255, 255, 0) 100%
    ),
    linear-gradient(135deg, #ffed4e 0%, #fff500 50%, #ffd700 100%);
    background-size: 200% 100%, 100% 100%;
    animation: shine 3s linear infinite;
}

/* Mobile/Touch Device Optimization */
@media (max-width: 768px) {
    .play-button-container {
        width: 100px;
        height: 100px;
        padding-right: 30px;
    }

    .play-button {
        width: 85px;
        height: 85px;
        font-size: 2rem;
    }

    .play-button-container::before {
        width: 110px;
        height: 110px;
    }

    .play-button-container::after {
        width: 140px;
        height: 140px;
    }

    .play-ripple::before {
        border-width: 1.5px;
    }

    .play-ripple::after {
        border-width: 1px;
    }
}

/* Tablet Optimization */
@media (min-width: 769px) and (max-width: 1024px) {
    .play-button-container {
        width: 110px;
        height: 110px;
        padding-right: 40px;
    }

    .play-button {
        width: 90px;
        height: 90px;
        font-size: 2.2rem;
    }

    .play-button-container::before {
        width: 120px;
        height: 120px;
    }
}

/* Accessibility - Focus State for Keyboard Navigation */
.video-play-overlay:focus-within .play-button,
.video-play-overlay:focus .play-button {
    outline: 3px solid #ffd700;
    outline-offset: 4px;
    box-shadow: 
        0 15px 50px rgba(255, 215, 0, 0.6),
        0 0 0 8px rgba(255, 215, 0, 0.2),
        inset -2px -2px 8px rgba(0, 0, 0, 0.1),
        inset 2px 2px 8px rgba(255, 255, 255, 0.3);
}

/* Smooth Transitions and Transforms */
* {
    /* Ensures smooth animations */
    backface-visibility: hidden;
    -webkit-font-smoothing: antialiased;
}

/* Dark Mode Support */
@media (prefers-color-scheme: dark) {
    .video-play-overlay {
        background: rgba(0, 0, 0, 0.25);
    }

    .video-play-overlay:hover {
        background: rgba(0, 0, 0, 0.35);
    }

    .play-button {
        box-shadow: 
            0 10px 40px rgba(255, 215, 0, 0.5),
            0 0 0 0 rgba(255, 215, 0, 0.8),
            inset -2px -2px 8px rgba(0, 0, 0, 0.3),
            inset 2px 2px 8px rgba(255, 255, 255, 0.1);
    }
}

/* Reduced Motion for Accessibility */
@media (prefers-reduced-motion: reduce) {
    .play-button-container::before,
    .play-button,
    .play-ripple::before,
    .play-ripple::after,
    .play-button-container::after {
        animation: none !important;
        transition: none !important;
    }

    .video-play-overlay:hover .play-button {
        transform: scale(1.05);
    }
}
