Index: src/views/pages/post-edit.ejs
===================================================================
--- src/views/pages/post-edit.ejs	(revision f3f43df47eb81f36be50bbc3b2191224a6a4c7b4)
+++ src/views/pages/post-edit.ejs	(revision e22230ee070e7bf2c33bef18dceb7bf779d963f2)
@@ -1096,4 +1096,8 @@
   }
   function keepScroll(fn) {
+    // In fullscreen staat de pagina vast (body overflow:hidden) en mag het veld
+    // gewoon naar de caret scrollen — geen pagina-sprong mogelijk, dus niets fixen.
+    const frame = document.querySelector('.pe-editor-frame');
+    if (frame && frame.classList.contains('pe-fs')) { fn(); return; }
     const wx = window.scrollX, wy = window.scrollY;
     const anc = scrollableAncestors(editor).map(function (n) { return [n, n.scrollTop, n.scrollLeft]; });
@@ -1104,10 +1108,5 @@
     fn();
     restore();
-    // Mobiel Chrome scrollt de caret ASYNCHROON in beeld (ná meerdere frames), ook
-    // bij een lege caret. Vang élke scroll de eerstvolgende ~350 ms af en zet 'm
-    // terug; daarna mag de gebruiker weer vrij scrollen.
-    const onScroll = function () { restore(); };
-    window.addEventListener('scroll', onScroll, true);
-    setTimeout(function () { window.removeEventListener('scroll', onScroll, true); }, 350);
+    requestAnimationFrame(restore);
   }
   function execCmd(cmd, arg) {
@@ -1259,11 +1258,15 @@
 
   // Op mobiel/tablet (touch-apparaat = pointer:coarse) gebeurt typen ALTIJD
-  // fullscreen: zodra het schrijfveld focus krijgt, gaan we automatisch fullscreen.
-  // Eruit kan met de knop (⤡) of Escape; tik je weer in het veld → opnieuw fullscreen.
+  // fullscreen. We gaan fullscreen zowel bij focus ALS bij de eerste invoer
+  // (beforeinput) — zo kun je ook na het verlaten van fullscreen niet per ongeluk
+  // zonder fullscreen doortypen. Eruit kan met de knop (⤡) of Escape.
   var isTouch = window.matchMedia && window.matchMedia('(pointer: coarse)').matches;
   if (isTouch) {
-    editor.addEventListener('focus', function () {
+    var enterFs = function () {
       if (editorFrame && !editorFrame.classList.contains('pe-fs')) toggleFullscreen();
-    });
+    };
+    editor.addEventListener('focus', enterFs);
+    editor.addEventListener('beforeinput', enterFs);
+    editor.addEventListener('pointerup', enterFs);
   }
 
