diff --git a/src/lib/assets/css/background-3d.css b/src/lib/assets/css/background-3d.css
index c8b4ad8..f52e45a 100644
--- a/src/lib/assets/css/background-3d.css
+++ b/src/lib/assets/css/background-3d.css
@@ -6,6 +6,7 @@
height: 100%;
z-index: -1;
pointer-events: none;
+ background-color: var(--scene-bg);
}
.scene-container :global(canvas) {
diff --git a/src/lib/components/Background3D.svelte b/src/lib/components/Background3D.svelte
index ad4ff49..85846e6 100644
--- a/src/lib/components/Background3D.svelte
+++ b/src/lib/components/Background3D.svelte
@@ -1,4 +1,5 @@
-
+
+ {#if webglAvailable}
+ {/if}
diff --git a/src/lib/components/ModelViewer.svelte b/src/lib/components/ModelViewer.svelte
index ab4844d..9e27983 100644
--- a/src/lib/components/ModelViewer.svelte
+++ b/src/lib/components/ModelViewer.svelte
@@ -385,8 +385,15 @@
onMount(() => {
if (container) {
- initScene();
- animate();
+ try {
+ initScene();
+ animate();
+ } catch (err) {
+ console.error("WebGL unavailable:", err);
+ loadError = "3D viewer unavailable (WebGL not supported)";
+ isLoading = false;
+ return;
+ }
window.addEventListener("resize", handleResize);
window.addEventListener("keydown", handleKeydown);
}
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index 55b7104..b98a28e 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -1,6 +1,5 @@