@font-face{font-family:asciiFont;src:url(/_next/static/media/b8c97ebabd0473a4.p.woff2) format("woff2");font-display:block;font-weight:400;font-style:normal}.__className_c9b771{font-family:asciiFont,monospace;font-weight:400;font-style:normal}.not-found_screen__q7Kiw{display:grid;min-height:100dvh;place-items:center;padding:104px 28px 40px}.not-found_terminal__dqdwa{width:min(100%,960px);overflow:hidden;border:1px solid var(--line);border-radius:7px;background:repeating-linear-gradient(180deg,rgba(255,255,255,.024) 0 1px,transparent 1px 5px),rgba(12,14,16,.72);box-shadow:0 0 0 1px rgba(0,255,156,.025),0 26px 70px rgba(0,0,0,.28)}.not-found_terminalBar__vzrI_{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 32px;border-bottom:1px solid var(--line)}.not-found_action__C569O,.not-found_details__wqAez dd,.not-found_details__wqAez dt,.not-found_menu__0UWAE,.not-found_prompt__9BWy3{font-size:13px;letter-spacing:.1em}.not-found_prompt__9BWy3{margin:0;color:var(--muted)}.not-found_prompt__9BWy3 span{color:var(--green)}.not-found_prompt__9BWy3 b{color:var(--slate);font-weight:400}.not-found_details__wqAez dt,.not-found_menu__0UWAE{color:var(--slate)}.not-found_menu__0UWAE{flex:none}.not-found_content__cklTM{display:grid;justify-items:center;padding:clamp(36px,6vw,58px) 32px;text-align:center}.not-found_ascii__b4g2p{max-width:100%;margin:0;overflow:hidden;color:var(--green);font-size:clamp(12px,3.15vw,38px);font-weight:400;font-feature-settings:none,"kern" off;font-variant-ligatures:none;font-kerning:none;line-height:1.16;text-align:left;text-shadow:0 0 18px rgba(0,255,156,.22);white-space:pre}.not-found_details__wqAez{display:grid;gap:13px;width:min(100%,390px);margin:clamp(32px,4vw,48px) 0 0;text-align:left}.not-found_details__wqAez div{display:grid;align-items:center;grid-template-columns:132px minmax(0,1fr);gap:22px}.not-found_details__wqAez dd,.not-found_details__wqAez dt{margin:0}.not-found_details__wqAez dd{display:flex;align-items:center;color:var(--text);letter-spacing:.06em}.not-found_statusDot__z57Ur{width:7px;height:7px;margin-right:10px;border-radius:50%;background:var(--slate)}.not-found_action__C569O{margin-top:clamp(32px,4vw,48px);border:1px solid var(--green-dim);border-radius:3px;padding:15px 22px;color:var(--green);background:rgba(0,255,156,.05);transition:color .22s,background .22s,border .22s}.not-found_action__C569O:hover{color:var(--bg);border-color:var(--green);background:var(--green)}.not-found_action__C569O:focus-visible{outline:2px solid var(--paper);outline-offset:4px}.not-found_srOnly__iJlQ4{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:600px){.not-found_screen__q7Kiw{padding:82px 18px 24px}.not-found_terminalBar__vzrI_{padding:18px}.not-found_prompt__9BWy3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.not-found_content__cklTM{padding-right:18px;padding-left:18px}.not-found_action__C569O,.not-found_details__wqAez dd,.not-found_details__wqAez dt,.not-found_menu__0UWAE,.not-found_prompt__9BWy3{font-size:10px}}.about_root__UKZQz{min-width:0}.about_yamlLines__TQhfh{display:grid;font-size:13.5px;line-height:2.05}.about_yamlLine__tGtuP{display:grid;grid-template-columns:44px minmax(0,1fr)}.about_lineNumber__pRtcG{padding-right:14px;border-right:1px solid var(--line-dim);color:#262b2e;text-align:right;-webkit-user-select:none;user-select:none}.about_lineContent__G5D8m{min-width:0;padding:0 18px;color:var(--faint);overflow-wrap:anywhere;white-space:pre-wrap}.about_key__vmxtK{color:var(--green)}.about_value__8nJpb{color:var(--text)}.about_list__eP1Gc{color:#b8b5ad}.about_comment__RvDQk{color:#3f9c74}.about_fileHint__HwWjp{margin:16px 0 0;color:var(--faint);font-size:12px}@media (max-width:520px){.about_yamlLines__TQhfh{font-size:clamp(8px,2.65vw,11px);line-height:1.8}.about_yamlLine__tGtuP{grid-template-columns:32px minmax(0,1fr)}.about_lineNumber__pRtcG{padding-right:8px}.about_lineContent__G5D8m{padding:0 10px}}.blog-preview_root__EY1fH,.contact_root__7Sm50{min-width:0}.contact_summary__LURja{display:flex;flex-direction:column}.hero_root__H3_A_.hero{isolation:isolate;width:var(--page-content-width);max-width:none;min-height:100svh;padding:80px 0 calc(80px + 5svh)}.hero_root__H3_A_ .hero_prompt__gsPAx{color:#565c60;font-size:clamp(13px,calc(5.976px + .5952vw),15.5px)}.hero_root__H3_A_ .hero_wordmark__QtSSS{margin-top:clamp(34px,calc(11.524px + 1.9048vw),42px);font-size:min(1.13vw,clamp(10.4px,calc(3.798px + .5595vw),12.75px));line-height:1.16;font-feature-settings:none,"kern" off;font-variant-ligatures:none;font-kerning:none}.hero_mobileWordmark__YiU8I{display:none}.hero_role__HSgkV{margin:clamp(40px,calc(17.524px + 1.9048vw),48px) 0 0;color:var(--paper);font-size:clamp(22px,calc(6.548px + 1.3095vw),27.5px);line-height:1.5}.hero_focus__MEZkl{margin:clamp(7px,.6vw,9px) 0 0;color:#7e838a;font-size:clamp(15px,calc(7.976px + .5952vw),17.5px);line-height:1.5}.hero_status__FGIJX{max-width:100%;margin-top:clamp(40px,calc(17.524px + 1.9048vw),48px);border-top:1px solid var(--line);padding-top:clamp(22px,calc(10.762px + .9524vw),26px);font-size:clamp(13.5px,calc(7.881px + .4762vw),15.5px);line-height:1.6}.hero_current__b_S3a{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px clamp(16px,1.25vw,20px);margin:0;color:#b8b5ad}.hero_label__v1FR4{color:var(--slate);font-size:clamp(11.5px,calc(5.881px + .4762vw),13.5px);letter-spacing:.16em}.hero_availability__OJBQN{display:flex;align-items:baseline;gap:clamp(10px,.75vw,12px);margin:clamp(12px,.9vw,14px) 0 0;color:var(--text)}.hero_availability__OJBQN i{flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:var(--green);animation:hero_availability-pulse__BhW86 2.6s ease-in-out infinite}@keyframes hero_availability-pulse__BhW86{0%,to{opacity:.3;box-shadow:0 0 2px rgba(0,255,156,.1)}50%{opacity:1;box-shadow:0 0 6px rgba(0,255,156,.8),0 0 14px 3px rgba(0,255,156,.3)}}@media (prefers-reduced-motion:reduce){.hero_availability__OJBQN i{animation:none}}.hero_availability__OJBQN strong{color:var(--green);font-weight:400}.hero_actions__uaiwH{display:flex;flex-wrap:wrap;gap:clamp(12px,.9vw,14px);margin-top:clamp(40px,calc(17.524px + 1.9048vw),48px)}.hero_actions__uaiwH a{border:1px solid var(--green-dim);border-radius:3px;padding:clamp(14px,calc(8.381px + .4762vw),16px) clamp(24px,calc(12.762px + .9524vw),28px);color:var(--green);background:rgba(0,255,156,.06);font-size:clamp(13px,calc(8.786px + .3571vw),14.5px);line-height:1.5;letter-spacing:.1em;transition:color .22s,background .22s,border-color .22s}.hero_actions__uaiwH a:focus-visible,.hero_actions__uaiwH a:hover{color:var(--bg);border-color:var(--green);background:var(--green)}.hero_actions__uaiwH .hero_secondary__AsfgK{color:#b8b5ad;border-color:#23282c;background:transparent}.hero_actions__uaiwH .hero_secondary__AsfgK:focus-visible,.hero_actions__uaiwH .hero_secondary__AsfgK:hover{color:var(--text);border-color:var(--faint);background:transparent}@media (min-width:761px){.hero_root__H3_A_.hero{min-height:100dvh;padding-top:calc(58px + clamp(24px, 4svh, 48px));padding-bottom:clamp(24px,4svh,48px)}.hero_root__H3_A_ .hero_wordmark__QtSSS{font-size:min(1.2vw,clamp(11.544px,calc(4.216px + .621vw),14.15px))}.hero_role__HSgkV{font-size:clamp(22px,calc(.929px + 1.7857vw),29.5px)}.hero_actions__uaiwH a{display:inline-flex;align-items:center;justify-content:center;min-height:clamp(50px,calc(38.762px + .9524vw),54px);padding:0 clamp(24px,calc(12.762px + .9524vw),28px)}}@media (max-width:760px){.hero_root__H3_A_.hero{width:min(calc(100% - 48px),480px);padding-top:calc(58px + clamp(36px, 6svh, 56px));padding-bottom:max(40px,6svh,env(safe-area-inset-bottom))}.hero_root__H3_A_ .hero_prompt__gsPAx{font-size:12px}.hero_root__H3_A_ .hero_wordmark__QtSSS{margin-top:clamp(28px,4svh,36px);font-size:min(calc((100vw - 48px) / 40),11px)}.hero_desktopWordmark__lJfvh{display:none}.hero_mobileWordmark__YiU8I{display:block}.hero_role__HSgkV{max-width:24ch;margin-top:clamp(28px,4svh,36px);font-size:clamp(18px,5vw,23px);line-height:1.35;text-wrap:balance}.hero_focus__MEZkl{max-width:42ch;margin-top:10px;font-size:13.5px;line-height:1.6;text-wrap:pretty}.hero_status__FGIJX{margin-top:28px;padding-top:18px;font-size:13px}.hero_current__b_S3a{display:grid;gap:5px;text-wrap:pretty}.hero_label__v1FR4{font-size:10.5px}.hero_availability__OJBQN{gap:9px;margin-top:12px;text-wrap:pretty}.hero_availability__OJBQN i{flex-basis:6px;width:6px;height:6px}.hero_availability__OJBQN strong{white-space:nowrap}.hero_actions__uaiwH{flex-direction:column;gap:10px;margin-top:30px}.hero_actions__uaiwH a{display:flex;align-items:center;justify-content:center;min-height:52px;padding:14px 16px;font-size:13px;text-align:center}.hero_actions__uaiwH a:focus-visible{outline:2px solid var(--green);outline-offset:4px}}.projects_root__Z1ydy,.skills_root__eh8q4{min-width:0}.skills_summary__1pWCO{margin:var(--space-6) 0 0;color:var(--faint);font-size:12px;line-height:1.6}.skills_summary__1pWCO span{color:var(--text)}.skills_packages__rHJWO{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-8) var(--space-12);margin:40px 0 0;padding:0;list-style:none}.skills_package__x1eYL{min-width:0}.skills_packageHeader__gXTTq{display:flex;align-items:baseline;gap:var(--space-4);font-size:14.5px;line-height:1.6}.skills_identity__tC63I{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1) var(--space-4);min-width:0}.skills_identity__tC63I h3{margin:0;font-size:inherit;font-weight:400}.skills_category__1yD38{color:var(--faint)}.skills_leader__N_JaD{flex:1 1;min-width:var(--space-4);align-self:center;border-bottom:1px dotted var(--line)}.skills_status__cLrI8{flex-shrink:0;color:var(--green);font-size:12px}.skills_description__h0PoJ{margin:var(--space-2) 0 0 var(--space-4);color:var(--muted);font-size:13px;line-height:1.8;text-wrap:pretty}@media (max-width:1000px){.skills_packages__rHJWO{grid-template-columns:minmax(0,1fr)}}@media (max-width:820px){.skills_root__eh8q4{padding-inline:var(--space-2)}.skills_packages__rHJWO{row-gap:var(--space-6)}.skills_description__h0PoJ{display:none}}@media (max-width:520px){.skills_packageHeader__gXTTq{gap:var(--space-2);font-size:13px;line-height:1.4}.skills_identity__tC63I{column-gap:var(--space-3)}.skills_leader__N_JaD{min-width:0}.skills_status__cLrI8{font-size:11px}}