// Hero, Story, Values, Journal, Footer — page sections function Hero({ onShop }) { return (
spring · volume 04

raised by the coast.

heavyweight basics for the family that lives in salt water. made slowly, built for the second kid, too.

— the little linen set, on location in malibu
); } function ProductTile({ p, onOpen }) { const [hover, setHover] = React.useState(false); return (
onOpen(p)} onMouseEnter={() => setHover(true)} onMouseLeave={() => setHover(false)} style={{ cursor: 'pointer' }}>
{p.tag &&
{p.tag}
}
{p.name}
{p.sub}
${p.price} {p.meta}
); } function Collection({ products, onOpen }) { return (
shop · spring

pieces that outlast the phase.

view everything
{products.map(p => )}
); } function Values() { const vals = [ { icon: 'leaf', title: 'grown slowly.', body: 'small batches in portugal and peru. no airfreight, no overstock.' }, { icon: 'heart', title: 'built to inherit.', body: 'designed so the hand-me-down is still the good one — for the second kid, and the third.' }, { icon: 'ship', title: 'carbon-neutral shipping.', body: 'every order. we pay the difference so you don\'t think about it.' }, ]; return (
{vals.map((v, i) => (
{v.title}
{v.body}
))}
); } function StoryBand() { return (
our story

started with a hand-me-down.

a pair of linen shorts, passed cousin to cousin, three summers deep — softer than the day they were sewn.

we started moms and groms because kids clothes shouldn't end up in a landfill before they're broken in. every piece is designed to be worn, washed, and worn again — by the little one after yours.

); } function Journal() { const posts = [ { title: 'a morning in malibu, with the vargas family.', tag: 'field notes', image: 'assets/photos/placeholder-clay.jpg' }, { title: 'how we picked our portuguese mill.', tag: 'behind the seams', image: 'assets/photos/placeholder-fern.jpg' }, { title: 'three ways to pack for a long beach day.', tag: 'guides', image: 'assets/photos/placeholder-wash.jpg' }, ]; return (
the journal

dispatches from the coast.

{posts.map((p, i) => (
{p.tag}
{p.title}
))}
); } function Newsletter() { const [email, setEmail] = React.useState(''); const [sent, setSent] = React.useState(false); return (
stay close

postcards. not spam.

one letter a month. drop dates, field notes, the occasional recipe. nothing else.

{sent ? (
you're on the list. see you at sunrise.
) : (
{ e.preventDefault(); setSent(true); }} style={{ display: 'flex', gap: 8, maxWidth: 440, margin: '0 auto' }}> setEmail(e.target.value)} placeholder="your email" style={{ flex: 1, padding: '14px 16px', borderRadius: 8, border: '1px solid var(--tide-500)', background: 'var(--tide-800)', color: 'var(--sand-100)', fontFamily: 'var(--font-sans)', fontSize: 15, outline: 'none' }} />
)}
); } function Footer() { return ( ); } Object.assign(window, { Hero, Collection, ProductTile, Values, StoryBand, Journal, Newsletter, Footer });