@page{size:letter;margin:.42in .48in}.cv-action-bar[data-astro-cid-37omnnft]{border-bottom:1px solid var(--rule-hairline);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-block-start:1.5rem;padding-block-end:1.25rem;display:flex}.cv-back-link[data-astro-cid-37omnnft]{letter-spacing:.01em;color:var(--ink-secondary);font-size:.82rem;font-weight:500;text-decoration:none}.cv-back-link[data-astro-cid-37omnnft]:hover{color:var(--accent-primary)}.cv-action-controls[data-astro-cid-37omnnft]{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.cv-mode-switcher[data-astro-cid-37omnnft]{border:1px solid var(--rule-strong);background:var(--bg-elevated);border-radius:5px;gap:.2rem;padding:.2rem;display:inline-flex}.cv-mode-btn[data-astro-cid-37omnnft]{color:var(--ink-secondary);font-family:var(--font-sans);letter-spacing:.01em;cursor:pointer;background:0 0;border:none;border-radius:3px;padding:.42rem .8rem;font-size:.78rem;font-weight:500;transition:background-color .15s,color .15s}.cv-mode-btn[data-astro-cid-37omnnft]:hover{color:var(--ink-primary)}.cv-mode-btn[data-astro-cid-37omnnft].active{background:var(--ink-primary);color:var(--bg-canvas);font-weight:600}.cv-sheet[data-astro-cid-37omnnft]{background:var(--bg-elevated);border:1px solid var(--rule-hairline);margin-top:1.5rem;padding:clamp(1.75rem,3.5vw,3rem);box-shadow:0 12px 32px -16px #00000014}.cv-header[data-astro-cid-37omnnft]{border-bottom:2px solid var(--rule-strong);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.25rem;padding-bottom:1.1rem;display:flex}.cv-name[data-astro-cid-37omnnft]{margin-bottom:.3rem;font-size:clamp(2.1rem,3.5vw,2.85rem);line-height:1.04}.cv-headline[data-astro-cid-37omnnft]{font-family:var(--font-serif);color:var(--ink-secondary);margin-bottom:.25rem;font-size:1.08rem;font-style:italic}.cv-location[data-astro-cid-37omnnft]{color:var(--ink-muted);margin:0;font-size:.74rem}.cv-contact-list[data-astro-cid-37omnnft]{text-align:right;flex-direction:column;gap:.22rem;margin:0;padding:0;font-size:.74rem;list-style:none;display:flex}@media (max-width:720px){.cv-contact-list[data-astro-cid-37omnnft]{text-align:left}}.contact-key[data-astro-cid-37omnnft]{font-family:var(--font-serif);color:var(--ink-muted);letter-spacing:0;margin-right:.4rem;font-size:.78rem;font-style:italic}.cv-summary-section[data-astro-cid-37omnnft]{border-bottom:1px solid var(--rule-hairline);padding-block-start:.9rem;padding-block-end:.9rem}.cv-summary-text[data-astro-cid-37omnnft]{max-width:none;color:var(--ink-secondary);margin:0;font-size:.92rem;line-height:1.55}.cv-summary-text[data-astro-cid-37omnnft] strong[data-astro-cid-37omnnft]{color:var(--ink-primary);font-weight:600}.cv-section[data-astro-cid-37omnnft]{padding-top:1.15rem}.cv-section-header[data-astro-cid-37omnnft]{border-bottom:1px solid var(--rule-strong);justify-content:space-between;align-items:baseline;margin-bottom:.95rem;padding-bottom:.4rem;display:flex}.cv-section-title[data-astro-cid-37omnnft]{margin:0;font-size:1.15rem}.cv-section-period[data-astro-cid-37omnnft]{color:var(--ink-muted);font-size:.72rem}.cv-jobs-stack[data-astro-cid-37omnnft]{flex-direction:column;gap:1.15rem;display:flex}.cv-job[data-astro-cid-37omnnft]{border-bottom:1px solid var(--rule-hairline);padding-bottom:1rem}.cv-job[data-astro-cid-37omnnft]:last-child{border-bottom:none;padding-bottom:0}.cv-job-header[data-astro-cid-37omnnft]{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;margin-bottom:.35rem;display:flex}.cv-job-title-row[data-astro-cid-37omnnft]{flex-wrap:wrap;align-items:baseline;gap:.45rem;display:flex}.cv-job-company[data-astro-cid-37omnnft]{font-family:var(--font-sans);color:var(--ink-primary);margin:0;font-size:1.02rem;font-weight:700}.cv-job-sep[data-astro-cid-37omnnft]{color:var(--ink-muted)}.cv-job-role[data-astro-cid-37omnnft]{font-family:var(--font-serif);color:var(--accent-primary);margin:0;font-size:.96rem;font-style:italic}.cv-job-meta[data-astro-cid-37omnnft]{color:var(--ink-muted);align-items:baseline;gap:.35rem;font-size:.72rem;display:flex}.cv-sheet[data-astro-cid-37omnnft][data-cv-mode=resume] .cv-job-lead[data-astro-cid-37omnnft]{display:none}.cv-job-lead[data-astro-cid-37omnnft]{max-width:none;color:var(--ink-secondary);margin-bottom:.45rem;font-size:.86rem;line-height:1.5}.cv-job-bullets[data-astro-cid-37omnnft]{flex-direction:column;gap:.3rem;margin:.25rem 0 .5rem;padding-left:1.1rem;display:flex}.cv-job-bullets[data-astro-cid-37omnnft] li[data-astro-cid-37omnnft]{color:var(--ink-secondary);max-width:none;font-size:.85rem;line-height:1.46}.cv-job-bullets[data-astro-cid-37omnnft] li[data-astro-cid-37omnnft] strong[data-astro-cid-37omnnft]{color:var(--ink-primary)}.cv-job-stack[data-astro-cid-37omnnft]{color:var(--ink-muted);font-size:.7rem;line-height:1.4}.stack-key[data-astro-cid-37omnnft]{color:var(--ink-primary);font-weight:600}.cv-credentials-grid[data-astro-cid-37omnnft]{border-top:2px solid var(--rule-strong);grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:1.25rem;padding-top:1.15rem;display:grid}@media (max-width:900px){.cv-credentials-grid[data-astro-cid-37omnnft]{grid-template-columns:1fr;gap:1.25rem}}.cv-side-title[data-astro-cid-37omnnft]{font-family:var(--font-serif);letter-spacing:0;color:var(--ink-primary);border-bottom:1px solid var(--rule-hairline);margin-bottom:.65rem;padding-bottom:.35rem;font-size:.96rem;font-style:italic;font-weight:500}.edu-stack[data-astro-cid-37omnnft],.skills-stack[data-astro-cid-37omnnft],.cred-summary-stack[data-astro-cid-37omnnft]{flex-direction:column;gap:.65rem;display:flex}.edu-top-row[data-astro-cid-37omnnft]{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.edu-inst[data-astro-cid-37omnnft]{font-family:var(--font-sans);margin:0;font-size:.84rem;font-weight:700}.edu-deg[data-astro-cid-37omnnft]{color:var(--ink-secondary);margin:.1rem 0 0;font-size:.8rem}.edu-period[data-astro-cid-37omnnft]{color:var(--ink-muted);white-space:nowrap;font-size:.68rem}.edu-note[data-astro-cid-37omnnft]{color:var(--ink-muted);margin:.15rem 0 0;font-size:.73rem;line-height:1.35}.skill-group-name[data-astro-cid-37omnnft]{font-family:var(--font-sans);color:var(--ink-primary);margin-bottom:.12rem;font-size:.8rem;font-weight:700}.skill-group-items[data-astro-cid-37omnnft]{color:var(--ink-secondary);margin:0;font-size:.77rem;line-height:1.42}.cv-archive-section[data-astro-cid-37omnnft]{flex-direction:column;gap:1rem;margin-top:1.5rem;display:flex}.cv-archive-details[data-astro-cid-37omnnft]{border:1px solid var(--rule-hairline);background:var(--bg-subtle)}.cv-archive-summary[data-astro-cid-37omnnft]{cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.15rem;list-style:none;display:flex}.cv-archive-summary[data-astro-cid-37omnnft]::-webkit-details-marker{display:none}.archive-summary-left[data-astro-cid-37omnnft]{flex-wrap:wrap;align-items:baseline;gap:.65rem;display:flex}.archive-kicker[data-astro-cid-37omnnft]{font-family:var(--font-serif);letter-spacing:0;color:var(--accent-primary);font-size:.88rem;font-style:italic;font-weight:500}.archive-toggle-label[data-astro-cid-37omnnft]{color:var(--ink-secondary);align-items:center;gap:.45rem;font-size:.76rem;font-weight:500;display:flex}.cv-archive-summary[data-astro-cid-37omnnft]:hover .archive-toggle-label[data-astro-cid-37omnnft]{color:var(--accent-primary)}.expand-indicator[data-astro-cid-37omnnft]{font-size:.95rem;font-weight:600;transition:transform .2s}details[data-astro-cid-37omnnft][open]>summary[data-astro-cid-37omnnft] .expand-indicator[data-astro-cid-37omnnft]{transform:rotate(45deg)}.cv-archive-body[data-astro-cid-37omnnft]{border-top:1px solid var(--rule-hairline);background:var(--bg-elevated);padding:1.15rem}.archive-two-col[data-astro-cid-37omnnft]{grid-template-columns:1.35fr 1fr;gap:2rem;display:grid}@media (max-width:900px){.archive-two-col[data-astro-cid-37omnnft]{grid-template-columns:1fr}}.cv-pub-list[data-astro-cid-37omnnft]{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.cv-pub-item[data-astro-cid-37omnnft]{grid-template-columns:42px 1fr;gap:.6rem;font-size:.8rem;line-height:1.45;display:grid}.cv-pub-year[data-astro-cid-37omnnft]{color:var(--accent-primary);font-size:.72rem;font-weight:600}.cv-pub-body[data-astro-cid-37omnnft]{color:var(--ink-secondary)}.cv-pub-body[data-astro-cid-37omnnft] strong[data-astro-cid-37omnnft]{color:var(--ink-primary)}.cv-pub-link[data-astro-cid-37omnnft]{margin-left:.35rem;font-size:.7rem}.cv-patent-detail-list[data-astro-cid-37omnnft]{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.cv-patent-detail-list[data-astro-cid-37omnnft] li[data-astro-cid-37omnnft]{flex-direction:column;gap:.12rem;font-size:.8rem;display:flex}.patent-idx[data-astro-cid-37omnnft]{font-family:var(--font-serif);color:var(--accent-primary);letter-spacing:0;font-size:.78rem;font-style:italic}.cv-patent-detail-list[data-astro-cid-37omnnft] p[data-astro-cid-37omnnft]{color:var(--ink-secondary);margin:0;font-size:.76rem;line-height:1.4}@media print{.cv-sheet[data-astro-cid-37omnnft]{box-shadow:none!important;color:#000!important;background:#fff!important;border:none!important;margin:0!important;padding:0!important}.cv-header[data-astro-cid-37omnnft]{border-bottom:1.5px solid #111;flex-wrap:nowrap;padding-bottom:.5rem}.cv-header-main[data-astro-cid-37omnnft]{max-width:64%}.cv-contact-list[data-astro-cid-37omnnft],.cv-contact-list[data-astro-cid-37omnnft] li[data-astro-cid-37omnnft]{text-align:right;white-space:nowrap}.cv-name[data-astro-cid-37omnnft]{margin-bottom:.15rem;font-size:19pt}.cv-headline[data-astro-cid-37omnnft]{margin-bottom:.1rem;font-size:9.5pt}.cv-location[data-astro-cid-37omnnft],.cv-contact-list[data-astro-cid-37omnnft]{font-size:7.5pt}.cv-summary-section[data-astro-cid-37omnnft]{padding-block-start:.45rem;padding-block-end:.45rem}.cv-summary-text[data-astro-cid-37omnnft]{font-size:8.6pt;line-height:1.38}.cv-section[data-astro-cid-37omnnft]{padding-top:.6rem}.cv-section-header[data-astro-cid-37omnnft]{margin-bottom:.5rem;padding-bottom:.2rem}.cv-section-title[data-astro-cid-37omnnft]{font-size:10.5pt}.cv-jobs-stack[data-astro-cid-37omnnft]{gap:.65rem}.cv-job[data-astro-cid-37omnnft]{break-inside:avoid;padding-bottom:.55rem}.cv-job-header[data-astro-cid-37omnnft]{margin-bottom:.18rem}.cv-job-company[data-astro-cid-37omnnft]{font-size:9.6pt}.cv-job-role[data-astro-cid-37omnnft]{font-size:9pt}.cv-job-meta[data-astro-cid-37omnnft]{font-size:7.5pt}.cv-job-lead[data-astro-cid-37omnnft]{margin-bottom:.25rem;font-size:8.2pt;line-height:1.35}.cv-job-bullets[data-astro-cid-37omnnft]{gap:.18rem;margin:.15rem 0 .28rem}.cv-job-bullets[data-astro-cid-37omnnft] li[data-astro-cid-37omnnft]{font-size:8.3pt;line-height:1.35}.cv-job-stack[data-astro-cid-37omnnft]{font-size:7.2pt}.cv-credentials-grid[data-astro-cid-37omnnft]{break-inside:avoid;border-top:1.5px solid #111;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:.7rem;padding-top:.6rem}.cv-side-title[data-astro-cid-37omnnft]{margin-bottom:.35rem;padding-bottom:.18rem;font-size:7.5pt}.edu-stack[data-astro-cid-37omnnft],.skills-stack[data-astro-cid-37omnnft],.cred-summary-stack[data-astro-cid-37omnnft]{gap:.4rem}.edu-inst[data-astro-cid-37omnnft],.skill-group-name[data-astro-cid-37omnnft]{font-size:8pt}.edu-deg[data-astro-cid-37omnnft],.skill-group-items[data-astro-cid-37omnnft]{font-size:7.5pt;line-height:1.32}.edu-note[data-astro-cid-37omnnft],.edu-period[data-astro-cid-37omnnft]{font-size:6.8pt}.cv-sheet[data-astro-cid-37omnnft][data-cv-mode=resume] .cv-archive-section[data-astro-cid-37omnnft]{display:none!important}.cv-sheet[data-astro-cid-37omnnft][data-cv-mode=cv] .cv-archive-section[data-astro-cid-37omnnft]{break-before:page;gap:.85rem;margin-top:0}.cv-sheet[data-astro-cid-37omnnft][data-cv-mode=cv] .cv-archive-details[data-astro-cid-37omnnft]{background:0 0;border:none}.cv-sheet[data-astro-cid-37omnnft][data-cv-mode=cv] .cv-archive-summary[data-astro-cid-37omnnft]{border-bottom:1px solid #111;margin-bottom:.55rem;padding:0 0 .25rem}.cv-sheet[data-astro-cid-37omnnft][data-cv-mode=cv] .cv-archive-body[data-astro-cid-37omnnft]{border-top:none;padding:0}.cv-pub-item[data-astro-cid-37omnnft],.cv-patent-detail-list[data-astro-cid-37omnnft] li[data-astro-cid-37omnnft]{break-inside:avoid;font-size:7.8pt;line-height:1.32}}
