1:"$Sreact.fragment" 2:I[93529,["/_next/static/chunks/15ot7q~fk9w57.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/0d1~b03563zyv.js"],"default"] d:I[97367,["/_next/static/chunks/15ot7q~fk9w57.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"] e:"$Sreact.suspense" 0:{"rsc":["$","$1","c",{"children":[[["$","div",null,{"className":"relative bg-k-primary overflow-hidden","children":[["$","div",null,{"className":"absolute inset-0 bg-gradient-to-br from-k-primary via-k-primary-alt/20 to-k-primary"}],["$","div",null,{"className":"absolute inset-0 bg-[radial-gradient(ellipse_at_top_right,rgba(84,138,247,0.12),transparent_60%)]"}],["$","div",null,{"className":"relative max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 py-14 sm:py-20","children":[["$","p",null,{"className":"text-k-primary-alt text-xs font-bold uppercase tracking-widest mb-3","children":"Portfolio"}],["$","h1",null,{"className":"text-3xl sm:text-4xl font-bold text-white leading-tight","children":"Projects"}],["$","p",null,{"className":"mt-4 text-white/75 text-lg max-w-2xl leading-relaxed","children":"A selection of things I've built — from climate data tools to plant e-commerce."}],["$","div",null,{"className":"mt-8 w-16 h-1 bg-k-accent-sun rounded-full"}]]}]]}],["$","div",null,{"className":"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-16 lg:py-20","children":["$","div",null,{"className":"space-y-6","children":[["$","$L2","Klimo Insights",{"delay":0,"children":["$","a",null,{"href":"https://klimoinsights.com","target":"_blank","rel":"noopener noreferrer","className":"block group","children":["$","div",null,{"className":"p-6 sm:p-8 bg-k-card rounded-xl border-l-4 border-k-primary-alt shadow-sm hover:shadow-md transition-shadow","children":[["$","div",null,{"className":"flex flex-wrap items-center gap-2 mb-2","children":["$","span",null,{"className":"text-xs font-bold text-k-primary uppercase tracking-wider","children":"Extreme Heat"}]}],["$","h2",null,{"className":"text-xl font-bold text-k-text group-hover:text-k-primary transition-colors mb-3","children":"Klimo Insights"}],["$","p",null,{"className":"text-sm text-k-text-secondary leading-relaxed mb-4","children":"Co-founded Klimo Insights — building operational WBGT forecasting, hyperlocal heat monitoring, and climate-health data systems for research, policy, and public safety."}],["$","div",null,{"className":"flex flex-wrap items-center gap-2","children":[[["$","span","Python",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Python"}],["$","span","AWS",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"AWS"}],["$","span","Weather APIs",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Weather APIs"}],["$","span","Next.js",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Next.js"}]],["$","span",null,{"className":"ml-auto text-sm font-semibold text-k-primary-alt group-hover:text-k-primary transition-colors","children":"Visit →"}]]}]]}]}]}],["$","$L2","WBGT Tools & Calculator",{"delay":60,"children":["$","a",null,{"href":"https://wbgt.klimoinsights.com","target":"_blank","rel":"noopener noreferrer","className":"block group","children":["$","div",null,{"className":"p-6 sm:p-8 bg-k-card rounded-xl border-l-4 border-k-accent-sun shadow-sm hover:shadow-md transition-shadow","children":[["$","div",null,{"className":"flex flex-wrap items-center gap-2 mb-2","children":["$","span",null,{"className":"text-xs font-bold text-k-primary uppercase tracking-wider","children":"Extreme Heat"}]}],["$","h2",null,{"className":"text-xl font-bold text-k-text group-hover:text-k-primary transition-colors mb-3","children":"WBGT Tools & Calculator"}],["$","p",null,{"className":"text-sm text-k-text-secondary leading-relaxed mb-4","children":"Wet Bulb Globe Temperature calculator and forecasting tools. Real-time and historical WBGT analysis for research and field applications."}],["$","div",null,{"className":"flex flex-wrap items-center gap-2","children":[[["$","span","Python",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Python"}],"$L3","$L4"],"$L5"]}]]}]}]}],"$L6","$L7","$L8","$L9","$La"]}]}]],["$Lb"],"$Lc"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"I_wRqF5m_3rLVclXwLBzY"} 3:["$","span","Next.js",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Next.js"}] 4:["$","span","Climate Data",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Climate Data"}] 5:["$","span",null,{"className":"ml-auto text-sm font-semibold text-k-primary-alt group-hover:text-k-primary transition-colors","children":"Visit →"}] 6:["$","$L2","Global Heat Resilience Service (GHRS)",{"delay":120,"children":["$","div",null,{"className":"group","children":["$","div",null,{"className":"p-6 sm:p-8 bg-k-card rounded-xl border-l-4 border-k-accent-sun shadow-sm hover:shadow-md transition-shadow","children":[["$","div",null,{"className":"flex flex-wrap items-center gap-2 mb-2","children":["$","span",null,{"className":"text-xs font-bold text-k-primary uppercase tracking-wider","children":"GEO / WMO"}]}],["$","h2",null,{"className":"text-xl font-bold text-k-text group-hover:text-k-primary transition-colors mb-3","children":"Global Heat Resilience Service (GHRS)"}],["$","p",null,{"className":"text-sm text-k-text-secondary leading-relaxed mb-4","children":"Consulting for the GEO Secretariat on climate-health risk assessment, urban heat resilience methodologies, and stakeholder engagement with WMO, C40 Cities, and IBM."}],["$","div",null,{"className":"flex flex-wrap items-center gap-2","children":[[["$","span","Climate-Health",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Climate-Health"}],["$","span","GIS",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"GIS"}],["$","span","Policy",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Policy"}],["$","span","EU Horizon",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"EU Horizon"}]],null]}]]}]}]}] 7:["$","$L2","CGHI Climate-Health Data Infrastructure",{"delay":180,"children":["$","div",null,{"className":"group","children":["$","div",null,{"className":"p-6 sm:p-8 bg-k-card rounded-xl border-l-4 border-k-primary shadow-sm hover:shadow-md transition-shadow","children":[["$","div",null,{"className":"flex flex-wrap items-center gap-2 mb-2","children":["$","span",null,{"className":"text-xs font-bold text-k-primary uppercase tracking-wider","children":"Duke Research"}]}],["$","h2",null,{"className":"text-xl font-bold text-k-text group-hover:text-k-primary transition-colors mb-3","children":"CGHI Climate-Health Data Infrastructure"}],["$","p",null,{"className":"text-sm text-k-text-secondary leading-relaxed mb-4","children":"Building systematic infrastructure for inventorying, standardizing, and harmonizing climate and health data across CGHI's four-continent observatory network. Reproducible pipelines, data catalogs, and researcher-facing tools."}],["$","div",null,{"className":"flex flex-wrap items-center gap-2","children":[[["$","span","Python",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Python"}],["$","span","R",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"R"}],["$","span","Xarray",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Xarray"}],["$","span","PostgreSQL",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"PostgreSQL"}],["$","span","AWS",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"AWS"}]],null]}]]}]}]}] 8:["$","$L2","Heat Policy Innovation Hub",{"delay":240,"children":["$","div",null,{"className":"group","children":["$","div",null,{"className":"p-6 sm:p-8 bg-k-card rounded-xl border-l-4 border-k-evergreen shadow-sm hover:shadow-md transition-shadow","children":[["$","div",null,{"className":"flex flex-wrap items-center gap-2 mb-2","children":["$","span",null,{"className":"text-xs font-bold text-k-primary uppercase tracking-wider","children":"Duke Research"}]}],["$","h2",null,{"className":"text-xl font-bold text-k-text group-hover:text-k-primary transition-colors mb-3","children":"Heat Policy Innovation Hub"}],["$","p",null,{"className":"text-sm text-k-text-secondary leading-relaxed mb-4","children":"Developing policy-facing climate indicators and heat-stress tools at Duke's Nicholas Institute for Energy, Environment & Sustainability."}],["$","div",null,{"className":"flex flex-wrap items-center gap-2","children":[[["$","span","Python",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Python"}],["$","span","R",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"R"}],["$","span","Climate Data",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Climate Data"}],["$","span","Policy Tools",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Policy Tools"}]],null]}]]}]}]}] 9:["$","$L2","Plants by J",{"delay":300,"children":["$","a",null,{"href":"https://plantsbyj.com","target":"_blank","rel":"noopener noreferrer","className":"block group","children":["$","div",null,{"className":"p-6 sm:p-8 bg-k-card rounded-xl border-l-4 border-k-evergreen shadow-sm hover:shadow-md transition-shadow","children":[["$","div",null,{"className":"flex flex-wrap items-center gap-2 mb-2","children":["$","span",null,{"className":"text-xs font-bold text-k-primary uppercase tracking-wider","children":"E-Commerce"}]}],["$","h2",null,{"className":"text-xl font-bold text-k-text group-hover:text-k-primary transition-colors mb-3","children":"Plants by J"}],["$","p",null,{"className":"text-sm text-k-text-secondary leading-relaxed mb-4","children":"Full-stack e-commerce platform for a specialty plant business. Custom product catalog, inventory management, Stripe payments, and shipping integration."}],["$","div",null,{"className":"flex flex-wrap items-center gap-2","children":[[["$","span","Next.js",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Next.js"}],["$","span","TypeScript",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"TypeScript"}],["$","span","Stripe",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Stripe"}],["$","span","Tailwind CSS",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Tailwind CSS"}]],["$","span",null,{"className":"ml-auto text-sm font-semibold text-k-primary-alt group-hover:text-k-primary transition-colors","children":"Visit →"}]]}]]}]}]}] a:["$","$L2","ClarkWx.com",{"delay":360,"children":["$","a",null,{"href":"https://clarkwx.com","target":"_blank","rel":"noopener noreferrer","className":"block group","children":["$","div",null,{"className":"p-6 sm:p-8 bg-k-card rounded-xl border-l-4 border-k-primary shadow-sm hover:shadow-md transition-shadow","children":[["$","div",null,{"className":"flex flex-wrap items-center gap-2 mb-2","children":["$","span",null,{"className":"text-xs font-bold text-k-primary uppercase tracking-wider","children":"Web Development"}]}],["$","h2",null,{"className":"text-xl font-bold text-k-text group-hover:text-k-primary transition-colors mb-3","children":"ClarkWx.com"}],["$","p",null,{"className":"text-sm text-k-text-secondary leading-relaxed mb-4","children":"This website — a personal site built with Next.js and Tailwind CSS 4. Markdown-based blog, project showcase, and responsive design."}],["$","div",null,{"className":"flex flex-wrap items-center gap-2","children":[[["$","span","Next.js",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Next.js"}],["$","span","TypeScript",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"TypeScript"}],["$","span","Tailwind CSS 4",{"className":"text-xs px-2.5 py-1 rounded-full bg-k-fill text-k-text-secondary font-medium","children":"Tailwind CSS 4"}]],["$","span",null,{"className":"ml-auto text-sm font-semibold text-k-primary-alt group-hover:text-k-primary transition-colors","children":"Visit →"}]]}]]}]}]}] b:["$","script","script-0",{"src":"/_next/static/chunks/0d1~b03563zyv.js","async":true}] c:["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}] f:null