# Reserva 1001 — Fase 5: Polish visual > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development **Goal:** Transformar a página pública num produto premium com animações, carrossel, skeletons e micro-interações. A base funcional está toda pronta (fases 1-4); esta fase é exclusivamente sobre percepção de qualidade. **Tech stack adicional:** framer-motion (já instalado) · animejs (já instalado) · canvas-confetti (instalar) · embla-carousel-react (instalar — pro carrossel de fotos) **Spec:** `docs/superpowers/specs/2026-04-13-reserva-1001-design.md` seção 10 **Fases anteriores:** 1, 2, 3, 3.5, 4 completas --- ## Escopo ### ✅ Entra nesta fase 1. **Hero section** no topo da página pública com reveal escalonado (framer-motion) 2. **Carrossel de fotos** substitui o grid atual — com swipe, indicadores, lightbox em tela cheia 3. **Stagger entrance** nas opções de categoria/unidade quando muda a marca (framer-motion `staggerChildren`) 4. **Price pulse** — animação de escala quando o preço recalcula (anime.js) 5. **QR code glow** — borda animada pulsando na tela de checkout (CSS + motion) 6. **Skeleton screens** em vez de spinners no form e galeria 7. **SuccessScreen upgrade** — confetti + check SVG desenhado com anime.js 8. **Micro-interactions** em botões (hover scale, subtle glow) 9. **AnimatePresence** pras transições entre etapas (form → checkout → success) ### ❌ Fora de escopo - Mudanças de layout (ex: hero "parallax" com scroll) — só reveal - Mudança de fontes/cores (é editável no admin) - Mexer em lógica de negócio --- ## Tasks ### Task 1: Hero section com reveal **Files:** - Create: `src/components/reservation/HeroSection.tsx` - Modify: `src/pages/ReservationPage.tsx` (usa HeroSection no topo) Cria um hero mais impactante: stagger entrance dos elementos (subtítulo → título → tagline) com `motion.div` e `variants`. Timeline: 0ms subtítulo, 200ms título, 400ms tagline. ### Task 2: Carrossel de fotos com lightbox **Files:** - Install: `pnpm add embla-carousel-react` - Modify: `src/components/reservation/ImageGallery.tsx` (substitui grid por carrossel) Swipe horizontal, dots indicadores, autoplay 4s (pausa no hover). Click numa foto abre lightbox em tela cheia (overlay escuro + `` centralizado + botão X + ←/→ pra navegar + ESC pra fechar). ### Task 3: Stagger entrance nos selects de categoria/unidade **Files:** - Modify: `src/components/reservation/StayDetailsStep.tsx` Quando a marca muda e as unidades/categorias re-renderizam, cada `