```embedhtml
<style>
-.d{font:inherit;color:inherit;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:4px 0 8px}
+.d{font:inherit;color:inherit;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:4px 0 8px}
.o{border:1px solid color-mix(in srgb,var(--ink,#1d1d1b) 18%,transparent);border-radius:14px;padding:14px 16px;background:var(--card,#fff);display:flex;flex-direction:column;gap:8px}
-.o.a{border-top:4px solid #e0a43a;background:linear-gradient(180deg,color-mix(in srgb,#e0a43a 22%,var(--card,#fff)),var(--card,#fff) 60%)}.o.c{border-top:4px solid #b07cf0;background:linear-gradient(180deg,color-mix(in srgb,#b07cf0 22%,var(--card,#fff)),var(--card,#fff) 60%)}.o.c .k{color:#b07cf0;opacity:1;font-weight:600}.o.c .go{background:#b07cf0;border-color:#b07cf0;color:#fff}
-.o.b{border-color:color-mix(in srgb,#378ADD 60%,transparent);border-top:4px solid #6c8cff;background:linear-gradient(180deg,color-mix(in srgb,#6c8cff 22%,var(--card,#fff)),var(--card,#fff) 60%)}
-.o.a .k{color:#e0a43a;opacity:1;font-weight:600}.o.b .k{color:#6c8cff;opacity:1;font-weight:600}
-.k{font-size:12px;letter-spacing:.06em;text-transform:uppercase;opacity:.65}
+.o.a{border-top:4px solid #e0a43a;background:linear-gradient(180deg,color-mix(in srgb,#e0a43a 22%,var(--card,#fff)),var(--card,#fff) 60%)}
+.o.b{border-top:4px solid #6c8cff;background:linear-gradient(180deg,color-mix(in srgb,#6c8cff 22%,var(--card,#fff)),var(--card,#fff) 60%)}
+.o.c{border-top:4px solid #b07cf0;background:linear-gradient(180deg,color-mix(in srgb,#b07cf0 22%,var(--card,#fff)),var(--card,#fff) 60%)}
+.o.a .k{color:#e0a43a}.o.b .k{color:#6c8cff}.o.c .k{color:#b07cf0}
+.k{font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.t{font-size:18px;font-weight:600}
.o p{margin:0;line-height:1.45}
.o ul{margin:0;padding-left:18px;line-height:1.5}
.scale{grid-column:1/-1;height:6px;border-radius:99px;background:linear-gradient(90deg,#e0a43a,#4fb3a9,#6c8cff,#b07cf0)}
-.d.off .go{opacity:.45;pointer-events:none}
-.wait{grid-column:1/-1;font-size:14px;opacity:.7;margin:0}
.go{margin-top:auto;align-self:flex-start;padding:7px 14px;border-radius:9px;border:1px solid currentColor;text-decoration:none;color:inherit}
+.o.a .go{background:#e0a43a;border-color:#e0a43a;color:#111}.o.b .go{background:#6c8cff;border-color:#6c8cff;color:#fff}.o.c .go{background:#b07cf0;border-color:#b07cf0;color:#fff}
-.o.b .go{background:#6c8cff;border-color:#6c8cff;color:#fff}
+.o.off{opacity:.5;filter:grayscale(1)}.o.off .go{pointer-events:none}
+.soon{font-size:13px;opacity:.8;margin:0}
</style>
+<div class="d" id="doors">
-<div class="d off" id="doors">
<div class="scale"></div>
-<p class="wait" id="dw">Connect your AI first; the doors open when it is connected.</p>
<div class="o a">
<div class="k">Door A</div>
<div class="t">Keep using your prompt</div>
<p>Stay in your AI's own chat: say what you want, it builds it here.</p>
-<ul><li>Nothing to set up</li><li>Your words, typed in your AI's app</li></ul>
-<a class="go" href="/topics/Help:WorkWithYourPrompt" target="_top">I'm happy with this →</a>
+<ul><li>Connect your AI in three steps</li><li>Your words, typed in your AI's app</li></ul>
+<a class="go" href="/topics/AgentOnboardPrompt" target="_top">Connect your AI →</a>
</div>
<div class="o b">
<div class="k">Door B · step up</div>
<div class="t">Upgrade to a chat loop</div>
-<p>Your AI joins the chat inside d2 and answers you here, on the page you're looking at, with TurboChat: its options come as a pad you tap instead of type.</p>
-<ul><li>Chat beside every page, no copy-paste</li><li>Tap to pick, one CONTINUE sends it</li><li>The full experience</li></ul>
+<p>Your AI joins the chat inside d2 and answers you here, beside the page you're looking at, with TurboChat: its options come as a pad you tap instead of type.</p>
+<ul><li>One line to paste, and it's connected</li><li>Chat beside every page, no copy-paste</li></ul>
+<a class="go" href="/page/AgentOnboardLoop" target="_top">Set up the chat loop →</a>
-<a class="go" href="/topics/Help:ChatLoop" target="_top">Set up the chat loop →</a>
</div>
-<div class="o c">
+<div class="o c" id="doorc">
<div class="k">Door C · full power</div>
-<div class="t">Run a background agent</div>
-<p>Your AI works for you while you're away: it runs on your Mac or Linux machine, picks up its tasks from your pipeline, answers your chats, and reports back on the board.</p>
-<ul><li>For people handy with Claude Code and a bit of scripting</li><li>A script starts it; it runs passes on its own</li><li>The full team: designer, and coders when you add them</li></ul>
-<a class="go" href="/page/AgentsOnboard" target="_top">Set up a background agent →</a>
+<div class="t">Run background agents</div>
+<p>Your agents work while you're away: on your Mac or Linux machine, they pick up tasks from your pipeline, answer your chats and report back on the board.</p>
+<ul><li>For people handy with Claude Code</li><li>Choose the roles, then where they run</li></ul>
+<p class="soon" id="csoon" hidden>On Pro and Conductor projects.</p>
+<a class="go" href="/page/AgentChooseRoles" target="_top">Choose your agents →</a>
</div>
</div>
<script>
+// Door C only on Pro and Conductor: the level from GET /api/v2/me (here.level)
+(async()=>{try{const m=await d2.api('GET','/api/v2/me');const lv=m&&m.here&&m.here.level;const c=document.getElementById('doorc');
+ if(lv==='hero'||lv==='creator'){c.classList.add('off');document.getElementById('csoon').hidden=false}
-// doors grey until this project's AI is connected (GET /api/v2/me → aiConnected), checked every 5 s, as Ready to prototype was
-const dd=document.getElementById('doors'),dw=document.getElementById('dw');
-async function chk(){try{const m=await d2.api('GET','/api/v2/me');if(m&&m.aiConnected){dd.classList.remove('off');dw.textContent='Your AI is connected. Pick a door.';return}}catch(e){}setTimeout(chk,5000)}
+ else if(lv){c.querySelector('.go').setAttribute('href','/page/AgentChooseRoles?level='+(lv==='master'?'master':'pro'))}}catch(e){}})();
-chk();
-// Door C (background agents) is for Pro and Conductor projects only
-(async()=>{try{const t=await d2.api('GET','/api/v2/topics/Settings:PROJECT');const x=typeof t==='string'?t:(t&&t.text)||'';const m=/^level:\s*(\w+)/m.exec(x);if(m&&(m[1]==='hero'||m[1]==='creator')){const c=document.querySelector('.o.c');if(c)c.remove()}}catch(e){}})();
</script>
```