Spec đã viết ở .memory/shared/motion-spec.md. Tokens ở design-tokens.json. Trang này để bạn THẤY các easing/duration trực quan, click thử card flip, bật reduced-motion. Duyệt rồi mình implement VIỆC 2.
5 duration · 3 easing · 3 stagger. Click button để xem chuyển động ở mỗi duration. Click "Replay" để chạy lại từng easing.
rotateY 180° + perspective 1000px + ease-in-out-smooth 600ms. Click lá để flip. 3 lá fan demo stagger 200ms.
2 variant — light (SEO pages, pure CSS pulse) + full (interactive pages, 3-orbit constellation).
Fade + slide-up 12px · 300ms · ease-out-soft. Click nav để chuyển page mô phỏng.
Welcome to SoiTarot. Hôm nay bộ bài muốn nói gì với bạn?
22 chiếc gương từ Gã Khờ đến Thế Giới. Tap để khám phá.
Sun · Moon · Rising. Không tử vi — chỉ archetype.
Hover button + card + link để xem. Tất cả dùng ease-spring · duration-fast (200ms).
Cuộn xuống trong pane bên dưới — mỗi block fade-up khi vào viewport. once: true · margin -80px.
Block này đã hiển thị ngay từ đầu — initial state set thủ công.
Sẽ fade-up 20px khi vào viewport (margin -40px trong scroll pane).
Khởi đầu mới. Niềm tin vào hành trình. Khi bạn đứng trên vách núi và biết mình phải nhảy.
Sáng tạo. Bốn nguyên tố trong tay. Bạn có đủ công cụ — câu hỏi là dám dùng hay không.
Trực giác. Sự tĩnh lặng. Đôi khi câu trả lời không phải hỏi — mà phải nghe.
Nuôi dưỡng. Đất Mẹ. Sáng tạo từ sự dồi dào, không phải từ thiếu thốn.
Tử Thần không phải về cái chết. Là về chuyển hoá — cái cũ chết để cái mới sống.
Sau cơn bão, hy vọng. Đổ nước mát xuống đất nứt nẻ. Lành lại.
Bật toggle dưới đây — toàn trang sẽ chuyển sang reduced-motion mode (duration = 0). Test card flip, hover, scroll reveal ngay.
prefers-reduced-motionNếu OK → mình làm VIỆC 2: build component FadeIn / SlideUp / StaggerChildren / ScrollReveal / CardFlip / CosmicLoader / PageTransition + Lenis wrap + reduced-motion handler + Tailwind config + ghi nhận ở tech-decisions.md.