+ {/* Hidden video element */}
+
+
+ {/* Hidden processing canvas */}
+
+
+ {/* Display canvas with fade-in */}
+
+
+ {/* Error popup */}
+ {error && showErrorPopup && !quietWebcamErrors && (
+
+
+ {/* Close button */}
+
setShowErrorPopup(false)}
+ className="absolute top-2 right-2 rounded-md p-1 text-white/40 transition-colors hover:bg-white/10 hover:text-white/70"
+ >
+
+
+
+
+
+ {/* Camera icon */}
+
+
+ {/* Content */}
+
+
+ Camera access needed
+
+
+ Enable camera for the interactive background effect
+
+
+
+
+
+ Enable Camera
+
+
+
+
+ )}
+
+ {/* Minimized error indicator */}
+ {error && !showErrorPopup && !quietWebcamErrors && (
+
setShowErrorPopup(true)}
+ className="fixed top-4 right-4 z-50 flex h-10 w-10 items-center justify-center rounded-full border border-white/10 bg-black/60 text-white/50 shadow-lg backdrop-blur-xl transition-all hover:scale-105 hover:bg-black/80 hover:text-white/80"
+ title="Camera access required"
+ >
+
+
+
+
+
+ )}
+
+ );
+};
+
+export default WebcamPixelGrid;
diff --git a/src/pages/index.astro b/src/pages/index.astro
index 20633c9..b701f08 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -1,5 +1,6 @@
---
-import { Landing } from "@/components/landing";
+import { LandingHeroSection } from "@/components/landing-hero-section";
+import { LandingRest } from "@/components/landing";
import "@/styles/global.css";
---
@@ -17,6 +18,9 @@ import "@/styles/global.css";
defer>
-