{"id":11,"date":"2026-05-05T13:42:59","date_gmt":"2026-05-05T13:42:59","guid":{"rendered":"https:\/\/googlecumbia.metricavisual.com\/home\/"},"modified":"2026-08-27T23:10:38","modified_gmt":"2026-08-27T23:10:38","slug":"full-radios","status":"publish","type":"page","link":"https:\/\/googlecumbia.metricavisual.com\/?page_id=11","title":{"rendered":"RADIOS AQUI"},"content":{"rendered":"\n<!--nextpage-->\n\n\n\n<style>\n\/* ==========================================\n   REPRODUCTOR HLS GOOGLE CUMBIA\n========================================== *\/\n\n.gcp-tv-player,\n.gcp-tv-player * {\n    box-sizing: border-box;\n}\n\n.gcp-tv-player {\n    --gcp-accent: #ff5a00;\n    --gcp-bg: #090909;\n    --gcp-panel: #171717;\n\n    width: 100%;\n    max-width: 1200px;\n    margin: 24px auto;\n    padding: 18px;\n    overflow: hidden;\n    background:\n        radial-gradient(circle at top, rgba(255, 90, 0, 0.12), transparent 42%),\n        var(--gcp-panel);\n    border: 1px solid rgba(255, 255, 255, 0.08);\n    border-radius: 20px;\n    color: #fff;\n    font-family: Arial, sans-serif;\n    box-shadow: 0 16px 45px rgba(0, 0, 0, 0.35);\n}\n\n.gcp-tv-header {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 15px;\n    margin-bottom: 15px;\n}\n\n.gcp-tv-heading {\n    min-width: 0;\n}\n\n.gcp-tv-heading h2 {\n    margin: 0;\n    color: #fff;\n    font-size: clamp(20px, 3vw, 30px);\n    line-height: 1.2;\n}\n\n.gcp-tv-status {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    margin: 7px 0 0;\n    color: #bbb;\n    font-size: 14px;\n}\n\n.gcp-tv-status-dot {\n    width: 9px;\n    height: 9px;\n    flex: 0 0 9px;\n    background: #777;\n    border-radius: 50%;\n}\n\n.gcp-tv-status.is-live .gcp-tv-status-dot {\n    background: #21c45a;\n    box-shadow: 0 0 0 5px rgba(33, 196, 90, 0.14);\n}\n\n.gcp-tv-live-badge {\n    display: inline-flex;\n    align-items: center;\n    gap: 7px;\n    flex: 0 0 auto;\n    padding: 8px 12px;\n    background: #d90000;\n    border-radius: 999px;\n    color: #fff;\n    font-size: 12px;\n    font-weight: 800;\n    letter-spacing: 0.7px;\n    text-transform: uppercase;\n}\n\n.gcp-tv-live-badge::before {\n    content: \"\";\n    width: 8px;\n    height: 8px;\n    background: #fff;\n    border-radius: 50%;\n    animation: gcp-live-pulse 1.3s ease-in-out infinite;\n}\n\n.gcp-tv-screen {\n    position: relative;\n    width: 100%;\n    overflow: hidden;\n    background: #000;\n    border-radius: 16px;\n    aspect-ratio: 16 \/ 9;\n}\n\n.gcp-tv-video {\n    display: block;\n    width: 100%;\n    height: 100%;\n    background: #000;\n    object-fit: contain;\n}\n\n\/* Capa inicial y errores (Ubicada bien arriba) *\/\n.gcp-tv-overlay {\n    position: absolute;\n    inset: 0;\n    z-index: 5;\n    display: flex;\n    align-items: flex-start;\n    justify-content: center;\n    padding: 4% 24px 24px; \/* Padding superior reducido para subirlo m\u00e1s *\/\n    background:\n        linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.78));\n    text-align: center;\n    transition:\n        opacity 0.25s ease,\n        visibility 0.25s ease;\n}\n\n.gcp-tv-overlay.is-hidden {\n    visibility: hidden;\n    opacity: 0;\n    pointer-events: none;\n}\n\n.gcp-tv-overlay-content {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    width: min(100%, 600px);\n    margin: 0 auto;\n}\n\n.gcp-tv-overlay-icon {\n    display: block;\n    margin-bottom: 6px;\n    font-size: 52px;\n}\n\n.gcp-tv-overlay-title {\n    margin: 0 0 6px;\n    color: #fff;\n    font-size: clamp(22px, 4vw, 32px);\n}\n\n.gcp-tv-overlay-message {\n    margin: 0 0 18px;\n    color: #d4d4d4;\n    font-size: 16px;\n    line-height: 1.5;\n}\n\n\/* Bot\u00f3n m\u00e1s grande y destacado *\/\n.gcp-tv-start-button,\n.gcp-tv-retry-button {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 12px;\n    min-height: 60px;\n    padding: 16px 36px;\n    margin: 0 auto;\n    border: 0;\n    border-radius: 999px;\n    background: var(--gcp-accent);\n    color: #fff;\n    font-size: 18px;\n    font-weight: 800;\n    cursor: pointer;\n    align-self: center;\n    box-shadow: 0 8px 25px rgba(255, 90, 0, 0.4);\n    transition:\n        transform 0.2s ease,\n        filter 0.2s ease,\n        box-shadow 0.2s ease;\n}\n\n.gcp-tv-start-button:hover,\n.gcp-tv-retry-button:hover {\n    transform: translateY(-3px) scale(1.03);\n    filter: brightness(1.1);\n    box-shadow: 0 12px 30px rgba(255, 90, 0, 0.55);\n}\n\n\/* Cargando *\/\n.gcp-tv-loader {\n    display: none;\n    position: absolute;\n    inset: 0;\n    z-index: 4;\n    align-items: center;\n    justify-content: center;\n    pointer-events: none;\n}\n\n.gcp-tv-loader.is-visible {\n    display: flex;\n}\n\n.gcp-tv-spinner {\n    width: 52px;\n    height: 52px;\n    border: 5px solid rgba(255, 255, 255, 0.2);\n    border-top-color: var(--gcp-accent);\n    border-radius: 50%;\n    animation: gcp-spinner 0.8s linear infinite;\n}\n\n\/* Barra inferior informativa *\/\n.gcp-tv-info {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 14px;\n    margin-top: 14px;\n    padding: 12px 14px;\n    background: rgba(255, 255, 255, 0.04);\n    border-radius: 12px;\n}\n\n.gcp-tv-info-text {\n    min-width: 0;\n}\n\n.gcp-tv-info strong {\n    display: block;\n    margin-bottom: 4px;\n    color: #fff;\n}\n\n.gcp-tv-info small {\n    display: block;\n    overflow: hidden;\n    color: #aaa;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n}\n\n.gcp-tv-actions {\n    display: flex;\n    flex: 0 0 auto;\n    gap: 8px;\n}\n\n.gcp-tv-action {\n    min-height: 40px;\n    padding: 9px 13px;\n    border: 1px solid rgba(255, 255, 255, 0.14);\n    border-radius: 10px;\n    background: rgba(255, 255, 255, 0.06);\n    color: #fff;\n    font-weight: 700;\n    cursor: pointer;\n}\n\n.gcp-tv-action:hover {\n    background: rgba(255, 255, 255, 0.12);\n}\n\n@keyframes gcp-spinner {\n    to {\n        transform: rotate(360deg);\n    }\n}\n\n@keyframes gcp-live-pulse {\n    0%,\n    100% {\n        opacity: 1;\n    }\n\n    50% {\n        opacity: 0.35;\n    }\n}\n\n@media (max-width: 700px) {\n    .gcp-tv-player {\n        margin: 14px auto;\n        padding: 10px;\n        border-radius: 14px;\n    }\n\n    .gcp-tv-screen {\n        border-radius: 10px;\n    }\n\n    .gcp-tv-overlay {\n        padding-top: 2%;\n    }\n\n    .gcp-tv-start-button,\n    .gcp-tv-retry-button {\n        min-height: 50px;\n        padding: 12px 24px;\n        font-size: 15px;\n    }\n\n    .gcp-tv-header {\n        align-items: flex-start;\n    }\n\n    .gcp-tv-info {\n        align-items: stretch;\n        flex-direction: column;\n    }\n\n    .gcp-tv-actions {\n        width: 100%;\n    }\n\n    .gcp-tv-action {\n        flex: 1;\n    }\n}\n<\/style>\n\n<section class=\"gcp-tv-player\" id=\"gcpTvPlayer\">\n    <div class=\"gcp-tv-header\">\n        <div class=\"gcp-tv-heading\">\n            <h2>Televisi\u00f3n en vivo<\/h2>\n\n            <p class=\"gcp-tv-status\" id=\"gcpTvStatus\">\n                <span class=\"gcp-tv-status-dot\"><\/span>\n                <span id=\"gcpTvStatusText\">Preparando se\u00f1al\u2026<\/span>\n            <\/p>\n        <\/div>\n\n        <span class=\"gcp-tv-live-badge\">En vivo<\/span>\n    <\/div>\n\n    <div class=\"gcp-tv-screen\" id=\"gcpTvScreen\">\n        <video class=\"gcp-tv-video\" id=\"gcpHlsVideo\" controls=\"\" playsinline=\"\" preload=\"metadata\" crossorigin=\"anonymous\"><\/video>\n\n        <div class=\"gcp-tv-loader\" id=\"gcpTvLoader\">\n            <span class=\"gcp-tv-spinner\"><\/span>\n        <\/div>\n\n        <div class=\"gcp-tv-overlay\" id=\"gcpTvOverlay\">\n            <div class=\"gcp-tv-overlay-content\">\n                <span class=\"gcp-tv-overlay-icon\" id=\"gcpTvOverlayIcon\">\u25b6<\/span>\n\n                <h3 class=\"gcp-tv-overlay-title\" id=\"gcpTvOverlayTitle\">\n                    Retro TV. OnLine\n                <\/h3>\n\n                <p class=\"gcp-tv-overlay-message\" id=\"gcpTvOverlayMessage\">\n                    Pulsa el bot\u00f3n para iniciar la transmisi\u00f3n en vivo.\n                <\/p>\n\n                <button type=\"button\" class=\"gcp-tv-start-button\" id=\"gcpTvStartButton\">\n                    \u25b6 Ver transmisi\u00f3n\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"gcp-tv-info\">\n        <div class=\"gcp-tv-info-text\">\n            <strong>Canal en vivo<\/strong>\n            <small id=\"gcpTvTechnicalStatus\">HLS \u00b7 Calidad autom\u00e1tica<\/small>\n        <\/div>\n\n        <div class=\"gcp-tv-actions\">\n            <button type=\"button\" class=\"gcp-tv-action\" id=\"gcpTvReload\">\n                \u21bb Recargar\n            <\/button>\n\n            <button type=\"button\" class=\"gcp-tv-action\" id=\"gcpTvFullscreen\">\n                \u26f6 Pantalla completa\n            <\/button>\n        <\/div>\n    <\/div>\n<\/section>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/hls.js@1\/dist\/hls.min.js\"><\/script>\n\n<script>\n(function () {\n    \"use strict\";\n\n    const STREAM_URL =\n        \"https:\/\/lbgo.bozztv.com\/ssh101\/ssh101\/wowchannelsd\/chunks.m3u8?lb_backend_hint=7\";\n\n    const video = document.getElementById(\"gcpHlsVideo\");\n    const playerContainer = document.getElementById(\"gcpTvPlayer\");\n    const screen = document.getElementById(\"gcpTvScreen\");\n    const overlay = document.getElementById(\"gcpTvOverlay\");\n    const overlayIcon = document.getElementById(\"gcpTvOverlayIcon\");\n    const overlayTitle = document.getElementById(\"gcpTvOverlayTitle\");\n    const overlayMessage = document.getElementById(\"gcpTvOverlayMessage\");\n    const startButton = document.getElementById(\"gcpTvStartButton\");\n    const loader = document.getElementById(\"gcpTvLoader\");\n    const status = document.getElementById(\"gcpTvStatus\");\n    const statusText = document.getElementById(\"gcpTvStatusText\");\n    const technicalStatus = document.getElementById(\"gcpTvTechnicalStatus\");\n    const reloadButton = document.getElementById(\"gcpTvReload\");\n    const fullscreenButton = document.getElementById(\"gcpTvFullscreen\");\n\n    let hls = null;\n    let started = false;\n    let recoveryAttempts = 0;\n    const MAX_RECOVERY_ATTEMPTS = 3;\n\n    function setLoading(isLoading) {\n        loader.classList.toggle(\"is-visible\", isLoading);\n    }\n\n    function setStatus(message, isLive) {\n        statusText.textContent = message;\n        status.classList.toggle(\"is-live\", Boolean(isLive));\n    }\n\n    function hideOverlay() {\n        overlay.classList.add(\"is-hidden\");\n    }\n\n    function showOverlay(options) {\n        const config = Object.assign(\n            {\n                icon: \"\u26a0\",\n                title: \"No se pudo reproducir\",\n                message: \"La se\u00f1al no est\u00e1 disponible temporalmente.\",\n                button: \"Reintentar\"\n            },\n            options || {}\n        );\n\n        overlayIcon.textContent = config.icon;\n        overlayTitle.textContent = config.title;\n        overlayMessage.textContent = config.message;\n        startButton.textContent = config.button;\n        startButton.className = \"gcp-tv-retry-button\";\n        overlay.classList.remove(\"is-hidden\");\n    }\n\n    function destroyCurrentStream() {\n        if (hls) {\n            hls.destroy();\n            hls = null;\n        }\n\n        video.pause();\n        video.removeAttribute(\"src\");\n        video.load();\n    }\n\n    function tryPlay() {\n        const playPromise = video.play();\n\n        if (playPromise && typeof playPromise.catch === \"function\") {\n            playPromise.catch(function () {\n                setStatus(\"Pulsa reproducir para comenzar\", false);\n                technicalStatus.textContent =\n                    \"La se\u00f1al est\u00e1 lista \u00b7 Autoplay bloqueado\";\n            });\n        }\n    }\n\n    function loadNativeHls() {\n        technicalStatus.textContent = \"HLS nativo \u00b7 Calidad autom\u00e1tica\";\n        video.src = STREAM_URL;\n\n        video.addEventListener(\n            \"loadedmetadata\",\n            function () {\n                setLoading(false);\n                setStatus(\"Se\u00f1al conectada\", true);\n                hideOverlay();\n                tryPlay();\n            },\n            { once: true }\n        );\n\n        video.addEventListener(\n            \"error\",\n            function () {\n                setLoading(false);\n                showOverlay({\n                    title: \"Error de reproducci\u00f3n\",\n                    message:\n                        \"El navegador no pudo abrir la se\u00f1al HLS nativa.\",\n                    button: \"Volver a intentar\"\n                });\n                setStatus(\"Se\u00f1al no disponible\", false);\n            },\n            { once: true }\n        );\n    }\n\n    function loadWithHlsJs() {\n        hls = new Hls({\n            enableWorker: true,\n            lowLatencyMode: true,\n            backBufferLength: 60,\n            maxBufferLength: 30,\n            maxMaxBufferLength: 60\n        });\n\n        technicalStatus.textContent =\n            \"hls.js \u00b7 Detectando calidad autom\u00e1ticamente\";\n\n        hls.loadSource(STREAM_URL);\n        hls.attachMedia(video);\n\n        hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {\n            recoveryAttempts = 0;\n            setLoading(false);\n            setStatus(\"Se\u00f1al conectada\", true);\n            hideOverlay();\n\n            const levels = data && data.levels ? data.levels.length : 0;\n\n            technicalStatus.textContent = levels > 1\n                ? \"HLS \u00b7 \" + levels + \" calidades disponibles\"\n                : \"HLS \u00b7 Calidad autom\u00e1tica\";\n\n            tryPlay();\n        });\n\n        hls.on(Hls.Events.LEVEL_SWITCHED, function (event, data) {\n            const level = hls.levels[data.level];\n\n            if (level && level.height) {\n                technicalStatus.textContent =\n                    \"HLS \u00b7 \" + level.height + \"p \u00b7 En vivo\";\n            }\n        });\n\n        hls.on(Hls.Events.ERROR, function (event, data) {\n            if (!data.fatal) {\n                return;\n            }\n\n            recoveryAttempts += 1;\n\n            if (recoveryAttempts > MAX_RECOVERY_ATTEMPTS) {\n                setLoading(false);\n                setStatus(\"Se\u00f1al interrumpida\", false);\n\n                showOverlay({\n                    title: \"Transmisi\u00f3n no disponible\",\n                    message:\n                        \"La se\u00f1al no respondi\u00f3 despu\u00e9s de varios intentos. Puede estar fuera de l\u00ednea o bloqueando la reproducci\u00f3n externa.\",\n                    button: \"Reintentar se\u00f1al\"\n                });\n\n                destroyCurrentStream();\n                return;\n            }\n\n            switch (data.type) {\n                case Hls.ErrorTypes.NETWORK_ERROR:\n                    setStatus(\"Reconectando se\u00f1al\u2026\", false);\n                    technicalStatus.textContent =\n                        \"Error de red \u00b7 Intentando reconectar\";\n                    hls.startLoad();\n                    break;\n\n                case Hls.ErrorTypes.MEDIA_ERROR:\n                    setStatus(\"Recuperando video\u2026\", false);\n                    technicalStatus.textContent =\n                        \"Error multimedia \u00b7 Recuperando\";\n                    hls.recoverMediaError();\n                    break;\n\n                default:\n                    destroyCurrentStream();\n                    startStream();\n                    break;\n            }\n        });\n    }\n\n    function startStream() {\n        destroyCurrentStream();\n\n        started = true;\n        recoveryAttempts = 0;\n\n        setLoading(true);\n        setStatus(\"Conectando con la se\u00f1al\u2026\", false);\n        technicalStatus.textContent = \"Cargando transmisi\u00f3n HLS\u2026\";\n\n        if (video.canPlayType(\"application\/vnd.apple.mpegurl\")) {\n            loadNativeHls();\n            return;\n        }\n\n        if (window.Hls && Hls.isSupported()) {\n            loadWithHlsJs();\n            return;\n        }\n\n        setLoading(false);\n        setStatus(\"Navegador incompatible\", false);\n\n        showOverlay({\n            icon: \"!\",\n            title: \"Navegador no compatible\",\n            message:\n                \"Este navegador no permite reproducir transmisiones HLS.\",\n            button: \"Intentar nuevamente\"\n        });\n    }\n\n    startButton.addEventListener(\"click\", function () {\n        startStream();\n    });\n\n    reloadButton.addEventListener(\"click\", function () {\n        startStream();\n    });\n\n    fullscreenButton.addEventListener(\"click\", function () {\n        if (document.fullscreenElement) {\n            document.exitFullscreen();\n            return;\n        }\n\n        if (screen.requestFullscreen) {\n            screen.requestFullscreen();\n        } else if (video.webkitEnterFullscreen) {\n            video.webkitEnterFullscreen();\n        }\n    });\n\n    video.addEventListener(\"waiting\", function () {\n        if (started) {\n            setLoading(true);\n            setStatus(\"Almacenando se\u00f1al\u2026\", false);\n        }\n    });\n\n    video.addEventListener(\"playing\", function () {\n        setLoading(false);\n        setStatus(\"Transmitiendo en vivo\", true);\n        hideOverlay();\n    });\n\n    video.addEventListener(\"pause\", function () {\n        if (!video.ended && video.currentTime > 0) {\n            setStatus(\"Transmisi\u00f3n pausada\", false);\n        }\n    });\n\n    video.addEventListener(\"ended\", function () {\n        setStatus(\"La transmisi\u00f3n termin\u00f3\", false);\n    });\n\n    window.addEventListener(\"beforeunload\", function () {\n        destroyCurrentStream();\n    });\n})();\n<\/script>\n\n\n\n<style>\n.radio-title {\n    margin: 20px 0;\n    font-size: 22px;\n    text-align: center;\n}\n\n.radio-grid-container {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 15px;\n    padding: 20px;\n}\n\n.radio-player-card {\n    width: 180px;\n    background: #111827;\n    border-radius: 16px;\n    padding: 14px;\n    box-shadow: 0 0 15px rgba(255, 0, 0, 0.35);\n    transition: 0.3s;\n    text-align: center;\n}\n\n.radio-player-card:hover {\n    transform: scale(1.05);\n}\n\n.radio-player-card.playing {\n    box-shadow: 0 0 25px rgba(34, 197, 94, 0.8);\n}\n\n.radio-player-card img {\n    width: 100%;\n    height: 150px;\n    object-fit: cover;\n    border-radius: 12px;\n}\n\n.btn-radio {\n    width: 100%;\n    margin-top: 10px;\n    padding: 10px;\n    border: none;\n    border-radius: 10px;\n    background: #dc2626;\n    color: #fff;\n    font-size: 15px;\n    cursor: pointer;\n    transition: background 0.2s;\n}\n\n.radio-player-card.playing .btn-radio {\n    background: #16a34a;\n}\n\n.radio-status {\n    font-size: 13px;\n    margin-top: 6px;\n    opacity: 0.85;\n    color: #fff;\n}\n<\/style>\n\n<h1 class=\"radio-title\">\u00f0\u009f\u008e\u00a7 Radios en Vivo<\/h1>\n<div class=\"radio-grid-container\" id=\"radios-live-container\"><\/div>\n\n<script>\n(function() {\n    let currentAudio = null;\n    let currentCard = null;\n\n    const radios = [\n        {img:\"https:\/\/zeno.fm\/_ipx\/s_144x144\/https:\/\/images.zeno.fm\/fSgf1EHjyP9Bp1CI2e8XrDhIyEA_4FRXei0iaWVC-gE\/rs:fill:288:288\/g:ce:0:0\/aHR0cHM6Ly9wcm94eS56ZW5vLmZtL2NvbnRlbnQvc3RhdGlvbnMvZDc0YmQ3ZGQtMWZkNi00OTA3LWJhZTUtNTk1NjRiNGVjMTI4L2ltYWdlLz91PTE2ODg2NjAyMTkwMDA.webp\",stream:\"https:\/\/stream-162.zeno.fm\/eqotxvldgmpvv?zt\"},\n        {img:\"https:\/\/i.postimg.cc\/k4FgyZ4V\/cumbiay-peru.png\",stream:\"https:\/\/stream.zeno.fm\/5g8ii1ncoiwuv\"},\n        {img:\"https:\/\/i.postimg.cc\/90mFgpRL\/recuerdame-wey.png\",stream:\"https:\/\/stream.zeno.fm\/uhz3xzwswp8uv\"},\n        {img:\"https:\/\/i.postimg.cc\/TY1SwZtB\/LOGO-RADIO-LA-VOZ-PERU.png\",stream:\"https:\/\/stream.zeno.fm\/9lsy0almdvutv\"},\n        {img:\"https:\/\/i.postimg.cc\/K8gpN98Z\/la-voz-peru-logo-oficial.png\",stream:\"https:\/\/stream.zeno.fm\/zhiunct47shtv\"},\n        {img:\"https:\/\/images.zeno.fm\/vBTANpUh74OBxw6cTrjTgicp99TZTBqevMSoRaNV6xg\/rs:fit:170:170\/g:ce:0:0\/aHR0cHM6Ly9zdHJlYW0tdG9vbHMuemVub21lZGlhLmNvbS9jb250ZW50L3N0YXRpb25zLzQ5MjZmY2QxLWRjMmMtNGRjNC05NzQ4LTMxNGQ3ZGVhZmE2OC9pbWFnZS8_dT0xNzM5MjMyNzkyMTAw.webp\",stream:\"https:\/\/stream.zeno.fm\/hq09bgaqogbuv\"},\n        {img:\"https:\/\/images.zeno.fm\/e6h_8m74-2qlZViw0Y39xxQtQC1GOLdf7f1dCzcrvNY\/rs:fit:170:170\/g:ce:0:0\/aHR0cHM6Ly9zdHJlYW0tdG9vbHMuemVub21lZGlhLmNvbS9jb250ZW50L3N0YXRpb25zL2FneHpmbnBsYm04dGMzUmhkSE55TWdzU0NrRjFkR2hEYkdsbGJuUVlnSURRakpMX3hnb01DeElPVTNSaGRHbHZibEJ5YjJacGJHVVlnSURRako2Yzl3b01vZ0VFZW1WdWJ3L2ltYWdlLz91PTE3MzkyMzI4MzM0MDc.webp\",stream:\"https:\/\/stream.zeno.fm\/jqmfghcszwlvv\"},\n        {img:\"https:\/\/images.zeno.fm\/pMWaUkiF5e1v8drdcm-a8VFT9uaEA62FfklKhLVCJEM\/rs:fit:170:170\/g:ce:0:0\/aHR0cHM6Ly9zdHJlYW0tdG9vbHMuemVub21lZGlhLmNvbS9jb250ZW50L3N0YXRpb25zLzkwNWYzOTVhLTNlMDYtNDM4Ni04YzIzLWYyZDdlZjhmMDE0Ny9pbWFnZS8_dT0xNzM5MjMyODcwMzc2.webp\",stream:\"https:\/\/stream.zeno.fm\/kdb0thbqzztuv\"},\n        {img:\"https:\/\/images.zeno.fm\/9h2aUW6xCgRI03hZx2VDUqnp225xqEmP13czQNlvzMg\/rs:fit:170:170\/g:ce:0:0\/aHR0cHM6Ly9zdHJlYW0tdG9vbHMuemVub21lZGlhLmNvbS9jb250ZW50L3N0YXRpb25zLzIxYzRkODAzLTAzZWQtNDJmMy1iNjI3LTJiZGJhMzJlMTk2ZC9pbWFnZS8_dT0xNzM5MjMzMzM5Mzg3.webp\", stream:\"https:\/\/stream.zeno.fm\/pyro83b8mqtvv\"},\n        {img:\"https:\/\/images.zeno.fm\/XE7TSpbppXXOD-kXcbHVO_R9tIzVamXnJXRlTYuEWFM\/rs:fit:170:170\/g:ce:0:0\/aHR0cHM6Ly9zdHJlYW0tdG9vbHMuemVub21lZGlhLmNvbS9jb250ZW50L3N0YXRpb25zLzVlNDE3YWVkLTAzNGItNDUzOS04MjBkLWUxMDRmMTI3NjhiNy9pbWFnZS8_dT0xNzM5MjMyOTEwMjQw.webp\",stream:\"https:\/\/stream.zeno.fm\/4pm78fl3guatv\"},\n        {img:\"https:\/\/zeno.fm\/_ipx\/s_144x144\/https:\/\/images.zeno.fm\/cq4x0x1UzbtlFYimKk37EGO-xdyoEXwSPu1blCA9a_Q\/rs:fill:288:288\/g:ce:0:0\/aHR0cHM6Ly9wcm94eS56ZW5vLmZtL2NvbnRlbnQvc3RhdGlvbnMvOTc2MzUyMmEtOGVhYi00M2YyLTg1ZTItYTgyZDZhYmUxZTdjL2ltYWdlLz91PTE2OTMwMTI1MTUwMDA.webp\",stream:\"https:\/\/stream-164.zeno.fm\/7heuhyl3swvvv?zt\"},\n        {img:\"https:\/\/zeno.fm\/_ipx\/s_144x144\/https:\/\/images.zeno.fm\/lXvyVxG6DzkHSzFbIbJOusv6EpSEsAcQN92WssGg1Z4\/rs:fill:288:288\/g:ce:0:0\/aHR0cHM6Ly9wcm94eS56ZW5vLmZtL2NvbnRlbnQvc3RhdGlvbnMvYWd4emZucGxibTh0YzNSaGRITnlNZ3NTQ2tGMWRHaERiR2xsYm5RWWdJRGd0cmJhOVFnTUN4SU9VM1JoZEdsdmJsQnliMlpwYkdVWWdJRGc0YVRTZ2dzTW9nRUVlbVZ1YncvaW1hZ2UvP3U9MTcyOTkwNjEwMzAwMA.webp\",stream:\"https:\/\/stream-166.zeno.fm\/evzfwmqnnnruv?zt\"},\n        {img:\"https:\/\/zeno.fm\/_ipx\/s_144x144\/https:\/\/images.zeno.fm\/tpWX7UerL1cUIZuKxBgDD6bnNs3fEwcZ54gWg5s3N1U\/rs:fill:288:288\/g:ce:0:0\/aHR0cHM6Ly9wcm94eS56ZW5vLmZtL2NvbnRlbnQvc3RhdGlvbnMvYWd4emZucGxibTh0YzNSaGRITnlNZ3NTQ2tGMWRHaERiR2xsYm5RWWdJREF3cTd2Z3dvTUN4SU9VM1JoZEdsdmJsQnliMlpwYkdVWWdJREkxcDcwdmdzTW9nRUVlbVZ1YncvaW1hZ2UvP3U9MTY2MTYyNzc5NzAwMA.webp\",stream:\"https:\/\/stream-153.zeno.fm\/0teuwrmgnxhvv?zt\"},\n        {img:\"https:\/\/zeno.fm\/_ipx\/s_144x144\/https:\/\/images.zeno.fm\/hubi9PJxUpP6eySuYjPpZ3q0ABFWhLSOsFQhDuVK1yU\/rs:fill:288:288\/g:ce:0:0\/aHR0cHM6Ly9wcm94eS56ZW5vLmZtL2NvbnRlbnQvc3RhdGlvbnMvZTRmYjhjZWItZTYyMC00YzI4LWJhZGItNjdiYjEzMjM2YmRkL2ltYWdlLz91PTE3MzA1MDUyMTkwMDA.webp\",stream:\"https:\/\/stream-166.zeno.fm\/0uw5pb64tbutv?zt\"},\n        {img:\"https:\/\/zeno.fm\/_ipx\/s_144x144\/https:\/\/images.zeno.fm\/9q-sbNX7cW4gl0VPhY42t0mclIv9dVUuMZoR-ZP6tY4\/rs:fill:288:288\/g:ce:0:0\/aHR0cHM6Ly9wcm94eS56ZW5vLmZtL2NvbnRlbnQvc3RhdGlvbnMvYWd4emZucGxibTh0YzNSaGRITnlNZ3NTQ2tGMWRHaERiR2xsYm5RWWdJQ1ExcUhsNGdvTUN4SU9VM1JoZEdsdmJsQnliMlpwYkdVWWdJRHduZDJwcGdzTW9nRUVlbVZ1YncvaW1hZ2UvP3U9MTY2MDg1MjQ0MzAwMA.webp\",stream:\"https:\/\/stream-157.zeno.fm\/zwytkt2pgf9uv?zt\"},\n        {img:\"https:\/\/zeno.fm\/_ipx\/s_144x144\/https:\/\/images.zeno.fm\/jxRWn-NPwDCgA819A-_fn0TqTpGdl0n0334Reg-m2Mo\/rs:fill:288:288\/g:ce:0:0\/aHR0cHM6Ly9wcm94eS56ZW5vLmZtL2NvbnRlbnQvc3RhdGlvbnMvYWd4emZucGxibTh0YzNSaGRITnlNZ3NTQ2tGMWRHaERiR2xsYm5RWWdJRGctTG1mMndvTUN4SU9VM1JoZEdsdmJsQnliMlpwYkdVWWdJRGc2TGVDNXdvTW9nRUVlbVZ1YncvaW1hZ2UvP3U9MTcxNzAxMzMwMTAwMA.webp\",stream:\"https:\/\/stream-171.zeno.fm\/ms4f8zf8eeruv?zt\"},\n        {img:\"https:\/\/zeno.fm\/_ipx\/s_144x144\/https:\/\/images.zeno.fm\/1fnTieOpPoKHgwMLJgWZPfpmO8vwDlgrLG913WX9sbk\/rs:fill:288:288\/g:ce:0:0\/aHR0cHM6Ly9wcm94eS56ZW5vLmZtL2NvbnRlbnQvc3RhdGlvbnMvYWd4emZucGxibTh0YzNSaGRITnlNZ3NTQ2tGMWRHaERiR2xsYm5RWWdJQ1E4Tld1elFzTUN4SU9VM1JoZEdsdmJsQnliMlpwYkdVWWdJQ1FtUFBCNlFnTW9nRUVlbVZ1YncvaW1hZ2UvP3U9MTY2MTU0ODYyMjAwMA.webp\",stream:\"https:\/\/stream-167.zeno.fm\/671md145hwzuv?zt\"},\n        {img:\"https:\/\/zeno.fm\/_ipx\/s_144x144\/https:\/\/images.zeno.fm\/jAE4lkVFm93X78bSTmu9qm7PtOD4sDDp1B5SJPtZQ2c\/rs:fill:288:288\/g:ce:0:0\/aHR0cHM6Ly9wcm94eS56ZW5vLmZtL2NvbnRlbnQvc3RhdGlvbnMvNDE2MGVkYjgtMWZhMy00ZDRkLThlZGUtN2YwOGVmMGMzMTBjL2ltYWdlLz91PTE2NjYzODkxNTcwMDA.webp\",stream:\"https:\/\/stream-167.zeno.fm\/e9ejgkbghpyuv?zt\"},\n        {img:\"https:\/\/zeno.fm\/_ipx\/s_144x144\/https:\/\/images.zeno.fm\/S_rQc0WpVgt8txS-dHf0z9XHy1XPF_F0g-hMKMD580A\/rs:fill:288:288\/g:ce:0:0\/aHR0cHM6Ly9wcm94eS56ZW5vLmZtL2NvbnRlbnQvc3RhdGlvbnMvNGZmNGUxYmUtMjllYS00YTI5LTk4YTItYTZjOGE1ZDE3ZjcyL2ltYWdlLz91PTE2MTExMDM1ODIwMDA.webp\",stream:\"https:\/\/stream-172.zeno.fm\/hiiil0pwrw8tv?zt\"},\n        {img:\"https:\/\/zeno.fm\/_ipx\/s_144x144\/https:\/\/images.zeno.fm\/AP3BQwpe12IK4kjp14QbA3Ots9C5Ud4b5YFzToDUpro\/rs:fill:288:288\/g:ce:0:0\/aHR0cHM6Ly9wcm94eS56ZW5vLmZtL2NvbnRlbnQvc3RhdGlvbnMvMmNhYjQxMDAtOWQ2Yy00M2Q4LWE5N2EtYjEyN2NjM2U1NjgyL2ltYWdlLz91PTE3MDE2MTAwMDUwMDA.webp\",stream:\"https:\/\/stream-172.zeno.fm\/ntg1xhl2j8hvv?zt\"},\n        {img:\"https:\/\/zeno.fm\/_ipx\/s_144x144\/https:\/\/images.zeno.fm\/fPzZN4zvNtw-ieMCQDUBjYTDiGuos0Ontr-qDteWBkU\/rs:fill:288:288\/g:ce:0:0\/aHR0cHM6Ly9wcm94eS56ZW5vLmZtL2NvbnRlbnQvc3RhdGlvbnMvYWd4emZucGxibTh0YzNSaGRITnlNZ3NTQ2tGMWRHaERiR2xsYm5RWWdJQ1FyTGo0cUFvTUN4SU9VM1JoZEdsdmJsQnliMlpwYkdVWWdJQ1F6UDdGeXdzTW9nRUVlbVZ1YncvaW1hZ2UvP3U9MTY4NzI4ODk1OTAwMA.webp\",stream:\"https:\/\/stream-158.zeno.fm\/ryrhxgus0wzuv?zt\"},\n        {img:\"https:\/\/zeno.fm\/_ipx\/s_144x144\/https:\/\/images.zeno.fm\/2kxy6HYdCsirUiEexhf0nnwUGKjRAmhboIzU03GbG-k\/rs:fill:288:288\/g:ce:0:0\/aHR0cHM6Ly9wcm94eS56ZW5vLmZtL2NvbnRlbnQvc3RhdGlvbnMvYWd4emZucGxibTh0YzNSaGRITnlNZ3NTQ2tGMWRHaERiR2xsYm5RWWdJRGg4NGVSdmdvTUN4SU9VM1JoZEdsdmJsQnliMlpwYkdVWWdJRGc0YVRTZ2dzTW9nRUVlbVZ1YncvaW1hZ2UvP3U9MTY2NzY3MTE1ODAwMA.webp\",stream:\"https:\/\/stream-160.zeno.fm\/w1r13grcvqzuv?zt\"},\n        {img:\"https:\/\/zeno.fm\/_ipx\/s_144x144\/https:\/\/images.zeno.fm\/wtweicIxQ4k8Mx0hBCFTsJgIUi2Z2NKidL1GH0ujjVc\/rs:fill:288:288\/g:ce:0:0\/aHR0cHM6Ly9wcm94eS56ZW5vLmZtL2NvbnRlbnQvc3RhdGlvbnMvYWd4emZucGxibTh0YzNSaGRITnlNZ3NTQ2tGMWRHaERiR2xsYm5RWWdJRElyvl96elFrTUN4SU9VM1JoZEdsdmJsQnliMlpwYkdVWWdJRElqdTd3N1FvTW9nRUVlbVZ1YncvaW1hZ2UvP3U9MTcyODk4OTAwODAwMA.webp\",stream:\"https:\/\/stream-155.zeno.fm\/bg4qy23suxhvv?zt\"},\n        {img:\"https:\/\/zeno.fm\/_ipx\/s_144x144\/https:\/\/images.zeno.fm\/T8-8PdELZAbYW5hkkqLPanpdl_Vs8hO8JSvA35W5MmY\/rs:fill:288:288\/g:ce:0:0\/aHR0cHM6Ly9wcm94eS56ZW5vLmZtL2NvbnRlbnQvc3RhdGlvbnMvYWd4emZucGxibTh0YzNSaGRITnlNZ3NTQ2tGMWRHaERiR2xsYm5RWWdJQ1FuczZ6LUFrTUN4SU9VM1JoZEdsdmJsQnliMlpwYkdVWWdJQ1FtYno1c1FnTW9nRUVlbVZ1YncvaW1hZ2UvP3U9MTcyOTM3ODYzMzAwMA.webp\",stream:\"https:\/\/stream.zeno.fm\/h20h3vrrm2zuv?an-uid\"},\n        {img:\"https:\/\/images.zeno.fm\/ejCU3D1tStZNXvBrotBY1D8zHxlNJb0X0s17ZAcGrQE\/rs:fit:170:170\/g:ce:0:0\/aHR0cHM6Ly9zdHJlYW0tdG9vbHMuemVub21lZGlhLmNvbS9jb250ZW50L3N0YXRpb25zL2M3MjE2ZmI5LWY1NDMtNGI5Zi1hMjg4LWNmYzE2MWY1YjZhZC9pbWFnZS8_dT0xNzM5MjMyOTU0MDE2.webp\",stream:\"https:\/\/stream.zeno.fm\/d0n1rlp22gbtv\"},\n        {img:\"https:\/\/images.zeno.fm\/26EIb48sBYqOpnQ6fhrT3DWk5mVgS83AUsJnKevVUHg\/rs:fit:170:170\/g:ce:0:0\/aHR0cHM6Ly9zdHJlYW0tdG9vbHMuemVub21lZGlhLmNvbS9jb250ZW50L3N0YXRpb25zLzkxYzQ4ODY1LTU5NzktNDU5OS04NzYwLTM3MzdjM2EyY2ZkOC9pbWFnZS8_dT0xNzM5MjMzMTk2NjE0.webp\",stream:\"https:\/\/stream.zeno.fm\/ljlrehvfkdotv\"},\n        {img:\"https:\/\/images.zeno.fm\/DYX9QYiHvdVCmRz-h69d7W_r51WDR55rItRdXIc_Its\/rs:fit:170:170\/g:ce:0:0\/aHR0cHM6Ly9zdHJlYW0tdG9vbHMuemVub21lZGlhLmNvbS9jb250ZW50L3N0YXRpb25zL2NiZDg0ZWVjLWJmNzgtNDJkNS04ZDYzLWE0ZmFiY2MyMDMxNS9pbWFnZS8_dT0xNzM5MjMzMjkxNDA5.webp\",stream:\"https:\/\/stream.zeno.fm\/op66pagm7tltv\"}\n    ];\n\n    const cont = document.getElementById(\"radios-live-container\");\n\n    \/\/ 1. Renderizar todas las tarjetas de radio de manera inmediata\n    radios.forEach((r, index) => {\n        const c = document.createElement(\"div\");\n        c.className = \"radio-player-card\";\n        \/\/ Asignamos un ID \u00fanico interno a cada tarjeta para identificar la primera f\u00e1cilmente\n        if(index === 0) c.id = \"first-radio-card\"; \n        \n        c.innerHTML = `\n            <img decoding=\"async\" src=\"${r.img}\" loading=\"lazy\" alt=\"Radio Logo\">\n            <button class=\"btn-radio\">\u00e2\u0096\u00b6 Reproducir<\/button>\n            <div class=\"radio-status\">Estado: Pausado<\/div>\n            <audio preload=\"none\" playsinline src=\"${r.stream}\"><\/audio>\n        `;\n        \n        const a = c.querySelector(\"audio\");\n        const b = c.querySelector(\".btn-radio\");\n        const s = c.querySelector(\".radio-status\");\n\n        b.addEventListener(\"click\", () => {\n            if (currentAudio && currentAudio !== a) {\n                currentAudio.pause();\n                currentCard.classList.remove(\"playing\");\n                currentCard.querySelector(\".btn-radio\").textContent = \"\u00e2\u0096\u00b6 Reproducir\";\n                currentCard.querySelector(\".radio-status\").textContent = \"Estado: Pausado\";\n            }\n            if (a.paused) {\n                a.play().catch(() => {});\n                b.textContent = \"\u00e2\u008f\u00b8 Pausar\";\n                s.textContent = \"Estado: Reproduciendo\";\n                c.classList.add(\"playing\");\n                currentAudio = a;\n                currentCard = c;\n            } else {\n                a.pause();\n                b.textContent = \"\u00e2\u0096\u00b6 Reproducir\";\n                s.textContent = \"Estado: Pausado\";\n                c.classList.remove(\"playing\");\n                currentAudio = null;\n                currentCard = null;\n            }\n        });\n        cont.appendChild(c);\n    });\n\n    \/\/ 2. Funci\u00f3n dedicada para arrancar la primera radio (Autoplay) de forma segura\n    function initAutoplay() {\n        const firstPlayer = document.getElementById(\"first-radio-card\");\n        if (!firstPlayer) return;\n        \n        const audio = firstPlayer.querySelector(\"audio\");\n        const button = firstPlayer.querySelector(\".btn-radio\");\n        const status = firstPlayer.querySelector(\".radio-status\");\n\n        \/\/ Intentamos reproducir de inmediato\n        audio.play().then(() => {\n            button.textContent = \"\u00e2\u008f\u00b8 Pausar\";\n            status.textContent = \"Estado: Reproduciendo\";\n            firstPlayer.classList.add(\"playing\");\n            currentAudio = audio;\n            currentCard = firstPlayer;\n        }).catch(() => {\n            \/\/ Si el navegador bloque\u00f3 el autoplay directo, se reproducir\u00e1 autom\u00e1ticamente al primer clic del usuario en la web\n            const unlock = () => {\n                \/\/ Solo ejecutamos si el usuario no ha interactuado activamente con otra radio antes\n                if (!currentAudio) {\n                    audio.play().catch(() => {});\n                    button.textContent = \"\u00e2\u008f\u00b8 Pausar\";\n                    status.textContent = \"Estado: Reproduciendo\";\n                    firstPlayer.classList.add(\"playing\");\n                    currentAudio = audio;\n                    currentCard = firstPlayer;\n                }\n                document.removeEventListener(\"click\", unlock);\n            };\n            document.addEventListener(\"click\", unlock, { once: true });\n        });\n    }\n\n    \/\/ Ejecuci\u00f3n segura: Si el DOM ya est\u00e1 listo, arranca; si no, espera al evento.\n    if (document.readyState === \"interactive\" || document.readyState === \"complete\") {\n        initAutoplay();\n    } else {\n        document.addEventListener(\"DOMContentLoaded\", initAutoplay);\n    }\n})();\n<\/script>\n\n\n<\/p>\n<\/p>\n<\/p>\n<\/p>\n<p>Mobil uy\u00c4\u009funluq <a href=\"https:\/\/trmilkandhoneyatl.com\/\">Mostbet<\/a> xidm\u00c9\u0099tl\u00c9\u0099rind\u00c9\u0099n ist\u00c9\u0099nil\u00c9\u0099n yerd\u00c9\u0099 istifad\u00c9\u0099 etm\u00c9\u0099y\u00c9\u0099 \u00c5\u009f\u00c9\u0099rait yarad\u00c4\u00b1r.<\/p>\n<\/p>\n<div style=\"position: absolute; left: -5028px;\"><a href=\"https:\/\/stelariocasino-be.eu.com\/\">stelario casino<\/a><\/div>\n<div style=\"position: absolute; left: -7560px;\"><a href=\"https:\/\/betwaycasino-es.es\/\">betway casino bono<\/a><\/div>\n<div style=\"position: absolute; left: -7305px;\"><a href=\"https:\/\/asperscasino.uk.net\/\">aspers casino online bonus<\/a><\/div>\n<p> <a href=\"https:\/\/www.google.com\/?search=b3f6ae15-86cd-41c8-bdc7-684fe05fc48a\">7052d93b-4561-4507-8673-545bc9c4aa18<\/a><\/p>\n\n\n<!-- ESTILOS AVANZADOS PROYECTO ANDINA -->\n<style>\n  :root {\n    --bg-dark: #0a0a0f;\n    --bg-card: #14141e;\n    --neon-blue: #00f3ff;\n    --neon-purple: #9d00ff;\n    --text-main: #ffffff;\n    --text-muted: #a0a0b0;\n  }\n\n  .andina-wrapper {\n    font-family: 'Segoe UI', Roboto, sans-serif;\n    background-color: var(--bg-dark);\n    color: var(--text-main);\n    padding: 20px;\n    border-radius: 12px;\n    box-shadow: 0 0 20px rgba(0, 243, 255, 0.15);\n  }\n\n  \/* NAVEGACI\u00d3N *\/\n  .andina-nav {\n    display: flex;\n    gap: 12px;\n    border-bottom: 2px solid #222230;\n    padding-bottom: 15px;\n    margin-bottom: 25px;\n    overflow-x: auto;\n  }\n\n  .andina-nav button {\n    background: var(--bg-card);\n    color: var(--text-main);\n    border: 1px solid #333345;\n    padding: 12px 24px;\n    border-radius: 30px;\n    font-weight: 600;\n    cursor: pointer;\n    transition: all 0.3s ease;\n    white-space: nowrap;\n  }\n\n  .andina-nav button.active, .andina-nav button:hover {\n    background: linear-gradient(45deg, var(--neon-blue), var(--neon-purple));\n    border-color: transparent;\n    color: #fff;\n    box-shadow: 0 0 10px rgba(0, 243, 255, 0.4);\n  }\n\n  .andina-section { display: none; }\n  .andina-section.active { display: block; }\n\n  \/* COMPONENTES DE GRID Y TARJETAS *\/\n  .grid-container {\n    display: grid;\n    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n    gap: 20px;\n    margin-top: 15px;\n  }\n\n  .card {\n    background: var(--bg-card);\n    border-radius: 10px;\n    padding: 15px;\n    border: 1px solid #222230;\n  }\n\n  .card img {\n    width: 100%;\n    height: 160px;\n    object-fit: cover;\n    border-radius: 6px;\n  }\n\n  \/* FORMULARIOS Y CONTROLES *\/\n  .form-group {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n    margin-bottom: 20px;\n    background: var(--bg-card);\n    padding: 15px;\n    border-radius: 8px;\n  }\n\n  .form-group input {\n    padding: 10px;\n    background: #0a0a0f;\n    border: 1px solid #333345;\n    color: #fff;\n    border-radius: 5px;\n  }\n\n  .btn-action {\n    background: var(--neon-blue);\n    color: #000;\n    border: none;\n    padding: 10px 15px;\n    font-weight: bold;\n    border-radius: 5px;\n    cursor: pointer;\n  }\n\n  \/* LISTAS REPRODUCTORAS *\/\n  .playlist-item {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    background: var(--bg-card);\n    padding: 10px 15px;\n    margin-bottom: 10px;\n    border-radius: 6px;\n  }\n\n  .playlist-item img {\n    width: 40px;\n    height: 40px;\n    border-radius: 50%;\n    object-fit: cover;\n  }\n\n  .media-player-custom {\n    width: 100%;\n    margin-top: 10px;\n  }\n<\/style>\n\n<div class=\"andina-wrapper\">\n  <!-- MEN\u00da PRINCIPAL -->\n  <nav class=\"andina-nav\">\n    <button class=\"tab-btn active\" onclick=\"openTab(event, 'inicio')\">Inicio<\/button>\n    <button class=\"tab-btn\" onclick=\"openTab(event, 'multimedia')\">TV &#038; Radio Live<\/button>\n    <button class=\"tab-btn\" onclick=\"openTab(event, 'tendencias')\">Tendencias<\/button>\n    <button class=\"tab-btn\" onclick=\"openTab(event, 'eventos')\">Eventos<\/button>\n  <\/nav>\n\n  <!-- SECCI\u00d3N 1: INICIO -->\n  <section id=\"inicio\" class=\"andina-section active\">\n    <h2>Andean Neon Pulse<\/h2>\n    <div style=\"position: relative; border-radius: 10px; overflow: hidden; margin-bottom: 20px;\">\n      <img decoding=\"async\" src=\"https:\/\/picsum.photos\/800\/300?random=1\" alt=\"Banner\" style=\"width:100%; display:block;\">\n      <div style=\"position:absolute; bottom:0; background: rgba(0,0,0,0.7); width:100%; padding:15px;\">\n        <h3>Plataforma Multimedia Andina<\/h3>\n        <p>Sintoniza, carga y comparte contenido en tiempo real.<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- SECCI\u00d3N 2: TV & RADIO + PLAYLIST CON BASE DE DATOS -->\n  <section id=\"multimedia\" class=\"andina-section\">\n    <h2>TV &#038; Radio en Vivo<\/h2>\n    \n    <!-- Reproductor Principal Video\/TV -->\n    <div class=\"card\" style=\"margin-bottom:20px;\">\n      <h3>Se\u00f1al en Directo<\/h3>\n      <video controls style=\"width:100%; border-radius:8px;\">\n        <source src=\"https:\/\/www.w3schools.com\/html\/mov_bbb.mp4\" type=\"video\/mp4\">\n        Tu navegador no soporta el reproductor de video.\n      <\/video>\n    <\/div>\n\n    <!-- Agregar Radio Personalizada -->\n    <h3>A\u00f1adir Nueva Emisora de Radio<\/h3>\n    <form class=\"form-group\" onsubmit=\"saveRadioStream(event)\">\n      <input type=\"text\" id=\"radio-name\" placeholder=\"Nombre de la Radio\" required>\n      <input type=\"url\" id=\"radio-url\" placeholder=\"URL del Stream Audio (http:\/\/...)\" required>\n      <input type=\"url\" id=\"radio-logo\" placeholder=\"URL del Logo\/Imagen\" required>\n      <button type=\"submit\" class=\"btn-action\">Guardar Radio en Base de Datos<\/button>\n    <\/form>\n\n    <!-- Lista de Radios Guardadas -->\n    <h3>Emisoras Disponibles<\/h3>\n    <div id=\"radio-playlist-container\">\n      <div class=\"playlist-item\">\n        <div style=\"display:flex; align-items:center; gap:10px;\">\n          <img decoding=\"async\" src=\"https:\/\/picsum.photos\/50\/50?random=10\" alt=\"Logo\">\n          <div>\n            <strong>Andina Neon FM<\/strong>\n            <audio controls class=\"media-player-custom\" src=\"https:\/\/www.soundhelix.com\/examples\/mp3\/SoundHelix-Song-1.mp3\"><\/audio>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- SECCI\u00d3N 3: TENDENCIAS Y ARCHIVOS DE AUDIO (SUBIR\/DESCARGAR) -->\n  <section id=\"tendencias\" class=\"andina-section\">\n    <h2>Tendencias y Gestor de Audio<\/h2>\n\n    <!-- Subir Archivo a BD -->\n    <div class=\"card\" style=\"margin-bottom:20px;\">\n      <h3>Subir Pista de Audio a la Base de Datos<\/h3>\n      <form onsubmit=\"uploadAudioTrack(event)\" class=\"form-group\">\n        <input type=\"text\" id=\"track-title\" placeholder=\"T\u00edtulo de la canci\u00f3n \/ audio\" required>\n        <input type=\"file\" id=\"track-file\" accept=\"audio\/*\" required>\n        <button type=\"submit\" class=\"btn-action\">Subir y Guardar<\/button>\n      <\/form>\n    <\/div>\n\n    <!-- Playlist de Audios Subidos -->\n    <h3>Pistas Guardadas<\/h3>\n    <div id=\"audio-playlist-container\">\n      <div class=\"playlist-item\">\n        <div>\n          <strong>Demostraci\u00f3n &#8211; Track 01<\/strong><br>\n          <audio controls src=\"https:\/\/www.soundhelix.com\/examples\/mp3\/SoundHelix-Song-2.mp3\"><\/audio>\n        <\/div>\n        <a href=\"https:\/\/www.soundhelix.com\/examples\/mp3\/SoundHelix-Song-2.mp3\" download class=\"btn-action\" style=\"text-decoration:none;\">Descargar<\/a>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- SECCI\u00d3N 4: EVENTOS -->\n  <section id=\"eventos\" class=\"andina-section\">\n    <h2>Pr\u00f3ximos Eventos y Conciertos<\/h2>\n    <div class=\"grid-container\">\n      <div class=\"card\">\n        <img decoding=\"async\" src=\"https:\/\/picsum.photos\/300\/200?random=3\" alt=\"Evento 1\">\n        <h3>Festival Neon Andino<\/h3>\n        <p>Fecha: 15 de Noviembre<\/p>\n        <button class=\"btn-action\" style=\"width:100%;\">Ver Detalles<\/button>\n      <\/div>\n      <div class=\"card\">\n        <img decoding=\"async\" src=\"https:\/\/picsum.photos\/300\/200?random=4\" alt=\"Evento 2\">\n        <h3>Concierto Electro Folk<\/h3>\n        <p>Fecha: 02 de Diciembre<\/p>\n        <button class=\"btn-action\" style=\"width:100%;\">Ver Detalles<\/button>\n      <\/div>\n    <\/div>\n  <\/section>\n<\/div>\n\n<!-- L\u00d3GICA JAVASCRIPT Y CONEXI\u00d3N A BASE DE DATOS DE WORDPRESS -->\n<script>\n  \/\/ Cambiar entre pesta\u00f1as\n  function openTab(evt, tabName) {\n    let sections = document.querySelectorAll('.andina-section');\n    let buttons = document.querySelectorAll('.tab-btn');\n    \n    sections.forEach(sec => sec.classList.remove('active'));\n    buttons.forEach(btn => btn.classList.remove('active'));\n    \n    document.getElementById(tabName).classList.add('active');\n    evt.currentTarget.classList.add('active');\n  }\n\n  \/\/ 1. Guardar la URL de Radio en la Base de Datos\n  function saveRadioStream(e) {\n    e.preventDefault();\n    const name = document.getElementById('radio-name').value;\n    const url = document.getElementById('radio-url').value;\n    const logo = document.getElementById('radio-logo').value;\n\n    \/\/ Renderizado din\u00e1mico inmediato en pantalla\n    const container = document.getElementById('radio-playlist-container');\n    const newRadioHTML = `\n      <div class=\"playlist-item\">\n        <div style=\"display:flex; align-items:center; gap:10px;\">\n          <img decoding=\"async\" src=\"${logo}\" alt=\"${name}\" onerror=\"this.src='https:\/\/picsum.photos\/50\/50'\">\n          <div>\n            <strong>${name}<\/strong>\n            <audio controls class=\"media-player-custom\" src=\"${url}\"><\/audio>\n          <\/div>\n        <\/div>\n      <\/div>`;\n    container.insertAdjacentHTML('beforeend', newRadioHTML);\n\n    \/\/ AQU\u00cd SE CONECTA A TU BASE DE DATOS V\u00cdA WORDPRESS REST API\n    \/*\n    fetch('\/wp-json\/andina\/v1\/save-radio', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\/json' },\n      body: JSON.stringify({ name: name, stream_url: url, logo_url: logo })\n    }).then(res => res.json()).then(data => alert('Radio guardada en la Base de Datos'));\n    *\/\n\n    e.target.reset();\n  }\n\n  \/\/ 2. Subir Archivo de Audio y registrarlo en la Base de Datos\n  function uploadAudioTrack(e) {\n    e.preventDefault();\n    const title = document.getElementById('track-title').value;\n    const fileInput = document.getElementById('track-file');\n    const file = fileInput.files[0];\n\n    if (!file) return;\n\n    const audioObjectURL = URL.createObjectURL(file);\n\n    \/\/ Renderizado din\u00e1mico inmediato en la Playlist\n    const container = document.getElementById('audio-playlist-container');\n    const newTrackHTML = `\n      <div class=\"playlist-item\">\n        <div>\n          <strong>${title}<\/strong><br>\n          <audio controls src=\"${audioObjectURL}\"><\/audio>\n        <\/div>\n        <a href=\"${audioObjectURL}\" download=\"${title}.mp3\" class=\"btn-action\" style=\"text-decoration:none;\">Descargar<\/a>\n      <\/div>`;\n    container.insertAdjacentHTML('beforeend', newTrackHTML);\n\n    \/\/ AQU\u00cd SE ENV\u00cdA EL ARCHIVO REAL A TU SERVIDOR Y BD\n    \/*\n    let formData = new FormData();\n    formData.append('title', title);\n    formData.append('audio_file', file);\n\n    fetch('\/wp-json\/andina\/v1\/upload-audio', {\n      method: 'POST',\n      body: formData\n    }).then(res => res.json()).then(data => alert('Audio guardado exitosamente en BD'));\n    *\/\n\n    e.target.reset();\n  }\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<p lang=\"de-AT\" style=\"display: block;height: 1px;overflow: hidden\">Suprax mit Cefixime zeigt eine verl\u00e4ngerte Halbwertszeit, was eine einmal t\u00e4gliche Dosierung erm\u00f6glicht. Die genaue Anwendung und Wirkung von Suprax h\u00e4ngt stark vom Erregerspektrum und der Resistenzlage ab. Eine erfolgreiche Behandlung bakterieller Infektionen setzt oft eine korrekte Diagnose und Empfindlichkeitspr\u00fcfung voraus. Wer Suprax online sicher kaufen will, sollte sich vorher \u00fcber die <a href=\"https:\/\/jugendgolf-lich.de\/uncategorized\/suprax-kaufen-in-oesterreich-cefixim-aus-der-cephalosporin-gruppe\/\">Alternative zu Suprax<\/a> informieren, falls Unvertr\u00e4glichkeiten bestehen.<\/p><p lang=\"da-DK\" style=\"height: 1px;overflow: hidden;display: block\">Korrekt dosering af Revia er essentiel for at undg\u00e5 pludselige abstinenser, da naltrexon blokerer opioidreceptorer umiddelbart. For patienter, der oplever bivirkninger, kan nalmefen v\u00e6re et alternativ til Revia, men kliniske data underst\u00f8tter ofte <a href=\"https:\/\/lelos-pizza.dk\/2026\/08\/11\/kob-revia-online-i-danmark-en-effektiv-stotte-til-afhaengighedsbehandling\/\">Revia med Naltrexone<\/a> som f\u00f8rstevalg. Revia tabletter kr\u00e6ver t\u00e6t l\u00e6geopf\u00f8lgning og b\u00f8r aldrig kombineres med opioidholdige l\u00e6gemidler uden forudg\u00e5ende udvaskning.<\/p><div style=\"position: absolute; left: -9966px;\"><p>Abbiamo creato una lista di <a href=\"https:\/\/ionoiegaberalcinema.it\/\">casino non aams sicuri<\/a> basata su test di prelievo reali.<\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/progavrichenko.ru\/\">1xBet<\/a><\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p>Turnir m\u00fckafatlar\u0131 v\u0259 canl\u0131 masa oyunlar\u0131 \u00fc\u00e7\u00fcn <a href=\"https:\/\/michaelbmoore.com\/\">pinko kazino<\/a> axtar\u0131\u015flarda sabit g\u00f6r\u00fcn\u00fcr.<\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p>Mobil oyunlar v\u0259 rahat qeydiyyat bax\u0131m\u0131ndan <a href=\"https:\/\/primodb.org\/\">pinco online casino<\/a> maraql\u0131 se\u00e7imdir.<\/p><\/div><a href=\"https:\/\/rb1rm.ru\/\" style=\"position: absolute; top: -9999px; left: -9999px;\">\u043f\u0438\u043d\u043a\u043e \u043a\u0430\u0437\u0438\u043e<\/a><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/\u043a\u043e\u043d\u0435\u043a-\u0433\u043e\u0440\u0431\u0443\u043d\u043e\u043a.\u0440\u0444\/\">1\u0445\u0411\u0435\u0442<\/a><\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/davaiknam.ru\/\">1xBet<\/a><\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/www.aidar.ru\/\">1win<\/a><\/p><\/div><div style=\"position: absolute; left: -9977px;\"><p><a href=\"https:\/\/sportwetten-ohne-oasis-deutschland.us.com\/\">wettanbieter ohne oasis<\/a><\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p>F\u00f6r svenska spelare som s\u00f6ker tydlig v\u00e4gledning finns <a href=\"https:\/\/passportintime.com\/\">online casino utan svensk licens<\/a> med praktiska r\u00e5d och aktuella j\u00e4mf\u00f6relser.<\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/xn--80abeiejgafejid0blpls8x.xn--p1ai\/\">1Win<\/a><\/p><\/div><div style=\"position: absolute; left: -9993px;\"><p><a href=\"https:\/\/wwwglitchspin.com\/gr\/\">glitchspin<\/a><\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/admzavod.ru\/\">1xBet<\/a><\/p><\/div><div style=\"position: absolute; left: -9966px;\"><a href=\"https:\/\/pocztowydar.org\/\">Mostbet<\/a><\/div><div style=\"position: absolute; left: -9966px;\"><a href=\"https:\/\/passportintime.com\/\">prova nu<\/a><\/div><a href=\"https:\/\/mbdou9hm.ru\/\" style=\"position: absolute; top: -9999px; left: -9999px;\">\u043f\u0438\u043d\u043a\u043e \u043a\u0430\u0437\u0438\u043e<\/a><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/cervantes148.ru\/\">1xBet<\/a><\/p><\/div><a href=\"https:\/\/academia-library.ru\/\" style=\"position: absolute; top: -9999px; left: -9999px;\">1win<\/a><div style=\"position: absolute; left: -9977px;\"><p><a href=\"https:\/\/appropriateplay.com\/\">wettanbieter ohne oasis<\/a><\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/xn--80akiinbisaeq.xn--p1ai\/\">1Win<\/a><\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/rockaisne.com\/\">top 10 casino uden rofus<\/a><\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/www.foxchasefarm.org\/\">1Win<\/a><\/p><\/div><a href=\"https:\/\/rustt.ru\/\" style=\"position: absolute; top: -9999px; left: -9999px;\">\u043f\u0438\u043d\u043a\u043e \u043a\u0430\u0437\u0438\u043e<\/a><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/soyuz-gazprom.ru\/\">1win<\/a><\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/centr-semya.ru\/\">1Win<\/a><\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/linkorcms.ru\/\">1xBet<\/a><\/p><\/div><a href=\"https:\/\/\u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f-\u0433\u043e\u0440\u043e\u0434\u0430-\u0437\u043c\u0435\u0438\u043d\u043e\u0433\u043e\u0440\u0441\u043a\u0430.\u0440\u0444\/\" style=\"position: absolute; top: -9999px; left: -9999px;\">\u041f\u0438\u043d\u043a\u043e \u043a\u0430\u0437\u0438\u043d\u043e<\/a><a href=\"https:\/\/russiaregions.ru\/\" style=\"position: absolute; top: -9999px; left: -9999px;\">1win<\/a><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/csu-cauldron.com\/\">casino med swish<\/a><\/p><\/div><a href=\"https:\/\/pieoneerhomestead.com\/\">Mostbet<\/a> umo\u017cliwia korzystanie z r\u00f3\u017cnych walut, co u\u0142atwia gr\u0119 mi\u0119dzynarodowym u\u017cytkownikom.<div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/sloncom.ru\/\">1\u0445\u0411\u0435\u0442<\/a><\/p><\/div><a href=\"https:\/\/rsn-saratov.ru\/\" style=\"position: absolute; top: -9999px; left: -9999px;\">1win<\/a><div style=\"position: absolute; left: -9986px;\"><p><a href=\"https:\/\/casinon-utan-spelpaus.se\">casino utan svensk licens<\/a><\/p><\/div><div style=\"position: absolute; left: -9977px;\"><p><a href=\"https:\/\/sportwetten-ohne-oasis-top.de\/\">sportwetten ohne oasis<\/a><\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/www.trunovskiy26raion.ru\/\">pinco casino \u0437\u0435\u0440\u043a\u0430\u043b\u043e<\/a><\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p>Q\u0131sa y\u00f6nl\u0259ndirm\u0259 v\u0259 yeni slot x\u0259b\u0259rl\u0259ri \u00fc\u00e7\u00fcn <a href=\"https:\/\/flashpackerco.com\/\">pinco giri\u015f<\/a> daha \u00e7ox istifad\u0259 olunur.<\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p>Ottieni un supporto prioritario e bonus personalizzati nei <a href=\"https:\/\/www.montalbanorecycling.it\/\">casino online migliori<\/a> del circuito.<\/p><\/div><div style=\"position: absolute; left: -9966px;\"><a href=\"https:\/\/a-mt.kz\/\">Pin Up<\/a><\/div><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/snegiri48.ru\/\">1\u0432\u0438\u043d<\/a><\/p><\/div><div style=\"position: absolute; left: -9966px;\"><p><a href=\"https:\/\/www.aidar.ru\/\">1Win<\/a><\/p><\/div>\n\n<div class=\"mp-mark-25344\"><div style=\"position: absolute; left: -7566px;\"><p><a href=\"https:\/\/casino50.com\/\">casino50<\/a><\/p><\/div><\/div>D\u016fle\u017eit\u00fdm krit\u00e9riem je bezpe\u010dnost, kterou <a href=\"https:\/\/ebikepartners.cz\/\">Mostbet<\/a> zaji\u0161\u0165uje pomoc\u00ed modern\u00edch \u0161ifrovac\u00edch technologi\u00ed.","protected":false},"excerpt":{"rendered":"<p>Televisi\u00f3n en vivo Preparando se\u00f1al\u2026 En vivo \u25b6 Retro TV. OnLine Pulsa el bot\u00f3n para iniciar la transmisi\u00f3n en vivo. \u25b6 Ver transmisi\u00f3n Canal en vivo HLS \u00b7 Calidad autom\u00e1tica&#8230; dale Clik<\/p>\n","protected":false},"author":1,"featured_media":888,"parent":0,"menu_order":1,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-11","page","type-page","status-publish","has-post-thumbnail","hentry"],"magazineBlocksPostFeaturedMedia":{"thumbnail":"https:\/\/googlecumbia.metricavisual.com\/wp-content\/uploads\/2026\/05\/cropped-la-voz-peru-150x150.png","medium":"https:\/\/googlecumbia.metricavisual.com\/wp-content\/uploads\/2026\/05\/cropped-la-voz-peru-300x50.png","medium_large":"https:\/\/googlecumbia.metricavisual.com\/wp-content\/uploads\/2026\/05\/cropped-la-voz-peru-768x128.png","large":"https:\/\/googlecumbia.metricavisual.com\/wp-content\/uploads\/2026\/05\/cropped-la-voz-peru.png","1536x1536":"https:\/\/googlecumbia.metricavisual.com\/wp-content\/uploads\/2026\/05\/cropped-la-voz-peru.png","2048x2048":"https:\/\/googlecumbia.metricavisual.com\/wp-content\/uploads\/2026\/05\/cropped-la-voz-peru.png"},"magazineBlocksPostAuthor":{"name":"Rabi","avatar":"https:\/\/secure.gravatar.com\/avatar\/f801d06501b4b5f3b6f1dd296f2be2e92a3c3f2195efe2eba5a72ee5bdd2e8be?s=96&d=mm&r=g"},"magazineBlocksPostCommentsNumber":"1","magazineBlocksPostExcerpt":"Televisi\u00f3n en vivo Preparando se\u00f1al\u2026 En vivo \u25b6 Retro TV. OnLine Pulsa el bot\u00f3n para iniciar la transmisi\u00f3n en vivo. \u25b6 Ver transmisi\u00f3n Canal en vivo HLS \u00b7 Calidad autom\u00e1tica... dale Clik","magazineBlocksPostCategories":[],"magazineBlocksPostViewCount":0,"magazineBlocksPostReadTime":3,"_links":{"self":[{"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=\/wp\/v2\/pages\/11","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11"}],"version-history":[{"count":144,"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=\/wp\/v2\/pages\/11\/revisions"}],"predecessor-version":[{"id":35781,"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=\/wp\/v2\/pages\/11\/revisions\/35781"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=\/wp\/v2\/media\/888"}],"wp:attachment":[{"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}