/* global React */ /** Intro strip — wide horizontal callout: short statement + supporting paragraph. */ function IntroStrip({ headA, headItalic, body, dark = true }) { return (

{headA} {headItalic && {headItalic}}

{body}

); } /** Vertical timeline — dotted left rail with timeline items. */ function Timeline({ heading, italic, items = [], dark = true }) { return (

{heading} {italic && {italic}}

{items.map((it, i) => (
{it.tag}

{it.title}

{it.body}

))}
); } /** Values grid — 2x2 grid of small value cards. */ function ValuesGrid({ heading, italic, items = [] }) { return (

{heading} {italic && {italic}}

{items.map((v, i) => (
{v.icon}

{v.title}

{v.body}

))}
); } /** Outside-of-work cards — image-on-top hobby/personal cards. */ function OutsideGrid({ heading, italic, items = [] }) { return (

{heading} {italic && {italic}}

{items.map((it, i) => (
{it.img && {it.title}}

{it.title}

{it.body}

))}
); } /** Story two-column block — text on left, big photo on right. */ function StoryBlock({ eyebrow, headA, headItalic, paragraphs = [], img }) { return (
{eyebrow &&
{eyebrow}
}

{headA} {headItalic && {headItalic}}

{paragraphs.map((p, i) =>

{p}

)}
); } window.IntroStrip = IntroStrip; window.Timeline = Timeline; window.ValuesGrid = ValuesGrid; window.OutsideGrid = OutsideGrid; window.StoryBlock = StoryBlock;