diff --git a/README.md b/README.md
index 84a51fcc..887d9e25 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Basecamp CLI
+#
Basecamp CLI
`basecamp` is the official command-line interface for Basecamp. Manage projects, todos, messages, and more from your terminal or through AI agents.
diff --git a/assets/basecamp-badge.svg b/assets/basecamp-badge.svg
deleted file mode 100644
index 79709871..00000000
--- a/assets/basecamp-badge.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/assets/bc5-snowglobe.png b/assets/bc5-snowglobe.png
new file mode 100644
index 00000000..6eb51b1a
Binary files /dev/null and b/assets/bc5-snowglobe.png differ
diff --git a/internal/auth/basecamp_logo.html b/internal/auth/basecamp_logo.html
new file mode 100644
index 00000000..d788ce96
--- /dev/null
+++ b/internal/auth/basecamp_logo.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/internal/auth/callback.go b/internal/auth/callback.go
index 5879db02..7f342c7b 100644
--- a/internal/auth/callback.go
+++ b/internal/auth/callback.go
@@ -13,7 +13,7 @@ import (
"time"
)
-//go:embed callback.html callback_success.html callback_error.html callback_denied.html callback_invalid.html callback_exchange_failed.html
+//go:embed callback.html basecamp_logo.html callback_success.html callback_error.html callback_denied.html callback_invalid.html callback_exchange_failed.html
var callbackFS embed.FS
var callbackTmpl = template.Must(template.ParseFS(callbackFS, "callback.html"))
@@ -21,9 +21,15 @@ var callbackTmpl = template.Must(template.ParseFS(callbackFS, "callback.html"))
type callbackData struct{ Content string }
func renderCallback(filename string) string {
- content, _ := callbackFS.ReadFile(filename)
+ // Parse the content page alongside the shared logo partial so its
+ // {{template "basecamp_logo.html"}} reference resolves, then wrap the
+ // result in the outer shell.
+ contentTmpl := template.Must(template.ParseFS(callbackFS, filename, "basecamp_logo.html"))
+ var content bytes.Buffer
+ _ = contentTmpl.ExecuteTemplate(&content, filename, nil)
+
var buf bytes.Buffer
- _ = callbackTmpl.Execute(&buf, callbackData{Content: string(content)})
+ _ = callbackTmpl.Execute(&buf, callbackData{Content: content.String()})
return buf.String()
}
diff --git a/internal/auth/callback.html b/internal/auth/callback.html
index cc4808f4..e329881b 100644
--- a/internal/auth/callback.html
+++ b/internal/auth/callback.html
@@ -13,7 +13,7 @@
body {
align-items: center;
- background: #f6f2ef;
+ background: #f5faf6;
color: #333;
display: flex;
font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
diff --git a/internal/auth/callback_denied.html b/internal/auth/callback_denied.html
index cb24956c..18c03119 100644
--- a/internal/auth/callback_denied.html
+++ b/internal/auth/callback_denied.html
@@ -1,8 +1,5 @@