@font-face{
  font-family:"Public Sans";
  src:url("fonts/public-sans-latin-wght-normal.woff2") format("woff2-variations");
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Public Sans";
  src:url("fonts/public-sans-latin-wght-italic.woff2") format("woff2-variations");
  font-weight:100 900;
  font-style:italic;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --ink:#121212;
  --ink-2:#3a3a3a;
  --muted:#5c5c5c;
  --line:#cdd3ce;
  --bg:#fff;
  --fill:#eef1ee;
  --sage:#3d5a4a;
  --navy:#1a2529;
  --err:#b3261e;
  --font:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-weight-normal:400;
  --font-weight-medium:500;
  --font-weight-semibold:600;
  --font-weight-bold:700;
  --z-skip:100;
  --measure:42rem;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  border-top:4px solid var(--sage);
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font);
  font-size:16px;
  font-weight:var(--font-weight-normal);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
::selection{background:rgba(61,90,74,.2);color:var(--ink)}
a{color:var(--ink);text-decoration-color:rgba(61,90,74,.45);text-underline-offset:3px}
a:hover{text-decoration-color:var(--ink)}
.wrap{width:100%;max-width:var(--measure);margin:0 auto;padding:0 24px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;z-index:var(--z-skip)}
.skip:focus{left:8px}
:focus-visible{outline:2px solid #111;outline-offset:3px}
[id]{scroll-margin-top:24px}

/* header */
.topbar{border-bottom:1px solid var(--line)}
.topbar__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:64px;
  padding-top:12px;
  padding-bottom:12px;
}
.wordmark{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-weight:var(--font-weight-semibold);
  text-decoration:none;
  letter-spacing:-.01em;
}
.wordmark:hover{text-decoration:none}
.wordmark:hover span{text-decoration:underline;text-decoration-color:rgba(18,18,18,.35);text-underline-offset:3px}
.wordmark picture.avatar{display:block;width:48px;height:48px;flex-shrink:0;line-height:0}
.avatar img{
  display:block;
  width:48px;
  height:48px;
  border-radius:50%;
  object-fit:cover;
}
.topbar__link{color:var(--muted);text-decoration:none;font-size:14px;padding:10px 0;margin:-10px 0}
.topbar__link:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

/* portrait */
.portrait-wrap{padding-top:40px}
.portrait{
  margin:0;
  aspect-ratio:3/2;
  overflow:hidden;
  background:var(--fill);
  border:1px solid var(--line);
  border-radius:0;
  line-height:0;
}
.portrait picture,
.portrait img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:0;
}

/* intro */
.intro{padding-top:40px;padding-bottom:8px}
.intro h1{
  font-size:clamp(28px,6vw,40px);
  font-weight:var(--font-weight-semibold);
  line-height:1.15;
  letter-spacing:-.025em;
  margin:0 0 10px;
  text-wrap:balance;
}
.lede{
  font-size:18px;
  line-height:1.5;
  color:var(--ink-2);
  margin:0 0 28px;
}
.bio p{
  margin:0 0 16px;
  color:var(--ink-2);
  max-width:42rem;
}
.bio p:last-child{margin-bottom:0}

/* work & education */
.facts{padding-top:32px;padding-bottom:8px}
.facts__list{list-style:none;margin:0;padding:0}
.facts__list > li{
  display:grid;
  grid-template-columns:11rem 1fr;
  gap:16px 24px;
  padding:22px 0;
  border-bottom:1px solid var(--line);
}
.facts__list > li:first-child{border-top:1px solid var(--line)}
.facts h2{
  margin:0;
  font-size:13px;
  font-weight:var(--font-weight-medium);
  color:var(--sage);
  line-height:1.4;
}
.facts p{
  margin:0 0 8px;
  font-size:16px;
  letter-spacing:-.01em;
  color:var(--ink);
  line-height:1.4;
}
.facts p:last-child{margin-bottom:0}

/* social */
.social{padding-top:36px;padding-bottom:8px}
.social h2{
  font-size:13px;
  font-weight:var(--font-weight-medium);
  color:var(--sage);
  margin:0;
  padding:0 0 12px;
  border-bottom:1px solid var(--line);
}
.social__list{
  list-style:none;
  margin:0;
  padding:16px 0 0;
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
}
.social__list a{font-weight:var(--font-weight-medium)}

/* invest inquiry */
.inquire{margin-top:28px;padding-bottom:72px}
.inquire p{margin:0;padding-top:22px;border-top:1px solid var(--line)}
.inquire a{font-weight:var(--font-weight-medium);text-underline-offset:4px}

/* footer */
.footer{border-top:1px solid var(--line);color:var(--muted);font-size:14px;padding-bottom:env(safe-area-inset-bottom)}
.footer__inner{display:flex;justify-content:space-between;gap:12px;padding-top:20px;padding-bottom:28px;flex-wrap:wrap}
.footer__links{display:flex;gap:18px;flex-wrap:wrap}
.footer a{color:var(--muted);text-decoration:none}
.footer a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

@media (max-width:840px){
  .portrait-wrap{padding-top:28px}
  .intro{padding-top:32px}
  .intro h1{font-size:28px}
  .lede{font-size:17px}
}
@media (max-width:640px){
  .wrap,.topbar__inner{padding-left:20px;padding-right:20px}
  .facts__list > li{grid-template-columns:1fr;gap:6px;padding:18px 0}
  .inquire{padding-bottom:56px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
