Frontends com Vibecoding Capítulo: Booking: a fronteira entre persuasão que converte e passivo que se acumula Trechos: 6 pedidos prontos para colar no seu agente Leia o LEIA-ME.txt desta pasta antes de usar. A página do capítulo explica a decisão; estes trechos só executam o que a página já decidiu. ### O que faz: pede uma primeira dobra imersiva com teto de peso e plano B declarados ### Onde entra: em página de marca, quando o objetivo da tela é deixar lembrança e não acelerar decisão ### Cuidado: sem o teto declarado no próprio pedido, o agente entrega beleza que reprova em celular lento Crie uma hero de marca inspirada na escola imersiva (storytelling por scroll e microinteração), mas com as guardas que a tornam segura para produção. Requisitos de experiência: - Uma sequência scroll-driven: ao rolar, o título revela em etapas e um elemento visual reage ao progresso (use IntersectionObserver ou scroll progress, não libs pesadas se um efeito simples resolve). - Microinterações com propósito: hover e foco com transição suave (transform/opacity, nunca propriedades que causam layout). - Tipografia como protagonista: escala tipográfica generosa, hierarquia clara, espaçamento amplo. Guardas inegociáveis: - Respeite prefers-reduced-motion: reduce. Desligue parallax, autoplay e qualquer movimento não essencial, mantendo o conteúdo legível e estático. - Progressive enhancement: a hero comunica a mensagem e tem o CTA acessível SEM o efeito; a animação é camada extra que degrada com elegância. - Budget: anime só transform e opacity (composited), nada de animar width/height/top. Alvo de LCP < 2,5 s. - Acessibilidade: contraste AA do texto sobre o fundo animado (use overlay sólido se preciso); foco visível no CTA; nada de conteúdo essencial preso atrás da animação. Não use WebGL se um efeito de CSS/Canvas leve entregar a mesma sensação. Justifique a escolha técnica no comentário. ### O que faz: pede o cartão de resultado denso, com nota, comodidades e preço na mesma varredura ### Onde entra: em qualquer lista de resultados que a pessoa precisa comparar rápido ### Cuidado: a nota precisa dizer a escala em voz alta, porque uma caixa colorida não informa nada a quem não a vê Crie um componente React + Tailwind chamado PropertyCard que reproduza a densidade e a hierarquia de um card de resultado estilo Booking. Layout: - Foto da propriedade à esquerda (proporção 4:3), com alt obrigatório descrevendo a propriedade. - À direita: nome da propriedade como link (cor de destaque azul, via token, não hex cru), localização em texto secundário, bloco de comodidades (Wi-Fi, café, estacionamento) e, na coluna final, o bloco de preço com CTA. - Badge de score: caixa azul-escura com o número e o rótulo, ex.: "8,4 Excelente", escala de 1 a 10. Use vírgula decimal (pt-BR). Regras obrigatórias: - Use CSS custom properties para todas as cores: var(--accent), var(--score-bg), var(--text), var(--text-muted). Nada de hex direto no JSX. - Contraste mínimo AA em ambos os temas (claro e escuro). - Estado de foco visível em todos os elementos interativos (link do nome e CTA): outline com offset, nunca outline:none sem substituto. - O nome é um real navegável por teclado; o CTA é um