._container_1mhnr_1{width:100%;height:100vh;background-image:radial-gradient(circle farthest-side at 50% 20%,#ccfc7e1a,#ccfc7e00 81%);position:absolute;top:0;left:0;right:0;pointer-events:none;z-index:-1}._container_1mhnr_1 img{width:100%;max-width:100%}@font-face{font-family:Fredoka;src:url(/fonts/fredoka.woff2) format("woff2");font-weight:300 700;font-display:swap}@font-face{font-family:Quicksand;src:url(/fonts/quicksand.woff2) format("woff2");font-weight:300 700;font-display:swap}:root{color-scheme:dark;--background: #13151a;--card: #1a1d22;--ink: #f3f4f0;--muted: #b0b5bd;--faint: #8c939d;--line: #33373e;--accent: #ccfc7e;--display: Fredoka, ui-rounded, system-ui, sans-serif;--body: Quicksand, system-ui, sans-serif;background:var(--background)}*,*:before,*:after{box-sizing:border-box}body{position:relative;isolation:isolate;margin:0;color:var(--ink);font:600 .9375rem/1.5 var(--body)}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--display);font-weight:540;line-height:1.2}a{color:inherit}button{font:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-bottom:1px solid var(--line);padding-bottom:.75rem;margin-bottom:1.25rem}.section-heading h2{font-size:1.125rem}.about[data-astro-cid-vky6iplv]{display:grid;gap:.75rem;color:var(--muted)}strong[data-astro-cid-vky6iplv]{color:var(--ink)}.revenue-chart[data-astro-cid-byj7mfyb]{--chart-ink: var(--accent);margin:auto 0 0;padding-top:1rem}.downloads-chart[data-astro-cid-byj7mfyb]{display:grid;grid-template-columns:1.75rem minmax(0,1fr) 1.75rem}.downloads-chart[data-astro-cid-byj7mfyb] figcaption[data-astro-cid-byj7mfyb]{grid-column:1 / -1}.month-arrow[data-astro-cid-byj7mfyb]{display:grid;place-items:center;align-self:center;width:1.75rem;height:1.75rem;margin-bottom:.75rem;padding:0;border:1px solid var(--line);border-radius:.5rem;background:var(--background);color:var(--ink);cursor:pointer}.month-arrow[data-astro-cid-byj7mfyb]:hover:enabled{color:var(--accent)}.month-arrow[data-astro-cid-byj7mfyb]:disabled{opacity:.35;cursor:default}.caption-month[data-astro-cid-byj7mfyb]{display:block}.caption-value[data-astro-cid-byj7mfyb]{text-align:right}.plot[data-astro-cid-byj7mfyb]{position:relative;height:7.5rem;color:var(--chart-ink);touch-action:pan-y}.chart-axes[data-astro-cid-byj7mfyb],.chart-art[data-astro-cid-byj7mfyb]{position:absolute;inset:0}.chart-axes[data-astro-cid-byj7mfyb]{width:100%;height:100%}.chart-axes[data-astro-cid-byj7mfyb] text[data-astro-cid-byj7mfyb]{fill:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}.grid-line[data-astro-cid-byj7mfyb],.axis-line[data-astro-cid-byj7mfyb]{fill:none;stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}.axis-line[data-astro-cid-byj7mfyb]{stroke:var(--faint);opacity:.5}.plot[data-astro-cid-byj7mfyb] svg{display:block;width:100%;height:100%}.plot[data-astro-cid-byj7mfyb] .ct-line{fill:none;stroke:currentColor;stroke-width:1.5;vector-effect:non-scaling-stroke}.plot[data-astro-cid-byj7mfyb] .ct-point{stroke:currentColor;stroke-width:3;stroke-linecap:round;vector-effect:non-scaling-stroke}.plot[data-astro-cid-byj7mfyb] .ct-area{fill:currentColor;opacity:.09}.chart-selection[data-astro-cid-byj7mfyb]{pointer-events:none}.chart-guide[data-astro-cid-byj7mfyb],.chart-dot[data-astro-cid-byj7mfyb],.chart-tooltip[data-astro-cid-byj7mfyb]{position:absolute;z-index:1}.chart-guide[data-astro-cid-byj7mfyb]{top:8.33%;bottom:18.33%;left:var(--point-x);border-left:1px dashed var(--faint)}.chart-dot[data-astro-cid-byj7mfyb]{left:var(--point-x);top:var(--point-y);width:8px;height:8px;transform:translate(-50%,-50%);border-radius:50%;border:1px solid var(--card);background:currentColor}.chart-tooltip[data-astro-cid-byj7mfyb]{top:var(--point-y);left:clamp(4rem,var(--point-x),calc(100% - 4rem));transform:translate(-50%,calc(-100% - 8px));padding:.35rem .55rem;border:1px solid var(--line);border-radius:.5rem;background:var(--background);color:var(--muted);font-size:.75rem;white-space:nowrap;box-shadow:0 4px 12px #0003}.chart-tooltip[data-astro-cid-byj7mfyb] strong[data-astro-cid-byj7mfyb]{display:block;color:var(--ink);font-variant-numeric:tabular-nums}figcaption[data-astro-cid-byj7mfyb],.revenue-empty[data-astro-cid-byj7mfyb]{color:var(--muted);font-size:.75rem;font-variant-numeric:tabular-nums}figcaption[data-astro-cid-byj7mfyb]{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-top:.35rem}figcaption[data-astro-cid-byj7mfyb] strong[data-astro-cid-byj7mfyb]{color:var(--ink);font-size:.875rem}.revenue-empty[data-astro-cid-byj7mfyb]{margin:auto 0 0;padding-top:1rem}.count[data-astro-cid-qs73ah5k]{color:var(--muted);font-size:.875rem;font-variant-numeric:tabular-nums}.projects-heading[data-astro-cid-qs73ah5k]{border-bottom:0;padding-bottom:0}.metric-tabs[data-astro-cid-qs73ah5k]{display:flex;gap:.35rem;width:fit-content;padding:.25rem;margin-bottom:.75rem;border:1px solid var(--line);border-radius:.75rem;background:var(--background)}.metric-tabs[data-astro-cid-qs73ah5k] a[data-astro-cid-qs73ah5k]{padding:.35rem .7rem;border-radius:.5rem;color:var(--muted);text-decoration:none;font-size:.875rem}.metric-tabs[data-astro-cid-qs73ah5k] a[data-astro-cid-qs73ah5k][aria-current]{background:var(--accent);color:var(--background);font-weight:700}.lock-form[data-astro-cid-qs73ah5k]{margin-bottom:.85rem}.locked-view[data-astro-cid-qs73ah5k]{display:grid;overflow:hidden;border-radius:1rem}.locked-view[data-astro-cid-qs73ah5k]>[data-astro-cid-qs73ah5k]{grid-area:1 / 1;min-width:0}.locked-view[data-astro-cid-qs73ah5k] .works-list[data-astro-cid-qs73ah5k]{filter:blur(5px)}.unlock-overlay[data-astro-cid-qs73ah5k]{z-index:1;display:grid;place-items:center;padding:.75rem;background:#13151a3d}.unlock-form[data-astro-cid-qs73ah5k]{display:grid;justify-items:center;gap:.6rem;max-width:100%;padding:1rem;border:1px solid var(--line);border-radius:.75rem;background:var(--card);text-align:center}.unlock-form[data-astro-cid-qs73ah5k] label[data-astro-cid-qs73ah5k]{font-weight:700}.unlock-form[data-astro-cid-qs73ah5k] div[data-astro-cid-qs73ah5k]{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.unlock-form[data-astro-cid-qs73ah5k] input[data-astro-cid-qs73ah5k],.unlock-form[data-astro-cid-qs73ah5k] button[data-astro-cid-qs73ah5k],.lock-form[data-astro-cid-qs73ah5k] button[data-astro-cid-qs73ah5k]{padding:.5rem .65rem;border:1px solid var(--line);border-radius:.5rem;font:inherit;font-size:.875rem}.unlock-form[data-astro-cid-qs73ah5k] input[data-astro-cid-qs73ah5k]{min-width:0;width:12rem;max-width:100%;color:var(--ink);background:var(--background)}.unlock-form[data-astro-cid-qs73ah5k] button[data-astro-cid-qs73ah5k],.lock-form[data-astro-cid-qs73ah5k] button[data-astro-cid-qs73ah5k]{background:var(--card);color:var(--ink);cursor:pointer}.works-list[data-astro-cid-qs73ah5k]{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;margin:0;padding:0;list-style:none}.project[data-astro-cid-qs73ah5k]{display:flex;flex-direction:column;height:100%;padding:1.25rem;border:1px solid var(--line);border-radius:1rem;background:var(--card)}.project[data-astro-cid-qs73ah5k]:has(a:hover),.project[data-astro-cid-qs73ah5k]:focus-within{border-color:var(--faint)}.project-heading[data-astro-cid-qs73ah5k]{display:flex;align-items:center;gap:.625rem}.project-heading[data-astro-cid-qs73ah5k] img[data-astro-cid-qs73ah5k]{flex:none;border-radius:.375rem;object-fit:contain}h3[data-astro-cid-qs73ah5k]{flex:1;min-width:0;font-size:1.0625rem;overflow-wrap:anywhere}h3[data-astro-cid-qs73ah5k] a[data-astro-cid-qs73ah5k]{text-decoration:none;text-underline-offset:.2em}h3[data-astro-cid-qs73ah5k] a[data-astro-cid-qs73ah5k]:hover,h3[data-astro-cid-qs73ah5k] a[data-astro-cid-qs73ah5k]:focus-visible{text-decoration:underline}h3[data-astro-cid-qs73ah5k] a[data-astro-cid-qs73ah5k] span[data-astro-cid-qs73ah5k]{margin-left:.25rem;color:var(--muted);font:600 .8125rem var(--body)}.downloads[data-astro-cid-qs73ah5k]{flex:none;padding:.125rem .5rem;border-radius:999px;background:#2b3037;color:var(--ink);font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums}p[data-astro-cid-qs73ah5k]{margin-top:.5rem;color:var(--muted);font-size:.875rem;text-wrap:pretty}.project-description[data-astro-cid-qs73ah5k]{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.archive[data-astro-cid-qs73ah5k] .section-heading[data-astro-cid-qs73ah5k]{margin-bottom:.75rem}.archive[data-astro-cid-qs73ah5k] .works-list[data-astro-cid-qs73ah5k]{grid-template-columns:minmax(0,1fr);gap:.625rem}.archived-project[data-astro-cid-qs73ah5k]{border:1px solid var(--line);border-radius:.75rem;background:var(--card)}.archive-summary[data-astro-cid-qs73ah5k]{display:flex;align-items:center;gap:.625rem;padding:.75rem;border-radius:inherit;list-style:none;cursor:pointer}.archive-summary[data-astro-cid-qs73ah5k]::-webkit-details-marker{display:none}.archive-summary[data-astro-cid-qs73ah5k] img[data-astro-cid-qs73ah5k]{flex:none;border-radius:.375rem;object-fit:contain}.archive-label[data-astro-cid-qs73ah5k]{display:grid;flex:1;min-width:0;gap:.125rem}.archive-name[data-astro-cid-qs73ah5k]{font:540 1rem/1.2 var(--display);overflow-wrap:anywhere}.archive-income[data-astro-cid-qs73ah5k],.archive-description[data-astro-cid-qs73ah5k]{font-size:.8125rem}.archive-income[data-astro-cid-qs73ah5k],.archive-caret[data-astro-cid-qs73ah5k]{color:var(--muted)}.archive-caret[data-astro-cid-qs73ah5k]{flex:none}.archived-project[data-astro-cid-qs73ah5k][open] .archive-caret[data-astro-cid-qs73ah5k]{transform:rotate(180deg)}.archive-description[data-astro-cid-qs73ah5k]{margin:0;padding:0 .75rem .75rem}@media(min-width:640px){.works-list[data-astro-cid-qs73ah5k]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:639px){.locked-view[data-astro-cid-qs73ah5k] li[data-astro-cid-qs73ah5k]:nth-child(n+3){display:none}}.portfolio[data-astro-cid-j7pv25f6]{--zone-gap: 1rem;display:grid;grid-template-columns:minmax(0,1fr);max-width:80rem;gap:var(--zone-gap);margin-inline:auto;padding:2rem 1.25rem 3.5rem}.profile[data-astro-cid-j7pv25f6],.content[data-astro-cid-j7pv25f6]{display:grid;grid-template-columns:minmax(0,1fr);align-content:start}.profile[data-astro-cid-j7pv25f6]{gap:1.5rem}.content[data-astro-cid-j7pv25f6]{gap:var(--zone-gap)}.profile[data-astro-cid-j7pv25f6],.content[data-astro-cid-j7pv25f6]>section{padding:clamp(.75rem,1.6vw,1.25rem);border:1px solid rgb(255 255 255 / .1);border-radius:1.5rem;background:#13151ab8;box-shadow:0 12px 32px #0000002b}.bio[data-astro-cid-j7pv25f6]{display:flex;align-items:center;gap:1rem}.bio[data-astro-cid-j7pv25f6] img[data-astro-cid-j7pv25f6]{flex:none;width:3.5rem;height:3.5rem;border:1px solid var(--line);border-radius:50%;object-fit:cover}.bio[data-astro-cid-j7pv25f6] h1[data-astro-cid-j7pv25f6]{font-size:1.625rem;letter-spacing:-.02em}.bio[data-astro-cid-j7pv25f6] p[data-astro-cid-j7pv25f6]{max-width:34ch;margin-top:.5rem;color:var(--muted);text-wrap:pretty}.profile-name[data-astro-cid-j7pv25f6]{display:flex;align-items:center;gap:.625rem}.linkedin[data-astro-cid-j7pv25f6]{flex:none;border-radius:.25rem;color:#0a66c2}.linkedin[data-astro-cid-j7pv25f6] svg[data-astro-cid-j7pv25f6]{display:block}.linkedin[data-astro-cid-j7pv25f6]:hover{color:#287fce}.carousel-next[data-astro-cid-j7pv25f6]{display:grid;place-items:center;width:1.875rem;height:1.875rem;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--ink);cursor:pointer}.carousel-next[data-astro-cid-j7pv25f6][hidden]{display:none}.carousel-next[data-astro-cid-j7pv25f6]:hover{border-color:var(--faint)}.professional-carousel[data-astro-cid-j7pv25f6]{position:relative;overflow:hidden;border-radius:1rem}.professional-projects[data-astro-cid-j7pv25f6][inert]{filter:blur(7px);opacity:.4}.professional-overlay[data-astro-cid-j7pv25f6]{position:absolute;inset:0;display:grid;place-items:center;background:#13151a66}.professional-overlay[data-astro-cid-j7pv25f6] span[data-astro-cid-j7pv25f6]{padding:.45rem .85rem;border:1px solid var(--line);border-radius:999px;background:var(--background);color:var(--ink);font:540 1rem/1.2 var(--display)}.professional-projects[data-astro-cid-j7pv25f6]{display:grid;grid-auto-flow:column;grid-auto-columns:100%;gap:.875rem;margin:0;padding:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;list-style:none}.professional-projects[data-astro-cid-j7pv25f6]>li[data-astro-cid-j7pv25f6]{scroll-snap-align:start}.professional-projects[data-astro-cid-j7pv25f6] article[data-astro-cid-j7pv25f6]{height:100%;padding:1rem;border:1px solid var(--line);border-radius:1rem;background:var(--card)}.professional-projects[data-astro-cid-j7pv25f6] h3[data-astro-cid-j7pv25f6]{font-size:1rem}.professional-projects[data-astro-cid-j7pv25f6] p[data-astro-cid-j7pv25f6]{margin-top:.625rem;color:var(--muted);font-size:.875rem}.stack[data-astro-cid-j7pv25f6]{display:flex;gap:.45rem;margin:.5rem 0 0;padding:0;list-style:none}.stack[data-astro-cid-j7pv25f6] img[data-astro-cid-j7pv25f6]{display:block;object-fit:contain}@media(min-width:520px){.professional-projects[data-astro-cid-j7pv25f6]{grid-auto-columns:calc((100% - .875rem)/2)}}@media(min-width:760px){.professional-projects[data-astro-cid-j7pv25f6]{grid-auto-columns:calc((100% - 1.75rem) / 3)}}@media(min-width:1024px){.portfolio[data-astro-cid-j7pv25f6]{--zone-gap: 1.5rem;grid-template-columns:17rem minmax(0,1fr);padding-top:3.5rem}.bio[data-astro-cid-j7pv25f6]{flex-direction:column;align-items:flex-start;gap:1.25rem}.bio[data-astro-cid-j7pv25f6] img[data-astro-cid-j7pv25f6]{width:5rem;height:5rem}.bio[data-astro-cid-j7pv25f6] h1[data-astro-cid-j7pv25f6]{font-size:1.75rem}}@media(min-width:1280px)and (min-height:1040px){.profile[data-astro-cid-j7pv25f6]{position:sticky;top:2rem;align-self:start}}@media(min-width:1280px){.portfolio[data-astro-cid-j7pv25f6]{grid-template-columns:21rem minmax(0,1fr)}}
