@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff) format("woff")}@layer reset,tokens,base,components,utilities;@layer tokens{:root{--bg-light: #ffffff;--bg-dark: #111317;--surface-light: #f8f9fb;--surface-dark: #181c22;--text-light: #111827;--text-dark: #e5e7eb;--muted-light: #4b5563;--muted-dark: #9ca3af;--subtle-light: #6b7280;--subtle-dark: #8b949e;--border-light: #e5e7eb;--border-dark: #262c36;--border-strong-light: #cbd5e1;--border-strong-dark: #374151;--link-light: #1d3b66;--link-dark: #93c5fd;--link-hover-light: #0f2442;--link-hover-dark: #bfdbfe;--color-bg: var(--bg-light);--color-surface: var(--surface-light);--color-text: var(--text-light);--color-text-muted: var(--muted-light);--color-text-subtle: var(--subtle-light);--color-border: var(--border-light);--color-border-strong: var(--border-strong-light);--color-link: var(--link-light);--color-link-hover: var(--link-hover-light);color-scheme:light dark;accent-color:var(--color-link);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-serif: Georgia, "Times New Roman", Times, serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs: .8125rem;--text-sm: .90625rem;--text-base: 1rem;--text-lg: 1.09375rem;--text-xl: clamp(1.125rem, 1.05rem + .35vw, 1.25rem);--text-2xl: clamp(1.45rem, 1.25rem + .9vw, 1.875rem);--leading-tight: 1.25;--leading-snug: 1.4;--leading-normal: 1.62;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 2.75rem;--space-10: 3.75rem;--radius-sm: .25rem;--radius: .375rem;--container: 50rem;--transition: .12s ease}@media(prefers-color-scheme:dark){:root{--color-bg: var(--bg-dark);--color-surface: var(--surface-dark);--color-text: var(--text-dark);--color-text-muted: var(--muted-dark);--color-text-subtle: var(--subtle-dark);--color-border: var(--border-dark);--color-border-strong: var(--border-strong-dark);--color-link: var(--link-dark);--color-link-hover: var(--link-hover-dark)}}@supports (color: light-dark(white,black)){:root{--color-bg: light-dark(var(--bg-light), var(--bg-dark));--color-surface: light-dark(var(--surface-light), var(--surface-dark));--color-text: light-dark(var(--text-light), var(--text-dark));--color-text-muted: light-dark(var(--muted-light), var(--muted-dark));--color-text-subtle: light-dark(var(--subtle-light), var(--subtle-dark));--color-border: light-dark(var(--border-light), var(--border-dark));--color-border-strong: light-dark(var(--border-strong-light), var(--border-strong-dark));--color-link: light-dark(var(--link-light), var(--link-dark));--color-link-hover: light-dark(var(--link-hover-light), var(--link-hover-dark))}}@media(prefers-reduced-motion:reduce){:root{--transition: 0ms}}}@layer reset{html,body,div,header,nav,main,section,article,aside,footer,h1,h2,h3,h4,p,ul,ol,li,dl,dt,dd,figure,blockquote,pre,code,a,button,input,textarea,select,img,details,summary{box-sizing:border-box}body,h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote,pre{margin:0}ul,ol{padding:0}}@layer base{html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{min-block-size:100dvh;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);text-align:start;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,svg{display:block;max-inline-size:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:transparent;border:0;padding:0}h1,h2,h3,h4{line-height:var(--leading-tight);color:var(--color-text)}h1{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.015em;text-wrap:balance}h1:focus{outline:none}h2{font-size:var(--text-base);font-weight:var(--weight-semibold);letter-spacing:.01em}h3{font-size:var(--text-base);font-weight:var(--weight-semibold)}p{text-wrap:pretty}a{color:var(--color-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;transition:color var(--transition)}a:hover{color:var(--color-link-hover)}:where(a:any-link,button,summary):focus-visible{outline:2px solid var(--color-link);outline-offset:3px;border-radius:var(--radius-sm)}#root{display:flex;flex-direction:column;min-block-size:100dvh}main{flex:1 0 auto}}@layer utilities{.container{inline-size:100%;max-inline-size:var(--container);margin-inline:auto;padding-inline:var(--space-5)}.visually-hidden:where(:not(:focus-within,:active)){position:absolute!important;clip-path:inset(50%)!important;overflow:hidden!important;inline-size:1px!important;block-size:1px!important;margin:-1px!important;padding:0!important;border:0!important;white-space:nowrap!important}.skip-link{position:fixed;inset-block-start:var(--space-3);inset-inline-start:var(--space-3);z-index:100;padding:var(--space-2) var(--space-4);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);text-decoration:none;font-size:var(--text-sm);font-weight:var(--weight-medium)}}@media print{:root{color-scheme:light;--color-bg: #ffffff;--color-surface: #ffffff;--color-text: #000000;--color-text-muted: #222222;--color-text-subtle: #444444;--color-border: #cccccc;--color-border-strong: #999999;--color-link: #000000}.site-header,footer,.skip-link,.no-print{display:none!important}body{font-size:.875rem;line-height:1.45}a{text-decoration:none}.container{max-inline-size:none;padding-inline:0}}._switcher_1q9ru_1{display:inline-flex;align-items:center;border-inline-start:1px solid var(--color-border);padding-inline-start:var(--space-3);gap:var(--space-1)}._option_1q9ru_9{display:inline-flex;align-items:center;justify-content:center;min-inline-size:1.75rem;min-block-size:1.75rem;padding-inline:var(--space-1);font-size:var(--text-xs);color:var(--color-text-subtle);border-radius:var(--radius-sm)}._option_1q9ru_9:hover{color:var(--color-text)}._active_1q9ru_25{color:var(--color-text);font-weight:var(--weight-semibold)}@media(pointer:coarse){._option_1q9ru_9{min-inline-size:2.25rem;min-block-size:2.25rem}}._header_17i9d_1{border-block-end:1px solid var(--color-border);background-color:var(--color-bg)}._bar_17i9d_6{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-5);padding-block:var(--space-3)}._links_17i9d_15{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-5)}._link_17i9d_15{display:inline-flex;align-items:center;min-block-size:1.75rem;font-size:var(--text-sm);color:var(--color-text-muted);text-decoration:none}._link_17i9d_15:hover{color:var(--color-text);text-decoration:underline}._active_17i9d_37{color:var(--color-text);font-weight:var(--weight-medium);text-decoration:underline}@media(pointer:coarse){._link_17i9d_15{min-block-size:2.25rem}}._footer_1ncgm_1{border-block-start:1px solid var(--color-border);margin-block-start:var(--space-10);padding-block:var(--space-5)}._inner_1ncgm_7{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-5);font-size:var(--text-xs);color:var(--color-text-subtle)}._copy_1ncgm_17{color:var(--color-text-subtle)}._links_1ncgm_21{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4)}._links_1ncgm_21 a{display:inline-flex;align-items:center;min-block-size:1.75rem;color:var(--color-text-subtle);text-decoration:none}._links_1ncgm_21 a:hover{color:var(--color-text);text-decoration:underline}@media(pointer:coarse){._links_1ncgm_21 a{min-block-size:2.25rem}}._document_e8e2h_1{container-type:inline-size;padding-block:var(--space-8) var(--space-4)}._identity_e8e2h_6{padding-block-end:var(--space-6);border-block-end:1px solid var(--color-border-strong)}._topRow_e8e2h_11{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-5)}._portrait_e8e2h_18{inline-size:6.75rem;block-size:6.75rem;aspect-ratio:1 / 1;object-fit:cover;border-radius:var(--radius);border:1px solid var(--color-border-strong);flex-shrink:0}._headingGroup_e8e2h_28{display:flex;flex-direction:column;gap:var(--space-1)}._name_e8e2h_34{font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:var(--weight-bold)}._role_e8e2h_40{font-size:var(--text-base);color:var(--color-text-muted)}._summary_e8e2h_45{margin-block-start:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);max-inline-size:68ch;font-size:var(--text-sm);color:var(--color-text)}._contactBlock_e8e2h_55{margin-block-start:var(--space-5);padding-block-start:var(--space-4);border-block-start:1px solid var(--color-border);display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4)}._contactGrid_e8e2h_66{display:grid;grid-template-columns:repeat(auto-fit,minmax(12.5rem,auto));gap:var(--space-3) var(--space-6);font-size:var(--text-xs)}._contactItem_e8e2h_73 dt{color:var(--color-text-subtle);font-weight:var(--weight-medium)}._contactItem_e8e2h_73 dd{margin-block-start:.125rem;color:var(--color-text);font-variant-numeric:tabular-nums}._inlineLinks_e8e2h_84{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}._printRow_e8e2h_91{display:flex;align-items:center}._printButton_e8e2h_96{display:inline-flex;align-items:center;min-block-size:1.875rem;padding-inline:var(--space-3);padding-block:var(--space-1);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text);font-size:var(--text-xs)}._printButton_e8e2h_96:hover{border-color:var(--color-text-muted)}._section_e8e2h_113{padding-block:var(--space-6);border-block-end:1px solid var(--color-border)}._sectionTitle_e8e2h_118{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:var(--weight-bold);margin-block-end:var(--space-4);color:var(--color-text)}._entryList_e8e2h_126,._pubList_e8e2h_127{list-style:none;display:flex;flex-direction:column}._entry_e8e2h_126:not(:last-child),._pubItem_e8e2h_134:not(:last-child){padding-block-end:var(--space-4);margin-block-end:var(--space-4);border-block-end:1px solid var(--color-border)}._entry_e8e2h_126,._pubItem_e8e2h_134{display:flex;flex-direction:column;gap:var(--space-1)}@container (min-width: 36rem){._entry_e8e2h_126,._pubItem_e8e2h_134{display:grid;grid-template-columns:10.5rem minmax(0,1fr);gap:var(--space-5);align-items:baseline}}._metaCol_e8e2h_157,._pubMeta_e8e2h_158{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1) var(--space-2);font-variant-numeric:tabular-nums}@container (min-width: 36rem){._metaCol_e8e2h_157,._pubMeta_e8e2h_158{flex-direction:column;gap:.125rem}}._period_e8e2h_174{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text)}._duration_e8e2h_180,._pubCategory_e8e2h_181{font-size:var(--text-xs);color:var(--color-text-subtle)}._bodyCol_e8e2h_186,._pubBody_e8e2h_187{display:flex;flex-direction:column;gap:.2rem}._entryTitle_e8e2h_193{font-size:var(--text-base);font-weight:var(--weight-semibold)}._entryOrg_e8e2h_198{font-size:var(--text-sm);color:var(--color-text-muted)}._entrySubtle_e8e2h_203{font-size:var(--text-xs);color:var(--color-text-subtle)}._entryDetail_e8e2h_208,._entryDesc_e8e2h_209{margin-block-start:var(--space-1);font-size:var(--text-sm);color:var(--color-text);max-inline-size:66ch}._inlineLabel_e8e2h_216{font-weight:var(--weight-medium);color:var(--color-text-muted)}._pubTitle_e8e2h_221{font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:var(--leading-snug)}._pubTitle_e8e2h_221 a{color:var(--color-text);text-decoration:underline;text-decoration-color:var(--color-border-strong)}._pubTitle_e8e2h_221 a:hover{color:var(--color-link);text-decoration-color:currentColor}._pubSubtitle_e8e2h_238{font-size:var(--text-xs);font-style:italic;color:var(--color-text-subtle)}._pubCitation_e8e2h_244{font-size:var(--text-sm);color:var(--color-text-muted)}._pubLinks_e8e2h_249{margin-block-start:.15rem;font-size:var(--text-xs);color:var(--color-text-subtle)}._refLink_e8e2h_255{display:inline-flex;align-items:center;min-block-size:1.5rem;font-family:var(--font-mono);font-size:var(--text-xs)}._specTable_e8e2h_263{display:flex;flex-direction:column;gap:var(--space-3)}._specRow_e8e2h_269{display:flex;flex-direction:column;gap:.15rem;font-size:var(--text-sm)}@container (min-width: 36rem){._specRow_e8e2h_269{display:grid;grid-template-columns:13rem minmax(0,1fr);gap:var(--space-5);align-items:baseline}}._specRow_e8e2h_269 dt{font-weight:var(--weight-medium);color:var(--color-text-muted)}._specRow_e8e2h_269 dd{color:var(--color-text)}._quietFootnote_e8e2h_294{margin-block-start:var(--space-6);font-size:var(--text-xs);color:var(--color-text-subtle)}@media(pointer:coarse){._printButton_e8e2h_96,._refLink_e8e2h_255{min-block-size:2.25rem}}@media print{._document_e8e2h_1{padding-block:0}._portrait_e8e2h_18{inline-size:5.25rem;block-size:5.25rem}._section_e8e2h_113{padding-block:var(--space-4)}._entry_e8e2h_126,._pubItem_e8e2h_134{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:var(--space-4);break-inside:avoid}._specRow_e8e2h_269{display:grid;grid-template-columns:11.5rem minmax(0,1fr);gap:var(--space-4)}}._page_k3luj_1{container:projects / inline-size;padding-block:var(--space-8) var(--space-4)}._header_k3luj_6{padding-block-end:var(--space-5);border-block-end:1px solid var(--color-border-strong)}._title_k3luj_11{font-family:var(--font-serif);font-size:var(--text-2xl)}._subtitle_k3luj_16{margin-block-start:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);max-inline-size:66ch}._section_k3luj_23{padding-block:var(--space-6);border-block-end:1px solid var(--color-border)}._sectionTitle_k3luj_28{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:var(--weight-bold);margin-block-end:var(--space-2)}._lead_k3luj_35{font-size:var(--text-sm);color:var(--color-text-muted);margin-block-end:var(--space-4);max-inline-size:66ch}._bulletList_k3luj_42{padding-inline-start:1.25rem;display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);max-inline-size:68ch}._workList_k3luj_51{list-style:none;display:flex;flex-direction:column}._workItem_k3luj_57{min-inline-size:0}._workItem_k3luj_57:not(:last-child){padding-block-end:var(--space-4);margin-block-end:var(--space-4);border-block-end:1px solid var(--color-border)}._workHeader_k3luj_67{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-1) var(--space-4)}._workName_k3luj_75{min-inline-size:0;font-size:var(--text-base);font-weight:var(--weight-semibold)}._workLinks_k3luj_81{min-inline-size:0;display:flex;flex-wrap:wrap;flex-wrap:balance;align-items:safe center;gap:var(--space-1) var(--space-3)}._workLink_k3luj_81{display:inline-flex;align-items:center;min-block-size:1.5rem;font-size:var(--text-xs);font-family:var(--font-mono);overflow-wrap:anywhere}._workDesc_k3luj_99{margin-block-start:var(--space-1);font-size:var(--text-sm);color:var(--color-text-muted);max-inline-size:68ch}._hobbyList_k3luj_106{margin-block-start:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}._hobbyRow_k3luj_113{display:flex;flex-direction:column;gap:.15rem;font-size:var(--text-sm)}@container projects (inline-size >= 36rem){._hobbyRow_k3luj_113{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:var(--space-5);align-items:baseline}}._hobbyLabel_k3luj_129{font-weight:var(--weight-medium);color:var(--color-text)}._hobbyText_k3luj_134{min-inline-size:0;color:var(--color-text-muted);max-inline-size:64ch}._archiveSection_k3luj_141{padding-block:var(--space-5)}._archiveTitle_k3luj_145{font-family:var(--font-serif);font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text-muted);margin-block-end:var(--space-1)}._archiveLead_k3luj_153{font-size:var(--text-xs);color:var(--color-text-subtle);margin-block-end:var(--space-3);max-inline-size:68ch}._archiveList_k3luj_160{list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}._archiveItem_k3luj_167{min-inline-size:0;font-size:var(--text-xs);line-height:var(--leading-normal);color:var(--color-text-muted);max-inline-size:72ch}._archiveName_k3luj_175{font-weight:var(--weight-medium);color:var(--color-text)}._archiveLinks_k3luj_180{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-inline-start:var(--space-2)}._archiveLink_k3luj_180{display:inline-flex;align-items:center;min-block-size:1.5rem;font-family:var(--font-mono);font-size:var(--text-xs)}._backRow_k3luj_196{margin-block-start:var(--space-6);font-size:var(--text-sm)}@media(pointer:coarse){._workLink_k3luj_81,._archiveLink_k3luj_180{min-block-size:2.25rem}}._page_1tv1t_1{padding-block:var(--space-8) var(--space-4)}._header_1tv1t_5{padding-block-end:var(--space-5);border-block-end:1px solid var(--color-border-strong)}._title_1tv1t_10{font-family:var(--font-serif);font-size:var(--text-2xl)}._meta_1tv1t_15{margin-block-start:var(--space-1);font-size:var(--text-xs);color:var(--color-text-subtle);font-variant-numeric:tabular-nums}._doc_1tv1t_22{margin-block-start:var(--space-6);display:flex;flex-direction:column;gap:var(--space-5);max-inline-size:68ch}._block_1tv1t_30{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm)}._heading_1tv1t_37{font-family:var(--font-serif);font-size:var(--text-base);font-weight:var(--weight-bold)}._wrap_atwmp_1{padding-block:var(--space-10)}._title_atwmp_5{font-family:var(--font-serif);font-size:var(--text-2xl)}._text_atwmp_10{margin-block-start:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted)}._action_atwmp_16{margin-block-start:var(--space-4);font-size:var(--text-sm)}
