diff --git a/.gitignore b/.gitignore
index 7acd88e17..7d32e1b48 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,9 @@
debug
target
+# Trunk web build output (wasm/js bundle)
+dist
+
# These are backup files generated by rustfmt
**/*.rs.bk
diff --git a/Cargo.lock b/Cargo.lock
index efa9b9789..8d460b549 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -6336,6 +6336,7 @@ dependencies = [
"thiserror 2.0.18",
"wgpu-core-deps-apple",
"wgpu-core-deps-emscripten",
+ "wgpu-core-deps-wasm",
"wgpu-core-deps-windows-linux-android",
"wgpu-hal",
"wgpu-types",
@@ -6359,6 +6360,15 @@ dependencies = [
"wgpu-hal",
]
+[[package]]
+name = "wgpu-core-deps-wasm"
+version = "27.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b1027dcf3b027a877e44819df7ceb0e2e98578830f8cd34cd6c3c7c2a7a50b7"
+dependencies = [
+ "wgpu-hal",
+]
+
[[package]]
name = "wgpu-core-deps-windows-linux-android"
version = "27.0.0"
diff --git a/Cargo.toml b/Cargo.toml
index cb4476557..c4c8b5098 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -82,3 +82,8 @@ ureq = { version = "3", default-features = false, features = ["rustls"] }
[target.'cfg(target_arch = "wasm32")'.dependencies]
console_error_panic_hook = "0.1"
+# Browsers without WebGPU (e.g. Firefox by default) need wgpu's WebGL2 backend;
+# `webgl` enables it. `fira-sans` embeds the default UI font — the web has no
+# system fonts, so without it all iced text (ribbon labels, command line) is
+# blank. Features merge with the main `iced` dependency.
+iced = { version = "0.14", features = ["webgl", "fira-sans"] }
diff --git a/Trunk.toml b/Trunk.toml
index e58869cdb..4c60188c6 100644
--- a/Trunk.toml
+++ b/Trunk.toml
@@ -8,6 +8,9 @@
[build]
target = "index.html"
+# Note: the `solid3d` feature is disabled via `data-cargo-no-default-features`
+# on the rust in index.html (truck-meshalgo → lzma-sys C deps cannot
+# cross-compile to wasm).
[serve]
# Cross-origin isolation headers enable SharedArrayBuffer, which wasm threads
diff --git a/index.html b/index.html
index a58c53477..74066bf78 100644
--- a/index.html
+++ b/index.html
@@ -10,7 +10,7 @@
-
+