:root{--paper:#f8f7f3;--ink:#292d29;--muted:#666b63;--line:#dedfd7;--accent:#526345}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{-webkit-font-smoothing:antialiased;background:#f8f7f3;background:var(--paper);color:#292d29;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;margin:0}::selection{background:#d9e1ca}a{color:inherit;text-decoration:none;text-underline-offset:4px}a:hover{color:#526345;color:var(--accent)}a:not(.contribution):hover{text-decoration:underline}a:focus-visible{outline:2px solid #526345;outline:2px solid var(--accent);outline-offset:6px}h1,h2,h3,p{margin:0}.site{margin:auto;max-width:1040px;padding:0 52px}.header{align-items:center;border-bottom:1px solid #dedfd7;border-bottom:1px solid var(--line);display:flex;height:104px;justify-content:space-between}.wordmark{font-family:Georgia,serif;font-size:27px;letter-spacing:-1.3px}.wordmark span{color:#526345;color:var(--accent)}nav{display:flex;font-size:13px;gap:28px}nav a{padding:8px 0}.intro{padding:81px 0 30px}.date,.eyebrow,.language,.section-number,.stack{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.eyebrow{color:#666b63;color:var(--muted);font-size:10px;letter-spacing:1.8px;line-height:1.6;text-transform:uppercase}h1{font-size:clamp(56px,8vw,86px);font-weight:400;letter-spacing:-4px;line-height:1.13;margin:22px 0 18px}.lede,h1{font-family:Georgia,Times New Roman,serif}.lede{color:#526345;color:var(--accent);font-size:clamp(28px,4vw,41px);letter-spacing:-1px;line-height:1.27}.intro-copy{color:#666b63;color:var(--muted);font-size:16px;line-height:1.85;margin-top:25px;max-width:505px}.intro-copy strong{color:#292d29;color:var(--ink);font-weight:500}.intro-bottom{color:#666b63;color:var(--muted);font-size:11px;gap:20px;justify-content:space-between;margin-top:54px}.intro-bottom,.intro-bottom p{align-items:center;display:flex}.intro-bottom p{gap:9px}.status-dot{background:#526345;background:var(--accent);border-radius:50%;display:inline-block;height:6px;width:6px}.intro-bottom a span{margin-left:10px}.section{grid-gap:22px;border-top:1px solid #dedfd7;border-top:1px solid var(--line);display:grid;gap:22px;grid-template-columns:210px 1fr;padding:43px 0 47px}.section-heading{align-items:baseline;display:flex;gap:15px}.section-number{color:#666b63;color:var(--muted);font-size:10px}h2{font-size:14px;font-weight:500}h3{font-size:18px;font-weight:550;letter-spacing:-.35px;line-height:1.5}.row-heading{align-items:baseline;display:flex;gap:14px;justify-content:space-between}.date{color:#666b63;color:var(--muted);font-size:10px;line-height:1.7;white-space:nowrap}.current{border:1px solid #cbd3c2;border-radius:3px;color:#526345;color:var(--accent);display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:10px;font-weight:400;letter-spacing:0;margin-left:12px;padding:0 6px;vertical-align:middle}.role{font-size:12px;line-height:1.6;margin:5px 0 13px}.description,.role{color:#666b63;color:var(--muted)}.description{font-size:14px;line-height:1.85}.stack{color:#526345;color:var(--accent);font-size:10px;line-height:1.8;margin-top:15px}.job+.job{border-top:1px solid #dedfd7;border-top:1px solid var(--line);margin-top:26px;padding-top:25px}.work-label{margin:2px 0 20px}.contribution{align-items:baseline;border-top:1px solid #dedfd7;border-top:1px solid var(--line);display:flex;gap:24px;justify-content:space-between;padding:17px 0}.contribution h3{font-size:15px}.contribution h3 span,.contribution p{color:#666b63;color:var(--muted)}.contribution p{font-size:13px;line-height:1.75;margin-top:5px;max-width:415px}.contribution:hover h3{text-decoration:underline;text-underline-offset:4px}.language{color:#666b63;color:var(--muted);font-size:10px}.projects-label{margin:36px 0 20px}.project{border-top:1px solid #dedfd7;border-top:1px solid var(--line);padding:21px 0}.project .description{margin-top:10px}.project h3{font-size:17px}.text-link{display:inline-block;font-size:12px;margin-top:10px}.about-lede{font-family:Georgia,serif;font-size:27px;letter-spacing:-.5px;line-height:1.35;margin-bottom:18px}.education{margin-top:26px}.education h3{font-size:14px}.education p{color:#666b63;color:var(--muted);font-size:12px;line-height:1.8;margin-top:3px}.education .date{font-size:10px}.coursework{font-size:12px;line-height:1.8;margin-top:16px}.coursework,footer{color:#666b63;color:var(--muted)}footer{border-top:1px solid #dedfd7;border-top:1px solid var(--line);display:flex;font-size:11px;gap:20px;justify-content:space-between;padding:26px 0 38px}footer p span{margin:0 7px}.skip-link{background:#292d29;background:var(--ink);color:#f8f7f3;color:var(--paper);padding:12px;position:absolute;top:-60px}.skip-link:focus{top:12px}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@media(min-width:1200px){.site{max-width:1060px;padding:0 62px}}@media(max-width:720px){.site{padding:0 25px}.header{height:85px}nav{font-size:11px;gap:17px}.intro{padding-top:53px}h1{letter-spacing:-2.5px}.intro-copy{font-size:15px}.intro-bottom{align-items:flex-start;flex-direction:column;gap:15px;margin-top:34px}.section{gap:27px;grid-template-columns:1fr;padding:30px 0 36px}.row-heading{flex-wrap:wrap;gap:3px 15px}.section-heading{gap:12px}.section-heading h2{font-size:13px}.job h3{font-size:18px}.date{font-size:10px}.contribution{gap:14px}.about-lede{font-size:26px}footer{font-size:10px}.desktop-break{display:none}}@media(max-width:380px){.site{padding:0 20px}nav{gap:12px}.row-heading{display:block}.row-heading .date{display:block;margin-top:5px}.language{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{body{background:#fff}.site{max-width:none;padding:0}.header,.intro-bottom,.skip-link,footer{display:none}.intro{padding:0 0 20px}h1{font-size:40px;margin:8px 0}.lede{font-size:24px}.intro-copy{margin-top:12px;max-width:none}.section{grid-template-columns:140px 1fr;padding:20px 0}.contribution,.job,.project{break-inside:avoid;page-break-inside:avoid}.description{font-size:12px}}.intro-links{display:flex;flex-wrap:wrap;font-size:12px;gap:24px;margin-top:24px}.contact-email{font-family:Georgia,serif;font-size:clamp(19px,3vw,28px);letter-spacing:-.5px;overflow-wrap:anywhere}.contact-email span{font-family:inherit;font-size:.7em}.contact-links{color:#666b63;color:var(--muted);display:flex;flex-wrap:wrap;font-size:12px;gap:14px 26px;margin-top:20px}@media print{.intro-links{display:none}.contact{break-inside:avoid;page-break-inside:avoid}}.intro-layout{grid-gap:44px;align-items:center;display:grid;gap:44px;grid-template-columns:minmax(0,1fr) 240px}.portrait{border-radius:2px;display:block;height:auto;width:100%}.intro-text{min-width:0}@media(min-width:721px) and (max-width:950px){.intro-layout{gap:26px;grid-template-columns:minmax(0,1fr) 190px}.intro h1{font-size:62px}.intro .lede{font-size:30px}}@media(max-width:720px){.intro-layout{gap:28px;grid-template-columns:1fr}.portrait{grid-row:1;width:160px}.intro{padding-top:32px}}@media print{.intro-layout{grid-template-columns:1fr}.portrait{display:none}}.availability{color:#526345;color:var(--accent);font-size:13px;line-height:1.8;margin-top:16px;max-width:505px}
/*# sourceMappingURL=main.aa2e1681.css.map*/