diff --git a/echo/frontend/src/Router.tsx b/echo/frontend/src/Router.tsx
index 8c142108..61a80f0b 100644
--- a/echo/frontend/src/Router.tsx
+++ b/echo/frontend/src/Router.tsx
@@ -416,16 +416,16 @@ export const mainRouter = createBrowserRouter([
element: ,
index: true,
},
- {
- element: ,
- path: "projects/:projectId/host-guide",
- },
{
children: [
{
element: ,
path: "home",
},
+ {
+ element: ,
+ path: "projects/:projectId/host-guide",
+ },
{
// Splat so the tab lives in the path
// (/w/:workspaceId/settings/:tab). The component parses
diff --git a/echo/frontend/src/routes/project/HostGuidePage.tsx b/echo/frontend/src/routes/project/HostGuidePage.tsx
index b5724880..50e1819d 100644
--- a/echo/frontend/src/routes/project/HostGuidePage.tsx
+++ b/echo/frontend/src/routes/project/HostGuidePage.tsx
@@ -1387,6 +1387,13 @@ export const HostGuidePage = () => {
padding: space.page,
paddingTop: isFullscreen ? space.page : `calc(${space.page} + 48px)`,
transition: "padding-top 0.2s",
+ position: isFullscreen ? "fixed" : "relative",
+ top: isFullscreen ? 0 : undefined,
+ left: isFullscreen ? 0 : undefined,
+ width: isFullscreen ? "100vw" : "100%",
+ height: isFullscreen ? "100vh" : undefined,
+ zIndex: isFullscreen ? 1000 : undefined,
+ overflowY: isFullscreen ? "auto" : undefined,
}}
>
{/* Fullscreen exit zone — thin invisible strip at top edge */}
@@ -1410,7 +1417,7 @@ export const HostGuidePage = () => {
className="no-print"
style={{
left: 0,
- position: "fixed",
+ position: isFullscreen ? "fixed" : "absolute",
right: 0,
top: 0,
transform: isFullscreen ? "translateY(-100%)" : "translateY(0)",