diff --git a/src/app/story/[storylineId]/og/route.tsx b/src/app/story/[storylineId]/og/route.tsx
index 2c2280c0..1bef4a54 100644
--- a/src/app/story/[storylineId]/og/route.tsx
+++ b/src/app/story/[storylineId]/og/route.tsx
@@ -73,7 +73,7 @@ export async function GET(
: truncateAddress(sl.writer_address);
const plotLabel = sl.plot_count === 1 ? "plot" : "plots";
const titleDisplay =
- sl.title.length > 70 ? `${sl.title.slice(0, 67)}...` : sl.title;
+ sl.title.length > 60 ? `${sl.title.slice(0, 57)}...` : sl.title;
const fonts = fontData
? [{ name: "Lora", data: fontData, weight: 700 as const }]
@@ -86,40 +86,45 @@ export async function GET(
width: "100%",
height: "100%",
display: "flex",
+ alignItems: "center",
+ justifyContent: "center",
backgroundColor: "#DDD3C2",
- padding: "32px",
+ padding: "40px 60px",
fontFamily: fontData ? "Lora" : "Georgia, serif",
}}
>
- {/* Notebook page */}
+ {/* Left: Moleskine notebook cover */}
- {/* Red margin line */}
+ {/* Elastic band */}
- {/* Ruled lines */}
+ {/* Ruled lines background */}
- {Array.from({ length: 16 }).map((_, i) => (
+ {Array.from({ length: 18 }).map((_, i) => (
))}
- {/* Content overlay */}
+ {/* Content inside notebook: title + author */}
- {/* Top: PlotLink branding */}
35 ? "32px" : "38px",
+ fontWeight: 700,
+ color: "#8B4513",
+ lineHeight: 1.25,
display: "flex",
- alignItems: "center",
- justifyContent: "space-between",
+ textAlign: "center",
+ justifyContent: "center",
+ maxWidth: "290px",
}}
>
-
- PlotLink
-
- {sl.genre && (
-
- {sl.genre}
-
- )}
+ {titleDisplay}
-
- {/* Center: Story title */}
-
40 ? "42px" : "52px",
- fontWeight: 700,
- color: "#2C1810",
- lineHeight: 1.2,
- display: "flex",
- }}
- >
- {titleDisplay}
-
-
- by {authorName}
-
+ by {authorName}
+
+
- {/* Bottom: metadata bar */}
+ {/* Right: Metadata on dark background */}
+
+ {/* Top: PlotLink branding */}
+
+ PlotLink
+
+
+ Tokenised collaborative fiction
+
+
+
+ {/* Middle: genre + stats */}
+
+ {sl.genre ? (
-
- {sl.plot_count} {plotLabel}
-
- {priceDisplay && (
-
- {priceDisplay}
-
- )}
-
-
- plotlink.xyz
+ {sl.genre}
+ ) : (
+
+ )}
+
+
+ {sl.plot_count} {plotLabel}
+
+ {priceDisplay && (
+
+ {priceDisplay}
+
+ )}
+
+ {/* Bottom: domain */}
+
+ plotlink.xyz
+
),