@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/b5963afcf1479527-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/5ed7d4ff5e59016d-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/84adbee2f2a7cb50-s.p.woff2) format("woff2");unicode-range:u+00??,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:Newsreader Fallback;src:local("Times New Roman");ascent-override:69.68%;descent-override:25.12%;line-gap-override:0.00%;size-adjust:105.48%}.__className_a269ef{font-family:Newsreader,Newsreader Fallback;font-style:normal}.__variable_a269ef{--font-serif:"Newsreader","Newsreader Fallback"}:root{--portfolio-font-size:1.0625rem}*,:after,:before{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:#ffffff;color:#0a0a09}.mh{--mh-bg:#ffffff;--mh-text:#0a0a09;--mh-muted:#6b7280;--mh-rule:#f0f0ef;--mh-link-underline:rgba(10,10,9,0.28);--mh-gutter:32px;--mh-gap:32px;--mh-section-space:96px;position:relative;background:var(--mh-bg);color:var(--mh-text);min-height:100vh;font-family:var(--font-serif),"Iowan Old Style",Georgia,serif;font-size:var(--portfolio-font-size);font-weight:300;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;hanging-punctuation:first last}.mh__content{display:flex;flex-direction:column;min-height:100vh;padding:var(--mh-gutter) 0 var(--mh-gutter) var(--mh-gutter)}.mh__row{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:var(--mh-gap);padding-right:var(--mh-gutter)}.mh__row+.mh__row{margin-top:var(--mh-section-space);padding-top:var(--mh-section-space);border-top:1px solid var(--mh-rule)}.mh__aside,.mh__label{grid-column:span 2}.mh__main{grid-column:span 3;max-width:64ch}.mh__sigil{width:88px;height:88px;margin-top:-8px;line-height:0}.mh__sigil canvas{display:block;width:88px;height:88px}.mh__name{margin:0 0 24px;font-size:var(--portfolio-font-size);font-weight:600;line-height:1.6;letter-spacing:.01em;text-transform:uppercase}.mh__bio,.mh__stack p{margin:0;text-wrap:pretty}.mh__label{margin:0;font-size:var(--portfolio-font-size);font-weight:400;line-height:1.6}.mh__stack{gap:12px}.mh__projects,.mh__stack{display:flex;flex-direction:column}.mh__projects{list-style:none;margin:0;padding:0;gap:28px}.mh__project{display:flex;flex-direction:column}.mh__project-name{font-weight:400;text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color .2s ease}.mh__project-desc{color:var(--mh-muted);text-wrap:pretty}.mh__elsewhere{display:flex;flex-wrap:wrap;gap:8px 24px}.mh a{color:var(--mh-text);text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--mh-link-underline);text-underline-offset:4px;transition:text-decoration-color .2s ease}.mh a:hover{text-decoration-color:var(--mh-text)}.mh a.mh__project{text-decoration:none}.mh a.mh__project:focus-visible .mh__project-name,.mh a.mh__project:hover .mh__project-name{text-decoration-color:var(--mh-text)}.mh__footer .mh__label{color:var(--mh-muted)}@keyframes mh-reveal{0%{opacity:0;filter:blur(20px)}to{opacity:1;filter:blur(0)}}.mh__reveal{animation:mh-reveal .9s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--i, 0) * 60ms)}@media (prefers-reduced-motion:reduce){.mh__reveal{animation:none}}@media (max-width:640px){.mh{--mh-gutter:clamp(24px,9vw,40px);--mh-gap:28px;--mh-section-space:56px}.mh__content{padding-right:var(--mh-gutter)}.mh__row{grid-template-columns:minmax(0,1fr);padding-right:0}.mh__aside,.mh__label,.mh__main{grid-column:auto}.mh__sigil,.mh__sigil canvas{width:64px;height:64px}.mh__sigil{margin:-12px 0 0}.mh__projects{gap:32px}}