{book.age_range} años
{book.category}
/* Portada de libro (placeholder editorial + carga de /covers/{asin}.{ext} si existe) y BookCard. */ (function () { const { useState } = React; // Motivo decorativo por categoría dentro del placeholder function Motif({ icon, color }) { return ; } // Portada: intenta la imagen real; si no existe, placeholder con el título. // ↓ Pon COVERS_READY = true cuando las portadas estén en /public/covers/{ASIN}.{ext} const COVERS_READY = window.FUN_COVERS_READY === true; function Cover({ book, eager }) { const [ok, setOk] = useState(false); const [ratio, setRatio] = useState(null); // ancho/alto real de la portada const c = book.cat; return (