/* Page templates: PageHero (large title block) and Section (content row). * Used across Work / Studio / Process / Journal / Contact. * * Responsive: padding shrinks on mobile/tablet via window.useViewport. */ const pageStyles = { hero: { padding: "100px 56px 64px", display: "flex", flexDirection: "column", gap: 24, maxWidth: 1240, margin: "0 auto", width: "100%", }, heroTablet: { padding: "80px 32px 48px", gap: 20 }, heroMobile: { padding: "56px 20px 36px", gap: 16 }, heroTitle: { fontFamily: "Helvetica Neue, Helvetica, Arial, sans-serif", fontWeight: 500, fontSize: "clamp(40px, 5.6vw, 84px)", lineHeight: 0.98, letterSpacing: "-0.035em", margin: 0, color: "var(--fg)", textWrap: "balance", maxWidth: 1000, }, heroTitleMobile: { fontSize: "clamp(34px, 9vw, 52px)", lineHeight: 1.02 }, heroItalic: { color: "var(--fg-dim)", fontStyle: "italic", fontWeight: 300 }, heroSub: { fontSize: 18, lineHeight: 1.55, color: "var(--fg-dim)", maxWidth: 620, margin: "8px 0 0", textWrap: "pretty", }, heroSubMobile: { fontSize: 16, margin: "4px 0 0" }, section: { padding: "64px 56px", maxWidth: 1240, margin: "0 auto", width: "100%", }, sectionTablet: { padding: "48px 32px" }, sectionMobile: { padding: "32px 20px" }, sectionTitle: { fontFamily: "ui-monospace, 'SF Mono', Menlo, Consolas, monospace", fontSize: 11, letterSpacing: "0.22em", textTransform: "uppercase", color: "var(--fg-faint)", margin: "0 0 28px", paddingBottom: 12, borderBottom: "1px solid var(--line)", }, sectionTitleMobile: { margin: "0 0 20px", paddingBottom: 10, fontSize: 10 }, }; function PageHero({ eyebrow, title, italicTail, sub }) { const { isMobile, isTablet } = window.useViewport(); return (
{eyebrow ? {eyebrow} : null}

{title} {italicTail ? {italicTail} : null}

{sub ? (

{sub}

) : null}
); } function Section({ title, children }) { const { isMobile, isTablet } = window.useViewport(); return (
{title ? (

{title}

) : null} {children}
); } Object.assign(window, { PageHero, Section });