- Add frameset-aware content pages: login-content, admin-content, profile-content
- Implement AJAX navigation to prevent audio interruption during page transitions
- Add handleLogout() function to logout without breaking frameset
- Update login form to submit via AJAX and follow redirects
- Add audio keep-alive protection with 500ms interval check
- Update logout handler to detect frameset mode and redirect appropriately
- Add .gitignore entry for generated asteroid.css
The persistent audio player now continues playing through:
- Login page loading
- Login form submission
- Redirect to admin/profile pages
- Navigation within admin/profile
- Logout process
All navigation within frameset mode now uses fetch() to load content
without actual page navigation, keeping the audio player frame untouched.