# Lumen · Workout Una app nativa hecha de luz: el hero retrocede bajo una hoja de iOS, controles de cristal con resorte, tarjetas que se apilan y un «¿Listo para empezar?» que se llena de luz. ## Momentos firma - Hero como vista de iOS que retrocede cuando sube la hoja (escala .93, esquinas que se redondean, velo frío; la hoja asoma con su grabber desde el primer pantallazo). Dentro, la foto de las manos con magnesio en Ken Burns y una Live Activity de cristal que recorre, ejercicio por ejercicio, los 5 de la Full Body real. - Controles segmentados de cristal líquido con física de resorte real (`ASRA.spring`) y estiramiento de gota según la velocidad: pestañas Full Body / Torso-Pierna / Empuje, toggle 1 mes / Trimestral −15% con rodillo de precio (y el WhatsApp de cada plan cambia con la modalidad) e indicador del dock. - Método en cuatro tarjetas que se apilan como notificaciones (sticky escalonado; la anterior se encoge y se vela al quedar cubierta), cada una con un widget iOS del paso: chips sobre la kettlebell, tres series, pierna → tren superior, interruptor de patrones. - Luz líquida: brillo radial que sigue al puntero o al dedo sobre las tarjetas, barrido de luz atado al scroll en el método y mesh WebGL luminoso que respira detrás del hero. - Cierre «¿Listo para empezar?» en contorno azul: las letras entran con resorte y se llenan de luz líquida de abajo arriba con el scroll, sobre motas de magnesio a contraluz (canvas 2D que se aparta del puntero) y una pill verde propia de WhatsApp con el número. ## Decisiones - Blanco/hielo (#fff → #eef1f6) con hoja #f4f6fa y fondo de presentación #dfe5ef. Las fotos reales (todas oscuras) viven solo dentro de tarjetas, como objetos en la luz; nunca texto sobre foto sin cristal claro. - Manrope 760/700 en titulares (tracking −0.045/−0.038em), Geist 700 para cifras tabulares (precios, tabla, contador de la Live Activity), texto Manrope 500 17px. Un solo acento azul #1f4fd8 + brillos #9bdcff / #d9c9ff; el verde #12853f solo en WhatsApp. - Base v2 «Cine» reinterpretada: slideshow con Ken Burns dentro de la tarjeta hero, cuatro capítulos del método (aquí apilados) y ficha del día con pestañas. Cierre de v3 «Hierro» reinterpretado: contorno → relleno líquido + partículas. - Tabla Full Body (tarjeta A) visible sin interacción. En iPhone cada fila es una pill de dos líneas con Series/Reps/RIR/Descanso etiquetados (no se oculta ninguna columna ni se cambia ningún valor); desde 760 px, cinco columnas reales con encabezado. B y C en pestañas, cada una con su semana tipo. - Dock tipo tab bar (Método, Ejemplos, Planes, Contacto) con espía de secciones; aparece con resorte al dejar el hero y respeta `--sab`. Barra superior mínima: logo + «Escribir». - Teaser de nutrición con los tres precios cruzados del brief («Prescripción en app · app de un socio») y enlace a nutricion.asra.quest. Pregunta 5 de la FAQ reescrita sin la marca de pago; Hexfit solo en texto, con su descargo en el pie. - No se usan `mock-*.jpg` ni `cta-bg.jpg` (son marcos de relleno). hero-1…4 en el hero, hero-6 en el paso 01, hero-5 en «Para quién», plato-metodo en nutrición. - Rendimiento: shader del hero a DPR .7 y 40 fps, pausado y oculto cuando la hoja lo cubre; motas a DPR ≤ 1.5, pausadas fuera de vista; solo 2 canvases. Sombras como box-shadow (sin filtros sobre contenido que cambia por cuadro); la del hero es una capa desenfocada estática. - base2 deja `clip-path:inset(0)` en `[data-rv].in`, lo que recorta sombras: se anula con `html.js [data-rv].in:not([data-rv="clip"]){clip-path:none}`. También se quita el `will-change` permanente de `.btn`. - Movimiento reducido: sin shader, motas, Ken Burns, rotación de la Live Activity, retroceso del hero ni escalado de la pila; el cierre aparece lleno y todo es legible. Sin JS: las tres fichas visibles, precios mensuales y enlaces estáticos de WhatsApp válidos. - JS propio de seguridad: lo que queda arriba tras un salto de ancla se revela; contorno y relleno del cierre se revelan a la vez. - Ronda de correcciones del jurado: hero adaptado al alto útil real de Safari (`svh`; verificado en 393x659, 375x635, 375x553 y 430x740: tarjeta completa con esquinas y puntos sobre el peek); en pantallas bajas (<=740 px) se oculta el párrafo del hero y se reduce el titular. Espaciado entre palabras de titulares corregido; cristal sobre foto oscura más blanco (.97/.92 + brightness 1.2; el cristal general sube a .88/.72 + brightness 1.15); `scroll-padding-top` para saltos de ancla; retardo de titulares largos limitado a ~.44 s con `text-wrap:balance`; dock oculto a teclado y lector mientras está fuera; nota de producción retirada del pie de Ejemplos. - Rendimiento: posiciones de las secciones espía cacheadas (ResizeObserver sobre la hoja, resize y load), tarjetas del método solo se miden cuando la pila está cerca del viewport y `--cov` solo se escribe si cambia, red de seguridad de revelado solo corre si el scroll se movió, y se quitó `will-change` fijo de `.st-card` y `.sweep::before`. ## Pendientes marcados - [PENDIENTE: capturas reales del PDF ASRA WORKOUT y de la rutina en la app] - [PENDIENTE: confirmación de Andrey de precios trimestrales exactos y de los nombres Protocolo Claro / Ritmo / Contigo] - [PENDIENTE — se confirma por WhatsApp; no publicada] (CLABE / banco) - [PENDIENTE: foto de Andrey] - [PENDIENTE: bio corta de Andrey (enfoque, años de experiencia)] - [PENDIENTE: enlaces de privacidad / términos propios] ## Avisos de QA aceptados - Opcional del jurado no aplicado: bajar el blur del dock a 16px en móvil (se mantiene 22px para coherencia del material; el QA ya marca 56 fps en iPhone). - fps de escritorio (~25) es indicativo del Chromium sin GPU del QA, no se actúa más.