diff --git a/docs-site/astro.config.mjs b/docs-site/astro.config.mjs
index b22ed46..4424090 100644
--- a/docs-site/astro.config.mjs
+++ b/docs-site/astro.config.mjs
@@ -45,7 +45,15 @@ export default defineConfig({
// The mark IS the word "cuckoo" — a rebus. replacesTitle stops Starlight
// rendering the title text beside it (which would read "…escapement The
// Cuckoo Escapement"). The SVG's aria-label carries the full name.
- logo: { src: "./src/assets/logo.svg", replacesTitle: true },
+ //
+ // Two variants, because Starlight renders the logo as an and CSS
+ // cannot reach inside it. The single cream-on-black logo was invisible in
+ // the light theme — cream wordmark on a cream page.
+ logo: {
+ light: "./src/assets/logo-light.svg",
+ dark: "./src/assets/logo.svg",
+ replacesTitle: true,
+ },
favicon: "/favicon.svg",
customCss: ["./src/styles/brass.css"],
diff --git a/docs-site/src/assets/logo-light.svg b/docs-site/src/assets/logo-light.svg
new file mode 100644
index 0000000..1586853
--- /dev/null
+++ b/docs-site/src/assets/logo-light.svg
@@ -0,0 +1,43 @@
+