.animate-spin{animation:svelte-lqaq5l-spin var(--duration-moderate) linear infinite}@media (prefers-reduced-motion:reduce){.animate-spin{animation:none}}@keyframes svelte-lqaq5l-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cv-header.svelte-121couu{border-top:var(--rule-masthead) solid var(--color-primary);padding-top:var(--rule-gap);margin-bottom:var(--space-6)}.cv-date.svelte-121couu{font-family:var(--font-family-mono);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--color-accent);margin:0 0 var(--space-3)}.cv-main-title.svelte-121couu{font-family:var(--font-family-display);font-variation-settings:var(--font-variation-display);font-size:var(--font-size-4xl);letter-spacing:var(--tracking-display);color:var(--color-text-emphasis);margin:0 0 var(--space-3);font-weight:830;line-height:1}@media (width<=639px){.cv-main-title.svelte-121couu{font-size:var(--font-size-3xl)}}.cv-subtitle.svelte-121couu{font-family:var(--font-family-serif);font-style:italic;font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);line-height:var(--line-height-snug);color:var(--color-text-soft);max-width:var(--measure-standfirst);margin:0}.cv-contact-section.svelte-121couu{gap:var(--space-6);padding-bottom:var(--space-6);border-bottom:var(--rule-hairline) solid var(--color-hairline);font-family:var(--font-family-mono);font-size:var(--font-size-xs);letter-spacing:var(--tracking-figures);line-height:var(--line-height-relaxed);color:var(--color-text-light);margin-bottom:var(--space-xl);flex-direction:column;display:flex}.cv-contact-section.svelte-121couu .cv-contact-icon{flex-shrink:0}.cv-contact-group.svelte-121couu{align-items:start;gap:var(--space-2);display:flex}.cv-links-group.svelte-121couu{gap:var(--space-1);flex-direction:column;display:flex}.cv-link-item.svelte-121couu{align-items:center;gap:var(--space-2);display:flex}.cv-link-item.svelte-121couu a:where(.svelte-121couu){min-height:var(--space-6);align-items:center;display:inline-flex}@media (width>=768px){.cv-contact-section.svelte-121couu{justify-content:space-between;align-items:start;gap:var(--space-6);flex-direction:row}.cv-links-group.svelte-121couu{align-items:end}.cv-link-item.svelte-121couu{flex-direction:row-reverse}}.cv-entry--wide.svelte-1oys8uv{--ledger-key-w:15rem}.cv-entry-year.svelte-1oys8uv{font-variant-numeric:tabular-nums}.cv-entry-year--current.svelte-1oys8uv{color:var(--color-accent);font-weight:var(--font-weight-semibold)}.cv-entry-content.svelte-1oys8uv{min-width:0;line-height:var(--line-height-relaxed)}.cv-entry-content.svelte-1oys8uv :is(.cv-detail,.cv-note){max-width:var(--measure-prose)}.cv-aside-link.svelte-ktne58{margin-left:var(--space-2xs);font-size:var(--font-size-sm)}.doi-link.svelte-ktne58{align-items:center;gap:var(--space-1);margin-left:var(--space-2);font-family:var(--font-family-mono);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-figures);color:var(--color-text-soft);transition:color var(--duration-fast) var(--ease-out);text-decoration:none;display:inline-flex}.doi-link.svelte-ktne58:hover{color:var(--color-accent);text-decoration:underline}.doi-link.svelte-ktne58 .doi-link-icon{width:var(--space-4);height:var(--space-4);flex-shrink:0}.pub-type-badge.svelte-ktne58{font-family:var(--font-family-mono);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted);border:var(--border-width-thin) solid var(--color-border);padding:0 var(--space-1-5);background-color:#0000;border-radius:0}.cv-toc.svelte-1mmegi2{bottom:var(--space-6);left:var(--space-6);z-index:var(--z-fixed);position:fixed}.cv-toc-fab.svelte-1mmegi2{width:var(--space-12);height:var(--space-12);border:var(--border-width-thin) solid var(--color-primary);cursor:pointer;color:var(--color-text-inverted);background:var(--color-primary);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:flex}.cv-toc-fab.svelte-1mmegi2:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.cv-toc-fab.open.svelte-1mmegi2{background:var(--color-surface);color:var(--color-text-emphasis);border-color:var(--color-border-dark)}.cv-toc-fab.svelte-1mmegi2:focus-visible{outline:var(--border-width-medium) solid var(--color-accent);outline-offset:var(--border-width-thin)}.cv-toc-panel.svelte-1mmegi2{bottom:calc(var(--space-12) + var(--space-2));width:15rem;max-height:60vh;padding:var(--space-3);background:var(--color-surface-elevated);border:var(--border-width-thin) solid var(--color-border-dark);position:absolute;left:0;overflow-y:auto}html.dark .cv-toc-panel.svelte-1mmegi2{background:var(--color-surface-alt);border-color:var(--color-border-dark)}.cv-toc-title.svelte-1mmegi2{font-family:var(--font-family-mono);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--color-text-muted);margin:0 0 var(--space-2);padding:0 var(--space-1) var(--space-2);border-bottom:var(--rule-hairline) solid var(--color-hairline)}.cv-toc-list.svelte-1mmegi2{gap:var(--space-px);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.cv-toc-link.svelte-1mmegi2{justify-content:space-between;align-items:baseline;gap:var(--space-2);text-align:left;width:100%;padding:var(--space-1) var(--space-2);min-height:var(--space-6);font-family:var(--font-family-mono);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-caps);text-transform:uppercase;line-height:var(--line-height-snug);color:var(--color-text-light);cursor:pointer;transition:color var(--duration-fast) var(--ease-out);background:0 0;border:none;display:flex;position:relative}.cv-toc-link.svelte-1mmegi2:before{content:"";left:0;top:var(--space-1);bottom:var(--space-1);width:var(--border-width-medium);background:var(--color-accent);opacity:0;position:absolute}.cv-toc-link.svelte-1mmegi2:hover{color:var(--color-text-emphasis)}.cv-toc-link.active.svelte-1mmegi2{color:var(--color-accent);font-weight:var(--font-weight-semibold)}.cv-toc-link.active.svelte-1mmegi2:before{opacity:1}.cv-toc-link.svelte-1mmegi2:focus-visible{outline:var(--border-width-medium) solid var(--color-accent);outline-offset:var(--border-width-thin)}.cv-toc-count.svelte-1mmegi2{font-variant-numeric:tabular-nums;font-weight:var(--font-weight-normal);color:var(--color-text-muted)}.cv-toc-link.active.svelte-1mmegi2 .cv-toc-count:where(.svelte-1mmegi2){color:inherit}@media (hover:none),(pointer:coarse){.cv-toc-link.svelte-1mmegi2{min-height:var(--space-11);align-items:center}}@media print{.cv-toc.svelte-1mmegi2{display:none!important}}@media (prefers-reduced-motion:reduce){.cv-toc-link.svelte-1mmegi2,.cv-toc-fab.svelte-1mmegi2{transition:none}}.dh-link-list.svelte-5j38pa{margin-top:var(--space-xs);margin-left:var(--space-md);max-width:var(--measure-prose);font-size:var(--font-size-sm)}.dh-links.svelte-5j38pa{align-items:baseline;row-gap:calc(var(--space-6) - 1lh);margin-top:var(--space-1);font-family:var(--font-family-mono);font-size:var(--font-size-2xs);letter-spacing:var(--tracking-figures);line-height:var(--line-height-snug);flex-wrap:wrap;display:flex}.dh-links.svelte-5j38pa+.dh-links:where(.svelte-5j38pa){margin-top:calc(var(--space-6) - 1lh)}.dh-links-key.svelte-5j38pa{margin-right:var(--space-2);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--color-text-light)}.dh-links-sep.svelte-5j38pa{color:var(--color-text-muted)}.dh-links.svelte-5j38pa a:where(.svelte-5j38pa){padding-block:calc((var(--space-6) - 1lh) / 2);margin-block:calc((1lh - var(--space-6)) / 2);display:inline-block}.cv-fieldwork-place.svelte-1oc4tf2{font-family:var(--font-family-serif);font-weight:var(--font-weight-medium);color:var(--color-text-emphasis)}.verification-badge.svelte-18ovhau{align-items:center;gap:var(--space-1-5);font-family:var(--font-family-mono);font-size:var(--font-size-2xs);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted);margin-top:var(--space-1-5);padding:var(--space-1) var(--space-2);border:var(--border-width-thin) solid var(--color-border);transition:color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);background:0 0;border-radius:0;text-decoration:none;display:inline-flex}.verification-badge.svelte-18ovhau svg{flex-shrink:0}@media (hover:none),(pointer:coarse){.verification-badge.svelte-18ovhau{min-height:var(--space-11)}}.verification-badge.svelte-18ovhau:hover{color:var(--color-accent);border-color:var(--color-accent)}.cv-language-name.svelte-am9b9m{font-family:var(--font-family-serif);font-size:var(--font-size-lg);color:var(--color-text-emphasis)}.cv-skill-list.svelte-120pnlw{font-family:var(--font-family-serif);color:var(--color-text-soft)}.cv-container.svelte-14tzwpa{background:var(--color-background);border:var(--border-width-thin) solid var(--color-border);margin-top:var(--space-lg);margin-bottom:var(--space-2xl);position:relative}@media (width<=374px){.cv-container.svelte-14tzwpa{padding:var(--space-5)}}.cv-actions.svelte-14tzwpa{gap:var(--space-md);margin-bottom:var(--space-md);z-index:10;padding-bottom:var(--rule-gap);flex-wrap:wrap;justify-content:flex-start;align-items:center;display:flex;position:relative}@media (width>=768px){.cv-actions.svelte-14tzwpa{flex-direction:row-reverse;justify-content:flex-start;margin-bottom:0}}.cv-section-wrapper[id]{scroll-margin-top:calc(var(--space-16) + var(--space-4))}.cv-section-wrapper{margin-bottom:0}.cv-section-wrapper>section{border-top:var(--rule-section) solid var(--color-primary);padding-top:var(--rule-gap);margin-top:var(--space-2xl);margin-bottom:0}#cv-content h3{font-family:var(--font-family-display);font-variation-settings:var(--font-variation-display-sm);font-size:var(--font-size-2xl);letter-spacing:var(--tracking-display-sm);color:var(--color-text-emphasis);margin:0 0 var(--space-md);border-bottom:none;padding-bottom:0;font-weight:750;line-height:1.05}#cv-content h4{font-family:var(--font-family-mono);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-muted);margin:var(--space-lg) 0 var(--space-1);padding-bottom:var(--space-1-5);border-bottom:var(--rule-hairline) solid var(--color-hairline)}:where(#cv-content) .cv-title{font-weight:var(--font-weight-medium)}:where(#cv-content) .cv-detail{font-size:var(--font-size-sm)}:where(#cv-content) .cv-note{font-size:var(--font-size-sm);color:var(--color-text-light);display:block}#cv-content .cv-empty{font-family:var(--font-family-serif);color:var(--color-text-light);font-style:italic}#cv-content :where(a){transition:color var(--duration-fast) var(--ease-out)}#cv-content a:focus-visible{outline:var(--border-width-medium) solid var(--color-accent);outline-offset:var(--border-width-thin)}#cv-content a.review-link{font-style:italic;text-decoration:none}#cv-content a.review-link:hover{text-decoration:underline}@media print{.site-header,.site-footer{display:none!important}.cv-container.svelte-14tzwpa{max-width:100%!important;padding:var(--space-10)!important;background:var(--color-print-ground)!important;border:none!important;margin:0!important}.surface,.surface-card,.surface-panel,.cv-section-wrapper{background:var(--color-print-ground)!important}.cv-section-wrapper>section{border-top:var(--rule-section) solid var(--color-print-ink)!important}#cv-content .cv-entry{border-top:var(--rule-hairline) solid var(--color-hairline)!important}#cv-content h4{border-bottom:var(--rule-hairline) solid var(--color-hairline)!important}body{background:var(--color-print-ground)!important;color:var(--color-print-ink)!important}#cv-content .cv-entry{break-inside:avoid}#cv-content h3{page-break-after:avoid}#cv-content h4{break-after:avoid}#cv-content a{color:var(--color-print-ink)!important;text-decoration:underline!important}#cv-content a[href^=http]:not(.doi-link):not(.link-url):after{content:" (" attr(href) ")";color:var(--color-text-light);word-break:break-all;font-size:.75em;font-weight:400}.cv-actions.svelte-14tzwpa{display:none!important}}@media (prefers-reduced-motion:reduce){.cv-container.svelte-14tzwpa,.cv-section-wrapper{opacity:1!important;transition:none!important;animation:none!important;transform:none!important}}
