diff --git a/README.es.md b/README.es.md
index 47f0475..559efd2 100644
--- a/README.es.md
+++ b/README.es.md
@@ -1,90 +1,238 @@
-# Aprende sobre El DOM (Interactivo)
+
-
+# Aprende cómo manipular el DOM con JavaScript
-> Por [@alesanchezr](https://twitter.com/alesanchezr) y [otros colaboradores](https://github.com/4GeeksAcademy/javascript-dom-tutorial-exercises/graphs/contributors) en [4Geeks Academy](https://4geeksacademy.co/)
+[](https://4geeks.com/es/interactive-exercise/the-dom-exercises-es)
+[](https://github.com/learnpack/learnpack)
+[](https://codespaces.new/?repo=4GeeksAcademy/javascript-dom-tutorial-exercises)
-
-[](https://breatheco.de)
-[](https://twitter.com/4geeksacademy)
+
-Este tutorial es parte de un grupo de tutoriales sobre desarrollo web, este repositorio se enfoca solo en el DOM.
+
+
+*Estas instrucciones [también están disponibles en 🇺🇸 inglés](https://github.com/4GeeksAcademy/javascript-dom-tutorial-exercises/blob/HEAD/README.md).*
+
+
+Este tutorial interactivo enseña a manipular el DOM con JavaScript puro a lo largo de 15 carpetas de ejercicios: una introducción y 14 retos autocorregidos. Practicarás `querySelector`, `createElement`, `appendChild`, `innerHTML`, `removeChild`, `childNodes` y `addEventListener`, y terminarás construyendo una lista de tareas funcional. Cada ejercicio corregido trae su `index.html`, su `styles.css`, su `index.js`, un README bilingüe y un archivo de tests de Jest. Duración estimada: 6 horas. Dificultad: fácil.
+
+
+## 📋 Ficha del tutorial
+
++ **Dificultad:** fácil — es el cuarto paso de la ruta recomendada que aparece más abajo.
+
++ **Duración estimada:** 6 horas.
+
++ **Ejercicios:** 15 carpetas dentro de `exercises/` — `00-Welcome` (solo lectura) y 14 ejercicios con tests automáticos.
+
++ **Tecnologías:** JavaScript puro (sin frameworks), HTML y CSS. No hay build ni `npm install` dentro de los ejercicios.
+
++ **Corrección:** `isolated` — cada ejercicio se corrige por separado, con Jest ejecutándose sobre jsdom.
+
++ **Idiomas:** todos los ejercicios tienen `README.md` (inglés) y `README.es.md` (español).
+
++ **Soluciones:** los 14 ejercicios corregidos incluyen un archivo `solution.hide.js` de referencia.
-### Aprenderás los siguientes conceptos:
+## 🎯 ¿Qué vas a aprender?
+
+El DOM (Document Object Model) es el puente entre el HTML que escribes y el JavaScript que lo modifica mientras la página está en marcha. Al terminar estos ejercicios sabrás:
+
++ Seleccionar cualquier elemento de la página con [`document.querySelector`](https://developer.mozilla.org/es/docs/Web/API/Document/querySelector) y leer sus propiedades, como el `id`.
+
++ Cambiar el CSS desde JavaScript a través del objeto `element.style` (`background`, `float` y cualquier otra propiedad).
+
++ Crear etiquetas nuevas con [`document.createElement`](https://developer.mozilla.org/es/docs/Web/API/Document/createElement) e insertarlas con [`appendChild`](https://developer.mozilla.org/es/docs/Web/API/Node/appendChild).
+
++ Montar HTML como texto e inyectarlo con [`innerHTML`](https://developer.mozilla.org/es/docs/Web/API/Element/innerHTML) o con `document.write`.
+
++ Borrar elementos con `removeChild` y entender por qué `childNodes` y `children` no devuelven lo mismo.
+
++ Responder al usuario con [`addEventListener`](https://developer.mozilla.org/es/docs/Web/API/EventTarget/addEventListener) para eventos de `click`, `change` y teclado, actualizando la página sin recargarla.
+
+## 👀 ¿Qué vas a construir?
+
+`exercises/00-Welcome` es una introducción corta y sin test. Las otras 14 carpetas son ejercicios corregidos, cada uno una web diminuta que tienes que terminar:
+
++ **`01` Hello World** — escribe el JavaScript que lanza un `alert` con el texto `Hello World`.
+
++ **`02` Select DOM Element** — selecciona el `
` con `querySelector` y muestra su `id` en un alert.
+
++ **`03` Change Div Background** — cambia el fondo de `#myDiv`, que empieza en verde, a `yellow`.
+
++ **`04` Move DOM Element** — mueve el div `#wulu` poniendo su propiedad CSS `float` en `right` desde JavaScript.
+
++ **`05` Create DOM Element (1)** — crea un `
` con fondo amarillo y el texto "Hello World", y añádelo al body.
+
++ **`06` Create DOM Element (2)** — mete una etiqueta `` dentro del `
` usando la propiedad `innerHTML`.
+
++ **`07` Create DOM list of li** — rellena una variable para que el body muestre un `
` con exactamente tres `
`.
+
++ **`08.1` Remove DOM Element** — elimina el segundo `
` llamando a `removeChild` desde su `parentNode`.
+
++ **`08.2` Remove DOM Element** — haz lo mismo, pero llegando al elemento a través de la colección `childNodes` de `#parentLi`.
+
++ **`09` Render on Click** — crea un `
` amarillo con "Hello World" y añádelo al body cuando se hace clic en `#superDuperButton`.
+
++ **`10` Add li on Click** — añade un `
` nuevo a `#myList` en cada clic del botón.
+
++ **`11` Dynamic HTML String** — concatena el año actual, sacado de `new Date().getFullYear()`, dentro del texto que se imprime con `document.write`.
+
++ **`12` Add Options to the Select** — recorre un array de 7 países, crea un `