After saveOnboardingPlace succeeds (and the next step is already set), the new useBirthSkyReveal hook fetches /api/birth-sky?subject=self and paints the cover; if that finishes within 3 s the chart page's dialog fades in (600 ms, none under reduced motion) with 「继续」. Timeout or failure is silent, no retry; closing touches only the reveal's own state. Home() gains no useState/useRef; page.tsx only wires. Family profiles and profile edits never trigger it. Also caps the dialog image by viewport height (the percentage max-height did not resolve inside the flex/grid cell), and completes PROGRESS, DESIGN §17, CHANGELOG and the real-device checklist. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0199rbQDTsUbCVw84wc8BTFe