{"id":2361,"date":"2025-09-25T09:11:03","date_gmt":"2025-09-25T15:11:03","guid":{"rendered":"https:\/\/ddmx.cc\/?p=2361"},"modified":"2025-09-25T09:11:05","modified_gmt":"2025-09-25T15:11:05","slug":"interactivo-1a-sesion-cte-2025","status":"publish","type":"post","link":"https:\/\/ddmx.cc\/blog\/archivos\/2361","title":{"rendered":"Interactivo &#8211; 1a Sesi\u00f3n CTE 2025"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Plataforma de Aprendizaje: El CTE como Comunidad de Aprendizaje<\/title>\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;display=swap\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\n\n    <style>\n        body {\n            font-family: 'Inter', sans-serif;\n            background-color: #f0f4f8;\n        }\n        .cte-platform-nav-link {\n            transition: all 0.2s ease;\n            border-bottom: 4px solid transparent;\n            padding: 1.5rem 1rem;\n        }\n        .cte-platform-nav-link:hover, .cte-platform-nav-link.active {\n            color: #2b6cb0;\n            border-bottom-color: #2b6cb0;\n        }\n        .cte-platform-card {\n            background-color: #ffffff;\n            border-radius: 12px;\n            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n            transition: all 0.3s ease;\n        }\n        .cte-platform-card:hover {\n            transform: translateY(-5px);\n            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n        }\n        .cte-platform-progress-bar-bg {\n            background-color: #e2e8f0;\n        }\n        .cte-platform-progress-bar-fill {\n            background-color: #48bb78;\n            transition: width 0.5s ease-in-out;\n        }\n        .cte-platform-badge {\n            transition: all 0.3s ease;\n        }\n        .cte-platform-badge.locked {\n            filter: grayscale(100%);\n            opacity: 0.6;\n        }\n        .cte-platform-quiz-option {\n            border: 2px solid #e2e8f0;\n            transition: all 0.2s;\n        }\n        .cte-platform-quiz-option:hover {\n            border-color: #4299e1;\n            background-color: #ebf8ff;\n        }\n        .cte-platform-quiz-option.selected {\n             border-color: #4299e1;\n             background-color: #ebf8ff;\n        }\n        .cte-platform-quiz-option.correct {\n            border-color: #48bb78;\n            background-color: #f0fff4;\n        }\n        .cte-platform-quiz-option.incorrect {\n            border-color: #f56565;\n            background-color: #fff5f5;\n        }\n        .cte-platform-modal-backdrop {\n            background-color: rgba(0,0,0,0.5);\n            -webkit-backdrop-filter: blur(4px);\n            backdrop-filter: blur(4px);\n        }\n        \/* Game Styles *\/\n        .cte-platform-draggable {\n            cursor: grab;\n        }\n        .cte-platform-drop-target {\n            border: 2px dashed #cbd5e0;\n            transition: all 0.2s;\n        }\n        .cte-platform-drop-target.hover {\n            background-color: #ebf8ff;\n            border-color: #4299e1;\n        }\n        .cte-platform-drop-target.correct {\n            background-color: #c6f6d5;\n            border-color: #38a169;\n        }\n        .cte-platform-keyword {\n            color: #2b6cb0;\n            font-weight: 600;\n            cursor: pointer;\n            border-bottom: 2px dotted #90cdf4;\n        }\n    <\/style>\n<\/head>\n<body class=\"flex flex-col h-screen\">\n\n    <!-- Top Navigation -->\n    <header class=\"bg-white shadow-md z-20\">\n        <div class=\"container mx-auto px-6 flex items-center justify-between\">\n            <div class=\"flex-shrink-0 py-4\">\n                <h1 class=\"text-2xl font-bold text-gray-800\">Plataforma CTE<\/h1>\n                <p class=\"text-sm text-gray-500 hidden sm:block\">Comunidades de Aprendizaje<\/p>\n            <\/div>\n            <nav class=\"flex items-center h-full\">\n                <a href=\"#\" onclick=\"app.navigateTo('home')\" data-nav-id=\"home\" class=\"cte-platform-nav-link flex-shrink-0 flex items-center text-gray-600 font-medium active\">\n                    <i class=\"fas fa-home w-6 h-6 mr-2\"><\/i> <span>Inicio<\/span>\n                <\/a>\n                \n                <!-- Content Dropdown -->\n                <div class=\"relative h-full\" onmouseenter=\"app.toggleDropdown('content-dropdown', true)\" onmouseleave=\"app.toggleDropdown('content-dropdown', false)\">\n                    <button data-nav-id=\"content\" class=\"cte-platform-nav-link h-full flex-shrink-0 flex items-center text-gray-600 font-medium\">\n                        <i class=\"fas fa-book-open w-6 h-6 mr-2\"><\/i> <span>Contenido<\/span> <i class=\"fas fa-chevron-down text-xs ml-1\"><\/i>\n                    <\/button>\n                    <div id=\"content-dropdown\" class=\"absolute hidden bg-white shadow-lg rounded-b-md py-1 w-48 border-t\">\n                        <a href=\"#\" onclick=\"app.navigateTo('modules')\" class=\"block px-4 py-3 text-sm text-gray-700 hover:bg-gray-100\"><i class=\"fas fa-cubes w-4 mr-2\"><\/i>M\u00f3dulos<\/a>\n                        <a href=\"#\" onclick=\"app.navigateTo('glossary')\" class=\"block px-4 py-3 text-sm text-gray-700 hover:bg-gray-100\"><i class=\"fas fa-book w-4 mr-2\"><\/i>Glosario<\/a>\n                    <\/div>\n                <\/div>\n\n                <!-- Activities Dropdown -->\n                <div class=\"relative h-full\" onmouseenter=\"app.toggleDropdown('activities-dropdown', true)\" onmouseleave=\"app.toggleDropdown('activities-dropdown', false)\">\n                    <button data-nav-id=\"activities\" class=\"cte-platform-nav-link h-full flex-shrink-0 flex items-center text-gray-600 font-medium\">\n                        <i class=\"fas fa-puzzle-piece w-6 h-6 mr-2\"><\/i> <span>Actividades<\/span> <i class=\"fas fa-chevron-down text-xs ml-1\"><\/i>\n                    <\/button>\n                    <div id=\"activities-dropdown\" class=\"absolute hidden bg-white shadow-lg rounded-b-md py-1 w-48 border-t\">\n                        <a href=\"#\" onclick=\"app.navigateTo('games')\" class=\"block px-4 py-3 text-sm text-gray-700 hover:bg-gray-100\"><i class=\"fas fa-gamepad w-4 mr-2\"><\/i>Juegos<\/a>\n                        <a href=\"#\" onclick=\"app.navigateTo('timeline')\" class=\"block px-4 py-3 text-sm text-gray-700 hover:bg-gray-100\"><i class=\"fas fa-timeline w-4 mr-2\"><\/i>L\u00ednea de Tiempo<\/a>\n                        <a href=\"#\" onclick=\"app.navigateTo('simulator')\" class=\"block px-4 py-3 text-sm text-gray-700 hover:bg-gray-100\"><i class=\"fas fa-laptop-code w-4 mr-2\"><\/i>Simulador<\/a>\n                    <\/div>\n                <\/div>\n\n                <a href=\"#\" onclick=\"app.navigateTo('progress')\" data-nav-id=\"progress\" class=\"cte-platform-nav-link flex-shrink-0 flex items-center text-gray-600 font-medium\">\n                    <i class=\"fas fa-chart-line w-6 h-6 mr-2\"><\/i> <span>Progreso<\/span>\n                <\/a>\n            <\/nav>\n        <\/div>\n    <\/header>\n\n    <!-- Main Content -->\n    <main class=\"flex-1 overflow-y-auto p-8 lg:p-12\">\n        <div id=\"content-area\">\n            <!-- Content will be injected here by JavaScript -->\n        <\/div>\n    <\/main>\n\n    <!-- Modal for Glossary -->\n    <div id=\"glossary-modal\" class=\"fixed inset-0 z-50 items-center justify-center hidden cte-platform-modal-backdrop\">\n        <div class=\"cte-platform-card w-full max-w-lg p-6 m-4\">\n            <div class=\"flex justify-between items-center mb-4\">\n                <h2 id=\"modal-title\" class=\"text-2xl font-bold text-gray-800\"><\/h2>\n                <button onclick=\"app.closeModal()\" class=\"text-gray-500 hover:text-gray-800\">\n                    <i class=\"fas fa-times text-2xl\"><\/i>\n                <\/button>\n            <\/div>\n            <p id=\"modal-content\" class=\"text-gray-600\"><\/p>\n        <\/div>\n    <\/div>\n\n\n<script>\nconst app = {\n    \/\/ STATE\n    state: {\n        currentPage: 'home',\n        totalScore: 0,\n        completedModules: [],\n        unlockedBadges: [],\n        quizData: {\n            1: { score: null, completed: false },\n            2: { score: null, completed: false },\n            3: { score: null, completed: false },\n            4: { score: null, completed: false },\n        }\n    },\n\n    \/\/ DATA\n    modules: [\n        { id: 1, title: \"La Nueva Escuela Mexicana y el CTE\", icon: \"school\" },\n        { id: 2, title: \"\u00bfQu\u00e9 es una Comunidad de Aprendizaje?\", icon: \"users\" },\n        { id: 3, title: \"Autonom\u00eda Profesional y Colaboraci\u00f3n\", icon: \"lightbulb\" },\n        { id: 4, title: \"El Itinerario y la Mejora Continua\", icon: \"cogs\" }\n    ],\n\n    glossary: {\n        'CTE': 'Consejo T\u00e9cnico Escolar. Es el \u00f3rgano colegiado de mayor decisi\u00f3n t\u00e9cnico-pedag\u00f3gica de cada escuela de Educaci\u00f3n B\u00e1sica, encargado de tomar y ejecutar decisiones enfocadas a alcanzar el m\u00e1ximo logro de los aprendizajes del alumnado.',\n        'CA': 'Comunidad de Aprendizaje. Es un proyecto de transformaci\u00f3n social y cultural de un centro educativo y de su entorno para conseguir una Sociedad de la Informaci\u00f3n para todas las personas, basada en el aprendizaje dial\u00f3gico.',\n        'NEM': 'Nueva Escuela Mexicana. Propuesta pedag\u00f3gica que busca promover un aprendizaje de excelencia, inclusivo, pluricultural, colaborativo y equitativo a lo largo del trayecto de su formaci\u00f3n, desde el nacimiento hasta que concluya sus estudios.',\n        'Aprendizaje Dial\u00f3gico': 'Se produce en di\u00e1logos que no est\u00e1n basados en pretensiones de poder, sino en pretensiones de validez, honestidad, y en la fuerza de los argumentos. Es un aprendizaje que se da en y a trav\u00e9s de la interacci\u00f3n.',\n        'Autonom\u00eda Profesional': 'Capacidad de las y los docentes para tomar decisiones informadas sobre la planeaci\u00f3n y evaluaci\u00f3n de los procesos de ense\u00f1anza y aprendizaje, basadas en su contexto y las necesidades de sus estudiantes.',\n        'Mejora Continua': 'Proceso progresivo y gradual que busca mejorar los logros educativos de la escuela, atendiendo las problem\u00e1ticas identificadas por el colectivo docente de manera colaborativa y con una visi\u00f3n compartida.'\n    },\n\n    quizzes: {\n        1: {\n            title: \"Test del M\u00f3dulo 1\",\n            questions: [\n                {\n                    question: \"\u00bfCu\u00e1l es uno de los prop\u00f3sitos de la Nueva Escuela Mexicana (NEM)?\",\n                    options: [\"Fomentar la competencia individual\", \"Formar ciudadanos comprometidos con la dignidad humana\", \"Estandarizar los m\u00e9todos de ense\u00f1anza\", \"Priorizar el aprendizaje memor\u00edstico\"],\n                    answer: \"Formar ciudadanos comprometidos con la dignidad humana\",\n                    explanation: \"La NEM busca formar ciudadanos comprometidos con el respeto irrestricto de la dignidad humana y el goce de los derechos humanos para todas las personas.\"\n                },\n                {\n                    question: \"\u00bfC\u00f3mo concibe la Ley General de Educaci\u00f3n a la escuela?\",\n                    options: [\"Como un centro de instrucci\u00f3n acad\u00e9mica\", \"Como un lugar de trabajo para docentes\", \"Como un centro de aprendizaje comunitario\", \"Como una entidad administrativa\"],\n                    answer: \"Como un centro de aprendizaje comunitario\",\n                    explanation: \"La ley concibe a la escuela como 'un centro de aprendizaje comunitario en el que se construyen y convergen saberes, se intercambian valores, normas, culturas y formas de convivencia'.\"\n                },\n                {\n                    question: \"La problematizaci\u00f3n de las realidades educativas implica...\",\n                    options: [\"Aceptar las cosas como son\", \"Cuestionar esquemas de organizaci\u00f3n y participaci\u00f3n\", \"Seguir las instrucciones sin cuestionar\", \"Ignorar el contexto de la escuela\"],\n                    answer: \"Cuestionar esquemas de organizaci\u00f3n y participaci\u00f3n\",\n                    explanation: \"Implica cuestionar esquemas, creencias e imaginarios sobre el proceso educativo para darle un nuevo sentido a la actividad cotidiana.\"\n                }\n            ]\n        },\n        2: {\n            title: \"Test del M\u00f3dulo 2\",\n            questions: [\n                {\n                    question: \"\u00bfQu\u00e9 elemento es primordial en una Comunidad de Aprendizaje (CA)?\",\n                    options: [\"El trabajo individual\", \"La competencia entre docentes\", \"El trabajo colaborativo\", \"La jerarqu\u00eda directiva\"],\n                    answer: \"El trabajo colaborativo\",\n                    explanation: \"El trabajo colaborativo es un elemento primordial de una comunidad que aprende a partir de la reflexi\u00f3n sobre su pr\u00e1ctica.\"\n                },\n                {\n                    question: \"\u00bfQu\u00e9 tipo de aprendizaje establece la CA como compromiso comunitario?\",\n                    options: [\"Aprendizaje competitivo\", \"Aprendizaje pasivo\", \"Aprendizaje memor\u00edstico\", \"Aprendizaje dial\u00f3gico\"],\n                    answer: \"Aprendizaje dial\u00f3gico\",\n                    explanation: \"Una CA establece al aprendizaje dial\u00f3gico como compromiso comunitario para la mejora educativa y para construir una sociedad m\u00e1s justa.\"\n                },\n                {\n                    question: \"Adem\u00e1s de la mejora escolar, \u00bfen qu\u00e9 pone \u00e9nfasis una CA?\",\n                    options: [\"En la competencia entre docentes\", \"En el aprendizaje y mejora de la pr\u00e1ctica de los propios docentes\", \"En el cumplimiento de tareas administrativas\", \"En la estandarizaci\u00f3n de contenidos\"],\n                    answer: \"En el aprendizaje y mejora de la pr\u00e1ctica de los propios docentes\",\n                    explanation: \"La CA pone \u00e9nfasis en que, en la interacci\u00f3n y participaci\u00f3n colaborativa, las y los docentes tambi\u00e9n aprenden y mejoran su propia pr\u00e1ctica.\"\n                }\n            ]\n        },\n        3: {\n            title: \"Test del M\u00f3dulo 3\",\n            questions: [\n                {\n                    question: \"\u00bfCu\u00e1l es la finalidad esencial de la autonom\u00eda de una escuela?\",\n                    options: [\"Reducir la carga de trabajo\", \"La mejora de la educaci\u00f3n y el aprendizaje\", \"Aumentar el salario docente\", \"Eliminar la supervisi\u00f3n\"],\n                    answer: \"La mejora de la educaci\u00f3n y el aprendizaje\",\n                    explanation: \"La finalidad esencial de la autonom\u00eda es la mejora de la educaci\u00f3n en el pa\u00eds, la escuela y el aprendizaje de ni\u00f1as, ni\u00f1os y adolescentes.\"\n                },\n                {\n                    question: \"Seg\u00fan Freire, el cambio hacia la mejora inicia...\",\n                    options: [\"De arriba hacia abajo\", \"De afuera hacia adentro\", \"De abajo hacia arriba y de adentro hacia afuera\", \"Solo desde la direcci\u00f3n\"],\n                    answer: \"De abajo hacia arriba y de adentro hacia afuera\",\n                    explanation: \"Freire postula que el cambio hacia la mejora inicia desde la base, generando situaciones positivas en los colectivos.\"\n                },\n                {\n                    question: \"\u00bfC\u00f3mo promueven las CA la autonom\u00eda profesional?\",\n                    options: [\"Fomentando el trabajo aislado\", \"Creando entornos colaborativos para tomar decisiones conjuntas\", \"Estableciendo reglas r\u00edgidas\", \"Limitando la participaci\u00f3n docente\"],\n                    answer: \"Creando entornos colaborativos para tomar decisiones conjuntas\",\n                    explanation: \"Las CA promueven la autonom\u00eda al crear entornos colaborativos para que los docentes tomen decisiones conjuntas sobre sus procesos educativos.\"\n                }\n            ]\n        },\n        4: {\n            title: \"Test del M\u00f3dulo 4\",\n            questions: [\n                {\n                    question: \"\u00bfQu\u00e9 es el 'Itinerario' del Consejo T\u00e9cnico Escolar?\",\n                    options: [\"Un calendario de vacaciones\", \"Un documento con sanciones\", \"La ruta de temas que cada colectivo decide abordar durante el ciclo escolar\", \"Un examen para docentes\"],\n                    answer: \"La ruta de temas que cada colectivo decide abordar durante el ciclo escolar\",\n                    explanation: \"El Itinerario es la ruta que cada colectivo docente define, en ejercicio de su autonom\u00eda, para abordar los temas que consideran m\u00e1s relevantes para su contexto.\"\n                },\n                {\n                    question: \"Para construir el Programa de mejora continua, se recomienda concentrar esfuerzos en...\",\n                    options: [\"Diez o m\u00e1s problem\u00e1ticas\", \"Solo en lo que diga el director\", \"Una o dos problem\u00e1ticas prioritarias\", \"Las problem\u00e1ticas m\u00e1s f\u00e1ciles de resolver\"],\n                    answer: \"Una o dos problem\u00e1ticas prioritarias\",\n                    explanation: \"Se recomienda enfocarse en una o dos problem\u00e1ticas clave para tener una planeaci\u00f3n realista y viable.\"\n                },\n                {\n                    question: \"\u00bfQui\u00e9n decide la selecci\u00f3n de los temas a abordar en el Itinerario?\",\n                    options: [\"El supervisor\", \"La Secretar\u00eda de Educaci\u00f3n P\u00fablica\", \"El colectivo docente\", \"Los padres de familia\"],\n                    answer: \"El colectivo docente\",\n                    explanation: \"La selecci\u00f3n de temas es una decisi\u00f3n del colectivo docente, en ejercicio de su autonom\u00eda profesional.\"\n                }\n            ]\n        },\n    },\n\n    badges: [\n        { id: 'module1_complete', title: \"Pionero de la NEM\", icon: \"fa-rocket\", description: \"Completaste el M\u00f3dulo 1.\", unlocked: false },\n        { id: 'module2_complete', title: \"Arquitecto Comunitario\", icon: \"fa-users-cog\", description: \"Completaste el M\u00f3dulo 2.\", unlocked: false },\n        { id: 'module3_complete', title: \"L\u00edder Aut\u00f3nomo\", icon: \"fa-user-graduate\", description: \"Completaste el M\u00f3dulo 3.\", unlocked: false },\n        { id: 'module4_complete', title: \"Estratega de Mejora\", icon: \"fa-chart-pie\", description: \"Completaste el M\u00f3dulo 4.\", unlocked: false },\n        { id: 'perfect_score', title: \"Mente Maestra\", icon: \"fa-brain\", description: \"Obtuviste una puntuaci\u00f3n perfecta en un test.\", unlocked: false },\n        { id: 'all_modules_complete', title: \"Maestro del CTE\", icon: \"fa-crown\", description: \"Completaste todos los m\u00f3dulos.\", unlocked: false }\n    ],\n\n    \/\/ INITIALIZATION\n    init() {\n        this.render();\n        this.addKeywordListeners();\n    },\n\n    \/\/ RENDER LOGIC\n    render() {\n        const contentArea = document.getElementById('content-area');\n        let html = '';\n        \n        switch (this.state.currentPage) {\n            case 'home':\n                html = this.renderHome();\n                break;\n            case 'modules':\n                html = this.renderModules();\n                break;\n            case 'module_content':\n                html = this.renderModuleContent(this.state.currentModuleId);\n                break;\n            case 'quiz':\n                html = this.renderQuiz(this.state.currentModuleId);\n                break;\n            case 'glossary':\n                html = this.renderGlossary();\n                break;\n            case 'games':\n                html = this.renderGames();\n                break;\n             case 'game_matching':\n                html = this.renderMatchingGame();\n                break;\n            case 'game_dragdrop':\n                html = this.renderDragDropGame();\n                break;\n            case 'progress':\n                html = this.renderProgress();\n                break;\n            case 'timeline':\n                html = this.renderTimeline();\n                break;\n            case 'simulator':\n                html = this.renderSimulator();\n                break;\n        }\n        contentArea.innerHTML = html;\n        this.updateNavLinks();\n\n        \/\/ Re-attach listeners if the new content has keywords\n        if (this.state.currentPage === 'module_content') {\n            this.addKeywordListeners();\n        }\n    },\n\n    \/\/ PAGE RENDERING\n    renderHome() {\n        return `\n            <div class=\"animate-fade-in-down\">\n                <h1 class=\"text-4xl font-bold text-gray-800 mb-2\">Bienvenido a la Plataforma de Aprendizaje del CTE<\/h1>\n                <p class=\"text-lg text-gray-600 mb-8\">Explora los conceptos clave del Consejo T\u00e9cnico Escolar como una Comunidad de Aprendizaje de forma interactiva.<\/p>\n                \n                <div class=\"grid md:grid-cols-2 lg:grid-cols-3 gap-6\">\n                    <div class=\"cte-platform-card p-6 flex flex-col items-center text-center cursor-pointer\" onclick=\"app.navigateTo('modules')\">\n                        <i class=\"fas fa-cubes text-4xl text-blue-500 mb-4\"><\/i>\n                        <h3 class=\"text-xl font-semibold text-gray-700\">M\u00f3dulos de Aprendizaje<\/h3>\n                        <p class=\"text-gray-500 mt-2\">Sum\u00e9rgete en el contenido estructurado de los documentos.<\/p>\n                    <\/div>\n                    <div class=\"cte-platform-card p-6 flex flex-col items-center text-center cursor-pointer\" onclick=\"app.navigateTo('games')\">\n                        <i class=\"fas fa-gamepad text-4xl text-green-500 mb-4\"><\/i>\n                        <h3 class=\"text-xl font-semibold text-gray-700\">Juegos Interactivos<\/h3>\n                        <p class=\"text-gray-500 mt-2\">Refuerza tu conocimiento mientras te diviertes.<\/p>\n                    <\/div>\n                    <div class=\"cte-platform-card p-6 flex flex-col items-center text-center cursor-pointer\" onclick=\"app.navigateTo('progress')\">\n                        <i class=\"fas fa-chart-line text-4xl text-purple-500 mb-4\"><\/i>\n                        <h3 class=\"text-xl font-semibold text-gray-700\">Tu Progreso<\/h3>\n                        <p class=\"text-gray-500 mt-2\">Revisa tus logros, puntuaci\u00f3n y medallas obtenidas.<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n        `;\n    },\n\n    renderModules() {\n        let moduleCards = this.modules.map(module => {\n            const isCompleted = this.state.completedModules.includes(module.id);\n            return `\n                <div class=\"cte-platform-card p-6 flex items-center cursor-pointer\" onclick=\"app.navigateTo('module_content', { moduleId: ${module.id} })\">\n                    <div class=\"mr-6\">\n                        <i class=\"fas fa-${module.icon} text-3xl ${isCompleted ? 'text-green-500' : 'text-blue-500'}\"><\/i>\n                    <\/div>\n                    <div>\n                        <h3 class=\"text-xl font-semibold text-gray-700\">${module.title}<\/h3>\n                        <p class=\"text-gray-500\">Explora los conceptos clave de este m\u00f3dulo.<\/p>\n                    <\/div>\n                    ${isCompleted ? '<i class=\"fas fa-check-circle text-2xl text-green-500 ml-auto\"><\/i>' : ''}\n                <\/div>\n            `;\n        }).join('');\n        \n        return `\n            <h1 class=\"text-3xl font-bold text-gray-800 mb-6\">M\u00f3dulos de Aprendizaje<\/h1>\n            <div class=\"space-y-4\">\n                ${moduleCards}\n            <\/div>\n        `;\n    },\n    \n    renderModuleContent(moduleId) {\n        let content = '';\n        switch(moduleId) {\n            case 1:\n                content = `\n                    <h2 class=\"text-2xl font-semibold text-gray-800 mb-4\">M\u00f3dulo 1: La Nueva Escuela Mexicana y el CTE<\/h2>\n                    <div class=\"space-y-6 text-gray-700 leading-relaxed\">\n                        <p>La <span class=\"cte-platform-keyword\" data-term=\"NEM\">Nueva Escuela Mexicana (NEM)<\/span> est\u00e1 transformando la educaci\u00f3n con un enfoque comunitario. Reconoce que en la escuela confluyen saberes, valores, normas y culturas de la comunidad. Esta visi\u00f3n aporta elementos valiosos para el aprendizaje, pero tambi\u00e9n presenta retos para los docentes.<\/p>\n                        \n                        <div class=\"cte-platform-card p-6 bg-blue-50 border-l-4 border-blue-400\">\n                            <h3 class=\"font-semibold text-lg mb-2\">Resumen Explicativo<\/h3>\n                            <p>El <span class=\"cte-platform-keyword\" data-term=\"CTE\">Consejo T\u00e9cnico Escolar (CTE)<\/span> es clave en este proceso. A trav\u00e9s de la <span class=\"cte-platform-keyword\" data-term=\"Autonom\u00eda Profesional\">autonom\u00eda profesional<\/span>, el CTE fomenta la colaboraci\u00f3n docente para construir conocimiento colectivo que genere cambios reales y responda a la transformaci\u00f3n educativa impulsada por la NEM.<\/p>\n                        <\/div>\n\n                        <div class=\"cte-platform-card p-6 bg-green-50 border-l-4 border-green-400\">\n                            <h3 class=\"font-semibold text-lg mb-2\">Ejemplo Pr\u00e1ctico<\/h3>\n                            <p>Imagina un <span class=\"cte-platform-keyword\" data-term=\"CTE\">CTE<\/span> donde los maestros detectan dificultades en la comprensi\u00f3n lectora. En lugar de que cada uno busque una soluci\u00f3n individual, colaboran: comparten estrategias que les han funcionado, dise\u00f1an un peque\u00f1o proyecto de lectura para toda la escuela y analizan juntos los resultados. Est\u00e1n construyendo conocimiento colectivo y mejorando su pr\u00e1ctica.<\/p>\n                        <\/div>\n\n                        <div class=\"cte-platform-card p-6\">\n                            <h3 class=\"font-semibold text-lg mb-2\">Recursos Visuales: Principios Clave<\/h3>\n                            <ul class=\"list-disc list-inside space-y-2\">\n                                <li><strong>Enfoque Comunitario:<\/strong> La escuela como centro de aprendizaje para todos.<\/li>\n                                <li><strong>Autonom\u00eda Profesional:<\/strong> Los docentes toman decisiones pedag\u00f3gicas informadas.<\/li>\n                                <li><strong>Trabajo Colaborativo:<\/strong> Construcci\u00f3n de conocimiento colectivo para la mejora.<\/li>\n                                <li><strong>Formaci\u00f3n de Ciudadan\u00eda:<\/strong> Educar en el respeto a la dignidad y los derechos humanos.<\/li>\n                            <\/ul>\n                        <\/div>\n                    <\/div>\n                `;\n                break;\n            case 2:\n                content = `\n                    <h2 class=\"text-2xl font-semibold text-gray-800 mb-4\">M\u00f3dulo 2: \u00bfQu\u00e9 es una Comunidad de Aprendizaje?<\/h2>\n                    <div class=\"space-y-6 text-gray-700 leading-relaxed\">\n                        <p>Una <span class=\"cte-platform-keyword\" data-term=\"CA\">Comunidad de Aprendizaje (CA)<\/span> es una oportunidad de mejora educativa que va m\u00e1s all\u00e1 del trabajo en grupo. Se basa en el compromiso de toda la comunidad para mejorar la educaci\u00f3n y construir una sociedad m\u00e1s justa, cr\u00edtica y solidaria.<\/p>\n                        \n                        <div class=\"cte-platform-card p-6 bg-blue-50 border-l-4 border-blue-400\">\n                            <h3 class=\"font-semibold text-lg mb-2\">Resumen Explicativo<\/h3>\n                            <p>El <span class=\"cte-platform-keyword\" data-term=\"CTE\">CTE<\/span>, funcionando como una <span class=\"cte-platform-keyword\" data-term=\"CA\">CA<\/span>, busca que los docentes aborden problemas de su pr\u00e1ctica de forma reflexiva y cr\u00edtica. El objetivo es mejorar el aprendizaje de los estudiantes llegando a acuerdos que luego se implementan en el aula. El pilar de este proceso es el <span class=\"cte-platform-keyword\" data-term=\"Aprendizaje Dial\u00f3gico\">aprendizaje dial\u00f3gico<\/span>, que se da a trav\u00e9s de la interacci\u00f3n y el debate.<\/p>\n                        <\/div>\n\n                        <div class=\"cte-platform-card p-6 bg-green-50 border-l-4 border-green-400\">\n                            <h3 class=\"font-semibold text-lg mb-2\">Ejemplo Pr\u00e1ctico<\/h3>\n                            <p>Un grupo de profesores en su <span class=\"cte-platform-keyword\" data-term=\"CTE\">CTE<\/span> discute sobre el bajo inter\u00e9s de los alumnos en ciencias. Un maestro comparte una experiencia exitosa con experimentos caseros. Otro sugiere conectarlos con problemas ambientales de la comunidad. A trav\u00e9s del di\u00e1logo, no solo encuentran una soluci\u00f3n, sino que todos aprenden y enriquecen su perspectiva pedag\u00f3gica.<\/p>\n                        <\/div>\n                        \n                        <div class=\"cte-platform-card p-6\">\n                            <h3 class=\"font-semibold text-lg mb-2 text-center\">Esquema: Pilares de una CA<\/h3>\n                            <div class=\"flex justify-center items-center my-4\">\n<img decoding=\"async\" src=\"https:\/\/ddmx.cc\/wp-content\/uploads\/2025\/09\/image-1.png\" alt=\"Esquema de consolidaci\u00f3n del CTE como Comunidad de Aprendizaje\" class=\"mx-auto max-w-lg w-full\">\n\n                    <\/div>\n                `;\n                break;\n            case 3:\n                content = `\n                    <h2 class=\"text-2xl font-semibold text-gray-800 mb-4\">M\u00f3dulo 3: Autonom\u00eda Profesional y Colaboraci\u00f3n<\/h2>\n                    <div class=\"space-y-6 text-gray-700 leading-relaxed\">\n                        <p>La <span class=\"cte-platform-keyword\" data-term=\"Autonom\u00eda Profesional\">autonom\u00eda profesional<\/span> no significa trabajar de forma aislada. Por el contrario, se fortalece dentro de un marco de colaboraci\u00f3n y di\u00e1logo. Es la capacidad del colectivo docente para tomar las mejores decisiones para su contexto espec\u00edfico.<\/p>\n                        \n                        <div class=\"cte-platform-card p-6 bg-blue-50 border-l-4 border-blue-400\">\n                            <h3 class=\"font-semibold text-lg mb-2\">Resumen Explicativo<\/h3>\n                            <p>La finalidad de la autonom\u00eda es la <span class=\"cte-platform-keyword\" data-term=\"Mejora Continua\">mejora continua<\/span> de la educaci\u00f3n. Las <span class=\"cte-platform-keyword\" data-term=\"CA\">Comunidades de Aprendizaje<\/span> promueven esta autonom\u00eda al crear entornos donde los docentes pueden tomar decisiones conjuntas, aprender de forma independiente y responder a sus necesidades y contextos espec\u00edficos de manera innovadora y autogestiva.<\/p>\n                        <\/div>\n\n                        <div class=\"cte-platform-card p-6 bg-green-50 border-l-4 border-green-400\">\n                            <h3 class=\"font-semibold text-lg mb-2\">Ejemplo Pr\u00e1ctico<\/h3>\n                            <p>Una escuela decide, de forma aut\u00f3noma, que necesita fortalecer las habilidades socioemocionales de sus estudiantes. El colectivo docente investiga diferentes programas, adapta uno a su contexto, decide c\u00f3mo implementarlo en sus clases y establece sus propias formas de evaluar el progreso. No esperaron una indicaci\u00f3n \"de arriba\", sino que tomaron la iniciativa bas\u00e1ndose en su realidad.<\/p>\n                        <\/div>\n                        \n                        <div class=\"cte-platform-card p-6\">\n                            <h3 class=\"font-semibold text-lg mb-2\">Tabla Comparativa<\/h3>\n                            <table class=\"w-full text-sm text-left text-gray-500\">\n                                <thead class=\"text-xs text-gray-700 uppercase bg-gray-50\">\n                                    <tr>\n                                        <th scope=\"col\" class=\"px-6 py-3\">Caracter\u00edstica<\/th>\n                                        <th scope=\"col\" class=\"px-6 py-3\">Enfoque Individualista<\/th>\n                                        <th scope=\"col\" class=\"px-6 py-3\">Enfoque Colaborativo (CA)<\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody>\n                                    <tr class=\"bg-white border-b\">\n                                        <td class=\"px-6 py-4 font-medium\">Toma de Decisiones<\/td>\n                                        <td class=\"px-6 py-4\">Aislada, en el aula.<\/td>\n                                        <td class=\"px-6 py-4\">Conjunta, consensuada en el CTE.<\/td>\n                                    <\/tr>\n                                    <tr class=\"bg-gray-50 border-b\">\n                                        <td class=\"px-6 py-4 font-medium\">Resoluci\u00f3n de Problemas<\/td>\n                                        <td class=\"px-6 py-4\">Responsabilidad \u00fanica del docente.<\/td>\n                                        <td class=\"px-6 py-4\">Responsabilidad compartida, se buscan soluciones colectivas.<\/td>\n                                    <\/tr>\n                                    <tr class=\"bg-white\">\n                                        <td class=\"px-6 py-4 font-medium\">Aprendizaje Docente<\/td>\n                                        <td class=\"px-6 py-4\">A trav\u00e9s de cursos externos.<\/td>\n                                        <td class=\"px-6 py-4\">Constante, a trav\u00e9s del di\u00e1logo y la reflexi\u00f3n con pares.<\/td>\n                                    <\/tr>\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n                    <\/div>\n                `;\n                break;\n            case 4:\n                content = `\n                    <h2 class=\"text-2xl font-semibold text-gray-800 mb-4\">M\u00f3dulo 4: El Itinerario y la Mejora Continua<\/h2>\n                     <div class=\"space-y-6 text-gray-700 leading-relaxed\">\n                        <p>Para consolidar el <span class=\"cte-platform-keyword\" data-term=\"CTE\">CTE<\/span> como una <span class=\"cte-platform-keyword\" data-term=\"CA\">CA<\/span>, es fundamental tener una ruta de trabajo clara y flexible. Aqu\u00ed es donde entran los conceptos de Itinerario del CTE y Proceso de <span class=\"cte-platform-keyword\" data-term=\"Mejora Continua\">Mejora Continua<\/span>.<\/p>\n                        \n                        <div class=\"cte-platform-card p-6 bg-blue-50 border-l-4 border-blue-400\">\n                            <h3 class=\"font-semibold text-lg mb-2\">Resumen Explicativo<\/h3>\n                            <p>El <strong>Itinerario del CTE<\/strong> es la ruta que el colectivo docente decide seguir durante las sesiones del ciclo escolar, seleccionando los temas que consideran m\u00e1s pertinentes para sus necesidades. Esto se alinea con el <strong>Programa de <span class=\"cte-platform-keyword\" data-term=\"Mejora Continua\">Mejora Continua<\/span><\/strong>, que es la planeaci\u00f3n estrat\u00e9gica de la escuela para atender una o dos problem\u00e1ticas prioritarias, estableciendo objetivos, metas y acciones claras.<\/p>\n                        <\/div>\n\n                        <div class=\"cte-platform-card p-6 bg-green-50 border-l-4 border-green-400\">\n                            <h3 class=\"font-semibold text-lg mb-2\">Ejemplo Pr\u00e1ctico<\/h3>\n                            <p>Un colectivo docente identifica como problem\u00e1tica prioritaria la \"falta de involucramiento de las familias\". Para su Programa de <span class=\"cte-platform-keyword\" data-term=\"Mejora Continua\">Mejora Continua<\/span>, establecen el objetivo de \"aumentar la participaci\u00f3n parental en un 20%\". Su Itinerario del CTE podr\u00eda incluir sesiones para analizar temas como \"Estrategias de comunicaci\u00f3n efectiva con padres\" o \"Dise\u00f1o de proyectos escolares que involucren a la comunidad\".<\/p>\n                        <\/div>\n\n                         <div class=\"cte-platform-card p-6\">\n                            <h3 class=\"font-semibold text-lg mb-2 text-center\">Esquema: Consolidaci\u00f3n del CTE<\/h3>\n                            <p class=\"text-center text-gray-500 mb-4\">El CTE articula diversos elementos para consolidarse como una Comunidad de Aprendizaje.<\/p>\n                             <img decoding=\"async\" src=\"https:\/\/ddmx.cc\/wp-content\/uploads\/2025\/09\/Captura-de-pantalla-2025-09-25-085809.png\" alt=\"Esquema de consolidaci\u00f3n del CTE como Comunidad de Aprendizaje\" class=\"mx-auto max-w-lg w-full\">\n                        <\/div>\n                    <\/div>\n                `;\n                break;\n        }\n\n        return `\n            <div class=\"mb-6\">\n                <a href=\"#\" onclick=\"app.navigateTo('modules')\" class=\"text-blue-600 hover:underline\"><i class=\"fas fa-arrow-left mr-2\"><\/i> Volver a M\u00f3dulos<\/a>\n            <\/div>\n            ${content}\n            <div class=\"mt-8 text-center\">\n                <button onclick=\"app.navigateTo('quiz', { moduleId: ${moduleId} })\" class=\"bg-blue-600 text-white font-bold py-3 px-8 rounded-lg hover:bg-blue-700 transition-colors\">\n                    <i class=\"fas fa-question-circle mr-2\"><\/i> Realizar Test del M\u00f3dulo\n                <\/button>\n            <\/div>\n        `;\n    },\n\n    renderQuiz(moduleId) {\n        const quiz = this.quizzes[moduleId];\n        let questionsHtml = quiz.questions.map((q, index) => {\n            let optionsHtml = q.options.map((option, i) => `\n                <div id=\"q${index}_opt${i}\" class=\"cte-platform-quiz-option p-4 rounded-lg cursor-pointer\" onclick=\"app.selectAnswer(${moduleId}, ${index}, ${i})\">\n                    ${option}\n                <\/div>\n            `).join('');\n            return `\n                <div id=\"question-${index}\" class=\"mb-8\">\n                    <h3 class=\"text-lg font-semibold mb-4\">${index + 1}. ${q.question}<\/h3>\n                    <div class=\"space-y-3\">\n                        ${optionsHtml}\n                    <\/div>\n                    <div id=\"feedback-${index}\" class=\"mt-3 text-sm\"><\/div>\n                <\/div>\n            `;\n        }).join('');\n\n        return `\n             <div class=\"mb-6\">\n                <a href=\"#\" onclick=\"app.navigateTo('module_content', { moduleId: ${moduleId} })\" class=\"text-blue-600 hover:underline\"><i class=\"fas fa-arrow-left mr-2\"><\/i> Volver al M\u00f3dulo<\/a>\n            <\/div>\n            <h1 class=\"text-3xl font-bold text-gray-800 mb-2\">${quiz.title}<\/h1>\n            <p class=\"text-gray-600 mb-6\">Selecciona la respuesta correcta para cada pregunta.<\/p>\n            <div id=\"quiz-container\">\n                ${questionsHtml}\n            <\/div>\n            <div id=\"quiz-result\" class=\"text-center mt-8\"><\/div>\n        `;\n    },\n    \n    renderGlossary() {\n        let termsHtml = Object.keys(this.glossary).sort().map(term => `\n            <div class=\"cte-platform-card p-4 cursor-pointer\" onclick=\"app.showGlossaryTerm('${term}')\">\n                <h3 class=\"font-semibold text-lg text-gray-800\">${term}<\/h3>\n            <\/div>\n        `).join('');\n\n        return `\n            <h1 class=\"text-3xl font-bold text-gray-800 mb-6\">Glosario de T\u00e9rminos<\/h1>\n            <div class=\"grid md:grid-cols-2 lg:grid-cols-3 gap-4\">\n                ${termsHtml}\n            <\/div>\n        `;\n    },\n    \n    renderGames() {\n        return `\n            <h1 class=\"text-3xl font-bold text-gray-800 mb-6\">Juegos Interactivos<\/h1>\n            <div class=\"grid md:grid-cols-2 gap-6\">\n                <div class=\"cte-platform-card p-6 text-center cursor-pointer\" onclick=\"app.navigateTo('game_matching')\">\n                    <i class=\"fas fa-link text-4xl text-blue-500 mb-4\"><\/i>\n                    <h3 class=\"text-xl font-semibold text-gray-700\">Emparejar Conceptos<\/h3>\n                    <p class=\"text-gray-500 mt-2\">Relaciona cada t\u00e9rmino con su definici\u00f3n correcta.<\/p>\n                <\/div>\n                <div class=\"cte-platform-card p-6 text-center cursor-pointer\" onclick=\"app.navigateTo('game_dragdrop')\">\n                     <i class=\"fas fa-hand-pointer text-4xl text-green-500 mb-4\"><\/i>\n                    <h3 class=\"text-xl font-semibold text-gray-700\">Arrastrar y Soltar<\/h3>\n                    <p class=\"text-gray-500 mt-2\">Arrastra la definici\u00f3n correcta a su concepto correspondiente.<\/p>\n                <\/div>\n            <\/div>\n        `;\n    },\n\n    renderMatchingGame() {\n        const gameData = {\n            'CTE': '\u00d3rgano colegiado de mayor decisi\u00f3n t\u00e9cnico-pedag\u00f3gica de una escuela.',\n            'CA': 'Proyecto de transformaci\u00f3n social y cultural de un centro educativo.',\n            'NEM': 'Propuesta pedag\u00f3gica que busca un aprendizaje de excelencia, inclusivo y colaborativo.',\n            'Aprendizaje Dial\u00f3gico': 'Se produce en di\u00e1logos basados en la fuerza de los argumentos, no en el poder.'\n        };\n        const terms = Object.keys(gameData);\n        const definitions = Object.values(gameData);\n\n        \/\/ Shuffle\n        const shuffledTerms = this.shuffleArray([...terms]);\n        const shuffledDefinitions = this.shuffleArray([...definitions]);\n\n        let termsHtml = shuffledTerms.map(term => `<div class=\"p-3 border rounded-lg cursor-pointer bg-blue-100 border-blue-300\" data-type=\"term\" data-value=\"${term}\" onclick=\"game.select(this)\">${term}<\/div>`).join('');\n        let defsHtml = shuffledDefinitions.map(def => `<div class=\"p-3 border rounded-lg cursor-pointer bg-green-100 border-green-300\" data-type=\"definition\" data-value=\"${def}\" onclick=\"game.select(this)\">${def}<\/div>`).join('');\n\n        return `\n            <div class=\"mb-6\">\n                <a href=\"#\" onclick=\"app.navigateTo('games')\" class=\"text-blue-600 hover:underline\"><i class=\"fas fa-arrow-left mr-2\"><\/i> Volver a Juegos<\/a>\n            <\/div>\n            <h2 class=\"text-2xl font-bold text-gray-800 mb-2\">Juego: Emparejar Conceptos<\/h2>\n            <p class=\"text-gray-600 mb-6\">Haz clic en un concepto y luego en su definici\u00f3n correspondiente para emparejarlos.<\/p>\n            \n            <div class=\"grid md:grid-cols-2 gap-8\">\n                <div class=\"space-y-3\">\n                    <h3 class=\"font-semibold text-lg\">Conceptos<\/h3>\n                    <div id=\"terms-container\" class=\"space-y-3\">${termsHtml}<\/div>\n                <\/div>\n                <div class=\"space-y-3\">\n                    <h3 class=\"font-semibold text-lg\">Definiciones<\/h3>\n                    <div id=\"definitions-container\" class=\"space-y-3\">${defsHtml}<\/div>\n                <\/div>\n            <\/div>\n            <div id=\"game-feedback\" class=\"mt-6 text-center font-semibold\"><\/div>\n        `;\n    },\n    \n    renderDragDropGame() {\n        const gameData = {\n            'Autonom\u00eda Profesional': 'Capacidad de los docentes para tomar decisiones informadas.',\n            'Mejora Continua': 'Proceso progresivo para mejorar los logros educativos.',\n            'CTE': '\u00d3rgano colegiado de mayor decisi\u00f3n t\u00e9cnico-pedag\u00f3gica.',\n            'NEM': 'Propuesta pedag\u00f3gica con enfoque comunitario e inclusivo.'\n        };\n\n        const definitions = this.shuffleArray(Object.entries(gameData));\n\n        let draggablesHtml = definitions.map(([term, def], index) => `\n            <div id=\"drag-${index}\" class=\"cte-platform-draggable p-3 border rounded-lg bg-green-100 border-green-300\" draggable=\"true\" data-term=\"${term}\">${def}<\/div>\n        `).join('');\n\n        let dropTargetsHtml = this.shuffleArray(Object.keys(gameData)).map((term, index) => `\n            <div class=\"mb-4\">\n                <h4 class=\"font-semibold text-lg text-gray-800\">${term}<\/h4>\n                <div id=\"drop-${index}\" class=\"cte-platform-drop-target min-h-[60px] p-3 rounded-lg\" data-term=\"${term}\"><\/div>\n            <\/div>\n        `).join('');\n\n        return `\n            <div class=\"mb-6\">\n                <a href=\"#\" onclick=\"app.navigateTo('games')\" class=\"text-blue-600 hover:underline\"><i class=\"fas fa-arrow-left mr-2\"><\/i> Volver a Juegos<\/a>\n            <\/div>\n            <h2 class=\"text-2xl font-bold text-gray-800 mb-2\">Juego: Arrastrar y Soltar<\/h2>\n            <p class=\"text-gray-600 mb-6\">Arrastra cada definici\u00f3n al cuadro del concepto correcto.<\/p>\n            <div id=\"game-feedback-drag\" class=\"mb-4 text-center font-semibold\"><\/div>\n\n            <div class=\"grid md:grid-cols-2 gap-8\">\n                <div>\n                    <h3 class=\"font-semibold text-lg mb-3\">Definiciones (Arrastra desde aqu\u00ed)<\/h3>\n                    <div id=\"draggable-container\" class=\"space-y-3\">\n                        ${draggablesHtml}\n                    <\/div>\n                <\/div>\n                <div>\n                    <h3 class=\"font-semibold text-lg mb-3\">Conceptos (Suelta aqu\u00ed)<\/h3>\n                    <div id=\"droptarget-container\">\n                        ${dropTargetsHtml}\n                    <\/div>\n                <\/div>\n            <\/div>\n        `;\n    },\n\n    renderProgress() {\n        const completedCount = this.state.completedModules.length;\n        const totalModules = this.modules.length;\n        const progressPercentage = totalModules > 0 ? (completedCount \/ totalModules) * 100 : 0;\n        \n        const unlockedBadges = this.badges.filter(b => this.state.unlockedBadges.includes(b.id));\n        const lockedBadges = this.badges.filter(b => !this.state.unlockedBadges.includes(b.id));\n        \n        let badgesHtml = (title, badges, locked = false) => {\n            if (badges.length === 0) return '';\n            return `\n                <h3 class=\"text-xl font-semibold text-gray-700 mt-8 mb-4\">${title}<\/h3>\n                <div class=\"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4\">\n                    ${badges.map(badge => `\n                        <div class=\"cte-platform-badge ${locked ? 'locked' : ''} cte-platform-card p-4 flex flex-col items-center text-center\" title=\"${badge.description}\">\n                            <i class=\"fas ${badge.icon} text-4xl mb-3 ${locked ? 'text-gray-400' : 'text-yellow-500'}\"><\/i>\n                            <h4 class=\"font-semibold text-sm\">${badge.title}<\/h4>\n                        <\/div>\n                    `).join('')}\n                <\/div>\n            `;\n        };\n\n        return `\n            <h1 class=\"text-3xl font-bold text-gray-800 mb-6\">Tu Progreso<\/h1>\n            <div class=\"cte-platform-card p-6\">\n                <h2 class=\"text-2xl font-semibold text-gray-800 mb-4\">Resumen General<\/h2>\n                \n                <div class=\"mb-6\">\n                    <p class=\"font-medium mb-2\">Progreso de M\u00f3dulos: ${completedCount} de ${totalModules}<\/p>\n                    <div class=\"cte-platform-progress-bar-bg w-full h-4 rounded-full overflow-hidden\">\n                        <div class=\"cte-platform-progress-bar-fill h-full\" style=\"width: ${progressPercentage}%;\"><\/div>\n                    <\/div>\n                <\/div>\n                \n                <div>\n                    <p class=\"font-medium\">Puntuaci\u00f3n Total Acumulada<\/p>\n                    <p class=\"text-4xl font-bold text-blue-600\">${this.state.totalScore} puntos<\/p>\n                <\/div>\n\n                ${badgesHtml('Medallas Desbloqueadas', unlockedBadges)}\n                ${badgesHtml('Medallas Bloqueadas', lockedBadges, true)}\n            <\/div>\n        `;\n    },\n    \n    renderTimeline() {\n        return `\n            <h1 class=\"text-3xl font-bold text-gray-800 mb-8\">L\u00ednea de Tiempo: Evoluci\u00f3n del Enfoque Pedag\u00f3gico<\/h1>\n            <div class=\"relative border-l-2 border-blue-500 ml-4 pl-8 py-4\">\n                <!-- Timeline Item 1 -->\n                <div class=\"mb-12\">\n                    <div class=\"absolute w-4 h-4 bg-blue-500 rounded-full -left-[9px] border-2 border-white\"><\/div>\n                    <h3 class=\"text-xl font-semibold text-blue-700\">Modelo Tradicional<\/h3>\n                    <p class=\"text-gray-600 mt-1\">Enfoque centrado en el docente como transmisor de conocimiento. Trabajo individual y poca colaboraci\u00f3n estructurada.<\/p>\n                <\/div>\n                <!-- Timeline Item 2 -->\n                <div class=\"mb-12\">\n                    <div class=\"absolute w-4 h-4 bg-blue-500 rounded-full -left-[9px] border-2 border-white\"><\/div>\n                    <h3 class=\"text-xl font-semibold text-blue-700\">Introducci\u00f3n del CTE<\/h3>\n                    <p class=\"text-gray-600 mt-1\">Se establece un espacio formal para la reuni\u00f3n del colectivo docente, enfocado en la organizaci\u00f3n y planeaci\u00f3n escolar.<\/p>\n                <\/div>\n                 <!-- Timeline Item 3 -->\n                <div class=\"mb-12\">\n                    <div class=\"absolute w-4 h-4 bg-blue-500 rounded-full -left-[9px] border-2 border-white\"><\/div>\n                    <h3 class=\"text-xl font-semibold text-blue-700\">El CTE como Comunidad de Aprendizaje (NEM)<\/h3>\n                    <p class=\"text-gray-600 mt-1\">El enfoque evoluciona. El CTE se transforma en un espacio para el di\u00e1logo, la colaboraci\u00f3n, la reflexi\u00f3n cr\u00edtica y la construcci\u00f3n colectiva del conocimiento pedag\u00f3gico, empoderando al docente con autonom\u00eda profesional.<\/p>\n                <\/div>\n                 <!-- Timeline Item 4 -->\n                <div class=\"mb-12\">\n                    <div class=\"absolute w-4 h-4 bg-blue-500 rounded-full -left-[9px] border-2 border-white\"><\/div>\n                    <h3 class=\"text-xl font-semibold text-blue-700\">Visi\u00f3n a Futuro<\/h3>\n                    <p class=\"text-gray-600 mt-1\">Escuelas como verdaderos centros de aprendizaje comunitario, donde las CA de docentes lideran la innovaci\u00f3n y la mejora continua, impactando positivamente en toda la comunidad.<\/p>\n                <\/div>\n            <\/div>\n        `;\n    },\n\n    renderSimulator() {\n        return `\n            <h1 class=\"text-3xl font-bold text-gray-800 mb-6\">Simulador de Decisiones del CTE<\/h1>\n            <div class=\"cte-platform-card p-6\" id=\"simulator-container\">\n                <h2 class=\"text-xl font-semibold text-gray-800 mb-2\">Escenario:<\/h2>\n                <p class=\"text-gray-600 mb-6\">En las \u00faltimas evaluaciones, se ha detectado una apat\u00eda generalizada y baja participaci\u00f3n de los estudiantes en las clases de historia. \u00bfQu\u00e9 acci\u00f3n prioriza el colectivo docente en la pr\u00f3xima sesi\u00f3n del CTE?<\/p>\n                <div class=\"space-y-3\" id=\"simulator-options\">\n                    <div class=\"cte-platform-quiz-option p-4 rounded-lg cursor-pointer\" onclick=\"app.showSimulationResult('A')\">\n                        <strong>Opci\u00f3n A:<\/strong> Solicitar a la direcci\u00f3n que imparta un curso obligatorio de \"Nuevas Estrategias para la Ense\u00f1anza de la Historia\" para todos los docentes.\n                    <\/div>\n                     <div class=\"cte-platform-quiz-option p-4 rounded-lg cursor-pointer\" onclick=\"app.showSimulationResult('B')\">\n                        <strong>Opci\u00f3n B:<\/strong> Cada docente investigar\u00e1 por su cuenta nuevas t\u00e9cnicas y las aplicar\u00e1 de forma individual en su sal\u00f3n de clases para ver qu\u00e9 funciona.\n                    <\/div>\n                     <div class=\"cte-platform-quiz-option p-4 rounded-lg cursor-pointer\" onclick=\"app.showSimulationResult('C')\">\n                        <strong>Opci\u00f3n C:<\/strong> Dedicar la sesi\u00f3n del CTE a un di\u00e1logo reflexivo donde los docentes compartan sus experiencias, analicen las posibles causas de la apat\u00eda y dise\u00f1en colaborativamente un peque\u00f1o proyecto interdisciplinario que conecte la historia con los intereses de los alumnos y el contexto local.\n                    <\/div>\n                <\/div>\n                <div id=\"simulator-feedback\" class=\"mt-6\"><\/div>\n            <\/div>\n        `;\n    },\n\n    showSimulationResult(option) {\n        document.getElementById('simulator-options').style.display = 'none';\n        const feedbackEl = document.getElementById('simulator-feedback');\n        let title, text;\n        if (option === 'C') {\n            title = '\u00a1Excelente Decisi\u00f3n!';\n            text = 'Esta opci\u00f3n refleja perfectamente el esp\u00edritu de una Comunidad de Aprendizaje. Se basa en el di\u00e1logo, la colaboraci\u00f3n y la autonom\u00eda profesional para construir una soluci\u00f3n contextualizada y significativa. Este enfoque tiene m\u00e1s probabilidades de generar un cambio real y sostenible.';\n            feedbackEl.innerHTML = `<div class=\"p-4 rounded-lg bg-green-100 border border-green-300 text-green-800\"><h3 class=\"font-bold\">${title}<\/h3><p>${text}<\/p><\/div>`;\n        } else {\n            title = 'Decisi\u00f3n con \u00c1reas de Oportunidad';\n            if (option === 'A') {\n                text = 'Aunque la capacitaci\u00f3n es \u00fatil, esta opci\u00f3n sigue un modelo \"de arriba hacia abajo\". No aprovecha el conocimiento y la experiencia existentes en el colectivo docente y puede no ser pertinente para todos.';\n            } else {\n                text = 'Esta opci\u00f3n fomenta el trabajo aislado. Se pierde la riqueza del intercambio de ideas y la construcci\u00f3n de un conocimiento colectivo. Los esfuerzos individuales pueden ser valiosos, pero son menos potentes que una estrategia colaborativa.';\n            }\n            feedbackEl.innerHTML = `<div class=\"p-4 rounded-lg bg-yellow-100 border border-yellow-300 text-yellow-800\"><h3 class=\"font-bold\">${title}<\/h3><p>${text}<\/p><\/div>`;\n        }\n        feedbackEl.innerHTML += `<button onclick=\"app.navigateTo('simulator')\" class=\"mt-4 bg-blue-600 text-white font-bold py-2 px-4 rounded-lg hover:bg-blue-700\">Intentar de nuevo<\/button>`;\n    },\n\n\n    \/\/ NAVIGATION\n    navigateTo(page, params = {}) {\n        this.state.currentPage = page;\n        if (params.moduleId) {\n            this.state.currentModuleId = params.moduleId;\n        }\n        this.render();\n         \/\/ After rendering, if it's a game, init the game logic\n        if (page === 'game_matching') {\n            game.initMatching();\n        }\n        if (page === 'game_dragdrop') {\n            game.initDragDrop();\n        }\n    },\n\n    updateNavLinks() {\n        const pageToNavId = {\n            'home': 'home',\n            'modules': 'content',\n            'module_content': 'content',\n            'quiz': 'content',\n            'glossary': 'content',\n            'games': 'activities',\n            'game_matching': 'activities',\n            'game_dragdrop': 'activities',\n            'timeline': 'activities',\n            'simulator': 'activities',\n            'progress': 'progress'\n        };\n\n        const activeNavId = pageToNavId[this.state.currentPage];\n\n        document.querySelectorAll('.cte-platform-nav-link').forEach(link => {\n            link.classList.remove('active');\n            if (link.dataset.navId === activeNavId) {\n                link.classList.add('active');\n            }\n        });\n    },\n\n    toggleDropdown(id, show) {\n        const dropdown = document.getElementById(id);\n        if (show) {\n            dropdown.classList.remove('hidden');\n        } else {\n            dropdown.classList.add('hidden');\n        }\n    },\n    \n    \/\/ QUIZ LOGIC\n    selectAnswer(moduleId, questionIndex, optionIndex) {\n        if (this.state.quizData[moduleId].completed) return; \/\/ Prevent changing answers after completion\n\n        \/\/ Remove 'selected' from siblings\n        document.querySelectorAll(`#question-${questionIndex} .cte-platform-quiz-option`).forEach(el => el.classList.remove('selected'));\n        \/\/ Add 'selected' to clicked\n        document.getElementById(`q${questionIndex}_opt${optionIndex}`).classList.add('selected');\n        \n        \/\/ Check if all questions are answered\n        const quiz = this.quizzes[moduleId];\n        const allAnswered = quiz.questions.every((_, i) => document.querySelector(`#question-${i} .selected`));\n        \n        if (allAnswered && !document.getElementById('submit-quiz-btn')) {\n            const resultDiv = document.getElementById('quiz-result');\n            resultDiv.innerHTML = `<button id=\"submit-quiz-btn\" onclick=\"app.submitQuiz(${moduleId})\" class=\"bg-green-600 text-white font-bold py-3 px-8 rounded-lg hover:bg-green-700\">Calificar Test<\/button>`;\n        }\n    },\n    \n    submitQuiz(moduleId) {\n        const quiz = this.quizzes[moduleId];\n        let score = 0;\n        \n        quiz.questions.forEach((q, index) => {\n            const selectedOption = document.querySelector(`#question-${index} .selected`);\n            if (!selectedOption) return;\n\n            const selectedAnswer = selectedOption.innerText.trim();\n            const feedbackEl = document.getElementById(`feedback-${index}`);\n\n            \/\/ Disable further clicks on this question\n            document.querySelectorAll(`#question-${index} .cte-platform-quiz-option`).forEach(opt => opt.style.pointerEvents = 'none');\n            \n            if (selectedAnswer === q.answer) {\n                score++;\n                selectedOption.classList.add('correct');\n                feedbackEl.innerHTML = `<p class=\"text-green-600 font-semibold\"><i class=\"fas fa-check-circle mr-1\"><\/i> \u00a1Correcto!<\/p>`;\n            } else {\n                selectedOption.classList.add('incorrect');\n                feedbackEl.innerHTML = `<p class=\"text-red-600 font-semibold\"><i class=\"fas fa-times-circle mr-1\"><\/i> Incorrecto.<\/p> <p class=\"text-gray-600\">${q.explanation}<\/p>`;\n                \/\/ Highlight the correct answer\n                q.options.forEach((opt, i) => {\n                    if (opt === q.answer) {\n                        document.getElementById(`q${index}_opt${i}`).classList.add('correct');\n                    }\n                });\n            }\n        });\n\n        const points = Math.round((score \/ quiz.questions.length) * 100);\n        this.state.totalScore += points;\n        this.state.quizData[moduleId] = { score: points, completed: true };\n        \n        if (!this.state.completedModules.includes(moduleId)) {\n            this.state.completedModules.push(moduleId);\n        }\n        \n        this.unlockBadges(moduleId, points);\n        \n        const resultDiv = document.getElementById('quiz-result');\n        resultDiv.innerHTML = `\n            <div class=\"cte-platform-card p-6 max-w-md mx-auto bg-gray-50\">\n                <h3 class=\"text-2xl font-bold text-gray-800\">Test completado<\/h3>\n                <p class=\"text-lg mt-2\">Obtuviste <span class=\"font-bold text-blue-600\">${score} de ${quiz.questions.length}<\/span> respuestas correctas.<\/p>\n                <p class=\"text-3xl font-bold text-blue-600 mt-2\">${points} puntos<\/p>\n                <button onclick=\"app.navigateTo('module_content', { moduleId: ${moduleId} })\" class=\"mt-4 bg-blue-600 text-white font-bold py-2 px-4 rounded-lg hover:bg-blue-700\">Volver al M\u00f3dulo<\/button>\n            <\/div>\n        `;\n    },\n    \n    \/\/ BADGE LOGIC\n    unlockBadges(moduleId, score) {\n        const unlock = (badgeId) => {\n            if (!this.state.unlockedBadges.includes(badgeId)) {\n                this.state.unlockedBadges.push(badgeId);\n            }\n        };\n\n        unlock(`module${moduleId}_complete`);\n        if (score === 100) {\n            unlock('perfect_score');\n        }\n        if (this.state.completedModules.length === this.modules.length) {\n            unlock('all_modules_complete');\n        }\n    },\n    \n    \/\/ GLOSSARY & MODAL\n    showGlossaryTerm(term) {\n        document.getElementById('modal-title').innerText = term;\n        document.getElementById('modal-content').innerText = this.glossary[term];\n        document.getElementById('glossary-modal').classList.remove('hidden');\n        document.getElementById('glossary-modal').classList.add('flex');\n    },\n\n    closeModal() {\n        document.getElementById('glossary-modal').classList.add('hidden');\n        document.getElementById('glossary-modal').classList.remove('flex');\n    },\n\n    addKeywordListeners() {\n        document.querySelectorAll('.cte-platform-keyword').forEach(el => {\n            el.addEventListener('click', (e) => {\n                const term = e.target.dataset.term;\n                if (this.glossary[term]) {\n                    this.showGlossaryTerm(term);\n                }\n            });\n        });\n    },\n    \n    \/\/ UTILITIES\n    shuffleArray(array) {\n        for (let i = array.length - 1; i > 0; i--) {\n            const j = Math.floor(Math.random() * (i + 1));\n            [array[i], array[j]] = [array[j], array[i]];\n        }\n        return array;\n    }\n};\n\nconst game = {\n    \/\/ Matching Game state\n    selectedTerm: null,\n    selectedDef: null,\n    matchedPairs: 0,\n    totalPairs: 4,\n    \n    \/\/ Drag & Drop Game state\n    draggedItem: null,\n\n    initMatching() {\n        this.selectedTerm = null;\n        this.selectedDef = null;\n        this.matchedPairs = 0;\n        this.totalPairs = 4; \/\/ Hardcoded for this game\n    },\n    \n    select(element) {\n        const type = element.dataset.type;\n        const value = element.dataset.value;\n\n        if (type === 'term') {\n            if (this.selectedTerm) this.selectedTerm.classList.remove('ring-2', 'ring-blue-500');\n            this.selectedTerm = element;\n            element.classList.add('ring-2', 'ring-blue-500');\n        } else {\n            if (this.selectedDef) this.selectedDef.classList.remove('ring-2', 'ring-green-500');\n            this.selectedDef = element;\n            element.classList.add('ring-2', 'ring-green-500');\n        }\n        this.checkMatch();\n    },\n\n    checkMatch() {\n        if (!this.selectedTerm || !this.selectedDef) return;\n\n        const termValue = this.selectedTerm.dataset.value;\n        const defValue = this.selectedDef.dataset.value;\n        \n        const gameData = {\n            'CTE': '\u00d3rgano colegiado de mayor decisi\u00f3n t\u00e9cnico-pedag\u00f3gica de una escuela.',\n            'CA': 'Proyecto de transformaci\u00f3n social y cultural de un centro educativo.',\n            'NEM': 'Propuesta pedag\u00f3gica que busca un aprendizaje de excelencia, inclusivo y colaborativo.',\n            'Aprendizaje Dial\u00f3gico': 'Se produce en di\u00e1logos basados en la fuerza de los argumentos, no en el poder.'\n        };\n        const feedbackEl = document.getElementById('game-feedback');\n\n        if (gameData[termValue] === defValue) {\n            this.selectedTerm.style.opacity = '0.3';\n            this.selectedDef.style.opacity = '0.3';\n            this.selectedTerm.style.pointerEvents = 'none';\n            this.selectedDef.style.pointerEvents = 'none';\n            feedbackEl.textContent = '\u00a1Correcto!';\n            feedbackEl.className = 'mt-6 text-center font-semibold text-green-600';\n            this.matchedPairs++;\n        } else {\n            feedbackEl.textContent = 'Incorrecto. Intenta de nuevo.';\n            feedbackEl.className = 'mt-6 text-center font-semibold text-red-600';\n        }\n        \n        \/\/ Reset selection\n        this.selectedTerm.classList.remove('ring-2', 'ring-blue-500');\n        this.selectedDef.classList.remove('ring-2', 'ring-green-500');\n        this.selectedTerm = null;\n        this.selectedDef = null;\n\n        if (this.matchedPairs === this.totalPairs) {\n            feedbackEl.textContent = '\u00a1Felicidades! \u00a1Has completado el juego!';\n            feedbackEl.className = 'mt-6 text-center font-semibold text-xl text-blue-600';\n        }\n    },\n    \n    initDragDrop() {\n        this.draggedItem = null;\n        document.querySelectorAll('.cte-platform-draggable').forEach(item => {\n            item.addEventListener('dragstart', this.handleDragStart.bind(this));\n        });\n        document.querySelectorAll('.cte-platform-drop-target').forEach(target => {\n            target.addEventListener('dragover', this.handleDragOver.bind(this));\n            target.addEventListener('dragleave', this.handleDragLeave.bind(this));\n            target.addEventListener('drop', this.handleDrop.bind(this));\n        });\n    },\n\n    handleDragStart(e) {\n        this.draggedItem = e.target;\n        e.dataTransfer.setData('text\/plain', e.target.id);\n        setTimeout(() => {\n            e.target.style.display = 'none';\n        }, 0);\n    },\n    \n    handleDragOver(e) {\n        e.preventDefault();\n        e.currentTarget.classList.add('hover');\n    },\n\n    handleDragLeave(e) {\n        e.currentTarget.classList.remove('hover');\n    },\n\n    handleDrop(e) {\n        e.preventDefault();\n        e.currentTarget.classList.remove('hover');\n        \n        if (e.currentTarget.children.length > 0) return; \/\/ Already has an item\n\n        e.currentTarget.appendChild(this.draggedItem);\n        this.draggedItem.style.display = 'block';\n        this.draggedItem.classList.remove('cte-platform-draggable');\n        this.draggedItem.setAttribute('draggable', 'false');\n\n        \/\/ Check if correct\n        const droppedTerm = this.draggedItem.dataset.term;\n        const targetTerm = e.currentTarget.dataset.term;\n        const feedbackEl = document.getElementById('game-feedback-drag');\n\n        if (droppedTerm === targetTerm) {\n            e.currentTarget.classList.add('correct');\n            feedbackEl.textContent = '\u00a1Bien hecho!';\n            feedbackEl.className = 'mb-4 text-center font-semibold text-green-600';\n        } else {\n            e.currentTarget.classList.add('bg-red-200', 'border-red-400');\n             feedbackEl.textContent = '\u00a1Ups! Intenta de nuevo.';\n            feedbackEl.className = 'mb-4 text-center font-semibold text-red-600';\n        }\n\n        \/\/ Check for game completion\n        const totalTargets = document.querySelectorAll('#droptarget-container .cte-platform-drop-target').length;\n        const filledTargets = document.querySelectorAll('#droptarget-container .cte-platform-drop-target > div').length;\n        if (totalTargets === filledTargets) {\n            const correctCount = document.querySelectorAll('#droptarget-container .cte-platform-drop-target.correct').length;\n            if (correctCount === totalTargets) {\n                feedbackEl.textContent = '\u00a1Felicidades! \u00a1Completaste el juego perfectamente!';\n                feedbackEl.className = 'mb-4 text-center font-semibold text-xl text-blue-600';\n            }\n        }\n    }\n};\n\ndocument.addEventListener('DOMContentLoaded', () => app.init());\n\n<\/script>\n<\/body>\n<\/html>\n\n\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Plataforma de Aprendizaje: El CTE como Comunidad de Aprendizaje Plataforma CTE Comunidades de Aprendizaje Inicio Contenido M\u00f3dulos Glosario Actividades Juegos L\u00ednea de Tiempo Simulador Progreso<\/p>\n","protected":false},"author":2,"featured_media":2345,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"rop_custom_images_group":[],"rop_custom_messages_group":[],"rop_publish_now":"initial","rop_publish_now_accounts":{"facebook_2925173004293474_260002561269783":""},"rop_publish_now_history":[],"rop_publish_now_status":"pending","site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","site-transparent-header":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[18],"tags":[],"class_list":["post-2361","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-consejo-tecnico-escolar"],"_wp_page_template":null,"_wp_attachment_metadata":null,"_wp_attached_file":null,"_wp_attachment_context":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_wp_attachment_backup_sizes":null,"_wpas_feature_enabled":null,"_wpas_is_tweetstorm":null,"_wpas_mess":null,"_thumbnail_id":"2345","_wpas_done_all":"1","_wp_attachment_image_alt":null,"_oembed_953a61d5df8c3836a556d8d39803bf3c":null,"_oembed_time_953a61d5df8c3836a556d8d39803bf3c":null,"_wpas_skip_28712532":null,"_oembed_4a4bb227a6bbfc1286813ba1a53587ee":null,"_oembed_time_4a4bb227a6bbfc1286813ba1a53587ee":null,"_oembed_b65f030d0e4fe78a9f2aa20ef42c0e18":null,"_oembed_time_b65f030d0e4fe78a9f2aa20ef42c0e18":null,"_oembed_f6a64b4156635a0bc55b4c4bbc364650":null,"_oembed_time_f6a64b4156635a0bc55b4c4bbc364650":null,"_oembed_a22c2ada96445daed271c1dcee845f2b":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_menu_item_orphaned":null,"_wp_attachment_custom_header_last_used_cozibee":null,"_wp_attachment_is_custom_header":null,"_wp_attachment_is_custom_background":null,"_oembed_0fce63d053e1c840acdaf9784da4fc8b":null,"_oembed_time_0fce63d053e1c840acdaf9784da4fc8b":null,"_oembed_868a97a741381805139bcba376ff0625":null,"_oembed_time_868a97a741381805139bcba376ff0625":null,"_oembed_e579f188e1e4ab796dbace1957f8fbde":null,"_oembed_time_e579f188e1e4ab796dbace1957f8fbde":null,"_oembed_3aa5ccda408558f57932bf67f990a691":null,"_oembed_time_3aa5ccda408558f57932bf67f990a691":null,"_oembed_c2491fa9a9f5cdc93a304b975729ea15":null,"_oembed_time_c2491fa9a9f5cdc93a304b975729ea15":null,"_oembed_5d0a0fbc199d09fc11425162a9492c14":null,"_oembed_time_5d0a0fbc199d09fc11425162a9492c14":null,"_oembed_ba589a8b01cad13e4e566584052cb77a":null,"_oembed_time_ba589a8b01cad13e4e566584052cb77a":null,"_oembed_30669573d2b5e70ea857547628b634da":null,"_oembed_time_30669573d2b5e70ea857547628b634da":null,"_oembed_c6c454880f54c026403650bfc764daa8":null,"_oembed_time_c6c454880f54c026403650bfc764daa8":null,"_oembed_3d570b3811c404e494d6a02452207e66":null,"_oembed_time_3d570b3811c404e494d6a02452207e66":null,"_oembed_4e4c64d45329ac65f2ecba3f1098156b":null,"_oembed_time_4e4c64d45329ac65f2ecba3f1098156b":null,"_oembed_26ea7d7572a89a903bdcc029628ad5b2":null,"_oembed_time_26ea7d7572a89a903bdcc029628ad5b2":null,"_oembed_a7e95c0362f8dba8c04afb28dfeba5c4":null,"_oembed_time_a7e95c0362f8dba8c04afb28dfeba5c4":null,"_oembed_e5b9ced47b1732d259a5d4aeddd9f86b":null,"_oembed_time_e5b9ced47b1732d259a5d4aeddd9f86b":null,"_oembed_5b4c9d950ab8f0e6ee36bf1d03b97fa2":null,"_oembed_time_5b4c9d950ab8f0e6ee36bf1d03b97fa2":null,"_oembed_b49cdec356d7242bb8a49d9c9f01bc06":null,"_oembed_time_b49cdec356d7242bb8a49d9c9f01bc06":null,"_oembed_304f4ae101daf3ec11ce08903a61e1a1":null,"_oembed_time_304f4ae101daf3ec11ce08903a61e1a1":null,"_oembed_83e577f7d02d35ed039e43ba03038e30":null,"_oembed_time_83e577f7d02d35ed039e43ba03038e30":null,"_oembed_ac101d4e0aa9c1e0993fbaffe57d0fc5":null,"_oembed_time_ac101d4e0aa9c1e0993fbaffe57d0fc5":null,"_oembed_b8411cad4c872303f3f389c0550cfc51":null,"_oembed_time_b8411cad4c872303f3f389c0550cfc51":null,"_oembed_a21a162044b7b51413df6eac11ad958f":null,"_oembed_time_a21a162044b7b51413df6eac11ad958f":null,"_oembed_fba64fc3e6e979fc9c4aa99f0afe7d79":null,"_oembed_time_fba64fc3e6e979fc9c4aa99f0afe7d79":null,"_oembed_76d1c5765b2bc8197eba722fa7cc4244":null,"_oembed_time_76d1c5765b2bc8197eba722fa7cc4244":null,"_oembed_1af62fd759021cc0b68eaa004effd6d5":null,"_oembed_time_1af62fd759021cc0b68eaa004effd6d5":null,"_oembed_2aeeb91d42a24ab084a9cb37fb3b67f1":null,"_oembed_time_2aeeb91d42a24ab084a9cb37fb3b67f1":null,"_oembed_a20b7becc3d5a90f749947d58de23463":null,"_oembed_time_a20b7becc3d5a90f749947d58de23463":null,"_oembed_8796659fa365a11c137d85033d2e7b2c":null,"_jetpack_post_was_ever_published":null,"_jetpack_newsletter_access":null,"_jetpack_newsletter_tier_id":null,"_oembed_5e6fd9549f847190c195ab03255f6ae1":null,"_oembed_554eaf78a040947b2cdd90835d8cd276":null,"_oembed_time_554eaf78a040947b2cdd90835d8cd276":null,"_oembed_7271f435f5fb97d3120864ad34adb6c3":null,"_oembed_time_7271f435f5fb97d3120864ad34adb6c3":null,"_oembed_1fa2fbab810b9b626ad7cc0992ad6aaf":null,"_oembed_time_1fa2fbab810b9b626ad7cc0992ad6aaf":null,"_oembed_64d2135e548c4ce907bc35b61950835b":null,"_oembed_time_64d2135e548c4ce907bc35b61950835b":null,"_oembed_b06e05f997fbefc05e29757e11f828c6":null,"_oembed_time_b06e05f997fbefc05e29757e11f828c6":null,"_oembed_8ce37cc1b7e4dd2fc03872862421313f":null,"_oembed_time_8ce37cc1b7e4dd2fc03872862421313f":null,"_oembed_2158468bd8321669930d1e9681ce2bef":null,"_oembed_time_2158468bd8321669930d1e9681ce2bef":null,"_oembed_ce1b323d791120f5404dbf8cceb57366":null,"_oembed_time_ce1b323d791120f5404dbf8cceb57366":null,"_oembed_21a8242fe71dbeda6363d1536af838e8":null,"_oembed_time_21a8242fe71dbeda6363d1536af838e8":null,"_oembed_eb56dfdacfea2f082dd29cd9084ec889":null,"_wp_old_slug":null,"_oembed_630acfcb06b9afa6ddad824949b84793":null,"_pingme":null,"_encloseme":null,"_oembed_5a7c9eb8a81530ecf9e4e972c23ba731":null,"_oembed_f2fd7c802a7374c43ea88d0097870f1b":null,"_oembed_time_f2fd7c802a7374c43ea88d0097870f1b":null,"_oembed_time_5a7c9eb8a81530ecf9e4e972c23ba731":null,"_oembed_6a91eb9d3d56701e2bf3c9752e96e963":null,"_oembed_c420e9b8b4ecc62da9e432b3ac6a775c":null,"_oembed_725a018f8f3c315b019b5027147af17c":null,"_oembed_fbaa8b858f2c2b8bd17bd9f041381fd0":null,"_oembed_b1333ac22358b86e275b521bfe898d6c":null,"_oembed_81a8344c3ba22ed7e81d42d93e039c83":null,"_oembed_e8b758a02e7baa37faf81b4537e12296":null,"_oembed_f176d255aad93b4de0d42f54076770bd":null,"_oembed_b39b53a24b9c3ddc8f4d0334bdf02260":null,"_oembed_172d3f081ea3bc54cd6f27cf98769eac":null,"_oembed_a121a60eb9062ad69062a9659affb999":null,"_wp_desired_post_slug":null,"_wp_attachment_custom_header_last_used_blogstream":null,"_edit_lock":"1758813118:2","_last_editor_used_jetpack":null,"_jetpack_related_posts_cache":null,"_edit_last":"2","_wp_trash_meta_status":null,"_wp_trash_meta_time":null,"footnotes":null,"jetpack_publicize_connections":[],"_links":{"self":[{"href":"https:\/\/ddmx.cc\/blog\/wp-json\/wp\/v2\/posts\/2361","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ddmx.cc\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ddmx.cc\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ddmx.cc\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ddmx.cc\/blog\/wp-json\/wp\/v2\/comments?post=2361"}],"version-history":[{"count":6,"href":"https:\/\/ddmx.cc\/blog\/wp-json\/wp\/v2\/posts\/2361\/revisions"}],"predecessor-version":[{"id":2369,"href":"https:\/\/ddmx.cc\/blog\/wp-json\/wp\/v2\/posts\/2361\/revisions\/2369"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ddmx.cc\/blog\/wp-json\/wp\/v2\/media\/2345"}],"wp:attachment":[{"href":"https:\/\/ddmx.cc\/blog\/wp-json\/wp\/v2\/media?parent=2361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ddmx.cc\/blog\/wp-json\/wp\/v2\/categories?post=2361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ddmx.cc\/blog\/wp-json\/wp\/v2\/tags?post=2361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}