@font-face{font-family:Latin Modern Roman;src:url(/fonts/latinmodern-roman-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Latin Modern Roman;src:url(/fonts/latinmodern-roman-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Latin Modern Roman;src:url(/fonts/latinmodern-roman-bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Latin Modern Roman;src:url(/fonts/latinmodern-roman-bolditalic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}:root{--resume-serif:"Latin Modern Roman","CMU Serif",Georgia,"Times New Roman",Times,serif;--resume-ink:#111;--resume-rule:#111;--resume-accent:#2f5fa6}.resume-page{background:#ededed;flex-direction:column;align-items:center;min-height:100vh;padding:28px 16px 64px;display:flex}.resume-toolbar{width:816px;max-width:100%;font-family:var(--font-mono),ui-monospace,monospace;justify-content:space-between;align-items:center;margin-bottom:18px;font-size:12.5px;display:flex}.resume-toolbar a{color:var(--resume-accent);text-decoration:none}.resume-toolbar a:hover{text-decoration:underline}.resume-toolbar .download{border:1px solid var(--resume-accent);border-radius:4px;padding:6px 12px}.resume-toolbar .download:hover{background:var(--resume-accent);color:#fff;text-decoration:none}.sheet{background:#fff;width:816px;max-width:100%;min-height:1056px;padding:48px 50px;box-shadow:0 1px 3px #0000001f,0 8px 28px #00000024}.resume{font-family:var(--resume-serif);color:var(--resume-ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:12px;line-height:1.2}.resume a{color:inherit;text-underline-offset:1.5px;text-decoration:underline}.r-head{text-align:center;margin-bottom:4px}.r-name{letter-spacing:.01em;margin:0 0 3px;font-size:26px;font-weight:400;line-height:1.05}.r-contact{margin:0;font-size:12.2px;line-height:1.5}.r-sep{color:#555}.r-summary{text-align:left;margin:6px 0 4px}.r-section{margin-top:6px}.r-section-title{font-variant:small-caps;letter-spacing:.03em;border-bottom:1px solid var(--resume-rule);margin:0 0 4px;padding-bottom:2px;font-size:14px;font-weight:500}.r-entry{margin-bottom:5px}.r-entry:last-child{margin-bottom:0}.r-entry-row{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.r-entry-title{font-weight:700}.r-entry-date{white-space:nowrap;font-size:12.6px}.r-entry-sub{margin-top:1px;font-size:12.8px;font-style:italic}.r-bullets{margin:2px 0 0;padding-left:17px;list-style:outside}.r-bullets li{margin:1px 0;padding-left:2px;line-height:1.2}.r-bullets li::marker{font-size:.85em}.r-project .r-entry-title{font-weight:700}.r-link{font-weight:400}.r-proj-blurb{margin:1px 0 0}.r-skills{margin:0;padding:0;list-style:none}.r-skills li{margin:2px 0}.r-skills-label{font-weight:700}@page{size:Letter;margin:.5in}@media print{.resume-page{background:#fff;min-height:0;padding:0;display:block}.resume-toolbar{display:none}.sheet{width:auto;max-width:none;min-height:0;box-shadow:none;padding:0}.resume a{color:var(--resume-ink)}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
