Loading, empty, and error
Browse, booking, checkout, orders, inbox, and studio never leave a blank screen.
Every async flow has loading, success, empty, and error. Branded not-found and error recovery replace raw crashes. Route loading.tsx covers browse, orders, inbox, and studio. Empty search explains what to try next.