// Hobbies.jsx — thomasgoodman.me const hobbyItems = [ { icon: ( ), label: 'Family', desc: 'The reason for everything.', }, { icon: ( ), label: 'Outdoors', desc: 'Exploring the bush and coast around Auckland.', }, { icon: ( ), label: 'Mountain Biking', desc: 'Trails, flow, and the occasional bail.', }, { icon: ( ), label: 'Snowboarding', desc: 'Hitting the slopes when the season allows.', }, { icon: ( ), label: 'RC Racing', desc: '1/10th scale on-road racing. Seriously competitive.', }, { icon: ( ), label: 'Gardening', desc: 'Growing things. The slow kind of debugging.', }, { icon: ( ), label: '3D Printing', desc: 'Designing and printing parts, mounts, and random useful things.', }, { icon: ( ), label: 'Coding', desc: 'Yes, also a hobby. Side projects keep the skills sharp.', }, ]; const Hobbies = () => (

Outside the Terminal

Based in Helensville, northwest of Auckland, with plenty of room to get outside. Most evenings you'll find Tommy tinkering with something - whether that's code, a printer, or a 1/10th scale car.

{hobbyItems.map((h, i) => ( ))}
); const HobbyCard = ({ hobby }) => { const [hovered, setHovered] = React.useState(false); return (
setHovered(true)} onMouseLeave={() => setHovered(false)} style={{ background: hovered ? 'var(--color-bg-raised)' : 'var(--color-bg-base)', border: `1px solid ${hovered ? 'var(--color-border-default)' : 'var(--color-border-subtle)'}`, borderRadius: 'var(--radius-lg)', padding: 'var(--space-5)', display: 'flex', flexDirection: 'column', gap: 'var(--space-2)', transition: 'all var(--motion-base)', cursor: 'default', }} >
{hobby.icon}
{hobby.label}

{hobby.desc}

); }; Object.assign(window, { Hobbies, HobbyCard });