/**
 * Critical CSS for slideshow placeholder
 * This tiny file loads quickly to show the loading state immediately
 * before the larger dashboard_slideshow.css finishes loading.
 */

.slideshow-preview-wrapper {
    position: relative;
    width: 100%;
    max-width: 100%;
    background: #000;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 16 / 9;
}

.slideshow-initial-loader {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
    gap: 16px;
    z-index: 5;
}

.slideshow-initial-loader i {
    font-size: 48px;
    opacity: 0.7;
    animation: slideshow-pulse 1.5s ease-in-out infinite;
}

.slideshow-initial-loader span {
    font-size: 16px;
    opacity: 0.6;
}

@keyframes slideshow-pulse {
    0%, 100% { opacity: 0.5; transform: scale(1); }
    50% { opacity: 0.8; transform: scale(1.05); }
}

/* Static "first frame" poster: covers the loader until the live demo engine
   mounts (the engine wipes the wrapper, removing the poster). If the poster
   image fails, the loader remains visible behind it. */
.tv-poster {
    position: absolute;
    inset: 0;
    z-index: 6;
}

.tv-poster img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Responsive adjustments */
@media (max-width: 480px) {
    .slideshow-initial-loader i {
        font-size: 32px;
    }
    
    .slideshow-initial-loader span {
        font-size: 12px;
    }
}

@media (max-width: 320px) {
    .slideshow-initial-loader i {
        font-size: 24px;
    }
    
    .slideshow-initial-loader span {
        font-size: 10px;
    }
    
    .slideshow-preview-wrapper {
        border-radius: 6px;
    }
}
