diff --git a/CHANGELOG.md b/CHANGELOG.md
index d7cc6ca2..3f6b02f7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@ Format loosely follows [Keep a Changelog](https://keepachangelog.com).
## [Unreleased]
### Added
+- HTML iframe embeds can now be built into `.dist.html` files with pruned Tailwind v4 CSS.
### Changed
diff --git a/README.md b/README.md
index 1567bb25..fbf5f32a 100644
--- a/README.md
+++ b/README.md
@@ -81,6 +81,22 @@ pnpm check # run Biome
pnpm typecheck # typecheck all packages
```
+## HTML App Tailwind builds
+
+For local HTML Apps or iframe Embeds that use Tailwind utilities, build a static artifact instead of loading Tailwind at runtime:
+
+```sh
+pnpm --filter @hubble.md/desktop build:html-embed path/to/file-index.html
+```
+
+The default output is `path/to/file-index.dist.html`. Point Markdown embeds at the built file:
+
+```html
+
+```
+
+The builder scans the source HTML class attributes, compiles Tailwind v4 CSS for those candidates only, and inlines the result into the output HTML.
+
## Documentation
- [`CONTRIBUTING.md`](./CONTRIBUTING.md) covers the contribution flow, local setup, and pre-PR checks.
@@ -95,4 +111,4 @@ This project follows our [Code of Conduct](./CODE_OF_CONDUCT.md). To report a se
## License
-Hubble.md is licensed under the [MIT License](./LICENSE).
\ No newline at end of file
+Hubble.md is licensed under the [MIT License](./LICENSE).
diff --git a/apps/desktop/fixtures/playground/README.md b/apps/desktop/fixtures/playground/README.md
index e76c621b..6f95f0de 100644
--- a/apps/desktop/fixtures/playground/README.md
+++ b/apps/desktop/fixtures/playground/README.md
@@ -3,3 +3,9 @@
This workspace is copied into `.dev-electron/playground` for local Electron dev runs.
Open `file-index.html` or `todo-demo.html` in Hubble to test full-screen HTML Apps.
+
+`tailwind-card.html` is the source file for a Tailwind-built iframe Embed. Rebuild it with:
+
+```sh
+pnpm --filter @hubble.md/desktop build:html-embed apps/desktop/fixtures/playground/tailwind-card.html
+```
diff --git a/apps/desktop/fixtures/playground/project-ideas.md b/apps/desktop/fixtures/playground/project-ideas.md
index c3580ecd..256d616e 100644
--- a/apps/desktop/fixtures/playground/project-ideas.md
+++ b/apps/desktop/fixtures/playground/project-ideas.md
@@ -12,4 +12,6 @@ Use this note to test **bold text**, *italic text*, `inline code`, [[effective-l
Open `file-index.html` or `todo-demo.html` from the sidebar to try full-screen HTML Apps. See [[samples/interview-prep]] for prompts.
+
+

diff --git a/apps/desktop/fixtures/playground/tailwind-card.dist.html b/apps/desktop/fixtures/playground/tailwind-card.dist.html
new file mode 100644
index 00000000..801a334d
--- /dev/null
+++ b/apps/desktop/fixtures/playground/tailwind-card.dist.html
@@ -0,0 +1,382 @@
+
+
+
+
+
+ Tailwind embed card
+
+
+
+
+
+ Built iframe embed
+
+
Tailwind utilities, static CSS
+
+ This file builds to tailwind-card.dist.html
+ so Hubble can embed it without loading Tailwind in the iframe.
+