html:has(.AYEpAq_root){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:var(--lightningcss-light,#fff)var(--lightningcss-dark,#191919);--surface:var(--lightningcss-light,#f7f6f3)var(--lightningcss-dark,#202020);--hover:var(--lightningcss-light,#f1f1ef)var(--lightningcss-dark,#2a2a2a);--line:var(--lightningcss-light,#e9e9e7)var(--lightningcss-dark,#2f2f2f);--line-strong:var(--lightningcss-light,#d3d2ce)var(--lightningcss-dark,#474747);--ink:var(--lightningcss-light,#37352f)var(--lightningcss-dark,#d4d4d4);--ink-2:var(--lightningcss-light,#4b4a45)var(--lightningcss-dark,#bdbdbd);--muted:var(--lightningcss-light,#6f6e69)var(--lightningcss-dark,#9b9b9b);--accent:var(--lightningcss-light,#1a6dc4)var(--lightningcss-dark,#5aa4e6);--accent-hover:var(--lightningcss-light,#165ca8)var(--lightningcss-dark,#7bb6ec);--accent-ink:var(--lightningcss-light,#fff)var(--lightningcss-dark,#191919);--accent-soft:var(--lightningcss-light,#eef4fa)var(--lightningcss-dark,#1b2733);--cover:var(--lightningcss-light,#d7e3ee)var(--lightningcss-dark,#22303c);--code-bg:var(--lightningcss-light,#efeeec)var(--lightningcss-dark,#2c2c2c);--code-ink:var(--lightningcss-light,#b7362f)var(--lightningcss-dark,#ff8f87);--shadow:0 1px 2px var(--lightningcss-light,#0f0f0f0f)var(--lightningcss-dark,#00000080);--shadow-icon:0 2px 8px var(--lightningcss-light,#0f0f0f1f)var(--lightningcss-dark,#00000080);--t0-bg:var(--lightningcss-light,#e9e8e5)var(--lightningcss-dark,#373737);--t0-ink:var(--lightningcss-light,#32302c)var(--lightningcss-dark,#d4d4d4);--t1-bg:var(--lightningcss-light,#eee0da)var(--lightningcss-dark,#4a3228);--t1-ink:var(--lightningcss-light,#442a1e)var(--lightningcss-dark,#ecd3c7);--t2-bg:var(--lightningcss-light,#fadec9)var(--lightningcss-dark,#5c3b23);--t2-ink:var(--lightningcss-light,#49290e)var(--lightningcss-dark,#f5d0b0);--t3-bg:var(--lightningcss-light,#fdecc8)var(--lightningcss-dark,#564328);--t3-ink:var(--lightningcss-light,#402c1b)var(--lightningcss-dark,#f3dfb0);--t4-bg:var(--lightningcss-light,#dbeddb)var(--lightningcss-dark,#243d30);--t4-ink:var(--lightningcss-light,#1c3829)var(--lightningcss-dark,#c3e2c9);--t5-bg:var(--lightningcss-light,#d3e5ef)var(--lightningcss-dark,#143a4e);--t5-ink:var(--lightningcss-light,#183347)var(--lightningcss-dark,#b9dcf0);--t6-bg:var(--lightningcss-light,#e8deee)var(--lightningcss-dark,#3c2d49);--t6-ink:var(--lightningcss-light,#412454)var(--lightningcss-dark,#dccbea);--t7-bg:var(--lightningcss-light,#f5e0e9)var(--lightningcss-dark,#4e2c3c);--t7-ink:var(--lightningcss-light,#4c2337)var(--lightningcss-dark,#f0c9da);--t8-bg:var(--lightningcss-light,#ffe2dd)var(--lightningcss-dark,#522e2a);--t8-ink:var(--lightningcss-light,#5d1715)var(--lightningcss-dark,#f6c9c2);background:var(--bg)}@media (prefers-color-scheme:dark){html:has(.AYEpAq_root){--lightningcss-light: ;--lightningcss-dark:initial}}html[data-color=light]:has(.AYEpAq_root){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-color=dark]:has(.AYEpAq_root){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.AYEpAq_root{--font:ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--col:44rem;--pad:3rem;background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--font);flex-direction:column;font-size:1rem;line-height:1.55;display:flex}.AYEpAq_root a{color:inherit;text-decoration-line:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:.2em;transition:text-decoration-color var(--dur-hover) var(--ease-out-soft), background-color var(--dur-hover) var(--ease-out-soft), color var(--dur-hover) var(--ease-out-soft);text-decoration-thickness:1px}.AYEpAq_root a:hover{text-decoration-color:currentColor}.AYEpAq_root :focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}:where(.AYEpAq_root) h1,:where(.AYEpAq_root) h2,:where(.AYEpAq_root) h3{margin:0;line-height:1.25}:where(.AYEpAq_root) p{margin:0}:where(.AYEpAq_root) ul,:where(.AYEpAq_root) ol{margin:0;padding:0;list-style:none}:where(.AYEpAq_root) dl,:where(.AYEpAq_root) dd,:where(.AYEpAq_root) figure{margin:0}.AYEpAq_muted{color:var(--muted)}.AYEpAq_topbar{z-index:10;background:var(--bg);border-bottom:1px solid var(--line);--header-raise-shadow:none;align-items:center;gap:.75rem;min-height:2.875rem;padding:.375rem .75rem .375rem 1rem;font-size:.875rem;display:flex;position:sticky;top:0}.AYEpAq_crumbs{flex:0 auto;min-width:0}.AYEpAq_crumbs ol,.AYEpAq_crumbs li{align-items:center;min-width:0;display:flex}.AYEpAq_crumbs li:not(:last-child){flex:none}.AYEpAq_crumbs li+li:before{content:"/";color:var(--muted);padding:0 .125rem}.AYEpAq_root .AYEpAq_crumbs a{max-width:18rem;color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:.25rem .375rem;text-decoration:none;display:block;overflow:hidden}.AYEpAq_root .AYEpAq_crumbs a:hover{background:var(--hover);color:var(--ink)}.AYEpAq_root .AYEpAq_crumbs a[aria-current=page]{color:var(--ink);font-weight:500}.AYEpAq_nav{margin-left:auto}.AYEpAq_nav ul{gap:.125rem;display:flex}.AYEpAq_root .AYEpAq_nav a{color:var(--muted);border-radius:4px;align-items:center;padding:.25rem .625rem;text-decoration:none;display:flex}.AYEpAq_root .AYEpAq_nav a:hover,.AYEpAq_root .AYEpAq_nav a[aria-current=page]{background:var(--hover);color:var(--ink)}.AYEpAq_menu{display:none}.AYEpAq_tools{align-items:center;gap:.375rem;display:flex}.AYEpAq_root .AYEpAq_iconButton{width:2rem;height:2rem;color:var(--muted);cursor:pointer;transition:background-color var(--dur-hover) var(--ease-out-soft), color var(--dur-hover) var(--ease-out-soft), translate var(--dur-hover) var(--ease-out-soft);background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:inline-grid}.AYEpAq_root .AYEpAq_iconButton:hover{background:var(--hover);color:var(--ink)}.AYEpAq_root .AYEpAq_iconButton:active{transition-duration:var(--dur-press);translate:0 1px}.AYEpAq_root .AYEpAq_topCv{background:var(--accent);height:2rem;color:var(--accent-ink);white-space:nowrap;border-radius:4px;align-items:center;gap:.375rem;padding:0 .75rem;font-weight:500;text-decoration:none;display:inline-flex}.AYEpAq_root .AYEpAq_topCv:hover{background:var(--accent-hover)}.AYEpAq_main{flex:1;width:100%}.AYEpAq_cover{background:var(--cover);height:clamp(8.5rem,30vh,17rem)}.AYEpAq_page{max-width:calc(var(--col) + 2 * var(--pad));padding:0 var(--pad) 5rem;margin:0 auto}.AYEpAq_subpage{padding-top:4.5rem}.AYEpAq_pageHead{margin-top:-4.375rem;position:relative}.AYEpAq_pageIcon{object-fit:cover;background:var(--surface);width:8.75rem;height:8.75rem;box-shadow:0 0 0 4px var(--bg), var(--shadow-icon);border-radius:18px;display:block}.AYEpAq_pageIconInitials{color:var(--muted);place-items:center;font-size:2.75rem;font-weight:600;display:grid}.AYEpAq_title{letter-spacing:-.02em;margin-top:1.5rem;font-size:clamp(2rem,1.5rem + 2vw,2.625rem);font-weight:700;line-height:1.2}.AYEpAq_subHead .AYEpAq_title{margin-top:0}.AYEpAq_indexHead{margin-bottom:1.75rem}.AYEpAq_lead{color:var(--muted);margin-top:.75rem}.AYEpAq_props{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr);margin-top:1.25rem;padding-bottom:1rem;font-size:.9375rem;display:grid}.AYEpAq_prop{grid-template-columns:10rem minmax(0,1fr);align-items:start;gap:.5rem;display:grid}.AYEpAq_prop dt{color:var(--muted);align-items:center;gap:.5rem;padding:.375rem 0;display:flex}.AYEpAq_prop dt svg{flex:none}.AYEpAq_prop dd{overflow-wrap:anywhere;padding:.375rem 0}.AYEpAq_prop dd a{margin:-.25rem 0;padding:.25rem 0;display:inline-block}.AYEpAq_status{background:var(--t4-bg);color:var(--t4-ink);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:4px;padding:.125rem .5rem}.AYEpAq_status:before{content:"";opacity:.6;vertical-align:.0625rem;background:currentColor;border-radius:50%;width:.5rem;height:.5rem;margin-right:.4375rem;display:inline-block}.AYEpAq_callout{background:var(--accent-soft);border-radius:6px;grid-template-columns:auto minmax(0,1fr);gap:.75rem;margin-top:1.5rem;padding:1rem 1.25rem;font-size:1.0625rem;line-height:1.55;display:grid}.AYEpAq_calloutIcon{color:var(--accent);padding-top:.125rem}.AYEpAq_actions{flex-wrap:wrap;gap:.5rem;margin-top:1.25rem;display:flex}.AYEpAq_root .AYEpAq_button{background:var(--accent);max-width:100%;min-height:2.5rem;color:var(--accent-ink);overflow-wrap:anywhere;transition:background-color var(--dur-hover) var(--ease-out-soft), translate var(--dur-hover) var(--ease-out-soft);border-radius:6px;align-items:center;gap:.5rem;padding:0 1rem;font-size:.9375rem;font-weight:500;text-decoration:none;display:inline-flex}.AYEpAq_root .AYEpAq_button:hover{background:var(--accent-hover)}.AYEpAq_root .AYEpAq_button:active{transition-duration:var(--dur-press);translate:0 1px}.AYEpAq_root .AYEpAq_buttonQuiet{color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-strong);background:0 0}.AYEpAq_root .AYEpAq_buttonQuiet:hover{background:var(--hover)}.AYEpAq_section{margin-top:3.25rem;scroll-margin-top:4rem}.AYEpAq_h2{letter-spacing:-.01em;margin-bottom:.75rem;font-size:1.5rem;font-weight:650}.AYEpAq_sectionHead{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.75rem;display:flex}.AYEpAq_sectionHead .AYEpAq_h2{margin-bottom:0}.AYEpAq_root .AYEpAq_more{min-height:1.5rem;color:var(--muted);white-space:nowrap;align-items:center;gap:.25rem;font-size:.875rem;text-decoration:none;display:inline-flex}.AYEpAq_root .AYEpAq_more:hover{color:var(--ink)}.AYEpAq_root .AYEpAq_more svg{transition:translate var(--dur-base) var(--ease-out)}.AYEpAq_root .AYEpAq_more:hover svg{translate:3px}.AYEpAq_text{gap:.75rem;max-width:70ch;display:grid}.AYEpAq_toggles{grid-template-columns:minmax(0,1fr);gap:.125rem;display:grid}.AYEpAq_toggleHead{cursor:pointer;min-height:2.75rem;transition:background-color var(--dur-hover) var(--ease-out-soft);border-radius:6px;grid-template-columns:1.5rem 1.75rem minmax(0,1fr) auto;align-items:center;gap:.5rem;margin:0 -.375rem;padding:.375rem;list-style:none;display:grid}.AYEpAq_toggleHead::-webkit-details-marker{display:none}.AYEpAq_toggleHead:hover{background:var(--hover)}.AYEpAq_chevron{width:1.5rem;height:1.5rem;color:var(--muted);transition:transform var(--dur-hover) var(--ease-out-soft);place-items:center;display:grid}.AYEpAq_toggle[open] .AYEpAq_chevron{transform:rotate(90deg)}.AYEpAq_mark{border:1px solid var(--line);background:var(--surface);color:var(--muted);letter-spacing:.02em;border-radius:6px;flex:none;place-items:center;font-size:.75rem;font-weight:650;display:grid;overflow:hidden}.AYEpAq_toggleTitle{font-size:1rem;font-weight:400;line-height:1.4}.AYEpAq_roleTitle{font-weight:600}.AYEpAq_roleOrg{color:var(--ink-2)}.AYEpAq_dates{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.875rem}.AYEpAq_toggleBody{grid-template-columns:minmax(0,1fr);gap:.625rem;padding:.25rem 0 1.25rem 4.25rem;font-size:.9375rem;display:grid}.AYEpAq_toggleBody>.AYEpAq_muted{font-size:.875rem}.AYEpAq_bullets{gap:.3125rem;padding-left:1.25rem;list-style:outside;display:grid}.AYEpAq_bullets li::marker{color:var(--muted)}.AYEpAq_tags{flex-wrap:wrap;gap:.375rem;display:flex}.AYEpAq_tag{overflow-wrap:anywhere;border-radius:4px;max-width:100%;padding:.0625rem .5rem;font-size:.8125rem;line-height:1.5;display:inline-block}.AYEpAq_tag strong{font-weight:600}.AYEpAq_t0{background:var(--t0-bg);color:var(--t0-ink)}.AYEpAq_t1{background:var(--t1-bg);color:var(--t1-ink)}.AYEpAq_t2{background:var(--t2-bg);color:var(--t2-ink)}.AYEpAq_t3{background:var(--t3-bg);color:var(--t3-ink)}.AYEpAq_t4{background:var(--t4-bg);color:var(--t4-ink)}.AYEpAq_t5{background:var(--t5-bg);color:var(--t5-ink)}.AYEpAq_t6{background:var(--t6-bg);color:var(--t6-ink)}.AYEpAq_t7{background:var(--t7-bg);color:var(--t7-ink)}.AYEpAq_t8{background:var(--t8-bg);color:var(--t8-ink)}.AYEpAq_gallery{grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:.75rem;display:grid}.AYEpAq_card{border:1px solid var(--line);background:var(--bg);box-shadow:var(--shadow);transition:background-color var(--dur-hover) var(--ease-out-soft);border-radius:8px;flex-direction:column;display:flex;position:relative;overflow:hidden}.AYEpAq_card:has(.AYEpAq_cardLink:hover){background:var(--hover)}.AYEpAq_cardImage{aspect-ratio:16/9;object-fit:cover;border-bottom:1px solid var(--line);width:100%;height:auto}.AYEpAq_cardBody{color:var(--ink-2);grid-template-columns:minmax(0,1fr);align-content:start;gap:.5rem;padding:.875rem 1rem 1rem;font-size:.875rem;display:grid}.AYEpAq_cardTitle{color:var(--ink);font-size:.9375rem;font-weight:600;line-height:1.35}.AYEpAq_root .AYEpAq_cardLink{align-items:center;gap:.25rem;margin:-.125rem 0;padding:.125rem 0;text-decoration:none;display:inline-flex}.AYEpAq_root .AYEpAq_cardLink:after{content:"";position:absolute;inset:0}.AYEpAq_root .AYEpAq_cardLink svg{color:var(--muted);flex:none}.AYEpAq_root .AYEpAq_cardLink2{z-index:1;min-height:2.75rem;color:var(--ink);justify-self:start;align-items:center;gap:.25rem;font-weight:500;display:inline-flex;position:relative}.AYEpAq_root .AYEpAq_cardLink2:hover{color:var(--accent)}.AYEpAq_root .AYEpAq_cardLink2 svg{color:var(--muted);flex:none}.AYEpAq_tableWrap{border-top:1px solid var(--line);overflow-x:auto}.AYEpAq_table{border-collapse:collapse;width:100%;min-width:38rem;font-size:.875rem}.AYEpAq_table th,.AYEpAq_table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.625rem}.AYEpAq_table th+th,.AYEpAq_table td+td{border-left:1px solid var(--line)}.AYEpAq_table th:first-child,.AYEpAq_table td:first-child{padding-left:0}.AYEpAq_table th{color:var(--muted);white-space:nowrap;padding-top:.5rem;padding-bottom:.5rem;font-weight:400}.AYEpAq_table td:first-child,.AYEpAq_num{white-space:nowrap;width:1%}.AYEpAq_num{font-variant-numeric:tabular-nums}.AYEpAq_venue{width:32%;color:var(--ink-2)}.AYEpAq_table td{overflow-wrap:anywhere}.AYEpAq_pubTitle{color:var(--ink);font-weight:500;display:block}.AYEpAq_pubMore{color:var(--muted);margin-top:.25rem;font-size:.8125rem;display:block}.AYEpAq_ident{margin-right:.75rem}.AYEpAq_skills{grid-template-columns:minmax(0,1fr);display:grid}.AYEpAq_skillRow{border-top:1px solid var(--line);grid-template-columns:11rem minmax(0,1fr);gap:.5rem 1rem;padding:.625rem 0;display:grid}.AYEpAq_skillRow:first-child{border-top:0;padding-top:.25rem}.AYEpAq_skillRow dt{color:var(--ink-2);padding-top:.0625rem;font-size:.9375rem;font-weight:500}.AYEpAq_quote{border-left:3px solid var(--ink);padding:.125rem 0 .125rem 1.125rem}.AYEpAq_quote blockquote{max-width:70ch;margin:0;font-size:1.125rem;line-height:1.6}.AYEpAq_quote figcaption{color:var(--ink-2);flex-wrap:wrap;gap:.25rem .75rem;margin-top:.75rem;font-size:.875rem;display:flex}.AYEpAq_pages{grid-template-columns:minmax(0,1fr);display:grid}.AYEpAq_root .AYEpAq_pageRow{border-radius:6px;grid-template-columns:1.25rem minmax(0,1fr) auto;align-items:center;gap:.25rem .625rem;min-height:2.75rem;margin:0 -.375rem;padding:.375rem;text-decoration:none;display:grid}.AYEpAq_root .AYEpAq_pageRow:hover{background:var(--hover)}.AYEpAq_pageRow>svg{color:var(--muted)}.AYEpAq_pageRowTitle{text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:.2em;font-weight:500}.AYEpAq_pageRowMeta{color:var(--muted);white-space:nowrap;font-size:.8125rem}.AYEpAq_root .AYEpAq_pageRowLong{grid-template-columns:1.25rem minmax(0,1fr);align-items:start;padding-block:.75rem}.AYEpAq_pageRowLong>svg{margin-top:.125rem}.AYEpAq_pageRowLong>span{grid-column:2}.AYEpAq_pageRowExcerpt{color:var(--ink-2);font-size:.9375rem}.AYEpAq_pageRowLong .AYEpAq_pageRowMeta{white-space:normal}.AYEpAq_footer{border-top:1px solid var(--line)}.AYEpAq_footerInner{max-width:calc(var(--col) + 2 * var(--pad));padding:1rem var(--pad);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin:0 auto;font-size:.8125rem;display:flex}.AYEpAq_footerLinks{gap:.125rem;margin-right:-.5rem;display:flex}.AYEpAq_root .AYEpAq_footerLinks a{width:2.5rem;height:2.5rem;color:var(--muted);border-radius:6px;place-items:center;display:inline-grid}.AYEpAq_root .AYEpAq_footerLinks a:hover{background:var(--hover);color:var(--ink)}.AYEpAq_toc{border-bottom:1px solid var(--line);margin-top:1.5rem;padding-bottom:1rem;font-size:.9375rem}.AYEpAq_tocTitle{color:var(--muted);margin-bottom:.25rem;font-size:.875rem;font-weight:600}.AYEpAq_toc ol{display:grid}.AYEpAq_root .AYEpAq_toc a{color:var(--ink-2);border-radius:4px;margin:0 -.375rem;padding:.25rem .375rem;display:block}.AYEpAq_root .AYEpAq_toc a:hover{background:var(--hover);color:var(--ink)}.AYEpAq_tocSub{padding-left:1.25rem}.AYEpAq_prose{max-width:70ch;margin-top:2rem;line-height:1.65}.AYEpAq_prose :where(.prose)>*+*{margin-top:1em}.AYEpAq_prose h2{letter-spacing:-.01em;margin-top:2em;scroll-margin-top:4rem;font-size:1.5rem;font-weight:650}.AYEpAq_prose h3{margin-top:1.6em;scroll-margin-top:4rem;font-size:1.1875rem;font-weight:600}.AYEpAq_root .AYEpAq_prose a:hover{color:var(--accent)}.AYEpAq_prose ul,.AYEpAq_prose ol{list-style:revert;padding-left:1.5rem}.AYEpAq_prose li+li{margin-top:.3em}.AYEpAq_prose li::marker{color:var(--muted)}.AYEpAq_prose blockquote{border-left:3px solid var(--ink);margin-left:0;margin-right:0;padding:.125rem 0 .125rem 1.125rem;font-size:1.0625rem}.AYEpAq_prose code{font-family:var(--mono);background:var(--code-bg);color:var(--code-ink);overflow-wrap:anywhere;border-radius:4px;padding:.15em .35em;font-size:.85em}.AYEpAq_prose pre{background:var(--surface);border-radius:6px;padding:1rem 1.25rem;font-size:.875rem;line-height:1.6;overflow-x:auto}.AYEpAq_prose pre code{color:var(--ink);font-size:inherit;overflow-wrap:normal;background:0 0;padding:0}.AYEpAq_prose img{border-radius:6px;height:auto}.AYEpAq_prose table{border-collapse:collapse;max-width:100%;font-size:.875rem;line-height:1.5;display:block;overflow-x:auto}.AYEpAq_prose th,.AYEpAq_prose td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:.5rem .75rem}.AYEpAq_prose th{background:var(--surface);font-weight:600}.AYEpAq_prose hr{border:0;border-top:1px solid var(--line);margin:2em 0}.AYEpAq_sources{border-top:1px solid var(--line);margin-top:3rem;padding-top:1.25rem;font-size:.875rem}.AYEpAq_sourcesTitle{margin-bottom:.625rem;font-size:1.125rem;font-weight:600}.AYEpAq_sources ol{gap:.375rem;display:grid}.AYEpAq_sources li{overflow-wrap:anywhere;scroll-margin-top:4rem}.AYEpAq_root .AYEpAq_sources a{margin:-.125rem 0;padding:.125rem 0;display:inline-block}.AYEpAq_sources li:target{background:var(--accent-soft);border-radius:4px}.AYEpAq_sourceN{color:var(--muted);font-variant-numeric:tabular-nums}.AYEpAq_pager{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:.5rem;margin-top:2.5rem;display:grid}.AYEpAq_root .AYEpAq_pagerLink{border:1px solid var(--line);border-radius:6px;gap:.125rem;padding:.75rem 1rem;text-decoration:none;display:grid}.AYEpAq_root .AYEpAq_pagerLink:hover{background:var(--hover)}.AYEpAq_pagerLabel{color:var(--muted);font-size:.8125rem}.AYEpAq_pagerTitle{font-weight:500}.AYEpAq_root .AYEpAq_pagerAll{place-self:center start;align-items:center;min-height:2.75rem;font-size:.9375rem;display:inline-flex}@media (max-width:720px){.AYEpAq_root{--pad:1.25rem}.AYEpAq_topbar{gap:.25rem;padding:0 .5rem 0 .75rem}.AYEpAq_nav,.AYEpAq_root .AYEpAq_topCv{display:none}.AYEpAq_menu{order:9;display:block}.AYEpAq_tools{margin-left:auto}.AYEpAq_menu summary{min-height:2.75rem;color:var(--ink-2);cursor:pointer;border-radius:4px;align-items:center;gap:.4375rem;padding:0 .625rem;list-style:none;display:flex}.AYEpAq_menu summary::-webkit-details-marker{display:none}.AYEpAq_menu summary:hover,.AYEpAq_menu[open] summary{background:var(--hover);color:var(--ink)}.AYEpAq_menuPanel{background:var(--bg);border-bottom:1px solid var(--line);box-shadow:var(--shadow-icon);max-height:calc(100dvh - 3.5rem);padding:.25rem .5rem .5rem;position:absolute;inset:100% 0 auto;overflow-y:auto}.AYEpAq_root .AYEpAq_menuPanel a{border-radius:6px;align-items:center;min-height:2.75rem;padding:0 .625rem;text-decoration:none;display:flex}.AYEpAq_root .AYEpAq_menuPanel a:hover,.AYEpAq_root .AYEpAq_menuPanel a[aria-current=page]{background:var(--hover)}.AYEpAq_pageHead{margin-top:-3rem}.AYEpAq_pageIcon{border-radius:14px;width:6rem;height:6rem}.AYEpAq_pageIconInitials{font-size:2rem}.AYEpAq_title{margin-top:1.125rem}.AYEpAq_subpage{padding-top:3rem}.AYEpAq_prop{grid-template-columns:7.25rem minmax(0,1fr)}.AYEpAq_toggleBody,.AYEpAq_cardBody{font-size:1rem}.AYEpAq_toggleBody>.AYEpAq_muted{font-size:.9375rem}.AYEpAq_section{margin-top:2.75rem}.AYEpAq_toggleHead{grid-template-columns:1.5rem 1.75rem minmax(0,1fr);align-items:start}.AYEpAq_toggleHead .AYEpAq_chevron,.AYEpAq_toggleHead .AYEpAq_mark{margin-top:.125rem}.AYEpAq_dates{grid-column:3;margin-top:-.25rem}.AYEpAq_toggleBody{padding-left:2rem}.AYEpAq_skillRow{grid-template-columns:minmax(0,1fr)}.AYEpAq_root .AYEpAq_pageRow{grid-template-columns:1.25rem minmax(0,1fr);align-items:start}.AYEpAq_pageRow>svg{margin-top:.125rem}.AYEpAq_pageRowMeta{grid-column:2}}@media (max-width:720px),(pointer:coarse){.AYEpAq_root .AYEpAq_nav a{min-height:2.75rem}.AYEpAq_root .AYEpAq_crumbs a{line-height:2.25rem}.AYEpAq_root .AYEpAq_iconButton{width:2.75rem;height:2.75rem}.AYEpAq_prop dt,.AYEpAq_prop dd{padding:.625rem 0}.AYEpAq_prop dd a{margin:-.6875rem 0;padding:.6875rem 0}.AYEpAq_root .AYEpAq_cardLink{margin:-.75rem 0;padding:.75rem 0}.AYEpAq_sectionHead{align-items:center}.AYEpAq_root .AYEpAq_more{min-height:2.75rem}.AYEpAq_root .AYEpAq_toc a{padding:.6875rem .375rem}.AYEpAq_sources ol{gap:0}.AYEpAq_sources li{padding:.75rem 0}.AYEpAq_root .AYEpAq_sources a{margin:-.75rem 0;padding:.75rem 0}.AYEpAq_root .AYEpAq_button{min-height:2.75rem}.AYEpAq_root .AYEpAq_footerLinks a{width:2.75rem;height:2.75rem}.AYEpAq_root .AYEpAq_topCv{height:2.75rem}}@media (max-width:720px),(max-height:500px) and (pointer:coarse){.AYEpAq_topbar{--header-raise-shadow:0 8px 16px -12px #0000004d}}@media (max-width:60rem){.AYEpAq_crumbs li:nth-child(3){display:none}}@media (max-width:24rem){.AYEpAq_crumbs li:nth-child(n+2){display:none}}@media (prefers-reduced-motion:reduce){.AYEpAq_root *,.AYEpAq_root :before,.AYEpAq_root :after{transition:none!important}}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/34d6927adec7cf56-s.0-gzcol36o4ka.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/11e9730d70f3df61-s.2wb2ytpg7u2m9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/94800d63c463b116-s.2jk0s08k-ddj8.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/7685343155bcb53f-s.3lsd07vci4lkj.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/c0640dc9a2bf5797-s.3cbmyu4ua62et.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(../media/48a1b83fac2e67c0-s.3cf098qak07_k.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/0fb96d1b5bc8468e-s.2jilrsbix2ysy.woff2)format("woff2");unicode-range:U+460-52F,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(../media/1a36275c0a5dae4b-s.0hltrl_6_8g8_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/4516abe641523af1-s.1_oo8puzoz84h.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/8b28f59145c251c9-s.179awq6zthlsb.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/6809fa33fa73d760-s.1_4sbw1y71w5n.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,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(../media/cef856781ea24bd1-s.42r14_4q5vmfj.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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.0%;size-adjust:117.91%}.wm5n8a_className{font-family:"Source Serif 4","Source Serif 4 Fallback"}.wm5n8a_variable{--font-journal:"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(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,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(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,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(../media/70bc3e132a0a741e-s.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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.0%;size-adjust:134.59%}.OzRYHW_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.OzRYHW_variable{--font-journal-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
html:has(.SOPWZa_root){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:var(--lightningcss-light,#fbf9f5)var(--lightningcss-dark,#1d1c1a);--surface:var(--lightningcss-light,#f3f0e9)var(--lightningcss-dark,#262522);--line:var(--lightningcss-light,#ddd8cc)var(--lightningcss-dark,#38362f);--line-strong:var(--lightningcss-light,#bdb7a9)var(--lightningcss-dark,#55524a);--ink:var(--lightningcss-light,#1d1b18)var(--lightningcss-dark,#ebe7de);--ink-2:var(--lightningcss-light,#3e3b35)var(--lightningcss-dark,#cfcabe);--muted:var(--lightningcss-light,#68645b)var(--lightningcss-dark,#a19c8f);--accent:var(--lightningcss-light,#8c2332)var(--lightningcss-dark,#ee9aa3);--accent-ink:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1d1c1a);--accent-soft:var(--lightningcss-light,#f4e6e4)var(--lightningcss-dark,#3a2528);background:var(--bg)}@media (prefers-color-scheme:dark){html:has(.SOPWZa_root){--lightningcss-light: ;--lightningcss-dark:initial}}html[data-color=light]:has(.SOPWZa_root){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-color=dark]:has(.SOPWZa_root){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.SOPWZa_root{--serif:var(--font-journal), "Source Serif 4", Georgia, "Times New Roman", serif;--mono:var(--font-journal-mono), ui-monospace, "SF Mono", Menlo, monospace;--col:42rem;--progress-color:var(--accent);background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--serif);font-optical-sizing:auto;flex-direction:column;font-size:1.0625rem;line-height:1.65;display:flex}.SOPWZa_root ::selection{background:var(--accent-soft);color:var(--ink)}.SOPWZa_root a{color:var(--accent);text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);transition:color var(--dur-hover) var(--ease-out-soft), text-decoration-color var(--dur-hover) var(--ease-out-soft)}.SOPWZa_root a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.SOPWZa_root :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}:where(.SOPWZa_root) h1,:where(.SOPWZa_root) h2,:where(.SOPWZa_root) h3{margin:0;line-height:1.2}:where(.SOPWZa_root) p,:where(.SOPWZa_root) dl,:where(.SOPWZa_root) dd,:where(.SOPWZa_root) figure{margin:0}:where(.SOPWZa_root) ul,:where(.SOPWZa_root) ol{margin:0;padding:0;list-style:none}.SOPWZa_muted{color:var(--muted)}.SOPWZa_header{--header-raise-shadow:0 0 0 transparent;background:var(--bg)}.SOPWZa_phoneMenu{display:none}.SOPWZa_headerInner{flex-wrap:wrap;align-items:center;gap:0 1.5rem;max-width:56rem;margin:0 auto;padding:1.25rem 1.25rem 0;display:flex}.SOPWZa_root .SOPWZa_brand{color:var(--ink);letter-spacing:-.005em;white-space:nowrap;margin-right:auto;font-size:1.125rem;font-weight:600;text-decoration:none}.SOPWZa_nav{order:2}.SOPWZa_nav ul{flex-wrap:wrap;gap:0 1.25rem;display:flex}.SOPWZa_root .SOPWZa_nav a{min-height:2.25rem;color:var(--ink-2);align-items:center;font-size:.9375rem;text-decoration-color:#0000;display:inline-flex}.SOPWZa_root .SOPWZa_nav a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.SOPWZa_root .SOPWZa_nav a[aria-current]{color:var(--ink);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.SOPWZa_headerTools{order:3;align-items:center;display:flex}.SOPWZa_root .SOPWZa_button{border:1px solid var(--accent);background:var(--accent);min-height:2.75rem;color:var(--accent-ink);transition:background-color var(--dur-hover) var(--ease-out-soft), border-color var(--dur-hover) var(--ease-out-soft), color var(--dur-hover) var(--ease-out-soft);border-radius:3px;align-items:center;gap:.5rem;padding:0 1.125rem;font-size:.9375rem;font-weight:600;text-decoration:none;display:inline-flex}.SOPWZa_root .SOPWZa_button:hover{background:color-mix(in srgb, var(--accent) 86%, var(--ink));border-color:color-mix(in srgb, var(--accent) 86%, var(--ink))}.SOPWZa_root .SOPWZa_button:active{transition-duration:var(--dur-press);translate:0 1px}.SOPWZa_root .SOPWZa_buttonGhost{color:var(--ink);border-color:var(--line-strong);background:0 0}.SOPWZa_root .SOPWZa_buttonGhost:hover{background:var(--surface);border-color:var(--ink-2)}.SOPWZa_root .SOPWZa_iconButton{border:1px solid var(--line-strong);width:2.75rem;height:2.75rem;color:var(--ink-2);cursor:pointer;transition:background-color var(--dur-hover) var(--ease-out-soft), color var(--dur-hover) var(--ease-out-soft);background:0 0;border-radius:3px;place-items:center;display:inline-grid}.SOPWZa_root .SOPWZa_iconButton:hover{background:var(--surface);color:var(--ink)}.SOPWZa_headerTools .SOPWZa_iconButton{border-color:#0000;width:2.25rem;height:2.25rem}.SOPWZa_main{width:100%;max-width:calc(var(--col) + 2.5rem);flex:1;margin:0 auto;padding:0 1.25rem 3rem}.SOPWZa_main:has(.SOPWZa_article){max-width:none;padding-inline:0}.SOPWZa_intro{padding-top:4rem}.SOPWZa_introHead{align-items:center;gap:1.25rem;display:flex}.SOPWZa_portrait{object-fit:cover;background:var(--surface);width:5rem;height:5rem;box-shadow:0 0 0 1px var(--line);border-radius:50%;flex:none}.SOPWZa_name{letter-spacing:-.02em;font-size:clamp(2rem,3.5vw + 1rem,2.75rem);font-weight:600;line-height:1.1}.SOPWZa_title{color:var(--ink-2);margin-top:.375rem;font-style:italic;line-height:1.4}.SOPWZa_lead{max-width:34em;margin-top:1.75rem;font-size:1.3125rem;line-height:1.5}.SOPWZa_meta{color:var(--muted);font-family:var(--mono);align-items:flex-start;gap:.5rem;margin-top:1.25rem;font-size:.8125rem;line-height:1.55;display:flex}.SOPWZa_meta svg{flex:none;margin-top:.1rem}.SOPWZa_actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.75rem;display:flex}.SOPWZa_section{border-top:1px solid var(--line);margin-top:4.5rem;padding-top:1.25rem;scroll-margin-top:1rem}.SOPWZa_sectionHead{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.SOPWZa_sectionTitle{letter-spacing:-.01em;margin-bottom:1.5rem;font-size:1.5rem;font-weight:600}.SOPWZa_root .SOPWZa_moreLink{align-items:center;gap:.25rem;min-height:1.5rem;font-size:.9375rem;display:inline-flex}.SOPWZa_root .SOPWZa_moreLink svg{transition:translate var(--dur-base) var(--ease-out)}.SOPWZa_about{max-width:66ch;color:var(--ink-2);grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.SOPWZa_dated{grid-template-columns:minmax(0,1fr);gap:2.25rem;display:grid}.SOPWZa_entry{grid-template-columns:8.25rem minmax(0,1fr);gap:0 1.5rem;display:grid}.SOPWZa_when{color:var(--ink-2);font-family:var(--mono);font-variant-numeric:tabular-nums;align-content:start;padding-top:.25rem;font-size:.8125rem;line-height:1.5;display:grid}.SOPWZa_whenSub{color:var(--muted)}.SOPWZa_entryBody>*+*{margin-top:.3125rem}.SOPWZa_itemTitle{font-size:1.0625rem;font-weight:600;line-height:1.35}.SOPWZa_itemText{color:var(--ink-2)}.SOPWZa_itemMuted{color:var(--muted);font-size:.9375rem}.SOPWZa_entryBody .SOPWZa_itemTitle,.SOPWZa_project .SOPWZa_itemTitle{overflow-wrap:anywhere}.SOPWZa_root .SOPWZa_itemTitle a{color:var(--ink);-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong)}.SOPWZa_root .SOPWZa_itemTitle a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.SOPWZa_itemTitle a svg{vertical-align:-1px;color:var(--accent);margin-left:.25rem;display:inline-block}.SOPWZa_bullets{color:var(--ink-2);gap:.375rem;margin-top:.625rem;font-size:.9375rem;display:grid}.SOPWZa_entryBody .SOPWZa_bullets{margin-top:.625rem}.SOPWZa_bullets li{padding-left:1.125rem;position:relative}.SOPWZa_bullets li:before{content:"–";color:var(--muted);position:absolute;left:0}.SOPWZa_keywords{color:var(--muted);font-family:var(--mono);font-size:.8125rem;line-height:1.7;display:block}.SOPWZa_entryBody .SOPWZa_keywords,.SOPWZa_project .SOPWZa_keywords{margin-top:.75rem}.SOPWZa_keywords li{display:inline}.SOPWZa_keywords li:not(:last-child):after{content:" · ";white-space:pre-wrap}.SOPWZa_details{margin-top:.375rem;font-size:.875rem}.SOPWZa_details summary{min-height:2rem;color:var(--ink-2);font-family:var(--mono);cursor:pointer;text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);transition:color var(--dur-hover) var(--ease-out-soft), text-decoration-color var(--dur-hover) var(--ease-out-soft);align-items:center;gap:.5rem;font-size:.8125rem;list-style:none;display:inline-flex}.SOPWZa_details summary:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.SOPWZa_details summary::-webkit-details-marker{display:none}.SOPWZa_details summary:before{content:"+";text-align:center;width:1ch;color:var(--accent);display:inline-block}.SOPWZa_details[open] summary:before{content:"−"}.SOPWZa_details dl{border:1px solid var(--line);background:var(--surface);font-family:var(--mono);border-radius:3px;gap:.25rem;margin-top:.25rem;padding:.75rem 1rem;font-size:.8125rem;display:grid}.SOPWZa_details dl div{grid-template-columns:5.5rem minmax(0,1fr);gap:.75rem;display:grid}.SOPWZa_details dt{color:var(--muted)}.SOPWZa_details dd{overflow-wrap:anywhere}.SOPWZa_projects{grid-template-columns:minmax(0,1fr);gap:2.5rem;display:grid}.SOPWZa_project{display:block}.SOPWZa_project>*+*{margin-top:.375rem}.SOPWZa_figure{margin-bottom:.875rem}.SOPWZa_project .SOPWZa_figure+*{margin-top:0}.SOPWZa_root .SOPWZa_projectLink2{box-sizing:border-box;align-items:center;gap:.25rem;min-height:2.75rem;margin-block:-.3125rem -.6875rem;padding-block:.6875rem;display:inline-flex}.SOPWZa_projectLink2 svg{flex:none}.SOPWZa_figureImage{aspect-ratio:16/9;object-fit:cover;border:1px solid var(--line);background:var(--surface);border-radius:3px;width:100%;height:auto}.SOPWZa_figure figcaption{color:var(--muted);font-family:var(--mono);margin-top:.5rem;font-size:.8125rem;line-height:1.5}.SOPWZa_skills{border-collapse:collapse;width:100%;font-size:.9375rem}.SOPWZa_skills th,.SOPWZa_skills td{border-top:1px solid var(--line);vertical-align:top;text-align:left;padding:.6875rem 0}.SOPWZa_skills tr:first-child th,.SOPWZa_skills tr:first-child td{border-top:0;padding-top:0}.SOPWZa_skills th{width:11.5rem;padding-right:1.5rem;font-weight:600}.SOPWZa_skills td{color:var(--ink-2)}.SOPWZa_inline{display:block}.SOPWZa_inline li{display:inline}.SOPWZa_inline li:not(:last-child):after{content:", "}.SOPWZa_inlineSemi li:not(:last-child):after{content:"; "}.SOPWZa_quote blockquote{max-width:34em;margin:0;font-size:1.25rem;font-style:italic;line-height:1.55}.SOPWZa_quote figcaption{color:var(--ink-2);margin-top:1rem;font-size:.9375rem}.SOPWZa_noteList{border-top:1px solid var(--line);display:grid}.SOPWZa_noteList li{border-bottom:1px solid var(--line)}.SOPWZa_root .SOPWZa_noteRow{color:var(--ink);grid-template-columns:7.25rem minmax(0,1fr) auto;grid-template-areas:"date title time"".excerpt."".tags.";align-items:baseline;gap:.1875rem 1.5rem;padding:.875rem 0;text-decoration:none;display:grid}.SOPWZa_noteDate,.SOPWZa_noteTime,.SOPWZa_noteTags{color:var(--muted);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.8125rem}.SOPWZa_noteDate{grid-area:date}.SOPWZa_noteTime{white-space:nowrap;grid-area:time}.SOPWZa_noteTitle{grid-area:title;font-weight:600;line-height:1.35}.SOPWZa_noteTitle>span{text-underline-offset:.2em;max-width:100%;transition:color var(--dur-hover) var(--ease-out-soft), text-decoration-color var(--dur-hover) var(--ease-out-soft);-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px;display:inline-block}.SOPWZa_root .SOPWZa_noteRow:hover .SOPWZa_noteTitle>span{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.SOPWZa_noteExcerpt{color:var(--ink-2);grid-area:excerpt;font-size:.9375rem}.SOPWZa_noteTags{grid-area:tags}.SOPWZa_footer{border-top:1px solid var(--line);margin-top:2rem}.SOPWZa_footerInner{max-width:56rem;color:var(--muted);font-family:var(--mono);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin:0 auto;padding:1.25rem 1.25rem 1.75rem;font-size:.8125rem;display:flex}.SOPWZa_footerLinks{gap:.25rem;margin-left:-.5rem;display:flex}.SOPWZa_root .SOPWZa_footerLinks a{width:2.5rem;height:2.5rem;color:var(--ink-2);border-radius:3px;place-items:center;text-decoration:none;display:inline-grid}.SOPWZa_root .SOPWZa_footerLinks a:hover{background:var(--surface);color:var(--accent)}.SOPWZa_pageHead{padding:4rem 0 1rem}.SOPWZa_pageTitle{letter-spacing:-.02em;font-size:clamp(2rem,3.5vw + 1rem,2.75rem);font-weight:600}.SOPWZa_pageLead{max-width:36rem;color:var(--ink-2);margin-top:.75rem}.SOPWZa_yearGroup{margin-top:2.5rem}.SOPWZa_yearTitle{color:var(--ink-2);font-family:var(--mono);margin-bottom:.75rem;font-size:.9375rem;font-weight:500}.SOPWZa_article,.SOPWZa_pagerWrap{--measure:70ch;--bleed:3.5rem;font-size:1.125rem;line-height:1.7}.SOPWZa_article{grid-template-columns:minmax(1.25rem, 1fr) minmax(0, var(--measure)) minmax(1.25rem, 1fr);padding-top:3rem;display:grid}.SOPWZa_article>*{grid-column:2}.SOPWZa_back{font-family:var(--mono);font-size:.8125rem}.SOPWZa_root .SOPWZa_back a{min-height:1.5rem;color:var(--muted);align-items:center;text-decoration-color:#0000;display:inline-flex}.SOPWZa_root .SOPWZa_back a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.SOPWZa_articleTitle{letter-spacing:-.02em;margin-top:1.25rem;font-size:clamp(2rem,3.5vw + 1rem,2.875rem);font-weight:600;line-height:1.12}.SOPWZa_byline{border-top:1px solid var(--line);flex-wrap:wrap;gap:.75rem 2rem;margin-top:1.75rem;padding-top:1rem;font-size:1rem;line-height:1.4;display:flex}.SOPWZa_byline div{gap:.125rem;display:grid}.SOPWZa_byline dt{color:var(--muted);font-family:var(--mono);font-size:.8125rem}.SOPWZa_byline dd{color:var(--ink)}.SOPWZa_toc{border-block:1px solid var(--line);margin-top:2rem;padding:1rem 0;font-size:.9375rem;line-height:1.4}.SOPWZa_tocTitle{color:var(--muted);font-family:var(--mono);margin-bottom:.375rem;font-size:.8125rem}.SOPWZa_toc ol{gap:.0625rem;display:grid}.SOPWZa_tocSub{padding-left:1rem}.SOPWZa_root .SOPWZa_toc a{min-height:2.75rem;color:var(--ink-2);align-items:center;text-decoration-color:#0000;display:flex}.SOPWZa_root .SOPWZa_toc a:hover,.SOPWZa_root .SOPWZa_toc a[aria-current=true]{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.SOPWZa_body{margin-top:2.5rem}.SOPWZa_body .prose>*+*{margin-top:1.2em}.SOPWZa_body .prose>p:first-child{font-size:1.1em;line-height:1.6}:is(.SOPWZa_body .prose p,.SOPWZa_body .prose li){hanging-punctuation:first}.SOPWZa_body .prose h2{letter-spacing:-.01em;margin-top:2.5em;scroll-margin-top:1.5rem;font-size:1.625rem;font-weight:600}.SOPWZa_body .prose h3{margin-top:2em;scroll-margin-top:1.5rem;font-size:1.25rem;font-style:italic;font-weight:600}:is(.SOPWZa_body .prose h2+*,.SOPWZa_body .prose h3+*){margin-top:.75em}:is(.SOPWZa_body .prose ul,.SOPWZa_body .prose ol){list-style:revert;padding-left:1.5rem}.SOPWZa_body .prose li+li{margin-top:.4em}.SOPWZa_body .prose li::marker{color:var(--muted)}.SOPWZa_body .prose strong{font-weight:650}.SOPWZa_body .prose blockquote{border-left:1px solid var(--line-strong);color:var(--ink-2);margin-inline:0;padding:.125rem 0 .125rem 1.25rem;font-style:italic}.SOPWZa_body .prose blockquote>*+*{margin-top:.75em}.SOPWZa_body .prose hr{border:0;border-top:1px solid var(--line-strong);width:4rem;margin:3em auto}.SOPWZa_body .prose .cite{font-family:var(--mono);vertical-align:super;padding:0 .1em;font-size:.72em;line-height:0;text-decoration:none}.SOPWZa_body .prose .cite:hover{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.SOPWZa_body .prose code{border:1px solid var(--line);background:var(--surface);font-family:var(--mono);overflow-wrap:anywhere;border-radius:3px;padding:.1em .3em;font-size:.8em}.SOPWZa_body .prose pre{border:1px solid var(--line);background:var(--surface);color:var(--ink);font-family:var(--mono);tab-size:4;border-radius:4px;margin-block:1.75em;padding:1rem 1.25rem;font-size:.8125rem;line-height:1.65;overflow-x:auto}.SOPWZa_body .prose pre code{font-size:inherit;overflow-wrap:normal;background:0 0;border:0;padding:0}.SOPWZa_body .prose pre:has(>code[class*=language-]):before{color:var(--muted);margin-bottom:.625rem;font-size:.8125rem;display:block}.SOPWZa_body .prose pre:has(>code[class~=language-python]):before{content:"python"}.SOPWZa_body .prose pre:has(>code[class~=language-bash]):before{content:"bash"}.SOPWZa_body .prose pre:has(>code[class~=language-sh]):before{content:"sh"}.SOPWZa_body .prose pre:has(>code[class~=language-shell]):before{content:"shell"}.SOPWZa_body .prose pre:has(>code[class~=language-js]):before{content:"javascript"}.SOPWZa_body .prose pre:has(>code[class~=language-javascript]):before{content:"javascript"}.SOPWZa_body .prose pre:has(>code[class~=language-ts]):before{content:"typescript"}.SOPWZa_body .prose pre:has(>code[class~=language-typescript]):before{content:"typescript"}.SOPWZa_body .prose pre:has(>code[class~=language-tsx]):before{content:"tsx"}.SOPWZa_body .prose pre:has(>code[class~=language-json]):before{content:"json"}.SOPWZa_body .prose pre:has(>code[class~=language-yaml]):before{content:"yaml"}.SOPWZa_body .prose pre:has(>code[class~=language-sql]):before{content:"sql"}.SOPWZa_body .prose pre:has(>code[class~=language-cpp]):before{content:"c++"}.SOPWZa_body .prose pre:has(>code[class~=language-c]):before{content:"c"}.SOPWZa_body .prose pre:has(>code[class~=language-cuda]):before{content:"cuda"}.SOPWZa_body .prose pre:has(>code[class~=language-rust]):before{content:"rust"}.SOPWZa_body .prose pre:has(>code[class~=language-go]):before{content:"go"}.SOPWZa_body .prose img{border:1px solid var(--line);border-radius:3px;width:100%;height:auto;display:block}.SOPWZa_body .prose>p:has(>img:only-child){margin-block:2em}.SOPWZa_body .prose .table-scroll{margin-block:1.75em;overflow-x:auto}.SOPWZa_body .prose table{border-collapse:collapse;border-top:1.5px solid var(--ink-2);border-bottom:1.5px solid var(--ink-2);font-variant-numeric:tabular-nums;width:100%;font-size:.9375rem;line-height:1.45}:is(.SOPWZa_body .prose th,.SOPWZa_body .prose td){text-align:left;vertical-align:top;padding:.5rem 1rem .5rem 0}:is(.SOPWZa_body .prose tbody td,.SOPWZa_body .prose tbody th){border-top:1px solid var(--line)}.SOPWZa_body .prose thead th{border-bottom:1px solid var(--ink-2);font-family:var(--mono);color:var(--ink-2);font-size:.8125rem;font-weight:500}.SOPWZa_sources{margin-top:4rem;font-size:.9375rem;line-height:1.55}.SOPWZa_sources:before{content:"";border-top:1px solid var(--ink-2);width:6rem;margin-bottom:1.25rem;display:block}.SOPWZa_sourcesTitle{margin-bottom:.75rem;scroll-margin-top:1.5rem;font-size:1.125rem;font-weight:600}.SOPWZa_sources ol{gap:.375rem;display:grid}.SOPWZa_sources li{text-indent:-2.5rem;overflow-wrap:anywhere;transition:background-color var(--dur-base) var(--ease-out-soft);border-radius:3px;margin-left:-.25rem;padding:.125rem .25rem .125rem 2.5rem;scroll-margin-top:2rem}.SOPWZa_sources li:target{background:var(--accent-soft)}.SOPWZa_root .SOPWZa_sources a{text-indent:0;margin:-.125rem 0;padding:.125rem 0;display:inline-block}.SOPWZa_sourceN{text-indent:0;width:2.5rem;color:var(--muted);font-family:var(--mono);font-size:.8125rem;display:inline-block}.SOPWZa_sourceHost{color:var(--muted);font-family:var(--mono);margin-left:.375rem;font-size:.8125rem}.SOPWZa_pagerWrap{width:min(100% - 2.5rem, var(--measure));margin:3.5rem auto 0}.SOPWZa_pager{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.5rem;padding-top:1.25rem;font-size:1rem;line-height:1.4;display:grid}.SOPWZa_root .SOPWZa_pagerLink{min-height:2.75rem;color:var(--ink);align-content:start;gap:.25rem;text-decoration:none;display:grid}.SOPWZa_pagerLabel{color:var(--muted);font-family:var(--mono);font-size:.8125rem}.SOPWZa_pagerTitle{text-underline-offset:.2em;transition:color var(--dur-hover) var(--ease-out-soft), text-decoration-color var(--dur-hover) var(--ease-out-soft);font-weight:600;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px}.SOPWZa_root .SOPWZa_pagerLink:hover .SOPWZa_pagerTitle{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.SOPWZa_root .SOPWZa_pagerAll{grid-column:1/-1;align-items:center;min-height:2.75rem;font-size:.9375rem;display:inline-flex}@media (min-width:820px){.SOPWZa_body .prose pre{margin-inline:calc(var(--bleed) * -1)}.SOPWZa_body .prose .table-scroll{margin-inline:calc(var(--bleed) * -1)}.SOPWZa_body .prose>p:has(>img:only-child){margin-inline:calc(var(--bleed) * -1)}}@media (min-width:1280px){.SOPWZa_articleToc .SOPWZa_toc{width:13rem;max-height:calc(100dvh - 4rem);margin:0 calc(var(--bleed) + 1rem) 0 0;border-block:0;border-right:1px solid var(--line);grid-area:2/1;place-self:start end;padding:.25rem 1.25rem .25rem 0;font-size:.875rem;position:sticky;top:2rem;overflow-y:auto}.SOPWZa_articleToc .SOPWZa_body{grid-row:2}.SOPWZa_root .SOPWZa_toc a{min-height:0;padding:.25rem 0}}@media (max-width:720px){.SOPWZa_intro{padding-top:2.5rem}.SOPWZa_section{margin-top:3.5rem}}@media (max-width:720px),(pointer:coarse) and (max-height:500px){.SOPWZa_root{--bar-h:3.5rem}.SOPWZa_header{--header-raise-shadow:initial;z-index:20;position:sticky;top:0}.SOPWZa_headerInner{height:var(--bar-h);flex-wrap:nowrap;gap:0 .25rem;padding:0 1rem}.SOPWZa_root .SOPWZa_brand{min-width:0;font-size:clamp(1rem,4.6vw,1.125rem)}.SOPWZa_nav{display:none}.SOPWZa_headerTools{order:2}.SOPWZa_root .SOPWZa_headerTools .SOPWZa_iconButton{margin-right:0}.SOPWZa_phoneMenu{order:3;display:block}.SOPWZa_root .SOPWZa_menuSummary{border:1px solid var(--line-strong);min-height:2.75rem;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:3px;align-items:center;gap:.4rem;padding:0 .75rem;font-size:.9375rem;font-weight:600;list-style:none;display:inline-flex}.SOPWZa_menuSummary::-webkit-details-marker{display:none}.SOPWZa_phoneMenu[open] .SOPWZa_menuSummary{background:var(--surface)}.SOPWZa_menuPanel{max-height:calc(100dvh - var(--bar-h));overscroll-behavior:contain;background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line-strong);padding:.25rem 1rem .5rem;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 12px 24px -16px #00000059}.SOPWZa_root .SOPWZa_menuList a{min-height:2.75rem;color:var(--ink);align-items:center;padding:0 .25rem;font-size:1.0625rem;text-decoration:none;display:flex}.SOPWZa_menuList li+li{border-top:1px solid var(--line)}.SOPWZa_root .SOPWZa_menuList a[aria-current]{color:var(--accent);font-weight:600}.SOPWZa_section,.SOPWZa_yearGroup{scroll-margin-top:calc(var(--bar-h) + .5rem)}.SOPWZa_sourcesTitle,.SOPWZa_sources li{scroll-margin-top:calc(var(--bar-h) + 1rem)}.SOPWZa_body .prose h2{scroll-margin-top:calc(var(--bar-h) + 1rem)}.SOPWZa_body .prose h3{scroll-margin-top:calc(var(--bar-h) + 1rem)}}@media (max-width:720px),(pointer:coarse){.SOPWZa_nav ul{gap:0;margin-left:-.5rem}.SOPWZa_root .SOPWZa_nav a{min-height:2.75rem;padding:0 .5rem}.SOPWZa_root .SOPWZa_brand{align-items:center;min-height:2.75rem;display:inline-flex}.SOPWZa_headerTools .SOPWZa_iconButton{width:2.75rem;height:2.75rem;margin-right:-.5rem}.SOPWZa_root .SOPWZa_itemTitle a{margin:-.6875rem 0;padding:.6875rem 0;display:inline-block}.SOPWZa_root .SOPWZa_moreLink,.SOPWZa_root .SOPWZa_back a{min-height:2.75rem}.SOPWZa_root .SOPWZa_footerLinks a{width:2.75rem;height:2.75rem}.SOPWZa_sources ol{gap:0}.SOPWZa_sources li{padding-block:.75rem}.SOPWZa_root .SOPWZa_sources a{margin:-.75rem 0;padding:.75rem 0}.SOPWZa_details summary{min-height:2.75rem}}@media (max-width:640px){.SOPWZa_entry{grid-template-columns:minmax(0,1fr);gap:.25rem}.SOPWZa_when{flex-wrap:wrap;gap:0 .75rem;padding-top:0;display:flex}.SOPWZa_root .SOPWZa_noteRow{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"date time""title title""excerpt excerpt""tags tags";padding:.75rem 0}.SOPWZa_skills th{width:7rem;padding-right:1rem}.SOPWZa_pager{grid-template-columns:minmax(0,1fr)}.SOPWZa_article{padding-top:2rem}}@media (prefers-reduced-motion:reduce){.SOPWZa_root *,.SOPWZa_root :before{transition:none!important}}@media (hover:hover) and (pointer:fine){.SOPWZa_root .SOPWZa_moreLink:hover svg{translate:3px}}@keyframes SOPWZa_figureRise{0%{opacity:.2;translate:0 20px}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.SOPWZa_body .prose>p:has(>img:only-child){animation:linear both SOPWZa_figureRise;animation-timeline:view();animation-range:entry entry 55%}}}@media print{.SOPWZa_body .prose>p:has(>img:only-child){animation:none!important}}
html:has(.fkkAmG_root){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:var(--lightningcss-light,#f7f6f2)var(--lightningcss-dark,#0a0e18);--surface:var(--lightningcss-light,#efeee8)var(--lightningcss-dark,#121828);--line:var(--lightningcss-light,#dcdad2)var(--lightningcss-dark,#232b40);--line-strong:var(--lightningcss-light,#bdbab0)var(--lightningcss-dark,#3a4560);--ink:var(--lightningcss-light,#12151a)var(--lightningcss-dark,#ecebe5);--ink-2:var(--lightningcss-light,#363b44)var(--lightningcss-dark,#c4c8d2);--muted:var(--lightningcss-light,#5a606b)var(--lightningcss-dark,#9aa3b8);--accent:var(--lightningcss-light,#2441b0)var(--lightningcss-dark,#9bb2ff);--accent-ink:var(--lightningcss-light,#fff)var(--lightningcss-dark,#0a0e18);--art:var(--lightningcss-light,#12151a24)var(--lightningcss-dark,#ecebe521);--art-accent:var(--lightningcss-light,#2441b073)var(--lightningcss-dark,#9bb2ff66);background:var(--bg)}@media (prefers-color-scheme:dark){html:has(.fkkAmG_root){--lightningcss-light: ;--lightningcss-dark:initial}}html[data-color=light]:has(.fkkAmG_root){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-color=dark]:has(.fkkAmG_root){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.fkkAmG_root{--sans:var(--font-editorial), ui-sans-serif, system-ui, sans-serif;--serif:var(--font-editorial-display), "Iowan Old Style", Georgia, serif;--mono:var(--font-editorial-mono), ui-monospace, "SF Mono", Menlo, monospace;--wide:72rem;--gutter:clamp(1.25rem, 4vw, 2.5rem);--frame:calc(var(--wide) + 2 * var(--gutter));--progress-color:var(--accent);background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--sans);font-synthesis:none;flex-direction:column;font-size:1.0625rem;line-height:1.65;display:flex}.fkkAmG_root :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px;transition:none}.fkkAmG_root .reading-progress{height:2px}:where(.fkkAmG_root) h1,:where(.fkkAmG_root) h2,:where(.fkkAmG_root) h3{font-family:var(--serif);margin:0;font-weight:400;line-height:1.1}:where(.fkkAmG_root) p,:where(.fkkAmG_root) figure,:where(.fkkAmG_root) blockquote,:where(.fkkAmG_root) dl,:where(.fkkAmG_root) dd{margin:0}:where(.fkkAmG_root) ul,:where(.fkkAmG_root) ol{margin:0;padding:0;list-style:none}.fkkAmG_muted{color:var(--muted)}.fkkAmG_mono{font-family:var(--mono);letter-spacing:.01em;font-size:.8125rem;line-height:1.5}.fkkAmG_ulink,.fkkAmG_prose a:not([href^=\#source-]),.fkkAmG_sources a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:.22em;overflow-wrap:anywhere;text-decoration-thickness:1px}@media (hover:hover) and (pointer:fine){.fkkAmG_ulink,.fkkAmG_prose a:not([href^=\#source-]),.fkkAmG_sources a{background:linear-gradient(var(--accent), var(--accent)) 0 100% / 0 1px no-repeat, linear-gradient(var(--line-strong), var(--line-strong)) 0 100% / 100% 1px no-repeat;transition:background-size var(--dur-base) var(--ease-out);padding-bottom:.08em;text-decoration:none}.fkkAmG_ulink:hover,.fkkAmG_prose a:not([href^=\#source-]):hover,.fkkAmG_sources a:hover,.fkkAmG_project:hover .fkkAmG_ulink{background-size:100% 1px,100% 1px}}.fkkAmG_ulink:focus-visible,.fkkAmG_prose a:focus-visible,.fkkAmG_sources a:focus-visible{background-size:100% 1px,100% 1px}.fkkAmG_root :is(.fkkAmG_more,.fkkAmG_backLink,.fkkAmG_footerLinks a,.fkkAmG_contactLinks a,.fkkAmG_pagerAll){padding-block:.8125rem}@media (hover:hover) and (pointer:fine){.fkkAmG_root :is(.fkkAmG_more,.fkkAmG_backLink,.fkkAmG_footerLinks a,.fkkAmG_contactLinks a,.fkkAmG_pagerAll){background-origin:content-box}}.fkkAmG_arrow,.fkkAmG_arrowBack{transition:translate var(--dur-base) var(--ease-out);flex:none}.fkkAmG_arrowBack{rotate:180deg}@media (hover:hover) and (pointer:fine){.fkkAmG_more:hover .fkkAmG_arrow{translate:3px}.fkkAmG_project:hover .fkkAmG_arrow{translate:2px -2px}.fkkAmG_backLink:hover .fkkAmG_arrowBack{translate:-3px}}.fkkAmG_header{z-index:40;background:var(--bg);border-bottom:1px solid var(--line);--header-raise-shadow:0 0 0 transparent;position:sticky;top:0}.fkkAmG_headerInner{max-width:var(--frame);padding:.5rem var(--gutter);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.5rem;margin:0 auto;display:grid}.fkkAmG_root .fkkAmG_brand{min-height:2.75rem;font-family:var(--serif);color:var(--ink);white-space:nowrap;align-items:center;font-size:1.625rem;line-height:1;text-decoration:none;display:inline-flex}.fkkAmG_navWide{justify-self:center}.fkkAmG_nav ul{flex-wrap:wrap;gap:0 1.5rem;display:flex}.fkkAmG_root .fkkAmG_navLink{min-height:2.75rem;font-family:var(--mono);color:var(--ink-2);background:linear-gradient(var(--accent), var(--accent)) 0 calc(100% - .625rem) / 0 1px no-repeat;transition:background-size var(--dur-base) var(--ease-out), color var(--dur-hover) var(--ease-out-soft);align-items:center;font-size:.8125rem;text-decoration:none;display:inline-flex}.fkkAmG_root .fkkAmG_navLink[aria-current],.fkkAmG_root .fkkAmG_navLink:focus-visible{color:var(--ink);background-size:100% 1px}@media (hover:hover) and (pointer:fine){.fkkAmG_root .fkkAmG_navLink:hover{color:var(--ink);background-size:100% 1px}}.fkkAmG_tools{align-items:center;gap:.75rem;display:flex}.fkkAmG_root .fkkAmG_cvLink{border:1px solid var(--line-strong);min-height:2.75rem;font-family:var(--mono);color:var(--ink);transition:background-color var(--dur-hover) var(--ease-out-soft), border-color var(--dur-hover) var(--ease-out-soft);border-radius:2px;align-items:center;padding:0 1rem;font-size:.8125rem;text-decoration:none;display:inline-flex}.fkkAmG_root .fkkAmG_cvLink:hover{border-color:var(--ink);background:var(--surface)}.fkkAmG_root .fkkAmG_iconButton{border:1px solid var(--line-strong);width:2.75rem;height:2.75rem;color:var(--ink);cursor:pointer;transition:background-color var(--dur-hover) var(--ease-out-soft), border-color var(--dur-hover) var(--ease-out-soft);background:0 0;border-radius:50%;place-items:center;display:inline-grid}.fkkAmG_root .fkkAmG_iconButton:hover{border-color:var(--ink);background:var(--surface)}.fkkAmG_root .fkkAmG_iconButton:active{transition-duration:var(--dur-press);translate:0 1px}.fkkAmG_menu{display:none}.fkkAmG_menu summary{border:1px solid var(--line-strong);min-height:2.75rem;font-family:var(--mono);cursor:pointer;border-radius:2px;align-items:center;gap:.5rem;padding:0 1rem;font-size:.8125rem;list-style:none;display:inline-flex}.fkkAmG_menu summary::-webkit-details-marker{display:none}.fkkAmG_menu[open] summary{border-color:var(--ink);background:var(--surface)}.fkkAmG_menu:not([open]) .fkkAmG_menuPanel{display:none}.fkkAmG_menuPanel{max-height:calc(100dvh - var(--bar-h,3.3125rem));overscroll-behavior:contain;padding:.5rem var(--gutter) 1.25rem;background:var(--bg);border-bottom:1px solid var(--line);position:absolute;inset:100% 0 auto;overflow-y:auto}.fkkAmG_menuPanel .fkkAmG_nav ul{flex-direction:column;gap:0}.fkkAmG_menuPanel .fkkAmG_nav li+li{border-top:1px solid var(--line)}.fkkAmG_root .fkkAmG_menuPanel .fkkAmG_navLink{background-position:0 calc(100% - .75rem);background-size:0 1px;min-height:3rem;font-size:.9375rem;display:flex}.fkkAmG_root .fkkAmG_menuPanel .fkkAmG_navLink[aria-current]{background-size:2.5rem 1px}.fkkAmG_main{flex:1;width:100%;padding-bottom:5rem}.fkkAmG_main>:not(.fkkAmG_intro,.reading-progress){width:min(100% - 2 * var(--gutter), var(--wide));margin-inline:auto}.fkkAmG_intro{position:relative;overflow:clip}.fkkAmG_art{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.fkkAmG_artLines{fill:none;stroke:var(--art);stroke-width:1px}.fkkAmG_artAccent{fill:none;stroke:var(--art-accent);stroke-width:1px}.fkkAmG_artAccent circle[r="4"]{fill:var(--art-accent);stroke:none}@keyframes fkkAmG_draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:no-preference){.fkkAmG_art [data-draw]{stroke-dasharray:1;animation:fkkAmG_draw 1.8s var(--ease-out) both;animation-delay:calc(.2s + var(--n,0) * .14s)}}@media print{.fkkAmG_art [data-draw]{animation:none}}.fkkAmG_introInner{max-width:var(--frame);padding:clamp(3rem, 7vw, 6.5rem) var(--gutter) clamp(3.5rem, 7vw, 6rem);grid-template-columns:minmax(0,1fr);gap:3rem;margin:0 auto;display:grid;position:relative}.fkkAmG_headlineBlock{display:block}.fkkAmG_kicker{font-family:var(--mono);letter-spacing:.01em;color:var(--ink-2);align-items:center;gap:.75rem;margin-bottom:1.75rem;font-size:.8125rem;line-height:1.5;display:flex}.fkkAmG_kicker:before{content:"";background:var(--ink-2);flex:none;width:2rem;height:1px}.fkkAmG_headline{max-width:17em;font-family:var(--serif);letter-spacing:-.015em;text-wrap:balance;font-size:clamp(2.375rem,1rem + 4.4vw,4.5rem);line-height:1.04;display:block}.fkkAmG_italic{font-style:italic}.fkkAmG_introMeta{font-family:var(--mono);color:var(--ink-2);align-items:center;gap:.5rem;margin-top:2rem;font-size:.8125rem;display:flex}.fkkAmG_introMeta svg{flex:none}.fkkAmG_actions{flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;display:flex}.fkkAmG_root .fkkAmG_button{border:1px solid var(--ink);background:var(--ink);min-height:3rem;color:var(--bg);font-family:var(--mono);transition:background-color var(--dur-hover) var(--ease-out-soft), border-color var(--dur-hover) var(--ease-out-soft), color var(--dur-hover) var(--ease-out-soft);border-radius:2px;align-items:center;gap:.625rem;padding:0 1.375rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.fkkAmG_root .fkkAmG_button:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.fkkAmG_root .fkkAmG_button:active{transition-duration:var(--dur-press);translate:0 1px}.fkkAmG_root .fkkAmG_buttonGhost{color:var(--ink);border-color:var(--line-strong);background:0 0}.fkkAmG_root .fkkAmG_buttonGhost:hover{background:var(--surface);border-color:var(--ink);color:var(--ink)}.fkkAmG_introSide{justify-items:start;gap:1rem;display:grid}.fkkAmG_portrait{aspect-ratio:8/9;object-fit:cover;background:var(--surface);border-radius:.25rem .25rem 4.5rem;width:min(100%,15rem);height:auto}.fkkAmG_social{gap:.5rem;display:flex}@media (min-width:64rem){.fkkAmG_introInner{grid-template-columns:minmax(0,1fr) 20rem;align-items:end;gap:4rem}.fkkAmG_introSide{justify-items:start}.fkkAmG_portrait{width:100%}}.fkkAmG_section{border-top:1px solid var(--line);padding:clamp(3rem,7vw,6rem) 0;scroll-margin-top:4rem}@keyframes fkkAmG_ruleDraw{0%{background-size:0 1px}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.fkkAmG_section{background:linear-gradient(var(--line), var(--line)) 0 0 / 100% 1px no-repeat border-box;border-top-color:#0000;animation:linear both fkkAmG_ruleDraw;animation-timeline:view();animation-range:entry entry 25%}}}.fkkAmG_sectionHead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;margin-bottom:clamp(1.75rem,4vw,3rem);display:flex}.fkkAmG_h2{letter-spacing:-.01em;font-size:clamp(2.25rem,1.5rem + 2.6vw,3.5rem)}.fkkAmG_sectionLabel{color:var(--muted)}.fkkAmG_root .fkkAmG_more{color:var(--ink);align-items:center;gap:.5rem;display:inline-flex}.fkkAmG_about{gap:2.25rem;display:grid}.fkkAmG_lede{max-width:50rem;font-family:var(--serif);font-size:clamp(1.5rem,1rem + 1.6vw,2.25rem);line-height:1.25}.fkkAmG_aboutBody{columns:2 21rem;color:var(--ink-2);column-gap:3rem}.fkkAmG_aboutBody p{break-inside:avoid-column}.fkkAmG_aboutBody p+p{margin-top:1rem}.fkkAmG_entries>li{border-top:1px solid var(--line);grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:1rem 2.5rem;padding:2rem 0;display:grid}.fkkAmG_rail{color:var(--ink-2);font-variant-numeric:tabular-nums;align-content:start;gap:.25rem;display:grid}.fkkAmG_roleTitle{font-size:clamp(1.5rem,1.1rem + 1.2vw,2rem);line-height:1.15}.fkkAmG_org{font-family:var(--serif);color:var(--ink-2);align-items:center;gap:.75rem;margin-top:.625rem;font-size:1.25rem;font-style:italic;line-height:1.3;display:flex}.fkkAmG_mark{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);font-family:var(--mono);border-radius:3px;flex:none;place-items:center;font-size:.75rem;font-style:normal;font-weight:500;display:grid;overflow:hidden}.fkkAmG_entrySummary{max-width:62ch;color:var(--ink-2);margin-top:1rem}.fkkAmG_bullets{max-width:64ch;color:var(--ink-2);gap:.5rem;margin-top:1rem;font-size:1rem;line-height:1.6;display:grid}.fkkAmG_bullets li{padding-left:1.25rem;position:relative}.fkkAmG_bullets li:before{content:"–";content:"–" / "";color:var(--muted);position:absolute;left:0}.fkkAmG_tags{color:var(--muted);flex-wrap:wrap;margin-top:1.25rem;display:flex}.fkkAmG_tags li+li:before{content:"/";content:"/" / "";color:var(--line-strong);margin:0 .625rem}.fkkAmG_projects{grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));gap:3rem;display:grid}.fkkAmG_project{border-top:1px solid var(--line);align-content:start;gap:.75rem;padding-top:1.5rem;display:grid;position:relative}.fkkAmG_projectImage{aspect-ratio:3/2;background:var(--surface);border-radius:.25rem .25rem 2.5rem;margin-bottom:.5rem;overflow:hidden}.fkkAmG_projectImage img{object-fit:cover;width:100%;height:100%;transition:scale var(--dur-base) var(--ease-out)}@media (hover:hover) and (pointer:fine){.fkkAmG_project:hover .fkkAmG_projectImage img{scale:1.03}}.fkkAmG_projectTitle{font-size:1.875rem;line-height:1.12}.fkkAmG_root .fkkAmG_cover{text-decoration-color:#0000}.fkkAmG_cover:after{content:"";position:absolute;inset:0}.fkkAmG_cover .fkkAmG_arrow{vertical-align:-.05em;margin-left:.375rem;display:inline-block}.fkkAmG_projectText{max-width:60ch;color:var(--ink-2)}.fkkAmG_root .fkkAmG_projectLink2{z-index:1;color:var(--ink);justify-self:start;align-items:center;gap:.5rem;margin-block:-.5rem;padding-block:.6875rem;display:inline-flex;position:relative}@media (hover:hover) and (pointer:fine){.fkkAmG_root .fkkAmG_projectLink2{background-origin:content-box}.fkkAmG_project:hover .fkkAmG_projectLink2:not(:hover,:focus-visible){background-size:0 1px,100% 1px}.fkkAmG_project:hover .fkkAmG_projectLink2:not(:hover) .fkkAmG_arrow{translate:none}.fkkAmG_projectLink2:hover .fkkAmG_arrow{translate:2px -2px}}.fkkAmG_pubs>li{border-top:1px solid var(--line);grid-template-columns:4.5rem minmax(0,1fr);gap:1rem;padding:1.75rem 0;display:grid}.fkkAmG_pubNo{font-family:var(--serif);color:var(--muted);font-variant-numeric:tabular-nums;font-size:2rem;line-height:1.1}.fkkAmG_pubBody{overflow-wrap:anywhere;gap:.5rem;display:grid}.fkkAmG_pubBody>.fkkAmG_mono{color:var(--muted)}.fkkAmG_pubTitle{max-width:34ch;font-size:clamp(1.5rem,1.1rem + 1.1vw,1.875rem);line-height:1.18}.fkkAmG_pubLine{max-width:64ch;color:var(--ink-2)}.fkkAmG_root .fkkAmG_idents{color:var(--ink-2);flex-wrap:wrap;gap:.25rem 1.5rem;margin-top:.25rem;display:flex}.fkkAmG_skills{grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:2.5rem;display:grid}.fkkAmG_skillGroup{border-top:1px solid var(--line);padding-top:1rem}.fkkAmG_skillGroup dt{font-family:var(--serif);margin-bottom:.75rem;font-size:1.5rem;line-height:1.15}.fkkAmG_skillGroup li{color:var(--ink-2);padding:.125rem 0;font-size:1rem;line-height:1.5}.fkkAmG_quote{max-width:56rem}.fkkAmG_quote p{font-family:var(--serif);text-wrap:balance;font-size:clamp(1.75rem,1.1rem + 2.4vw,3rem);font-style:italic;line-height:1.17}.fkkAmG_quote figcaption{color:var(--muted);margin-top:1.5rem}.fkkAmG_noteList>li{border-top:1px solid var(--line)}.fkkAmG_noteList{border-bottom:1px solid var(--line)}.fkkAmG_root .fkkAmG_noteRow{color:inherit;grid-template-columns:9rem minmax(0,1fr) auto;align-items:baseline;gap:.5rem 2rem;padding:1.5rem 0;text-decoration:none;display:grid}.fkkAmG_noteDate,.fkkAmG_noteTime{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.fkkAmG_noteTime{text-align:right}.fkkAmG_noteMain{gap:.5rem;display:grid}.fkkAmG_noteTitle{font-family:var(--serif);font-size:clamp(1.5rem,1.1rem + 1.2vw,2rem);line-height:1.15}.fkkAmG_noteTitle>span{background:linear-gradient(var(--accent), var(--accent)) 0 100% / 0 1px no-repeat;transition:background-size var(--dur-base) var(--ease-out);padding-bottom:.05em}.fkkAmG_noteRow:focus-visible .fkkAmG_noteTitle>span{background-size:100% 1px}@media (hover:hover) and (pointer:fine){.fkkAmG_noteRow:hover .fkkAmG_noteTitle>span{background-size:100% 1px}}.fkkAmG_noteExcerpt{max-width:62ch;color:var(--ink-2);font-size:1rem}.fkkAmG_noteTags,.fkkAmG_empty{color:var(--muted)}.fkkAmG_contact{padding-bottom:1rem}.fkkAmG_contactLead{max-width:36rem;color:var(--ink-2);font-size:1.125rem}.fkkAmG_root .fkkAmG_contactMail{font-family:var(--serif);letter-spacing:-.01em;margin-top:1rem;font-size:clamp(1.75rem,.6rem + 6.4vw,4.5rem);line-height:1.12;display:inline-block}.fkkAmG_contactNote{margin-top:1.25rem}.fkkAmG_contactLinks{flex-wrap:wrap;gap:0 2.5rem;margin-top:2rem;display:flex}.fkkAmG_contactLinks a{align-items:center;gap:.75rem;display:inline-flex}.fkkAmG_footer{border-top:1px solid var(--line)}.fkkAmG_footerInner{max-width:var(--frame);padding:1rem var(--gutter);font-family:var(--mono);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 2rem;margin:0 auto;font-size:.8125rem;display:flex}.fkkAmG_footerLinks{flex-wrap:wrap;gap:0 1.5rem;display:flex}.fkkAmG_footerLinks a{justify-content:center;align-items:center;min-width:1.5rem;display:inline-flex}.fkkAmG_pageHead{padding:clamp(3rem,7vw,6rem) 0 clamp(2rem,4vw,3rem)}.fkkAmG_pageHeadRow{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;display:flex}.fkkAmG_pageTitle{letter-spacing:-.015em;font-size:clamp(3rem,1.5rem + 5.5vw,5.5rem);line-height:1}.fkkAmG_pageLead{max-width:40rem;color:var(--ink-2);margin-top:1.25rem}.fkkAmG_article{padding-top:clamp(2rem,5vw,4rem)}.fkkAmG_articleHead{max-width:60rem;margin-bottom:clamp(2rem,5vw,4rem)}.fkkAmG_back{font-family:var(--mono);font-size:.8125rem}.fkkAmG_root .fkkAmG_backLink{align-items:center;gap:.5rem;display:inline-flex}.fkkAmG_articleMeta{color:var(--muted);flex-wrap:wrap;gap:.25rem 1.5rem;margin:1rem 0 1.25rem;display:flex}.fkkAmG_articleTitle{letter-spacing:-.015em;font-size:clamp(2.5rem,1.2rem + 4.8vw,5rem);line-height:1.03}.fkkAmG_standfirst{max-width:42rem;font-family:var(--serif);color:var(--ink-2);margin-top:1.5rem;font-size:clamp(1.375rem,1rem + 1.2vw,1.875rem);font-style:italic;line-height:1.3}.fkkAmG_articleGrid{grid-template-columns:minmax(0,1fr);display:grid}.fkkAmG_toc{border-block:1px solid var(--line);margin-bottom:2.5rem;padding:1.25rem 0;font-size:.9375rem}.fkkAmG_tocTitle{font-family:var(--mono);color:var(--muted);margin-bottom:.5rem;font-size:.8125rem}.fkkAmG_toc ol{gap:0;display:grid}.fkkAmG_toc a{color:var(--ink-2);transition:color var(--dur-hover) var(--ease-out-soft);padding:.375rem 0;line-height:1.35;text-decoration:none;display:block}.fkkAmG_toc a:hover{color:var(--accent)}.fkkAmG_tocSub{padding-left:1rem}@media (min-width:70rem){.fkkAmG_articleGrid{grid-template-columns:13rem minmax(0,42rem) minmax(0,1fr);column-gap:3rem}.fkkAmG_toc{border:0;grid-area:1/1/span 2;align-self:start;margin:0;padding:0;position:sticky;top:5.5rem}.fkkAmG_prose{grid-column:2/-1}.fkkAmG_sources{grid-column:2}}.fkkAmG_prose>.prose{color:var(--ink);grid-template-columns:minmax(0,42rem);font-size:1.125rem;line-height:1.7;display:grid}@media (min-width:70rem){.fkkAmG_prose>.prose{grid-template-columns:minmax(0,42rem) minmax(0,1fr)}}.fkkAmG_prose>.prose>*{grid-column:1;min-width:0}.fkkAmG_prose>.prose>*+*{margin-top:1.25em}.fkkAmG_prose>.prose>:is(pre,.table-scroll,p:has(>img:only-child)){grid-column:1/-1}.fkkAmG_prose>.prose>p:first-child:not(:has(>img)){display:flow-root}.fkkAmG_prose>.prose>p:first-child:not(:has(>img)):first-letter{float:left;font-family:var(--serif);color:var(--ink);margin:.04em .12em 0 -.02em;font-size:5.6em;line-height:.74}.fkkAmG_prose h2{margin-top:2.25em;scroll-margin-top:5.5rem;font-size:clamp(1.875rem,1.4rem + 1.4vw,2.5rem);line-height:1.1}.fkkAmG_prose h3{margin-top:1.9em;scroll-margin-top:5.5rem;font-size:1.625rem;line-height:1.15}.fkkAmG_prose ul,.fkkAmG_prose ol{list-style:revert;padding-left:1.5rem}.fkkAmG_prose li::marker{color:var(--muted)}.fkkAmG_prose li+li{margin-top:.4em}.fkkAmG_prose blockquote{border-top:1px solid var(--line-strong);font-family:var(--serif);padding-top:1rem;font-size:1.625rem;font-style:italic;line-height:1.35}.fkkAmG_prose code{font-family:var(--mono);background:var(--surface);overflow-wrap:anywhere;border-radius:3px;padding:.1em .35em;font-size:.85em}.fkkAmG_prose pre{border:1px solid var(--line);background:var(--surface);border-radius:2px;padding:1.25rem 1.5rem;font-size:.875rem;line-height:1.6;overflow-x:auto}.fkkAmG_prose pre code{overflow-wrap:normal;background:0 0;padding:0;font-size:max(.75rem,.85em)}.fkkAmG_prose img{border-radius:.25rem .25rem 2.5rem;width:100%;height:auto}.fkkAmG_prose .table-scroll{overflow-x:auto}.fkkAmG_prose table{border-collapse:collapse;width:100%;font-size:.9375rem;line-height:1.5}.fkkAmG_prose th{font-family:var(--mono);color:var(--ink-2);border-bottom:1px solid var(--ink);font-size:.8125rem;font-weight:500}.fkkAmG_prose th,.fkkAmG_prose td{text-align:left;vertical-align:top;padding:.625rem 1rem .625rem 0}.fkkAmG_prose td{border-bottom:1px solid var(--line)}.fkkAmG_prose hr{border:0;border-top:1px solid var(--line-strong)}.fkkAmG_prose a[href^=\#source-]{color:var(--accent);font-family:var(--mono);vertical-align:.35em;padding:0 .1em;font-size:.75em;text-decoration:none}.fkkAmG_prose a[href^=\#source-]:hover{text-decoration:underline}.fkkAmG_sources{border-top:1px solid var(--line-strong);margin-top:4rem;padding-top:1.5rem;font-size:1rem}.fkkAmG_sourcesTitle{margin-bottom:1rem;font-size:1.875rem}.fkkAmG_sources ol{gap:.625rem;display:grid}.fkkAmG_sources li{overflow-wrap:anywhere;color:var(--ink-2);scroll-margin-top:5.5rem}.fkkAmG_root .fkkAmG_sources a{margin-block:-.125rem;padding-block:.125rem;display:inline-block}@media (hover:hover) and (pointer:fine){.fkkAmG_root .fkkAmG_sources a{background-origin:content-box}}.fkkAmG_sources li:target{background:var(--surface)}.fkkAmG_sourceN{font-family:var(--mono);color:var(--muted);font-size:.8125rem}.fkkAmG_pager{border-top:1px solid var(--line-strong);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:0 3rem;margin-top:5rem;display:grid}.fkkAmG_root .fkkAmG_pagerLink{color:inherit;align-content:start;gap:.5rem;padding:1.5rem 0 2rem;text-decoration:none;display:grid}.fkkAmG_pagerLabel{color:var(--muted)}.fkkAmG_pagerTitle{font-family:var(--serif);background:linear-gradient(var(--accent), var(--accent)) 0 100% / 0 1px no-repeat;transition:background-size var(--dur-base) var(--ease-out);justify-self:start;font-size:1.75rem;line-height:1.15}.fkkAmG_pagerLink:focus-visible .fkkAmG_pagerTitle{background-size:100% 1px}@media (hover:hover) and (pointer:fine){.fkkAmG_pagerLink:hover .fkkAmG_pagerTitle{background-size:100% 1px}}.fkkAmG_root .fkkAmG_pagerAll{font-family:var(--mono);place-self:center start;font-size:.8125rem}@media (max-width:63.99rem){.fkkAmG_art{opacity:.55}.fkkAmG_navWide{display:none}.fkkAmG_menu{display:block}.fkkAmG_root{--bar-h:3.3125rem}.fkkAmG_header{--header-raise-shadow:initial}.fkkAmG_headerInner{grid-template-columns:minmax(0,1fr) auto;gap:.75rem;padding-block:.25rem}.fkkAmG_root .fkkAmG_brand{font-size:clamp(1.3125rem,6.2vw,1.625rem)}.fkkAmG_tools{gap:.5rem}.fkkAmG_section{scroll-margin-top:calc(var(--bar-h) + .5rem)}.fkkAmG_prose h2,.fkkAmG_prose h3,.fkkAmG_sources li{scroll-margin-top:calc(var(--bar-h) + 1rem)}}@media (max-width:47.99rem){.fkkAmG_root .fkkAmG_cvLink{display:none}.fkkAmG_entries>li{grid-template-columns:minmax(0,1fr)}.fkkAmG_rail{flex-wrap:wrap;grid-auto-flow:column;justify-content:start;gap:.25rem 1.25rem}.fkkAmG_pubs>li{grid-template-columns:3rem minmax(0,1fr)}.fkkAmG_root .fkkAmG_noteRow{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"date time""main main";gap:.375rem 1rem;padding:1.25rem 0}.fkkAmG_noteDate{grid-area:date}.fkkAmG_noteTime{grid-area:time}.fkkAmG_noteTitle,.fkkAmG_noteMain{grid-area:main}.fkkAmG_footerInner{padding-block:.5rem}}@media (max-width:47.99rem),(pointer:coarse){.fkkAmG_footerLinks{gap:0;margin-left:-.75rem}.fkkAmG_root .fkkAmG_footerLinks a{min-width:2.75rem;padding-inline:.5rem}.fkkAmG_root .fkkAmG_contactMail{margin-top:.625rem;padding-block:.375rem}.fkkAmG_toc a{padding-block:.75rem}.fkkAmG_projectTitle a{margin-block:-.375rem;padding-block:.375rem}.fkkAmG_sources ol{gap:0}.fkkAmG_sources li{padding-block:.75rem}.fkkAmG_root .fkkAmG_sources a{margin-block:-.75rem;padding-block:.75rem}}
@font-face{font-family:Hanken Grotesk;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/14d4d63e19d804c8-s.0s5t8-c2jtqkg.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/f9796a0a2d7214e5-s.1x1y7jiuqp3re.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/c6c1a0748af42b20-s.2uuywlasdmkpq.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/cc2b2ba9b11d3453-s.3mm4bn5tfabgi.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/91bd2e40df15814e-s.19s5evoqhirey.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/a63431c4ac64ea8b-s.386o_ri1vb0yv.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8b4ed0a90d903ab5-s.44dak0sams9f0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/c47649aa31f9e140-s.3lxpqujs87tck.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk Fallback;src:local(Arial);ascent-override:99.07%;descent-override:30.02%;line-gap-override:0.0%;size-adjust:100.94%}._3xj8RW_className{font-family:Hanken Grotesk,Hanken Grotesk Fallback}._3xj8RW_variable{--font-editorial:"Hanken Grotesk", "Hanken Grotesk Fallback"}
@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/fc0a7394b875fa43-s.2ytmazkdrg7t9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/7ebf22b5a21034f8-s.3j3877k49yy0l.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ccf27e5a7366fb23-s.1icgra-w5i50b.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e41d5df559864f9e-s.1g73gv09-xcb6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}._3prn0q_className{font-family:Instrument Serif,Instrument Serif Fallback;font-weight:400}._3prn0q_variable{--font-editorial-display:"Instrument Serif", "Instrument Serif Fallback"}
@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b12e986493c137cf-s.2njitm-prmz2_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/36363bfb06833f56-s.38hmww4cj4vme.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b2fa3ef4ca165ab4-s.12_ml6bnugnre.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a73419dd2ba2d841-s.2yee423r7ahpo.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono Fallback;src:local(Arial);ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.0%;size-adjust:134.59%}.-fD2Nq_className{font-family:DM Mono,DM Mono Fallback;font-style:normal}.-fD2Nq_variable{--font-editorial-mono:"DM Mono", "DM Mono Fallback"}
@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400 900;font-display:swap;src:url(../media/481eac7be1c268b7-s.1shg3f9j2jih-.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400 900;font-display:swap;src:url(../media/31a9145ccb84606d-s.3j3x29wbycqkn.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Schibsted Grotesk Fallback;src:local(Arial);ascent-override:93.46%;descent-override:24.67%;line-gap-override:0.0%;size-adjust:104.49%}.D6VTLW_className{font-family:Schibsted Grotesk,Schibsted Grotesk Fallback;font-style:normal}.D6VTLW_variable{--font-glow:"Schibsted Grotesk", "Schibsted Grotesk Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,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(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,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(../media/70bc3e132a0a741e-s.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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.0%;size-adjust:134.59%}.DOA8sq_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.DOA8sq_variable{--font-glow-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
html:has(.MvA3XW_root){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--lightningcss-light,#f4f7fb)var(--lightningcss-dark,#0b1220);--surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#111a2e);--hover:var(--lightningcss-light,#fffc)var(--lightningcss-dark,#78bee60f);--hover-line:var(--lightningcss-light,#d9e1ec)var(--lightningcss-dark,#22304b);--line:var(--lightningcss-light,#d9e1ec)var(--lightningcss-dark,#22304b);--ink:var(--lightningcss-light,#0f1a2b)var(--lightningcss-dark,#e6edf7);--ink-2:var(--lightningcss-light,#243349)var(--lightningcss-dark,#c1ccdd);--muted:var(--lightningcss-light,#36465f)var(--lightningcss-dark,#aab6ca);--accent:var(--lightningcss-light,#0b6a86)var(--lightningcss-dark,#5dd6f0);--accent-text:var(--lightningcss-light,#0a4a5f)var(--lightningcss-dark,#94e8f9);--accent-soft:var(--lightningcss-light,#d8eef5)var(--lightningcss-dark,#12303d);--accent-ink:var(--lightningcss-light,#fff)var(--lightningcss-dark,#06222b);--glow-color:var(--lightningcss-light,#0e749014)var(--lightningcss-dark,#5dd6f01f);--shadow-color:var(--lightningcss-light,#0f172a1a)var(--lightningcss-dark,#0206108c);background:var(--bg)}html[data-color=light]:has(.MvA3XW_root){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-color=dark]:has(.MvA3XW_root){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.MvA3XW_root{--font:var(--font-glow), ui-sans-serif, system-ui, sans-serif;--mono:var(--font-glow-mono), ui-monospace, "SF Mono", Menlo, monospace;--aside:8.5rem;--dim:.8;--progress-color:var(--accent);isolation:isolate;background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--font);font-size:1rem;line-height:1.65;position:relative}.MvA3XW_root a{color:var(--accent-text);text-underline-offset:.18em;text-decoration-thickness:1px}.MvA3XW_root :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}:where(.MvA3XW_root) h1,:where(.MvA3XW_root) h2,:where(.MvA3XW_root) h3{margin:0;line-height:1.2}:where(.MvA3XW_root) p,:where(.MvA3XW_root) dl,:where(.MvA3XW_root) dd{margin:0}:where(.MvA3XW_root) ul,:where(.MvA3XW_root) ol{margin:0;padding:0;list-style:none}:where(.MvA3XW_root) svg{flex:none}.MvA3XW_muted{color:var(--muted)}.MvA3XW_mono{font-family:var(--mono);letter-spacing:-.01em;font-size:.8125rem}.MvA3XW_wrapAny{overflow-wrap:anywhere}.MvA3XW_glow{display:none}@media (min-width:64rem){.MvA3XW_glow{z-index:-1;pointer-events:none;background:radial-gradient(600px circle at var(--mx,-999px) var(--my,-999px), var(--glow-color), transparent 80%);display:block;position:fixed;inset:0}}@media print{.MvA3XW_glow{display:none}}.MvA3XW_layout{grid-template-columns:minmax(0,1fr);max-width:80rem;margin:0 auto;padding-inline:1.25rem;display:grid}.MvA3XW_side{flex-direction:column;padding:3.5rem 0 .5rem;display:flex}.MvA3XW_content{flex-direction:column;min-width:0;display:flex}.MvA3XW_main{flex:1}.MvA3XW_intro{flex-direction:column;align-items:flex-start;display:flex}.MvA3XW_portrait{object-fit:cover;background:var(--surface);width:4.5rem;height:4.5rem;box-shadow:0 0 0 1px var(--line), 0 8px 24px -10px var(--shadow-color);border-radius:50%;flex:none;margin-bottom:1.25rem}.MvA3XW_name{overflow-wrap:anywhere;text-wrap:balance;letter-spacing:-.035em;min-width:0;max-width:100%;color:var(--ink);font-size:clamp(2.5rem,3.2vw + 1rem,3.75rem);font-weight:700;line-height:1.04}.MvA3XW_root .MvA3XW_name a{color:inherit;text-decoration:none}.MvA3XW_title{max-width:26rem;color:var(--ink);margin-top:.875rem;font-size:1.1875rem;font-weight:550;line-height:1.4}.MvA3XW_lead{max-width:24rem;color:var(--ink-2);margin-top:.875rem}.MvA3XW_facts{max-width:26rem;color:var(--muted);gap:.375rem;margin-top:1.125rem;font-size:.9375rem;display:grid}.MvA3XW_facts li{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.5rem;display:grid}.MvA3XW_facts svg{color:var(--accent);margin-top:.25em}.MvA3XW_menu{margin-top:1.5rem}.MvA3XW_menu>ul{display:none}.MvA3XW_root .MvA3XW_menu a{min-height:2rem;color:var(--muted);transition:color var(--dur-hover) var(--ease-out-soft);align-items:center;gap:1rem;padding:.25rem 0;font-size:.9375rem;font-weight:600;text-decoration:none;display:flex}.MvA3XW_menu a:before{content:"";width:1.5rem;height:1px;transition:width var(--dur-base) var(--ease-out), background-color var(--dur-hover) var(--ease-out-soft);background:currentColor;flex:none}.MvA3XW_root .MvA3XW_menu a[aria-current]{color:var(--ink)}.MvA3XW_root .MvA3XW_menu a[aria-current]:before{background:var(--accent);width:4rem}@media (hover:hover) and (pointer:fine){.MvA3XW_root .MvA3XW_menu a:hover{color:var(--ink)}.MvA3XW_root .MvA3XW_menu a:hover:before{width:2.75rem}.MvA3XW_root .MvA3XW_menu a[aria-current]:hover:before{width:4rem}}.MvA3XW_sideFoot{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-top:1.5rem;display:flex}.MvA3XW_iconLinks{flex-wrap:wrap;gap:.125rem;margin-left:-.8125rem;display:flex}.MvA3XW_footTools{align-items:center;gap:.5rem;display:flex}.MvA3XW_root .MvA3XW_button{border:1px solid var(--accent);background:var(--accent);min-height:2.75rem;color:var(--accent-ink);transition:background-color var(--dur-hover) var(--ease-out-soft), border-color var(--dur-hover) var(--ease-out-soft), color var(--dur-hover) var(--ease-out-soft), box-shadow var(--dur-hover) var(--ease-out-soft);border-radius:10px;align-items:center;gap:.5rem;padding:0 1.125rem;font-size:.9375rem;font-weight:600;line-height:1.3;text-decoration:none;display:inline-flex}.MvA3XW_root .MvA3XW_button:active{transition-duration:var(--dur-press);translate:0 1px}.MvA3XW_root .MvA3XW_buttonSmall{padding:0 .875rem;font-size:.875rem}.MvA3XW_root .MvA3XW_buttonGhost{color:var(--ink);border-color:var(--line);background:0 0}@media (hover:hover) and (pointer:fine){.MvA3XW_root .MvA3XW_button:hover{box-shadow:0 6px 18px -8px var(--accent)}.MvA3XW_root .MvA3XW_buttonGhost:hover{border-color:var(--accent);box-shadow:none}}.MvA3XW_root .MvA3XW_iconButton{width:2.75rem;height:2.75rem;color:var(--ink-2);cursor:pointer;transition:background-color var(--dur-hover) var(--ease-out-soft), color var(--dur-hover) var(--ease-out-soft);background:0 0;border:0;border-radius:10px;place-items:center;display:inline-grid}.MvA3XW_root .MvA3XW_iconButton:active{transition-duration:var(--dur-press);translate:0 1px}@media (hover:hover) and (pointer:fine){.MvA3XW_root .MvA3XW_iconButton:hover{background:var(--surface);color:var(--accent-text)}}.MvA3XW_section{padding-top:4.5rem;scroll-margin-top:1rem}.MvA3XW_bar{display:none}.MvA3XW_sectionTitle{letter-spacing:-.02em;align-items:center;gap:1rem;margin-bottom:1.25rem;font-size:1.375rem;font-weight:650;display:flex}.MvA3XW_sectionTitle:after{content:"";background:var(--line);flex:1;height:1px}@keyframes MvA3XW_ruleGrow{0%{scale:0 1}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.MvA3XW_sectionTitle:after{transform-origin:0;animation:linear both MvA3XW_ruleGrow;animation-timeline:view();animation-range:entry}}}.MvA3XW_about{max-width:65ch;color:var(--ink-2);gap:1rem;display:grid}.MvA3XW_rows{grid-template-columns:minmax(0,1fr);display:grid}.MvA3XW_row{border-radius:12px;grid-template-columns:minmax(0,1fr);gap:.5rem;padding:1.25rem 0;display:grid;position:relative}.MvA3XW_row+.MvA3XW_row{border-top:1px solid var(--line)}.MvA3XW_rowAside{color:var(--muted);font-size:.875rem}.MvA3XW_rowAside:empty{display:none}.MvA3XW_dates{font-family:var(--mono);letter-spacing:-.01em;font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:.25rem .75rem;font-size:.8125rem;display:flex}.MvA3XW_rowBody{grid-template-columns:minmax(0,1fr);align-content:start;gap:.5rem;min-width:0;display:grid}.MvA3XW_rowHead{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.875rem;display:grid}.MvA3XW_rowTitle{color:var(--ink);font-size:1.0625rem;font-weight:650;line-height:1.35}.MvA3XW_org{color:var(--ink-2);font-weight:500}.MvA3XW_rowText{max-width:65ch;color:var(--ink-2);font-size:.9375rem}.MvA3XW_rowMeta{color:var(--muted);font-size:.875rem}.MvA3XW_skillName{color:var(--ink);padding-top:.1875rem;font-size:.9375rem;font-weight:600}.MvA3XW_root .MvA3XW_rowLink{color:inherit;align-items:baseline;gap:.375rem;text-decoration:none;display:inline-flex}.MvA3XW_root .MvA3XW_rowLink:after{content:"";border-radius:12px;position:absolute;inset:0}.MvA3XW_root .MvA3XW_rowLink:focus-visible{outline:none}.MvA3XW_row:has(.MvA3XW_rowLink:focus-visible){outline:2px solid var(--accent);outline-offset:2px;background:var(--hover)}.MvA3XW_root .MvA3XW_rowLink2{z-index:1;justify-self:start;align-items:center;gap:.375rem;min-height:2.75rem;font-size:.9375rem;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.MvA3XW_root .MvA3XW_rowLink2:hover{text-decoration:underline}.MvA3XW_arrow{color:var(--accent-text);transition:translate var(--dur-base) var(--ease-out);align-self:center}.MvA3XW_mark{background:var(--surface);border:1px solid var(--line);color:var(--ink-2);letter-spacing:.02em;border-radius:8px;place-items:center;font-size:.75rem;font-weight:700;display:grid;overflow:hidden}.MvA3XW_thumb{aspect-ratio:16/9;object-fit:cover;border:1px solid var(--line);border-radius:8px;width:100%;max-width:20rem;height:auto}.MvA3XW_bullets{color:var(--ink-2);gap:.375rem;font-size:.9375rem;display:grid}.MvA3XW_bullets li{padding-left:1.25rem;position:relative}.MvA3XW_bullets li:before{content:"";background:var(--accent);width:.625rem;height:1px;position:absolute;top:.8em;left:0}.MvA3XW_chips{flex-wrap:wrap;align-content:flex-start;gap:.375rem;margin-top:.25rem;display:flex}.MvA3XW_chips li{background:var(--accent-soft);color:var(--accent-text);border-radius:999px;padding:.1875rem .6875rem;font-size:.8125rem;font-weight:550;line-height:1.5}.MvA3XW_skillName+.MvA3XW_rowBody .MvA3XW_chips{margin-top:0}.MvA3XW_badge{border:1px solid var(--line);color:var(--ink-2);border-radius:6px;padding:0 .5rem;font-size:.75rem;line-height:1.6}.MvA3XW_ident{margin-right:.875rem}.MvA3XW_langs{color:var(--ink-2);flex-wrap:wrap;gap:.375rem 1.5rem;font-size:.9375rem;display:flex}.MvA3XW_langs strong{color:var(--ink);font-weight:600}.MvA3XW_quoteSection{padding-top:4.5rem}.MvA3XW_quote{background:var(--surface);border:1px solid var(--line);border-radius:14px;margin:0;padding:1.5rem}.MvA3XW_quote blockquote{color:var(--ink);margin:0;font-size:1.125rem;line-height:1.6}.MvA3XW_quote figcaption{color:var(--ink-2);flex-wrap:wrap;gap:.25rem .75rem;margin-top:1rem;font-size:.9375rem;display:flex}.MvA3XW_more{margin-top:.75rem}.MvA3XW_root .MvA3XW_moreLink{align-items:center;gap:.375rem;min-height:2.75rem;font-size:.9375rem;font-weight:600;text-decoration:none;display:inline-flex}.MvA3XW_root .MvA3XW_moreLink:hover{text-decoration:underline}.MvA3XW_contact{padding-bottom:1rem}.MvA3XW_contactLead{max-width:36rem;color:var(--ink-2)}.MvA3XW_actions{flex-wrap:wrap;align-items:center;gap:.625rem;margin-top:1.25rem;display:flex}.MvA3XW_empty{color:var(--muted)}.MvA3XW_footer{border-top:1px solid var(--line);color:var(--muted);overflow-wrap:anywhere;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;margin-top:4.5rem;padding:1.5rem 0 2.5rem;font-size:.875rem;display:flex}.MvA3XW_root .MvA3XW_footer a{color:var(--ink-2);text-decoration:none}.MvA3XW_root .MvA3XW_footer a:hover{color:var(--accent-text);text-decoration:underline}.MvA3XW_pageHead{padding:3.5rem 0 1.25rem}.MvA3XW_pageTitle{letter-spacing:-.035em;font-size:clamp(2rem,2vw + 1.25rem,2.75rem);font-weight:700}.MvA3XW_pageLead{max-width:40rem;color:var(--ink-2);margin-top:.75rem}.MvA3XW_article{padding-top:3rem}.MvA3XW_back{font-size:.9375rem;font-weight:600}.MvA3XW_root .MvA3XW_back a{align-items:center;min-height:2.75rem;text-decoration:none;display:inline-flex}.MvA3XW_articleHead{gap:.75rem;margin:.75rem 0 2rem;display:grid}.MvA3XW_articleTitle{letter-spacing:-.03em;text-wrap:balance;font-size:clamp(2rem,2vw + 1.25rem,2.75rem);font-weight:700;line-height:1.12}.MvA3XW_root .MvA3XW_progress{height:2px}.MvA3XW_toc{background:var(--surface);border:1px solid var(--line);border-radius:14px;max-width:68ch;margin-bottom:2rem;padding:1.25rem 1.5rem;font-size:.9375rem}.MvA3XW_tocTitle{margin-bottom:.5rem;font-weight:650}.MvA3XW_toc ol{gap:.25rem;display:grid}.MvA3XW_tocSub{padding-left:1rem}.MvA3XW_prose{max-width:68ch;color:var(--ink-2);overflow-wrap:break-word}.MvA3XW_prose>.prose>*+*{margin-top:1.25em}.MvA3XW_prose h2,.MvA3XW_prose h3,.MvA3XW_prose strong{color:var(--ink)}.MvA3XW_prose>.prose>h2{letter-spacing:-.02em;margin-top:2.25em;font-size:1.5rem}.MvA3XW_prose>.prose>h3{margin-top:1.75em;font-size:1.1875rem}.MvA3XW_prose>.prose>:is(h2,h3)+*{margin-top:.75em}.MvA3XW_prose ul,.MvA3XW_prose ol{list-style:revert;padding-left:1.375rem}.MvA3XW_prose li+li{margin-top:.375em}.MvA3XW_prose li::marker{color:var(--accent-text)}.MvA3XW_prose blockquote{border-left:1px solid var(--accent);color:var(--ink-2);margin-left:0;margin-right:0;padding:.25rem 0 .25rem 1.25rem}.MvA3XW_prose code{font-family:var(--mono);background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:5px;padding:.125em .375em;font-size:.85em}.MvA3XW_prose pre{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1rem 1.25rem;font-size:.875rem;line-height:1.6;overflow-x:auto}.MvA3XW_prose pre code{font-size:inherit;background:0 0;border:0;padding:0}.MvA3XW_prose img{border-radius:10px;max-width:100%;height:auto}.MvA3XW_prose table{border-collapse:collapse;width:100%;font-size:.9375rem;display:block;overflow-x:auto}.MvA3XW_prose th{color:var(--ink)}.MvA3XW_prose th,.MvA3XW_prose td{border-bottom:1px solid var(--line);text-align:left;padding:.5rem .75rem}.MvA3XW_prose hr{border:0;border-top:1px solid var(--line)}.MvA3XW_sources{border-top:1px solid var(--line);max-width:68ch;margin-top:3rem;padding-top:1.5rem;font-size:.9375rem}.MvA3XW_sourcesTitle{margin-bottom:.75rem;font-size:1.125rem}.MvA3XW_sources ol{gap:.5rem;display:grid}.MvA3XW_sources li{overflow-wrap:anywhere}.MvA3XW_sources li:target{background:var(--accent-soft);border-radius:6px}.MvA3XW_sourceN{color:var(--muted);font-variant-numeric:tabular-nums}.MvA3XW_pager{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:.75rem;max-width:68ch;margin-top:3rem;display:grid}.MvA3XW_root .MvA3XW_pagerLink{border:1px solid var(--line);background:var(--surface);color:inherit;transition:border-color var(--dur-hover) var(--ease-out-soft);border-radius:14px;gap:.25rem;padding:1rem 1.25rem;text-decoration:none;display:grid}@media (hover:hover) and (pointer:fine){.MvA3XW_root .MvA3XW_pagerLink:hover{border-color:var(--accent)}}.MvA3XW_pagerLabel{color:var(--muted);font-size:.8125rem}.MvA3XW_pagerTitle{font-weight:650}.MvA3XW_root .MvA3XW_pagerAll{align-self:center;align-items:center;min-height:2.75rem;font-size:.9375rem;font-weight:600;display:inline-flex}@media (max-width:63.99rem){.MvA3XW_row{border-radius:0}.MvA3XW_root{--bar-h:3.5rem}.MvA3XW_bar{z-index:30;height:var(--bar-h);background:var(--bg);align-items:center;gap:.25rem;padding-inline:1.25rem;display:flex;position:sticky;top:0}.MvA3XW_root .MvA3XW_barBrand{min-width:0;min-height:2.75rem;color:var(--ink);letter-spacing:-.02em;white-space:nowrap;align-items:center;margin-right:auto;font-size:clamp(1.0625rem,5vw,1.25rem);font-weight:700;text-decoration:none;display:inline-flex}.MvA3XW_menu,.MvA3XW_sideToggle{display:none}.MvA3XW_menuSummary{border:1px solid var(--line);background:var(--surface);min-height:2.75rem;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:.5rem;padding:0 .875rem;font-size:1rem;font-weight:600;list-style:none;display:inline-flex}.MvA3XW_menuSummary::-webkit-details-marker{display:none}.MvA3XW_menuSummary svg{color:var(--accent)}.MvA3XW_phoneMenu[open] .MvA3XW_menuSummary{border-color:var(--accent)}.MvA3XW_menuPanel{max-height:calc(100dvh - var(--bar-h));overscroll-behavior:contain;background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:0 14px 28px -18px var(--shadow-color);padding:.25rem 1.25rem .75rem;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.MvA3XW_menuList li+li{border-top:1px solid var(--line)}.MvA3XW_root .MvA3XW_menuList a{min-height:2.75rem;color:var(--muted);align-items:center;gap:1rem;font-size:1rem;font-weight:600;text-decoration:none;display:flex}.MvA3XW_menuList a:before{content:"";background:currentColor;flex:none;width:1.5rem;height:1px}.MvA3XW_root .MvA3XW_menuList a[aria-current]{color:var(--ink)}.MvA3XW_root .MvA3XW_menuList a[aria-current]:before{background:var(--accent);width:2.5rem}.MvA3XW_root .MvA3XW_menuCv{border-top:1px solid var(--line);align-items:center;gap:.5rem;min-height:2.75rem;margin-top:.25rem;font-size:1rem;font-weight:600;display:flex}.MvA3XW_side{padding-top:1.75rem}.MvA3XW_sideCompact{display:none}.MvA3XW_section{scroll-margin-top:calc(var(--bar-h) - 1rem)}.MvA3XW_sourcesTitle,.MvA3XW_sources li{scroll-margin-top:calc(var(--bar-h) + 1rem)}.MvA3XW_prose>.prose>:is(h2,h3){scroll-margin-top:calc(var(--bar-h) + 1rem)}.MvA3XW_lead,.MvA3XW_facts,.MvA3XW_rowText,.MvA3XW_bullets,.MvA3XW_skillName,.MvA3XW_langs,.MvA3XW_toc,.MvA3XW_sources,.MvA3XW_quote figcaption,.MvA3XW_back,.MvA3XW_footer{font-size:1rem}.MvA3XW_badge{font-size:.8125rem}.MvA3XW_root .MvA3XW_rowLink{align-items:center;min-height:2.75rem;margin-block:-.65rem}.MvA3XW_root .MvA3XW_footer a{align-items:center;min-height:2.75rem;display:inline-flex}.MvA3XW_toc ol{gap:0}.MvA3XW_toc a{align-items:center;min-height:2.75rem;display:flex}.MvA3XW_sources ol{gap:0}.MvA3XW_sources li{flex-wrap:wrap;align-items:center;column-gap:.375rem;min-height:2.75rem;display:flex}.MvA3XW_sources a{align-items:center;min-height:2.75rem;display:inline-flex}.MvA3XW_section,.MvA3XW_quoteSection{padding-top:3.5rem}.MvA3XW_quote{padding:1.25rem}.MvA3XW_quote blockquote{font-size:1.0625rem}}@media (min-width:64rem){.MvA3XW_layout{grid-template-columns:minmax(0,clamp(18rem,30vw,24rem)) minmax(0,1fr);gap:clamp(3rem,5vw,5rem);padding-inline:3rem}.MvA3XW_side{height:100dvh;margin-inline:-.8125rem;padding:3.5rem .8125rem 1.5rem;position:sticky;top:0;overflow-y:auto}.MvA3XW_bar{display:none}.MvA3XW_menu{margin-top:1.75rem}.MvA3XW_menu>ul{display:block}.MvA3XW_sideFoot{flex-direction:column;align-items:flex-start;gap:.25rem;margin-top:auto;padding-top:1.5rem}.MvA3XW_section,.MvA3XW_quoteSection{padding-top:5rem}.MvA3XW_contact{min-height:62dvh}.MvA3XW_rows{margin-inline:-1rem}.MvA3XW_row{grid-template-columns:var(--aside) minmax(0, 1fr);gap:1.5rem;padding:1.25rem 1rem}.MvA3XW_row+.MvA3XW_row{border-top:0}.MvA3XW_rowAside:empty{display:block}.MvA3XW_rowsFlat .MvA3XW_row{grid-template-columns:minmax(0,1fr)}.MvA3XW_dates{flex-direction:column;align-items:flex-start;gap:.125rem;padding-top:.25rem}.MvA3XW_rowAside{padding-top:0}.MvA3XW_pageHead,.MvA3XW_article{padding-top:4.5rem}}@media (min-width:64rem) and (hover:hover) and (pointer:fine){.MvA3XW_row{transition:background-color var(--dur-hover) var(--ease-out-soft), box-shadow var(--dur-hover) var(--ease-out-soft), opacity var(--dur-base) var(--ease-out-soft)}.MvA3XW_row:hover{background:var(--hover);box-shadow:inset 0 0 0 1px var(--hover-line)}.MvA3XW_rows:has(.MvA3XW_row:hover)>.MvA3XW_row:not(:hover){opacity:var(--dim)}.MvA3XW_row:has(.MvA3XW_rowLink:hover) .MvA3XW_rowTitle{color:var(--accent-text)}.MvA3XW_row:has(.MvA3XW_rowLink:hover) .MvA3XW_arrow{translate:3px -3px}.MvA3XW_row:has(.MvA3XW_rowLink:hover) .MvA3XW_arrowFwd{translate:4px}}@media (min-width:64rem) and (max-height:56rem){.MvA3XW_side{padding-top:2.5rem;padding-bottom:1.25rem}.MvA3XW_portrait{width:3.5rem;height:3.5rem;margin-bottom:.875rem}.MvA3XW_name{font-size:clamp(2.25rem,2.6vw + 1rem,3rem)}.MvA3XW_menu{margin-top:1.25rem}.MvA3XW_root .MvA3XW_menu a{min-height:1.75rem;padding:.125rem 0}.MvA3XW_lead{margin-top:.625rem}.MvA3XW_facts{margin-top:.75rem}}@media (min-width:64rem) and (max-height:50rem){.MvA3XW_side{padding-top:1.75rem;padding-bottom:1rem}.MvA3XW_portrait{width:3rem;height:3rem;margin-bottom:.625rem}.MvA3XW_name{font-size:clamp(2rem,2.2vw + 1rem,2.5rem)}.MvA3XW_title{margin-top:.5rem;font-size:1.0625rem}.MvA3XW_lead{margin-top:.5rem;font-size:.9375rem}.MvA3XW_facts{margin-top:.5rem;font-size:.875rem}.MvA3XW_menu{margin-top:.875rem}.MvA3XW_root .MvA3XW_menu a{min-height:1.625rem;padding:0;line-height:1.4}.MvA3XW_sideFoot{padding-top:.75rem}}@media (prefers-reduced-motion:reduce){html:has(.MvA3XW_root){scroll-behavior:auto}.MvA3XW_root *,.MvA3XW_root :before,.MvA3XW_root :after{transition:none!important}}
