:root{color-scheme:light;--text:#28312d;--muted:#69716b;--line:#e0e4dd;--accent:#315d4c}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:#fafaf8;color:var(--text);font-family:Arial,Helvetica,sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased}main{max-width:740px;margin:0 auto;padding:72px 28px 35px}h1,h2,h3,p{margin:0}h1{font-size:34px;line-height:1.2;letter-spacing:-1.2px;font-weight:600}.role{font-size:15px;margin-top:12px}.location{font-size:13px;color:var(--muted);margin-top:3px}.links{display:flex;flex-wrap:wrap;gap:9px 25px;margin-top:18px}a{color:var(--accent);text-decoration:underline;text-decoration-color:#a7b9ac;text-underline-offset:4px;font-size:13px}a:hover{color:#183526;text-decoration-color:currentColor}a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.intro{font-size:16px;margin:30px 0 34px;max-width:650px}section{padding:25px 0;border-top:1px solid var(--line)}h2{font-size:12px;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);font-weight:600;margin-bottom:18px}h3{font-size:17px;line-height:1.4;font-weight:600}p{font-size:14px}article>p:not(.meta){margin-top:12px}.meta{color:var(--muted);font-size:13px;margin-top:3px}section>p+p{margin-top:14px}.skills{font-size:12px;color:var(--muted);line-height:1.9}.job+.job{margin-top:23px}.job-heading{display:flex;justify-content:space-between;align-items:baseline;gap:20px}.job-heading span{font-size:12px;color:var(--muted);white-space:nowrap}footer{border-top:1px solid var(--line);padding-top:21px;display:flex;gap:26px;margin-top:4px}@media(max-width:520px){main{padding:38px 23px 28px}h1{font-size:29px}.role{font-size:14px;max-width:300px}.intro{margin-top:27px;font-size:15px}section{padding-block:23px}.job-heading{gap:12px}.links{gap:10px 20px}}@media print{body{background:white}main{max-width:none;padding:0}a{color:inherit}section{break-inside:avoid}footer{display:none}}
.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px}.gallery figure{margin:0;min-width:0}.gallery a{display:block}.gallery img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;background:#e9ece6}.gallery figcaption{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.5}@media(max-width:520px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}}@media print{.gallery img{max-height:160px}}
header{display:flex;align-items:center;gap:25px}.header-info{min-width:0}.headshot{position:relative;width:112px;height:112px;flex:0 0 112px;overflow:hidden;border-radius:50%;background:#d9e6e4}.headshot img{position:absolute;width:250%;max-width:none;height:auto;left:-75%;top:-70%}@media(max-width:520px){header{align-items:flex-start;gap:18px;flex-wrap:wrap}.headshot{width:88px;height:88px;flex-basis:88px}.header-info{flex:1 1 230px}.header-info .links{column-gap:18px}}@media print{.headshot{width:85px;height:85px;flex-basis:85px}}
.hardware-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:520px){.hardware-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
.testing-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.testing-gallery img{aspect-ratio:16/9;object-fit:contain}@media(max-width:520px){.testing-gallery{grid-template-columns:1fr}}
