Files
zeekay 7ce84ffddf the binary serves the face it names
pkg/api embedded 56KB of genuine Geist and served it at /fonts/Geist-Variable.woff2, and the landing page's @font-face asked for it by name — so mpc.hanzo.ai painted its only pre-auth surface in a typeface the estate does not use. The bytes are Zen now; checked at the name table, family 'Zen', with the OFL notice the licence requires intact.

The dashboard was worse than wrong, it was blank: its layout published --font-geist-sans off the geist package while tailwind.config.ts asked for --font-zen-sans, so font-sans resolved to nothing and every screen fell back to the browser default. The docs layout imported Zen under the name GeistSans, which compiles and lies.
2026-08-28 11:36:40 -07:00

40 lines
1.0 KiB
TypeScript

import "./global.css"
import { RootProvider } from "fumadocs-ui/provider/next"
import { Zen } from "@hanzo/font/sans"
import { ZenMono } from "@hanzo/font/mono"
import type { ReactNode } from "react"
export const metadata = {
title: {
default: "Lux MPC - Threshold Signature Documentation",
template: "%s | Lux MPC",
},
description: "Multi-Party Computation for threshold signatures - ECDSA, EdDSA, and Taproot",
}
export default function Layout({ children }: { children: ReactNode }) {
return (
<html
lang="en"
className={`${Zen.variable} ${ZenMono.variable}`}
suppressHydrationWarning
>
<body className="min-h-svh bg-background font-sans antialiased">
<RootProvider
search={{
enabled: true,
}}
theme={{
enabled: true,
defaultTheme: "dark",
}}
>
<div className="relative flex min-h-svh flex-col bg-background">
{children}
</div>
</RootProvider>
</body>
</html>
)
}