{"id":22034,"date":"2026-09-09T10:56:57","date_gmt":"2026-09-09T15:56:57","guid":{"rendered":"https:\/\/itv.edu.ec\/sitio\/?page_id=22034"},"modified":"2026-09-14T11:54:43","modified_gmt":"2026-09-14T16:54:43","slug":"festival-de-microescena-itv","status":"publish","type":"page","link":"https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv","title":{"rendered":"Festival de Microescena \u2014 ITV"},"content":{"rendered":"<div id=\"mes-root\" class=\"mes\">\n<!--\n================================================================================\n  ITV FESTIVAL DE MICROESCENA 2026\n  Instituto Superior Tecnol\u00f3gico Universitario de Estudios de Televisi\u00f3n \u2014 ITV\n  Transmisi\u00f3n en l\u00ednea \u00b7 Desde el 29 de septiembre\n================================================================================\n  EDITAR SIEMPRE desde la pesta\u00f1a \"C\u00f3digo\" \/ \"Texto\" del editor de WordPress.\n  Si cambias a \"Visual\", el editor reescribe el HTML y rompe el dise\u00f1o.\n\n  Lo que se actualiza con el tiempo (fecha, transmisi\u00f3n en vivo y cartelera)\n  est\u00e1 en el bloque \"CONFIGURACI\u00d3N\", dentro del bloque de c\u00f3digo, m\u00e1s abajo.\n\n  NOTA T\u00c9CNICA: este archivo est\u00e1 endurecido contra los filtros de WordPress\n  (wpautop y wptexturize), que de otro modo insertan etiquetas \n\n<p> y convierten\n  los \"&\" en \"&#038;\", rompiendo el CSS y el JavaScript. Por eso:\n    \u00b7 no hay l\u00edneas en blanco dentro de los bloques de estilo y de c\u00f3digo;\n    \u00b7 en el c\u00f3digo, los \"<\" se escriben \\x3C y los \"&\" se escriben \\x26;\n    \u00b7 los saltos de l\u00ednea intencionales llevan class=\"mes-br\";\n    \u00b7 el maquetado NO lleva comentarios ni l\u00edneas en blanco: wpautop\n      los convierte en \n\n<p> vac\u00edos que rompen las rejillas;\n    \u00b7 todos los selectores CSS empiezan por #mes-root, para ganar en\n      especificidad a los estilos del tema Astra.\n  Si editas el archivo, respeta esas reglas.\n================================================================================\n--><\/p>\n<header class=\"mes-nav\" id=\"mesNav\">\n<div class=\"mes-nav__inner\">\n      <a href=\"#inicio\" class=\"mes-brand\"><br \/>\n        <img class=\"mes-brand__logo\" data-logo src=\"\/sitio\/wp-content\/uploads\/2026\/09\/ITV-LOGO-web.png?v=1\" alt=\"ITV\" width=\"283\" height=\"172\" decoding=\"async\"><br \/>\n        <span class=\"mes-brand__txt\"><br \/>\n          <b>Festival de Microescena<\/b><br \/>\n          <i>2026<\/i><\/span><\/a><\/p>\n<nav class=\"mes-nav__links\" id=\"mesLinks\">\n        <a href=\"#envivo\">En vivo<\/a><br \/>\n        <a href=\"#cartelera\">Cartelera<\/a><br \/>\n        <a href=\"#festival\">El festival<\/a><br \/>\n        <a href=\"#bases\">Bases<\/a><br \/>\n        <a href=\"#cronograma\">Cronograma<\/a><\/nav>\n<p>      <button class=\"mes-burger\" id=\"mesBurger\" type=\"button\" aria-label=\"Abrir men\u00fa\" aria-expanded=\"false\" aria-controls=\"mesLinks\"><br \/>\n        <span><\/span><span><\/span><span><\/span><\/button><\/div>\n<\/header>\n<section class=\"mes-hero\" id=\"inicio\" aria-label=\"Portada\">\n<div class=\"mes-stage\" aria-hidden=\"true\">\n<div class=\"mes-curtain mes-curtain--l\"><\/div>\n<div class=\"mes-curtain mes-curtain--r\"><\/div>\n<div class=\"mes-beam mes-beam--a\"><\/div>\n<div class=\"mes-beam mes-beam--b\"><\/div>\n<div class=\"mes-pool\"><\/div>\n<div class=\"mes-dust\" id=\"mesDust\"><\/div>\n<div class=\"mes-floor\"><\/div>\n<\/div>\n<div class=\"mes-hero__body\">\n<p class=\"mes-kicker\" data-reveal>\n        <span class=\"mes-kicker__line\"><\/span> Festival intercolegial de micro obras teatrales<\/p>\n<h1 class=\"mes-hero__title\" data-reveal>\n        <img fetchpriority=\"high\" class=\"mes-hero__logo\" data-logo src=\"\/sitio\/wp-content\/uploads\/2026\/09\/ITV-LOGO-web.png?v=1\" alt=\"ITV\" width=\"283\" height=\"172\" decoding=\"async\" fetchpriority=\"high\"> Festival&nbsp;de<br class=\"mes-br\"><em>Microescena<\/em><\/h1>\n<p class=\"mes-hero__sub\" data-reveal>Micro obras de hasta 20 minutos, creadas e interpretadas por estudiantes de colegios, sobre un escenario profesional.<\/p>\n<div class=\"mes-hero__meta\" data-reveal>\n        <span>Transmisi\u00f3n en l\u00ednea<\/span><i>\u00b7<\/i><span>Desde el 29 de septiembre<\/span><i>\u00b7<\/i><span>Estudiantes de 12 a 18 a\u00f1os<\/span><\/div>\n<div class=\"mes-hero__cta\" data-reveal>\n        <a href=\"#envivo\" class=\"mes-btn mes-btn--live\"><br \/>\n          <span class=\"mes-dot\"><\/span> Ver la transmisi\u00f3n<\/a><\/div>\n<div class=\"mes-count\" id=\"mesCount\" data-reveal>\n<div class=\"mes-count__label\">Faltan para que suba el tel\u00f3n<\/div>\n<div class=\"mes-count__grid\">\n<div><b id=\"cdD\">&#8212;<\/b><small>d\u00edas<\/small><\/div>\n<div><b id=\"cdH\">&#8212;<\/b><small>horas<\/small><\/div>\n<div><b id=\"cdM\">&#8212;<\/b><small>min<\/small><\/div>\n<div><b id=\"cdS\">&#8212;<\/b><small>seg<\/small><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>    <a href=\"#envivo\" class=\"mes-scroll\" aria-label=\"Bajar\"><br \/>\n      <span><\/span><\/a><\/section>\n<section class=\"mes-sec mes-sec--live\" id=\"envivo\" aria-label=\"Obra en escena\">\n<div class=\"mes-wrap\">\n<div class=\"mes-sec__head\">\n<div>\n<p class=\"mes-eyebrow\">Transmisi\u00f3n<\/p>\n<h2 class=\"mes-h2\">Obra <em>en escena<\/em><\/h2>\n<\/div>\n<div class=\"mes-status\" id=\"mesStatus\">\n          <span class=\"mes-dot\"><\/span><span id=\"mesStatusTxt\">Pr\u00f3ximamente<\/span><\/div>\n<\/div>\n<div class=\"mes-live\">\n<div class=\"mes-player\">\n<div class=\"mes-player__frame\" id=\"mesPlayer\">\n            <button class=\"mes-player__facade\" id=\"mesFacade\" aria-label=\"Reproducir transmisi\u00f3n\"><br \/>\n              <img class=\"mes-player__thumb\" id=\"mesThumb\" alt=\"\" aria-hidden=\"true\"><br \/>\n              <span class=\"mes-player__scrim\"><\/span><br \/>\n              <span class=\"mes-player__play\"><br \/>\n                <svg viewBox=\"0 0 24 24\" width=\"34\" height=\"34\" fill=\"currentColor\" aria-hidden=\"true\">\n                  <path d=\"M8 5.14v13.72L19 12 8 5.14z\"\/>\n                <\/svg><\/span><br \/>\n              <span class=\"mes-player__hint\">Pulsa para iniciar la transmisi\u00f3n<\/span><\/button><\/div>\n<p class=\"mes-cams__label\" id=\"mesCamsLabel\">Selecciona el ambiente que quisieras disfrutar<\/p>\n<div class=\"mes-cams\" id=\"mesCams\" role=\"group\" aria-labelledby=\"mesCamsLabel\"><\/div>\n<p class=\"mes-player__foot\">Transmisi\u00f3n oficial v\u00eda YouTube \u00b7 Teatro del ITV<\/p>\n<\/div>\n<aside class=\"mes-nowcard\">\n          <span class=\"mes-tag mes-tag--eje\" id=\"liveEje\">\u2014<\/span><\/p>\n<h3 class=\"mes-nowcard__title\" id=\"liveTitulo\">Por anunciar<\/h3>\n<p class=\"mes-nowcard__school\" id=\"liveColegio\">Unidad educativa por confirmar<\/p>\n<p class=\"mes-nowcard__syn\" id=\"liveSinopsis\">La cartelera oficial se publicar\u00e1 una vez cerrada la convocatoria.<\/p>\n<ul class=\"mes-nowcard__facts\">\n<li><b>Horario<\/b><span id=\"liveHora\">Por confirmar<\/span><\/li>\n<li><b>Duraci\u00f3n<\/b><span id=\"liveDur\">Hasta 20 min<\/span><\/li>\n<li><b>Elenco<\/b><span id=\"liveElenco\">Por confirmar<\/span><\/li>\n<li><b>Direcci\u00f3n<\/b><span id=\"liveDir\">Por confirmar<\/span><\/li>\n<\/ul>\n<div class=\"mes-nowcard__next\">\n<p class=\"mes-eyebrow mes-eyebrow--sm\">A continuaci\u00f3n<\/p>\n<ol id=\"mesNext\" class=\"mes-next\"><\/ol>\n<\/div>\n<\/aside>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"mes-sec mes-sec--cartel\" id=\"cartelera\" aria-label=\"Cartelera\">\n<div class=\"mes-wrap\">\n<div class=\"mes-sec__head\">\n<div>\n<p class=\"mes-eyebrow\">Programaci\u00f3n<\/p>\n<h2 class=\"mes-h2\">La <em>cartelera<\/em><\/h2>\n<p class=\"mes-lead\">Cada instituci\u00f3n educativa presenta una micro obra de hasta 20 minutos, creada por sus estudiantes. Estas son las obras que subir\u00e1n a escena.<\/p>\n<\/div>\n<\/div>\n<div class=\"mes-filters\" id=\"mesFilters\" role=\"group\" aria-label=\"Filtrar la cartelera\"><\/div>\n<p class=\"mes-sr\" id=\"mesFiltroEstado\" role=\"status\" aria-live=\"polite\">\n<div class=\"mes-grid\" id=\"mesGrid\"><\/div>\n<\/div>\n<\/section>\n<section class=\"mes-sec mes-sec--light mes-sec--festival\" id=\"festival\" aria-label=\"El festival\">\n<div class=\"mes-wrap\">\n<div class=\"mes-two\">\n<div>\n<p class=\"mes-eyebrow\">El festival<\/p>\n<h2 class=\"mes-h2\">El teatro es un aula<br class=\"mes-br\">de <em>gran impacto<\/em><\/h2>\n<p class=\"mes-p\">El ITV presenta el <b>Festival de Microescena 2026<\/b> como una iniciativa art\u00edstica y formativa dirigida a instituciones de nivel secundario, con el prop\u00f3sito de consolidar un espacio de encuentro, creaci\u00f3n y expresi\u00f3n donde los j\u00f3venes experimenten el proceso esc\u00e9nico completo y presenten sus propuestas en un entorno profesional.<\/p>\n<p class=\"mes-p\">La pr\u00e1ctica esc\u00e9nica trasciende el arte: es una herramienta pedag\u00f3gica que invita a los j\u00f3venes a resolver problemas en tiempo real, trabajar de forma colaborativa y superar sus propias barreras comunicativas.<\/p>\n<\/div>\n<ul class=\"mes-pillars\">\n<li><b>Expresi\u00f3n oral<\/b><span>Domina la comunicaci\u00f3n y proyecta seguridad frente a audiencias reales.<\/span><\/li>\n<li><b>Trabajo colaborativo<\/b><span>Fomenta el trabajo en equipo, la resoluci\u00f3n de conflictos y el compromiso grupal.<\/span><\/li>\n<li><b>Identidad cultural<\/b><span>Conecta a los j\u00f3venes con su entorno, su historia y el patrimonio ecuatoriano.<\/span><\/li>\n<li><b>Pensamiento cr\u00edtico<\/b><span>Creatividad, empat\u00eda y convivencia puestas en juego sobre el escenario.<\/span><\/li>\n<\/ul>\n<\/div>\n<div class=\"mes-stats\">\n<div><b>20<\/b><span>minutos m\u00e1ximo por obra<\/span><\/div>\n<div><b>5+<\/b><span>estudiantes por grupo<\/span><\/div>\n<div><b>12\u201318<\/b><span>a\u00f1os de los participantes<\/span><\/div>\n<div><b>25%<\/b><span>de beca ITV para participantes<\/span><\/div>\n<\/div>\n<div class=\"mes-ejes\">\n<p class=\"mes-eyebrow\">Ejes tem\u00e1ticos<\/p>\n<h3 class=\"mes-h3\">Dos caminos para contar una historia<\/h3>\n<div class=\"mes-ejes__grid\">\n<article class=\"mes-eje mes-eje--a\">\n            <span class=\"mes-eje__num\">01<\/span><\/p>\n<h4>Leyendas y tradiciones del Ecuador<\/h4>\n<p>Representaciones inspiradas en el patrimonio cultural, mitos, leyendas, costumbres y personajes populares. Una v\u00eda id\u00f3nea para reconectar a los j\u00f3venes con su identidad.<\/p>\n<\/article>\n<article class=\"mes-eje mes-eje--b\">\n            <span class=\"mes-eje__num\">02<\/span><\/p>\n<h4>Valores humanos y sociales<\/h4>\n<p>Historias que promuevan la reflexi\u00f3n sobre respeto, empat\u00eda, inclusi\u00f3n, honestidad, solidaridad, responsabilidad, amistad y convivencia.<\/p>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"mes-sec mes-sec--light mes-sec--bases\" id=\"bases\" aria-label=\"Bases t\u00e9cnicas\">\n<div class=\"mes-wrap\">\n<p class=\"mes-eyebrow\">Formato de participaci\u00f3n<\/p>\n<h2 class=\"mes-h2\">Bases <em>t\u00e9cnicas<\/em><\/h2>\n<p class=\"mes-lead\">Directrices obligatorias para asegurar un montaje \u00e1gil, estructurado y seguro.<\/p>\n<ol class=\"mes-rules\">\n<li>\n          <span class=\"mes-rules__k\">a<\/span><\/p>\n<div><b>Estructura del grupo<\/b><\/p>\n<p>Cada unidad educativa puede inscribir uno o m\u00e1s grupos teatrales. Cada grupo debe estar integrado por un m\u00ednimo de 5 estudiantes, sin l\u00edmite m\u00e1ximo.<\/p>\n<\/div>\n<\/li>\n<li>\n          <span class=\"mes-rules__k\">b<\/span><\/p>\n<div><b>Roles de liderazgo obligatorios<\/b><\/p>\n<p>Todo equipo debe contar con un <i>docente responsable<\/i>, que guiar\u00e1 el proceso pedag\u00f3gico, y un <i>director o responsable art\u00edstico<\/i> del montaje.<\/p>\n<\/div>\n<\/li>\n<li>\n          <span class=\"mes-rules__k\">c<\/span><\/p>\n<div><b>Duraci\u00f3n de la obra<\/b><\/p>\n<p>Un m\u00e1ximo de 20 minutos cronometrados. Pueden ser creaciones originales o adaptaciones libres, desarrolladas desde cualquier lenguaje teatral.<\/p>\n<\/div>\n<\/li>\n<li>\n          <span class=\"mes-rules__k\">d<\/span><\/p>\n<div><b>Escenograf\u00eda<\/b><\/p>\n<p>La escenograf\u00eda deber\u00e1 ser pr\u00e1ctica, de f\u00e1cil traslado y permitir un montaje y desmontaje r\u00e1pido en el escenario.<\/p>\n<\/div>\n<\/li>\n<li>\n          <span class=\"mes-rules__k\">e<\/span><\/p>\n<div><b>Convivencia y seguridad<\/b><\/p>\n<p>No se admitir\u00e1n propuestas con contenido discriminatorio, lenguaje ofensivo o situaciones que representen riesgos f\u00edsicos para participantes o espectadores.<\/p>\n<\/div>\n<\/li>\n<\/ol>\n<\/div>\n<\/section>\n<section class=\"mes-sec mes-sec--light mes-sec--crono\" id=\"cronograma\" aria-label=\"Cronograma\">\n<div class=\"mes-wrap\">\n<p class=\"mes-eyebrow\">Ruta 2026<\/p>\n<h2 class=\"mes-h2\">Cuatro <em>etapas<\/em><\/h2>\n<ol class=\"mes-time\">\n<li>\n          <span class=\"mes-time__n\">1<\/span><br \/>\n          <b>Convocatoria e inscripciones<\/b><br \/>\n          <i>Junio \u2013 Agosto 2026<\/i><\/p>\n<p>Lanzamiento de bases oficiales, difusi\u00f3n y formalizaci\u00f3n del compromiso de participaci\u00f3n de las instituciones educativas.<\/p>\n<\/li>\n<li>\n          <span class=\"mes-time__n\">2<\/span><br \/>\n          <b>Preparaci\u00f3n<\/b><br \/>\n          <i>Agosto 2026<\/i><\/p>\n<p>Creaci\u00f3n, ensayos, dramaturgia y desarrollo de los montajes en el colegio. El ITV brinda asesor\u00eda en las \u00e1reas que la instituci\u00f3n solicite.<\/p>\n<\/li>\n<li>\n          <span class=\"mes-time__n\">3<\/span><br \/>\n          <b>Festival<\/b><br \/>\n          <i>Septiembre \/ Octubre<\/i><\/p>\n<p>La gran jornada art\u00edstica, abierta al p\u00fablico y transmitida en l\u00ednea, donde las obras suben al escenario del teatro del ITV.<\/p>\n<\/li>\n<li>\n          <span class=\"mes-time__n\">4<\/span><br \/>\n          <b>Reconocimiento<\/b><br \/>\n          <i>Septiembre \/ Octubre<\/i><\/p>\n<p>Clausura oficial con entrega de certificaciones institucionales a unidades educativas, docentes y estudiantes participantes.<\/p>\n<\/li>\n<\/ol>\n<div class=\"mes-beca\">\n<div class=\"mes-beca__badge\"><b>25%<\/b><span>de beca<\/span><\/div>\n<div>\n<h3 class=\"mes-h3\">Beca ITV para docentes y estudiantes<\/h3>\n<p class=\"mes-p\">El ITV otorga al docente responsable del proyecto y a <b>todos<\/b> los estudiantes participantes, sin excepci\u00f3n, una beca del 25% aplicable a cualquiera de sus programas acad\u00e9micos. En el caso estudiantil, ser\u00e1 v\u00e1lida para quienes decidan continuar su formaci\u00f3n profesional en el ITV una vez culminado el bachillerato.<\/p>\n<p class=\"mes-note\">Para su asignaci\u00f3n, cada unidad educativa deber\u00e1 remitir el nombre y c\u00e9dula del docente responsable, y el listado oficial de estudiantes participantes con sus n\u00fameros de identificaci\u00f3n y el rol desempe\u00f1ado en la obra, validado por sus autoridades.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"mes-sec mes-sec--cta\" id=\"inscripcion\" aria-label=\"Inscripci\u00f3n\">\n<div class=\"mes-stage mes-stage--soft\" aria-hidden=\"true\">\n<div class=\"mes-beam mes-beam--c\"><\/div>\n<div class=\"mes-pool mes-pool--sm\"><\/div>\n<\/div>\n<div class=\"mes-wrap mes-wrap--narrow\">\n<p class=\"mes-eyebrow\">Participa<\/p>\n<h2 class=\"mes-h2 mes-h2--center\">Su colegio en un<br class=\"mes-br\"><em>escenario profesional<\/em><\/h2>\n<p class=\"mes-lead mes-lead--center\">Ocho obras suben a escena en esta edici\u00f3n del Festival de Microescena del ITV. Las funciones se transmiten en l\u00ednea desde el 29 de septiembre, en directo desde el teatro del ITV. Para conocer el programa, coordinar la asistencia de su instituci\u00f3n o resolver cualquier duda, escr\u00edbanos por estos canales.<\/p>\n<div class=\"mes-contact\">\n        <a class=\"mes-contact__card\" href=\"mailto:coordinacionacademica@itv.edu.ec?subject=Inscripci%C3%B3n%20ITV%20Festival%20de%20Microescena%202026\"><br \/>\n          <span class=\"mes-contact__ico\" aria-hidden=\"true\"><br \/>\n            <svg viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\">\n              <rect x=\"2.5\" y=\"4.5\" width=\"19\" height=\"15\" rx=\"2.5\"\/><path d=\"m3 7 9 6 9-6\"\/>\n            <\/svg><\/span><br \/>\n          <b>Correo electr\u00f3nico<\/b><br \/>\n          <span>coordinacionacademica@itv.edu.ec<\/span><\/a><br \/>\n        <a class=\"mes-contact__card\" href=\"https:\/\/wa.me\/593982978889?text=Hola%2C%20quiero%20informaci%C3%B3n%20del%20ITV%20Festival%20de%20Microescena%202026\" target=\"_blank\" rel=\"noopener\"><br \/>\n          <span class=\"mes-contact__ico\" aria-hidden=\"true\"><br \/>\n            <svg viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\">\n              <path d=\"M21 16.5v3a2 2 0 0 1-2.2 2 19.5 19.5 0 0 1-8.5-3 19 19 0 0 1-6-6A19.5 19.5 0 0 1 1.3 4 2 2 0 0 1 3.3 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L7.6 9.6a16 16 0 0 0 6 6l1-1a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2Z\"\/>\n            <\/svg><\/span><br \/>\n          <b>Tel\u00e9fono \/ WhatsApp<\/b><br \/>\n          <span>098 297 8889<\/span><span class=\"mes-sr\"> (abre WhatsApp en una pesta\u00f1a nueva)<\/span><\/a><\/p>\n<div class=\"mes-contact__card mes-contact__card--static\">\n          <span class=\"mes-contact__ico\" aria-hidden=\"true\"><br \/>\n            <svg viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\">\n              <circle cx=\"12\" cy=\"8\" r=\"3.5\"\/><path d=\"M4.5 20a7.5 7.5 0 0 1 15 0\"\/>\n            <\/svg><\/span><br \/>\n          <b>Katiuska Zavala<\/b><br \/>\n          <span>Coordinadora Acad\u00e9mica del ITV<\/span><\/div>\n<\/div>\n<div class=\"mes-aporte\">\n<p class=\"mes-eyebrow mes-eyebrow--sm\">El ITV aporta<\/p>\n<ul>\n<li>Organizaci\u00f3n integral del festival<\/li>\n<li>Espacio esc\u00e9nico profesional<\/li>\n<li>Capacitaci\u00f3n en las \u00e1reas del festival<\/li>\n<li>Certificados de participaci\u00f3n<\/li>\n<li>Acompa\u00f1amiento en todo el proceso<\/li>\n<li>Visibilidad institucional para los colegios<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/section>\n<footer class=\"mes-foot\">\n<div class=\"mes-wrap mes-foot__inner\">\n<div class=\"mes-foot__brand\">\n        <img loading=\"lazy\" class=\"mes-foot__logo\" data-logo src=\"\/sitio\/wp-content\/uploads\/2026\/09\/ITV-LOGO-web.png?v=1\" alt=\"\" width=\"283\" height=\"172\" decoding=\"async\" loading=\"lazy\"><\/p>\n<p>\n          <b>Instituto Superior Tecnol\u00f3gico Universitario de Estudios de Televisi\u00f3n<\/b><br class=\"mes-br\"> Comprometidos con la formaci\u00f3n art\u00edstica, comunicacional y humana.<\/p>\n<\/div>\n<nav class=\"mes-foot__nav\">\n        <a href=\"#envivo\">En vivo<\/a><br \/>\n        <a href=\"#cartelera\">Cartelera<\/a><br \/>\n        <a href=\"#bases\">Bases<\/a><br \/>\n        <a href=\"#cronograma\">Cronograma<\/a><br \/>\n        <a href=\"#inscripcion\">Inscripci\u00f3n<\/a><br \/>\n        <a href=\"https:\/\/itv.edu.ec\" target=\"_blank\" rel=\"noopener\">itv.edu.ec \u2197<span class=\"mes-sr\"> (abre en una pesta\u00f1a nueva)<\/span><\/a><\/nav>\n<p class=\"mes-foot__legal\">\u00a9 2026 ITV Festival de Microescena \u00b7 Direcci\u00f3n del festival: William Mej\u00eda Rosado \u00b7 Ecuador<\/p>\n<\/div>\n<\/footer>\n<div class=\"mes-modal\" id=\"mesModal\" hidden>\n<div class=\"mes-modal__bd\" data-close><\/div>\n<div class=\"mes-modal__box\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"mmTitle\">\n      <button class=\"mes-modal__x\" data-close aria-label=\"Cerrar\">&times;<\/button><\/p>\n<div class=\"mes-modal__media\" id=\"mmMedia\"><\/div>\n<div class=\"mes-modal__body\">\n        <span class=\"mes-tag mes-tag--eje\" id=\"mmEje\"><\/span><\/p>\n<h3 id=\"mmTitle\"><\/h3>\n<p class=\"mes-modal__school\" id=\"mmColegio\">\n<p id=\"mmSinopsis\">\n<ul class=\"mes-modal__facts\" id=\"mmFacts\"><\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@500;600;700&family=Playfair+Display:ital,wght@0,500;0,700;1,500&family=Inter:wght@300;400;500;600&display=swap');\n\/* ==========================================================================\n   ITV FESTIVAL DE MICROESCENA \u2014 hoja de estilos (todo bajo #mes-root)\n   ========================================================================== *\/\n\/**\/\n#mes-root{\n  \/* Paleta: negro-teatro + oro de spotlight + azul institucional ITV *\/\n  --ink:      #08080F;\n  --ink-2:    #0F0F20;   \/* azul-noche del sitio itv.edu.ec *\/\n  --ink-3:    #16162A;\n  --gold:     #E9B45F;\n  --gold-hi:  #FFD79A;\n  --gold-dim: rgba(233,180,95,.22);\n  --cream:    #F5EEE2;\n  --muted:    #A49A8C;\n  --blue:     #0170B9;   \/* azul ITV *\/\n  --red:      #EE4E34;\n  --green:    #21B33D;\n  --line:     rgba(233,180,95,.16);\n  --line-2:   rgba(245,238,226,.10);\n\/**\/\n  --f-disp: 'Barlow Condensed', 'Oswald', Impact, sans-serif;\n  --f-ser:  'Playfair Display', Georgia, 'Times New Roman', serif;\n  --f-txt:  'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n\/**\/\n  --pad: clamp(1.25rem, 5vw, 4rem);\n  --r: 14px;\n\/**\/\n  position: relative;\n  isolation: isolate;\n  background: var(--ink);\n  color: var(--cream);\n  font-family: var(--f-txt);\n  font-size: 16px;\n  line-height: 1.65;\n  -webkit-font-smoothing: antialiased;\n  overflow-x: clip;\n}\n\/**\/\n\/* Rompe el contenedor del tema de WordPress para ir a ancho completo.\n   Si tu tema ya usa ancho completo, esto no hace da\u00f1o. *\/\n#mes-root{\n  width: var(--mes-vw, 100vw);\n  max-width: var(--mes-vw, 100vw);\n  margin-left: calc(50% - var(--mes-vw, 100vw) \/ 2);\n  margin-right: calc(50% - var(--mes-vw, 100vw) \/ 2);\n}\n\/**\/\n#mes-root *,#mes-root *::before,#mes-root *::after{ box-sizing: border-box; }\n#mes-root img{ max-width:100%; display:block; }\n#mes-root a{ color: inherit; text-decoration: none; }\n#mes-root h1,#mes-root h2,#mes-root h3,#mes-root h4,#mes-root p,#mes-root ul,#mes-root ol,#mes-root figure{ margin:0; padding:0; }\n#mes-root ul,#mes-root ol{ list-style:none; }\n#mes-root button{ font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }\n#mes-root :focus-visible{ outline: 2px solid var(--gold-hi); outline-offset: 3px; border-radius: 4px; }\n#mes-root .mes-sec--light :focus-visible,#mes-root .mes-sec--cartel :focus-visible{ outline-color:#4A2E1C; }\n#mes-root .mes-sr{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0; }\n\/**\/\n#mes-root .mes-wrap{ width:min(1180px, 100% - 2*var(--pad)); margin-inline:auto; }\n#mes-root .mes-wrap--narrow{ width:min(940px, 100% - 2*var(--pad)); }\n\/**\/\n\/* ------------------------------- NAV ------------------------------- *\/\n#mes-root .mes-nav{\n  position: sticky; top: 0; z-index: 60;\n  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);\n  background: rgba(8,8,15,.55);\n  border-bottom: 1px solid transparent;\n  transition: background .35s ease, border-color .35s ease;\n}\n#mes-root .mes-nav.is-stuck{ background: rgba(8,8,15,.92); border-bottom-color: var(--line); }\n#mes-root .mes-nav__inner{\n  width:min(1180px, 100% - 2*var(--pad)); margin-inline:auto;\n  display:flex; align-items:center; justify-content:space-between; gap:1rem;\n  min-height: 68px;\n}\n#mes-root .mes-brand{ display:flex; align-items:center; gap:.7rem; }\n#mes-root .mes-brand__logo{ height: 34px; width:auto; filter: drop-shadow(0 2px 6px rgba(0,0,0,.6)); }\n#mes-root .mes-brand__txt{ display:flex; flex-direction:column; line-height:1.05; }\n#mes-root .mes-brand__txt b{ font-family: var(--f-disp); font-size:1.06rem; letter-spacing:.045em; text-transform:uppercase; font-weight:600; }\n#mes-root .mes-brand__txt i{ font-style:normal; font-size:.66rem; letter-spacing:.42em; color: var(--gold); }\n\/**\/\n#mes-root .mes-nav__links{ display:flex; align-items:center; gap: clamp(.85rem, 1.8vw, 1.7rem); }\n#mes-root .mes-nav__links > a:not(.mes-btn){\n  font-size:.83rem; letter-spacing:.06em; text-transform:uppercase; color: rgba(245,238,226,.72);\n  padding: .3rem 0; position: relative; transition: color .25s; white-space: nowrap;\n}\n#mes-root .mes-nav__links > a:not(.mes-btn)::after{\n  content:''; position:absolute; left:0; right:100%; bottom:0; height:1px;\n  background: var(--gold); transition: right .3s ease;\n}\n#mes-root .mes-nav__links > a:not(.mes-btn):hover{ color: var(--gold-hi); }\n#mes-root .mes-nav__links > a:not(.mes-btn):hover::after{ right:0; }\n\/**\/\n#mes-root .mes-burger{ display:none; flex:0 0 44px; width:44px; height:44px; position:relative; }\n#mes-root .mes-burger span{\n  position:absolute; left:11px; right:11px; height:1.5px; background: var(--cream);\n  transition: transform .3s, opacity .25s;\n}\n#mes-root .mes-burger span:nth-child(1){ top:16px; }\n#mes-root .mes-burger span:nth-child(2){ top:21.5px; }\n#mes-root .mes-burger span:nth-child(3){ top:27px; }\n#mes-root .mes-burger[aria-expanded=\"true\"] span:nth-child(1){ transform: translateY(5.5px) rotate(45deg); }\n#mes-root .mes-burger[aria-expanded=\"true\"] span:nth-child(2){ opacity:0; }\n#mes-root .mes-burger[aria-expanded=\"true\"] span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }\n\/**\/\n\/* ------------------------------ BOTONES ------------------------------ *\/\n#mes-root .mes-btn{\n  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;\n  padding: .82rem 1.5rem; border-radius: 100px;\n  font-family: var(--f-disp); font-size: 1rem; font-weight:600;\n  letter-spacing:.09em; text-transform:uppercase; white-space:nowrap;\n  background: linear-gradient(180deg, var(--gold-hi), var(--gold));\n  color: #1A1206;\n  box-shadow: 0 6px 22px -8px rgba(233,180,95,.7);\n  transition: transform .22s cubic-bezier(.2,.8,.3,1), box-shadow .22s, filter .22s;\n}\n#mes-root .mes-btn:hover{ transform: translateY(-2px); box-shadow: 0 12px 30px -10px rgba(233,180,95,.85); filter: brightness(1.06); }\n#mes-root .mes-btn--sm{ padding:.52rem 1.05rem; font-size:.86rem; }\n#mes-root .mes-btn--ghost{\n  background: transparent; color: var(--cream);\n  border:1px solid rgba(245,238,226,.3); box-shadow:none;\n}\n#mes-root .mes-btn--ghost:hover{ border-color: var(--gold); color: var(--gold-hi); box-shadow:none; }\n#mes-root .mes-btn--live{ background: linear-gradient(180deg,#D9391E,#BE2F12); color:#fff; box-shadow: 0 6px 24px -8px rgba(238,78,52,.8); }\n#mes-root .mes-btn--live:hover{ box-shadow: 0 12px 32px -10px rgba(238,78,52,.9); }\n#mes-root .mes-btn--live .mes-dot{ background:#fff; }\n\/**\/\n#mes-root .mes-dot{\n  width:8px; height:8px; border-radius:50%; background: var(--red);\n  box-shadow: 0 0 0 0 currentColor; animation: mesPulse 1.9s infinite;\n}\n@keyframes mesPulse{\n  0%{ box-shadow:0 0 0 0 rgba(255,255,255,.55); }\n  70%{ box-shadow:0 0 0 9px rgba(255,255,255,0); }\n  100%{ box-shadow:0 0 0 0 rgba(255,255,255,0); }\n}\n\/**\/\n\/* ------------------------------- HERO ------------------------------- *\/\n#mes-root .mes-hero{\n  position: relative;\n  min-height: clamp(600px, 92vh, 940px);\n  display:flex; align-items:center;\n  padding: clamp(4rem,10vh,7rem) 0 clamp(5rem,10vh,7rem);\n  overflow: hidden;\n  background: radial-gradient(120% 80% at 50% -10%, #1B1A28 0%, #0B0A13 55%, #060609 100%);\n}\n#mes-root .mes-stage{ position:absolute; inset:0; pointer-events:none; }\n\/**\/\n\/* Cortinas de terciopelo a los lados *\/\n#mes-root .mes-curtain{\n  position:absolute; top:0; bottom:0; width: min(26%, 300px);\n  background:\n    repeating-linear-gradient(90deg,\n      rgba(0,0,0,.85) 0px, rgba(30,12,14,.55) 22px,\n      rgba(0,0,0,.9) 44px, rgba(22,8,10,.6) 66px);\n  opacity:.75;\n  mask-image: linear-gradient(90deg,#000 0%, #000 55%, transparent 100%);\n  -webkit-mask-image: linear-gradient(90deg,#000 0%, #000 55%, transparent 100%);\n}\n#mes-root .mes-curtain--r{ right:0; left:auto; transform: scaleX(-1); }\n#mes-root .mes-curtain--l{ left:0; }\n\/**\/\n\/* Haces de luz *\/\n#mes-root .mes-beam{\n  position:absolute; top:-14%; left:50%; width: 70vw; height: 118%;\n  translate: -50% 0;\n  background: linear-gradient(to bottom,\n      rgba(255,224,178,.55) 0%,\n      rgba(255,208,140,.20) 32%,\n      rgba(255,196,120,.07) 62%,\n      transparent 88%);\n  clip-path: polygon(46.5% 0, 53.5% 0, 84% 100%, 16% 100%);\n  filter: blur(26px);\n  animation: mesFlicker 7s ease-in-out infinite;\n}\n#mes-root .mes-beam--a{ opacity:.85; }\n#mes-root .mes-beam--b{\n  width: 46vw; opacity:.42; rotate: -9deg; translate:-62% 0;\n  animation-duration: 9s; animation-delay:-3s;\n}\n#mes-root .mes-beam--c{ opacity:.32; width: 58vw; filter: blur(40px); }\n@keyframes mesFlicker{\n  0%,100%{ opacity:.85; }\n  42%{ opacity:.66; }\n  55%{ opacity:.93; }\n  78%{ opacity:.74; }\n}\n\/**\/\n\/* Charco de luz sobre el piso *\/\n#mes-root .mes-pool{\n  position:absolute; left:50%; bottom: 6%; translate:-50% 0;\n  width: min(78vw, 900px); height: min(28vh, 230px);\n  background: radial-gradient(ellipse at center, rgba(255,214,158,.36) 0%, rgba(255,190,110,.12) 40%, transparent 72%);\n  filter: blur(18px);\n}\n#mes-root .mes-pool--sm{ width:min(60vw,620px); height:180px; opacity:.7; bottom: 14%; }\n\/**\/\n\/* Piso del escenario *\/\n#mes-root .mes-floor{\n  position:absolute; left:0; right:0; bottom:0; height: 22%;\n  background:\n    linear-gradient(to top, rgba(46,26,12,.55), transparent),\n    repeating-linear-gradient(92deg, rgba(255,220,170,.05) 0 2px, transparent 2px 34px);\n  mask-image: radial-gradient(ellipse 70% 100% at 50% 100%, #000 20%, transparent 80%);\n  -webkit-mask-image: radial-gradient(ellipse 70% 100% at 50% 100%, #000 20%, transparent 80%);\n}\n\/**\/\n\/* Part\u00edculas de polvo *\/\n#mes-root .mes-dust{ position:absolute; inset:0; overflow:hidden; }\n#mes-root .mes-dust i{\n  position:absolute; display:block; border-radius:50%;\n  background: rgba(255,226,180,.85);\n  animation: mesFloat linear infinite;\n}\n@keyframes mesFloat{\n  from{ transform: translate3d(0, 20vh, 0); opacity:0; }\n  12%{ opacity:.8; }\n  88%{ opacity:.35; }\n  to{ transform: translate3d(14px, -85vh, 0); opacity:0; }\n}\n\/**\/\n#mes-root .mes-hero__body{ position:relative; z-index:2; width:min(1180px, 100% - 2*var(--pad)); margin-inline:auto; text-align:center; }\n\/**\/\n#mes-root .mes-kicker{\n  display:inline-flex; align-items:center; justify-content:center; gap:.85rem; max-width:100%;\n  font-size:.76rem; letter-spacing:.3em; text-transform:uppercase;\n  color: var(--gold); margin-bottom: 1.4rem;\n}\n#mes-root .mes-kicker__line{ width:38px; height:1px; background: var(--gold); opacity:.6; }\n\/**\/\n#mes-root .mes-hero__title{\n  font-family: var(--f-disp);\n  font-weight: 700;\n  font-size: clamp(3.2rem, 11.5vw, 9rem);\n  line-height: .88;\n  letter-spacing: -.005em;\n  text-transform: uppercase;\n  color: #FFF8EC;\n  text-shadow:\n    0 0 26px rgba(255,208,140,.32),\n    0 0 70px rgba(255,190,110,.18),\n    0 6px 30px rgba(0,0,0,.6);\n}\n#mes-root .mes-hero__logo{\n  display:block; width:auto; height: clamp(46px, 5.6vw, 86px);\n  margin: 0 auto 1.6rem; filter: drop-shadow(0 8px 24px rgba(0,0,0,.7));\n}\n#mes-root .mes-hero__title em{\n  font-family: var(--f-ser); font-style: italic; font-weight:500;\n  text-transform: none; letter-spacing: -.01em;\n  background: linear-gradient(180deg,#FFF3DC 10%, var(--gold) 95%);\n  -webkit-background-clip: text; background-clip: text; color: transparent;\n}\n\/**\/\n#mes-root .mes-hero__sub{\n  margin: 2.6rem auto 0; max-width: 46ch;\n  font-size: clamp(1rem, 1.9vw, 1.22rem); font-weight:300;\n  color: rgba(245,238,226,.82);\n}\n#mes-root .mes-hero__meta{\n  margin-top: 1.4rem; display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem;\n  font-family: var(--f-ser); font-size:.94rem; letter-spacing:.09em; color: var(--muted);\n}\n#mes-root .mes-hero__meta i{ color: var(--gold); font-style:normal; }\n#mes-root .mes-hero__cta{ margin-top: 2.4rem; display:flex; flex-wrap:wrap; justify-content:center; gap:.85rem; }\n\/**\/\n#mes-root .mes-count{ margin-top: 3rem; display:inline-block; }\n#mes-root .mes-count__label{\n  font-size:.68rem; letter-spacing:.36em; text-transform:uppercase;\n  color: var(--muted); margin-bottom:.7rem;\n}\n#mes-root .mes-count__grid{ display:flex; gap: clamp(.6rem,2.4vw,1.6rem); justify-content:center; }\n#mes-root .mes-count__grid > div{\n  min-width: 74px; padding:.6rem .5rem .5rem; border-radius: 10px;\n  background: rgba(255,255,255,.035); border:1px solid var(--line);\n}\n#mes-root .mes-count__grid b{\n  display:block; font-family: var(--f-disp); font-size: clamp(1.6rem,4.2vw,2.3rem);\n  line-height:1; font-weight:600; color: var(--gold-hi);\n  font-variant-numeric: tabular-nums;\n}\n#mes-root .mes-count__grid small{\n  display:block; margin-top:.3rem; font-size:.6rem; letter-spacing:.24em;\n  text-transform:uppercase; color: var(--muted);\n}\n\/**\/\n#mes-root .mes-scroll{\n  position:absolute; left:50%; bottom: 1.8rem; translate:-50% 0; z-index:3;\n  width:24px; height:38px; border:1px solid rgba(245,238,226,.28); border-radius:14px;\n}\n#mes-root .mes-scroll::before{ content:''; position:absolute; inset:-8px -14px; }\n#mes-root .mes-scroll span{\n  position:absolute; left:50%; top:8px; translate:-50% 0;\n  width:3px; height:7px; border-radius:2px; background: var(--gold);\n  animation: mesScroll 1.9s ease-in-out infinite;\n}\n@keyframes mesScroll{ 0%,100%{ transform: translate(-50%,0); opacity:1; } 60%{ transform: translate(-50%,13px); opacity:.15; } }\n\/**\/\n\/* ------------------------------ SECCIONES ------------------------------ *\/\n#mes-root .mes-sec{ position:relative; padding: clamp(4rem, 9vw, 7.5rem) 0; }\n#mes-root .mes-sec--alt{ background: linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 20%, var(--ink-2) 80%, var(--ink) 100%); }\n#mes-root .mes-sec--live{\n  background:\n    radial-gradient(90% 60% at 50% 0%, rgba(233,180,95,.09), transparent 62%),\n    var(--ink);\n  border-top: 1px solid var(--line);\n}\n#mes-root .mes-sec--cta{ overflow:hidden; background: radial-gradient(90% 70% at 50% 100%, #17162A, var(--ink) 62%); }\n#mes-root .mes-sec--cta .mes-wrap{ position:relative; z-index:2; text-align:center; }\n#mes-root .mes-stage--soft{ opacity:.75; }\n\/**\/\n#mes-root .mes-sec__head{\n  display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem;\n  flex-wrap:wrap; margin-bottom: 2.6rem;\n}\n#mes-root .mes-eyebrow{\n  font-size:.7rem; letter-spacing:.34em; text-transform:uppercase;\n  color: var(--gold); margin-bottom:.7rem;\n}\n#mes-root .mes-eyebrow--sm{ font-size:.62rem; letter-spacing:.26em; margin-bottom:.5rem; }\n\/**\/\n#mes-root .mes-h2{\n  font-family: var(--f-disp); font-weight:600; text-transform:uppercase;\n  font-size: clamp(2.1rem, 5.4vw, 3.9rem); line-height:1.02; letter-spacing:.01em;\n  color: #FFF8EC; padding-bottom:.1em;\n}\n#mes-root .mes-h2 em{\n  font-family: var(--f-ser); font-style:italic; font-weight:500; text-transform:none;\n  color: var(--gold); letter-spacing:-.01em;\n}\n#mes-root .mes-h2--center{ text-align:center; }\n#mes-root .mes-h3{ font-family: var(--f-ser); font-size: clamp(1.3rem,2.6vw,1.75rem); font-weight:700; color:#FFF8EC; margin-bottom:.7rem; }\n#mes-root .mes-lead{ margin-top:1.4rem; max-width: 58ch; color: rgba(245,238,226,.7); font-weight:300; font-size:1.02rem; }\n#mes-root .mes-lead--center{ margin-inline:auto; text-align:center; }\n#mes-root .mes-p{ color: rgba(245,238,226,.74); font-weight:300; margin-top:1rem; }\n#mes-root .mes-p b{ color: var(--cream); font-weight:600; }\n#mes-root .mes-note{ margin-top:1rem; font-size:.86rem; color: var(--muted); font-weight:300; border-left:2px solid var(--gold-dim); padding-left:.9rem; }\n\/**\/\n\/* ------------------------------- EN VIVO ------------------------------- *\/\n#mes-root .mes-status{\n  display:inline-flex; align-items:center; gap:.6rem;\n  padding:.45rem 1rem; border-radius:100px; border:1px solid var(--line);\n  background: rgba(255,255,255,.04);\n  font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; color: var(--cream);\n}\n#mes-root .mes-status.is-off .mes-dot{ background: var(--gold); animation:none; box-shadow:none; }\n#mes-root .mes-status.is-off{ color: var(--muted); }\n\/**\/\n#mes-root .mes-live{ display:grid; grid-template-columns: minmax(0,1.72fr) minmax(0,1fr); gap: clamp(1.2rem,2.6vw,2rem); align-items:start; }\n\/**\/\n#mes-root .mes-player__frame{\n  position:relative; aspect-ratio:16\/9; border-radius: var(--r); overflow:hidden;\n  background:#000; border:1px solid var(--line);\n  box-shadow: 0 34px 80px -30px rgba(0,0,0,.95), 0 0 0 1px rgba(255,255,255,.03) inset;\n}\n#mes-root .mes-player__frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }\n#mes-root .mes-player__facade{ position:absolute; inset:0; width:100%; height:100%; display:block; }\n#mes-root .mes-player__thumb{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.55; }\n#mes-root .mes-player__scrim{\n  position:absolute; inset:0;\n  background: radial-gradient(60% 60% at 50% 45%, rgba(0,0,0,.15), rgba(6,6,10,.8));\n}\n#mes-root .mes-player__play{\n  position:absolute; left:50%; top:50%; translate:-50% -50%;\n  width: 84px; height:84px; border-radius:50%;\n  display:grid; place-items:center; padding-left:5px;\n  background: linear-gradient(180deg, var(--gold-hi), var(--gold)); color:#1A1206;\n  box-shadow: 0 0 0 0 rgba(233,180,95,.5), 0 14px 40px -12px rgba(233,180,95,.8);\n  transition: transform .25s cubic-bezier(.2,.8,.3,1);\n  animation: mesPulseGold 2.6s infinite;\n}\n@keyframes mesPulseGold{\n  0%{ box-shadow:0 0 0 0 rgba(233,180,95,.42), 0 14px 40px -12px rgba(233,180,95,.7); }\n  70%{ box-shadow:0 0 0 26px rgba(233,180,95,0), 0 14px 40px -12px rgba(233,180,95,.7); }\n  100%{ box-shadow:0 0 0 0 rgba(233,180,95,0), 0 14px 40px -12px rgba(233,180,95,.7); }\n}\n#mes-root .mes-player__facade:hover .mes-player__play{ transform: translate(-50%,-50%) scale(1.07); }\n#mes-root .mes-player__hint{\n  position:absolute; left:0; right:0; bottom: 1.4rem; text-align:center;\n  font-size:.74rem; letter-spacing:.22em; text-transform:uppercase; color: rgba(245,238,226,.72);\n}\n#mes-root .mes-player__foot{ margin-top:.9rem; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color: var(--muted); }\n\/**\/\n#mes-root .mes-nowcard{\n  padding: clamp(1.3rem,2.4vw,1.9rem);\n  border-radius: var(--r); border:1px solid var(--line);\n  background: linear-gradient(160deg, rgba(233,180,95,.10), rgba(255,255,255,.02) 42%);\n  backdrop-filter: blur(8px);\n}\n#mes-root .mes-nowcard__title{ font-family: var(--f-ser); font-size: clamp(1.4rem,2.6vw,1.9rem); font-weight:700; line-height:1.15; margin:.7rem 0 .35rem; color:#FFF8EC; }\n#mes-root .mes-nowcard__school{ font-size:.86rem; letter-spacing:.14em; text-transform:uppercase; color: var(--gold); }\n#mes-root .mes-nowcard__syn{ margin-top:1rem; font-size:.94rem; font-weight:300; color: rgba(245,238,226,.72); }\n#mes-root .mes-nowcard__facts{ margin-top:1.4rem; border-top:1px solid var(--line-2); }\n#mes-root .mes-nowcard__facts li{\n  display:flex; justify-content:space-between; gap:1rem;\n  padding:.62rem 0; border-bottom:1px solid var(--line-2); font-size:.86rem;\n}\n#mes-root .mes-nowcard__facts b{ font-weight:500; color: var(--muted); letter-spacing:.1em; text-transform:uppercase; font-size:.7rem; align-self:center; }\n#mes-root .mes-nowcard__facts span{ text-align:right; color: var(--cream); }\n#mes-root .mes-nowcard__next{ margin-top:1.5rem; }\n#mes-root .mes-next li{ display:flex; gap:.8rem; padding:.5rem 0; font-size:.88rem; color: rgba(245,238,226,.75); }\n#mes-root .mes-next li time{ color: var(--gold); font-variant-numeric: tabular-nums; min-width:52px; }\n#mes-root .mes-next li b{ font-weight:500; }\n#mes-root .mes-next__tbc{ min-width:52px; font-size:.78rem; color: var(--muted); }\n\/**\/\n#mes-root .mes-tag{\n  display:inline-block; padding:.28rem .7rem; border-radius:100px;\n  font-size:.63rem; letter-spacing:.2em; text-transform:uppercase; font-weight:500;\n  border:1px solid var(--line); color: var(--gold);\n}\n#mes-root .mes-tag--eje[data-eje=\"leyendas\"]{ color:#F4C87A; border-color: rgba(244,200,122,.4); background: rgba(244,200,122,.08); }\n#mes-root .mes-tag--eje[data-eje=\"valores\"]{ color:#7FC6F2; border-color: rgba(1,112,185,.5); background: rgba(1,112,185,.14); }\n\/**\/\n\/* ------------------------------ CARTELERA ------------------------------ *\/\n#mes-root .mes-filters{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:2rem; }\n#mes-root .mes-filters button{\n  padding:.5rem 1.05rem; border-radius:100px; border:1px solid var(--line-2);\n  font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color: rgba(245,238,226,.62);\n  transition: all .25s;\n}\n#mes-root .mes-filters button:hover{ border-color: var(--gold-dim); color: var(--cream); }\n#mes-root .mes-filters button.is-on{ background: var(--gold); border-color: var(--gold); color:#1A1206; }\n\/**\/\n#mes-root .mes-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(268px,1fr)); gap: clamp(1rem,2vw,1.5rem); }\n\/**\/\n#mes-root .mes-card{\n  \/* Las obras confirmadas son <button> y las pendientes <\/p>\n<div>. El navegador\n     da a los botones un relleno propio, que encog\u00eda su cartel 60 px. *\/\n  padding:0;\n  position:relative; display:flex; flex-direction:column; text-align:left;\n  border-radius: var(--r); overflow:hidden; border:1px solid var(--line-2);\n  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.012));\n  transition: transform .3s cubic-bezier(.2,.8,.3,1), border-color .3s, box-shadow .3s;\n}\n#mes-root .mes-card:hover{ transform: translateY(-6px); border-color: var(--gold-dim); box-shadow: 0 28px 50px -26px rgba(0,0,0,.9); }\n#mes-root .mes-card--tba{ border-style:dashed; border-color: rgba(245,238,226,.14); }\n#mes-root .mes-card--tba:hover{ transform:none; }\n\/**\/\n#mes-root .mes-card__poster{\n  position:relative; aspect-ratio: 4\/3; overflow:hidden;\n  background: radial-gradient(70% 90% at 50% 0%, rgba(233,180,95,.30), transparent 62%), #0C0C16;\n  display:grid; place-items:center;\n}\n#mes-root .mes-card__poster img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }\n#mes-root .mes-card__poster::after{\n  content:''; position:absolute; inset:0;\n  background: linear-gradient(to top, rgba(8,8,15,.92) 4%, transparent 55%);\n}\n#mes-root .mes-card__num{\n  position:relative; z-index:1;\n  font-family: var(--f-disp); font-size:3.6rem; font-weight:700; line-height:1;\n  color: rgba(233,180,95,.52); letter-spacing:.02em;\n}\n#mes-root .mes-card__live{\n  position:absolute; z-index:2; top:.7rem; left:.7rem;\n  display:inline-flex; align-items:center; gap:.4rem;\n  padding:.28rem .65rem; border-radius:100px; background: var(--red); color:#fff;\n  font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; font-weight:600;\n}\n#mes-root .mes-card__time{\n  position:absolute; z-index:2; bottom:.7rem; left:.9rem;\n  padding:.12rem .5rem; border-radius:100px; background: rgba(8,8,15,.68);\n  font-family: var(--f-disp); font-size:1.05rem; letter-spacing:.08em; color: var(--gold-hi);\n}\n#mes-root .mes-card__body{ padding: 1.05rem 1.1rem 1.25rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }\n#mes-root .mes-card__title{ font-family: var(--f-ser); font-size:1.16rem; font-weight:700; line-height:1.25; color:#FFF8EC; }\n#mes-root .mes-card--tba .mes-card__title{ color: rgba(245,238,226,.42); font-style:italic; font-weight:500; }\n#mes-root .mes-card__school{ font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color: var(--muted); }\n#mes-root .mes-card__chips{ margin-top:auto; padding-top:.7rem; display:flex; flex-wrap:wrap; gap:.4rem; }\n#mes-root .mes-card__chip{\n  font-size:.64rem; letter-spacing:.12em; text-transform:uppercase;\n  padding:.24rem .6rem; border-radius:100px;\n  background: rgba(255,255,255,.05); color: rgba(245,238,226,.66);\n}\n\/**\/\n#mes-root .mes-cartelera-note{\n  margin-top: 2.2rem; padding: clamp(1.2rem,2.4vw,1.8rem);\n  border-radius: var(--r); border:1px solid var(--line);\n  background: linear-gradient(120deg, rgba(233,180,95,.09), transparent 60%);\n  display:flex; align-items:center; justify-content:space-between; gap:1.2rem; flex-wrap:wrap;\n}\n#mes-root .mes-cartelera-note p{ font-weight:300; color: rgba(245,238,226,.76); max-width: 58ch; }\n#mes-root .mes-cartelera-note b{ color: var(--gold-hi); font-weight:600; }\n\/**\/\n\/* ------------------------------ FESTIVAL ------------------------------ *\/\n#mes-root .mes-two{ display:grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: clamp(1.6rem,4vw,3.6rem); align-items:start; }\n#mes-root .mes-pillars{ display:grid; gap:.75rem; }\n#mes-root .mes-pillars li{\n  padding:1.05rem 1.2rem; border-radius: var(--r);\n  border:1px solid var(--line-2); background: rgba(255,255,255,.03);\n  transition: border-color .3s, background .3s;\n}\n#mes-root .mes-pillars li:hover{ border-color: var(--gold-dim); background: rgba(233,180,95,.06); }\n#mes-root .mes-pillars b{ display:block; font-family: var(--f-disp); font-size:1.1rem; letter-spacing:.06em; text-transform:uppercase; color: var(--gold-hi); margin-bottom:.2rem; }\n#mes-root .mes-pillars span{ font-size:.9rem; font-weight:300; color: rgba(245,238,226,.68); }\n\/**\/\n#mes-root .mes-stats{\n  margin-top: clamp(2.5rem,5vw,4rem);\n  display:grid; grid-template-columns: repeat(auto-fit, minmax(160px,1fr));\n  border-top:1px solid var(--line); border-bottom:1px solid var(--line);\n}\n#mes-root .mes-stats > div{ padding: 1.6rem 1rem; text-align:center; border-right:1px solid var(--line-2); }\n#mes-root .mes-stats > div:last-child{ border-right:0; }\n#mes-root .mes-stats b{\n  display:block; font-family: var(--f-disp); font-weight:700;\n  font-size: clamp(2.2rem,5vw,3.1rem); line-height:1;\n  background: linear-gradient(180deg,#FFF3DC, var(--gold));\n  -webkit-background-clip:text; background-clip:text; color:transparent;\n}\n#mes-root .mes-stats span{ display:block; margin-top:.45rem; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color: var(--muted); }\n\/**\/\n#mes-root .mes-ejes{ margin-top: clamp(2.8rem,6vw,4.5rem); }\n#mes-root .mes-ejes__grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(300px,1fr)); gap: clamp(1rem,2vw,1.5rem); margin-top:1.6rem; }\n#mes-root .mes-eje{\n  position:relative; padding: clamp(1.5rem,3vw,2.2rem); border-radius: var(--r);\n  border:1px solid var(--line-2); overflow:hidden;\n  background: linear-gradient(150deg, rgba(255,255,255,.05), rgba(255,255,255,.012));\n}\n#mes-root .mes-eje::before{\n  content:''; position:absolute; inset:0; opacity:.55;\n  background: radial-gradient(80% 60% at 100% 0%, var(--c), transparent 66%);\n}\n#mes-root .mes-eje--a{ --c: rgba(233,180,95,.30); }\n#mes-root .mes-eje--b{ --c: rgba(1,112,185,.34); }\n#mes-root .mes-eje > *{ position:relative; }\n#mes-root .mes-eje__num{ font-family: var(--f-disp); font-size:.9rem; letter-spacing:.3em; color: var(--gold); }\n#mes-root .mes-eje h4{ font-family: var(--f-ser); font-size: clamp(1.25rem,2.4vw,1.6rem); font-weight:700; margin:.55rem 0 .7rem; color:#FFF8EC; }\n#mes-root .mes-eje p{ font-size:.95rem; font-weight:300; color: rgba(245,238,226,.72); }\n\/**\/\n\/* -------------------------------- BASES -------------------------------- *\/\n#mes-root .mes-rules{ margin-top:2.4rem; display:grid; gap:.6rem; }\n#mes-root .mes-rules li{\n  display:grid; grid-template-columns: 46px 1fr; gap:1.1rem; align-items:start;\n  padding: 1.15rem 1.3rem; border-radius: var(--r);\n  border:1px solid var(--line-2); background: rgba(255,255,255,.025);\n  transition: border-color .3s, transform .3s;\n}\n#mes-root .mes-rules li:hover{ border-color: var(--gold-dim); transform: translateX(4px); }\n#mes-root .mes-rules__k{\n  display:grid; place-items:center; width:38px; height:38px; border-radius:50%;\n  border:1px solid var(--gold-dim); color: var(--gold);\n  font-family: var(--f-disp); font-size:1.15rem; text-transform:uppercase;\n}\n#mes-root .mes-rules b{ display:block; font-family: var(--f-disp); font-size:1.16rem; letter-spacing:.05em; text-transform:uppercase; color:#FFF8EC; margin-bottom:.25rem; }\n#mes-root .mes-rules p{ font-size:.94rem; font-weight:300; color: rgba(245,238,226,.7); }\n#mes-root .mes-rules i{ color: var(--gold); font-style:italic; }\n\/**\/\n\/* ------------------------------ CRONOGRAMA ------------------------------ *\/\n#mes-root .mes-time{\n  margin-top:2.6rem; display:grid; gap: clamp(1rem,2vw,1.4rem);\n  grid-template-columns: repeat(auto-fit, minmax(230px,1fr));\n}\n#mes-root .mes-time li{\n  position:relative; padding: 1.5rem 1.3rem 1.5rem;\n  border-radius: var(--r); border:1px solid var(--line-2);\n  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.01));\n}\n#mes-root .mes-time li::after{\n  content:''; position:absolute; left:1.3rem; right:1.3rem; top:0; height:2px;\n  background: linear-gradient(90deg, var(--gold), transparent);\n  opacity:.5;\n}\n#mes-root .mes-time__n{\n  display:grid; place-items:center; width:34px; height:34px; border-radius:50%;\n  background: var(--gold); color:#1A1206;\n  font-family: var(--f-disp); font-weight:700; font-size:1.1rem; margin-bottom:.9rem;\n}\n#mes-root .mes-time b{ display:block; font-family: var(--f-disp); font-size:1.2rem; letter-spacing:.05em; text-transform:uppercase; color:#FFF8EC; }\n#mes-root .mes-time i{ display:block; font-family: var(--f-ser); font-style:italic; color: var(--gold); font-size:.92rem; margin:.15rem 0 .6rem; }\n#mes-root .mes-time p{ font-size:.9rem; font-weight:300; color: rgba(245,238,226,.68); }\n\/**\/\n#mes-root .mes-beca{\n  margin-top: clamp(2.5rem,5vw,4rem); padding: clamp(1.6rem,3.4vw,2.6rem);\n  border-radius: var(--r); border:1px solid var(--line);\n  background: linear-gradient(120deg, rgba(233,180,95,.13), rgba(1,112,185,.10) 70%, transparent);\n  display:grid; grid-template-columns: auto 1fr; gap: clamp(1.4rem,3vw,2.6rem); align-items:start;\n}\n#mes-root .mes-beca__badge{\n  display:grid; place-content:center; text-align:center;\n  width: clamp(110px,15vw,148px); aspect-ratio:1; border-radius:50%;\n  border:1px solid var(--gold); background: rgba(233,180,95,.08);\n}\n#mes-root .mes-beca__badge b{\n  display:block; font-family: var(--f-disp); font-weight:700; line-height:1;\n  font-size: clamp(2.4rem,5vw,3.4rem); color: var(--gold-hi);\n}\n#mes-root .mes-beca__badge span{ font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color: var(--muted); }\n\/**\/\n\/* ------------------------------ CONTACTO ------------------------------ *\/\n#mes-root .mes-contact{\n  margin-top: 2.6rem; display:grid;\n  grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); gap: 1rem;\n}\n#mes-root .mes-contact__card{\n  display:flex; flex-direction:column; align-items:center; gap:.35rem; text-align:center;\n  padding: 1.7rem 1.2rem; border-radius: var(--r);\n  border:1px solid var(--line-2); background: rgba(255,255,255,.035);\n  transition: border-color .3s, transform .3s, background .3s;\n}\n#mes-root .mes-contact__card:not(.mes-contact__card--static):hover{\n  border-color: var(--gold); transform: translateY(-4px); background: rgba(233,180,95,.08);\n}\n#mes-root .mes-contact__ico{\n  display:grid; place-items:center; width:46px; height:46px; border-radius:50%;\n  border:1px solid var(--gold-dim); color: var(--gold); margin-bottom:.5rem;\n}\n#mes-root .mes-contact__card b{ font-family: var(--f-disp); font-size:1.05rem; letter-spacing:.08em; text-transform:uppercase; color:#FFF8EC; }\n#mes-root .mes-contact__card > span:last-child{ font-size:.84rem; font-weight:300; color: rgba(245,238,226,.7); overflow-wrap:anywhere; }\n\/**\/\n#mes-root .mes-aporte{ margin-top: 2.8rem; padding-top:2rem; border-top:1px solid var(--line-2); }\n#mes-root .mes-aporte ul{ display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem; }\n#mes-root .mes-aporte li{\n  padding:.45rem 1rem; border-radius:100px; border:1px solid var(--line-2);\n  font-size:.82rem; font-weight:300; color: rgba(245,238,226,.72);\n}\n\/**\/\n\/* -------------------------------- FOOTER -------------------------------- *\/\n#mes-root .mes-foot{ border-top:1px solid var(--line); background: #05050A; padding: clamp(2.5rem,5vw,3.6rem) 0 2rem; }\n#mes-root .mes-foot__inner{ display:grid; gap:1.8rem; }\n#mes-root .mes-foot__brand{ display:flex; align-items:center; gap:1.1rem; flex-wrap:wrap; }\n#mes-root .mes-foot__logo{ height:46px; width:auto; }\n#mes-root .mes-foot__brand p{ font-size:.86rem; font-weight:300; color: var(--muted); }\n#mes-root .mes-foot__brand b{ color: var(--cream); font-weight:500; }\n#mes-root .mes-foot__nav{ display:flex; flex-wrap:wrap; gap:1.3rem; }\n#mes-root .mes-foot__nav a{ font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; color: rgba(245,238,226,.6); transition: color .25s; }\n#mes-root .mes-foot__nav a:hover{ color: var(--gold); }\n#mes-root .mes-foot__legal{ padding-top:1.5rem; border-top:1px solid var(--line-2); font-size:.76rem; color: #5C5749; }\n\/**\/\n\/* -------------------------------- MODAL -------------------------------- *\/\n#mes-root .mes-modal{ position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding: var(--pad); }\n#mes-root .mes-modal[hidden]{ display:none; }\n#mes-root .mes-modal__bd{ position:absolute; inset:0; background: rgba(4,4,8,.86); backdrop-filter: blur(6px); }\n#mes-root .mes-modal__box{\n  position:relative; width:min(780px,100%); max-height: 88vh; overflow:auto;\n  border-radius: var(--r); border:1px solid var(--line);\n  background: linear-gradient(180deg, #14141F, #0A0A12);\n  box-shadow: 0 50px 100px -40px #000;\n  animation: mesIn .35s cubic-bezier(.2,.8,.3,1);\n}\n@keyframes mesIn{ from{ opacity:0; transform: translateY(18px) scale(.98); } }\n#mes-root .mes-modal__x{\n  position:absolute; top:.55rem; right:.55rem; z-index:5;\n  width:38px; height:38px; border-radius:50%; font-size:1.45rem; line-height:1;\n  background: rgba(8,8,15,.86); color: var(--cream);\n  border:1px solid rgba(245,238,226,.28);\n  box-shadow: 0 4px 16px rgba(0,0,0,.6);\n  transition: background .25s, border-color .25s;\n}\n#mes-root .mes-modal__x:hover{ background: var(--gold); border-color: var(--gold); color:#1A1206; }\n#mes-root .mes-modal__media:not(:empty){ aspect-ratio:16\/9; background:#000; }\n#mes-root .mes-modal__media iframe{ width:100%; height:100%; border:0; display:block; }\n#mes-root .mes-modal__body{ padding: clamp(1.4rem,3vw,2.2rem); }\n#mes-root .mes-modal__body h3{ font-family: var(--f-ser); font-size: clamp(1.5rem,3vw,2.1rem); font-weight:700; margin:.7rem 0 .3rem; color:#FFF8EC; }\n#mes-root .mes-modal__school{ font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color: var(--gold); margin-bottom:1rem; }\n#mes-root .mes-modal__body > p:last-of-type{ font-weight:300; color: rgba(245,238,226,.75); }\n#mes-root .mes-modal__facts{ margin-top:1.4rem; display:grid; grid-template-columns: repeat(auto-fit,minmax(140px,1fr)); gap:1rem; border-top:1px solid var(--line-2); padding-top:1.2rem; }\n#mes-root .mes-modal__facts li b{ display:block; font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color: var(--muted); margin-bottom:.2rem; }\n#mes-root .mes-modal__facts li span{ font-size:.95rem; }\n\/**\/\n\/* ------------------------------- REVEAL ------------------------------- *\/\n#mes-root br:not(.mes-br){ display:none; }\n\/* WordPress (wpautop) inserta <\/p>\n<p> vac\u00edos entre bloques. No pintan nada,\n   pero dentro de una rejilla ocupan celda y descolocan la maquetaci\u00f3n. *\/\n#mes-root p:empty:not(.mes-sr){ display:none !important; }\n#mes-root .mes-nav__inner > p{ display:contents; }\n#mes-root.mes-js [data-reveal]{ opacity:0; transform: translateY(22px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.8,.3,1); }\n#mes-root.mes-js [data-reveal].is-in{ opacity:1; transform:none; }\n\/**\/\n\/* ------------------------------ RESPONSIVE ------------------------------ *\/\n@media (max-width: 980px){\n  #mes-root .mes-live{ grid-template-columns: 1fr; }\n  #mes-root .mes-two{ grid-template-columns: 1fr; }\n  #mes-root .mes-beca{ grid-template-columns:1fr; justify-items:center; text-align:center; }\n  #mes-root .mes-beca__badge{ margin-inline:auto; }\n  #mes-root .mes-note{ text-align:left; }\n}\n@media (max-width: 1024px){\n  #mes-root .mes-burger{ display:block; }\n  #mes-root .mes-nav__links{\n    position:absolute; top:100%; left:0; right:0;\n    flex-direction:column; align-items:stretch; gap:0;\n    background: #2E1D15; border-bottom:1px solid var(--line);\n    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);\n    padding: .6rem var(--pad) 1.4rem;\n    clip-path: inset(0 0 100% 0); opacity:0; pointer-events:none;\n    \/* visibility, y no solo opacity: si no, los enlaces del men\u00fa plegado\n       siguen recibiendo el foco al tabular aunque no se vean. *\/\n    visibility:hidden;\n    transition: clip-path .4s cubic-bezier(.2,.8,.3,1), opacity .3s, visibility 0s linear .3s;\n  }\n  #mes-root .mes-nav__links.is-open{\n    clip-path: inset(0 0 0 0); opacity:1; pointer-events:auto;\n    visibility:visible; transition-delay: 0s;\n  }\n  #mes-root .mes-nav__links > a:not(.mes-btn){ display:flex; align-items:center; min-height:48px; padding: .55rem 0; border-bottom:1px solid var(--line-2); font-size:.95rem; }\n  #mes-root .mes-nav__links > .mes-btn{ margin-top:1rem; display:flex; width:100%; justify-content:center; }\n  #mes-root .mes-stats > div{ border-right:0; border-bottom:1px solid var(--line-2); }\n  #mes-root .mes-cartelera-note{ flex-direction:column; align-items:flex-start; }\n}\n@media (max-width: 640px){\n  #mes-root .mes-kicker__line{ display:none; }\n  #mes-root .mes-beam{ filter: blur(18px); animation:none; }\n  \/* Los filtros se reparten en varias l\u00edneas: ninguna opci\u00f3n queda oculta *\/\n  #mes-root .mes-filters{ gap:.4rem; margin-bottom:1.5rem; }\n  #mes-root .mes-filters button{ padding:.62rem .9rem; font-size:.72rem; letter-spacing:.08em; }\n}\n@media (max-width: 520px){\n  #mes-root .mes-count__grid > div{ min-width:0; flex:1; }\n  #mes-root .mes-hero__meta{ font-size:.82rem; }\n  #mes-root .mes-player__play{ width:64px; height:64px; }\n}\n\/**\/\n@media (prefers-reduced-motion: reduce){\n  #mes-root *,#mes-root *::before,#mes-root *::after{\n    animation-duration:.001ms !important; animation-iteration-count:1 !important;\n    transition-duration:.001ms !important;\n  }\n  #mes-root.mes-js [data-reveal]{ opacity:1; transform:none; }\n}\n\/**\/\n\/* ==========================================================================\n   PALETA AMPLIADA \u00b7 secciones claras y color de marca ITV\n   Este bloque va al final a prop\u00f3sito: sobrescribe las reglas de arriba.\n   ========================================================================== *\/\n#mes-root{\n  --paper:    #FBF7F0;\n  --paper-2:  #F2EADC;\n  --tinta:    #221B2E;\n  --tinta-2:  #5B5168;\n  --azul:     #0170B9;\n  --azul-hi:  #2E9BE0;\n  --coral:    #E8502F;\n  --verde:    #14A03A;\n  --ambar:    #B26A00;\n  \/* Variantes para TEXTO sobre papel: cumplen 4.5:1 de contraste. *\/\n  --azul-txt:  #016CB2;\n  --coral-txt: #B53E25;\n  --verde-txt: #0F762B;\n  --ambar-txt: #965900;\n}\n\/**\/\n\/* --- Secciones claras: fondo de papel c\u00e1lido --- *\/\n#mes-root .mes-sec--light{\n  background: linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%);\n  color: var(--tinta);\n}\n#mes-root .mes-sec--light::before{\n  content:''; position:absolute; inset:0 0 auto; height:1px;\n  background: linear-gradient(90deg, transparent, var(--gold), transparent);\n  opacity:.55;\n}\n#mes-root .mes-sec--light .mes-h2,\n#mes-root .mes-sec--light .mes-h3,\n#mes-root .mes-sec--light h4{ color: var(--tinta); }\n#mes-root .mes-sec--light .mes-p,\n#mes-root .mes-sec--light .mes-lead,\n#mes-root .mes-sec--light .mes-eje p,\n#mes-root .mes-sec--light .mes-rules p,\n#mes-root .mes-sec--light .mes-time p,\n#mes-root .mes-sec--light .mes-pillars span{ color: var(--tinta-2); }\n#mes-root .mes-sec--light .mes-p b{ color: var(--tinta); }\n#mes-root .mes-sec--light .mes-note{\n  color: var(--tinta-2); border-left-color: var(--azul);\n  background: rgba(1,112,185,.05); padding:.6rem .9rem; border-radius:0 8px 8px 0;\n}\n\/**\/\n\/* --- Un color de acento propio para cada secci\u00f3n clara --- *\/\n#mes-root .mes-sec--festival .mes-eyebrow{ color: var(--azul-txt); }\n#mes-root .mes-sec--festival .mes-h2 em{ color: var(--azul-txt); }\n#mes-root .mes-sec--bases .mes-eyebrow{ color: var(--coral-txt); }\n#mes-root .mes-sec--bases .mes-h2 em{ color: var(--coral-txt); }\n#mes-root .mes-sec--crono .mes-eyebrow{ color: var(--verde-txt); }\n#mes-root .mes-sec--crono .mes-h2 em{ color: var(--verde-txt); }\n\/**\/\n\/* --- Tarjetas sobre papel: blancas, con sombra suave --- *\/\n#mes-root .mes-sec--light .mes-pillars li,\n#mes-root .mes-sec--light .mes-eje,\n#mes-root .mes-sec--light .mes-rules li,\n#mes-root .mes-sec--light .mes-time li{\n  background:#fff; border-color: rgba(34,27,46,.10);\n  box-shadow: 0 2px 4px rgba(34,27,46,.04), 0 10px 26px -18px rgba(34,27,46,.35);\n}\n#mes-root .mes-sec--light .mes-pillars li:hover{ background:#fff; border-color: var(--azul); }\n#mes-root .mes-sec--light .mes-rules li:hover{ border-color: var(--coral); }\n#mes-root .mes-sec--light .mes-pillars b{ color: var(--azul-txt); }\n\/**\/\n\/* --- Los cuatro pilares, cada uno de un color --- *\/\n#mes-root .mes-pillars li:nth-child(1) b{ color: var(--azul-txt); }\n#mes-root .mes-pillars li:nth-child(2) b{ color: var(--coral-txt); }\n#mes-root .mes-pillars li:nth-child(3) b{ color: var(--verde-txt); }\n#mes-root .mes-pillars li:nth-child(4) b{ color: var(--ambar-txt); }\n\/**\/\n\/* --- Cifras --- *\/\n#mes-root .mes-sec--light .mes-stats{ border-color: rgba(34,27,46,.14); }\n#mes-root .mes-sec--light .mes-stats > div{ border-right-color: rgba(34,27,46,.10); }\n#mes-root .mes-sec--light .mes-stats span{ color: var(--tinta-2); }\n#mes-root .mes-sec--light .mes-stats b{\n  -webkit-background-clip: initial; background-clip: initial; background:none;\n}\n#mes-root .mes-sec--light .mes-stats > div:nth-child(1) b{ color: var(--azul); }\n#mes-root .mes-sec--light .mes-stats > div:nth-child(2) b{ color: var(--coral); }\n#mes-root .mes-sec--light .mes-stats > div:nth-child(3) b{ color: var(--verde-txt); }\n#mes-root .mes-sec--light .mes-stats > div:nth-child(4) b{ color: var(--ambar); }\n\/**\/\n\/* --- Ejes tem\u00e1ticos: dos tarjetas con car\u00e1cter --- *\/\n#mes-root .mes-sec--light .mes-eje--a{ --c: rgba(233,180,95,.55); }\n#mes-root .mes-sec--light .mes-eje--b{ --c: rgba(1,112,185,.30); }\n#mes-root .mes-sec--light .mes-eje--a{ border-top:3px solid var(--gold); }\n#mes-root .mes-sec--light .mes-eje--b{ border-top:3px solid var(--azul); }\n#mes-root .mes-sec--light .mes-eje--a .mes-eje__num{ color: var(--ambar-txt); }\n#mes-root .mes-sec--light .mes-eje--b .mes-eje__num{ color: var(--azul-txt); }\n\/**\/\n\/* --- Bases: la letra de cada directriz --- *\/\n#mes-root .mes-sec--light .mes-rules__k{\n  border-color: rgba(232,80,47,.35); color: var(--coral-txt);\n  background: rgba(232,80,47,.07);\n}\n#mes-root .mes-sec--light .mes-rules b{ color: var(--tinta); }\n#mes-root .mes-sec--light .mes-rules i{ color: var(--coral-txt); }\n\/**\/\n\/* --- Cronograma: una etapa, un color --- *\/\n#mes-root .mes-sec--light .mes-time li::after{ opacity:1; height:3px; }\n#mes-root .mes-time li:nth-child(1)::after{ background: linear-gradient(90deg, var(--gold), transparent); }\n#mes-root .mes-time li:nth-child(2)::after{ background: linear-gradient(90deg, var(--azul), transparent); }\n#mes-root .mes-time li:nth-child(3)::after{ background: linear-gradient(90deg, var(--coral), transparent); }\n#mes-root .mes-time li:nth-child(4)::after{ background: linear-gradient(90deg, var(--verde), transparent); }\n#mes-root .mes-time li:nth-child(1) .mes-time__n{ background: var(--gold); color:#3A2600; }\n#mes-root .mes-time li:nth-child(2) .mes-time__n{ background: var(--azul); color:#fff; }\n#mes-root .mes-time li:nth-child(3) .mes-time__n{ background: var(--coral-txt); color:#fff; }\n#mes-root .mes-time li:nth-child(4) .mes-time__n{ background: var(--verde-txt); color:#fff; }\n#mes-root .mes-sec--light .mes-time b{ color: var(--tinta); }\n#mes-root .mes-time li:nth-child(1) i{ color: var(--ambar-txt); }\n#mes-root .mes-time li:nth-child(2) i{ color: var(--azul-txt); }\n#mes-root .mes-time li:nth-child(3) i{ color: var(--coral-txt); }\n#mes-root .mes-time li:nth-child(4) i{ color: var(--verde-txt); }\n\/**\/\n\/* --- La beca, en azul institucional --- *\/\n#mes-root .mes-sec--light .mes-beca{\n  background: linear-gradient(120deg, rgba(1,112,185,.10), rgba(233,180,95,.16) 75%);\n  border-color: rgba(1,112,185,.22);\n}\n#mes-root .mes-sec--light .mes-beca__badge{\n  border-color: var(--azul); background: #fff;\n  box-shadow: 0 8px 24px -14px rgba(1,112,185,.7);\n}\n#mes-root .mes-sec--light .mes-beca__badge b{ color: var(--azul-txt); }\n#mes-root .mes-sec--light .mes-beca__badge span{ color: var(--tinta-2); }\n\/**\/\n\/* --- Bot\u00f3n fantasma sobre papel --- *\/\n#mes-root .mes-sec--light .mes-btn--ghost{\n  color: var(--tinta); border-color: rgba(34,27,46,.28);\n}\n#mes-root .mes-sec--light .mes-btn--ghost:hover{ border-color: var(--azul); color: var(--azul-txt); }\n\/**\/\n\/* --- Cartelera: cada cartel con su propio color de foco --- *\/\n#mes-root .mes-card:nth-child(4n+1) .mes-card__poster{ background: radial-gradient(70% 90% at 50% 0%, rgba(233,180,95,.42), transparent 62%), #0C0C16; }\n#mes-root .mes-card:nth-child(4n+2) .mes-card__poster{ background: radial-gradient(70% 90% at 50% 0%, rgba(46,155,224,.42), transparent 62%), #0A0F1A; }\n#mes-root .mes-card:nth-child(4n+3) .mes-card__poster{ background: radial-gradient(70% 90% at 50% 0%, rgba(232,80,47,.40), transparent 62%), #150C10; }\n#mes-root .mes-card:nth-child(4n+4) .mes-card__poster{ background: radial-gradient(70% 90% at 50% 0%, rgba(20,160,58,.36), transparent 62%), #08120C; }\n#mes-root .mes-card:nth-child(4n+2) .mes-card__num{ color: rgba(46,155,224,.66); }\n#mes-root .mes-card:nth-child(4n+3) .mes-card__num{ color: rgba(232,80,47,.74); }\n#mes-root .mes-card:nth-child(4n+4) .mes-card__num{ color: rgba(20,160,58,.72); }\n#mes-root .mes-card:nth-child(4n+2):hover{ border-color: rgba(46,155,224,.55); }\n#mes-root .mes-card:nth-child(4n+3):hover{ border-color: rgba(232,80,47,.55); }\n#mes-root .mes-card:nth-child(4n+4):hover{ border-color: rgba(20,160,58,.5); }\n\/**\/\n\/* --- La franja de inscripci\u00f3n, en azul de noche --- *\/\n#mes-root .mes-sec--cta{\n  background: radial-gradient(90% 75% at 50% 100%, #123152, #0B1220 55%, var(--ink) 100%);\n}\n#mes-root .mes-sec--cta .mes-eyebrow{ color: var(--azul-hi); }\n#mes-root .mes-contact__card:not(.mes-contact__card--static):hover{\n  border-color: var(--azul-hi); background: rgba(46,155,224,.10);\n}\n#mes-root .mes-contact__ico{ border-color: rgba(46,155,224,.45); color: var(--azul-hi); }\n\/**\/\n\/* --- La etiqueta de eje, m\u00e1s viva --- *\/\n#mes-root .mes-tag--eje[data-eje=\"valores\"]{ color:#8FD0F5; border-color: rgba(46,155,224,.55); background: rgba(46,155,224,.16); }\n\/**\/\n\/**\/\n\/* ------------------------- SELECTOR DE C\u00c1MARAS ------------------------- *\/\n#mes-root .mes-cams{ display:flex; gap:.5rem; margin-top:.9rem; flex-wrap:wrap; }\n#mes-root .mes-cams button{\n  flex:1 1 0; min-width:132px;\n  display:flex; align-items:center; gap:.6rem; text-align:left;\n  padding:.6rem .8rem; border-radius:10px;\n  border:1px solid var(--line-2); background: rgba(255,255,255,.035);\n  transition: border-color .25s, background .25s, transform .2s;\n}\n#mes-root .mes-cams button:hover{ border-color: var(--gold-dim); background: rgba(233,180,95,.07); transform: translateY(-2px); }\n#mes-root .mes-cams button.is-on{\n  border-color: var(--gold); background: rgba(233,180,95,.14);\n  box-shadow: 0 0 0 1px var(--gold) inset;\n}\n#mes-root .mes-cams__n{\n  flex:0 0 auto; display:grid; place-items:center;\n  width:26px; height:26px; border-radius:50%;\n  border:1px solid var(--gold-dim); color: var(--gold);\n  font-family: var(--f-disp); font-size:.9rem; line-height:1;\n}\n#mes-root .mes-cams button.is-on .mes-cams__n{ background: var(--gold); border-color: var(--gold); color:#1A1206; }\n#mes-root .mes-cams__t{\n  display:flex; flex-direction:column; line-height:1.2;\n  font-family: var(--f-disp); font-size:.95rem; letter-spacing:.05em;\n  text-transform:uppercase; color: rgba(245,238,226,.82);\n}\n#mes-root .mes-cams button.is-on .mes-cams__t{ color: var(--gold-hi); }\n#mes-root .mes-cams__t small{\n  font-family: var(--f-txt); font-size:.66rem; letter-spacing:.02em;\n  text-transform:none; font-weight:300; color: var(--muted); margin-top:.1rem;\n}\n\/**\/\n@media (max-width: 560px){\n  \/* Las tres c\u00e1maras caben a la vez: se ven todas sin desplazar nada *\/\n  #mes-root .mes-cams{ display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:.4rem; }\n  #mes-root .mes-cams button{\n    flex:initial; min-width:0; flex-direction:column; align-items:center;\n    gap:.3rem; padding:.55rem .3rem; min-height:62px; text-align:center;\n  }\n  #mes-root .mes-cams button:hover{ transform:none; }\n  #mes-root .mes-cams__n{ width:22px; height:22px; font-size:.82rem; }\n  #mes-root .mes-cams__t{ align-items:center; font-size:.72rem; letter-spacing:.02em; }\n  #mes-root .mes-cams__t small{ display:none; }\n}\n\/**\/\n\/**\/\n\/* ==========================================================================\n   TEL\u00d3N \u00b7 marr\u00f3n oscuro de terciopelo teatral con foco dorado\n   ========================================================================== *\/\n#mes-root{\n  --ink:    #2B1A13;\n  --ink-2:  #3A251C;\n  --ink-3:  #4C3226;\n  --calida: rgba(233,180,95,.20);\n}\n#mes-root .mes-hero{\n  background: radial-gradient(135% 100% at 50% -8%, #7A5030 0%, #5C3824 34%, #47301F 70%, #37231A 100%);\n}\n#mes-root .mes-curtain{\n  background: repeating-linear-gradient(90deg,\n    rgba(48,29,19,.80) 0px, rgba(126,70,40,.52) 20px,\n    rgba(54,33,21,.82) 40px, rgba(104,56,32,.58) 62px);\n  opacity:.82;\n}\n#mes-root .mes-floor{\n  background: linear-gradient(to top, rgba(92,54,24,.62), transparent),\n              repeating-linear-gradient(92deg, rgba(255,220,170,.07) 0 2px, transparent 2px 34px);\n}\n#mes-root .mes-sec--live{\n  \/* Arranca EXACTAMENTE en el color con que termina la portada (#1A0F0A) y\n     sube despacio hasta el marr\u00f3n base: as\u00ed no hay costura visible. *\/\n  background:\n    radial-gradient(95% 60% at 50% 20%, rgba(233,180,95,.09), transparent 62%),\n    linear-gradient(180deg, #37231A 0%, #402A1D 45%, #4E3324 100%);\n  border-top: 0;\n  padding-top: clamp(5rem, 11vw, 9rem);\n}\n\/* Un velo que funde el final de la portada con lo que viene debajo *\/\n#mes-root .mes-hero::after{\n  content:''; position:absolute; left:0; right:0; bottom:0; height: 13%;\n  background: linear-gradient(180deg, transparent, #37231A 94%);\n  pointer-events:none; z-index:1;\n}\n#mes-root .mes-sec--cta{\n  background: radial-gradient(105% 95% at 50% 100%, #7A5030, #4A3020 42%, #35211A 100%);\n}\n#mes-root .mes-sec--cta .mes-eyebrow{ color: var(--gold-hi); }\n#mes-root .mes-foot{ background:#31201A; }\n\/**\/\n\/* El gris apagado sube un punto: sobre el marr\u00f3n claro del final de la\n   secci\u00f3n de transmisi\u00f3n, el anterior (#A49A8C) se quedaba en 4.16. *\/\n#mes-root{ --muted: #AFA596; }\n\/* La l\u00ednea legal del pie: sobre el pie ya aclarado se quedaba en 2.16. *\/\n#mes-root .mes-foot__legal{ color:#948C76; }\n#mes-root .mes-nav{ background: rgba(36,22,16,.55); }\n#mes-root .mes-nav.is-stuck{ background: rgba(36,22,16,.94); }\n#mes-root .mes-nav__links{ background:#2A190F; }\n#mes-root .mes-nowcard{\n  background: linear-gradient(160deg, rgba(233,180,95,.14), rgba(255,255,255,.03) 45%);\n  border-color: var(--calida);\n}\n#mes-root .mes-cams button{ background: rgba(255,236,214,.05); border-color: rgba(233,180,95,.16); }\n#mes-root .mes-status{ background: rgba(255,236,214,.05); }\n\/**\/\n\/* --- Cartelera sobre papel --- *\/\n#mes-root .mes-sec--cartel{\n  background: linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%);\n  color: var(--tinta);\n}\n#mes-root .mes-sec--cartel .mes-eyebrow{ color: var(--ambar-txt); }\n#mes-root .mes-sec--cartel .mes-h2{ color: var(--tinta); }\n#mes-root .mes-sec--cartel .mes-h2 em{ color: var(--ambar-txt); }\n#mes-root .mes-sec--cartel .mes-lead{ color: var(--tinta-2); }\n#mes-root .mes-sec--cartel .mes-card{\n  background:#fff; border-color: rgba(34,27,46,.12);\n  box-shadow: 0 2px 4px rgba(34,27,46,.05), 0 16px 32px -22px rgba(34,27,46,.5);\n}\n#mes-root .mes-sec--cartel .mes-card__title{ color: var(--tinta); }\n#mes-root .mes-sec--cartel .mes-card__school{ color: var(--tinta-2); }\n#mes-root .mes-sec--cartel .mes-card__chip{ background: rgba(34,27,46,.07); color: var(--tinta-2); }\n#mes-root .mes-sec--cartel .mes-card--tba{\n  background: rgba(255,255,255,.55); border-color: rgba(34,27,46,.2); box-shadow:none;\n}\n#mes-root .mes-sec--cartel .mes-card--tba .mes-card__title{ color: rgba(34,27,46,.66); }\n#mes-root .mes-sec--cartel .mes-card--tba .mes-card__school{ color: rgba(34,27,46,.66); }\n#mes-root .mes-sec--cartel .mes-filters button{ border-color: rgba(34,27,46,.2); color: var(--tinta-2); }\n#mes-root .mes-sec--cartel .mes-filters button:hover{ border-color: var(--ambar); color: var(--tinta); }\n#mes-root .mes-sec--cartel .mes-filters button.is-on{ color: var(--tinta); }\n#mes-root .mes-sec--cartel .mes-cartelera-note{\n  background: linear-gradient(120deg, rgba(233,180,95,.22), transparent 65%);\n  border-color: rgba(178,106,0,.32);\n}\n#mes-root .mes-sec--cartel .mes-cartelera-note p{ color: var(--tinta-2); }\n#mes-root .mes-sec--cartel .mes-cartelera-note b{ color: var(--ambar-txt); }\n#mes-root .mes-sec--cartel .mes-btn--ghost{ color: var(--tinta); border-color: rgba(34,27,46,.3); }\n#mes-root .mes-sec--cartel .mes-btn--ghost:hover{ border-color: var(--ambar); color: var(--ambar-txt); }\n\/**\/\n\/* ==========================================================================\n   M\u00d3VIL \u00b7 maquetaci\u00f3n propia para pantallas peque\u00f1as\n   Va al final para poder ajustar tambi\u00e9n las secciones claras.\n   ========================================================================== *\/\n@media (max-width: 560px){\n  \/* La cartelera pasa de rejilla de carteles a lista compacta: cabe el doble\n     de obras en pantalla y el t\u00edtulo deja de competir con la imagen. *\/\n  #mes-root .mes-grid{ grid-template-columns: 1fr; gap:.65rem; }\n  #mes-root .mes-card{ flex-direction:row; align-items:stretch; }\n  #mes-root .mes-card:hover{ transform:none; box-shadow:none; }\n  #mes-root .mes-card__poster{\n    flex:0 0 96px; width:96px; aspect-ratio:auto; align-content:center;\n    grid-auto-rows:min-content; gap:.15rem; padding:.7rem .35rem;\n  }\n  #mes-root .mes-card__poster::after{\n    background: linear-gradient(to right, transparent 40%, rgba(8,8,15,.55) 100%);\n  }\n  #mes-root .mes-card__num{ font-size:2rem; text-align:center; }\n  #mes-root .mes-card__time{\n    position:absolute; left:50%; bottom:.4rem; translate:-50% 0; z-index:3;\n    text-align:center; font-size:.72rem; letter-spacing:.05em; line-height:1;\n    padding:.2rem .45rem; border-radius:100px;\n    background: rgba(8,8,15,.72); color: var(--gold-hi);\n    -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);\n  }\n  #mes-root .mes-card__live{ top:.4rem; left:.4rem; padding:.18rem .4rem; font-size:.5rem; letter-spacing:.1em; gap:.25rem; }\n  #mes-root .mes-card__body{ padding:.8rem .9rem .85rem; gap:.28rem; }\n  #mes-root .mes-card__title{ font-size:1.05rem; }\n  #mes-root .mes-card__school{ font-size:.67rem; letter-spacing:.1em; }\n  #mes-root .mes-card__chips{ padding-top:.5rem; gap:.3rem; }\n  \/* Todo lo pulsable llega a los 44 px de alto recomendados *\/\n  #mes-root .mes-btn{ min-height:44px; }\n  #mes-root .mes-filters button{ min-height:44px; }\n  \/* Enlaces del pie: alto suficiente para el dedo *\/\n  #mes-root .mes-foot__nav{ gap:.2rem 1.1rem; }\n  #mes-root .mes-foot__nav a{ display:inline-flex; align-items:center; min-height:44px; }\n  \/* Fichas de contacto a una columna, con el texto sin partirse *\/\n  #mes-root .mes-contact__card{ word-break:break-word; }\n}\n\/**\/\n@media (max-width: 380px){\n  \/* Tel\u00e9fonos peque\u00f1os: se comprime la escala tipogr\u00e1fica y los espacios,\n     manteniendo la jerarqu\u00eda. No se oculta contenido. *\/\n  #mes-root{ --pad: 1.05rem; }\n  #mes-root .mes-hero{ min-height:auto; padding: 5.5rem 0 4rem; }\n  #mes-root .mes-hero__title{ font-size:2.9rem; }\n  #mes-root .mes-hero__logo{ height:42px; }\n  #mes-root .mes-hero__sub{ font-size:.98rem; }\n  #mes-root .mes-hero__meta{ font-size:.76rem; gap:.35rem; }\n  #mes-root .mes-count__grid{ gap:.35rem; }\n  #mes-root .mes-count__grid > div{ padding:.55rem .2rem; }\n  #mes-root .mes-count__grid b{ font-size:1.45rem; }\n  #mes-root .mes-cams__t{ font-size:.66rem; }\n  #mes-root .mes-cams button{ padding:.5rem .2rem; }\n  #mes-root .mes-card__poster{ flex-basis:82px; width:82px; }\n  #mes-root .mes-card__num{ font-size:1.7rem; }\n  #mes-root .mes-card__title{ font-size:1rem; }\n  #mes-root .mes-stats > div{ padding:.9rem .6rem; }\n  #mes-root .mes-beca__badge b{ font-size:2rem; }\n}\n\/**\/\n\/**\/\n\/* Cualquier dispositivo t\u00e1ctil (m\u00f3vil y tableta): \u00e1reas de pulsaci\u00f3n de 44 px.\n   Se usa el tipo de puntero, no el ancho, para no engordar la interfaz de\n   escritorio en ventanas estrechas. *\/\n@media (pointer: coarse){\n  #mes-root .mes-btn{ min-height:44px; }\n  #mes-root .mes-filters button{ min-height:44px; }\n  #mes-root .mes-nav__links > a:not(.mes-btn){ min-height:48px; display:flex; align-items:center; }\n  #mes-root .mes-foot__nav a{ display:inline-flex; align-items:center; min-height:44px; }\n  #mes-root .mes-foot__nav{ gap:.2rem 1.2rem; }\n  #mes-root .mes-cams button:hover{ transform:none; }\n  #mes-root .mes-card:hover{ transform:none; box-shadow:none; }\n  #mes-root .mes-brand{ min-height:44px; }\n}\n\/**\/\n\/* ==========================================================================\n   CONVERSI\u00d3N \u00b7 la acci\u00f3n principal nunca queda escondida\n   ========================================================================== *\/\n\/* En escritorio el bot\u00f3n vive dentro del men\u00fa; en m\u00f3vil y tableta, donde ese\n   men\u00fa est\u00e1 plegado, se muestra este otro en la barra superior. *\/\n@media (max-width: 560px){\n  \/* Sin bot\u00f3n en la barra hay sitio de sobra para el nombre completo. *\/\n  #mes-root .mes-brand__txt b{ font-size:.82rem; letter-spacing:.07em; }\n}\n\/**\/\n\/* Mientras no hay transmisi\u00f3n, \"Ver la transmisi\u00f3n\" lleva a un reproductor\n   apagado. En ese caso la inscripci\u00f3n pasa a ser la acci\u00f3n destacada. *\/\n#mes-root .mes-hero__cta.is-preview .mes-btn--live{\n  background: transparent; color: var(--cream);\n  border:1px solid rgba(245,238,226,.34); box-shadow:none; order:2;\n}\n#mes-root .mes-hero__cta.is-preview .mes-btn--live .mes-dot{ background: var(--gold); }\n#mes-root .mes-hero__cta.is-preview .mes-btn--ghost{\n  background: linear-gradient(180deg,#D9391E,#BE2F12); color:#fff;\n  border-color: transparent; box-shadow: 0 6px 24px -8px rgba(190,47,18,.8); order:1;\n}\n\/**\/\n\/* ==========================================================================\n   VARIANTE \"ESCENARIO \/ PROGRAMA\"\n   Arriba el teatro a oscuras (portada y transmisi\u00f3n); a partir de la\n   cartelera, el programa impreso en papel. El corte entre ambos es\n   deliberado: es el tel\u00f3n subiendo.\n   ========================================================================== *\/\n\/* ---- Bloque oscuro: portada y transmisi\u00f3n ---- *\/\n#mes-root{ --ink: #08080F; --ink-2: #0F0F20; --ink-3: #16162A; background: #08080F; }\n#mes-root .mes-nav{ background: rgba(8,8,15,.55); }\n#mes-root .mes-nav.is-stuck{ background: rgba(8,8,15,.94); }\n#mes-root .mes-nav__links{ background: #0C0C18; }\n#mes-root .mes-hero{\n  background: radial-gradient(130% 95% at 50% -8%, #23222F 0%, #12111D 38%, #0A0A12 72%, #06060A 100%);\n}\n#mes-root .mes-hero::after{ background: linear-gradient(180deg, transparent, #07070C 94%); }\n\/* La transmisi\u00f3n arranca en el color exacto con que acaba la portada. *\/\n#mes-root .mes-sec--live{\n  border-top: 0;\n  background:\n    radial-gradient(95% 60% at 50% 20%, rgba(233,180,95,.10), transparent 62%),\n    linear-gradient(180deg, #07070C 0%, #0B0B16 45%, #10101F 100%);\n}\n\/**\/\n\/* ---- El tel\u00f3n sube: corte del oscuro al papel ---- *\/\n#mes-root .mes-sec--cartel::before{\n  content:''; position:absolute; inset:0 0 auto; height:1px; z-index:2;\n  background: linear-gradient(90deg, transparent, var(--gold), transparent);\n}\n#mes-root .mes-sec--cartel::after{\n  content:''; position:absolute; inset:0 0 auto; height:70px; pointer-events:none;\n  background: linear-gradient(180deg, rgba(10,10,20,.13), transparent);\n}\n\/**\/\n\/* ---- Bloque claro: la inscripci\u00f3n pasa a papel ---- *\/\n#mes-root .mes-sec--cta{\n  color: var(--tinta);\n  background:\n    radial-gradient(100% 85% at 50% 100%, rgba(233,180,95,.34), transparent 62%),\n    linear-gradient(180deg, var(--paper-2) 0%, #F7EFE0 100%);\n}\n\/* Los haces de luz no funcionan sobre papel: fuera. *\/\n#mes-root .mes-sec--cta .mes-stage{ display:none; }\n#mes-root .mes-sec--cta .mes-eyebrow{ color: var(--ambar-txt); }\n#mes-root .mes-sec--cta .mes-h2{ color: var(--tinta); }\n#mes-root .mes-sec--cta .mes-h2 em{ color: var(--ambar-txt); }\n#mes-root .mes-sec--cta .mes-lead{ color: var(--tinta-2); }\n#mes-root .mes-sec--cta .mes-contact__card{\n  background: #fff; border-color: rgba(34,27,46,.13);\n  box-shadow: 0 2px 4px rgba(34,27,46,.05), 0 16px 32px -22px rgba(34,27,46,.45);\n}\n#mes-root .mes-sec--cta .mes-contact__card b{ color: var(--tinta); }\n#mes-root .mes-sec--cta .mes-contact__card > span:last-child{ color: var(--tinta-2); }\n#mes-root .mes-sec--cta .mes-contact__ico{ border-color: rgba(178,106,0,.42); color: var(--ambar-txt); }\n#mes-root .mes-sec--cta .mes-contact__card:not(.mes-contact__card--static):hover{\n  border-color: var(--ambar); background: #fff;\n}\n#mes-root .mes-sec--cta .mes-contact__card--static{ background: rgba(255,255,255,.55); box-shadow:none; }\n#mes-root .mes-sec--cta .mes-aporte{ border-top-color: rgba(34,27,46,.14); }\n#mes-root .mes-sec--cta .mes-aporte li{\n  border-color: rgba(34,27,46,.18); color: var(--tinta-2); background: rgba(255,255,255,.6);\n}\n\/**\/\n\/* ---- Pie en papel ---- *\/\n#mes-root .mes-foot{ background: #EDE3D2; border-top-color: rgba(34,27,46,.12); color: var(--tinta); }\n\/* El logotipo es claro: sobre papel necesita su propia placa oscura. *\/\n#mes-root .mes-foot__logo{ background:#14131C; padding:.5rem .75rem; border-radius:10px; box-sizing:content-box; }\n#mes-root .mes-foot__brand p{ color: var(--tinta-2); }\n#mes-root .mes-foot__brand b{ color: var(--tinta); }\n#mes-root .mes-foot__nav a{ color: var(--tinta-2); }\n#mes-root .mes-foot__nav a:hover{ color: var(--ambar-txt); }\n#mes-root .mes-foot__legal{ color: rgba(34,27,46,.66); border-top-color: rgba(34,27,46,.12); }\n\/**\/\n\/* El foco tiene que verse tambi\u00e9n sobre los fondos claros nuevos. *\/\n#mes-root .mes-sec--cta :focus-visible,#mes-root .mes-foot :focus-visible{ outline-color:#4A2E1C; }\n\/**\/\n\/* R\u00f3tulo del selector de c\u00e1maras: dice para qu\u00e9 sirven los tres botones. *\/\n#mes-root .mes-cams__label{\n  margin-top:1rem; font-family: var(--f-disp); font-size:.9rem;\n  letter-spacing:.14em; text-transform:uppercase; color: var(--gold);\n}\n\/**\/\n\/* Sin el segundo bot\u00f3n en la portada, la llamada \u00fanica se centra sola. *\/\n#mes-root .mes-hero__cta.is-preview .mes-btn--live{\n  background: linear-gradient(180deg,#D9391E,#BE2F12); color:#fff;\n  border:0; box-shadow: 0 6px 24px -8px rgba(190,47,18,.8); order:1;\n}\n\/**\/\n\/* Capa de espera al cambiar de c\u00e1mara: evita el corte a negro, que hace\n   que el cambio parezca m\u00e1s lento de lo que realmente es. *\/\n#mes-root .mes-player__cargando{\n  position:absolute; inset:0; z-index:4;\n  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.85rem;\n  background: rgba(8,8,15,.72);\n  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);\n}\n#mes-root .mes-player__giro{\n  width:34px; height:34px; border-radius:50%;\n  border:2px solid rgba(233,180,95,.25); border-top-color: var(--gold);\n  animation: mesGiro .9s linear infinite;\n}\n@keyframes mesGiro{ to{ transform: rotate(360deg); } }\n#mes-root .mes-player__cargando-txt{\n  font-family: var(--f-disp); font-size:.85rem; letter-spacing:.16em;\n  text-transform:uppercase; color: var(--cream);\n}\n<\/style>\n<p><script>\n(function () {\n  'use strict';\n\/\/\n  \/* ======================================================================\n     \u2591\u2591 CONFIGURACI\u00d3N \u2014 EDITA SOLO ESTE BLOQUE \u2591\u2591\n     ====================================================================== *\/\n\/\/\n  \/* ----------------------------------------------------------------------\n     EL D\u00cdA DEL EVENTO SOLO SE TOCAN ESTAS CUATRO L\u00cdNEAS.\n     En las c\u00e1maras puedes pegar la URL entera de YouTube, tal cual la\n     copias del navegador; la p\u00e1gina extrae el identificador sola. Sirven\n     todas estas formas:\n        https:\/\/www.youtube.com\/watch?v=AbC123dEfGh\n        https:\/\/youtu.be\/AbC123dEfGh\n        https:\/\/www.youtube.com\/live\/AbC123dEfGh\n        AbC123dEfGh\n     Tambi\u00e9n vale el enlace del canal (https:\/\/www.youtube.com\/channel\/UC...)\n     si esa c\u00e1mara emite con el enlace permanente del canal.\n     Una c\u00e1mara vac\u00eda no aparece. Con una sola, el selector se oculta y se\n     ve como un reproductor normal.\n     ---------------------------------------------------------------------- *\/\n\/\/\n  \/\/ 'proximamente' antes de empezar \u00b7 'en_vivo' durante \u00b7 'finalizado' al acabar\n  var ESTADO = 'proximamente';\n\/\/\n  var CAMARA_1 = '';\n  var CAMARA_2 = '';\n  \/\/ Barra para filtrar la cartelera por d\u00eda. En false no aparece.\n  var MOSTRAR_FILTROS = false;\n\/\/\n  var CAMARA_3 = '';\n\/\/\n  \/\/ Logo del ITV. En WordPress: s\u00fabelo a Medios y pega aqu\u00ed su URL completa.\n  \/\/ OJO: al migrar a WordPress hay que subir ITV-LOGO-recortado.png a Medios\n  \/\/ y pegar aqu\u00ed su URL. El recorte quita el margen transparente del PNG\n  \/\/ original, que hac\u00eda que el logo se viera diminuto.\n  \/\/ Logotipo alojado en la Biblioteca de medios de WordPress (283x172, 8 KB).\n  var LOGO_URL = '\/sitio\/wp-content\/uploads\/2026\/09\/ITV-LOGO-web.png?v=1';\n\/\/\n  \/\/ Fecha y hora de inicio del festival (para la cuenta regresiva).\n  \/\/ Formato: 'AAAA-MM-DDTHH:MM:SS-05:00'  (-05:00 = hora de Ecuador)\n  var FECHA_FESTIVAL = '2026-09-29T10:00:00-05:00';\n\/\/\n  \/\/ \u2500\u2500 TRANSMISI\u00d3N EN VIVO \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  var LIVE = {\n    \/\/ Se toma de ESTADO, arriba del todo.\n    estado: ESTADO,\n\/\/\n    \/\/ ID del video\/transmisi\u00f3n de YouTube.\n    \/\/ Es lo que va despu\u00e9s de \"v=\" en la URL:\n    \/\/ https:\/\/www.youtube.com\/watch?v=XXXXXXXXXXX  \u2192  'XXXXXXXXXXX'\n    \/\/ D\u00e9jalo vac\u00edo ('') mientras no haya video: se mostrar\u00e1 el cartel de espera.\n    youtubeId: '',\n\/\/\n    \/\/ Alternativa: si usas el enlace permanente del canal en vivo, pon aqu\u00ed\n    \/\/ el ID del canal (UC...) y deja youtubeId vac\u00edo. Ver notas al final.\n    canalId: '',\n\/\/\n    \/\/ Ficha de la obra que se transmite\n    titulo:   'Por anunciar',\n    colegio:  '',\n    eje:      '',          \/\/ 'leyendas' | 'valores' | ''\n    hora:     '',\n    duracion: 'Hasta 20 min',\n    elenco:   '',\n    direccion:'',\n    sinopsis: 'La cartelera oficial se publicar\u00e1 una vez cerrada la convocatoria de instituciones educativas.'\n  };\n\/\/\n  \/\/ \u2500\u2500 C\u00c1MARAS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  \/\/ Cada c\u00e1mara es una transmisi\u00f3n de YouTube INDEPENDIENTE: necesita su\n  \/\/ propio codificador (OBS) y su propia clave de emisi\u00f3n. Pega aqu\u00ed el ID\n  \/\/ de video de cada una. Las que dejes vac\u00edas no aparecen.\n  \/\/ Con una sola c\u00e1mara configurada, el selector no se muestra.\n  \/\/ Los enlaces se toman de CAMARA_1\/2\/3, arriba del todo. Aqu\u00ed solo se\n  \/\/ cambian los nombres si alg\u00fan d\u00eda quieres llamarlas de otra forma.\n  var CAMARAS = [\n    { nombre: 'Plano general', detalle: 'Todo el escenario', enlace: CAMARA_1 },\n    { nombre: 'Escena',        detalle: 'Primer plano',      enlace: CAMARA_2 },\n    { nombre: 'P\u00fablico',       detalle: 'Sala y reacciones', enlace: CAMARA_3 }\n  ];\n\/\/\n  \/\/ \u2500\u2500 CARTELERA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  \/\/ A\u00f1ade un objeto por cada obra confirmada. Deja `titulo: null` para que la\n  \/\/ tarjeta aparezca como \"Por anunciar\" (\u00fatil para reservar cupos visibles).\n  \/\/\n  \/\/   titulo     Nombre de la micro obra\n  \/\/   colegio    Unidad educativa\n  \/\/   eje        'leyendas'  o  'valores'\n  \/\/   dia        'D\u00eda 1' \/ 'D\u00eda 2' \u2026 (se generan filtros autom\u00e1ticamente)\n  \/\/   hora       '19:00'\n  \/\/   duracion   '18 min'\n  \/\/   sinopsis   Texto breve\n  \/\/   elenco     '12 estudiantes'\n  \/\/   direccion  Nombre del docente \/ director\n  \/\/   imagen     Foto de la obra (opcional). Proporci\u00f3n 4:3, m\u00ednimo\n  \/\/              800x600 px. Se recorta centrada, as\u00ed que deja aire\n  \/\/              alrededor de las caras. En WordPress: s\u00fabela a\n  \/\/              Medios y pega aqu\u00ed la URL del archivo. En Netlify:\n  \/\/              deja el archivo junto a index.html y pon solo el\n  \/\/              nombre, por ejemplo 'obra-01.jpg'.\n  \/\/              Sin foto, la tarjeta muestra el n\u00famero de la obra.\n  \/\/   youtubeId  ID del video de esa obra, si ya est\u00e1 grabada (opcional)\n  \/\/   enVivo     true si es la que se transmite ahora\n  var CARTELERA = [\n    {\n      titulo: 'Cantu\u00f1a, El \u00faltimo ladrillo',\n      colegio: 'Academia Naval Guayaquil',\n      eje: 'leyendas',\n      dia: 'Martes 29 sept',\n      hora: '12:00',\n      duracion: '10 min',\n      sinopsis: 'En el Quito colonial, Cantu\u00f1a promete terminar la construcci\u00f3n de la Iglesia de San Francisco antes del amanecer. Al darse cuenta de que no podr\u00e1 cumplir, acepta un peligroso pacto con el Diablo a cambio de su alma. Mientras los diablillos trabajan durante la noche, Cantu\u00f1a utiliza su ingenio y esconde una piedra. Al amanecer, demuestra que la construcci\u00f3n no est\u00e1 completa y logra vencer al Diablo. La leyenda nos ense\u00f1a sobre el ingenio, las consecuencias del orgullo y la importancia de nuestras tradiciones ecuatorianas.',\n      elenco: '9 estudiantes',\n      direccion: 'Nuria Meza Mendoza',\n      imagen: '',\n      youtubeId: ''\n    },\n    {\n      titulo: null,\n      colegio: 'IPAC',\n      eje: '',\n      dia: 'Mi\u00e9rcoles 30 sept',\n      hora: '10:00',\n      duracion: '',\n      sinopsis: '',\n      elenco: '',\n      direccion: '',\n      imagen: '',\n      youtubeId: ''\n    },\n    {\n      titulo: 'Subconsciente',\n      colegio: 'U.E. Particular de La Providencia',\n      eje: '',\n      dia: 'Mi\u00e9rcoles 30 sept',\n      hora: '12:00',\n      duracion: '18 min',\n      sinopsis: 'Tras sufrir una p\u00e9rdida, una chica queda atrapada en su propio dolor. Mientras permanece en silencio, las voces de su subconsciente cobran vida para guiarla hacia un nuevo camino. Subconsciente representa la lucha interna entre aferrarse al dolor y aprender a seguir adelante.',\n      elenco: '11 estudiantes',\n      direccion: 'Alfredo Moreira Guti\u00e9rrez',\n      imagen: '',\n      youtubeId: ''\n    },\n    {\n      titulo: null,\n      colegio: 'U.E. Mariscal Sucre',\n      eje: '',\n      dia: 'Jueves 1 oct',\n      hora: '10:00',\n      duracion: '',\n      sinopsis: '',\n      elenco: '',\n      direccion: '',\n      imagen: '',\n      youtubeId: ''\n    },\n    {\n      titulo: null,\n      colegio: 'Academia de Actuaci\u00f3n de Esmeraldas',\n      eje: '',\n      dia: 'Jueves 1 oct',\n      hora: '12:00',\n      duracion: '',\n      sinopsis: '',\n      elenco: '',\n      direccion: '',\n      imagen: '',\n      youtubeId: ''\n    },\n    {\n      titulo: null,\n      colegio: 'U.E. Jefferson de Guayaquil',\n      eje: '',\n      dia: 'Viernes 2 oct',\n      hora: '10:00',\n      duracion: '',\n      sinopsis: '',\n      elenco: '',\n      direccion: '',\n      imagen: '',\n      youtubeId: ''\n    },\n    {\n      titulo: 'Eco en el s\u00f3tano',\n      colegio: 'U.E. Liceo Los Andes',\n      eje: '',\n      dia: 'Viernes 2 oct',\n      hora: '12:00',\n      duracion: '15 min',\n      sinopsis: 'Un grupo de personas se encuentra encerrado en un s\u00f3tano sin saber c\u00f3mo lleg\u00f3 hasta all\u00ed. Nadie podr\u00e1 salir hasta que se descubra la verdad: qui\u00e9n tiene las pertenencias de Michael. Una obra de misterio y suspenso inspirada en el cuento Los muertos, de James Joyce.',\n      elenco: '11 estudiantes',\n      direccion: 'Delia Pin Lavayen',\n      imagen: '',\n      youtubeId: ''\n    },\n    {\n      titulo: 'Las mariposas son libres',\n      colegio: 'U.E. Jefferson de Salinas',\n      eje: '',\n      dia: 'Lunes 5 oct',\n      hora: '12:00',\n      duracion: '20 min',\n      sinopsis: 'Don, un joven ciego, se muda solo a un modesto departamento de una gran ciudad tras pactar dos meses de independencia con su sobreprotectora madre. All\u00ed conoce a Jill, una espont\u00e1nea vecina con quien surge una estrecha conexi\u00f3n. Su naciente libertad se ve cuestionada cuando la madre reaparece para intervenir y un manipulador productor de cine tienta a Jill con el \u00e9xito profesional, obligando a ambos j\u00f3venes a decidir qu\u00e9 significa realmente ser libres.',\n      elenco: '5 estudiantes',\n      direccion: 'Wilmer Briones Quimi',\n      imagen: '',\n      youtubeId: ''\n    }\n  ];\n\/\/\n  \/* ======================================================================\n     \u2591\u2591 FIN DE LA CONFIGURACI\u00d3N \u2014 no hace falta tocar nada m\u00e1s \u2591\u2591\n     ====================================================================== *\/\n\/\/\n  var $  = function (s, c) { return (c || document).querySelector(s); };\n  var $$ = function (s, c) { return Array.prototype.slice.call((c || document).querySelectorAll(s)); };\n  var root = $('#mes-root');\n  root.classList.add('mes-js');\n\/\/\n  \/\/ WordPress inserta p\u00e1rrafos vac\u00edos entre bloques. Se reconocen porque no\n  \/\/ llevan ning\u00fan atributo, ni hijos, ni texto: los nuestros siempre tienen\n  \/\/ clase o identificador. Se eliminan antes de medir o animar nada.\n  (function limpiaParrafosDeWordPress() {\n    \/\/ Un p\u00e1rrafo sobra si WordPress lo puso: no lleva atributos y no aporta\n    \/\/ texto propio. Lo que haya dentro de los bloques de codigo o de\n    \/\/ estilos no cuenta como texto.\n    function sinTextoPropio(p) {\n      var t = '';\n      for (var j = 0; j < p.childNodes.length; j++) {\n        var c = p.childNodes[j];\n        if (c.nodeType === 3) { t += c.nodeValue; continue; }\n        if (c.nodeType !== 1) continue;\n        if (c.tagName === 'SCRIPT' ? false : c.tagName !== 'STYLE') t += c.textContent;\n      }\n      return !t.trim();\n    }\n    function esSobrante(p) {\n      return p.attributes.length ? false : sinTextoPropio(p);\n    }\n    var sobran = [];\n    var ps = root.getElementsByTagName('p');\n    for (var i = 0; i < ps.length; i++) {\n      if (esSobrante(ps[i])) sobran.push(ps[i]);\n    }\n    \/\/ WordPress puede dejar p\u00e1rrafos vac\u00edos justo antes o despu\u00e9s del\n    \/\/ bloque, fuera de su alcance. Se recogen tambi\u00e9n esos.\n    ['previousSibling', 'nextSibling'].forEach(function (lado) {\n      var v = root[lado];\n      while (v) {\n        if (v.nodeType === 3 ? !v.nodeValue.trim() : false) { v = v[lado]; continue; }\n        if (v.nodeType !== 1) break;\n        \/\/ Los bloques de estilos y de codigo van entre medias: se saltan,\n        \/\/ porque el p\u00e1rrafo sobrante puede quedar detr\u00e1s de ellos.\n        if (v.tagName === 'STYLE' ? true : v.tagName === 'SCRIPT') { v = v[lado]; continue; }\n        if (v.tagName !== 'P') break;\n        if (!esSobrante(v)) break;\n        sobran.push(v);\n        v = v[lado];\n      }\n    });\n    for (var k = 0; k < sobran.length; k++) {\n      var q = sobran[k];\n      if (!q.parentNode) continue;\n      \/\/ Si envolv\u00eda algo (por ejemplo el bot\u00f3n del men\u00fa), se saca antes de\n      \/\/ borrar el p\u00e1rrafo, para no perder el elemento.\n      while (q.firstChild) q.parentNode.insertBefore(q.firstChild, q);\n      q.parentNode.removeChild(q);\n    }\n  })();\n  if (!root) return;\n\/\/\n  var EJES = {\n    leyendas: 'Leyendas y tradiciones',\n    valores:  'Valores humanos y sociales'\n  };\n\/\/\n  \/* --------- Ancho real del viewport (evita scroll horizontal) --------- *\/\n  function setVW() {\n    document.documentElement.style.setProperty('--mes-vw', document.documentElement.clientWidth + 'px');\n  }\n  setVW();\n  window.addEventListener('resize', setVW);\n\/\/\n  \/* ------------------------------ Logo ------------------------------ *\/\n  \/\/ El src ya viene en el HTML para que la imagen empiece a cargar antes de\n  \/\/ que corra este c\u00f3digo. Aqu\u00ed solo se reemplaza si se configur\u00f3 otra ruta\n  \/\/ (por ejemplo, la URL del logo subido a la Biblioteca de WordPress).\n  $$('[data-logo]', root).forEach(function (img) {\n    if (LOGO_URL ? img.getAttribute('src') !== LOGO_URL : false) img.src = LOGO_URL;\n  });\n\/\/\n  \/* ------------------------------ Nav ------------------------------ *\/\n  var nav = $('#mesNav', root);\n  var links = $('#mesLinks', root);\n  var burger = $('#mesBurger', root);\n\/\/\n  burger.addEventListener('click', function () {\n    var open = links.classList.toggle('is-open');\n    burger.setAttribute('aria-expanded', String(open));\n  });\n  links.addEventListener('click', function (e) {\n    if (e.target.closest('a')) cerrarMenu();\n  });\n  function cerrarMenu() {\n    links.classList.remove('is-open');\n    burger.setAttribute('aria-expanded', 'false');\n  }\n  document.addEventListener('keydown', function (e) {\n    if (e.key === 'Escape' ? links.classList.contains('is-open') : false) { cerrarMenu(); burger.focus(); }\n  });\n  document.addEventListener('click', function (e) {\n    if (!links.classList.contains('is-open')) return;\n    if (e.target.closest('.mes-nav__inner')) return;\n    cerrarMenu();\n  });\n\/\/\n  var onScroll = function () { nav.classList.toggle('is-stuck', window.scrollY > 40); };\n  window.addEventListener('scroll', onScroll, { passive: true });\n  onScroll();\n\/\/\n  \/* --------------------- Scroll suave con offset --------------------- *\/\n  root.addEventListener('click', function (e) {\n    var a = e.target.closest('a[href^=\"#\"]');\n    if (!a) return;\n    var id = a.getAttribute('href');\n    if (id.length < 2) return;\n    var t = root.querySelector(id);\n    if (!t) return;\n    e.preventDefault();\n    var y = t.getBoundingClientRect().top + window.scrollY - (nav.offsetHeight - 1);\n    window.scrollTo({ top: y, behavior: 'smooth' });\n  });\n\/\/\n  \/* --------------------------- Polvo\/luz --------------------------- *\/\n  var dust = $('#mesDust', root);\n  if (dust ? !window.matchMedia('(prefers-reduced-motion: reduce)').matches : false) {\n    var frag = document.createDocumentFragment();\n    for (var i = 0; i < 26; i++) {\n      var p = document.createElement('i');\n      var s = (Math.random() * 2.4 + 1).toFixed(1);\n      p.style.cssText =\n        'width:' + s + 'px;height:' + s + 'px;'  + 'left:' + (18 + Math.random() * 64).toFixed(1) + '%;'  + 'top:' + (60 + Math.random() * 40).toFixed(1) + '%;'  + 'opacity:' + (Math.random() * .5 + .2).toFixed(2) + ';'  + 'animation-duration:' + (12 + Math.random() * 16).toFixed(1) + 's;'  + 'animation-delay:-' + (Math.random() * 20).toFixed(1) + 's;';\n      frag.appendChild(p);\n    }\n    dust.appendChild(frag);\n  }\n\/\/\n  \/* ------------------------ Cuenta regresiva ------------------------ *\/\n  var target = new Date(FECHA_FESTIVAL).getTime();\n  var cd = { d: $('#cdD', root), h: $('#cdH', root), m: $('#cdM', root), s: $('#cdS', root) };\n  var pad = function (n) { return n < 10 ? '0' + n : String(n); };\n\/\/\n  function tick() {\n    var diff = target - Date.now();\n    if (isNaN(target)) return;\n    if (diff <= 0) {\n      var box = $('#mesCount', root);\n      if (box) box.innerHTML = '\\x3Cdiv class=\"mes-count__label\">El tel\u00f3n ya se levant\u00f3\\x3C\/div>'  + '\\x3Cdiv class=\"mes-count__grid\">\\x3Cdiv>\\x3Cb>\u00a1EN ESCENA!\\x3C\/b>\\x3C\/div>\\x3C\/div>';\n      clearInterval(timer);\n      return;\n    }\n    var s = Math.floor(diff \/ 1000);\n    cd.d.textContent = Math.floor(s \/ 86400);\n    cd.h.textContent = pad(Math.floor(s \/ 3600) % 24);\n    cd.m.textContent = pad(Math.floor(s \/ 60) % 60);\n    cd.s.textContent = pad(s % 60);\n  }\n  var timer = setInterval(tick, 1000);\n  tick();\n\/\/\n  \/* --------------------------- Estado live --------------------------- *\/\n  var enVivoObra = CARTELERA.filter(function (o) { return o ? o.enVivo : false; })[0];\n  if (enVivoObra) {\n    ['titulo', 'colegio', 'eje', 'hora', 'duracion', 'elenco', 'direccion', 'sinopsis', 'youtubeId']\n      .forEach(function (k) { if (enVivoObra[k]) LIVE[k] = enVivoObra[k]; });\n  }\n\/\/\n  var statusEl = $('#mesStatus', root);\n  var statusTxt = $('#mesStatusTxt', root);\n  var ESTADOS = {\n    en_vivo:      { txt: 'En vivo ahora', off: false },\n    proximamente: { txt: 'Pr\u00f3ximamente',  off: true },\n    finalizado:   { txt: 'Funci\u00f3n finalizada', off: true }\n  };\n  var est = ESTADOS[LIVE.estado] || ESTADOS.proximamente;\n  statusTxt.textContent = est.txt;\n  statusEl.classList.toggle('is-off', est.off);\n  \/\/ Si la funci\u00f3n ya est\u00e1 en el aire, contar los d\u00edas que faltan no tiene\n  \/\/ sentido: se retira la cuenta regresiva.\n  if (LIVE.estado === 'en_vivo') {\n    var caja = $('#mesCount', root);\n    if (caja) caja.style.display = 'none';\n  }\n  \/\/ Sin transmisi\u00f3n activa, la acci\u00f3n destacada de la portada es inscribirse.\n  var heroCta = $('.mes-hero__cta', root);\n  if (heroCta) heroCta.classList.toggle('is-preview', est.off);\n\/\/\n  function setTxt(id, val, fallback) {\n    var el = $(id, root);\n    if (el) el.textContent = val || fallback || 'Por confirmar';\n  }\n  setTxt('#liveTitulo', LIVE.titulo, 'Por anunciar');\n  setTxt('#liveColegio', LIVE.colegio, 'Unidad educativa por confirmar');\n  setTxt('#liveSinopsis', LIVE.sinopsis);\n  setTxt('#liveHora', LIVE.hora);\n  setTxt('#liveDur', LIVE.duracion);\n  setTxt('#liveElenco', LIVE.elenco);\n  setTxt('#liveDir', LIVE.direccion);\n\/\/\n  var liveEje = $('#liveEje', root);\n  if (LIVE.eje ? EJES[LIVE.eje] : false) {\n    liveEje.textContent = EJES[LIVE.eje];\n    liveEje.setAttribute('data-eje', LIVE.eje);\n  } else {\n    liveEje.style.display = 'none';\n  }\n\/\/\n  \/* ---------------------- Reproductor YouTube ----------------------\n     Fachada ligera: no se carga nada de YouTube hasta que el usuario\n     pulsa play. Mejora la velocidad de la p\u00e1gina y evita cookies de\n     terceros en la carga inicial.\n  ------------------------------------------------------------------- *\/\n  var player = $('#mesPlayer', root);\n  var facade = $('#mesFacade', root);\n  var thumb  = $('#mesThumb', root);\n  var camsEl = $('#mesCams', root);\n  var origin = encodeURIComponent(location.protocol + '\/\/' + location.host);\n\/\/\n  \/\/ Acepta una URL de YouTube pegada tal cual, o un identificador suelto.\n  \/\/ Se escribe el \"\\x26\" en lugar del s\u00edmbolo literal porque WordPress lo\n  \/\/ convertir\u00eda en una entidad HTML y romper\u00eda el c\u00f3digo.\n  function extraeId(v) {\n    if (!v) return '';\n    v = String(v).trim();\n    if (\/^[A-Za-z0-9_-]{11}$\/.test(v)) return v;\n    var m = v.match(\/(?:v=|\\\/live\\\/|youtu\\.be\\\/|\\\/embed\\\/|\\\/shorts\\\/)([A-Za-z0-9_-]{11})\/);\n    if (m) return m[1];\n    if (\/^UC[A-Za-z0-9_-]{22}$\/.test(v)) return '';\n    if (\/channel\\\/\/.test(v)) return '';\n    if (window.console) console.warn('Microescena: no se reconoce este enlace de video: ' + v);\n    return '';\n  }\n  function extraeCanal(v) {\n    if (!v) return '';\n    v = String(v).trim();\n    if (\/^UC[A-Za-z0-9_-]{22}$\/.test(v)) return v;\n    var m = v.match(\/channel\\\/(UC[A-Za-z0-9_-]{22})\/);\n    return m ? m[1] : '';\n  }\n\/\/\n  function embedUrl(id, canal, autoplay) {\n    id = extraeId(id); canal = extraeCanal(canal);\n    var base;\n    if (id) {\n      base = 'https:\/\/www.youtube-nocookie.com\/embed\/' + id;\n    } else if (canal) {\n      \/\/ Enlace permanente: siempre reproduce la transmisi\u00f3n activa del canal\n      base = 'https:\/\/www.youtube-nocookie.com\/embed\/live_stream?channel=' + canal;\n    } else {\n      return null;\n    }\n    var sep = base.indexOf('?') > -1 ? '\\x26' : '?';\n    return base + sep + 'rel=0\\x26modestbranding=1\\x26playsinline=1'  + (autoplay ? '\\x26autoplay=1' : '') + '\\x26origin=' + origin;\n  }\n\/\/\n  \/\/ C\u00e1maras realmente configuradas. Si no hay ninguna, se usa LIVE como c\u00e1mara \u00fanica.\n  var CAMS = (CAMARAS || []).map(function (c) {\n    var e = c.enlace || c.youtubeId || c.canalId || '';\n    return { nombre: c.nombre, detalle: c.detalle, youtubeId: extraeId(e), canalId: extraeCanal(e) };\n  }).filter(function (c) { return c.youtubeId ? true : (c.canalId ? true : false); });\n  if (!CAMS.length) {\n    if (LIVE.youtubeId || LIVE.canalId) {\n      CAMS = [{ nombre: 'Transmisi\u00f3n', detalle: '', youtubeId: LIVE.youtubeId, canalId: LIVE.canalId }];\n    }\n  }\n  var camActiva = -1;\n\/\/\n  \/\/ La elecci\u00f3n del espectador se recuerda si recarga la p\u00e1gina.\n  function guardarCam(i) { try { localStorage.setItem('mesCam', String(i)); } catch (e) {} }\n  function camGuardada() {\n    var n = NaN;\n    try { n = parseInt(localStorage.getItem('mesCam'), 10); } catch (e) {}\n    return CAMS[n] ? n : 0;\n  }\n\/\/\n  function pintarCams() {\n    \/\/ El r\u00f3tulo acompa\u00f1a al selector: si no hay al menos dos c\u00e1maras que\n    \/\/ elegir, sobra anunciar una elecci\u00f3n que no existe.\n    var rotulo = $('#mesCamsLabel', root);\n    if (CAMS.length < 2) {\n      camsEl.style.display = 'none';\n      if (rotulo) rotulo.style.display = 'none';\n      return;\n    }\n    if (rotulo) rotulo.style.display = '';\n    camsEl.innerHTML = CAMS.map(function (c, i) {\n      return '\\x3Cbutton type=\"button\" data-cam=\"' + i + '\"' + (i === camActiva ? ' class=\"is-on\"' : '')  + ' aria-pressed=\"' + (i === camActiva) + '\">'  + '\\x3Cspan class=\"mes-cams__n\">' + (i + 1) + '\\x3C\/span>'  + '\\x3Cspan class=\"mes-cams__t\">' + esc(c.nombre)  + (c.detalle ? '\\x3Csmall>' + esc(c.detalle) + '\\x3C\/small>' : '')  + '\\x3C\/span>\\x3C\/button>';\n    }).join('');\n  }\n\/\/\n  \/\/ \u2500\u2500 Cambio de c\u00e1mara \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  \/\/ Recrear el iframe en cada cambio obliga a YouTube a levantar su\n  \/\/ reproductor desde cero. Con la API del reproductor se mantiene vivo y\n  \/\/ solo se le pide otro video, que es bastante m\u00e1s r\u00e1pido. Sigue habiendo\n  \/\/ un \u00fanico video descarg\u00e1ndose a la vez: no se gasta m\u00e1s datos.\n  var ytPlayer = null;     \/\/ instancia de la API, cuando logra crearse\n  var ytPidiendo = false;  \/\/ la librer\u00eda ya se est\u00e1 descargando\n  var ytFallo = false;     \/\/ no se pudo: se usa el m\u00e9todo de siempre\n\/\/\n  function cargarApiYT(cb) {\n    var hecho = false;\n    function una() { if (hecho) return; hecho = true; cb(); }\n    if (window.YT ? window.YT.Player : false) { una(); return; }\n    if (ytFallo) { una(); return; }\n    var antes = window.onYouTubeIframeAPIReady;\n    window.onYouTubeIframeAPIReady = function () {\n      if (typeof antes === 'function') antes();\n      una();\n    };\n    \/\/ Si la librer\u00eda no llega, se sigue adelante con el iframe de siempre.\n    setTimeout(function () { if (!hecho) { ytFallo = true; una(); } }, 6000);\n    if (ytPidiendo) return;\n    ytPidiendo = true;\n    var sc = document.createElement('script');\n    sc.src = 'https:\/\/www.youtube.com\/iframe_api';\n    sc.async = true;\n    sc.onerror = function () { ytFallo = true; una(); };\n    document.head.appendChild(sc);\n  }\n\/\/\n  \/\/ Capa de espera: sin ella la imagen se queda en negro y el cambio parece\n  \/\/ m\u00e1s lento de lo que es.\n  var capa = null;\n  function mostrarCargando(nombre) {\n    if (capa ? !capa.parentNode : true) {\n      capa = document.createElement('div');\n      capa.className = 'mes-player__cargando';\n      capa.setAttribute('role', 'status');\n      capa.innerHTML = '\\x3Cspan class=\"mes-player__giro\" aria-hidden=\"true\">\\x3C\/span>'  + '\\x3Cspan class=\"mes-player__cargando-txt\">\\x3C\/span>';\n      player.appendChild(capa);\n    }\n    $('.mes-player__cargando-txt', capa).textContent = nombre ? 'Cambiando a ' + nombre + '\u2026' : 'Conectando\u2026';\n    capa.style.display = 'flex';\n    clearTimeout(capa.tempo);\n    \/\/ Red de seguridad: la capa nunca se queda pegada.\n    capa.tempo = setTimeout(function () { ocultarCargando(); }, 12000);\n  }\n  function ocultarCargando() {\n    if (!capa) return;\n    clearTimeout(capa.tempo);\n    capa.style.display = 'none';\n  }\n\/\/\n  function verConIframe(c, titulo) {\n    var u = embedUrl(c.youtubeId, c.canalId, true);\n    if (!u) { ocultarCargando(); return; }\n    if (ytPlayer) { try { ytPlayer.destroy(); } catch (e) {} ytPlayer = null; }\n    var f = document.createElement('iframe');\n    f.src = u;\n    f.title = titulo;\n    f.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share';\n    f.setAttribute('allowfullscreen', '');\n    f.setAttribute('referrerpolicy', 'strict-origin-when-cross-origin');\n    f.onload = function () { setTimeout(ocultarCargando, 900); };\n    player.innerHTML = '';\n    capa = null;\n    mostrarCargando(CAMS.length > 1 ? c.nombre : '');\n    player.insertBefore(f, capa);\n  }\n\/\/\n  function crearPlayerYT(c, titulo) {\n    player.innerHTML = '';\n    capa = null;\n    mostrarCargando(CAMS.length > 1 ? c.nombre : '');\n    var hueco = document.createElement('div');\n    player.insertBefore(hueco, capa);\n    try {\n      ytPlayer = new YT.Player(hueco, {\n        host: 'https:\/\/www.youtube-nocookie.com',\n        videoId: c.youtubeId,\n        playerVars: { rel: 0, modestbranding: 1, playsinline: 1, autoplay: 1, origin: location.protocol + '\/\/' + location.host },\n        events: {\n          onReady: function (ev) {\n            var fr = ev.target.getIframe();\n            if (fr) { fr.title = titulo; fr.setAttribute('allowfullscreen', ''); }\n            try { ev.target.playVideo(); } catch (e) {}\n          },\n          onStateChange: function (ev) {\n            if (ev.data === YT.PlayerState.PLAYING) ocultarCargando();\n          },\n          onError: function () { ocultarCargando(); }\n        }\n      });\n    } catch (e) { ytFallo = true; ytPlayer = null; verConIframe(c, titulo); }\n  }\n\/\/\n  function verCamara(i) {\n    var c = CAMS[i];\n    if (!c) return;\n    camActiva = i;\n    guardarCam(i);\n    marcarCam();\n    var titulo = c.nombre + ' \u2014 ITV Festival de Microescena';\n    mostrarCargando(CAMS.length > 1 ? c.nombre : '');\n    \/\/ El enlace permanente de canal no vale para la API: necesita el\n    \/\/ identificador de un video concreto. Esas c\u00e1maras usan el iframe.\n    if (!c.youtubeId) { verConIframe(c, titulo); return; }\n    if (ytPlayer) {\n      try {\n        ytPlayer.loadVideoById(c.youtubeId);\n        var fr = ytPlayer.getIframe();\n        if (fr) fr.title = titulo;\n        return;\n      } catch (e) { ytPlayer = null; }\n    }\n    cargarApiYT(function () {\n      if (camActiva !== i) return;\n      if (ytFallo) { verConIframe(c, titulo); return; }\n      crearPlayerYT(c, titulo);\n    });\n  }\n\/\/\n  \/\/ Se marca el bot\u00f3n activo sin volver a crear los botones: si se rehiciera\n  \/\/ el HTML, quien navega con teclado perder\u00eda el foco al cambiar de c\u00e1mara.\n  function marcarCam() {\n    $$('button', camsEl).forEach(function (b, i) {\n      var on = i === camActiva;\n      b.classList.toggle('is-on', on);\n      b.setAttribute('aria-pressed', on ? 'true' : 'false');\n    });\n  }\n\/\/\n  if (CAMS.length) {\n    var idPortada = CAMS[0].youtubeId;\n    if (idPortada) {\n      thumb.src = 'https:\/\/i.ytimg.com\/vi\/' + idPortada + '\/maxresdefault.jpg';\n      thumb.onerror = function () { thumb.src = 'https:\/\/i.ytimg.com\/vi\/' + idPortada + '\/hqdefault.jpg'; };\n    }\n    pintarCams();\n    facade.addEventListener('click', function () { verCamara(camGuardada()); });\n    camsEl.addEventListener('click', function (e) {\n      var b = e.target.closest('[data-cam]');\n      if (!b) return;\n      verCamara(+b.dataset.cam);\n    });\n  } else {\n    \/\/ Sin ninguna c\u00e1mara configurada: cartel de espera\n    camsEl.style.display = 'none';\n    var rotuloVacio = $('#mesCamsLabel', root);\n    if (rotuloVacio) rotuloVacio.style.display = 'none';\n    facade.disabled = true;\n    facade.innerHTML = '\\x3Cspan class=\"mes-player__scrim\">\\x3C\/span>'  + '\\x3Cspan class=\"mes-player__hint\" style=\"bottom:auto;top:50%;transform:translateY(-50%);'  + 'font-family:var(--f-ser);font-size:1.05rem;letter-spacing:.05em;text-transform:none;'  + 'font-style:italic;color:rgba(245,238,226,.6)\">'  + 'La transmisi\u00f3n aparecer\u00e1 aqu\u00ed el d\u00eda del festival'  + '\\x3C\/span>';\n  }\n\/\/\n  \/* -------------------------- Cartelera -------------------------- *\/\n  var grid = $('#mesGrid', root);\n  var filtersEl = $('#mesFilters', root);\n  var filtro = 'todos';\n\/\/\n  function chip(txt) {\n    return txt ? '\\x3Cspan class=\"mes-card__chip\">' + esc(txt) + '\\x3C\/span>' : '';\n  }\n  function esc(s) {\n    return String(s).replace(\/[\\x26<>\"']\/g, function (c) {\n      return ({ '\\x26': '\\x26amp;', '<': '\\x26lt;', '>': '\\x26gt;', '\"': '\\x26quot;', \"'\": '\\x26#39;' })[c];\n    });\n  }\n\/\/\n  function render() {\n    var html = CARTELERA.map(function (o, i) {\n      o = o || {};\n      var tba = !o.titulo;\n      if (filtro !== 'todos') {\n        if (filtro === 'leyendas' || filtro === 'valores') { if (o.eje !== filtro) return ''; }\n        else if (o.dia !== filtro) return '';\n      }\n      var num = pad(i + 1);\n      var poster = o.imagen\n        ? '\\x3Cimg src=\"' + esc(o.imagen) + '\" alt=\"\" loading=\"lazy\" decoding=\"async\">'\n        : '\\x3Cspan class=\"mes-card__num\">' + num + '\\x3C\/span>';\n\/\/\n      return ''  + '<' + (tba ? 'div' : 'button') + ' class=\"mes-card' + (tba ? ' mes-card--tba' : '') + '\"'  + (tba ? '' : ' type=\"button\" aria-haspopup=\"dialog\" data-obra=\"' + i + '\"') + '>'  + '\\x3Cdiv class=\"mes-card__poster\">' + poster  + (o.enVivo ? '\\x3Cspan class=\"mes-card__live\">\\x3Cspan class=\"mes-dot\">\\x3C\/span>En vivo\\x3C\/span>' : '')  + (o.hora ? '\\x3Cspan class=\"mes-card__time\">' + esc(o.hora) + '\\x3C\/span>' : '')  + '\\x3C\/div>'  + '\\x3Cdiv class=\"mes-card__body\">'  + '\\x3Ch3 class=\"mes-card__title\">' + esc(o.titulo || 'Obra por anunciar') + '\\x3C\/h3>'  + '\\x3Cp class=\"mes-card__school\">' + esc(o.colegio || 'Cupo disponible') + '\\x3C\/p>'  + '\\x3Cdiv class=\"mes-card__chips\">'  + chip(o.eje ? EJES[o.eje] : '') + chip(o.dia) + chip(o.duracion)  + '\\x3C\/div>'  + '\\x3C\/div>'  + '\\x3C\/' + (tba ? 'div' : 'button') + '>';\n    }).join('');\n\/\/\n    grid.innerHTML = html || '\\x3Cp class=\"mes-lead\">No hay obras en esta categor\u00eda todav\u00eda.\\x3C\/p>';\n    var aviso = $('#mesFiltroEstado', root);\n    if (aviso) {\n      var vis = grid.querySelectorAll('.mes-card').length;\n      aviso.textContent = vis === 1 ? '1 obra en la cartelera' : vis + ' obras en la cartelera';\n    }\n  }\n\/\/\n  \/\/ Filtros: ejes + d\u00edas detectados en los datos\n  (function buildFilters() {\n    var opts = [{ k: 'todos', l: 'Toda la cartelera' }];\n    var dias = [];\n    CARTELERA.forEach(function (o) { if (o ? (o.dia ? dias.indexOf(o.dia) < 0 : false) : false) dias.push(o.dia); });\n    dias.forEach(function (d) { opts.push({ k: d, l: d }); });\n    if (CARTELERA.some(function (o) { return o ? o.eje === 'leyendas' : false; })) opts.push({ k: 'leyendas', l: EJES.leyendas });\n    if (CARTELERA.some(function (o) { return o ? o.eje === 'valores' : false; }))  opts.push({ k: 'valores',  l: EJES.valores });\n\/\/\n    \/\/ Se oculta si est\u00e1 desactivada, o si no hay al menos dos categor\u00edas\n    \/\/ reales: con una sola, la barra ofrece \"todo\" y \"lo \u00fanico que hay\".\n    if (MOSTRAR_FILTROS ? opts.length < 3 : true) { filtersEl.style.display = 'none'; return; }\n    filtersEl.innerHTML = opts.map(function (o, i) {\n      return '\\x3Cbutton type=\"button\" data-f=\"' + esc(o.k) + '\"' + (i ? '' : ' class=\"is-on\"') + ' aria-pressed=\"' + (i ? 'false' : 'true') + '\">' + esc(o.l) + '\\x3C\/button>';\n    }).join('');\n    filtersEl.addEventListener('click', function (e) {\n      var b = e.target.closest('button');\n      if (!b) return;\n      $$('button', filtersEl).forEach(function (x) { x.classList.remove('is-on'); x.setAttribute('aria-pressed', 'false'); });\n      b.classList.add('is-on');\n      b.setAttribute('aria-pressed', 'true');\n      filtro = b.dataset.f;\n      render();\n    });\n  })();\n\/\/\n  render();\n\/\/\n  \/\/ Pr\u00f3ximas funciones en la ficha de \"en vivo\"\n  (function nextUp() {\n    var ol = $('#mesNext', root);\n    var next = CARTELERA.filter(function (o) { return o ? (o.titulo ? !o.enVivo : false) : false; }).slice(0, 3);\n    if (!next.length) {\n      ol.innerHTML = '\\x3Cli>\\x3Cb style=\"color:var(--muted);font-weight:300\">La programaci\u00f3n se publicar\u00e1 pr\u00f3ximamente.\\x3C\/b>\\x3C\/li>';\n      return;\n    }\n    ol.innerHTML = next.map(function (o) {\n      return o.hora  ? '\\x3Cli>\\x3Ctime>' + esc(o.hora) + '\\x3C\/time>\\x3Cb>' + esc(o.titulo) + '\\x3C\/b>\\x3C\/li>'  : '\\x3Cli>\\x3Cspan class=\"mes-next__tbc\">Por confirmar\\x3C\/span>\\x3Cb>' + esc(o.titulo) + '\\x3C\/b>\\x3C\/li>';\n    }).join('');\n  })();\n\/\/\n  \/* ---------------------------- Modal ---------------------------- *\/\n  var modal = $('#mesModal', root);\n\/\/\n  grid.addEventListener('click', function (e) {\n    var card = e.target.closest('[data-obra]');\n    if (!card) return;\n    var o = CARTELERA[+card.dataset.obra];\n    if (!o) return;\n\/\/\n    var media = $('#mmMedia', root);\n    var u = embedUrl(o.youtubeId, '', false);\n    media.innerHTML = u\n      ? '\\x3Ciframe src=\"' + u + '\" title=\"' + esc(o.titulo) + '\" allowfullscreen '  + 'referrerpolicy=\"strict-origin-when-cross-origin\" '  + 'allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; picture-in-picture\">\\x3C\/iframe>'\n      : '';\n\/\/\n    var eje = $('#mmEje', root);\n    if (o.eje ? EJES[o.eje] : false) {\n      eje.textContent = EJES[o.eje]; eje.setAttribute('data-eje', o.eje); eje.style.display = '';\n    } else { eje.style.display = 'none'; }\n\/\/\n    $('#mmTitle', root).textContent = o.titulo;\n    $('#mmColegio', root).textContent = o.colegio || '';\n    $('#mmSinopsis', root).textContent = o.sinopsis || '';\n\/\/\n    var facts = [\n      ['D\u00eda', o.dia], ['Hora', o.hora], ['Duraci\u00f3n', o.duracion],\n      ['Elenco', o.elenco], ['Direcci\u00f3n', o.direccion]\n    ].filter(function (f) { return f[1]; });\n    $('#mmFacts', root).innerHTML = facts.map(function (f) {\n      return '\\x3Cli>\\x3Cb>' + esc(f[0]) + '\\x3C\/b>\\x3Cspan>' + esc(f[1]) + '\\x3C\/span>\\x3C\/li>';\n    }).join('');\n\/\/\n    modal.hidden = false;\n    document.body.style.overflow = 'hidden';\n    ultimoFoco = card;\n    var cerrar = $('.mes-modal__x', modal);\n    if (cerrar) cerrar.focus();\n  });\n\/\/\n  var ultimoFoco = null;\n  function closeModal() {\n    modal.hidden = true;\n    $('#mmMedia', root).innerHTML = '';\n    document.body.style.overflow = '';\n    if (ultimoFoco ? ultimoFoco.isConnected : false) ultimoFoco.focus();\n    ultimoFoco = null;\n  }\n  \/\/ El tabulador no debe salirse de la ficha mientras est\u00e1 abierta.\n  modal.addEventListener('keydown', function (e) {\n    if (e.key !== 'Tab') return;\n    var f = $$('button, [href], iframe, [tabindex]:not([tabindex=\"-1\"])', modal)\n      .filter(function (el) { return el.offsetParent !== null; });\n    if (!f.length) return;\n    var pri = f[0], ult = f[f.length - 1];\n    if (e.shiftKey ? document.activeElement === pri : false) { e.preventDefault(); ult.focus(); }\n    else if (e.shiftKey ? false : document.activeElement === ult) { e.preventDefault(); pri.focus(); }\n  });\n  modal.addEventListener('click', function (e) { if (e.target.closest('[data-close]')) closeModal(); });\n  document.addEventListener('keydown', function (e) { if (e.key === 'Escape' ? !modal.hidden : false) closeModal(); });\n\/\/\n  \/* -------------------------- Reveal on scroll -------------------------- *\/\n  $$('.mes-sec__head, .mes-h2, .mes-lead, .mes-two > *, .mes-stats, .mes-ejes, .mes-rules li, .mes-time li, .mes-beca, .mes-contact, .mes-aporte, .mes-live > *, .mes-cartelera-note', root)\n    .forEach(function (el) { if (!el.hasAttribute('data-reveal')) el.setAttribute('data-reveal', ''); });\n\/\/\n  if ('IntersectionObserver' in window) {\n    var io = new IntersectionObserver(function (entries) {\n      entries.forEach(function (en) {\n        if (en.isIntersecting) { en.target.classList.add('is-in'); io.unobserve(en.target); }\n      });\n    }, { rootMargin: '0px 0px -8% 0px', threshold: .08 });\n    $$('[data-reveal]', root).forEach(function (el, i) {\n      el.style.transitionDelay = (Math.min(i % 6, 5) * 55) + 'ms';\n      io.observe(el);\n    });\n  } else {\n    $$('[data-reveal]', root).forEach(function (el) { el.classList.add('is-in'); });\n  }\n\/\/\n  \/\/ Red de seguridad: si a los tres segundos nada se ha revelado, es que el\n  \/\/ observador no est\u00e1 funcionando (pesta\u00f1a oculta, plugin que interfiere\u2026).\n  \/\/ Antes que dejar la p\u00e1gina en blanco, se muestra todo de golpe.\n  setTimeout(function () {\n    if ($$('[data-reveal].is-in', root).length) return;\n    $$('[data-reveal]', root).forEach(function (el) { el.classList.add('is-in'); });\n  }, 3000);\n})();\n<\/script><br \/>\n  <!-- Datos estructurados: ayudan a Google a entender que esto es un evento.\n       Actualiza startDate y endDate cuando se fijen las fechas exactas. --><br \/>\n  <script type=\"application\/ld+json\">\n  {\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"Festival\",\n  \"name\": \"ITV Festival de Microescena\",\n  \"description\": \"Festival intercolegial de micro obras teatrales organizado por el Instituto Superior Tecnologico Universitario de Estudios de Television (ITV), con transmision en linea, para estudiantes de 12 a 18 anos.\",\n  \"startDate\": \"2026-09-29\",\n  \"eventStatus\": \"https:\/\/schema.org\/EventScheduled\",\n  \"eventAttendanceMode\": \"https:\/\/schema.org\/MixedEventAttendanceMode\",\n  \"inLanguage\": \"es-EC\",\n  \"audience\": { \"@type\": \"EducationalAudience\", \"educationalRole\": \"student\" },\n  \"location\": [\n  { \"@type\": \"VirtualLocation\", \"url\": \"https:\/\/itv.edu.ec\" },\n  { \"@type\": \"Place\", \"name\": \"Teatro del ITV\", \"address\": { \"@type\": \"PostalAddress\", \"addressCountry\": \"EC\" } }\n  ],\n  \"organizer\": {\n  \"@type\": \"CollegeOrUniversity\",\n  \"name\": \"Instituto Superior Tecnologico Universitario de Estudios de Television\",\n  \"alternateName\": \"ITV\",\n  \"url\": \"https:\/\/itv.edu.ec\"\n  },\n  \"performer\": { \"@type\": \"PerformingGroup\", \"name\": \"Grupos teatrales de unidades educativas participantes\" }\n  }\n  <\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Festival de Microescena 2026 En vivo Cartelera El festival Bases Cronograma Festival intercolegial de micro obras teatrales Festival&nbsp;deMicroescena Micro obras de hasta 20 minutos, creadas e interpretadas por estudiantes de colegios, sobre un escenario profesional. Transmisi\u00f3n en l\u00ednea\u00b7Desde el 29 de septiembre\u00b7Estudiantes de 12 a 18 a\u00f1os Ver la transmisi\u00f3n Faltan para que suba el &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv\"> <span class=\"screen-reader-text\">Festival de Microescena \u2014 ITV<\/span> Leer m\u00e1s &raquo;<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"disabled","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"enabled","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","footnotes":""},"class_list":["post-22034","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Festival de Microescena \u2014 ITV -<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Festival de Microescena \u2014 ITV -\" \/>\n<meta property=\"og:description\" content=\"Festival de Microescena 2026 En vivo Cartelera El festival Bases Cronograma Festival intercolegial de micro obras teatrales Festival&nbsp;deMicroescena Micro obras de hasta 20 minutos, creadas e interpretadas por estudiantes de colegios, sobre un escenario profesional. Transmisi\u00f3n en l\u00ednea\u00b7Desde el 29 de septiembre\u00b7Estudiantes de 12 a 18 a\u00f1os Ver la transmisi\u00f3n Faltan para que suba el &hellip; Festival de Microescena \u2014 ITV Leer m\u00e1s &raquo;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-14T16:54:43+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv\",\"url\":\"https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv\",\"name\":\"Festival de Microescena \u2014 ITV -\",\"isPartOf\":{\"@id\":\"https:\/\/itv.edu.ec\/sitio\/#website\"},\"datePublished\":\"2026-09-09T15:56:57+00:00\",\"dateModified\":\"2026-09-14T16:54:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/itv.edu.ec\/sitio\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Festival de Microescena \u2014 ITV\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/itv.edu.ec\/sitio\/#website\",\"url\":\"https:\/\/itv.edu.ec\/sitio\/\",\"name\":\"\",\"description\":\"La puerta de entrada a la TV\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/itv.edu.ec\/sitio\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Festival de Microescena \u2014 ITV -","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv","og_locale":"es_ES","og_type":"article","og_title":"Festival de Microescena \u2014 ITV -","og_description":"Festival de Microescena 2026 En vivo Cartelera El festival Bases Cronograma Festival intercolegial de micro obras teatrales Festival&nbsp;deMicroescena Micro obras de hasta 20 minutos, creadas e interpretadas por estudiantes de colegios, sobre un escenario profesional. Transmisi\u00f3n en l\u00ednea\u00b7Desde el 29 de septiembre\u00b7Estudiantes de 12 a 18 a\u00f1os Ver la transmisi\u00f3n Faltan para que suba el &hellip; Festival de Microescena \u2014 ITV Leer m\u00e1s &raquo;","og_url":"https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv","article_modified_time":"2026-09-14T16:54:43+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv","url":"https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv","name":"Festival de Microescena \u2014 ITV -","isPartOf":{"@id":"https:\/\/itv.edu.ec\/sitio\/#website"},"datePublished":"2026-09-09T15:56:57+00:00","dateModified":"2026-09-14T16:54:43+00:00","breadcrumb":{"@id":"https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/itv.edu.ec\/sitio\/festival-de-microescena-itv#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/itv.edu.ec\/sitio\/"},{"@type":"ListItem","position":2,"name":"Festival de Microescena \u2014 ITV"}]},{"@type":"WebSite","@id":"https:\/\/itv.edu.ec\/sitio\/#website","url":"https:\/\/itv.edu.ec\/sitio\/","name":"","description":"La puerta de entrada a la TV","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/itv.edu.ec\/sitio\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/itv.edu.ec\/sitio\/wp-json\/wp\/v2\/pages\/22034","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itv.edu.ec\/sitio\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/itv.edu.ec\/sitio\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/itv.edu.ec\/sitio\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/itv.edu.ec\/sitio\/wp-json\/wp\/v2\/comments?post=22034"}],"version-history":[{"count":20,"href":"https:\/\/itv.edu.ec\/sitio\/wp-json\/wp\/v2\/pages\/22034\/revisions"}],"predecessor-version":[{"id":22064,"href":"https:\/\/itv.edu.ec\/sitio\/wp-json\/wp\/v2\/pages\/22034\/revisions\/22064"}],"wp:attachment":[{"href":"https:\/\/itv.edu.ec\/sitio\/wp-json\/wp\/v2\/media?parent=22034"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}