@font-face{font-family:Portfolio Sans;src:url(/fonts/ibm-plex-sans-regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Portfolio Sans;src:url(/fonts/ibm-plex-sans-semibold.ttf)format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Portfolio Serif;src:url(/fonts/ibm-plex-serif-regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Portfolio Serif;src:url(/fonts/ibm-plex-serif-italic.ttf)format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Portfolio Serif;src:url(/fonts/ibm-plex-serif-semibold.ttf)format("truetype");font-weight:600 900;font-display:swap}._shell_1np1j_32{--page:#f1f1f1;--text:#242b2e;--heading:#796f67;--quiet:#666e72;--link:#455c65;--rule:#d6d8d8;min-height:100svh;color:var(--text);background:var(--page);font:400 17px/1.75 Portfolio Serif,Georgia,serif}html[data-portfolio-theme=dark] ._shell_1np1j_32{--page:#272421;--text:#e4dfd8;--heading:#c9b9a9;--quiet:#b1aba5;--link:#bbccd1;--rule:#4b4642;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}._shell_1np1j_32 a{color:var(--link);text-underline-offset:2px;text-decoration:underline}._shell_1np1j_32 a:hover{text-decoration-thickness:2px}._shell_1np1j_32 :focus-visible{outline-offset:4px;outline:2px solid}._skip_1np1j_56{z-index:50;background:var(--page);padding:10px 16px;position:fixed;top:12px;left:16px;transform:translateY(-180%)}._skip_1np1j_56:focus{transform:none}._navigation_1np1j_58 ul{margin:0;padding:0;list-style:none}._navigation_1np1j_58 li{margin:2px 0}._navigation_1np1j_58 a{border-left:2px solid #0000;border-radius:3px;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}._navigation_1np1j_58 a:hover{background:color-mix(in srgb, var(--link) 5%, transparent);text-decoration:none}._navigation_1np1j_58 a[aria-current=page]{border-left-color:var(--link);background:color-mix(in srgb, var(--link) 8%, transparent);font-weight:600}._page_1np1j_63{max-width:760px;min-height:100svh;margin:0 auto;padding:48px 32px 0}._content_1np1j_64{min-width:0}._content_1np1j_64 h1{color:var(--heading);margin:0 0 16px;font-size:29px;font-weight:600;line-height:1.25}._content_1np1j_64 h2{color:var(--heading);margin:0;font-size:21px;font-weight:600;line-height:1.3}._content_1np1j_64 h3{text-wrap:pretty;margin:0 0 10px;font-size:17px;font-weight:600;line-height:1.45}._content_1np1j_64 p{text-wrap:pretty;margin:0 0 18px}._content_1np1j_64 strong{font-weight:600}._content_1np1j_64 section,._profileHeader_1np1j_70{scroll-margin-top:35px}._profileHeader_1np1j_70{grid-template-columns:minmax(0,1fr) 180px;align-items:start;column-gap:24px;display:grid}._profileHeader_1np1j_70 h1{grid-column:1;margin-bottom:8px}._profileHeader_1np1j_70 p{grid-column:1;margin:6px 0}._profileHeader_1np1j_70 p:last-child{margin-bottom:0}._portraitBlock_1np1j_75{grid-area:1/2/span 5;width:180px;margin:0}._profileHeader_1np1j_70+._section_1np1j_76{margin-top:32px}._portrait_1np1j_75{aspect-ratio:1;object-fit:cover;width:100%;height:auto;display:block}._section_1np1j_76{margin-top:36px;position:relative}._section_1np1j_76>h2{margin-bottom:18px}._footer_1np1j_80{border-top:1px solid var(--rule);color:var(--quiet);text-transform:none;letter-spacing:0;flex-wrap:wrap;justify-content:flex-end;gap:14px;margin-top:64px;padding:22px 0 32px;font:400 12px/1.6 Portfolio Sans,Arial,sans-serif;display:flex}._footer_1np1j_80 p{margin:0}._footer_1np1j_80 button{color:var(--link);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}._projectList_1np1j_83,._articleList_1np1j_83{margin-top:26px}._project_1np1j_83+._project_1np1j_83,._item_1np1j_84+._item_1np1j_84{border-top:1px solid var(--rule);margin-top:24px;padding-top:22px}._project_1np1j_83 h3{margin-bottom:6px}._projectList_1np1j_83+p{border-top:1px solid var(--rule);margin-top:24px;padding-top:22px}._item_1np1j_84 h3 a{color:var(--link)}._meta_1np1j_88{color:var(--quiet);font:400 12px/1.6 Portfolio Sans,Arial,sans-serif}._content_1np1j_64 ._meta_1np1j_88{margin:0 0 10px}._sourceLinks_1np1j_90{flex-wrap:wrap;gap:10px 20px;font:400 13px/1.6 Portfolio Sans,Arial,sans-serif;display:flex}._content_1np1j_64 ._sourceLinks_1np1j_90{margin:12px 0 0}._talkItem_1np1j_92{margin-top:24px;padding-bottom:24px;display:flow-root}._talkItem_1np1j_92+._talkItem_1np1j_92{border-top:1px solid var(--rule);margin-top:0;padding-top:24px}._talkImage_1np1j_94{float:right;object-fit:cover;width:150px;height:100px;margin:3px 0 12px 18px}._upcoming_1np1j_95{color:var(--link)}._mobileHeader_1np1j_96,._sidebar_1np1j_97{display:none}._themeToggle_1np1j_98{border:1px solid var(--rule);width:34px;height:34px;color:var(--quiet);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:color .2s,border-color .2s,transform .4s;display:inline-flex}._themeToggle_1np1j_98:hover{color:var(--text);border-color:var(--quiet);transform:rotate(20deg)}._themeToggle_1np1j_98 svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}._shell_1np1j_32>._themeToggle_1np1j_98{z-index:30;position:fixed;top:24px;right:24px}._themeToggle_1np1j_98 ._sun_1np1j_102{display:none}html[data-portfolio-theme=dark] ._themeToggle_1np1j_98 ._sun_1np1j_102{display:block}html[data-portfolio-theme=dark] ._themeToggle_1np1j_98 ._moon_1np1j_104{display:none}._content_1np1j_64>._section_1np1j_76:first-child{margin-top:0}@media (min-width:1200px){._sidebar_1np1j_97{width:160px;display:block;position:fixed;top:52px;left:calc(50% + 380px)}._sidebar_1np1j_97 ._navigation_1np1j_58 li{margin:0}._sidebar_1np1j_97 ._navigation_1np1j_58 a{color:var(--quiet);background:0 0;border:0;border-radius:0;padding:3px 0;font-size:16px;line-height:1.7;text-decoration:none;transition:color .2s;display:block}._sidebar_1np1j_97 ._navigation_1np1j_58 a:hover{color:var(--text);background:0 0}._sidebar_1np1j_97 ._navigation_1np1j_58 a[aria-current=page]{color:var(--text);background:0 0;font-style:italic;font-weight:400}}._shell_1np1j_32~.trace-sidekick{justify-items:end;bottom:24px;left:auto;right:24px}._shell_1np1j_32~.trace-sidekick .trace-launcher{color:#fff;height:auto;box-shadow:none;letter-spacing:0;text-transform:none;background:#36464f;border:0;border-radius:3px;padding:8px 14px;font:400 13px/1.6 Portfolio Sans,Arial,sans-serif;text-decoration:none;transform:none}._shell_1np1j_32~.trace-sidekick .trace-launcher-mark,._shell_1np1j_32~.trace-sidekick .trace-launcher i{display:none}._shell_1np1j_32~.trace-sidekick .trace-panel{position:fixed;bottom:74px;left:auto;right:24px;box-shadow:0 5px 24px #0002}html:has(.shell){scroll-behavior:smooth}@media (max-width:960px){._profileHeader_1np1j_70{grid-template-columns:minmax(0,1fr) 150px}._portraitBlock_1np1j_75{width:150px}._section_1np1j_76>h2{text-align:left;width:auto;margin-bottom:18px;position:static}._mobileHeader_1np1j_96{z-index:20;background:var(--page);min-height:58px;color:var(--text);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;padding:12px 22px;font:400 14px/1.6 Portfolio Sans,Arial,sans-serif;display:flex;position:sticky;top:0}._mobileHeader_1np1j_96>a{color:inherit;font-size:16px;text-decoration:none}._mobileHeader_1np1j_96 summary{cursor:pointer;padding:4px}._mobileHeader_1np1j_96 ._themeToggle_1np1j_98{margin:0 12px 0 auto}._shell_1np1j_32>._themeToggle_1np1j_98{display:none}._content_1np1j_64 section,._profileHeader_1np1j_70{scroll-margin-top:80px}._profileHeader_1np1j_70{display:flow-root}._profileHeader_1np1j_70 h1{margin-bottom:14px}._profileHeader_1np1j_70 p{margin:8px 0 12px}._portraitBlock_1np1j_75{float:right;width:120px;margin:4px 0 12px 16px}._mobileMenu_1np1j_135{background:var(--page);border-bottom:1px solid var(--rule);max-height:calc(100svh - 58px);padding:12px 22px 24px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}._mobileMenu_1np1j_135 a{color:inherit;padding:10px 12px;text-decoration:none}._page_1np1j_63{max-width:680px;margin:0 auto;padding:28px 24px 0;display:block}._content_1np1j_64 h1{font-size:28px}._section_1np1j_76{margin-top:36px}._talkImage_1np1j_94{width:115px;height:80px;margin-left:14px}._footer_1np1j_80{margin-top:45px;padding-bottom:75px}._shell_1np1j_32~.trace-sidekick{bottom:16px;left:auto;right:16px}._shell_1np1j_32~.trace-sidekick .trace-launcher{color:#fff;background:#36464f;border-radius:3px;padding:8px 14px;text-decoration:none}._shell_1np1j_32~.trace-sidekick .trace-panel{max-width:calc(100vw - 32px);bottom:65px;left:auto;right:16px}}@media (prefers-reduced-motion:reduce){html:has(.shell){scroll-behavior:auto}}
