# Cómputo · Workout Un instrumento de precisión: las fotos reales son muestras analizadas, la ficha Full Body calcula sus totales en vivo y el cierre se rellena como una terminal. ## Momentos firma - Visor de muestras en el hero: hero-1…4 con enfoque óptico, retícula que inspecciona muñequera / barra · moleteado / magnesio (sigue al puntero en escritorio), lecturas X/Y y contador 01/04 tocable. - Método en cuatro paneles con diagramas SVG que se trazan: variables → revisión → plan; 3 × 8–12 con RIR 1 (fila real de la prensa); pierna primero → tren superior (orden real de la ficha A); ciclo N → N+1 (= patrones, Δ variantes y carga). - Ficha Full Body como instrumento central: tabla real 5 × 5 con barritas de rango, Σ series / Σ reps / rangos calculados por JS desde las celdas, pestañas A/B/C con resorte y semana tipo de cada split en barras. - Planes con toggle 1 mes / Trimestral −15%: rodillo de precio, etiqueta "MXN pago único" ↔ "MXN / 3 meses (prov.)", fórmula visible "399 × 3 × 0.85 ≈ 1,017" y WhatsApp prellenado que cambia con la modalidad. - Cierre "¿LISTO PARA EMPEZAR?" en mono 800 de contorno que se rellena línea a línea con cabezal de escaneo y cursor de terminal; polvo de magnesio en canvas (puntos y cruces) que se aparta del dedo o del puntero. ## Decisiones - Las fotos no van a sangre: aparecen como "muestras" dentro de paneles con cabecera técnica, para humanizar sin romper el lenguaje de instrumento. El HUD solo nombra lo que se ve en cada foto. - Visor 4:3 en móvil y 16:9 en escritorio; las etiquetas y la retícula se remapean al recorte de `object-fit:cover` con `--ox/--sx` y unidades de contenedor (transform, sin layout por cuadro). - Totales de la ficha calculados en vivo desde la tabla (series × reps, mínimos y máximos), con los mismos valores ya escritos en el HTML para que se lean sin JS. Ninguna cifra nueva. - Tabla en móvil: cada fila en dos líneas (ejercicio + Series/Reps/RIR/Descanso con etiqueta), roles ARIA explícitos; no se oculta Descanso ni se abrevian nombres. Fichas B/C y semana tipo en pestañas; la A se ve sin interacción y sin JS se ven las tres. - Revelado de paneles con una cortina por `transform` en lugar de `data-rv="clip"`: la transición de clip-path de base2 se queda congelada en el Chromium del QA. Lo que queda por encima tras un salto por ancla se da por leído y se revela. - Barra de instrumento con reloj real de Mérida (`America/Merida`), módulo activo y % de lectura (escritorio ancho); índice móvil en `
` para que funcione sin JS. - Cuestionario como terminal: compone en vivo el mensaje literal del original y lo envía por GET a wa.me (campo oculto `text`); sin fetch ni almacenamiento, selects obligatorios. - "Lectura · 3 niveles · desde $399 MXN" en el hero es una síntesis de los precios reales, no un dato nuevo. - Logo oscuro con `filter:invert(1)` (el blanco trae un rectángulo opaco #161411). `mock-*.jpg` y `cta-bg.jpg` no se usan (son marcos de relleno). Hexfit solo aparece en texto donde el original lo nombra, con su descargo en el pie. - Un único canvas animado (cierre), DPR ≤ 1.5, pausado fuera de vista; con movimiento reducido no hay canvas, ni barrido, ni parpadeo, y los trazos y el relleno del cierre quedan completos. - Revisión del jurado: cabeceras `.mh` sin recorte (acentos de MÓDULO/DÍA visibles); fórmula y nota del toggle se escriben con `textContent` en `asra:ciclo` (solo `.amt` rueda); en móvil el CTA va antes del visor y los módulos respiran menos (56 px); cortina de planes más corta en móvil; HUD MAGNESIO oculto en hero-3/4; reduced-motion cubre filas de tabla y resortes; foco del visor más corto (blur 6 px, 700 ms) y barrido pausado fuera de vista o con pestaña oculta; fallbacks para iOS antiguo (`@supports`) y `color-mix`; la tarjeta de responsable lleva "Muestra · referencia, no es retrato". ## Pendientes marcados - [PENDIENTE — se confirma por WhatsApp; no publicada] (CLABE / banco en la nota de pago de los planes). - [PENDIENTE: foto de Andrey] (campo "Retrato" de la ficha "Responsable del plan"). ## Avisos de QA aceptados - ninguno (qa.md: 0 fallos, 0 avisos). Del jurado no se aplicó `will-change:filter,transform`: dejaría una capa permanente sobre fotos de 1920 px y la animación ya dura solo 700 ms y termina en `filter:none`.