// Section components // ====== NAV ====== function Nav() { const { t } = useLang(); return ( ); } // ====== HERO ====== function Hero() { const { t } = useLang(); return (
{/* Eyes scattered around the hero, each blinking on its own clock */}
Dimension Disrupt

Dimension Disrupt

{t.hero.subtitle}

{t.hero.tags.map((tag, i) => {tag} )}
); } // ====== GAME ====== function GameSection() { const { t } = useLang(); const pillarMeta = [ { n: "I", color: "p-green", icon: }, { n: "II", color: "p-violet", icon: }, { n: "III", color: "p-magenta", icon: }]; const pillars = pillarMeta.map((m, i) => ({ ...m, ...t.game.pillars[i] })); const features = t.game.features; return (
{t.game.label}

{t.game.title1}
{t.game.title2}

{t.game.lede}

{pillars.map((p, i) =>
{t.game.pillarWord} {p.n}
{p.icon}

{p.title}

{p.copy}

)}
{t.game.featuresLabel}
    {features.map((f, i) =>
  • 0{i + 1}

    {f.t}

    {f.c}

  • )}
KEY ART
[ HERO + DUNGEON MAW ]
2400 × 3000
); } // ====== STUDIO ====== function StudioSection() { const { t } = useLang(); const [m0, m1] = t.studio.members; return (
{t.studio.label}

{t.studio.title1}
{t.studio.title2}

{t.studio.lede}

PORTRAIT — CHARLIE
1200 × 1600

Charlie

{m0.role}

{m0.bio}

{t.studio.mainsK} {m0.mains}
{t.studio.fearsK} {m0.fears}
PORTRAIT — MABU
1200 × 1600

Mabu

{m1.role}

{m1.bio}

{t.studio.mainsK} {m1.mains}
{t.studio.fearsK} {m1.fears}
); } // ====== DEVLOG ====== function DevlogSection() { const { t } = useLang(); const postMeta = [ { featured: true, date: "12 · 05 · 26", thumb: "DEVLOG IMG · DUNGEON TILES" }, { date: "03 · 05 · 26", thumb: "DEVLOG IMG · SLIME ANIM" }, { date: "21 · 04 · 26", thumb: "DEVLOG IMG · SANITY UI" }]; const posts = postMeta.map((m, i) => ({ ...m, ...t.devlog.posts[i] })); return (
{t.devlog.label}

{t.devlog.title1}
{t.devlog.title2}

{t.devlog.all}
); } // ====== FOOTER ====== function Footer() { const { t } = useLang(); return ( ); } Object.assign(window, { Nav, Hero, GameSection, StudioSection, DevlogSection, Footer });