diff --git a/pages/index.tsx b/pages/index.tsx index 0608616..4668e58 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -111,11 +111,12 @@ export default function Home() {
Bone Lord Bob
diff --git a/pages/world/characters.tsx b/pages/world/characters.tsx index 242407c..37b5532 100644 --- a/pages/world/characters.tsx +++ b/pages/world/characters.tsx @@ -37,113 +37,89 @@ const s = { } as React.CSSProperties, grid: { display: "grid", - gridTemplateColumns: "repeat(auto-fill, minmax(280px, 1fr))", - gap: "24px", + gridTemplateColumns: "repeat(3, 1fr)", + gap: "20px", marginBottom: "40px", } as React.CSSProperties, card: { - background: "rgba(15, 8, 24, 0.82)", - border: "1px solid rgba(180,140,255,0.18)", - borderRadius: "6px", - overflow: "hidden" as const, + background: "rgba(15, 5, 28, 0.72)", + border: "1px solid rgba(160, 100, 255, 0.18)", + borderRadius: "8px", + overflow: "hidden", + backdropFilter: "blur(6px)", + display: "flex", + flexDirection: "column" as const, transition: "border-color 0.2s, transform 0.2s", } as React.CSSProperties, cardImage: { - position: "relative" as const, - aspectRatio: "2/3", width: "100%", - background: "#06030f", - overflow: "hidden" as const, + aspectRatio: "2/3", + position: "relative" as const, + overflow: "hidden", } as React.CSSProperties, - cardImagePlaceholder: { - position: "absolute" as const, - inset: 0, - display: "flex", - alignItems: "center", - justifyContent: "center", - fontSize: "4rem", - opacity: 0.12, + cardImageWide: { + width: "100%", + aspectRatio: "3/2", + position: "relative" as const, + overflow: "hidden", } as React.CSSProperties, cardBody: { - padding: "20px 22px 24px", + padding: "24px 24px 28px", + } as React.CSSProperties, + cardEmoji: { + fontSize: "2.4rem", + display: "block", + marginBottom: "16px", } as React.CSSProperties, cardName: { fontFamily: "'Georgia', 'Times New Roman', serif", - fontSize: "1.2rem", + fontSize: "1.3rem", fontWeight: 700, color: "#e8dcc8", - marginBottom: "4px", + marginBottom: "6px", } as React.CSSProperties, cardRole: { - fontSize: "0.72rem", + fontSize: "0.75rem", fontWeight: 700, - letterSpacing: "0.14em", + letterSpacing: "0.12em", textTransform: "uppercase" as const, color: "#c0392b", - marginBottom: "12px", + marginBottom: "14px", } as React.CSSProperties, cardDesc: { - fontSize: "0.88rem", + fontSize: "0.92rem", color: "#9e9080", - lineHeight: 1.7, + lineHeight: 1.65, + } as React.CSSProperties, + featuredCard: { + gridColumn: "1 / -1", + display: "grid", + gridTemplateColumns: "1fr 1fr", + background: "rgba(15, 5, 28, 0.72)", + border: "1px solid rgba(192, 57, 43, 0.35)", + borderRadius: "8px", + overflow: "hidden", + backdropFilter: "blur(6px)", + } as React.CSSProperties, + featuredImage: { + position: "relative" as const, + minHeight: "420px", + } as React.CSSProperties, + featuredBody: { + padding: "48px 40px", + display: "flex", + flexDirection: "column" as const, + justifyContent: "center" as const, } as React.CSSProperties, credit: { textAlign: "center" as const, - fontSize: "0.8rem", + fontSize: "0.82rem", color: "#9e9080", - opacity: 0.55, marginTop: "8px", letterSpacing: "0.04em", } as React.CSSProperties, }; -const CHARACTERS = [ - { - image: null, - emoji: "๐Ÿฆด", - name: "Bone Lord Bob", - role: "The Protagonist", - desc: "A man cursed to walk between worlds โ€” carrying the weight of the dead and the rage of the living. He answers to no one.", - }, - { - image: "/character-cat.jpg", - imageAlt: "Character โ€” ???", - emoji: "๐Ÿพ", - name: "???", - role: "Coming Soon", - desc: "A creature that shouldn't exist โ€” and yet here it is, collar and all. Whatever side it's on, it has teeth.", - }, - { - image: "/character-bookie.jpg", - imageAlt: "Character โ€” ???", - emoji: "๐Ÿ“–", - name: "???", - role: "Coming Soon", - desc: "Knowledge is power in the Bone Kingdom. This one has both โ€” and charges accordingly. The ledger is always open.", - }, - { - image: null, - emoji: "๐Ÿ”ฅ", - name: "???", - role: "Coming Soon", - desc: "A figure from the oldest part of the war. Their allegiance changes everything.", - }, - { - image: null, - emoji: "โš”๏ธ", - name: "???", - role: "Coming Soon", - desc: "Every legend needs its foil. Every bone lord needs someone willing to break them.", - }, - { - image: null, - emoji: "๐ŸŒ‘", - name: "???", - role: "Coming Soon", - desc: "Some figures are felt before they are seen. This one you feel first.", - }, -]; - export default function Characters() { return ( - {CHARACTERS.map((c, i) => ( -
- {/* Art panel */} -
- {c.image ? ( - {c.imageAlt - ) : ( -
{c.emoji}
- )} -
- {/* Info */} -
-
{c.name}
-
{c.role}
-

{c.desc}

-
+ {/* BLB โ€” full-width featured card */} +
+
+ Bone Lord Bob on his throne
- ))} +
+ The Protagonist +
Bone Lord Bob
+
Lord of the Bone Kingdom
+

+ A man cursed to walk between worlds โ€” carrying the weight of the + dead and the rage of the living. Seated on a throne of skulls, + flanked by candlelight, commanding what others cannot name. + He answers to no one. +

+
+
+ + {/* Unknown character 1 โ€” skeleton dragon-thing */} +
+
+ Unknown character โ€” identity unrevealed +
+
+
???
+
???
+

+ The bone tag around its neck says something. No one has gotten close enough to read it. +

+
+
+ + {/* Unknown character 2 โ€” robed scholar */} +
+
+ Unknown character โ€” identity unrevealed +
+
+
???
+
???
+

+ A robed scholar of the dead. The book glows. The eyes glow brighter. What it reads, it remembers forever. +

+
+
+ + {/* Unknown character 3 โ€” horned warrior */} +
+
+ Unknown character โ€” identity unrevealed +
+
+
???
+
???
+

+ She stands in armor forged from shadow and gold. The horns are not a costume. The sword is not decorative. +

+
+
+ + {/* Unknown character 4 โ€” skull knight */} +
+
+ Unknown character โ€” identity unrevealed +
+
+
???
+
???
+

+ Skull-adorned armor. A blade that has ended things that should not have been ended. He doesn't speak. He doesn't need to. +

+
+
+ + {/* Coming Soon placeholder */} +
+
+ ๐Ÿ”ฎ +
???
+
Coming Soon
+

+ More characters will be revealed as the story unfolds. The roster goes deeper than you think. +

+
+
+

Character art by Aaron Pressey

diff --git a/pages/world/gallery.tsx b/pages/world/gallery.tsx index c02308b..c675973 100644 --- a/pages/world/gallery.tsx +++ b/pages/world/gallery.tsx @@ -1,4 +1,5 @@ import { useState } from "react"; +import Image from "next/image"; import SiteLayout from "@/pages/components/SiteLayout"; type Tab = "official" | "fan"; @@ -136,13 +137,41 @@ export default function Gallery() { {/* Tab content */} {activeTab === "official" && ( -
- โš”๏ธ -
Official Art
-

- Official artwork coming soon. -
- Art by Aaron Pressey. +

+
+ {[ + { src: "/char-blb-throne.png", alt: "Bone Lord Bob on his throne โ€” art by Aaron Pressey" }, + { src: "/art-bone-squad.png", alt: "The Bone Squad โ€” four skeletal figures โ€” art by Aaron Pressey" }, + { src: "/char-unknown-1.jpg", alt: "Unknown character โ€” art by Aaron Pressey" }, + { src: "/char-unknown-2.jpg", alt: "Unknown robed scholar โ€” art by Aaron Pressey" }, + { src: "/char-unknown-3.jpg", alt: "Unknown horned warrior โ€” art by Aaron Pressey" }, + { src: "/char-unknown-4.jpg", alt: "Unknown skull knight โ€” art by Aaron Pressey" }, + ].map((img, i) => ( +
+ {img.alt} +
+ ))} +
+

+ Art by Aaron Pressey ยท More coming soon

)} diff --git a/public/art-bone-squad.png b/public/art-bone-squad.png new file mode 100644 index 0000000..93f3ea7 Binary files /dev/null and b/public/art-bone-squad.png differ diff --git a/public/blb-throne.png b/public/blb-throne.png new file mode 100644 index 0000000..46037c4 Binary files /dev/null and b/public/blb-throne.png differ diff --git a/public/char-blb-throne.png b/public/char-blb-throne.png new file mode 100644 index 0000000..46037c4 Binary files /dev/null and b/public/char-blb-throne.png differ diff --git a/public/char-unknown-3.jpg b/public/char-unknown-3.jpg new file mode 100644 index 0000000..b924ca6 Binary files /dev/null and b/public/char-unknown-3.jpg differ diff --git a/public/char-unknown-4.jpg b/public/char-unknown-4.jpg new file mode 100644 index 0000000..957a8fe Binary files /dev/null and b/public/char-unknown-4.jpg differ diff --git a/public/character-girl-soldier.jpg b/public/character-girl-soldier.jpg new file mode 100644 index 0000000..b924ca6 Binary files /dev/null and b/public/character-girl-soldier.jpg differ diff --git a/public/character-minions.png b/public/character-minions.png new file mode 100644 index 0000000..93f3ea7 Binary files /dev/null and b/public/character-minions.png differ diff --git a/public/character-soldier-unmasked.jpg b/public/character-soldier-unmasked.jpg new file mode 100644 index 0000000..957a8fe Binary files /dev/null and b/public/character-soldier-unmasked.jpg differ