diff --git a/index.html b/index.html
index 254f92b..abe16b3 100644
--- a/index.html
+++ b/index.html
@@ -4,7 +4,7 @@
-
+
diff --git a/package.json b/package.json
index e2e0d5e..a9a1a5a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "amerc-site",
- "version": "0.43.0-lean",
+ "version": "0.44.0-roster",
"private": true,
"type": "module",
"scripts": {
diff --git a/src/AgentPlatform.jsx b/src/AgentPlatform.jsx
index a7b7f85..aeb91eb 100644
--- a/src/AgentPlatform.jsx
+++ b/src/AgentPlatform.jsx
@@ -28,14 +28,17 @@ export function AgentBrowse({ auth, setRoute }) {
return (
-
-
Browse Agents
-
setQ(e.target.value)} />
+
+
+
The mercenary roster
+
Hire a ready-made agent by skill and tag — chat with it, embed it on your site, or drive its terminal. Bring your own and it joins the roster.
+
+
setQ(e.target.value)} />
-
+
{Object.entries(tags).sort((a, b) => b[1] - a[1]).map(([t, n]) => (
-
+
))}
{err &&
{err}
}
@@ -54,6 +57,14 @@ export function AgentBrowse({ auth, setRoute }) {
))}
+ {classes.length > 0 && (
+
+ )}
{!classes.length && (
No agents here yet — be the first.
diff --git a/src/Scene2D.jsx b/src/Scene2D.jsx
index 3c5d83f..f3e6305 100644
--- a/src/Scene2D.jsx
+++ b/src/Scene2D.jsx
@@ -7,7 +7,7 @@ import Account from './Account.jsx';
import TavernGame from './TavernGame.jsx';
import { api } from './api.js';
-const RELEASE = '0.43.0-lean';
+const RELEASE = '0.44.0-roster';
const NAV = [
{ id: 'home', label: 'Tavern' },
diff --git a/src/styles.css b/src/styles.css
index 2067db1..1bfcf83 100644
--- a/src/styles.css
+++ b/src/styles.css
@@ -1252,3 +1252,18 @@ button {
.ap-booth-welcome li { color: #d6ccec; font-size: 13px; line-height: 1.55; }
.ap-booth-welcome li b { color: #f0e9ff; }
.ap-on-word { color: #36f0b0; font-weight: 600; }
+
+/* browse storefront header + publish-your-own card (0.44 vividness) */
+.ap-store-head { display: flex; align-items: flex-end; gap: 18px; margin-bottom: 16px; flex-wrap: wrap; }
+.ap-store-intro { flex: 1 1 320px; }
+.ap-store-intro h2 { font-family: Georgia, "Times New Roman", serif; font-size: 26px; color: #fff; margin: 0 0 6px; text-shadow: 1px 1px 0 rgba(0,0,0,0.4); }
+.ap-store-intro p { margin: 0; color: #b6a7d4; font-size: 13.5px; line-height: 1.6; max-width: 64ch; }
+.ap-store-head .ap-search { margin-left: 0; min-width: 200px; }
+.ap-card-add { align-items: flex-start; justify-content: center; text-align: left; background: linear-gradient(180deg, rgba(39,216,255,0.05), rgba(20,14,30,0.3));
+ border: 1.5px dashed #3a5a6e; transition: border-color 0.18s, transform 0.18s, box-shadow 0.18s; }
+.ap-card-add:hover { border-color: #46c8e0; transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0,0,0,0.35); }
+.ap-add-plus { font-size: 26px; line-height: 1; color: #46c8e0; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 11px;
+ background: rgba(39,216,255,0.1); border: 1px solid rgba(39,216,255,0.25); }
+.ap-card-add strong { color: #eaf6ff; font-size: 15px; }
+.ap-card-add p { margin: 0; color: #9d8fc0; font-size: 12.5px; line-height: 1.55; }
+.ap-add-cta { color: #46c8e0; font-size: 12.5px; font-weight: 600; margin-top: 2px; }