:root{--bg:#000;--text:#f5f5f7;--muted:#a1a1a6;--subtle:#86868b;--accent:#2997ff;--accent-soft:#2997ff24;--action:#0071e3;--action-hover:#0077ed;--line:#ffffff17;--ok:#30d158;--ok-text:#30d158;--glass-fill:#ffffff0d;--glass-fill-hover:#ffffff14;--glass-fill-bar:#16161a9e;--glass-fill-strong:#141418e6;--glass-inset:#ffffff0f;--glass-filter:blur(24px) saturate(180%);--glass-rim-hi:#ffffff57;--glass-rim-lo:#ffffff12;--glass-hairline:#ffffff0a;--glass-shine:inset 0 1px 0 #ffffff1f, inset 0 -1px 1px #ffffff0a;--glass-shadow:0 1px 2px #00000080, 0 18px 40px -18px #000000e6;--glass-shadow-lift:0 2px 4px #00000080, 0 30px 60px -24px #000;--lens-fill:#ffffff1f;--spot:#ffffff12;--radius:24px;--text-caption:.8125rem;--text-sm:.9375rem;--text-base:1.0625rem;--text-lg:1.3125rem;--text-xl:1.5rem;--text-2xl:1.75rem;--text-h2:clamp(2rem, 5vw, 3rem);--text-display:clamp(3rem, 8vw, 5rem);--leading-body:1.5;--leading-tight:1.4;--header-h:68px;--spring:cubic-bezier(.34, 1.36, .5, 1);--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Inter", system-ui, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-body);letter-spacing:-.006em;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}main{overflow-x:clip}img,svg{max-width:100%;display:block}a{color:inherit}h1,h2,h3{text-wrap:balance;margin:0}p{margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}::selection{background:var(--accent);color:var(--bg)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--text);color:var(--bg);border-radius:999px;padding:8px 14px;font-weight:600;text-decoration:none;position:absolute;top:-100px;left:16px}.skip-link:focus{top:12px}.wrap{width:100%;max-width:1080px;margin:0 auto;padding:0 24px}.glass{background-color:var(--glass-fill);-webkit-backdrop-filter:var(--glass-filter);backdrop-filter:var(--glass-filter);box-shadow:var(--glass-shine), 0 0 0 1px var(--glass-hairline), var(--glass-shadow);position:relative}.glass:before{content:"";border-radius:inherit;background:linear-gradient(135deg, var(--glass-rim-hi), var(--glass-rim-lo) 28%, transparent 50%, var(--glass-rim-lo) 72%, var(--glass-rim-hi));-webkit-mask-composite:xor;pointer-events:none;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.tile,.project{background-image:radial-gradient(380px circle at var(--mx,50%) var(--my,-999px), var(--spot), transparent 62%)}.site-header{z-index:50;padding-top:12px;position:sticky;top:0}.site-bar{border-radius:999px;align-items:center;gap:16px;height:56px;padding:0 8px 0 22px;display:flex;position:relative}.site-bar-glass{border-radius:inherit;background-color:var(--glass-fill-bar);transition:box-shadow .3s;position:absolute;inset:0}.is-scrolled .site-bar-glass{box-shadow:var(--glass-shine), 0 0 0 1px var(--glass-hairline), var(--glass-shadow-lift)}.brand,.site-nav,.header-actions{position:relative}.brand{font-weight:600;font-size:var(--text-base);letter-spacing:-.01em;white-space:nowrap;text-decoration:none}.site-nav{margin-left:auto}.nav-track{position:relative}.nav-lens{width:var(--lens-w,0);background:var(--lens-fill);height:100%;box-shadow:var(--glass-shine), 0 0 0 1px var(--glass-hairline), 0 4px 12px -6px #00000040;opacity:0;transform:translateX(var(--lens-x,0));transition:transform .5s var(--spring), width .5s var(--spring), opacity .25s ease;pointer-events:none;border-radius:999px;position:absolute;top:0;left:0}.nav-lens[data-shown]{opacity:1}.nav-list{gap:2px;margin:0;padding:0;list-style:none;display:flex;position:relative}.nav-list a{color:var(--muted);font-size:var(--text-sm);border-radius:999px;padding:9px 15px;font-weight:500;text-decoration:none;transition:color .2s;display:block}.nav-list a:hover,.nav-list a[aria-current=true]{color:var(--text)}.header-actions{align-items:center;gap:8px;display:none}.icon-btn{width:40px;height:40px;color:var(--text);font-size:var(--text-base);cursor:pointer;transition:background-color .2s ease, transform .35s var(--spring);border:0;border-radius:50%;place-items:center;padding:0;display:inline-grid}.icon-btn:hover{background-color:var(--glass-fill-hover)}.icon-btn:active{transform:scale(.92)}.menu-btn{display:none}@media (width<=760px){.menu-btn{display:inline-grid}.site-bar{padding-left:18px}.header-actions{margin-left:auto;display:flex}.site-nav{background-color:var(--glass-fill-strong);-webkit-backdrop-filter:var(--glass-filter);backdrop-filter:var(--glass-filter);box-shadow:var(--glass-shine), 0 0 0 1px var(--glass-hairline), var(--glass-shadow-lift);border-radius:24px;padding:8px;display:none;position:absolute;top:calc(100% + 8px);left:0;right:0}.site-nav.is-open{display:block}.nav-lens{display:none}.nav-list{flex-direction:column}.nav-list a{border-radius:16px;padding:12px 16px}.nav-list a[aria-current=true]{background:var(--glass-inset)}}.btn{height:46px;font-size:var(--text-base);white-space:nowrap;transition:background-color .2s ease, box-shadow .25s ease, transform .35s var(--spring);border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:active{transform:scale(.97)}.btn svg{flex:none;font-size:1.05em}.btn-primary{background:var(--action);color:#fff;box-shadow:inset 0 1px #ffffff40,0 8px 22px -10px #0071e3b3}.btn-primary:hover{background:var(--action-hover)}.btn-secondary{color:var(--text)}.btn-secondary:hover{background-color:var(--glass-fill-hover)}.hero{grid-template-columns:minmax(0,1fr) 340px;align-items:center;gap:64px;padding-top:64px;padding-bottom:56px;display:grid}.status{color:var(--muted);font-size:var(--text-sm);border-radius:999px;align-items:center;gap:10px;margin-bottom:28px;padding:7px 16px 7px 13px;font-weight:500;display:inline-flex}.status-dot{background:var(--ok);width:8px;height:8px;box-shadow:0 0 0 4px color-mix(in srgb, var(--ok) 20%, transparent);border-radius:50%}.hero h1{font-size:var(--text-display);letter-spacing:-.024em;font-weight:700;line-height:1.05}.hero-role{color:var(--muted);font-size:clamp(var(--text-lg), 2.6vw, var(--text-2xl));letter-spacing:-.014em;margin-top:14px;font-weight:600}.hero-intro{max-width:56ch;font-size:var(--text-lg);line-height:var(--leading-tight);letter-spacing:-.01em;margin-top:28px}.facts{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 32px;margin:28px 0 0;padding-top:24px;display:grid}.facts dt{color:var(--subtle);font-size:var(--text-caption)}.facts dd{font-size:var(--text-base);font-weight:500;line-height:var(--leading-tight);margin:4px 0 0}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}@media (width<=440px){.hero-actions .btn{flex:1 1 0}.hero-actions .btn-primary{flex-basis:100%}}.hero-photo{border-radius:34px;padding:8px}.hero-photo img{aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;border-radius:26px;width:100%;height:auto}@media (width<=860px){.hero{grid-template-columns:1fr;gap:28px;padding-top:40px}.hero-photo{border-radius:50%;order:-1;width:120px;padding:5px}.hero-photo img{aspect-ratio:1;border-radius:50%}}.bento{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.span-2{grid-column:span 2}.tile{border-radius:var(--radius);flex-direction:column;min-width:0;padding:24px;display:flex}.tile-kicker{color:var(--subtle);font-size:var(--text-caption)}.tile-figure{font-size:var(--text-h2);letter-spacing:-.024em;margin-top:14px;font-weight:600;line-height:1}.tile-text{color:var(--muted);font-size:var(--text-sm);line-height:var(--leading-tight);margin-top:10px}.bars{gap:6px;margin-top:auto;padding-top:18px;display:grid}.bar{width:var(--w);background:var(--glass-inset);height:22px;box-shadow:inset 0 0 0 1px var(--line);font-size:var(--text-caption);border-radius:999px;padding-left:10px;line-height:22px;display:block}.bar em{color:var(--subtle);font-style:normal}.bar-after{background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}.bar-after em{color:var(--accent)}.pr-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.pr-state{color:#fff;font-size:var(--text-caption);background:#8250df;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-weight:600;display:inline-flex}.pr-date{color:var(--subtle);font-size:var(--text-caption)}@media (width<=860px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=440px){.bento{grid-template-columns:1fr}.span-2{grid-column:auto}}.section{padding-top:112px}.section-head{margin-bottom:36px}.eyebrow{color:var(--muted);font-size:var(--text-base);margin-bottom:8px;font-weight:600}.section h2{font-size:var(--text-h2);letter-spacing:-.02em;font-weight:600;line-height:1.08}.section h2 em,.contact h2 em{color:var(--subtle);font-style:normal}.subhead{font-size:var(--text-xl);letter-spacing:-.02em;margin:56px 0 16px;font-weight:600}.about{max-width:58ch;color:var(--muted);font-size:var(--text-lg);line-height:var(--leading-tight);letter-spacing:-.01em;gap:18px;display:grid}.stack{border-radius:var(--radius)}.stack-row{border-top:1px solid var(--line);grid-template-columns:160px minmax(0,1fr);align-items:start;gap:16px;padding:16px 24px;display:grid}.stack-row:first-child{border-top:0}.stack-label{color:var(--subtle);font-size:var(--text-caption);padding-top:5px}.chips,.tags{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.chips li{background:var(--glass-inset);box-shadow:inset 0 0 0 1px var(--line);font-size:var(--text-sm);border-radius:999px;padding:4px 12px;font-weight:500}@media (width<=640px){.stack-row{grid-template-columns:1fr;gap:10px;padding:16px}}.xp{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:24px;display:grid}.xp-tabs{flex-direction:column;gap:4px;display:flex}.xp-tab{color:var(--muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:18px;flex-direction:column;gap:2px;padding:12px 16px;transition:color .2s,background-color .2s,box-shadow .2s;display:flex}.xp-tab:hover{color:var(--text);background-color:var(--glass-inset)}.xp-tab[aria-selected=true]{background-color:var(--lens-fill);box-shadow:var(--glass-shine), 0 0 0 1px var(--glass-hairline), 0 6px 18px -10px #0000004d;color:var(--text)}.xp-tab-name{font-size:var(--text-base);font-weight:600}.xp-tab-dates,.xp-dates,.pr-date,.recog-meta{font-variant-numeric:tabular-nums}.xp-tab-dates{color:var(--subtle);font-size:var(--text-caption)}.xp-panel{border-radius:var(--radius);padding:32px}.xp-panel[hidden]{display:none}.xp-head{grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:16px;display:grid}.xp-logo{object-fit:contain;width:48px;height:48px;box-shadow:0 0 0 1px var(--line);background:#fff;border-radius:14px;padding:4px}.xp-logo-text{background:var(--glass-inset);color:var(--muted);font-size:var(--text-caption);place-items:center;padding:0;font-weight:500;display:grid}.xp-head h3{font-size:var(--text-xl);letter-spacing:-.01em;font-weight:600}.xp-org{color:var(--muted);font-size:var(--text-base);margin-top:2px}.xp-dates{color:var(--subtle);font-size:var(--text-caption);white-space:nowrap;align-self:start;padding-top:4px}.xp-points{border-top:1px solid var(--line);color:var(--muted);line-height:var(--leading-body);gap:14px;margin:24px 0 0;padding:24px 0 0;list-style:none;display:grid}.xp-points li{max-width:58ch;padding-left:20px;position:relative}.xp-points li:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:.7em;left:2px}@media (width<=760px){.xp{grid-template-columns:1fr;gap:16px}.xp-tabs{scroll-snap-type:x proximity;scrollbar-width:none;flex-direction:row;gap:6px;margin:0 -16px;padding:2px 16px 6px;scroll-padding-inline:16px;overflow-x:auto}.xp-tabs::-webkit-scrollbar{display:none}.xp-tab{background-color:var(--glass-inset);box-shadow:inset 0 0 0 1px var(--line);scroll-snap-align:start;border-radius:999px;flex:none;padding:10px 16px}.xp-tab[aria-selected=true]{background-color:var(--text);box-shadow:none;color:var(--bg)}.xp-tab[aria-selected=true] .xp-tab-dates,.xp-dates,.pr-date,.recog-meta{font-variant-numeric:tabular-nums}.xp-tab-dates{color:inherit;opacity:.75}.xp-panel{padding:20px}.xp-head{grid-template-columns:44px minmax(0,1fr)}.xp-logo{width:44px;height:44px}.xp-dates{grid-column:2;padding-top:0}}.projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.project{border-radius:var(--radius);transition:background-color .25s ease, box-shadow .3s ease, transform .45s var(--spring);flex-direction:column;padding:28px;display:flex}.project:hover{background-color:var(--glass-fill-hover);box-shadow:var(--glass-shine), 0 0 0 1px var(--glass-hairline), var(--glass-shadow-lift);transform:translateY(-3px)}.project-featured{grid-column:1/-1;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:40px;display:grid}.project-index{color:var(--subtle);font-size:var(--text-caption)}.project h3{font-size:var(--text-xl);letter-spacing:-.01em;margin-top:8px;font-weight:600}.project-featured h3{font-size:var(--text-2xl)}.project-text{color:var(--muted);line-height:var(--leading-body);margin-top:12px}.project-side{flex-direction:column;flex:1;display:flex}.project-featured .project-side{flex:none}.project-proof{background:var(--glass-inset);box-shadow:inset 0 0 0 1px var(--line);font-size:var(--text-sm);line-height:var(--leading-tight);border-radius:14px;margin-top:20px;padding:14px 16px 14px 20px;position:relative}.project-proof:before{content:"";background:var(--accent);border-radius:999px;width:3px;position:absolute;top:12px;bottom:12px;left:8px}.project-featured .project-proof{margin-top:0}.tags{gap:6px;margin-top:20px}.tags li{background:var(--glass-inset);box-shadow:inset 0 0 0 1px var(--line);color:var(--muted);font-size:var(--text-caption);border-radius:999px;padding:3px 10px}.project-foot{margin-top:auto;padding-top:24px}.project-link{font-size:var(--text-base);align-items:center;gap:8px;font-weight:600;text-decoration:none;display:inline-flex}.project-link:after{content:"";border-radius:var(--radius);position:absolute;inset:0}.project-link svg{transition:transform .35s var(--spring);font-size:.8em}.project:hover .project-link svg{transform:translate(4px)}@media (width<=860px){.projects{grid-template-columns:1fr}.project-featured{gap:0;display:flex}.project-featured .project-proof{margin-top:20px}}@media (width<=640px){.project{padding:22px}}.recog{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.recog-card{border-radius:var(--radius);color:var(--muted);font-size:var(--text-base);line-height:var(--leading-body);padding:28px}.recog-card h3{color:var(--text);font-size:var(--text-xl);margin-bottom:14px;font-weight:600}.oss-item+.oss-item{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.recog-meta{color:var(--ok-text);font-size:var(--text-caption);margin:0 0 8px}.recog-card a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--text) 30%, transparent);text-decoration-color:color-mix(in srgb, var(--text) 30%, transparent);text-underline-offset:3px;font-weight:600}.recog-card a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.recog-card ul{gap:10px;margin:0;padding-left:18px;display:grid}@media (width<=860px){.recog{grid-template-columns:1fr}}.contact{text-align:center;border-radius:32px;padding:56px 32px}.contact h2{font-size:var(--text-h2);letter-spacing:-.02em;font-weight:600;line-height:1.08}.contact p{color:var(--muted);font-size:var(--text-lg);margin:12px 0 28px}.socials{flex-wrap:wrap;justify-content:center;gap:10px;margin:28px 0 0;padding:0;list-style:none;display:flex}.socials a{background:var(--glass-inset);width:44px;height:44px;box-shadow:var(--glass-shine), 0 0 0 1px var(--line);color:var(--muted);font-size:var(--text-base);transition:color .2s ease, background-color .2s ease, transform .35s var(--spring);border-radius:50%;place-items:center;display:grid}.socials a:hover{background:var(--lens-fill);color:var(--text);transform:translateY(-2px)}.site-footer{border-top:1px solid var(--line);width:calc(100% - 48px);max-width:1032px;color:var(--subtle);font-size:var(--text-sm);justify-content:space-between;align-items:center;gap:16px;margin-top:64px;padding:28px 0 40px;display:flex}.site-footer a{align-items:center;gap:6px;text-decoration:none;display:inline-flex}.site-footer a:hover{color:var(--text)}@media (width<=640px){.wrap{padding-left:16px;padding-right:16px}.site-footer{width:calc(100% - 32px);padding-left:0;padding-right:0}.section{padding-top:80px}.contact{padding:40px 20px}}.js .reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(14px)}.js .reveal.is-visible{opacity:1;transform:none}.js .project.reveal.is-visible{transition:opacity .6s ease, background-color .25s ease, box-shadow .3s ease, transform .45s var(--spring)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.js .reveal{opacity:1;transform:none}}@media (prefers-reduced-transparency:reduce){:root{--glass-fill:var(--glass-fill-strong);--glass-fill-bar:var(--glass-fill-strong)}}
