@font-face{font-family:GeistSans;src:url(/_next/static/media/0b78ff376f6b9734-s.p.woff2) format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local("Arial");ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.00%;size-adjust:106.28%}.__className_8adcd2{font-family:GeistSans,GeistSans Fallback}.__variable_8adcd2{--font-geist-sans:"GeistSans","GeistSans Fallback"}@font-face{font-family:GeistMono;src:url(/_next/static/media/723e11e5093b8e80.p.woff2) format("woff2");font-display:swap;font-weight:100 900}.__className_46451f{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.__variable_46451f{--font-geist-mono:"GeistMono",ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}:root{--background:#ffffff;--gray-100:#f2f2f2;--gray-200:#ebebeb;--gray-300:#e6e6e6;--gray-400:#ebebeb;--gray-500:#c9c9c9;--gray-600:#a8a8a8;--gray-700:#8f8f8f;--gray-800:#7d7d7d;--gray-900:#666666;--gray-1000:#171717;--blue-600:#0072f5;--blue-900:#0068d6;--teal-700:#12a594;--teal-900:#067a6f;--border:var(--gray-400);--fg:var(--gray-1000);--fg-muted:var(--gray-900);--accent:var(--teal-900);--measure:42rem;--gutter:10.5rem;--gutter-gap:1.5rem;--radius:6px;--name-size:2rem;--name-leading:1.15;--role-gap:0rem;--role-size:1rem;--role-leading:1.2;--identity-height:calc(var(--name-size) * var(--name-leading) + var(--role-gap) + var(--role-size) * var(--role-leading))}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--gray-100:#1a1a1a;--gray-200:#1f1f1f;--gray-300:#292929;--gray-400:#2e2e2e;--gray-500:#454545;--gray-600:#878787;--gray-700:#8f8f8f;--gray-800:#7d7d7d;--gray-900:#a1a1a1;--gray-1000:#ededed;--teal-900:#0ac5b3}}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--background);color:var(--fg);font-family:var(--font-geist-sans),ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:15px;line-height:1.6;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none;border-bottom:1px solid var(--gray-500);transition:border-color .15s ease,color .15s ease}a:hover{color:var(--accent);border-bottom-color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.page{max-width:var(--measure);margin:0 auto;padding:5rem 1.5rem 8rem}@media (max-width:40rem){.page{padding:3rem 1.25rem 4rem}}.identity{display:flex;align-items:center;gap:1.125rem}.avatar{position:relative;flex:0 0 auto;width:var(--identity-height);height:var(--identity-height);border-radius:50%;overflow:hidden;background:var(--gray-200);box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}.avatar img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}@media (max-width:34rem){.identity{gap:.875rem}}.name{margin:0;font-size:var(--name-size);line-height:var(--name-leading);font-weight:600;letter-spacing:-.04em}.role{margin:var(--role-gap) 0 0;font-size:var(--role-size);line-height:var(--role-leading)}.role,.tagline{color:var(--fg-muted)}.tagline{margin:1rem 0 0;max-width:34rem}.availability{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.5rem;padding:.3125rem .75rem .3125rem .625rem;border:1px solid var(--border);border-radius:999px;background:var(--gray-100);font-size:.8125rem;color:var(--fg-muted)}.availability .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.summary{margin:2rem 0 0;max-width:36rem}.contact{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:1.75rem;font-size:.875rem;color:var(--fg-muted)}.section{margin-top:3.5rem;padding-top:2rem;border-top:1px solid var(--border)}.section-label{margin:0 0 1.75rem;font-size:.6875rem;font-weight:500;font-family:var(--font-geist-mono),ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted)}.entry{display:grid;grid-template-columns:var(--gutter) 1fr;grid-gap:0 var(--gutter-gap);gap:0 var(--gutter-gap);align-items:start}.entry+.entry{margin-top:2.25rem}.gutter-offset{padding-left:calc(var(--gutter) + var(--gutter-gap))}.entry-title{margin:0;font-size:.9375rem;font-weight:500;letter-spacing:-.015em}.entry-org{margin:.125rem 0 0;font-size:.9375rem;color:var(--fg-muted)}.entry-meta{margin:0;padding-top:.0625rem;font-size:.8125rem;font-weight:400;color:var(--gray-700);text-align:left;font-family:var(--font-geist-mono),ui-monospace,SFMono-Regular,Menlo,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.entry-meta span{display:block}.entry-summary{margin:.75rem 0 0;color:var(--fg-muted)}.bullets{margin:.75rem 0 0;padding:0;list-style:none}.bullets li{position:relative;padding-left:1.125rem;margin-top:.4375rem}.bullets li:before{content:"";position:absolute;left:0;top:.6875rem;width:4px;height:1px;background:var(--gray-600)}.skill-group{display:grid;grid-template-columns:var(--gutter) 1fr;grid-gap:0 var(--gutter-gap);gap:0 var(--gutter-gap);align-items:start}.skill-group+.skill-group{margin-top:1.5rem}.skill-group h3{margin:0;padding-top:.125rem;font-family:inherit;font-size:.875rem;font-weight:400;line-height:1.4;letter-spacing:-.01em}.tags{display:flex;flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none}.tags li{padding:.1875rem .5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--gray-100);color:var(--fg-muted)}.footer,.tags li{font-size:.8125rem}.footer{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--border);color:var(--gray-700)}.entry-context{margin:0 0 .375rem;font-family:var(--font-geist-mono),ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.6875rem;letter-spacing:.04em;text-transform:uppercase;color:var(--gray-700)}.project+.project{margin-top:2.5rem}.project-meta{margin:.375rem 0 0;text-transform:none;letter-spacing:0}.case{margin:1rem 0 0;padding:1rem 0 0;border-top:1px solid var(--border)}.case dt{font-size:.6875rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);font-family:var(--font-geist-mono),ui-monospace,SFMono-Regular,Menlo,monospace}.case dt+dd{margin:.375rem 0 0}.case dd+dt{margin-top:1rem}.case dd{margin-left:0;color:var(--fg-muted)}.dock{position:fixed;left:50%;bottom:1.5rem;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:.125rem;padding:.375rem;max-width:calc(100vw - 2rem);overflow-x:auto;scrollbar-width:none;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--background) 80%,transparent);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);box-shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.08)}@media (prefers-color-scheme:dark){.dock{box-shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.5)}}.dock-item{display:inline-flex;align-items:center;gap:.375rem;padding:.5625rem .9375rem;border:0;border-radius:999px;background:transparent;color:var(--fg-muted);font:inherit;font-size:.875rem;line-height:1;white-space:nowrap;cursor:pointer;transition:background .15s ease,color .15s ease}.dock-item svg{width:16px;height:16px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}.dock-item:hover{background:var(--gray-200);color:var(--fg)}.dock-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.dock::-webkit-scrollbar{display:none}.dock-divider{width:1px;height:20px;margin:0 .25rem;background:var(--border);flex-shrink:0}@media (max-width:30rem){.dock{bottom:1rem;gap:0}.dock-item{padding:.4375rem .5625rem;gap:.3125rem;font-size:.75rem}.dock-divider{margin:0 .125rem}}@media (prefers-reduced-motion:reduce){.dock-item{transition:none}}@media (max-width:44rem){.entry,.skill-group{grid-template-columns:1fr;gap:0}.entry-meta{margin-bottom:.5rem;padding-top:0}.entry-meta span{display:inline}.entry-meta span+span:before{content:" · "}.gutter-offset{padding-left:0}}@media print{:root{--background:#fff;--fg:#000;--fg-muted:#333;--border:#ccc;--gray-100:#fff;--accent:#000}body{font-size:10.5pt;line-height:1.45}.page{max-width:none;padding:0}.section{margin-top:1.5rem;padding-top:1rem}.case,.entry,.section{page-break-inside:avoid;break-inside:avoid}.entry+.entry{margin-top:1rem}a{border-bottom:none}.avatar,.dock,.footer{display:none}}