// Sections: Services, About, Process, Stack, Marquee const { useState: useS2, useEffect: useE2, useRef: useR2 } = React; function Marquee({ items }) { const doubled = [...items, ...items]; return (
{doubled.map((item, i) => (
{item}
))}
); } function SectionHeader({ num, label, title, titleEm, subtitle }) { return (
[ {num} ] {label}

{title} {titleEm}

{subtitle &&

{subtitle}

}
); } function Services({ t }) { return (
{t.services.items.map((item, i) => (
— {item.num}

{item.title} {item.titleEm}

{item.desc}

{item.tags.map((tag, j) => ( {tag} ))}
))}
); } function About({ t }) { return (
[ {t.about.num} ] {t.about.label}

{t.about.p1[0]} {t.about.p1[1]}

{t.about.p2[0]} {t.about.p2[1]}{t.about.p2[2]}

{t.about.stats.map((s, i) => (
{s.num}{s.suffix}
{s.label}
))}
Luís Mendes
{t.about.portrait_label} {t.about.portrait_id}
"{t.about.portrait_caption}"
); } function Process({ t }) { return (
{t.process.items.map((item, i) => (
{item.num}

{item.title}

{item.desc}

Entregáveis
{item.outputs.map((o, j) => {o})}
))}
); } function StackIcon({ name }) { const icons = { 'Figma': , 'HTML / CSS': , 'JavaScript': , 'React': , 'WordPress': , 'Framer': , 'Webflow': , 'Notion': , }; return icons[name] ||
; } function Stack({ t }) { return (
{t.stack.items.map((item, i) => (
{item.name}
{item.desc}
))}
); } Object.assign(window, { Services, About, Process, Stack, Marquee, SectionHeader });