feat(brand): default favicon emblem + Powered By footer badge

Ship the Runic Gateway emblem as the baked-in default favicon so an
instance renders a tab icon with no BRAND_FAVICON set, and place a
left-justified "Powered By" badge in the site footer.

- brand.favicon now defaults to /assets/img/favicon.ico (was empty).
  BRAND_FAVICON still overrides per-instance.
- Add favicon.ico + powered-by.svg under client/public/assets/img.
- SiteFooter: badge pinned to the left of the centered content column
  (absolute on >=641px, stacked on mobile); info text stays centered.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XmHdsbnLzDMAVQkAoTQSBe
This commit is contained in:
2026-07-18 16:40:09 -05:00
parent a16092f13a
commit 352ae4f256
5 changed files with 66 additions and 18 deletions

View File

@@ -1009,6 +1009,47 @@ button[disabled] {
border-color: #8a4b47;
}
/* Site footer: powered-by badge left-justified, info centered. */
.site-footer-inner {
position: relative;
display: flex;
align-items: center;
justify-content: center;
gap: 16px;
max-width: 1100px;
margin: 0 auto;
}
.site-footer-badge {
height: 56px;
width: auto;
flex: 0 0 auto;
opacity: 0.85;
}
.site-footer-info {
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
text-align: center;
}
/* Pin the badge to the left while the info column stays visually centered. */
@media (min-width: 641px) {
.site-footer-badge {
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
}
}
@media (max-width: 640px) {
.site-footer-inner {
flex-direction: column;
}
.site-footer-badge {
height: 44px;
}
}
/* Draft-preview banner on the public renderer. */
.page-preview-banner {
border: 1px solid var(--accent);