@font-face{font-family:SF Pro Text;src:url(/typeface/sf-pro-text-400.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:SF Pro Text;src:url(/typeface/sf-pro-text-500.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:SF Pro Text;src:url(/typeface/sf-pro-text-300.woff2) format("woff2");font-weight:300;font-display:swap}@font-face{font-family:SF Pro Text Tabular;src:url(/typeface/sf-pro-text-tabular-400.woff2) format("woff2");font-weight:400;font-display:swap}:root{color-scheme:light;--color-bg:#ffffff;--color-surface:#ffffff;--color-surface-muted:#f6f6f6;--color-accent:#0080ff;--color-heading:#1a1a1a;--color-text:#4a4a4a;--color-link:#2d2d2d;--color-text-secondary:#606060;--color-text-tertiary:#999;--color-danger:#d32f2f;--color-border:#ddd;--color-border-muted:#eee;--card-ring:rgba(0,0,0,0.06);--card-ring-hover:rgba(0,0,0,0.08);--control-ring:rgba(0,0,0,0.09);--control-ring-hover:rgba(0,0,0,0.13);--hover-wash:rgba(0,0,0,0.06);--skeleton-base:#f0f0f0;--skeleton-highlight:#e0e0e0;--dot-inactive:#e0e0e0;--img-dim:brightness(1);--overlay-glass:rgba(255,255,255,0.15);--overlay-ring:rgba(255,255,255,0.2);--picker-fade:rgba(255,255,255,0.92);--underline:rgba(0,0,0,0.2);--underline-hover:rgba(0,0,0,0.6)}@media (prefers-color-scheme:dark){:root{color-scheme:dark;--color-bg:#101010;--color-surface:#1c1c1c;--color-surface-muted:#191919;--color-accent:#3395ff;--color-heading:#ececec;--color-text:#a8a8a8;--color-link:#d6d6d6;--color-text-secondary:#8f8f8f;--color-text-tertiary:#6f6f6f;--color-danger:#e57373;--color-border:#2c2c2c;--color-border-muted:#262626;--card-ring:rgba(255,255,255,0.1);--card-ring-hover:rgba(255,255,255,0.16);--control-ring:rgba(255,255,255,0.12);--control-ring-hover:rgba(255,255,255,0.2);--hover-wash:rgba(255,255,255,0.08);--skeleton-base:#1e1e1e;--skeleton-highlight:#2a2a2a;--dot-inactive:#2e2e2e;--img-dim:brightness(0.88);--overlay-glass:rgba(28,28,28,0.55);--overlay-ring:rgba(255,255,255,0.1);--picker-fade:rgba(22,22,22,0.92);--underline:rgba(255,255,255,0.25);--underline-hover:rgba(255,255,255,0.65)}}*{box-sizing:border-box;padding:0;margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-to-content{position:absolute;top:-40px;left:0;background:#000;color:white;padding:8px;text-decoration:none;z-index:100;border-radius:0 0 4px 0}.skip-to-content:focus{top:0}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}:focus:not(:focus-visible){outline:none}@media only screen and (min-resolution:120dpi){body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}}html{font-family:SF Pro Text,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-size:14px;line-height:22px;letter-spacing:.05px;background:var(--color-bg);scroll-behavior:smooth}body{padding:40px 20px;color:var(--color-text);display:flex;flex-direction:column;align-items:center;justify-content:center;scrollbar-gutter:stable both-edges}@media (max-width:768px){body{padding:20px 16px}}body>div{width:100%;max-width:600px}section{padding:16px 0}h1,h2,h3{font-size:14px;line-height:22px;font-weight:400;margin:0}h2{display:flex;align-items:center;gap:6px}h2 svg{vertical-align:middle}header h2{flex-direction:column;align-items:flex-start;gap:0}h1 a{color:var(--color-heading)}h3{display:flex;flex-direction:row;align-items:center;gap:4px}a{text-decoration:none;transition:color .1s ease}a,button{text-underline-position:from-font;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}h1,h2,h3,h4{text-wrap:balance}p{text-wrap:pretty}h1,h2,h3,h4,li,p{overflow-wrap:break-word}b{font-weight:500}b,h1{color:var(--color-heading)}h1{font-weight:600;margin-bottom:2px}h3{font-weight:500}h3,h4{color:var(--color-heading)}h4{font-weight:400}.bio{display:block;padding:1px 0}.bio a{display:inline-block}.markdown{line-height:1.5}.link,.markdown a{position:relative;display:inline-flex;gap:4px;padding:4px 0;margin:-2px 0;transition:color 50ms cubic-bezier(.55,.055,.675,.19),background-color 50ms ease,margin 50ms ease,box-shadow 50ms ease,padding 50ms ease;color:var(--color-link);font-weight:500;border-radius:2px;cursor:pointer}.link:focus-visible,.markdown a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.link:after,.markdown a:after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background-color:var(--color-border);transition:background-color .2s ease-out,bottom .2s ease-out,transform .25s cubic-bezier(.785,.135,.15,.86),height .1s ease-out}.link:before,.markdown a:before{content:"";position:absolute;left:0;right:0;top:10px;bottom:6px;background-color:transparent;transition:border-radius .1s ease,background-color 50ms cubic-bezier(.215,.61,.355,1),left 50ms ease,right 50ms ease,top 50ms ease,bottom 50ms ease;border-radius:.5px}@media (hover:hover){.link:hover,.markdown a:hover{color:var(--color-accent)}.link:hover:after,.markdown a:hover:after{background-color:color-mix(in srgb,var(--color-accent) 16%,transparent);bottom:4px;height:1.5px}.link:hover:before,.markdown a:hover:before{left:-2px;right:-2px;top:6px;bottom:5px;border-radius:2px;background-color:color-mix(in srgb,var(--color-accent) 2%,transparent)}}.ext{font-size:12px;display:flex;flex-direction:row;align-items:center;gap:6px}.reg{font-weight:400}.co:after{opacity:0}@media (hover:hover){.co:hover:after{opacity:1}.co:hover b{color:var(--color-accent)}}.founder a,.founder b,.founder span{font-size:12px;line-height:1.2}button{border:none}button.link{background:none;padding:4px 0;font:inherit;text-align:left}.btn{position:relative;z-index:2;display:flex;max-height:28px;min-height:28px;min-width:28px;padding:6px;justify-content:center;align-items:center;text-align:center;gap:4px;border-radius:8px;background-color:#fff;background-image:radial-gradient(circle closest-corner at 50% 66%,rgba(26,26,26,.08),hsla(0,0%,100%,.01));box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.4),0 0 0 1px rgba(26,26,26,.04),0 1px 2px 1px hsla(0,0%,94%,.2),0 2px 4px 0 hsla(0,0%,80.7%,.2),0 2px 1px 0 rgba(26,26,26,.06),0 2px 4px -2px rgba(26,26,26,.2);transform:translate(0);transition:background-position .2s ease,color .2s ease,transform .12s ease-out,box-shadow .12s ease-in-out;color:var(--btn-text,#444);font-family:SF Pro Text,system-ui;font-weight:500;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer}@media (hover:hover){.btn:hover{background-image:radial-gradient(circle farthest-side at 50% 72%,rgba(26,26,26,.12),hsla(0,0%,100%,.01));box-shadow:inset 0 0 0 0 hsla(0,0%,100%,.01),0 0 0 1px rgba(26,26,26,.06),0 1px 2px 1px hsla(0,0%,94.1%,.4),0 2px 4px 0 hsla(0,0%,80.7%,.2),0 3px 1px 0 rgba(26,26,26,.08),0 2px 4px -2px rgba(26,26,26,.32);transform:translateY(-.5px);color:var(--color-heading)}}.btn:active{box-shadow:inset 0 0 0 20px hsla(0,0%,100%,.08),0 0 0 1px rgba(26,26,26,.12),0 2px 2px 1px rgba(26,26,26,.04),0 2px 4px 0 hsla(0,0%,80.7%,.2),0 3px 1px 0 rgba(26,26,26,.01),0 2px 4px -2px rgba(26,26,26,.02);transform:translateY(.5px)}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.2),0 1px 0 6px rgba(26,26,26,.02),0 1px 2px 1px rgba(26,26,26,.04),0 2px 4px 0 hsla(0,0%,80.7%,.2),0 2px 1px 0 rgba(26,26,26,.02),0 2px 4px -2px rgba(26,26,26,.04)}@media (max-width:1024px){.btn{min-height:44px;min-width:44px;padding:12px}}.btn.tertiary{padding:6px 8px;background-color:white;background-image:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,0),0 0 0 1px rgba(26,26,26,.12),0 1px 2px 1px rgba(255,255,255,.04),0 2px 4px 0 rgba(255,255,255,.08),0 2px 1px 0 rgba(255,255,255,.04),0 2px 4px -2px rgba(255,255,255,.08)}@media (hover:hover){.btn.tertiary:hover{box-shadow:inset 0 0 0 1px rgba(255,255,255,0),0 0 0 1px rgba(26,26,26,.16),0 1px 2px 1px rgba(255,255,255,.04),0 2px 4px 0 rgba(255,255,255,.08),0 2px 1px 0 rgba(255,255,255,.04),0 2px 4px -2px rgba(255,255,255,.08);transform:translate(0)}}.btn.tertiary:active{transform:translateY(.5px)}@media (prefers-color-scheme:dark){:root{--btn-text:#b5b5b5}.btn{background-color:var(--color-surface);background-image:radial-gradient(circle closest-corner at 50% 66%,rgba(255,255,255,.05),rgba(255,255,255,.01));box-shadow:inset 0 1px 0 0 rgba(255,255,255,.06),0 0 0 1px rgba(255,255,255,.09),0 1px 2px 0 rgba(0,0,0,.4),0 2px 4px -1px rgba(0,0,0,.5)}@media (hover:hover){.btn:hover{background-image:radial-gradient(circle farthest-side at 50% 72%,rgba(255,255,255,.08),rgba(255,255,255,.01));box-shadow:inset 0 1px 0 0 rgba(255,255,255,.08),0 0 0 1px rgba(255,255,255,.14),0 2px 3px 0 rgba(0,0,0,.45),0 3px 6px -1px rgba(0,0,0,.55)}}.btn:active{box-shadow:inset 0 1px 3px 0 rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.1),0 1px 1px 0 rgba(0,0,0,.3)}.btn.tertiary{background-color:var(--color-surface);background-image:none;box-shadow:0 0 0 1px rgba(255,255,255,.12)}@media (hover:hover){.btn.tertiary:hover{box-shadow:0 0 0 1px rgba(255,255,255,.2)}}.btn.tertiary:focus-visible{box-shadow:0 0 0 1px rgba(255,255,255,.2),0 0 0 4px rgba(255,255,255,.06)}}.btn.tertiary:focus-visible{box-shadow:inset 0 0 0 1px rgba(255,255,255,0),0 0 0 1px rgba(26,26,26,.16),0 0 0 4px rgba(0,0,0,.04),0 2px 4px 0 rgba(255,255,255,.08),0 2px 1px 0 rgba(255,255,255,.04),0 2px 4px -2px rgba(255,255,255,.08)}.map-container{position:relative;min-height:360px;max-height:360px;width:100%;margin-top:16px;margin-bottom:0;background-color:var(--color-bg)}.map-container:before{content:"";position:absolute;top:-16px;left:0;right:0;border-top:.5px solid var(--color-border)}.map-controls{position:absolute;bottom:0;left:0;right:0;padding:6px 8px;border-bottom-left-radius:7px;border-bottom-right-radius:7px;background-color:var(--color-surface);display:flex;flex-direction:row;align-items:center;justify-content:space-between;z-index:10;border-top:.5px solid var(--color-border)}.map-controls span{font-size:14px}@media (prefers-color-scheme:dark){.mapboxgl-popup-content{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px rgba(0,0,0,.4)}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{border-top-color:var(--color-surface)}}.custom-marker{background-color:var(--color-surface);border:2px solid var(--color-heading);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--color-heading);cursor:pointer;box-shadow:0 2px 4px rgba(0,0,0,.2)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeInUp .6s ease-out forwards;opacity:0}.scroll-to-top{position:fixed;bottom:20px;right:20px;width:44px;height:44px;border-radius:50%;background:var(--color-surface);color:var(--color-text);box-shadow:0 2px 8px rgba(0,0,0,.15);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s,transform .3s;z-index:100;border:1px solid var(--control-ring)}.scroll-to-top.visible{opacity:1;visibility:visible}@media (hover:hover){.scroll-to-top:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.2)}}.scroll-to-top:active{transform:translateY(0)}@media (max-width:768px){.scroll-to-top{bottom:16px;right:16px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.fade-in{animation:none;opacity:1}}