@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/archivo-latin-500-normal.CGugC8dq.woff2)format("woff2"),url(/_astro/archivo-latin-500-normal.pkzA7jw9.woff)format("woff")}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/archivo-latin-ext-500-normal.RFhg4CpD.woff2)format("woff2"),url(/_astro/archivo-latin-ext-500-normal.D7mXw3Kz.woff)format("woff")}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/archivo-latin-700-normal.D9cHMWGj.woff2)format("woff2"),url(/_astro/archivo-latin-700-normal.lT5TFe7H.woff)format("woff")}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/archivo-latin-ext-700-normal.DD_nkw6b.woff2)format("woff2"),url(/_astro/archivo-latin-ext-700-normal.CgyfnKjw.woff)format("woff")}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/archivo-latin-800-normal.cB6v3kRN.woff2)format("woff2"),url(/_astro/archivo-latin-800-normal.DZa_k145.woff)format("woff")}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/archivo-latin-ext-800-normal.BC6piDwP.woff2)format("woff2"),url(/_astro/archivo-latin-ext-800-normal.B9NTbsU1.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-400-normal.RBey6euL.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-ext-500-normal.DakdToA3.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-500-normal.D0aIdm-b.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-600-normal.DIrixKbi.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff)format("woff")}:root{--ground:#f3f3f1;--panel:#e8e8e3;--ink:#121212;--text-2:#3d3e38;--muted:#55564f;--rule:#c9c9c3;--accent:#c93a1c;--accent-ink:#fff;--on-ink:#f3f3f1;--on-ink-muted:#cfcfc9;--on-ink-rule:#45463f;--display:"Archivo", "Helvetica Neue", Arial, sans-serif;--sans:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Consolas, monospace;--max-w:1200px;--gutter:24px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:16px;font-size:16px}body{font-family:var(--sans);background:var(--ground);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:1.0625rem;line-height:1.55}a{color:inherit}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.container{max-width:var(--max-w);padding:0 var(--gutter);margin:0 auto}.mono{font-family:var(--mono);font-size:.875rem}.muted{color:var(--muted)}.skip-link{background:var(--ink);color:var(--on-ink);z-index:100;padding:10px 18px;font-weight:600;position:absolute;top:0;left:-9999px}.skip-link:focus{top:8px;left:8px}.btn{background:var(--ink);min-height:48px;color:var(--on-ink);border:0;justify-content:center;align-items:center;gap:10px;padding:0 22px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--accent);color:var(--accent-ink)}.btn-accent{background:var(--accent);color:var(--accent-ink);min-height:52px;padding:0 26px}.btn-accent:hover{background:var(--ink);color:var(--on-ink)}.btn svg{flex:none}.site-nav-inner{border-bottom:1px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;display:flex}.site-nav-name{font-family:var(--display);letter-spacing:-.01em;font-size:1.25rem;font-weight:800;text-decoration:none}.site-nav-links{font-family:var(--mono);flex-wrap:wrap;align-items:center;gap:8px 28px;font-size:.875rem;display:flex}.site-nav-links a{text-decoration:none}.site-nav-links .btn{min-height:44px;padding:0 18px;font-weight:500}@media (width<=720px){.site-nav-links .nav-secondary{display:none}}.hero{flex-wrap:wrap;align-items:flex-end;gap:56px;padding:88px 0 64px;display:flex}.hero-text{flex:999 560px;min-width:0}.hero-role{color:var(--muted);margin-bottom:28px}.hero h1{font-family:var(--display);letter-spacing:-.035em;font-size:clamp(3.5rem,9vw,7.5rem);font-weight:800;line-height:.92}.hero-tagline{max-width:680px;font-family:var(--display);letter-spacing:-.01em;margin-top:32px;font-size:clamp(1.5rem,2.6vw,2.125rem);font-weight:500;line-height:1.18}.hero-tagline em{color:var(--accent);white-space:nowrap;font-style:normal}.hero-bio{max-width:600px;color:var(--text-2);margin-top:24px}.hero-actions{flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:40px;display:flex}.hero-email{text-underline-offset:4px;font-weight:500}.hero-links{gap:20px;display:flex}.hero-photo{aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;background:var(--panel);flex:260px;width:100%;max-width:340px;height:auto}.credentials{border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}.cred-row{flex-wrap:wrap;align-items:baseline;gap:12px 32px;padding:22px 0;list-style:none;display:flex}.cred-row li{font-family:var(--display);font-size:1.3125rem;font-weight:700}.cred-row li.cred-label{font-family:var(--mono);color:var(--muted);font-size:.8125rem;font-weight:400}.section{padding-top:104px}.section-last{padding-bottom:112px}.section-head{border-bottom:2px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:20px;display:flex}.section-head h2{font-family:var(--display);letter-spacing:-.025em;font-size:clamp(2.125rem,4vw,3rem);font-weight:800;line-height:1.1}.section-no{font-family:var(--mono);letter-spacing:0;color:var(--accent);vertical-align:top;margin-right:14px;font-size:1rem;font-weight:500}.section-head-aside{font-family:var(--mono);color:var(--muted);font-size:.875rem}a.section-head-aside{color:var(--ink)}a.section-head-aside:hover{color:var(--accent)}.section-intro{max-width:640px;color:var(--text-2);margin-top:20px}.badge{border:1px solid var(--ink);font-family:var(--mono);color:var(--ink);white-space:nowrap;padding:0 6px;font-size:.8125rem;line-height:1.6;display:inline-block}.badge-accent{border-color:var(--accent);color:var(--accent)}.offer{border-bottom:1px solid var(--rule)}.offer summary{cursor:pointer;flex-wrap:wrap;gap:20px 40px;padding:36px 0;list-style:none;display:flex}.offer summary::-webkit-details-marker{display:none}.offer summary:hover .offer-title{color:var(--accent)}.offer-no{color:var(--muted);flex:0 0 48px;padding-top:8px}.offer-main{flex:999 440px;min-width:0}.offer-title{font-family:var(--display);letter-spacing:-.015em;font-size:clamp(1.5rem,2.4vw,1.875rem);font-weight:700;line-height:1.15}.offer-pitch{max-width:640px;color:var(--text-2);margin-top:12px;display:block}.offer-side{flex-direction:column;flex:220px;gap:14px;padding-top:6px;display:flex}.offer-tags{font-family:var(--mono);color:var(--text-2);font-size:.8125rem;line-height:1.7}.offer-toggle{color:var(--accent);align-items:center;gap:8px;font-weight:600;display:inline-flex}.offer-toggle svg{transition:transform .2s}.offer[open] .offer-toggle svg{transform:rotate(180deg)}.offer .toggle-close,.offer[open] .toggle-open{display:none}.offer[open] .toggle-close{display:inline}.offer-body{flex-wrap:wrap;gap:32px 40px;padding:0 0 48px 88px;display:flex}@media (width<=720px){.offer-body{padding-left:0}}.offer-abstract{flex:999 440px;min-width:0;max-width:680px}.offer-abstract p+p{margin-top:18px}.offer-facts{background:var(--panel);flex-direction:column;flex:220px;align-self:flex-start;gap:18px;padding:20px;display:flex}.offer-facts dl{grid-template-columns:auto 1fr;gap:8px 16px;font-size:.9375rem;display:grid}.offer-facts dt{font-family:var(--mono);color:var(--muted);padding-top:2px;font-size:.8125rem}.ledger{list-style:none}.ledger-row{border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:baseline;gap:6px 32px;padding:20px 0;display:flex}.ledger-date{font-family:var(--mono);color:var(--muted);flex:0 0 112px;font-size:.875rem}.ledger-event{flex:0 280px;font-weight:600;text-decoration:none}.ledger-talk{flex:999 340px;min-width:0}.ledger-with{color:var(--muted);font-size:.875rem;display:block}.ledger-links{font-family:var(--mono);gap:16px;margin-top:4px;font-size:.8125rem;display:flex}.ledger-place{font-family:var(--mono);color:var(--muted);flex-wrap:wrap;flex:0 0 190px;align-items:baseline;gap:6px 10px;font-size:.8125rem;display:flex}.also{color:var(--text-2);margin-top:28px;font-size:.9375rem}.also-label{font-family:var(--mono);color:var(--muted);margin-right:12px;font-size:.8125rem}.code-cols{flex-wrap:wrap;gap:40px 64px;margin-top:64px;display:flex}.code-col-main{flex:999 520px;min-width:0}.code-col h3{font-family:var(--display);margin-bottom:6px;font-size:1.375rem;font-weight:700}.code-col-intro{color:var(--text-2);margin-bottom:12px;font-size:.9375rem}.repo{border-top:1px solid var(--rule);flex-wrap:wrap;align-items:baseline;gap:4px 20px;padding:16px 0;text-decoration:none;display:flex}.repo-name{font-family:var(--mono);flex:0 0 230px;font-size:.9375rem;font-weight:500}.repo-desc{color:var(--text-2);flex:999 260px;font-size:.9375rem}.repo-meta{font-family:var(--mono);color:var(--muted);flex:none;font-size:.8125rem}.repo:hover .repo-name{color:var(--accent)}.first-party{margin-top:40px}.first-party-head h3{font-family:var(--display);letter-spacing:-.01em;margin-bottom:8px;font-size:1.75rem;font-weight:700;line-height:1.15}.first-party-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:24px;margin-top:20px;display:grid}.fp-card{border:2px solid var(--ink);background:#fff;flex-direction:column;padding:28px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex}.fp-card:hover{color:var(--ink);box-shadow:6px 6px 0 var(--ink);transform:translate(-3px,-3px)}.fp-org{font-family:var(--mono);color:var(--muted);font-size:.875rem}.fp-name{font-family:var(--display);letter-spacing:-.02em;overflow-wrap:anywhere;margin-top:2px;font-size:clamp(1.5rem,2.6vw,2rem);font-weight:800;line-height:1.1}.fp-pr{font-family:var(--mono);color:var(--accent);margin-top:18px;font-size:.875rem;font-weight:500}.fp-change{margin-top:6px;font-size:1.125rem;font-weight:500}.fp-about{color:var(--text-2);flex:1;margin-top:12px;font-size:.9375rem}.fp-foot{border-top:1px solid var(--rule);font-family:var(--mono);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-top:24px;padding-top:14px;font-size:.8125rem;display:flex}.fp-cta{color:var(--ink);font-weight:500}.fp-card:hover .fp-cta{color:var(--accent)}.post{border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:baseline;gap:4px 32px;padding:16px 0;text-decoration:none;display:flex}.post-date{font-family:var(--mono);color:var(--muted);flex:0 0 112px;font-size:.875rem}.post-title{flex:999 400px;font-weight:500}.post:hover .post-title{color:var(--accent)}.contact{background:var(--ink);color:var(--on-ink);padding:96px 0}.contact-text{max-width:620px;color:var(--on-ink-muted);font-size:1.1875rem;font-weight:400;line-height:1.55}.contact-email{font-family:var(--display);letter-spacing:-.035em;color:var(--on-ink);text-decoration-color:var(--accent);text-underline-offset:12px;overflow-wrap:anywhere;margin-top:24px;font-size:clamp(2.5rem,7vw,6rem);font-weight:800;line-height:1;text-decoration-thickness:6px;display:inline-block}.contact-email:hover{color:var(--on-ink);text-decoration-color:var(--on-ink)}footer{background:var(--ink);color:var(--on-ink-muted)}.footer-inner{border-top:1px solid var(--on-ink-rule);font-family:var(--mono);flex-wrap:wrap;justify-content:space-between;gap:16px;padding:20px 0 40px;font-size:.875rem;display:flex}.footer-links{flex-wrap:wrap;gap:24px;display:flex}.footer-links a{color:var(--on-ink)}.footer-links a:hover{color:var(--on-ink-muted)}.notfound{padding:120px 0}.notfound h1{font-family:var(--display);letter-spacing:-.04em;font-size:clamp(4rem,12vw,9rem);font-weight:800;line-height:.9}.notfound p{max-width:520px;color:var(--text-2);margin:24px 0 32px}
