/** * Hero — the front door. * * Left: kinetic headline (word-by-word entrance), sub-line, and two CTAs. * Right: the 3D PaperScene. * * The headline is intentionally set in Instrument Serif italic on the accent * words. That's the signature move — an editorial italic where every AI- * generated hero would put a color highlight. */ import { motion } from "motion/react"; import { PaperScene, type PaperState } from "./PaperScene"; interface Props { onCTAClick: () => void; paperState: PaperState; } const ITEM = { hidden: { y: 40, opacity: 0 }, visible: { y: 0, opacity: 1, transition: { duration: 0.9, ease: [0.16, 1, 0.3, 1] }, }, }; export function Hero({ onCTAClick, paperState }: Props) { return (
{/* Left column ------------------------------------------------------ */}
A structured-extraction service · v1
{" "} JSON.
Invoices, receipts, and SEC filings — parsed by GPT-5 nano, validated against Pydantic schemas, scored per field, and benchmarked across models. All the plumbing of a production extraction service, one API call away. How it works {/* Stat strip — the resume numbers, small, editorial. */}
{/* Right column: 3D scene ------------------------------------------- */}
); } function Line({ words }: { words: string[] }) { return ( <> {words.map((w, i) => ( {w} ))} ); } function Arrow() { return ( ); } function Stat({ label, value, note }: { label: string; value: string; note: string }) { return (
{label}
{value}

{note}

); }