:root{--font-serif: "Times New Roman", Times, serif;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--size-base: 10.5pt;--size-sm: 9.5pt;--size-xs: 9pt;--size-name: 22pt;--line-height: 1.35;--color-text: #000;--color-bg: #e8e8e8;--color-surface: #fff;--color-muted: #555;--color-rule: #000;--color-btn-bg: #1a1a1a;--color-btn-text: #fff;--color-btn-hover: #333;--resume-width: 816px;--resume-padding: 52px 60px 60px;--section-gap: 12px;--entry-gap: 7px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-serif);font-size:var(--size-base);color:var(--color-text);background:var(--color-bg);line-height:var(--line-height);-webkit-font-smoothing:antialiased}#root{display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:2rem 1rem 3rem}.toolbar{width:100%;max-width:var(--resume-width);display:flex;justify-content:flex-end;margin-bottom:.75rem}.download-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .9rem;background:var(--color-btn-bg);color:var(--color-btn-text);border:none;border-radius:4px;font-family:var(--font-sans);font-size:.82rem;font-weight:500;cursor:pointer;transition:background .15s}.download-btn:hover{background:var(--color-btn-hover)}.download-btn:focus-visible{outline:2px solid var(--color-btn-bg);outline-offset:2px}@media (max-width: 720px){body{background:var(--color-surface)}#root{padding:0}.toolbar{padding:.75rem 1rem;margin-bottom:0}}@media (max-width: 420px){.toolbar{justify-content:stretch}.download-btn{justify-content:center;width:100%}}.resume{width:min(100%,var(--resume-width));min-height:1056px;background:var(--color-surface);padding:var(--resume-padding);box-shadow:0 2px 16px #0000002e;overflow-wrap:break-word}.resume-header{text-align:center;margin-bottom:10px}.resume-name{font-size:var(--size-name);font-variant:small-caps;font-weight:400;letter-spacing:.04em;line-height:1.2;text-transform:uppercase}.resume-contact{font-size:var(--size-sm);margin-top:4px}.resume-contact a{color:inherit;text-decoration:none;overflow-wrap:anywhere}.resume-contact a:hover{text-decoration:underline}.sep{color:var(--color-muted)}.section-heading{font-size:var(--size-sm);font-variant:small-caps;font-weight:400;letter-spacing:.06em;text-transform:uppercase;margin-top:var(--section-gap);margin-bottom:1px}.section-rule{border:none;border-top:.8px solid var(--color-rule);margin-bottom:1px}.entry{margin-top:var(--entry-gap)}.two-col{display:flex;justify-content:space-between;align-items:baseline;gap:.25rem 1rem}.two-col>span:first-child{min-width:0}.two-col .right{text-align:right;white-space:nowrap}ul{padding-left:1.4em;margin-top:3px}li{margin-bottom:2px}.skills-list{display:flex;flex-direction:column;gap:2px}.skill-row{display:flex;gap:.4em}.skill-label{font-weight:700;white-space:nowrap}.project-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.project-header>span{min-width:0}.project-keywords{font-size:var(--size-sm)}.project-url{color:inherit;font-size:var(--size-xs);white-space:nowrap;text-decoration:none}.project-url:hover{text-decoration:underline}.project-description{margin-top:2px}@media (max-width: 720px){.resume{min-height:unset;padding:32px 28px 40px;box-shadow:none}.resume-contact{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 10px;line-height:1.45}.sep{display:none}.project-header{flex-wrap:wrap}.project-url{white-space:normal;overflow-wrap:anywhere}}@media (max-width: 520px){.resume-name{font-size:20pt}.two-col{flex-direction:column;align-items:flex-start;gap:0}.two-col .right{margin-top:1px;text-align:left;white-space:normal}.skill-row{flex-direction:column;gap:0}ul{padding-left:1.2em}}@media print{body{background:var(--color-surface)}#root{padding:0}.toolbar{display:none!important}.resume{width:100%;min-height:unset;padding:0;box-shadow:none}a{color:var(--color-text)!important;text-decoration:none!important}@page{size:letter;margin:0}.resume{padding:.6in .75in}}
