Index: src/views/partials/topnav.ejs
===================================================================
--- src/views/partials/topnav.ejs	(revision 0fa59c3afb76a2b269952782eabbe90d0be3309e)
+++ src/views/partials/topnav.ejs	(revision 9327a858cd7930e9e11b21370b9c2b00ac96a3c2)
@@ -328,4 +328,8 @@
 @media (max-width: 767px) {
   body:not(.on-admin) .masthead { display: none; }
+  /* The masthead is gone on mobile, so it can't carry the iOS safe-area top inset
+     (env() resolves to 0 in the home-screen PWA; --ios-safe-top is set by JS in shell).
+     Pad the body instead so the profile-header clears the Dynamic Island / notch. */
+  body:not(.on-admin) { padding-top: var(--ios-safe-top, 0px); }
 }
 
