diff --git a/apps/landing/layouts/_default/list.html b/apps/landing/layouts/_default/list.html
index 57d7633..471e61a 100644
--- a/apps/landing/layouts/_default/list.html
+++ b/apps/landing/layouts/_default/list.html
@@ -23,12 +23,12 @@
         <!-- 1 Large Box 3x3 -->
         {{ $firstFact := index $sortedFacts 0 }}
         <div id="factImageBox" class="fact-image-box">
-            <img id="factImage" src="/images/fact-1.png" alt="{{ $firstFact.Title }}" class="fact-image">
+            <img id="factImage" src="/images/fact-1.png" alt="{{ $firstFact.Title }}" class="fact-image" loading="lazy">
         </div>
     </div>
 </div>
 <div class="footer-form">
     {{ partial "register-form.html" . }}
 </div>
-<script src="/js/main.js"></script>
+<script src="/js/main.js?v=0.0.2"></script>
 {{ end }}
diff --git a/apps/landing/static/js/main.js b/apps/landing/static/js/main.js
index 2e6a436..a068560 100644
--- a/apps/landing/static/js/main.js
+++ b/apps/landing/static/js/main.js
@@ -105,5 +105,37 @@
 
     checkAddRemoveScrollListener();
 
-    window.addEventListener("resize", checkAddRemoveScrollListener);
+    let resizing = false;
+    const resizeDelayTime = 1000;
+    let resizeTimeout;
+
+    const startResizing = () => {
+        clearTimeout(resizeTimeout);
+        resizing = true;
+        document.querySelectorAll(".facts").forEach(fact => {
+            fact.removeEventListener("mouseover", handleMouseover);
+        });
+    };
+
+    const stopResizing = () => {
+        clearTimeout(resizeTimeout);
+        resizeTimeout = setTimeout(() => {
+            resizing = false;
+            checkAddRemoveScrollListener();
+            document.querySelectorAll(".facts").forEach((fact, index) => {
+                fact.addEventListener("mouseover", () => handleMouseover(facts[index].params.image, index, facts[index].params.title));
+            });
+        }, resizeDelayTime);
+    };
+
+    window.addEventListener("resize", () => {
+        if (!resizing) {
+            startResizing();
+        }
+        stopResizing();
+    });
+
+    document.querySelectorAll(".facts").forEach((fact, index) => {
+        fact.addEventListener("mouseover", () => handleMouseover(facts[index].params.image, index, facts[index].params.title));
+    });
 });
