:root{--bg: #f7f6f3;--text: #1c1b19;--muted: #5f5b55;--rule: #d9d5ce;--serif: "Newsreader", "Iowan Old Style", Palatino, "Palatino Linotype", serif;--sans: "Source Sans 3", "Avenir Next", "Segoe UI", sans-serif}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:18px;line-height:1.55;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}#root{min-height:100vh}a{color:inherit;text-underline-offset:.16em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}a:focus-visible{outline:2px solid var(--text);outline-offset:3px}::selection{background:#e4e0d8;color:var(--text)}.page{display:flex;align-items:stretch;min-height:100vh}.identity{flex:0 0 19.5rem;width:19.5rem;display:flex;flex-direction:column;justify-content:center;padding:clamp(2.25rem,7vh,4.25rem) 1.7rem 2.5rem;border-right:1px solid var(--rule)}.portrait{display:block;width:112px;height:112px;border-radius:50%;object-fit:cover}.name{margin:1.2rem 0 0;font-family:var(--serif);font-weight:500;font-size:2.35rem;letter-spacing:-.025em;line-height:1.08}.bio{margin:1.35rem 0 0;font-family:var(--sans);font-style:normal;font-weight:400;font-size:1rem;line-height:1.5;color:var(--text)}.contact{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;margin:1.6rem 0 0;padding:0;list-style:none}.contact a{overflow-wrap:anywhere}.projects{container-type:inline-size;flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;padding:clamp(2.25rem,7vh,4.25rem) 0 2.5rem}.projects h2{margin:0;padding:0 1.75rem .9rem;font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.project-list{display:flex;gap:1.5rem;margin:0;padding:0 1.75rem .9rem;list-style:none;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:1.75rem;scrollbar-width:thin;scrollbar-color:#c8c3bb transparent}.project-list::-webkit-scrollbar{height:8px}.project-list::-webkit-scrollbar-thumb{background:#c8c3bb;border-radius:99px}.project{flex:0 0 clamp(20rem,calc((100cqi - 4.25rem) / 2.35),34rem);scroll-snap-align:start;min-width:0}.preview{display:block;border:1px solid var(--rule);background:#fff;aspect-ratio:16 / 10;max-height:58vh;overflow:hidden;text-decoration:none}.preview:hover{border-color:#b9b4ac;text-decoration:none}.preview img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}.project-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .7rem;margin-top:.85rem}.project h3{margin:0;font-family:var(--serif);font-weight:500;font-size:1.28rem;letter-spacing:-.015em;line-height:1.25}.upcoming{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.project p{margin:.35rem 0 0;color:var(--muted);font-size:.98rem;line-height:1.45}.project-link{display:inline-block;margin-top:.45rem;font-size:.98rem}@media(max-width:860px){.page{flex-direction:column;min-height:0}.identity{flex:none;width:auto;border-right:0;border-bottom:1px solid var(--rule);padding:2.4rem 1.25rem 1.6rem}.projects{justify-content:flex-start;padding:1.35rem 0 1.75rem}.projects h2,.project-list{padding-left:1.25rem;padding-right:1.25rem}.project-list{scroll-padding-inline:1.25rem}.project{flex-basis:min(32rem,78vw)}body{font-size:17px}}
