:root{--text:#242424;--muted:#717171;--line:#e5e5e5;--link:#365c79}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:#fff;color:var(--text);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.65}a{color:inherit;text-decoration:none}a:hover{color:var(--link)}a:focus-visible,button:focus-visible{outline:2px solid var(--link);outline-offset:5px}nav,main,footer{max-width:1080px;margin:0 auto;padding-left:36px;padding-right:36px}nav{height:92px;display:flex;align-items:center;justify-content:space-between}.wordmark{font-size:15px;font-weight:600}nav>div{display:flex;gap:25px;font-size:13px;color:#666}h1,h2,h3,p{margin-top:0}h1{font-size:37px;line-height:1.2;letter-spacing:-1.2px;font-weight:600;margin-bottom:12px}h2{font-size:21px;line-height:1.35;letter-spacing:-.4px;font-weight:600}h3{font-size:17px;font-weight:600;line-height:1.4;margin:0}p{color:#555}img{width:100%;display:block}.intro{display:grid;grid-template-columns:1.4fr 1fr;gap:55px;padding:58px 0 65px;align-items:center}.intro p{font-size:14px;max-width:550px;line-height:1.8;margin-bottom:16px}.intro .subtitle{font-size:14px;color:#777;margin-bottom:25px}.intro figure{margin:0}.intro figure img{height:250px;object-fit:cover;filter:saturate(.85)}figcaption{color:#777;font-size:12px;line-height:1.7;margin-top:10px}.intro figcaption{text-align:right;font-size:10px}.infolinks{display:flex;gap:25px;font-size:13px;margin-top:23px}.infolinks a{border-bottom:1px solid #aaa;padding-bottom:2px}section{padding:38px 0 45px;border-top:1px solid var(--line)}.sectiontitle{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:25px}.sectiontitle h2{margin:0}.sectiontitle>span,.sectiontitle>a{font-size:12px;color:var(--muted)}.projects{display:grid;grid-template-columns:1fr 1fr;gap:43px 32px}.project{display:block}.projectimage{background:#f2f2f2;overflow:hidden}.projectimage img{height:265px;transition:opacity .18s;object-fit:cover}.projectimage img.technical{object-fit:contain;background:#f0f0f0}.project:hover img{opacity:.88}.projecttitle{display:flex;justify-content:space-between;align-items:center;margin:15px 0 6px}.projecttitle>span{color:#888;font-size:16px}.project p{font-size:13px;line-height:1.6;margin:0 0 9px;max-width:430px}.project small{font-size:11px;color:#888}.project small span{margin:0 6px}.jobs{display:grid;grid-template-columns:1fr 1fr;gap:30px 45px}.job{border-top:1px solid var(--line);padding-top:20px}.job .date{font-size:11px;color:#888;margin-bottom:8px}.job h3{margin-bottom:4px}.job strong{font-size:12px;font-weight:400;color:#777}.job p{font-size:13px;line-height:1.75;margin:12px 0 0}.education{display:grid;grid-template-columns:1fr 1fr;gap:45px}.education h3{font-size:14px}.education p{font-size:13px}.education dl{font-size:13px;margin:0}.education dt{font-weight:600;margin-top:12px}.education dt:first-child{margin-top:0}.education dd{color:#666;margin:2px 0 0}footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:25px;padding-bottom:35px;color:#888;font-size:11px}footer div{display:flex;gap:20px}.back{font-size:12px;color:#777;padding:25px 0}.projectintro{padding:20px 0 30px;max-width:850px}.projectintro h1{font-size:36px;margin-top:12px}.context{font-size:12px;color:#888}.subtitle{font-size:16px;color:#666;line-height:1.6}.metadata{display:flex;gap:60px;margin-top:30px;font-size:12px}.metadata dt{color:#888;margin-bottom:3px}.metadata dd{margin:0}.overview{border-top:1px solid var(--line);padding:30px 0 15px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:35px}.overview h2{font-size:15px;letter-spacing:0;margin-bottom:12px}.overview p{font-size:13px;line-height:1.8}.documentation h2,.videos h2{font-size:19px;margin-bottom:25px}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:35px 28px}.gallery figure{margin:0}.imagebutton{display:block;border:0;padding:0;background:#f5f5f5;width:100%;cursor:zoom-in}.imagebutton img{height:310px;object-fit:contain}.gallery figcaption{display:flex;gap:12px;font-size:12px}.gallery figcaption>span{font-size:10px;color:#aaa;line-height:2}.videos>div{display:flex;gap:25px;font-size:13px}.videos a{border-bottom:1px solid #aaa}.resume{max-width:900px;border:1px solid var(--line);margin:15px auto 55px}dialog{border:0;padding:35px;max-width:96vw;max-height:96vh}dialog img{max-height:83vh;max-width:86vw;width:auto;object-fit:contain}dialog::backdrop{background:#000c}.close{position:absolute;right:8px;top:0;font-size:27px;background:none;border:0;cursor:pointer}@media(max-width:720px){nav,main,footer{padding-left:22px;padding-right:22px}nav{height:auto;min-height:85px;gap:18px;align-items:start;flex-direction:column;justify-content:center;padding-top:15px;padding-bottom:15px}nav>div{gap:22px;font-size:12px}.intro{grid-template-columns:1fr;gap:24px;padding:36px 0 40px}h1{font-size:32px}.intro figure img{height:250px}.intro figcaption{text-align:left}.projects,.jobs,.education,.gallery,.overview{grid-template-columns:1fr}.projects{gap:32px}.projectimage img{height:270px}.overview{gap:8px}.metadata{gap:25px;flex-direction:column}.projectintro h1{font-size:30px}.imagebutton img{height:280px}footer{align-items:start;gap:20px;font-size:10px}.sectiontitle>span{display:none}.infolinks{gap:22px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.projectimage img{transition:none}}
