svg.svelte-x2cws5{flex:none;width:1.125em;height:1.125em;overflow:visible}path.svelte-x2cws5{vector-effect:non-scaling-stroke;transition:transform .18s var(--ease-in-out)}.first.svelte-x2cws5{transform:translate(3px,6px)rotate(38deg)scaleX(1.14)}.second.svelte-x2cws5{transform:translate(12px,13px)rotate(-38deg)scaleX(1.14)}rect.svelte-x2cws5{transform-origin:50%;transition:opacity .18s var(--ease-out), transform .18s var(--ease-out)}.copied.svelte-x2cws5 .first:where(.svelte-x2cws5){transform:translate(5px,12px)rotate(45deg)scaleX(.57)}.copied.svelte-x2cws5 .second:where(.svelte-x2cws5){transform:translate(9px,16px)rotate(-45deg)scaleX(1.41)}.copied.svelte-x2cws5 rect:where(.svelte-x2cws5){opacity:0;transform:scale(.95)}.instant.svelte-x2cws5 path:where(.svelte-x2cws5),.instant.svelte-x2cws5 rect:where(.svelte-x2cws5){transition:none}@media (prefers-reduced-motion:reduce){path.svelte-x2cws5,rect.svelte-x2cws5{transition:none}}.copy-email.svelte-1gybr2e{font:inherit;color:inherit;cursor:pointer;transition:transform .12s var(--ease-out);background:0 0;border:0;align-items:center;padding:0;display:inline-flex;position:relative}.icon-copy.svelte-1gybr2e{width:2rem;height:2rem;color:var(--muted);border-radius:999px;justify-content:center}.text-copy.svelte-1gybr2e{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--hairline);text-decoration-color:var(--hairline);text-underline-offset:3px;font-weight:600}@media (hover:hover) and (pointer:fine){.icon-copy.svelte-1gybr2e:hover{background:var(--soft);color:var(--ink)}.text-copy.svelte-1gybr2e:hover{color:var(--muted);text-decoration-color:currentColor}}.copy-email.svelte-1gybr2e:active{transform:scale(.97)}.feedback-states.svelte-1gybr2e{display:grid;overflow:hidden}.feedback-state.svelte-1gybr2e{transition:transform .18s var(--ease-out), opacity .18s var(--ease-out);grid-area:1/1}.result.svelte-1gybr2e{opacity:0;transform:translateY(100%)}.changed.svelte-1gybr2e .idle:where(.svelte-1gybr2e){opacity:0;transform:translateY(-100%)}.changed.svelte-1gybr2e .result:where(.svelte-1gybr2e){opacity:1;transform:translateY(0)}.sr-only.svelte-1gybr2e{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.keyboard.svelte-1gybr2e .feedback-state:where(.svelte-1gybr2e),.keyboard.svelte-1gybr2e{transition:none}.keyboard.svelte-1gybr2e:active{transform:none}@media (prefers-reduced-motion:reduce){.copy-email.svelte-1gybr2e:active,.feedback-state.svelte-1gybr2e,.changed.svelte-1gybr2e .idle:where(.svelte-1gybr2e),.changed.svelte-1gybr2e .result:where(.svelte-1gybr2e){transform:none}.feedback-state.svelte-1gybr2e{transition:opacity .15s var(--ease-out)}}.project-thumb.svelte-112nps{aspect-ratio:16/10;border:1px solid var(--hairline);background:var(--soft);border-radius:.5rem;display:block;overflow:hidden}.project-thumb.svelte-112nps img{object-fit:cover;width:100%;height:100%;transition:transform .15s var(--ease-out);display:block}.project-placeholder.svelte-112nps{width:100%;height:100%;color:var(--muted);place-items:center;display:grid}.project-placeholder.svelte-112nps svg{width:1.5em;height:1.5em}@media (prefers-reduced-motion:reduce){.project-thumb.svelte-112nps img{transition:none}}.preference-icon.svelte-1sgudi2{opacity:0}.preference-icon.visible.svelte-1sgudi2{opacity:1}.icon-sun.svelte-lu0t34{opacity:0}.icon-moon.svelte-lu0t34,html[data-theme=dark] .icon-sun.svelte-lu0t34{opacity:1}html[data-theme=dark] .icon-moon.svelte-lu0t34{opacity:0}.shell.svelte-1uha8ag{max-width:40rem;margin:0 auto;padding:0 1.5rem}.hero.svelte-1uha8ag{padding:3.5rem 0 2.25rem}.hero-top.svelte-1uha8ag{justify-content:space-between;align-items:center;gap:1rem;display:flex}.identity.svelte-1uha8ag{flex-shrink:0;align-items:center;gap:1rem;display:flex}.avatar.svelte-1uha8ag{object-fit:contain;width:4rem;height:4rem;display:block}h1.svelte-1uha8ag{margin:0;font-weight:600;line-height:1.25}.role.svelte-1uha8ag{color:var(--muted);margin:.125rem 0 0}.top-links.svelte-1uha8ag{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.25rem;display:flex}.link.icon-link{width:2rem;height:2rem;color:var(--muted);transition:color .15s var(--ease-out), background-color .15s var(--ease-out), transform .12s var(--ease-out);border-radius:999px;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.link.icon-link:active{transform:scale(.96)}.link.icon-link svg{width:1.125em;height:1.125em}.section.svelte-1uha8ag{padding:2.25rem 0}h2.svelte-1uha8ag{margin:0 0 1.25rem;font-weight:600}.section.svelte-1uha8ag p:where(.svelte-1uha8ag){margin:0 0 .875rem}.section.svelte-1uha8ag p:where(.svelte-1uha8ag):last-child{margin-bottom:0}.about.svelte-1uha8ag p:where(.svelte-1uha8ag){color:var(--muted)}.about.svelte-1uha8ag .link{color:var(--ink)}.subtext.svelte-1uha8ag{color:var(--muted)}.jobs.svelte-1uha8ag{flex-direction:column;gap:2rem;display:flex}.job.svelte-1uha8ag{flex-direction:column;gap:0;display:flex}.job-row.svelte-1uha8ag{grid-template-columns:1fr auto;align-items:baseline;gap:0 1.5rem;display:grid}.job-role.svelte-1uha8ag{font-weight:600}.job-dates.svelte-1uha8ag,.job-location.svelte-1uha8ag{color:var(--muted);text-align:right}.job-detail.svelte-1uha8ag{color:var(--muted);margin:1.5rem 0 0}.stack-group.svelte-1uha8ag{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.stack-group.svelte-1uha8ag:last-child{margin-bottom:0}.stack-label.svelte-1uha8ag{color:var(--muted);font-weight:600}.stack.svelte-1uha8ag{flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.items.svelte-1uha8ag{flex-direction:column;display:flex}.item.svelte-1uha8ag{transition:transform .12s var(--ease-out);flex-direction:column;gap:.25rem;padding:.875rem 0;display:flex}.item.svelte-1uha8ag+.item:where(.svelte-1uha8ag){border-top:1px solid var(--hairline)}.item-title.svelte-1uha8ag,.project-title.svelte-1uha8ag{transition:color .15s var(--ease-out);font-weight:600}.item-description.svelte-1uha8ag,.project-description.svelte-1uha8ag{color:var(--muted)}.item.svelte-1uha8ag:active{transform:scale(.98)}.project.svelte-1uha8ag{transition:transform .12s var(--ease-out);grid-template-columns:9rem minmax(0,1fr);align-items:center;gap:0 1.25rem;padding:.75rem 0;display:grid}.project.svelte-1uha8ag+.project:where(.svelte-1uha8ag){border-top:1px solid var(--hairline)}.project-main.svelte-1uha8ag{overflow-wrap:anywhere;flex-direction:column;gap:.25rem;display:flex}.project.svelte-1uha8ag:active{transform:scale(.98)}@media (hover:hover) and (pointer:fine){.link.icon-link:hover{color:var(--ink);background:var(--soft)}.about.svelte-1uha8ag .link:hover,.item.svelte-1uha8ag:hover .item-title:where(.svelte-1uha8ag),.project.svelte-1uha8ag:hover .project-title:where(.svelte-1uha8ag){color:var(--muted)}.project:hover .project-thumb img{transform:scale(1.03)}}@media (prefers-reduced-motion:reduce){.item.svelte-1uha8ag,.item-title.svelte-1uha8ag,.project.svelte-1uha8ag,.project-title.svelte-1uha8ag,.link.icon-link,.stack-item{transition:none}}@media (width<=30rem){.hero-top.svelte-1uha8ag{flex-direction:column;align-items:flex-start}.top-links.svelte-1uha8ag{justify-content:flex-start}.project.svelte-1uha8ag{grid-template-rows:auto;grid-template-columns:1fr;gap:.75rem 0}}
