@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-cyrillic-ext-wght-normal.DzyfIafT.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-cyrillic-wght-normal.BMDVbyM7.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-greek-ext-wght-normal.BWSLJLk6.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-greek-wght-normal.C9H9m1vD.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-vietnamese-wght-normal.C1uRvKPU.woff2)format("woff2-variations");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 Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-latin-ext-wght-normal.C8iNium2.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-latin-wght-normal.BqRLTx4X.woff2)format("woff2-variations");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 Sans 3 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-cyrillic-ext-wght-italic.Bmy0yRBR.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-cyrillic-wght-italic.BqzjwPnH.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-greek-ext-wght-italic.CsGuNfVR.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-greek-wght-italic.BfAgiArQ.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-vietnamese-wght-italic.DnchwVcj.woff2)format("woff2-variations");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 Sans 3 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-latin-ext-wght-italic.B1mMy0tD.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-latin-wght-italic.Bg-PIjcQ.woff2)format("woff2-variations");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff)format("woff");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff");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}*,:before,:after{box-sizing:border-box}:root{--font-ibm-plex-mono:"IBM Plex Mono";--bg:#fafbfc;--ink:#22272b;--muted:#505a61;--faint:#657079;--rule:#dfe3e6;--rule-strong:#a0a9b0;--surface:#f0f3f5;--forest:#304c3b;--forest-ink:#f6f4ea;--page-width:1160px;--hl:#dfe3ff;--band:#2e3cf2;--band-ink:#fff;--metric:#2e3cf2;--label:#78736a;--contact-bg:#1c1c1c;--contact-ink:#fff;--sans:"Source Sans 3 Variable", "Segoe UI", Helvetica, Arial, sans-serif;--heading:var(--sans);--mono:var(--font-ibm-plex-mono), ui-monospace, Menlo, Consolas, monospace;--type-title:clamp(2rem, 4.2vw, 3rem);--type-section:1.75rem;--type-project:1.375rem;--type-lead:1.25rem;--type-body:1.0625rem;--type-small:.9375rem;--type-caption:.8125rem;--weight-heading:600;--leading-body:1.65;--measure:62ch}html.dark-mode{--bg:#171c20;--ink:#e9edef;--muted:#b9c2c9;--faint:#95a2ad;--rule:#343e46;--rule-strong:#687781;--hl:#28306e;--band:#2e3cf2;--band-ink:#fff;--metric:#98a0ff;--label:#8a8579;--contact-bg:#e8e5dd;--contact-ink:#171614;--surface:#21292f;--forest:#bdc9ad;--forest-ink:#20291f}html.reading-mode:not(.dark-mode){--bg:#fff;--ink:#1c1c1c;--muted:#4d4d48;--faint:#78736a;--rule:#f0efec}html.reading-mode{--page-width:820px}html{background:var(--bg)}body{background:var(--bg);min-height:100svh;color:var(--ink);font-family:var(--sans);font-size:var(--type-body);line-height:var(--leading-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;margin:0;transition:background-color .3s,color .3s;display:flex}.page{min-height:100vh}a{color:var(--ink);text-decoration:none}a:hover,::selection{background:var(--hl)}a:focus-visible,button:focus-visible{outline:2px solid var(--metric);outline-offset:2px;border-radius:1px}.no-transition,.no-transition *{transition:none!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.mh-nav-inner{max-width:var(--page-width);border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin:0 auto;padding:24px 28px;display:flex}.mh-name{font-family:var(--heading);color:var(--ink);font-size:20px;font-weight:650}.mh-name:hover{background:0 0}.mh-navlinks{font-size:var(--type-small);align-items:baseline;gap:22px;margin:-8px 0;display:flex}.mh-navlink{color:var(--muted);padding:8px 0}.mh-navlink:hover{color:var(--ink);background:0 0}.mh-navcontact{color:var(--ink);text-underline-offset:4px;padding:8px 0;text-decoration:underline}.mh-navcontact:hover{background:0 0;text-decoration:none}.themeToggle{min-width:40px;min-height:40px;color:var(--faint);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;margin:0;padding:10px;line-height:0;display:inline-flex}.themeToggle:hover{color:var(--ink);background:0 0}.themeToggle svg{width:17px;height:17px;display:block}.themeToggle .theme-icon-sun,html.dark-mode .themeToggle .theme-icon-moon{display:none}html.dark-mode .themeToggle .theme-icon-sun{display:block}.mh-skip{z-index:100;position:absolute;top:0;left:-9999px}.mh-skip:focus{background:var(--ink);color:var(--bg);font-family:var(--mono);padding:8px 12px;font-size:13px;top:12px;left:12px}.name-period{color:var(--metric)}.display-controls{align-items:center;gap:8px;display:flex}.mode-switch{background:color-mix(in srgb, var(--ink) 5%, var(--bg));border:1px solid var(--rule);border-radius:4px;padding:3px;display:flex}.mode-switch button{min-height:34px;color:var(--muted);font:14px var(--sans);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:8px 11px;display:inline-flex}.mode-switch button[aria-pressed=true]{background:var(--bg);color:var(--ink);box-shadow:none}.mode-switch button:hover{color:var(--ink)}.mode-switch svg{width:14px;height:14px}button,a{-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}@media (width<=900px){.mh-nav-inner{gap:14px}.mh-navlinks{gap:15px;font-size:14px}.mh-name{font-size:20px}}@media (width<=700px){.mh-nav-inner{padding:18px 22px 12px}.mh-navlinks{order:3;gap:24px;width:100%;padding-top:5px}.display-controls{gap:3px;margin-left:auto}.mode-switch button{min-height:36px;padding:8px}}@media (width<=360px){.mh-nav-inner{gap:10px;padding-inline:16px}.mh-name{font-size:18px}.mode-switch svg{display:none}}
