diff --git a/.changeset/replace-inject-styles-with-style-precedence.md b/.changeset/replace-inject-styles-with-style-precedence.md
new file mode 100644
index 00000000..31d64620
--- /dev/null
+++ b/.changeset/replace-inject-styles-with-style-precedence.md
@@ -0,0 +1,7 @@
+---
+'@youversion/platform-core': minor
+'@youversion/platform-react-hooks': minor
+'@youversion/platform-react-ui': minor
+---
+
+Replace module-level injectStyles() side effect with React 19 style precedence hoisting via YouVersionProvider. Add static CSS export at @youversion/platform-react-ui/styles.css for non-React consumers.
diff --git a/AGENTS.md b/AGENTS.md
index 5c0c2fc4..05a34bfe 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -98,7 +98,7 @@ pnpm --filter @youversion/platform-react-ui build
**React 19.1.2 exact pinning**: pnpm overrides lock all React packages to exact version
-**Tailwind CSS injection**: Auto-injected as JS constant via tsup define (no build step needed by consumers)
+**Tailwind CSS injection**: Built CSS embedded as JS constant via tsup define, rendered by `YouVersionProvider` using React 19 `
+ );
+}
diff --git a/packages/ui/src/styles/global.css b/packages/ui/src/styles/global.css
index 7cd3d0eb..a3e99a06 100644
--- a/packages/ui/src/styles/global.css
+++ b/packages/ui/src/styles/global.css
@@ -2,13 +2,15 @@
* Tailwind v4 CSS Layer Strategy
* ==============================
* All SDK styles are wrapped in custom @layer directives (yv-sdk-*) so that
- * when injected into a consumer's app, they sit below unlayered author styles
- * in the CSS cascade. This prevents our SDK from overriding consumer CSS.
+ * they sit below unlayered author styles in the CSS cascade. This prevents
+ * our SDK from overriding consumer CSS.
*
* LAYER ORDER IS CRITICAL. We declare Tailwind v4's standard layer names
- * (theme, base, components, utilities) BEFORE our yv-sdk-* layers. Because
- * injectStyles() appends our