@font-face{font-family:Libertine;src:url(../../../fonts/Libertine-Regular.woff)format("woff");font-weight:400;font-display:swap}@font-face{font-family:Libertine;src:url(../../../fonts/Libertine-Bold.woff)format("woff");font-weight:700;font-display:swap}@font-face{font-family:Libertine;src:url(../../../fonts/Libertine-Italic.woff)format("woff");font-style:italic;font-display:swap}@font-face{font-family:Biolinum;src:url(../../../fonts/Biolinum-Regular.woff)format("woff");font-weight:400;font-display:swap}@font-face{font-family:Biolinum;src:url(../../../fonts/Biolinum-Bold.woff)format("woff");font-weight:700;font-display:swap}@font-face{font-family:Inconsolata;src:url(../../../fonts/Inconsolata-Regular.woff)format("woff");font-display:swap}:root{color:#171717;background:#f5f5f5;font-family:Libertine,Georgia,serif;font-size:19px;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}img{max-width:100%;height:auto}a{color:#34566b;text-underline-offset:2px;text-decoration-thickness:1px}a:hover{color:#213f52}:focus-visible{outline-offset:3px;outline:2px solid #34566b}::selection{color:#111;background:#d8e7ef}.site-shell{width:min(960px,100% - 40px);margin:0 auto}.skip-link{background:#f5f5f5;padding:8px 12px;position:absolute;top:-100px;left:12px}.skip-link:focus{top:8px}.site-header,.site-footer{justify-content:space-between;gap:20px;display:flex}.site-header{border-bottom:1px solid #b9b9b9;align-items:baseline;padding:24px 0 14px}.brand{color:#171717;font-family:Biolinum,Arial,sans-serif;font-size:17px;font-weight:700;text-decoration:none}.site-header nav,.site-footer div{gap:20px;display:flex}.site-header nav a,.site-footer a{color:#333;font-family:Biolinum,Arial,sans-serif;font-size:15px;text-decoration:none}.site-header nav a:hover,.site-footer a:hover,.brand:hover{color:#34566b;text-decoration:underline}.site-footer{color:#555;border-top:1px solid #b9b9b9;margin-top:80px;padding:18px 0 38px;font-size:15px}h1,h2,h3,h4,p{margin-top:0}h1{font-size:clamp(36px,6vw,48px);font-weight:400;line-height:1.16}h2,h3,h4{font-family:Biolinum,Arial,sans-serif}h2{font-size:27px;font-weight:700;line-height:1.2}h3{font-size:21px;line-height:1.25}h4{font-size:18px;line-height:1.25}p{margin-bottom:14px}time{font-variant-numeric:lining-nums;color:#555}.introduction{grid-template-columns:minmax(0,1fr) 190px;align-items:start;gap:44px;padding:66px 0 31px;display:grid}.introduction h1{margin-bottom:5px}.affiliation{margin-bottom:26px;font-family:Biolinum,Arial,sans-serif;font-size:17px}.introduction-copy>p:not(.affiliation){max-width:63ch}.contact-links{margin-top:25px}.student-project-disclaimer{color:#444;background:#eeeeea;border:1px solid #d0d0cc;max-width:63ch;margin-top:25px;padding:11px 14px;font:16px/1.45 Biolinum,Arial,sans-serif}.portrait{width:190px;margin:0}.portrait img{border-radius:50%;width:100%;display:block}.page-section{border-top:1px solid #c9c9c9;margin-top:32px;padding-top:23px;scroll-margin-top:18px}.page-section h2{margin-bottom:21px}.structured-section{grid-template-columns:200px minmax(0,1fr);gap:28px;display:grid}.structured-section h2{margin-bottom:0}.section-body{min-width:0}.page-section ul:not(.post-list):not(.selected-work){margin:0 0 16px;padding-left:1.4em}.page-section li{margin-bottom:4px}.entry{margin-bottom:25px}.entry h3,.entry h4{margin-bottom:4px}.entry p:last-child{margin-bottom:0}.entry-meta{color:#555;font-family:Biolinum,Arial,sans-serif;font-size:16px}.page-section pre{background:#ededed;border:1px solid #d5d5d5;max-width:100%;margin:15px 0;padding:12px 15px;font:16px/1.35 Inconsolata,Consolas,monospace;overflow-x:auto}.page-section code{font-family:Inconsolata,Consolas,monospace}.selected-work{margin:0;padding:0;list-style:none}.selected-work li{grid-template-columns:112px minmax(0,1fr);gap:18px;margin-bottom:26px;display:grid}.selected-work h3{margin-bottom:4px}.selected-work p{margin-bottom:0}.work-label{color:#555;padding-top:4px;font:15px/1.35 Inconsolata,Consolas,monospace}.selected-work details{margin-top:8px}.selected-work summary{color:#34566b;cursor:pointer;width:fit-content;font:16px Biolinum,Arial,sans-serif}.selected-work details p{margin-top:9px}.post-list{margin:0;padding:0;list-style:none}.post-list li{padding:9px 0}.post-list time{white-space:nowrap;margin-left:10px;font-family:Biolinum,Arial,sans-serif;font-size:15px}.page-section .post-list+p{margin-top:15px}.listing-page,.article-page{padding-top:53px}.listing-page:not(.about-page),.article-page{max-width:780px;margin-inline:auto}.listing-page h1{margin-bottom:18px}.listing-page>p{margin-bottom:40px}.about-page>p{margin-bottom:15px}.about-index{flex-wrap:wrap;gap:8px 22px;margin-bottom:38px;font:16px Biolinum,Arial,sans-serif;display:flex}.listing-page .post-list{border-top:1px solid #d0d0d0}.listing-page .post-list li{border-bottom:1px solid #d0d0d0;padding:18px 0}.listing-page .post-list a{font-size:20px}.article-page>p:first-child{margin-bottom:42px;font-family:Biolinum,Arial,sans-serif;font-size:15px}.article-header{border-bottom:1px solid #b9b9b9;padding-bottom:18px}.article-header h1{margin-bottom:10px}.article-header p{margin-bottom:0;font-family:Biolinum,Arial,sans-serif;font-size:16px}.article-header .article-tags{color:#555;margin-top:3px;font-size:15px}.article-end{margin-top:45px;font-family:Biolinum,Arial,sans-serif;font-size:16px}.prose{padding-top:28px;line-height:1.58}.prose>:first-child{margin-top:0}.prose h2{margin:40px 0 13px;scroll-margin-top:20px;font-size:27px}.prose h3{margin:30px 0 12px;scroll-margin-top:20px}.prose p,.prose ul,.prose ol{margin-bottom:17px}.prose li{margin-bottom:4px}.prose img{margin:24px auto;display:block}.prose blockquote{color:#444;border-left:2px solid #999;margin:24px 0;padding-left:20px}.prose pre{color:#222;background:#ededed;border:1px solid #d5d5d5;max-width:100%;margin:20px 0;padding:15px 18px;font-size:16px;line-height:1.35;overflow-x:auto}.prose code{font-family:Inconsolata,Consolas,monospace}.prose :not(pre)>code{font-size:.9em}.prose pre .token.keyword{color:#34566b}.prose pre .token.string{color:#835300}.prose pre .token.comment{color:#626262}.prose pre .token.function{color:#593782}.prose hr{border:0;border-top:1px solid #ccc;margin:32px 0}@media (width<=700px){.introduction{grid-template-columns:1fr;gap:12px}.portrait{grid-row:1;width:145px}.structured-section{grid-template-columns:1fr;gap:8px}}@media (width<=560px){:root{font-size:18px}.site-header{flex-wrap:wrap;gap:8px 20px}.site-header nav{gap:16px}.introduction{padding-top:48px}.post-list time{margin:3px 0 0;display:block}.selected-work li{grid-template-columns:1fr;gap:4px}.work-label{padding-top:0}.prose pre{font-size:15px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
