+ if (route === 'admin') return
;
diff --git a/src/styles.css b/src/styles.css
index 1af70b2..2a1efeb 100644
--- a/src/styles.css
+++ b/src/styles.css
@@ -1092,3 +1092,21 @@ button {
.ap-keys { margin-top: 22px; padding: 18px; border-radius: 14px; background: #130d20; border: 1px solid #271c3a; }
.ap-keys-mint { display: flex; gap: 8px; margin: 10px 0; flex-wrap: wrap; }
.ap-keys-mint input { flex: 1 1 200px; padding: 9px 11px; border-radius: 8px; background: #0a0f1a; border: 1px solid #2e2440; color: #eaf2ff; font-family: inherit; }
+
+/* footer + live status (0.29) */
+.td-page { display: flex; flex-direction: column; }
+.td-page-inner { flex: 1; }
+.ft { border-top: 1px solid #1c1430; background: linear-gradient(180deg, #0c0814, #07060c); padding: 30px 24px 18px; font-family: Inter, sans-serif; color: #b9a6cf; }
+.ft-cols { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 28px; }
+.ft-brand { max-width: 340px; }
+.ft-logo { display: flex; align-items: center; gap: 8px; }
+.ft-logo strong { font-family: Georgia, serif; font-size: 20px; color: #f3d27a; }
+.ft-brand p { font-size: 12px; line-height: 1.7; color: #9a86b8; margin: 8px 0 12px; }
+.ft-status { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: #8fe9c0; background: rgba(54,240,176,0.08); border: 1px solid rgba(54,240,176,0.3); border-radius: 16px; padding: 5px 12px; }
+.ft-status i { width: 8px; height: 8px; border-radius: 50%; background: #36f0b0; box-shadow: 0 0 0 0 rgba(54,240,176,0.7); animation: ap-pulse 1.8s infinite; }
+.ft-status.down { color: #ff9f9f; background: rgba(255,122,140,0.08); border-color: rgba(255,122,140,0.3); } .ft-status.down i { background: #ff7a8c; animation: none; }
+.ft-col h5 { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: #6f5b8c; margin: 0 0 10px; }
+.ft-col a, .ft-col button { display: block; color: #c3d0e6; font-size: 13px; text-decoration: none; background: none; cursor: pointer; padding: 4px 0; text-align: left; font-family: inherit; }
+.ft-col a:hover, .ft-col button:hover { color: #27d8ff; }
+.ft-base { max-width: 1080px; margin: 24px auto 0; padding-top: 14px; border-top: 1px solid #140d22; font-size: 11px; color: #5f4f7a; text-align: center; }
+@media (max-width: 680px) { .ft-cols { grid-template-columns: 1fr 1fr; } .ft-brand { grid-column: 1 / -1; } }