.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.nav-wrap[data-astro-cid-c75fxstf]{z-index:10;position:sticky;top:0}.nav-wrap[data-astro-cid-c75fxstf] .mb-nav[data-astro-cid-c75fxstf]{max-width:none}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line)}.footer__inner[data-astro-cid-jo6i4kqk]{gap:var(--space-6);display:grid}.footer__inner[data-astro-cid-jo6i4kqk] .section__title[data-astro-cid-jo6i4kqk]{margin-bottom:var(--space-2)}.footer__email[data-astro-cid-jo6i4kqk]{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.footer__address[data-astro-cid-jo6i4kqk]{font:400 clamp(18px, 3vw, 24px)/1.3 var(--font-mono);color:var(--ink);overflow-wrap:anywhere}.footer__links[data-astro-cid-jo6i4kqk]{gap:var(--space-6);flex-wrap:wrap;padding:0;list-style:none;display:flex}.footer__links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{align-items:center;gap:var(--space-2);color:var(--ink-muted);font-size:14px;text-decoration:none;display:inline-flex}.footer__links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--ink)}.footer__legal[data-astro-cid-jo6i4kqk]{color:var(--ink-subtle);font-size:14px}.icon-check[data-astro-cid-jo6i4kqk],[data-astro-cid-jo6i4kqk][data-state=copied] .icon-copy[data-astro-cid-jo6i4kqk]{display:none}[data-astro-cid-jo6i4kqk][data-state=copied] .icon-check[data-astro-cid-jo6i4kqk]{color:var(--live);display:inline}:root{--surface:#1a1b26;--surface-raised:#24283b;--surface-sunken:#16161e;--line:#292e42;--line-strong:#737aa2;--ink:#c0caf5;--ink-muted:#a9b1d6;--ink-subtle:#8b93bd;--nitrogen:#7aa2f7;--nitrogen-soft:#283457;--on-nitrogen:#1a1b26;--live:#9ece6a;--focus:var(--nitrogen);--shadow-hover:0 0 0 1px #7aa2f733, 0 16px 40px #00000073;color-scheme:dark;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--space-24:96px;--container:1120px;--radius-sm:8px;--radius-lg:16px;--radius-pill:999px;--duration-fast:.16s;--duration-slow:.52s;--font-sans:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--surface:#e9eaf0;--surface-raised:#fff;--surface-sunken:#e1e2e7;--line:#c4c8da;--line-strong:#7d84ab;--ink:#1a1b26;--ink-muted:#3f4668;--ink-subtle:#5a6290;--nitrogen:#2853c8;--nitrogen-soft:#dde4fb;--on-nitrogen:#fff;--live:#3f6d23;--focus:var(--nitrogen);--shadow-hover:0 1px 2px #1a1b260f, 0 12px 32px #2853c81f;color-scheme:light}}:root[data-theme=light]{--surface:#e9eaf0;--surface-raised:#fff;--surface-sunken:#e1e2e7;--line:#c4c8da;--line-strong:#7d84ab;--ink:#1a1b26;--ink-muted:#3f4668;--ink-subtle:#5a6290;--nitrogen:#2853c8;--nitrogen-soft:#dde4fb;--on-nitrogen:#fff;--live:#3f6d23;--focus:var(--nitrogen);--shadow-hover:0 1px 2px #1a1b260f, 0 12px 32px #2853c81f;color-scheme:light}:root[data-palette=graphite]{--surface:#0b0d11;--surface-raised:#13161c;--surface-sunken:#07090c;--line:#232833;--line-strong:#5c6576;--ink:#e8ebf1;--ink-muted:#a8afbd;--ink-subtle:#7a8292;--nitrogen:#8ea6ff;--nitrogen-soft:#161d3a;--on-nitrogen:#0b0d11;--live:#4cd68f;--focus:var(--nitrogen);--shadow-hover:0 0 0 1px #8ea6ff2e, 0 16px 40px #00000073;color-scheme:dark}@media (prefers-color-scheme:light){:root[data-palette=graphite]:not([data-theme=dark]){--surface:#f4f5f7;--surface-raised:#fff;--surface-sunken:#eaecf0;--line:#dce0e7;--line-strong:#7a8394;--ink:#0e1117;--ink-muted:#4f5767;--ink-subtle:#667080;--nitrogen:#2343d0;--nitrogen-soft:#e7ecff;--on-nitrogen:#fff;--live:#0b7a4b;--focus:var(--nitrogen);--shadow-hover:0 1px 2px #0e11230f, 0 12px 32px #2343d01a;color-scheme:light}}:root[data-palette=graphite][data-theme=light]{--surface:#f4f5f7;--surface-raised:#fff;--surface-sunken:#eaecf0;--line:#dce0e7;--line-strong:#7a8394;--ink:#0e1117;--ink-muted:#4f5767;--ink-subtle:#667080;--nitrogen:#2343d0;--nitrogen-soft:#e7ecff;--on-nitrogen:#fff;--live:#0b7a4b;--focus:var(--nitrogen);--shadow-hover:0 1px 2px #0e11230f, 0 12px 32px #2343d01a;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:128px}body{background:var(--surface);color:var(--ink);font:400 16px/1.65 var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}:root{--ease-out:cubic-bezier(.16, 1, .3, 1)}h1,h2,h3,p,ul,dl,dd{margin:0}h1,h2,h3{text-wrap:balance}img{max-width:100%;display:block}a{color:var(--nitrogen)}b{color:var(--ink);font-weight:600}code{font:400 .9em var(--font-mono);background:var(--surface-sunken);border-radius:var(--radius-sm);padding:1px 6px}::selection{background:var(--nitrogen);color:var(--on-nitrogen)}.skip{left:var(--space-4);z-index:20;background:var(--nitrogen);color:var(--on-nitrogen);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);position:absolute;top:-48px}.skip:focus{top:var(--space-2)}.container{width:100%;max-width:var(--container);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.container{padding-inline:var(--space-8)}}.section{padding-block:40px}@media (width>=1024px){.section{padding-block:var(--space-16)}}.section__title{padding-top:var(--space-4);font:600 36px/1.15 var(--font-sans);letter-spacing:-.025em;margin-bottom:var(--space-8);position:relative}.section__title:before{content:"";background:var(--nitrogen);border-radius:2px;width:24px;height:2px;position:absolute;top:0;left:0}.eyebrow{font:500 12px/1.4 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}:where(a,button,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:2px}.mb-btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-sm);font:500 15px/1 var(--font-sans);letter-spacing:-.005em;white-space:nowrap;cursor:pointer;transition:background var(--duration-fast), border-color var(--duration-fast), color var(--duration-fast), transform var(--duration-fast);border:1px solid #0000;text-decoration:none;display:inline-flex}.mb-btn:active{transform:translateY(1px)}.mb-btn--primary{background:var(--nitrogen);color:var(--on-nitrogen)}.mb-btn--primary:hover{filter:brightness(1.08)}.mb-btn--secondary{color:var(--ink);border-color:var(--line-strong);background:0 0}.mb-btn--secondary:hover{border-color:var(--ink)}.mb-btn--ghost{color:var(--ink-muted);padding-inline:var(--space-2);background:0 0}.mb-btn--ghost:hover{color:var(--nitrogen)}.mb-btn .mb-arrow{transition:transform var(--duration-fast)}.mb-btn:hover .mb-arrow{transform:translate(3px)}.mb-chip{align-items:center;gap:var(--space-1);padding:6px var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--line-strong);color:var(--ink-muted);font:400 13.5px/1.5 var(--font-mono);font-variant-numeric:tabular-nums;display:inline-flex}.mb-chip--accent{border-color:var(--nitrogen);background:var(--nitrogen-soft);color:var(--nitrogen)}.mb-chip--live{border-color:var(--live);color:var(--live);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:500}.mb-chip--tool{gap:6px}.mb-chip--tool .tool-logo{color:var(--logo-dark,currentColor);flex-shrink:0}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .mb-chip--tool .tool-logo{color:var(--logo-light,currentColor)}}:root[data-theme=light] .mb-chip--tool .tool-logo{color:var(--logo-light,currentColor)}.mb-chip--quiet .tool-logo{opacity:.7}.mb-chip--tool .tool-logo--colour{filter:drop-shadow(0 0 .6px #e8ebf18c)}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .mb-chip--tool .tool-logo--colour{filter:none}}:root[data-theme=light] .mb-chip--tool .tool-logo--colour{filter:none}.mb-chip--quiet{color:var(--ink-subtle);border-style:dashed}.mb-btn--icon{min-width:44px;color:var(--ink-muted);padding:0}.mb-btn--icon:hover{color:var(--nitrogen)}.mb-tile--featured .mb-tile__visual{aspect-ratio:3}@media (width>=768px){.mb-tile--featured .mb-tile__text{padding:var(--space-8)}.mb-tile--featured .mb-tile__repos{column-gap:var(--space-8);grid-template-columns:repeat(2,1fr)}}.mb-chip-row{gap:var(--space-2);flex-wrap:wrap;align-content:flex-start;align-items:flex-start;display:flex}.mb-card{gap:var(--space-2);border-radius:var(--radius-lg);background:var(--surface-raised);border:1px solid var(--line);color:inherit;transition:border-color var(--duration-fast), box-shadow var(--duration-fast), transform var(--duration-fast);flex-direction:column;padding:28px;text-decoration:none;display:flex;position:relative}a.mb-card:hover{border-color:var(--nitrogen);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.mb-card__title{font:600 20px/1.4 var(--font-sans);letter-spacing:-.01em;margin:0}.mb-card__body{font:400 14px/1.55 var(--font-sans);color:var(--ink-muted);margin:0}.mb-card__meta{font:400 13px/1.5 var(--font-mono);color:var(--ink-subtle);margin:0}.mb-portal .mb-card__meta{order:-1}.mb-portal:after{content:"↗";top:var(--space-6);right:var(--space-6);color:var(--ink-subtle);font:400 18px/1 var(--font-sans);transition:transform var(--duration-fast), color var(--duration-fast);position:absolute}.mb-portal:hover:after{color:var(--nitrogen);transform:translate(2px,-2px)}.mb-tile{padding:0;overflow:hidden}.mb-tile__visual{aspect-ratio:16/9;background:var(--surface-sunken);border-bottom:1px solid var(--line);object-fit:cover;width:100%;max-width:100%;height:auto;display:block}.mb-tile__text{gap:var(--space-2);flex-direction:column;padding:28px;display:flex}.mb-tile__list{margin:var(--space-1) 0 var(--space-2);gap:var(--space-2);color:var(--ink-muted);padding-left:1.1em;font-size:14px;line-height:1.55;display:grid}.mb-tile__list b{color:var(--ink)}.mb-tile__repos{margin:var(--space-1) 0 var(--space-2);gap:var(--space-3);padding:0;list-style:none;display:grid}.mb-tile__repos li{color:var(--ink-muted);gap:2px;font-size:14px;line-height:1.5;display:grid}.mb-tile__repos a{font:500 13.5px/1.4 var(--font-mono);color:var(--nitrogen);overflow-wrap:anywhere;text-decoration:none}.mb-tile__repos a:hover{text-decoration:underline}.mb-tile__links{gap:var(--space-4);margin:var(--space-2) 0 0;flex-wrap:wrap;display:flex}.mb-tile__links a{font:500 14px/1 var(--font-sans);color:var(--nitrogen);text-decoration:none}.mb-tile__links a:hover{text-decoration:underline}.mb-tile__link{color:inherit;text-decoration:none}.mb-tile__link:after{content:"";border-radius:inherit;position:absolute;inset:0}.mb-tile__repos a,.mb-tile__links a{z-index:1;position:relative}.mb-tile--linked:hover{border-color:var(--nitrogen);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.mb-tile__head{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.mb-paper{gap:var(--space-2) var(--space-6);padding:var(--space-4) 0;color:inherit;border-top:1px solid var(--line);grid-template-columns:140px 1fr;text-decoration:none;display:grid}.mb-paper:first-child{border-top:0}.mb-paper__venue{font:400 13px/1.5 var(--font-mono);color:var(--ink-subtle);padding-top:3px}.mb-paper__title{font:500 16px/1.5 var(--font-sans);transition:color var(--duration-fast);margin:0}.mb-paper__authors{font:400 14px/1.55 var(--font-sans);color:var(--ink-muted);margin:var(--space-1) 0 0}a.mb-paper:hover .mb-paper__title{color:var(--nitrogen)}@media (width<=640px){.mb-paper{grid-template-columns:1fr}}.mb-nav{justify-content:space-between;align-items:center;gap:var(--space-6);height:64px;padding-inline:var(--space-6);background:color-mix(in srgb, var(--surface) 82%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex}.mb-nav__mark{font:600 16px/1 var(--font-sans);letter-spacing:-.02em;color:var(--ink);text-decoration:none}.mb-nav__mark span{color:var(--nitrogen)}.mb-nav__links{align-items:center;gap:var(--space-6);margin:0;padding:0;list-style:none;display:flex}.mb-nav__links a{font:500 14px/1 var(--font-sans);color:var(--ink-muted);transition:color var(--duration-fast);text-decoration:none}.mb-nav__links a:hover,.mb-nav__links a[aria-current=page]{color:var(--ink)}.mb-nav__links a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--nitrogen);text-underline-offset:6px;text-decoration-thickness:2px}.mb-toggle{border-radius:var(--radius-pill);border:1px solid var(--line-strong);width:36px;height:36px;color:var(--ink-muted);cursor:pointer;font:400 15px/1 var(--font-sans);background:0 0;place-items:center;display:grid}.mb-toggle:hover{color:var(--ink);border-color:var(--ink)}@media (width<=640px){.mb-nav__links li:not(:last-child){display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}@media (prefers-reduced-motion:no-preference){.js-reveal{opacity:0;transition:opacity var(--duration-slow) var(--ease-out), transform var(--duration-slow) var(--ease-out);transform:translateY(12px)}.js-reveal.is-revealed{opacity:1;transform:none}.hero-stagger>*{animation:rise .6s var(--ease-out) both}.hero-stagger>:nth-child(2){animation-delay:60ms}.hero-stagger>:nth-child(3){animation-delay:.12s}.hero-stagger>:nth-child(4){animation-delay:.18s}.hero-stagger>:nth-child(5){animation-delay:.24s}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}@media print{:root{color-scheme:light;--surface:#fff;--surface-raised:#fff;--ink:#0e1117;--ink-muted:#4f5767;--ink-subtle:#667080;--nitrogen:#2343d0;--line:#dce0e7}.mb-nav,.cv-nav,.mb-btn,.site-footer,.skip{display:none!important}.section{padding-block:var(--space-6)}}
