-
{siteTitle} is an independent private shard project.
-
-
- {contactEmail}
-
- ·
-
- Shard Status
-
- ·
-
- Admin
-
-
+
+

+
+
{siteTitle} is an independent private shard project.
+
+
+ {contactEmail}
+
+ ·
+
+ Shard Status
+
+ ·
+
+ Admin
+
+
+
)
diff --git a/client/src/styles/theme.css b/client/src/styles/theme.css
index eae23ab..0683b98 100644
--- a/client/src/styles/theme.css
+++ b/client/src/styles/theme.css
@@ -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);
diff --git a/server/src/config/brand.js b/server/src/config/brand.js
index 9ee7a28..9b3a0c8 100644
--- a/server/src/config/brand.js
+++ b/server/src/config/brand.js
@@ -32,7 +32,7 @@ const brand = {
accent: process.env.BRAND_ACCENT_COLOR || '#7f99bd',
logo: process.env.BRAND_LOGO || '', // empty → no logo image rendered
hero: process.env.BRAND_HERO || '/assets/img/hero-moon.png',
- favicon: process.env.BRAND_FAVICON || '', // empty → no favicon link injected
+ favicon: process.env.BRAND_FAVICON || '/assets/img/favicon.ico', // Runic Gateway default emblem
}
// Discord embeds want an int (0xRRGGBB). Parse the accent hex once; fall back to