@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/3d165c286d94e27c-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/e54d16b9f2c4535b-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/7c21074d9bafed1b-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/916860560b9a2bc2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/591e43f23f51e5a5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/97ac91773d3121b2-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Source Serif 4 Fallback";src:local("Times New Roman");ascent-override:87.87%;descent-override:28.41%;line-gap-override:0.00%;size-adjust:117.91%}.__className_25ee46{font-family:"Source Serif 4","Source Serif 4 Fallback";font-style:normal}.__variable_25ee46{--font-source-serif:"Source Serif 4","Source Serif 4 Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_3c557b{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_3c557b{--font-jetbrains-mono:"JetBrains Mono","JetBrains Mono Fallback"}:root{--rs-bg:#faf8f3;--rs-bg-tint:#f3f0e6;--rs-ink:#2b2620;--rs-ink-soft:#5a544a;--rs-ink-faint:#8a8478;--rs-rule:#d9d3c2;--rs-rule-soft:#ebe6d8;--rs-section-rule:#aea597;--rs-section-border:1px solid var(--rs-section-rule);--rs-accent:#a0571c;--rs-body-font:var(--font-source-serif),"Source Serif Pro",Georgia,serif;--rs-display-font:var(--font-source-serif),"Source Serif Pro",Georgia,serif;--rs-body-weight:400;--rs-display-weight:400;--rs-body-size:15px;--rs-leading:1.58;--rs-page-zoom:1;--rs-meta-font:var(--font-jetbrains-mono),"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--rs-gutter-left:48px;--rs-gutter-right:36px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--rs-bg);color:var(--rs-ink)}body{font-family:var(--rs-body-font,Georgia,serif);font-size:var(--rs-body-size,15px);font-weight:var(--rs-body-weight,400);line-height:var(--rs-leading,1.58);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern","liga","onum","onum";font-variant-numeric:oldstyle-nums}::selection{background:var(--rs-accent);color:var(--rs-bg)}a{color:var(--rs-ink);text-decoration:none;border-bottom:.5px solid var(--rs-rule);transition:border-color .15s,color .15s}a:hover{color:var(--rs-accent);border-bottom-color:var(--rs-accent)}.rs-root{zoom:var(--rs-page-zoom);min-height:100vh;min-height:100dvh;padding:max(64px,env(safe-area-inset-top)) max(var(--rs-gutter-right),env(safe-area-inset-right)) max(96px,env(safe-area-inset-bottom)) max(var(--rs-gutter-left),env(safe-area-inset-left));display:grid;grid-template-columns:200px minmax(0,720px);grid-gap:56px;gap:56px;justify-content:center}@media (max-width:900px){:root{--rs-gutter-left:24px;--rs-gutter-right:18px}.rs-root{grid-template-columns:minmax(0,720px);padding:max(40px,env(safe-area-inset-top)) max(var(--rs-gutter-right),env(safe-area-inset-right)) max(64px,env(safe-area-inset-bottom)) max(var(--rs-gutter-left),env(safe-area-inset-left));gap:32px}}.rs-skip{position:absolute;left:-9999px}.rs-skip:focus{left:24px;top:24px;z-index:50;background:var(--rs-bg);padding:6px 10px;border:.5px solid var(--rs-rule)}.rs-nav{position:-webkit-sticky;position:sticky;top:64px;align-self:start;display:flex;flex-direction:column;gap:4px;font-family:var(--rs-meta-font);font-size:12px;letter-spacing:.02em;font-feature-settings:"lnum";font-variant-numeric:lining-nums}.rs-nav a{color:var(--rs-ink-soft);border-bottom:none;padding:2px 0;text-transform:lowercase}.rs-nav a:hover{color:var(--rs-accent)}@media (max-width:900px){.rs-nav{position:static;flex-direction:row;flex-wrap:wrap;gap:14px;border-top:var(--rs-section-border);border-bottom:var(--rs-section-border);padding:10px 0;order:2}}.rs-main{min-width:0;max-width:720px}.rs-header{display:grid;grid-template-columns:104px 1fr;grid-gap:28px;gap:28px;align-items:end;padding-bottom:36px;border-bottom:var(--rs-section-border);margin-bottom:48px}@media (max-width:520px){.rs-header{grid-template-columns:88px 1fr;gap:16px;align-items:start}}@media (max-width:380px){.rs-header{grid-template-columns:1fr;justify-items:start}}.rs-portrait{position:relative;width:104px;height:124px;border:.5px solid var(--rs-rule);overflow:hidden;background:var(--rs-bg-tint)}@media (max-width:520px){.rs-portrait{width:88px;height:105px}}.rs-portrait img,.rs-portrait-img{width:100%;height:100%;object-fit:cover;object-position:50% 28%;display:block}.rs-name{font-family:var(--rs-display-font);font-weight:var(--rs-display-weight,400);font-size:clamp(1.65rem,5vw + .85rem,2.45rem);line-height:1.05;letter-spacing:-.01em;margin:0 0 8px;color:var(--rs-ink)}.rs-tag{margin:0 0 6px;font-size:calc(var(--rs-body-size, 15px) + 1px);color:var(--rs-ink-soft);font-style:italic}.rs-times{font-style:normal;font-weight:500;padding:0 2px}.rs-accent{color:var(--rs-accent)}.rs-loc{margin:0;font-family:var(--rs-meta-font);font-size:12px;color:var(--rs-ink-faint);letter-spacing:.02em}.rs-loc a{border-bottom:.5px dotted var(--rs-rule);color:var(--rs-ink-soft)}.rs-loc a:hover{color:var(--rs-accent);border-bottom-color:var(--rs-accent)}.rs-section{display:grid;grid-template-columns:110px 1fr;grid-gap:28px;gap:28px;padding:36px 0;border-top:var(--rs-section-border)}.rs-section:first-of-type{border-top:0;padding-top:8px}@media (max-width:700px){.rs-section{grid-template-columns:1fr;gap:12px}}.rs-section-label{font-family:var(--rs-meta-font);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--rs-ink-faint);padding-top:6px}.rs-section-body{min-width:0}.rs-prose{margin:0 0 1em;text-wrap:pretty;hanging-punctuation:first;max-width:62ch}.rs-prose:last-child{margin-bottom:0}.rs-now{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-width:62ch}.rs-now-item{text-wrap:pretty}.rs-now-verb{font-style:italic;color:var(--rs-accent)}.rs-now-detail{color:var(--rs-ink)}.rs-now-stamp{margin:18px 0 0;font-family:var(--rs-meta-font);font-size:11px;color:var(--rs-ink-faint);letter-spacing:.04em}.rs-list{list-style:none;margin:0;padding:0;counter-reset:rs-entry;display:flex;flex-direction:column;gap:28px}.rs-entry{counter-increment:rs-entry;position:relative}.rs-entry:before{content:counter(rs-entry,decimal-leading-zero);display:inline;position:absolute;left:-36px;top:6px;font-family:var(--rs-meta-font);font-size:10px;color:var(--rs-ink-faint);letter-spacing:.04em}@media (max-width:700px){.rs-entry:before{display:none}}.rs-entry-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:4px}@media (max-width:520px){.rs-entry-head{flex-direction:column;align-items:flex-start;gap:6px}}.rs-entry-title{margin:0;font-family:var(--rs-display-font);font-weight:500;font-size:calc(var(--rs-body-size, 15px) + 2px);line-height:1.3;letter-spacing:-.005em;color:var(--rs-ink);flex:1 1;min-width:0}.rs-entry-org{font-style:italic;font-weight:400;color:var(--rs-ink-soft)}.rs-entry-meta{font-family:var(--rs-meta-font);font-size:11px;color:var(--rs-ink-faint);letter-spacing:.04em;white-space:nowrap;flex-shrink:0;padding-top:4px}@media (max-width:520px){.rs-entry-meta{white-space:normal;padding-top:0}}.rs-entry-place{font-family:var(--rs-meta-font);font-size:11px;color:var(--rs-ink-faint);letter-spacing:.04em;margin-bottom:10px}.rs-entry-notes{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:4px;max-width:62ch}.rs-entry-notes li{text-wrap:pretty;color:var(--rs-ink)}.rs-entry-notes li::marker{color:var(--rs-ink-soft);font-weight:700}.rs-entry-summary{margin:4px 0 6px;text-wrap:pretty;max-width:62ch}.rs-entry-stack{margin:0;font-family:var(--rs-meta-font);font-size:11px;color:var(--rs-ink-faint);letter-spacing:.04em}.rs-section-dense{padding-bottom:12px}.rs-contact{list-style:none;margin:0 0 24px;padding:0;display:flex;flex-direction:column;gap:6px}.rs-contact-row{display:grid;grid-template-columns:80px 1fr;grid-gap:16px;gap:16px;align-items:baseline}.rs-contact-label{font-family:var(--rs-meta-font);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--rs-ink-faint)}.rs-contact-link{color:var(--rs-ink);border-bottom:.5px solid var(--rs-rule)}.rs-contact-link:hover{color:var(--rs-accent);border-bottom-color:var(--rs-accent)}.rs-foot{margin:32px 0 0;font-family:var(--rs-meta-font);font-size:11px;letter-spacing:.04em;color:var(--rs-ink-faint)}.rs-entry:hover .rs-entry-title{color:var(--rs-ink)}.rs-skills{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.rs-skills-row{display:grid;grid-template-columns:110px 1fr;grid-gap:16px;gap:16px;align-items:baseline}.rs-skills-label{font-family:var(--rs-meta-font);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--rs-ink-faint)}.rs-skills-value{color:var(--rs-ink);text-wrap:pretty}@media (max-width:700px){.rs-skills-row{grid-template-columns:1fr;gap:2px}}.rs-entry-title-with-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px}.rs-entry-title-with-actions .rs-demo-play,.rs-entry-title-with-actions .rs-project-site-link{font-size:inherit}.rs-title-action-svg{width:1cap;height:1cap;display:block}@supports not (width:1cap){.rs-title-action-svg{width:.82em;height:.82em}}.rs-project-site-link{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;margin:0;padding:0;line-height:0;color:var(--rs-accent);border-bottom:none}.rs-project-site-link:hover{color:var(--rs-accent);opacity:.82}.rs-demo-play{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;margin:0;border:none;background:transparent;color:var(--rs-accent);cursor:pointer;line-height:0}.rs-demo-play:hover{opacity:.85}.rs-demo-play:focus-visible{outline:2px solid var(--rs-accent);outline-offset:2px}.rs-modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(43,38,32,.5);display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.rs-modal{position:relative;width:100%;max-width:min(920px,100%);background:var(--rs-bg);border:1px solid var(--rs-section-rule);padding:40px 16px 16px;box-shadow:0 20px 60px rgba(43,38,32,.18)}.rs-modal-close{position:absolute;top:8px;right:10px;margin:0;padding:4px 10px;font-family:var(--rs-meta-font);font-size:18px;line-height:1;color:var(--rs-ink-soft);background:transparent;border:none;cursor:pointer}.rs-modal-close:hover{color:var(--rs-accent)}.rs-modal-video{width:100%;height:auto;display:block;vertical-align:middle}@media print{.rs-modal-backdrop{display:none!important}.rs-nav{display:none}.rs-root{zoom:1;grid-template-columns:1fr;padding:24px;gap:0}}