perf(portal): parallelize API calls on mount (#673)

The portal page was making 4 API calls sequentially during mount:
- loadMyTracks()
- loadArtistProfile()
- loadMyAlbums()
- loadMyPlaylists()

Each waited for the previous to complete before starting. Since these
are independent, run them in parallel with Promise.all() to reduce
time-to-interactive.

Expected improvement: ~300-800ms reduction in LCP depending on network
conditions (from sequential to parallel latency).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

authored by zzstoatzz.io Claude Opus 4.5 and committed by GitHub 253e0565 613ed9ee

Changed files
+6 -4
frontend
src
routes
portal
+6 -4
frontend/src/routes/portal/+page.svelte
··· 106 106 } 107 107 108 108 try { 109 - await loadMyTracks(); 110 - await loadArtistProfile(); 111 - await loadMyAlbums(); 112 - await loadMyPlaylists(); 109 + await Promise.all([ 110 + loadMyTracks(), 111 + loadArtistProfile(), 112 + loadMyAlbums(), 113 + loadMyPlaylists() 114 + ]); 113 115 } catch (_e) { 114 116 console.error('error loading portal data:', _e); 115 117 error = 'failed to load portal data';