75 Commits
Author SHA1 Message Date
erikghandClaude Opus 5.5 89e54a6e84 feat: rediseño «El documento» en curso, contacto real y enlaces externos
Primitivas y contenido del rediseño (escala tipográfica, Revelar,
MarcaSeccion, Seccion, Antetitulo, SimboloMarca, Resplandor, ClaridadHero,
sección Proceso de ocho etapas, lib/content.ts reestructurado en seis
secciones con alias para las viejas). Mecanismo y FormaTrabajar se retiran.

Encima, lo de esta sesión:
- recorrido: creeer vuelve a responder cada situación en vez de repetirla
  (el alias apuntaba respuesta a situacion); respuestas en plural. Créditos
  de las seis fotos de México.
- contacto: WhatsApp, email (con mailto:) y LinkedIn reales; iconos de las
  redes en el cierre y el footer (IconoRed, trazos de Simple Icons, CC0).
- enlaces: lo externo abre en otra pestaña con noopener y aviso para
  lectores de pantalla (lib/enlaces.ts); mailto y anclas se quedan.
- Proceso: las ocho tarjetas no aparecían nunca en móvil (amount 0.3 sobre
  una lista de ~3000px); ahora cada una se revela sola. El ≡ de la 08 ya no
  tapa un entregable, título equilibrado, etiqueta a 12px, sin elevar al
  hover lo que no es clicable.
- Disciplinas: la frase «No son la promesa — son los medios» gana peso y
  se agrupa con título e ilustración; sin cortes huérfanos en móvil.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 11:27:20 -06:00
erikgh 97fd0a0224 feat(hero): el astrolabio deja paso a «Las Tres Líneas» — caos, ≡, escalera, crecimiento 2026-08-21 15:02:42 -06:00
erikgh 544c02ff1f feat: agregar sección 'Así es trabajar conmigo'
Nueva sección FormaTrabajar con 5 tarjetas: Metodología, Quién participa,
De dónde partimos, Qué te llevas y Duración. Inspirada en la estructura
de en-ti.com, adaptada a la identidad creeer.

- Nuevo componente FormaTrabajar.tsx (grid de tarjetas con TarjetaSpotlight)
- Nuevo ícono 'reloj' en Icono.tsx
- Contenido en lib/content.ts (copy derivado de fuentes aprobadas)
- Insertada entre Mecanismo y Disciplinas en page.tsx
2026-08-03 16:44:46 -06:00
erikghandClaude Opus 5 e0ce0d3b22 refactor(recorrido): fuera la cabecera; el escenario abre la sección
Con el recorrido en segundo lugar, esa franja clara quedaba como una
lasca entre el azul del hero y el escenario oscuro. Se va: la sección
arranca directamente en la secuencia anclada, y su fondo pasa a azul para
que cualquier costura sea oscura.

Quitarla dejaba la sección sin ningún encabezado, que en una pieza de
5.400px es un agujero en el esquema del documento — para un lector de
pantalla las seis parejas colgarían de nada. El rótulo «¿Te reconoces?»,
que ya estaba en el escenario, pasa a ser el <h2>. Hay una prueba que
exige que exista y que sea h2.

Actualizado también el comentario de orden en page.tsx, que describía una
disposición que ya no es la del archivo.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 16:20:23 -06:00
erikghandClaude Opus 5 d4bff33e47 feat(dolores): cada frase se resuelve al llegar, palabra a palabra
Prometí en la vista previa que entrarían «de una en una al bajar» y lo
que monté las traía a las cuatro a la vez: un stagger de contenedor se
dispara con la sección al 30% en pantalla, y la sección mide 1.200px, así
que el lector veía aparecer todas las frases mucho antes de llegar a
ellas.

Ahora cada cita usa TextoDesenfoque, que lleva su propio observador: cada
una espera su turno y entonces se resuelve desde un desenfoque, palabra a
palabra. Es el dolor entrando en foco, y es el mismo recurso que ya usan
el hero y la frase ancla — vocabulario del proyecto, no un invento nuevo.

Verificado midiendo la opacidad de la palabra animada de cada cita: al
asomar la sección, las dos primeras están resueltas y las dos últimas a
cero; a media sección, las cuatro. Antes de corregir el selector medía el
span envoltorio y daba unos en todas, que no significaba nada.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 16:07:00 -06:00
erikghandClaude Opus 5 672c567681 feat(header): la barra también pasa a azul profundo
Wordmark en negativo, CTA en dorado y borde inferior en blanco al 10%.
Con el hero en azul, una barra blanca encima partía la apertura en dos;
ahora la parte de arriba de la página es un bloque.

Sobre las secciones claras de más abajo deja de leerse como cromo del
navegador y pasa a leerse como la barra de la marca, con el dorado del
CTA sosteniendo el contraste sobre cualquiera de los tres fondos.

Verificado sobre los tres: el hero azul, una sección blanca y el
escenario fotográfico del recorrido.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 15:58:27 -06:00
erikghandClaude Opus 5 bd14ae5f29 feat(hero): el hero pasa a azul profundo, con toda su capa gráfica
Fondo azul, wordmark en negativo con el ≡ dorado, titular en blanco
manteniendo «más esfuerzo» y el subrayado de «más claridad» en dorado,
la secuencia de líneas al 70% de blanco y el campo de puntos invertido.

CTA gana una variante `ghostDark`. Los nombres de las variantes dicen
sobre qué fondo se apoya el botón, no de qué color es: `light` y `ghost`
son para secciones claras, `dark` y `ghostDark` para azul profundo.
Dejar el hero con `light` habría pintado azul sobre azul.

El header no se toca: ya flota como barra blanca sobre FraseAncla,
Mecanismo y Cierre, así que sobre el hero hace lo que ya hacía en media
página.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 15:54:59 -06:00
erikghandClaude Opus 5 99c9f77547 feat(dolores): las cuatro frases se apilan en vez de desfilar
El rótulo en bucle era idea mía y era peor que las tarjetas que sustituía.
Medido contra el tono bloqueado de la marca —«seguridad + cercanía»,
«simple, directo, limpio»— un marquee es lo contrario de los tres:
arrastra la asociación con banner de rebajas y teletipo. Y cortaba cada
frase por los dos bordes, así que ninguna llegaba entera.

Ahora entran de una en una al bajar y se quedan. El peso lo da el montón,
no el recorrido: cada una cae con una sangría distinta —irregular a
propósito, una regular se lee como lista y una irregular como cuatro
voces en la misma habitación— y al llegar la cuarta el lector las ve
todas juntas. Debajo, el remate alineado a la izquierda y quieto.

Se acabó la duplicación: el bucle necesitaba pintar cada frase cuatro
veces y esconder tres de los lectores de pantalla. Una frase, una vez.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 15:50:17 -06:00
erikghandClaude Opus 5 7df0933709 perf(recorrido): las seis fotos dejan de descargarse antes del primer scroll
Medido sobre el export estático: la página pedía 2.067 kB antes de que el
visitante moviera un dedo, y 1.243 de ellos eran las seis fotografías del
recorrido. `loading="lazy"` no salvaba nada, porque el umbral de distancia
de Chrome se traga una sección que empieza por debajo de los 2.000px.

Ahora la escena solo monta su fotografía cuando el escenario está a menos
de pantalla y cuarto, y solo la de la escena activa y sus vecinas. La
siguiente entra en el documento una escena antes de hacer falta, que da
tiempo de sobra a llegar.

Carga inicial: 2.067 kB → 821 kB, con cero imágenes del recorrido. El
resto llega repartido según avanzas. Verificado escena por escena en el
export: 2 o 3 imágenes montadas a la vez, todas cargadas.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 15:34:25 -06:00
erikghandClaude Opus 5 159b03dc5e fix(recorrido): la cabecera de la sección tenía cero aire por debajo
El escenario anclado arranca justo donde termina el Container de la
cabecera, y ese Container solo llevaba padding arriba. El fondo oscuro
empezaba a tres píxeles de la última línea del titular, así que la
entrada a la sección se leía como una franja clara estrujada entre dos
bloques oscuros en vez de como su apertura.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 15:16:51 -06:00
erikghandClaude Opus 5 9a8534f10b feat(disciplinas): la tarjeta y su hebra pasan a ser la misma cosa
El dibujo de convergencia llevaba desde el principio al lado de las tres
tarjetas sin relación con ellas: tres objetos sueltos en una página. Al
señalar una disciplina, su hebra se enciende en dorado y engorda, y las
otras dos se apagan al 35%.

Es mejora solo con puntero, y a propósito: no esconde nada. Las tres
tarjetas y las tres hebras están completas sin tocar el ratón, así que
quien no lo tenga no pierde nada.

Verificado en navegador, no solo en jsdom: al señalar «Digital» la hebra
central queda en rgb(196,148,46) —el dorado de marca— a 3,5px, y las
otras en rgba(170,170,170,0.35) a 2px.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 15:08:19 -06:00
erikghandClaude Opus 5 7af36e2a93 feat(dolores): las cuatro frases dejan de estar ordenaditas y pasan a moverse
Eran cuatro tarjetas alineadas describiendo desorden — lo contrario de lo
que dicen. Ahora cruzan la sección en dos filas lentas y en direcciones
opuestas, a sangre, mientras el remate en dorado no se mueve. Ese
contraste es el argumento de la sección.

Siguen legibles a propósito. Bajarlas a un susurro habría dado mejor
textura y habría tirado a la basura la voz del cliente: son palabras
suyas, verbatim de la diapositiva 3. El murmullo lo hace el movimiento.

Cada frase se pinta cuatro veces —dos por fila para que el bucle no tenga
costura, y dos filas— pero solo una llega a los lectores de pantalla. Sin
eso recitarían la lista entera de dolores y luego la recitarían otra vez.
Hay una prueba que lo exige.

Con prefers-reduced-motion no hay rótulo: las cuatro frases se leen
quietas a dos columnas.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 15:01:37 -06:00
erikghandClaude Opus 5 c1f611e9ec feat(pasos): el numeral pasa a ser el gráfico en Mecanismo y ComoEmpezar
Las dos secciones de pasos toman prestado el recurso del recorrido: la
cifra enorme y casi transparente. En Mecanismo sigue al paso activo del
autoplay, así que la sección respira sin pedirle atención a nadie. En
ComoEmpezar el numeral pequeño en dorado crece y se apaga, y el acento
dorado se queda en el icono, para que no compitan dos marcadores.

El objetivo no es añadir efectos: es que el recorrido no parezca de otra
página. Mismo lenguaje, distinto contenido.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 14:54:26 -06:00
erikghandClaude Opus 5 d539847ae1 feat(recorrido): fotografía empresarial en lugar de metáfora de paisaje
Cinco de las seis imágenes cambian a un registro corporativo, cada una
atada a lo que dice su fotograma: un distrito financiero todavía en obra
para «el siguiente salto no tiene mapa»; una sala de reuniones vacía para
ordenar antes de escalar; una pantalla de bolsa demasiado densa para
leerse, para la operación más compleja que el negocio; un panel de
salidas para los mercados a los que aún no has volado; y un skyline de
torres para los frentes abiertos.

La cosechadora se queda en rentabilidad: Commons no tiene nada de
registro empresarial y libre de marcas para «tu esfuerzo dejó de
traducirse en resultado», y la cosecha sigue siendo la mejor metáfora
disponible de esfuerzo convertido en resultado.

Descartadas por riesgo, no por estética: el parqué del NYSE (marca
enorme, banderas y gente identificable) y el panel de Ginebra sin
recortar (rótulo de Rolex). El panel va recortado.

Contraste verificado sobre página hidratada: peor punto 7,34:1.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 14:45:01 -06:00
erikghandClaude Opus 5 6078318b10 feat(recorrido): película negra en la pregunta, en vez de blanca
El fotograma de la pregunta pasa de velo claro a negro al 66%, y su
titular de azul profundo a blanco. La respuesta conserva el azul de
marca, así que las dos mitades siguen distinguiéndose —negro neutro
frente a azul— además de por quién habla.

Con ellas se van al blanco la cifra de fondo y los puntos del patrón, que
sobre negro eran invisibles.

Contraste medido sobre página verificada como hidratada: el peor punto de
los ocho fotogramas es 7,23:1, por encima del 7:1 de AAA incluso para
texto normal. Al 58% bajaba a 5,33:1 —válido para titular, escaso— y de
ahí el 66%.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 14:31:02 -06:00
erikghandClaude Opus 5 e2396848ff feat(recorrido): los velos ceden para que se vea la fotografía
El velo claro baja de 0,90 a 0,72 y el azul de 0,93 a 0,80. La carretera,
los andamios y el trigo pasan de insinuarse a leerse, sin que la foto
llegue nunca a mandar sobre el color de marca.

Medido, no estimado: ocultando el texto y fotografiando solo el fondo que
queda detrás de cada titular, el peor contraste de los ocho fotogramas es
7,62:1 — por encima del 7:1 que pide AAA incluso para texto normal, y
este es de titular. A 0,66/0,76 bajaba a 6,32:1, que sigue siendo válido
para texto grande pero deja poco margen; de ahí el punto intermedio.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 13:04:09 -06:00
erikghandClaude Opus 5 156f78c5a8 feat(recorrido): una fotografía por punto, bajo las capas azul y blanca
Cada punto de inflexión trae su imagen de fondo, relacionada con lo que
plantea: una carretera de montaña sin final visible para «el siguiente
salto no tiene mapa», un edificio a medio construir, la cosecha —el
esfuerzo convertido en resultado—, cables cruzando el cielo, un puerto de
contenedores, una ciudad entera a la vez.

Pasan por FondoFoto, que las funde en luminosidad sobre el degradado azul
→ dorado: ninguna aporta color propio. Encima, el velo claro sostiene la
pregunta en azul y el velo azul se lleva el fotograma entero para la
respuesta. La foto da grano, nunca manda.

Todas de Wikimedia Commons con licencia de reuso, acreditadas en
creditosFotos. Descarté la del enredo de cables sobre una calle: bajo el
velo seguía leyéndose el rótulo de un bar ajeno.

El test del footer fijaba dos créditos a mano; ahora cuenta contra la
propia lista, que es el único sitio donde se hace cumplir la atribución.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 12:56:30 -06:00
erikghandClaude Opus 5 8f1fd2a74d feat(recorrido): el wordmark encabeza la respuesta, a escala de quien habla
Firmar debajo dejaba la respuesta sonando a voz de la propia página hasta
la última línea. Ahora cre≡er va delante de la frase y a tamaño lg (260px
en escritorio): antes de leer, ya sabes quién contesta.

md eran 87px —la escala del logotipo compuesto, más pequeña que el propio
texto de la respuesta— y se leía como pie de foto.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 12:33:22 -06:00
erikghandClaude Opus 5 3f65a2a2c3 feat(recorrido): el fotograma es el mensaje, y la respuesta llega en azul
Fuera tarjetas: la situación va a tamaño de titular sobre el fondo claro,
y al bajar el escenario entero se vuelve azul profundo para la respuesta
de creeer, en blanco y del mismo tamaño. No es una tarjeta sobre la
página del lector, es el terreno de creeer.

El rótulo del punto se repite en la respuesta a propósito: como solo hay
una cosa en pantalla, es lo único que la ata a la pregunta que contesta.
El test lo fija con esa razón escrita.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 12:26:32 -06:00
erikghandClaude Opus 5 253ff26fa2 fix(recorrido): un fotograma, una cosa
La pregunta y la respuesta compartían fotograma: la tarjeta de creeer
entraba debajo de la del lector y se veían las dos a la vez. El flujo que
pidió la dueña es pregunta → scroll → respuesta → scroll → pregunta, con
una sola cosa en pantalla cada vez.

Las dos tarjetas pasan a ocupar la misma celda de la rejilla, así que la
segunda toma el escenario que deja la primera en vez de apilarse bajo
ella, y entran desde márgenes opuestos para que el cambio se lea como un
relevo. Verificado tiempo a tiempo: los doce muestran exactamente una.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 12:18:23 -06:00
erikghandClaude Opus 5 379d80b915 fix(recorrido): no se puede quedar entre dos estados
Las tarjetas iban atadas a la posición del scroll, así que cualquier
punto intermedio era un fotograma válido: parando a media rueda, la
tarjeta de creeer se quedaba como una losa gris translúcida y parecía un
fallo de render.

Ahora el scroll solo elige el tiempo —doce: pregunta, respuesta,
pregunta…— y las tarjetas animan hacia ese tiempo por duración. Pares
donde pares, aterrizan. Verificado en 41 paradas repartidas por la
sección: cero opacidades a medias.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 11:58:08 -06:00
erikghandClaude Opus 5 81c36bb657 feat(recorrido): la conversación como tarjetas, fijada al scroll
La sección se ancla una pantalla y avanza con el scroll: llega la
tarjeta de la pregunta, se te devuelve la de creeer, y al seguir bajando
entra la siguiente. Cifra fantasma, raíl de posición y barra de avance
para saber dónde estás. Con prefers-reduced-motion no hay anclaje ni
escenas: las seis parejas se leen seguidas.

Dos fallos corregidos en el camino:
- las escenas se cruzaban superpuestas y quedaban ilegibles las dos;
  entrada y salida ya no se solapan.
- el rótulo se posicionaba con left-0 dentro de Container, que resuelve
  contra la caja de padding e ignora su px-6; en móvil cortaba la
  primera letra.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 11:52:52 -06:00
erikghandClaude Opus 5 90a35714f2 feat(recorrido): la conversación se responde al bajar, y el lector puede gobernarla
Cada respuesta llega cuando su par alcanza el centro de la pantalla: la
regla dorada se dibuja y el bloque entra. El estado solo avanza, así que
nada se apaga por detrás del lector. El scroll no es el único mando —
hover y foco de teclado llevan al mismo sitio.

Corrige un fallo que las pruebas no podían ver: Framer resuelve la
variante escribiendo `opacity: 1` en el style inline, que gana a la clase
opacity-0 de Tailwind. El revelado no ocurría; solo se animaba la regla,
que es un transform que Framer no toca. La entrada y el revelado viven
ahora en elementos distintos, con una prueba que lo fija.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 11:33:56 -06:00
erikghandClaude Opus 5 a200346780 chore: retira Carrusel, sin consumidores desde que el recorrido se apila
PuntosInflexion era el único que lo montaba. Se va también la referencia
que le quedaba colgando en el comentario de useAutoStep.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 11:15:39 -06:00
erikghandClaude Opus 5 c1a5e79c63 feat(recorrido): los seis puntos dejan de ser tarjetas y pasan a contestar
Cada punto de inflexión enuncia ahora la situación en segunda persona y
creeer responde qué hace al respecto. 01 y 05 son los dos intercambios
que la dueña improvisó en la llamada del 31/jul, redactados.

El test de segunda persona cazó cuatro situaciones impersonales que yo
había escrito ("El esfuerzo dejó de traducirse en resultado" no
interpela a nadie). Se corrigió el copy, no el test.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 11:14:57 -06:00
erikghandClaude Opus 5 a9d1f44df2 feat(recorrido): ParDialogo — la situación y la respuesta como un intercambio
Las dos voces se distinguen por tres cosas a la vez —etiqueta de quien
habla, columna y regla lateral—, nunca solo por color.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 11:12:24 -06:00
erikghandClaude Opus 5 2383e63bc5 feat(hilo): retira el hilo conductor de la página
La dueña pidió quitarlo. Con él se van las dos cosas que solo existían
para sostenerlo: el `relative` de <main> —ninguna sección lo necesita,
todas son relative por su cuenta salvo Disciplinas, que no tiene hijos
absolutos— y el export RADIO_BARRA, sin consumidores.

BARRAS_SIMBOLO se queda como forma canónica del ≡ aunque ya nadie dibuje
las barras: LINEAS_SIMBOLO se deriva de ella y el test que obliga a las
dos representaciones a coincidir es lo que mantiene honesta la geometría
frente al Manual.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 11:11:36 -06:00
erikghandClaude Opus 5 fa86605b39 feat(diseño): los diez arreglos de la revisión visual
Revisada la página con Chromium a 1440x900 y 390x844 en nueve alturas de
scroll, y verificado cada cambio contra capturas nuevas.

- El ≡ deja de leerse como icono de menú. lib/simbolo.ts se anunciaba como
  single source of truth pero no coincidía con Wordmark.tsx, que traza la
  marca con las proporciones medidas del Manual: barra de largo 5.919× su
  grosor, hueco de 2×, extremos de píldora. Ahora se derivan de ahí. De
  paso, las líneas se meten medio grosor por cada extremo: el remate
  redondo alargaba el trazo un grosor entero sobre la barra que debía
  reproducir.
- Banda: 12px en escritorio y 7px en móvil vía CSS (14px era el 3,6% de
  una pantalla de 390px y partía los párrafos), opacidad al 18%, y muelle
  de 90/30 a 210/40 — sobreamortiguado tardaba ~2s en asentar y la punta
  se arrastraba a media pantalla. El punto suelto que aparecía centrado
  arriba al cargar era el remate redondo pintándose en el origen con
  longitud cero: ahora la opacidad sigue al avance.
- Ritmo vertical un 25-30% más apretado en las diez secciones. La página
  pasa de 8.061 a 7.457px sin tocar contenido.
- Números 01-06: de marca de agua de 48px al 6% (que chocaba con títulos
  y reglas) a índice dorado sentado sobre la regla.
- Hero: los dos CTA al mismo ancho en móvil, el patrón de puntos fuera
  del logotipo, y la secuencia visible en todos los tamaños — oculta bajo
  lg dejaba el hero del móvil sin ninguna pieza gráfica. La convergencia
  de la variante "hero" se cierra más para que se lea como líneas
  buscando su eje y no como un garabato tachado.
- Estratega: fuera la retícula de puntos del retrato, que parecía el
  recuadro de imagen rota del navegador; la etiqueta del 30+ cabía en
  menos de lo que mide "construyendo" y salía en tres líneas.
- El nudo de Dolores, más pequeño y con algo más de contraste.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 16:34:07 -06:00
erikghandClaude Opus 5 174fcb855a fix(hilo): la banda alargaba el documento 5.800px de vacío
Un <svg> con viewBox es un elemento reemplazado con proporción intrínseca
(100:1200). Al dimensionarlo con top-0 + bottom-20 y dejar la altura en
auto, el navegador la resolvía desde el ancho — 1152 × 12 = 13.824px — y
esa altura ganaba silenciosamente a `bottom`.

Consecuencias, todas visibles en el navegador y ninguna en los tests:
- 5.840px de blanco vacío scrolleable por debajo del footer.
- scrollYProgress repartido sobre 13.901px en vez de 8.061, así que el
  trazo nunca terminaba sobre contenido real.
- la onda estirada 1,8x de más, otra vez casi recta.

Altura explícita con h-[calc(100%-5rem)], y test que lo fija: jsdom no
hace layout, así que el guardián es la clase.

El trazo pasa a completarse a mitad de scroll (FIN 0.85 → 0.5). Con 0.85
la punta se quedaba a media pantalla durante el 42% de la página, que es
justo lo que se leía como "sin terminar".

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 16:11:41 -06:00
erikghandClaude Opus 5 3d3d5b2f9a test(hero): la prueba de la metáfora ya no pasa con cualquier svg
Sólo comprobaba que hubiera algún svg, así que seguía en verde aunque
SecuenciaClaridad desapareciera del hero: los campos de puntos bastaban.

Ahora exige las líneas de la secuencia (18, y ninguna viene de otra
parte — FondoPuntos dibuja círculos) y que ninguna lleve data-resolucion:
el hero plantea la tensión, resolverla es cosa de FraseAncla.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 16:03:22 -06:00
erikghandClaude Opus 5 20a41c6d1a chore: retira SimboloTresLineas y pasa los comentarios a inglés
SimboloTresLineas se quedó sin consumidores cuando SecuenciaClaridad
ocupó sus dos sitios (hero y FraseAncla). Sólo lo usaba su propio test.
La geometría del ≡ ya vive en lib/simbolo.ts, así que no se pierde nada.

Los cinco comentarios de código que quedaban en español pasan a inglés,
como pide CLAUDE.md. Los créditos de foto se quedan en español: son
atribución, y el footer que los recoge está en español.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 16:01:55 -06:00
erikghandClaude Opus 5 3c2185e200 fix(hilo): la banda recupera su grosor y remata en el ≡
El grosor nunca se decidió: la primera versión ocupaba toda la columna,
así que el viewBox se estiraba por 11.5 y un strokeWidth de 1.5 se
pintaba a ~17px reales. Al mudar el hilo a una banda de 56px el mismo
valor quedó en 0.84px, y con eso dejó de leerse.

- Grosor fijado en 14px reales con non-scaling-stroke, ya no heredado
  del escalado del viewBox.
- Banda de vuelta a toda la columna: ±184px de recorrido lateral.
- Cuatro ondulaciones largas en vez de una sola (que se aplanaba) o
  diez cortas (que se leían inquietas).
- El trazo termina al 85% del scroll: colgado del scroll de página sólo
  llegaba al 100% pasado el footer, así que el final no se veía nunca.
- Remata en el ≡ del wordmark, con la geometría de lib/simbolo.ts. Es
  lo que pedía el spec y era lo que faltaba.

Test nuevo que exige stroke-width >= 10: el grosor ya se había perdido
dos veces por accidente.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 15:57:54 -06:00
erikghandClaude Opus 5 367e769f5e feat(dolores): el nudo al centro para que el hilo lo atraviese
El nudo vivía arriba a la derecha, donde el hilo conductor no lo tocaba.
Centrado, el hilo lo atraviesa: el dolor cosido por lo mismo que lo va a
desatar, y el remate "se resuelve con una estrategia clara" queda justo
debajo.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 15:33:17 -06:00
erikghandClaude Opus 5 29837022ce refactor(ilustraciones): grosores unificados a la escala 1.5/2/3
El nudo, la bifurcación y la convergencia usaban 2.5 y 3.5 sueltos, así que
las tres se veían de pesos distintos puestas una al lado de otra.

Un test de contrato por ilustración exige ahora que todo trazo pertenezca a
{1.5, 2, 3}, de modo que la escala no se pueda romper en silencio más
adelante. SecuenciaClaridad queda fuera a propósito: resuelve en las barras
reales del ≡ y su grosor lo manda LINEAS_SIMBOLO.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 15:32:10 -06:00
erikgh 2296fa4868 feat(inflexion): la curva que se dobla en el punto, sin fork 2026-07-31 12:15:51 -06:00
erikgh aa6b348674 feat(hilo): el conductor baja visible por el centro, tras el texto 2026-07-31 12:14:47 -06:00
erikgh 20924544d4 feat(movimiento): un solo autoplay, tres pasos legibles y parallax en las fotos
ComoEmpezar deja de rotar pasos: las tres anotaciones se leen de una, sin
botones ni opacidad. Mecanismo conserva su autoplay pero distingue el paso
activo por borde y elevación, no apagando los demás. Las dos fotos
(fondo del Mecanismo y panel del ComoEmpezar) reciben un parallax suave
ligado al scroll de página.

El test de autoplay que Comompezar tenía se retira: afirmaba el
comportamiento que este cambio borra, y choca con el test nuevo que pide
cero botones.
2026-07-31 11:46:05 -06:00
erikgh 40f8f74d1d feat(ritmo): dos niveles de titular y alternancia de fondos 2026-07-31 11:44:00 -06:00
erikgh d447239542 feat(header): progreso de lectura y compactado al bajar 2026-07-31 11:42:09 -06:00
erikgh a2fa730b7b feat(estratega): marco line-art listo para el retrato real 2026-07-31 11:41:09 -06:00
erikgh 3cb2b1f78b feat(disciplinas): tres hebras que confluyen en una estrategia 2026-07-31 11:40:23 -06:00
erikgh ca949f35c2 feat(para-quien): la bifurcación dibujada junto al split sí/no
La ruta del 'no' se revela por opacidad (no por pathLength): el stroke
dasharray '1 8' sobrevive y el camino queda realmente punteado, en lugar
de que framer-motion lo pise con el dasharray que usa para dibujar el
trazo. El test afina la aserción al valor '1 8' para no contar la
inyección de pathLength en las dos rutas sólidas.
2026-07-31 11:39:12 -06:00
erikgh 2fa1e73764 feat(dolores): el nudo que no se deshace 2026-07-31 11:25:59 -06:00
erikgh 0239d4ac15 fix(grafico): HiloConductor a la banda lateral, con stacking explícito
El hilo pintaba encima del texto en las secciones sin position:relative
(Dolores, Disciplinas, Estratega, ComoEmpezar) y detrás del texto en las
que sí la tienen, por el orden de pintado del navegador. Se mueve a la
banda vacía a la izquierda de la columna max-w-content (oculto bajo 2xl,
donde no hay margen seguro) y gana un z-index explícito por debajo del
header.
2026-07-31 11:25:34 -06:00
erikgh d6453ce197 feat(frase-ancla): la secuencia resuelve en el ≡ sobre la frase 2026-07-31 11:22:37 -06:00
erikgh a03b6c1f92 feat(hero): la metáfora de marca sustituye al carrusel de dolores 2026-07-31 11:16:46 -06:00
erikgh bd16de2aa3 fix(grafico): SecuenciaClaridad usa el grosor de su propia barra
Cada línea resuelta tomaba el grosor de LINEAS_SIMBOLO[0] sin importar a
qué barra pertenecía; funcionaba por coincidencia porque las tres barras
del manual comparten height: 8. Se indexa ahora por DISPERSAS[i].barra, y
se agrega una prueba de regresión que fija el grosor de cada línea al de
su propia barra (derivado de LINEAS_SIMBOLO, no hardcodeado).
2026-07-31 11:14:02 -06:00
erikgh a900bdd99d feat(grafico): HiloConductor — la línea dorada que cose la página 2026-07-31 11:09:59 -06:00
erikgh 6783e32324 feat(grafico): SecuenciaClaridad — la metáfora del manual, dibujada 2026-07-31 11:04:21 -06:00
erikgh 1b1b39c67f refactor(motion): extraer useEnVista, compartido por las ilustraciones 2026-07-31 10:58:22 -06:00