:root{--bg:#0e0e0e;--text:#d6d6d2;--muted:#8b8b87;--underline:#4a4a47;--hairline:#ffffff12;--cv-bg:#f5f5f3;--cv-ink:#1b1c20;--cv-muted:#70747c;--cv-hairline:#0000001f;--sans:"Helvetica Neue",Helvetica,Arial,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}*,:after,:before{box-sizing:border-box}body,html{background:#0e0e0e;background:var(--bg);margin:0}html[data-page=resume],html[data-page=resume] body{background:#e6e6e3}p{text-wrap:pretty;margin:0}a{color:inherit;text-decoration:none;transition:color .12s,text-decoration-color .12s}.muted{color:#8b8b87;color:var(--muted)}.home{align-items:center;background:#0e0e0e;background:var(--bg);color:#d6d6d2;color:var(--text);display:flex;flex-direction:column;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-family:var(--sans);font-size:15px;line-height:1.6;min-height:100vh;min-height:100svh;padding:150px 0 72px}.home-col{display:flex;flex:1 1;flex-direction:column;gap:28px;max-width:calc(100% - 48px);width:560px}.link-underline{color:#d6d6d2;color:var(--text);text-decoration:underline;text-decoration-color:#4a4a47;text-decoration-color:var(--underline);text-underline-offset:3px}.link-underline:hover{text-decoration-color:#d6d6d2;text-decoration-color:var(--text)}.link-muted{color:#8b8b87;color:var(--muted)}.link-muted:hover{color:#d6d6d2;color:var(--text)}.work{display:flex;flex-direction:column;gap:11px;margin-top:28px}.work-row{grid-gap:16px;display:grid;gap:16px;grid-template-areas:"company role years";grid-template-columns:150px 1fr auto}.work-company{grid-area:company}.work-role{grid-area:role}.work-years{grid-area:years}.oss{grid-gap:16px;display:grid;gap:16px;grid-template-columns:150px 1fr;margin-top:12px}.home-links{display:flex;flex-wrap:wrap;gap:24px;margin-top:auto}@media (max-width:639px){.home{padding:72px 24px 40px}.home-col{gap:24px;max-width:none;width:100%}.work{gap:12px;margin-top:20px}.work-row{gap:0 12px;grid-template-areas:"company years" "role role";grid-template-columns:1fr auto}.oss{gap:0;grid-template-columns:1fr;margin-top:8px}.home-links{gap:20px;padding-top:32px}}.cv-screen{align-items:center;display:flex;flex-direction:column;font-family:IBM Plex Mono,ui-monospace,Menlo,monospace;font-family:var(--mono);font-size:11.5px;gap:16px;line-height:1.5;min-height:100vh;padding:24px 16px 48px}.cv-toolbar{color:#70747c;color:var(--cv-muted);display:flex;justify-content:space-between;max-width:100%;width:816px}.cv-sheet,.cv-toolbar a:hover{color:#1b1c20;color:var(--cv-ink)}.cv-sheet{background:#f5f5f3;background:var(--cv-bg);border:1px solid #0000001f;border:1px solid var(--cv-hairline);display:flex;flex-direction:column;height:1056px;padding:36px 56px;-webkit-print-color-adjust:exact;print-color-adjust:exact;width:816px}.cv-sheet .muted{color:#70747c;color:var(--cv-muted)}.cv-sheet .strong{font-weight:500}.cv-head{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding-bottom:14px}.cv-name{letter-spacing:.06em;text-transform:uppercase}.cv-contact{color:#70747c;color:var(--cv-muted);display:flex;flex-wrap:wrap;gap:16px}.cv-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:140px 1fr}.cv-label{color:#70747c;color:var(--cv-muted);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase}.cv-section{border-top:1px solid #1b1c20;border-top:1px solid var(--cv-ink);padding:9px 0}.cv-section-open{padding-bottom:0}.cv-section-tight{padding:6px 0}.cv-gap{margin-top:4px}.cv-entry{border-top:1px solid #0000001f;border-top:1px solid var(--cv-hairline);padding:6px 0}.cv-job{padding:5px 0}.cv-job-body{display:flex;flex-direction:column;gap:2px}.cv-bullet{text-wrap:pretty;display:flex;gap:10px}@media screen and (max-width:860px){.cv-sheet{height:auto;padding:28px 20px;width:100%}}@media screen and (max-width:639px){.cv-head{gap:6px}.cv-contact,.cv-head{flex-direction:column}.cv-contact{gap:0}.cv-row{gap:2px;grid-template-columns:1fr}}@media print{@page{size:letter;margin:0}html[data-page=resume],html[data-page=resume] body{background:#f5f5f3;background:var(--cv-bg)}.cv-screen{display:block;padding:0}.cv-toolbar{display:none}.cv-sheet{border:0;height:11in;overflow:hidden;width:8.5in}}