Index: src/views/shell.ejs
===================================================================
--- src/views/shell.ejs	(revision f6b2c684c90dcd944223b0b83aeb85ee4c2d42da)
+++ src/views/shell.ejs	(revision 9327a858cd7930e9e11b21370b9c2b00ac96a3c2)
@@ -220,5 +220,11 @@
     p.remove();
     var i = rawEnv;
-    if (i < 20 && Math.max(screen.width, screen.height) >= 812) i = standalone ? 59 : 47;
+    if (i < 20 && Math.max(screen.width, screen.height) >= 812) {
+      // Portrait: the island sits at the TOP → full inset (UNCHANGED: standalone?59:47).
+      // Landscape: the island moves to the SIDE, so the top inset is ~0 → no top padding
+      // (only the masthead's own base padding remains). env() can't tell us (returns 0),
+      // so we key off orientation directly.
+      i = (window.innerWidth > window.innerHeight) ? 0 : (standalone ? 59 : 47);
+    }
     document.documentElement.style.setProperty('--ios-safe-top', i + 'px');
     var mh = document.querySelector('.masthead');
