/**
 * RADIO MODE - SPECIFIC STYLES
 * Расширения и переопределения для радио режима
 * Базовые стили наследуются из style.css
 */

/* ============================================================================= */
/* RADIO PLAYER CONTAINER */
/* ============================================================================= */

/* Используем те же размеры что и Episodes player */
.radio-player {
    /* Наследует стили из .player в style.css */
}

/* Light indicator зеркально отражён по горизонтали для radio режима */
.radio-player .light-img {
    transform: scaleX(-1);
}

/* ============================================================================= */
/* RADIO SCREEN SECTION - NOW PLAYING */
/* ============================================================================= */

.radio-screen-container {
    position: relative;
    width: 100%;
    aspect-ratio: 342 / 221;
    overflow: hidden;
    clip-path: inset(0);
}


/* ============================================================================= */
/* RADIO LOADING ANIMATION (покадровая анимация при переходе в Radio)        */
/* ============================================================================= */

.radio-loading-frame {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    pointer-events: none;
    opacity: 0;
}

.radio-loading-frame.playing {
    opacity: 1;
}

.radio-loading-frame.done {
    opacity: 0;
    transition: opacity 0.4s ease;
}

.radio-cage-hidden {
    opacity: 0;
    transition: opacity 400ms ease;
}

.radio-cage-hidden.revealed {
    opacity: 1;
    transition: opacity 0.4s ease;
}

/* ============================================================================= */
/* RADIO DISPLAY SCREEN (поверх RadioDisplayCage) */
/* ============================================================================= */

.radio-display-screen-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    z-index: 3;
    pointer-events: none;
    opacity: 1;
    transition: opacity 400ms ease; /* плавный restore при unloading */
}

.radio-display-screen-img.dimmed {
    opacity: 0.6;
    transition: opacity 120ms ease; /* быстрый dim при loading */
}

/* ============================================================================= */
/* RADIO DISPLAY CAGE */
/* ============================================================================= */

.radio-display-cage-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    z-index: 1;
}

/* ============================================================================= */
/* RADIO DISPLAY TEXT (поверх RadioDisplayCage) */
/* ============================================================================= */

.radio-display-text-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    z-index: 2;
    pointer-events: none;
}

.radio-text-hidden {
    opacity: 0;
    transition: opacity 400ms ease;
}

.radio-text-hidden.revealed {
    opacity: 1;
    transition: opacity 0.4s ease;
}

/* ============================================================================= */
/* RADIO PLAY BUTTON */
/* ============================================================================= */

/* Кнопка Play наследует стили из style.css */
/* Переключение Play/Pause управляется классом .playing */
/* Визуальная обратная связь управляется классом .active */

.radio-play-section {
    /* Наследует позиционирование из .player-play-section */
    flex-grow: 0;
    padding-top: 4%;
}


/* ============================================================================= */
/* LIGHT INDICATOR (наследует из style.css, добавляем radio-специфичные стили) */
/* ============================================================================= */

/* Left-align header в radio режиме (в episodes — right) */
.radio-player .player-header {
    justify-content: flex-start;
    padding-right: 0;
    padding-left: 9%;
    padding-top: calc(4vh - 3%);
}

/* Пульсация при воспроизведении */
body[data-playing="true"] .radio-player .light-indicator {
    animation: radioLightPulse 2s ease-in-out infinite;
}

@keyframes radioLightPulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
}

/* ============================================================================= */
/* ADAPTIVE LAYOUT */
/* ============================================================================= */

/* Episodes-only элементы (slider, timecode, nav) теперь внутри #episodesPlayer,
   который скрывается целиком через style.css при data-mode="radio" */

/* ============================================================================= */
/* RESPONSIVE DESIGN */
/* ============================================================================= */



/* ============================================================================= */
/* ACCESSIBILITY */
/* ============================================================================= */

@media (prefers-reduced-motion: reduce) {
    body[data-playing="true"] .radio-player .light-indicator {
        animation: none;
    }
}

/* ============================================================================= */
/* DARK MODE (дополнительная поддержка) */
/* ============================================================================= */

@media (prefers-color-scheme: dark) {
    /* Стили уже в dark mode, но можно добавить дополнительные */
}

/* ============================================================================= */
/* UTILITIES */
/* ============================================================================= */

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Hidden элемент */
.hidden {
    display: none !important;
}

/* Fade in animation */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.fade-in {
    animation: fadeIn 0.3s ease;
}
