diff --git a/src/App.svelte b/src/App.svelte
index 6cfa39f..e2b91ee 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -52,9 +52,18 @@
let isReady = $state(false)
let isResizing = $state(false)
+ let bgReady = $state(false)
let resizeTimer = null
let mediaCheckCleanup = null
+ // Preload bg-fixed image, show only once fully loaded
+ const BG_URL = '/assets/img/scrollable-page-background.png'
+ {
+ const img = new Image()
+ img.onload = () => { bgReady = true }
+ img.src = BG_URL
+ }
+
// Active la transition seulement après le premier paint à la bonne position.
// Double rAF : le premier laisse passer un paint avec le bon translateX,
// le second active is-animated — évite l'animation parasite au chargement.
@@ -219,7 +228,9 @@