:root{--bg: #faf8f3;--text: #222222;--muted: #6b6b6b;--rule: #e2ddd2;--link: #1f3a5f;--serif: Georgia, "Times New Roman", serif;--max-w: 760px;--pad: 1.5rem}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--serif);font-size:17px;line-height:1.65;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}a:hover{text-decoration-thickness:2px}img{display:block;max-width:100%}p+p{margin-top:1rem}code{font-size:.9em}.site{min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:var(--max-w);margin:0 auto;padding-inline:var(--pad)}.main{flex:1}.page{padding-block:2.5rem 4rem}.header-inner{display:flex;justify-content:space-between;align-items:baseline;padding-block:2rem 1rem;border-bottom:1px solid var(--rule)}.brand{font-size:1.4rem;color:var(--text);text-decoration:none}.site-nav{display:flex;gap:1.25rem}.nav-link{color:var(--muted);text-decoration:none}.nav-link:hover,.nav-link.active{color:var(--text)}.intro{display:grid;grid-template-columns:180px 1fr;gap:2rem;align-items:start;margin-bottom:3.5rem}.intro-photo{width:180px;height:180px;object-fit:cover}.section-title{font-size:1.25rem;font-weight:400;padding-bottom:.5rem;margin-bottom:.5rem;border-bottom:1px solid var(--rule)}.project{display:grid;grid-template-columns:220px 1fr;gap:1.75rem;padding-block:1.75rem;border-bottom:1px solid var(--rule)}.project:last-child{border-bottom:none}.project-media img,.project-media .video{width:100%;aspect-ratio:16 / 10;object-fit:cover;object-position:top left;border:1px solid var(--rule)}.project-media .video{position:relative;aspect-ratio:16 / 9;background:#000}.project-media iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}.project-title{font-size:1.1rem;line-height:1.35}.project-subtitle{font-weight:400;color:var(--muted)}.project-tags{font-size:.9rem;font-style:italic;color:var(--muted);margin:.15rem 0 .6rem}.project-tags+p{margin-top:0}.project-links{font-size:.95rem}.cv-header{margin-bottom:2.5rem}.cv-name{font-size:1.75rem;font-weight:400;margin-bottom:.35rem}.cv-contact{display:flex;flex-wrap:wrap;gap:.4rem;color:var(--muted);font-size:.95rem}.section{margin-bottom:2.5rem}.section-heading{font-size:1.15rem;font-weight:400;padding-bottom:.4rem;margin-bottom:1rem;border-bottom:1px solid var(--rule)}.cv-block{margin-bottom:1.4rem}.cv-row{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:0 1rem}.cv-institution{font-weight:700}.cv-date{color:var(--muted);font-size:.95rem;white-space:nowrap}.cv-role{font-style:italic}.cv-detail{color:var(--muted);font-size:.95rem;margin-top:.2rem}.cv-bullets{padding-left:1.25rem;margin-top:.35rem}.cv-bullets li{margin-bottom:.25rem}.cv-skills{display:flex;flex-direction:column;gap:.5rem}.cv-skill-label{font-weight:700}.cv-skill-label:after{content:": "}.cv-pub-label{font-style:italic;color:var(--muted);margin:1.25rem 0 .4rem}.cv-pub-label:first-of-type{margin-top:0}.cv-pub{margin-bottom:.6rem}.notfound-title{font-size:1.75rem;font-weight:400;margin-bottom:.75rem}.notfound-msg{margin-bottom:1.5rem}.footer-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.75rem;padding-block:1.25rem 2rem;border-top:1px solid var(--rule);font-size:.95rem}.footer-note{color:var(--muted)}.footer-links{display:flex;gap:1.25rem}@media(max-width:620px){.intro{grid-template-columns:1fr;gap:1.25rem}.intro-photo{width:140px;height:140px}.project{grid-template-columns:1fr;gap:1rem}}
