diff --git a/app/globals.css b/app/globals.css index d1d2ea0..ef16faa 100644 --- a/app/globals.css +++ b/app/globals.css @@ -123,4 +123,21 @@ body { @apply bg-background text-foreground; } -} \ No newline at end of file +} + +.noise-overlay { + position: fixed; + inset: 0; + pointer-events: none; + z-index: 40; + opacity: 0.03; + filter: url(#openframe-noise); + mix-blend-mode: soft-light; +} + +.noise-overlay::before { + content: ""; + position: absolute; + inset: 0; + background: var(--foreground); +} diff --git a/app/layout.tsx b/app/layout.tsx index fc696b4..dbb5802 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,5 +1,5 @@ import type { Metadata } from "next"; -import { JetBrains_Mono } from "next/font/google"; +import { Geist_Mono, JetBrains_Mono } from "next/font/google"; import { ThemeProvider } from "@/components/theme-provider"; import { Toaster } from "sonner"; import "./globals.css"; @@ -11,6 +11,13 @@ const jetbrainsMono = JetBrains_Mono({ preload: true, }); +const geistMono = Geist_Mono({ + subsets: ['latin'], + variable: '--font-geist-mono', + display: 'swap', + preload: true, +}); + export const metadata: Metadata = { title: "OpenFrame - Video Feedback Platform", description: "Collect timestamped video feedback with text and voice comments", @@ -22,15 +29,21 @@ export default function RootLayout({ children: React.ReactNode; }>) { return ( - - + + + {children} +