@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-opsz-normal.DIwfbPUE.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-opsz-normal.C0olyEE-.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-opsz-normal.DrHU7SY7.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-opsz-normal.DX68cEVD.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-opsz-normal.HoL-AExg.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-opsz-normal.BpEBLj1O.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-opsz-italic.Bl6DJqma.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-opsz-italic.Dibx14aP.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-opsz-italic.CMW9dfKg.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-opsz-italic.Hh3oeMt5.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-opsz-italic.BhUEwDRF.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-opsz-italic.BOLXpvkj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--serif: "Source Serif 4 Variable", "Iowan Old Style", Georgia, serif;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--bg: #f7f5f0;--surface: #ffffff;--text: #1d1f24;--muted: #5b5e66;--faint: #8b8e95;--rule: #e4e1d9;--link: #2f55c9;--link-soft: rgb(47 85 201 / .08);--code-bg: #efece5;--tone-blue: #2f55c9;--tone-amber: #b0731a;--tone-rose: #bd5539;--tone-sage: #34805a;--tone-plum: #8a4bb8;color-scheme:light;--wide: 1120px;--read: 720px;--gutter: clamp(20px, 4vw, 40px);--ease: cubic-bezier(.2, .7, .2, 1)}:root[data-theme=dark]{--bg: #171614;--surface: #1f1e1b;--text: #ebe6dc;--muted: #a59e92;--faint: #7d776d;--rule: #322f2a;--link: #a3b6f0;--link-soft: rgb(163 182 240 / .12);--code-bg: #23211d;--tone-blue: #a3b6f0;--tone-amber: #e2b765;--tone-rose: #ee9d83;--tone-sage: #8ccaa3;--tone-plum: #c8a5ec;color-scheme:dark}::selection{background:color-mix(in srgb,var(--link) 28%,transparent)}@font-face{font-family:Arabic Name;src:url(/fonts/arabic-name.woff2) format("woff2");font-display:swap}@view-transition{navigation:auto}@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}}::view-transition-group(*){animation-duration:.45s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}::view-transition-old(root){animation:vt-out .16s ease-in both}::view-transition-new(root){animation:vt-in .4s cubic-bezier(.2,.7,.2,1) .06s both}html.vt-theme::view-transition-old(root),html.vt-theme::view-transition-new(root){animation:none;mix-blend-mode:normal}html.vt-theme::view-transition-old(root){animation:vt-out .35s ease both}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0;transform:translateY(10px)}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}body{background:var(--bg);color:var(--text);font-family:var(--serif);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .3s,color .3s}img{display:block;max-width:100%;height:auto}button{font:inherit;color:inherit}a{color:var(--link);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--link) 35%,transparent);text-decoration-thickness:1px;text-underline-offset:.18em;transition:text-decoration-color .2s,color .2s}a:hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--link);outline-offset:3px;border-radius:3px}h1,h2,h3{font-weight:600;line-height:1.2;letter-spacing:-.01em;font-optical-sizing:auto}.wrap{max-width:calc(var(--wide) + var(--gutter) * 2);margin:0 auto;padding:0 var(--gutter)}.read{max-width:var(--read)}.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;background:var(--surface);padding:6px 10px;z-index:10}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.meta{font-family:var(--sans);font-size:14px;color:var(--muted)}.muted{color:var(--muted)}.block{display:grid;gap:18px;padding-top:56px;margin-top:56px;border-top:1px solid var(--rule)}.block>h2{font-size:21px}@media(min-width:900px){.block{grid-template-columns:200px minmax(0,1fr);gap:40px}.block>h2{position:sticky;top:24px;align-self:start}}.btn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--rule);background:var(--surface);font-family:var(--sans);font-size:14px;color:var(--text);text-decoration:none;transition:border-color .2s,transform .2s var(--ease),box-shadow .2s;cursor:pointer;white-space:nowrap}.btn:hover{border-color:color-mix(in srgb,var(--link) 50%,var(--rule));color:var(--text);transform:translateY(-1px);box-shadow:0 4px 14px -8px #00000040}.btn svg{width:16px;height:16px;flex:none}.inner{padding-top:24px}.inner>h1,.inner article h1{font-size:clamp(32px,4vw,42px);letter-spacing:-.02em}.i{flex:none;overflow:visible}.i *{transform-box:view-box}.i .s{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.i .t{fill:currentColor;stroke:none;opacity:.16;transition:opacity .3s}.i .f{fill:currentColor;stroke:none}:root[data-theme=dark] .i .t{opacity:.22}.draw [data-draw]:not(.in,.done) .i .s{stroke-dasharray:1;stroke-dashoffset:1;opacity:0}.draw [data-draw]:not(.in,.done) .i :is(.t,.f){opacity:0}.draw [data-draw].in .i .s{stroke-dasharray:1;animation:i-draw 1.1s cubic-bezier(.5,0,.2,1) var(--d, 0s) both}.draw [data-draw].in .i :is(.t,.f){animation:i-fade .6s ease calc(var(--d, 0s) + .55s) both}@keyframes i-draw{0%{stroke-dashoffset:1;opacity:0}8%{opacity:1}to{stroke-dashoffset:0}}@keyframes i-fade{0%{opacity:0}}.ih:is(:hover,:focus-visible) .i-megaphone .cone{animation:i-honk .5s var(--ease);transform-origin:5px 12px}.ih:is(:hover,:focus-visible) .i-megaphone :is(.w1,.w2){animation:i-wave .9s ease-out 2}.ih:is(:hover,:focus-visible) .i-megaphone .w2{animation-delay:.12s}@keyframes i-honk{40%{transform:rotate(-8deg) scale(1.04)}}@keyframes i-wave{0%{opacity:.15;transform:translate(-1.6px)}45%{opacity:1;transform:none}}.ih:is(:hover,:focus-visible) .i-handwriting .ink{stroke-dasharray:1;animation:i-draw 1s cubic-bezier(.45,0,.3,1) both}.ih:is(:hover,:focus-visible) .i-handwriting .nib{animation:i-scribble 1s cubic-bezier(.45,0,.3,1) both}@keyframes i-scribble{0%{transform:translate(-8.4px,3.4px)}30%{transform:translate(-6.4px,1.6px) rotate(-6deg)}55%{transform:translate(-4.4px,2.8px)}80%{transform:translate(-1.8px,2.2px) rotate(-4deg)}}.ih:is(:hover,:focus-visible) .i-research .tube{animation:i-focus .9s ease-in-out}@keyframes i-focus{25%,65%{transform:translate(.5px,.9px)}45%{transform:none}}.i-book .pg{opacity:0;transform-origin:12px 12px}.ih:is(:hover,:focus-visible) .i-book .pg{animation:i-flip .7s cubic-bezier(.4,0,.2,1)}@keyframes i-flip{0%{opacity:1;transform:scaleX(1)}90%{opacity:1}to{opacity:0;transform:scaleX(-1)}}.ih:is(:hover,:focus-visible) .i-briefcase{animation:i-lift .55s var(--ease)}@keyframes i-lift{35%{transform:translateY(-2px) rotate(-7deg)}70%{transform:translateY(0) rotate(3deg)}}.i-bulb .ray{opacity:0;transform:scale(.7);transform-origin:12px 9.5px;transition:opacity .25s,transform .35s var(--ease)}.ih:is(:hover,:focus-visible) .i-bulb .ray{opacity:1;transform:none}.ih:is(:hover,:focus-visible) .i-bulb .glass{opacity:.55}.i-award .medal{transform-origin:12px 9.2px}.ih:is(:hover,:focus-visible) .i-award .medal{animation:i-spin .8s cubic-bezier(.4,0,.2,1)}@keyframes i-spin{50%{transform:scaleX(-1)}}.ih:is(:hover,:focus-visible) .i-mail{animation:i-send .6s var(--ease)}@keyframes i-send{35%{transform:translate(2px,-2px) rotate(-12deg)}70%{transform:translate(-.5px,.5px) rotate(3deg)}}.ih:is(:hover,:focus-visible) .i-rss :is(.w1,.w2){animation:i-blink .8s ease 2}.ih:is(:hover,:focus-visible) .i-rss .w2{animation-delay:.15s}@keyframes i-blink{0%{opacity:.2}50%{opacity:1}}.i-scholar .cap{transform-origin:12px 9px;transition:transform .4s var(--ease)}.ih:is(:hover,:focus-visible) .i-scholar .cap{transform:translateY(-2.4px) rotate(-8deg)}.ih:is(:hover,:focus-visible) .i-github{animation:i-wobble .6s var(--ease)}.ih:is(:hover,:focus-visible) :is(.i-linkedin,.i-x){animation:i-pop .45s var(--ease)}.ih:is(:hover,:focus-visible) .i-twitter{animation:i-hop .6s var(--ease)}@keyframes i-hop{30%{transform:translateY(-3px) rotate(-10deg)}55%{transform:translateY(0) rotate(0)}75%{transform:translateY(-1.2px) rotate(-4deg)}}@keyframes i-wobble{25%{transform:rotate(-12deg)}55%{transform:rotate(8deg)}80%{transform:rotate(-3deg)}}@keyframes i-pop{40%{transform:scale(1.18) rotate(-4deg)}}.ih:is(:hover,:focus-visible) .i-mic{animation:i-wobble .6s var(--ease)}.i-external .arr,.i-code :is(.lb,.rb),.i-copy .bk{transition:transform .3s var(--ease)}.ih:is(:hover,:focus-visible) .i-external .arr{transform:translate(1.4px,-1.4px)}.ih:is(:hover,:focus-visible) .i-code .lb{transform:translate(-1.4px)}.ih:is(:hover,:focus-visible) .i-code .rb{transform:translate(1.4px)}.ih:is(:hover,:focus-visible) .i-copy .bk{transform:translate(-1.2px,-1.2px)}.ih:is(:hover,:focus-visible) .i-file .ln{stroke-dasharray:1;animation:i-draw .5s ease both}.ih:is(:hover,:focus-visible) .i-file .ln2{animation-delay:.15s}.i-check .s{stroke-dasharray:1;animation:i-draw .45s ease both}.hdr[data-astro-cid-3ef6ksr2]{view-transition-name:site-header;display:flex;align-items:center;justify-content:space-between;gap:10px 16px;height:76px}.name[data-astro-cid-3ef6ksr2]{font-size:19px;font-weight:600;color:var(--text);text-decoration:none;white-space:nowrap}nav[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:8px;font-family:var(--sans);font-size:14.5px}.pill[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 15px 0 13px;border:1px solid var(--rule);border-radius:999px;background:var(--surface);color:var(--text);text-decoration:none;font-weight:500;white-space:nowrap;box-shadow:0 1px 2px #0000000a;transition:border-color .2s,background-color .2s,color .2s,transform .2s var(--ease),box-shadow .2s}.pill[data-astro-cid-3ef6ksr2] svg{color:var(--tone);transition:color .2s}.pill[data-astro-cid-3ef6ksr2]:hover{border-color:color-mix(in srgb,var(--tone) 50%,var(--rule));background:color-mix(in srgb,var(--tone) 5%,var(--surface));transform:translateY(-1px);box-shadow:0 6px 16px -10px color-mix(in srgb,var(--tone) 70%,transparent)}.pill[data-astro-cid-3ef6ksr2]:active{transform:translateY(0)}.pill[data-astro-cid-3ef6ksr2][aria-current=page]{background:var(--text);border-color:var(--text);color:var(--bg)}.pill[data-astro-cid-3ef6ksr2][aria-current=page] svg{color:inherit}.theme[data-astro-cid-3ef6ksr2]{display:grid;place-items:center;width:36px;height:36px;border-radius:999px;border:1px solid var(--rule);background:var(--surface);color:var(--muted);cursor:pointer;box-shadow:0 1px 2px #0000000a;transition:color .2s,border-color .2s,transform .4s var(--ease)}.theme[data-astro-cid-3ef6ksr2]:hover{color:var(--text);border-color:var(--muted);transform:rotate(-15deg)}.toggle[data-astro-cid-3ef6ksr2] [data-astro-cid-3ef6ksr2]{transform-box:view-box;transform-origin:12px 12px;transition:transform .6s cubic-bezier(.5,-.3,.3,1.4),opacity .4s}.rays[data-astro-cid-3ef6ksr2]{opacity:0;transform:rotate(-90deg) scale(.4)}:root[data-theme=dark] .theme[data-astro-cid-3ef6ksr2]{color:var(--tone-amber)}:root[data-theme=dark] .disc[data-astro-cid-3ef6ksr2]{transform:scale(.52)}:root[data-theme=dark] .bite[data-astro-cid-3ef6ksr2]{transform:translate(8px,-8px)}:root[data-theme=dark] .rays[data-astro-cid-3ef6ksr2]{opacity:1;transform:none}@media(max-width:520px){.hdr[data-astro-cid-3ef6ksr2]{flex-wrap:wrap;height:auto;padding-block:16px 4px}.name[data-astro-cid-3ef6ksr2]{font-size:18px}nav[data-astro-cid-3ef6ksr2]{width:100%}.theme[data-astro-cid-3ef6ksr2]{margin-left:auto}}@media(max-width:360px){nav[data-astro-cid-3ef6ksr2]{gap:6px;font-size:13.5px}.pill[data-astro-cid-3ef6ksr2]{padding:0 11px 0 10px;gap:6px}}.ftr[data-astro-cid-sz7xmlte]{margin-top:80px;padding-bottom:40px}.row[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 24px;padding-top:20px;border-top:1px solid var(--rule)}
