diff --git a/apps/web/features/landing/newhome/demo/value-board-demo.tsx b/apps/web/features/landing/newhome/demo/value-board-demo.tsx index 104dc1242..6ca72ad6b 100644 --- a/apps/web/features/landing/newhome/demo/value-board-demo.tsx +++ b/apps/web/features/landing/newhome/demo/value-board-demo.tsx @@ -175,11 +175,12 @@ export function ValueBoardDemo() { return ( // Scale the natural-size board down by the shared DEMO_ZOOM so it renders at - // the same scale as the hero demo. The visible box is sized to the scaled - // dimensions and centered; the inner box lays out at full size. + // the same scale as the hero demo. The visible box is a fixed size (the + // scaled dimensions); the inner box lays out at full size. The parent decides + // placement — in the values section it bleeds off the right page edge.
+

From scattered agent runs to work you can actually manage.

- - +
); } -// Value layout: a compact text column (eyebrow + title + From→To) above a -// full-width canvas, so the board demo gets the room to render at the real -// product's size and read as the same board the hero shows. -function ValueBlock({ +// Value layout: a compact text column on the left (vertically centered) and the +// live demo on the right. The demo keeps its real, shared-zoom size and bleeds +// off the right page edge instead of being squeezed into the column. +function ValueRow({ eyebrow, title, - from, - to, + description, children, }: { eyebrow: string; title: string; - from: string; - to: string; + description: string; children: React.ReactNode; }) { return ( -
-
+
+

{eyebrow}

-

+

{title}

-
-
-
- From -
-
{from}
-
-
-
- To -
-
{to}
-
-
+

{description}

- {/* Full-width demo canvas. landing-demo scopes the brand override + - scrollbar hiding the product components expect. */} -
+ {/* Demo shrinks to its own width (w-max) and overflows the 1fr track to + the right; the section's overflow-x-clip trims the bleed. landing-demo + scopes the brand override + scrollbar hiding the product expects. */} +
{children}