diff --git a/docs/.vitepress/theme/Layout.vue b/docs/.vitepress/theme/Layout.vue
new file mode 100644
index 0000000..3a4d55f
--- /dev/null
+++ b/docs/.vitepress/theme/Layout.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
diff --git a/docs/.vitepress/theme/custom.css b/docs/.vitepress/theme/custom.css
index f4019fa..2369439 100644
--- a/docs/.vitepress/theme/custom.css
+++ b/docs/.vitepress/theme/custom.css
@@ -68,3 +68,96 @@
background-color: var(--vp-c-brand-soft);
color: var(--vp-c-brand-1);
}
+
+/* ── zach.dev Footer Logo ── */
+.zach-footer-logo {
+ position: fixed;
+ bottom: 24px;
+ right: 28px;
+ z-index: 50;
+}
+
+.zach-footer-logo a {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ text-decoration: none;
+ gap: 8px;
+ opacity: 0.85;
+ transition: opacity 0.2s ease;
+}
+
+.zach-footer-logo a:hover {
+ opacity: 1;
+}
+
+.zach-footer-dismiss {
+ position: absolute;
+ top: -12px;
+ right: -12px;
+ width: 24px;
+ height: 24px;
+ border: none;
+ border-radius: 50%;
+ background: var(--vp-c-bg-alt);
+ border: 1px solid var(--vp-c-divider);
+ color: var(--vp-c-text-2);
+ font-size: 14px;
+ line-height: 1;
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ opacity: 0;
+ transition: opacity 0.2s ease;
+ z-index: 10;
+ padding: 0;
+}
+
+.zach-footer-logo:hover .zach-footer-dismiss {
+ opacity: 1;
+}
+
+.zach-footer-dismiss:hover {
+ color: var(--vp-c-text-1);
+ background: var(--vp-c-bg-elv);
+}
+
+.zach-footer-statue {
+ width: 64px;
+ height: 64px;
+ object-fit: contain;
+}
+
+.zach-footer-text {
+ font-size: 12px;
+ font-weight: 600;
+ color: var(--vp-c-text-2);
+ letter-spacing: 0.02em;
+ white-space: nowrap;
+}
+
+@media (max-width: 768px) {
+ .zach-footer-logo {
+ bottom: 12px;
+ right: 12px;
+ }
+
+ .zach-footer-statue {
+ width: 36px;
+ height: 36px;
+ }
+
+ .zach-footer-text {
+ font-size: 10px;
+ }
+
+ .zach-footer-dismiss {
+ opacity: 1;
+ top: -10px;
+ right: -10px;
+ width: 24px;
+ height: 24px;
+ font-size: 14px;
+ }
+}
diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts
index 293d62c..be7c830 100644
--- a/docs/.vitepress/theme/index.ts
+++ b/docs/.vitepress/theme/index.ts
@@ -1,9 +1,11 @@
import DefaultTheme from "vitepress/theme";
+import Layout from "./Layout.vue";
import HomePage from "./HomePage.vue";
import "./custom.css";
export default {
extends: DefaultTheme,
+ Layout,
enhanceApp({ app }) {
app.component("HomePage", HomePage);
},