*{box-sizing:border-box}:root{color-scheme:light;font-family:Palatino Linotype,Palatino,Book Antiqua,Georgia,serif;color:#1a1a1a;background:#f4f1ea;font-synthesis:none}body{margin:0;font-size:19px;line-height:1.5}a{color:inherit;text-underline-offset:.15em;text-decoration-thickness:1px}a:hover{color:#765a3e}a:focus-visible{outline:2px solid #765a3e;outline-offset:5px}img{display:block;max-width:100%;height:auto}h1,h2,h3,p{margin:0}h1{font-weight:400;font-size:clamp(2rem,5vw,3rem);line-height:1.15;letter-spacing:-.025em}h2{font-size:1.75rem;font-weight:400;font-style:italic;line-height:1.3}h3{font-size:1.25rem;font-weight:400;line-height:1.35}.site{max-width:780px;padding:0 36px;margin:auto}.site-header{display:flex;justify-content:space-between;align-items:baseline;padding:32px 0 0;gap:24px}.site-name{text-decoration:none}nav{display:flex;gap:22px;font-size:1rem}nav a[aria-current]{text-decoration-thickness:2px}.intro{padding:65px 0 35px}.intro>p{margin-top:22px}.intro .email-line{margin-top:12px;font-size:1rem;color:#69645e;font-style:italic}.email-line a{text-decoration:none}.intro-links{display:flex;gap:10px 24px;flex-wrap:wrap;font-size:1rem;margin-top:18px}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:24px}.section-heading>a{font-size:.95rem}.project-row{display:grid;grid-template-columns:160px minmax(0,1fr);gap:25px;margin-bottom:34px;align-items:start}.project-image{padding-top:4px}.project-image img{width:100%;height:155px;object-fit:contain;mix-blend-mode:multiply}.project-row :is(h2,h3){font-size:1.25rem;line-height:1.3;font-weight:400;font-style:normal;margin-bottom:8px}.project-context{color:#69645e;font-size:.9rem;font-style:italic;margin-bottom:5px}.project-row p:not([class]){font-size:1.05rem;line-height:1.5}.project-tools{font-size:.875rem;color:#69645e;margin-top:9px}.detail-link{display:inline-block;margin-top:8px;font-size:.95rem}.team-note{font-size:1rem;margin-top:8px}.site-footer{margin-top:38px;padding:0 0 50px}.site-footer p{margin-top:15px;font-size:1.05rem}.page-heading{padding:40px 0 28px}.page-heading h1+p{margin-top:18px}.page-heading .intro-links{margin-top:22px}.back-link{display:inline-block;font-size:1rem;margin-bottom:25px}.project-article{margin:auto}.article-image{width:100%;max-height:430px;object-fit:contain;margin:0 auto 30px;mix-blend-mode:multiply}.prose p,.prose ul,.prose ol{margin:0 0 20px}.prose h2,.prose h3,.prose h4,.prose h5{font-size:1.6rem;font-weight:400;font-style:italic;line-height:1.3;margin:30px 0 14px}.prose img{margin:28px auto;max-height:620px;object-fit:contain;mix-blend-mode:multiply}.prose .project-figure{margin:28px 0 34px}.prose .project-figure img{margin:0 auto;width:100%;max-height:560px;object-fit:contain}.prose .project-figure-narrow img{width:min(100%,450px)}.prose .project-figure figcaption{margin-top:7px;color:#69645e;font-size:.9rem;font-style:italic;text-align:center}.prose .katex-display{overflow-x:auto;overflow-y:hidden;padding:8px 0;font-size:.95em}.article-end{margin-top:35px}.about-layout{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:30px;align-items:start}.portrait{width:170px;height:220px;object-fit:cover;object-position:top}.skills-list{margin:0 0 30px}.skills-list dt{font-weight:600;margin-top:15px}.skills-list dd{margin:4px 0 0}.resume-heading{padding-bottom:20px}.resume-heading .intro-links{margin-top:14px}.resume-document{display:block;width:100%;background:#fff}.resume-document img{display:block;width:100%;height:auto}.skip-link{position:fixed;top:-100px;left:15px;padding:10px 16px;background:#f4f1ea;z-index:10}.skip-link:focus{top:10px}@media (max-width: 580px){body{font-size:18px}.site{padding:0 24px}.site-header{align-items:flex-start;flex-direction:column;gap:12px;padding-top:25px}nav{gap:24px}.intro{padding:38px 0 32px}.project-row{grid-template-columns:1fr;gap:15px;margin-bottom:35px}.project-image img{height:190px;object-position:left center}.project-image{max-width:260px}.site-footer{margin-top:32px}.about-layout{grid-template-columns:1fr;gap:25px}.portrait{grid-row:1;width:135px;height:175px}.page-heading{padding-top:30px}}@media print{:root{background:#fff;color:#000}.site{max-width:none;padding:0}nav,.site-footer,.back-link,.skip-link{display:none}.project-row{break-inside:avoid}}
