:root,.light,.light-theme{--sand-1:#fdfdfc;--sand-2:#f9f9f8;--sand-3:#f1f0ef;--sand-4:#e9e8e6;--sand-5:#e2e1de;--sand-6:#dad9d6;--sand-7:#cfceca;--sand-8:#bcbbb5;--sand-9:#8d8d86;--sand-10:#82827c;--sand-11:#63635e;--sand-12:#21201c}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,.light,.light-theme{--sand-1:color(display-p3 .992 .992 .989);--sand-2:color(display-p3 .977 .977 .973);--sand-3:color(display-p3 .943 .942 .936);--sand-4:color(display-p3 .913 .912 .903);--sand-5:color(display-p3 .885 .883 .873);--sand-6:color(display-p3 .854 .852 .839);--sand-7:color(display-p3 .813 .81 .794);--sand-8:color(display-p3 .738 .734 .713);--sand-9:color(display-p3 .553 .553 .528);--sand-10:color(display-p3 .511 .511 .488);--sand-11:color(display-p3 .388 .388 .37);--sand-12:color(display-p3 .129 .126 .111)}}}.dark,.dark-theme{--sand-1:#111110;--sand-2:#191918;--sand-3:#222221;--sand-4:#2a2a28;--sand-5:#31312e;--sand-6:#3b3a37;--sand-7:#494844;--sand-8:#62605b;--sand-9:#6f6d66;--sand-10:#7c7b74;--sand-11:#b5b3ad;--sand-12:#eeeeec}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){.dark,.dark-theme{--sand-1:color(display-p3 .067 .067 .063);--sand-2:color(display-p3 .098 .098 .094);--sand-3:color(display-p3 .135 .135 .129);--sand-4:color(display-p3 .164 .163 .156);--sand-5:color(display-p3 .193 .192 .183);--sand-6:color(display-p3 .23 .229 .217);--sand-7:color(display-p3 .285 .282 .267);--sand-8:color(display-p3 .384 .378 .357);--sand-9:color(display-p3 .434 .428 .403);--sand-10:color(display-p3 .487 .481 .456);--sand-11:color(display-p3 .707 .703 .68);--sand-12:color(display-p3 .933 .933 .926)}}}:root,.light,.light-theme{--bronze-1:#fdfcfc;--bronze-2:#fdf7f5;--bronze-3:#f6edea;--bronze-4:#efe4df;--bronze-5:#e7d9d3;--bronze-6:#dfcdc5;--bronze-7:#d3bcb3;--bronze-8:#c2a499;--bronze-9:#a18072;--bronze-10:#957468;--bronze-11:#7d5e54;--bronze-12:#43302b}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,.light,.light-theme{--bronze-1:color(display-p3 .991 .988 .988);--bronze-2:color(display-p3 .989 .97 .961);--bronze-3:color(display-p3 .958 .932 .919);--bronze-4:color(display-p3 .929 .894 .877);--bronze-5:color(display-p3 .898 .853 .832);--bronze-6:color(display-p3 .861 .805 .778);--bronze-7:color(display-p3 .812 .739 .706);--bronze-8:color(display-p3 .741 .647 .606);--bronze-9:color(display-p3 .611 .507 .455);--bronze-10:color(display-p3 .563 .461 .414);--bronze-11:color(display-p3 .471 .373 .336);--bronze-12:color(display-p3 .251 .191 .172)}}}.dark,.dark-theme{--bronze-1:#141110;--bronze-2:#1c1917;--bronze-3:#262220;--bronze-4:#302a27;--bronze-5:#3b3330;--bronze-6:#493e3a;--bronze-7:#5a4c47;--bronze-8:#6f5f58;--bronze-9:#a18072;--bronze-10:#ae8c7e;--bronze-11:#d4b3a5;--bronze-12:#ede0d9}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){.dark,.dark-theme{--bronze-1:color(display-p3 .076 .067 .063);--bronze-2:color(display-p3 .106 .097 .093);--bronze-3:color(display-p3 .147 .132 .125);--bronze-4:color(display-p3 .185 .166 .156);--bronze-5:color(display-p3 .227 .202 .19);--bronze-6:color(display-p3 .278 .246 .23);--bronze-7:color(display-p3 .343 .302 .281);--bronze-8:color(display-p3 .426 .374 .347);--bronze-9:color(display-p3 .611 .507 .455);--bronze-10:color(display-p3 .66 .556 .504);--bronze-11:color(display-p3 .81 .707 .655);--bronze-12:color(display-p3 .921 .88 .854)}}}:root,.light,.light-theme{--brown-1:#fefdfc;--brown-2:#fcf9f6;--brown-3:#f6eee7;--brown-4:#f0e4d9;--brown-5:#ebdaca;--brown-6:#e4cdb7;--brown-7:#dcbc9f;--brown-8:#cea37e;--brown-9:#ad7f58;--brown-10:#a07553;--brown-11:#815e46;--brown-12:#3e332e}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,.light,.light-theme{--brown-1:color(display-p3 .995 .992 .989);--brown-2:color(display-p3 .987 .976 .964);--brown-3:color(display-p3 .959 .936 .909);--brown-4:color(display-p3 .934 .897 .855);--brown-5:color(display-p3 .909 .856 .798);--brown-6:color(display-p3 .88 .808 .73);--brown-7:color(display-p3 .841 .742 .639);--brown-8:color(display-p3 .782 .647 .514);--brown-9:color(display-p3 .651 .505 .368);--brown-10:color(display-p3 .601 .465 .344);--brown-11:color(display-p3 .485 .374 .288);--brown-12:color(display-p3 .236 .202 .183)}}}.dark,.dark-theme{--brown-1:#12110f;--brown-2:#1c1816;--brown-3:#28211d;--brown-4:#322922;--brown-5:#3e3128;--brown-6:#4d3c2f;--brown-7:#614a39;--brown-8:#7c5f46;--brown-9:#ad7f58;--brown-10:#b88c67;--brown-11:#dbb594;--brown-12:#f2e1ca}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){.dark,.dark-theme{--brown-1:color(display-p3 .071 .067 .059);--brown-2:color(display-p3 .107 .095 .087);--brown-3:color(display-p3 .151 .13 .115);--brown-4:color(display-p3 .191 .161 .138);--brown-5:color(display-p3 .235 .194 .162);--brown-6:color(display-p3 .291 .237 .192);--brown-7:color(display-p3 .365 .295 .232);--brown-8:color(display-p3 .469 .377 .287);--brown-9:color(display-p3 .651 .505 .368);--brown-10:color(display-p3 .697 .557 .423);--brown-11:color(display-p3 .835 .715 .597);--brown-12:color(display-p3 .938 .885 .802)}}}:root,.light,.light-theme{--jade-1:#fbfefd;--jade-2:#f4fbf7;--jade-3:#e6f7ed;--jade-4:#d6f1e3;--jade-5:#c3e9d7;--jade-6:#acdec8;--jade-7:#8bceb6;--jade-8:#56ba9f;--jade-9:#29a383;--jade-10:#26997b;--jade-11:#208368;--jade-12:#1d3b31}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,.light,.light-theme{--jade-1:color(display-p3 .986 .996 .992);--jade-2:color(display-p3 .962 .983 .969);--jade-3:color(display-p3 .912 .965 .932);--jade-4:color(display-p3 .858 .941 .893);--jade-5:color(display-p3 .795 .909 .847);--jade-6:color(display-p3 .715 .864 .791);--jade-7:color(display-p3 .603 .802 .718);--jade-8:color(display-p3 .44 .72 .629);--jade-9:color(display-p3 .319 .63 .521);--jade-10:color(display-p3 .299 .592 .488);--jade-11:color(display-p3 .15 .5 .37);--jade-12:color(display-p3 .142 .229 .194)}}}.dark,.dark-theme{--jade-1:#0d1512;--jade-2:#121c18;--jade-3:#0f2e22;--jade-4:#0b3b2c;--jade-5:#114837;--jade-6:#1b5745;--jade-7:#246854;--jade-8:#2a7e68;--jade-9:#29a383;--jade-10:#27b08b;--jade-11:#1fd8a4;--jade-12:#adf0d4}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){.dark,.dark-theme{--jade-1:color(display-p3 .059 .083 .071);--jade-2:color(display-p3 .078 .11 .094);--jade-3:color(display-p3 .091 .176 .138);--jade-4:color(display-p3 .102 .228 .177);--jade-5:color(display-p3 .133 .279 .221);--jade-6:color(display-p3 .174 .334 .273);--jade-7:color(display-p3 .219 .402 .335);--jade-8:color(display-p3 .263 .488 .411);--jade-9:color(display-p3 .319 .63 .521);--jade-10:color(display-p3 .338 .68 .555);--jade-11:color(display-p3 .4 .835 .656);--jade-12:color(display-p3 .734 .934 .838)}}}:root,.light,.light-theme{--grass-1:#fbfefb;--grass-2:#f5fbf5;--grass-3:#e9f6e9;--grass-4:#daf1db;--grass-5:#c9e8ca;--grass-6:#b2ddb5;--grass-7:#94ce9a;--grass-8:#65ba74;--grass-9:#46a758;--grass-10:#3e9b4f;--grass-11:#2a7e3b;--grass-12:#203c25}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,.light,.light-theme{--grass-1:color(display-p3 .986 .996 .985);--grass-2:color(display-p3 .966 .983 .964);--grass-3:color(display-p3 .923 .965 .917);--grass-4:color(display-p3 .872 .94 .865);--grass-5:color(display-p3 .811 .908 .802);--grass-6:color(display-p3 .733 .864 .724);--grass-7:color(display-p3 .628 .803 .622);--grass-8:color(display-p3 .477 .72 .482);--grass-9:color(display-p3 .38 .647 .378);--grass-10:color(display-p3 .344 .598 .342);--grass-11:color(display-p3 .263 .488 .261);--grass-12:color(display-p3 .151 .233 .153)}}}.dark,.dark-theme{--grass-1:#0e1511;--grass-2:#141a15;--grass-3:#1b2a1e;--grass-4:#1d3a24;--grass-5:#25482d;--grass-6:#2d5736;--grass-7:#366740;--grass-8:#3e7949;--grass-9:#46a758;--grass-10:#53b365;--grass-11:#71d083;--grass-12:#c2f0c2}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){.dark,.dark-theme{--grass-1:color(display-p3 .062 .083 .067);--grass-2:color(display-p3 .083 .103 .085);--grass-3:color(display-p3 .118 .163 .122);--grass-4:color(display-p3 .142 .225 .15);--grass-5:color(display-p3 .178 .279 .186);--grass-6:color(display-p3 .217 .337 .224);--grass-7:color(display-p3 .258 .4 .264);--grass-8:color(display-p3 .302 .47 .305);--grass-9:color(display-p3 .38 .647 .378);--grass-10:color(display-p3 .426 .694 .426);--grass-11:color(display-p3 .535 .807 .542);--grass-12:color(display-p3 .797 .936 .776)}}}:root,.light,.light-theme{--mint-1:#f9fefd;--mint-2:#f2fbf9;--mint-3:#ddf9f2;--mint-4:#c8f4e9;--mint-5:#b3ecde;--mint-6:#9ce0d0;--mint-7:#7ecfbd;--mint-8:#4cbba5;--mint-9:#86ead4;--mint-10:#7de0cb;--mint-11:#027864;--mint-12:#16433c}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,.light,.light-theme{--mint-1:color(display-p3 .98 .995 .992);--mint-2:color(display-p3 .957 .985 .977);--mint-3:color(display-p3 .888 .972 .95);--mint-4:color(display-p3 .819 .951 .916);--mint-5:color(display-p3 .747 .918 .873);--mint-6:color(display-p3 .668 .87 .818);--mint-7:color(display-p3 .567 .805 .744);--mint-8:color(display-p3 .42 .724 .649);--mint-9:color(display-p3 .62 .908 .834);--mint-10:color(display-p3 .585 .871 .797);--mint-11:color(display-p3 .203 .463 .397);--mint-12:color(display-p3 .136 .259 .236)}}}.dark,.dark-theme{--mint-1:#0e1515;--mint-2:#0f1b1b;--mint-3:#092c2b;--mint-4:#003a38;--mint-5:#004744;--mint-6:#105650;--mint-7:#1e685f;--mint-8:#277f70;--mint-9:#86ead4;--mint-10:#a8f5e5;--mint-11:#58d5ba;--mint-12:#c4f5e1}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){.dark,.dark-theme{--mint-1:color(display-p3 .059 .082 .081);--mint-2:color(display-p3 .068 .104 .105);--mint-3:color(display-p3 .077 .17 .168);--mint-4:color(display-p3 .068 .224 .22);--mint-5:color(display-p3 .104 .275 .264);--mint-6:color(display-p3 .154 .332 .313);--mint-7:color(display-p3 .207 .403 .373);--mint-8:color(display-p3 .258 .49 .441);--mint-9:color(display-p3 .62 .908 .834);--mint-10:color(display-p3 .725 .954 .898);--mint-11:color(display-p3 .482 .825 .733);--mint-12:color(display-p3 .807 .955 .887)}}}:root,.light,.light-theme{--amber-1:#fefdfb;--amber-2:#fefbe9;--amber-3:#fff7c2;--amber-4:#ffee9c;--amber-5:#fbe577;--amber-6:#f3d673;--amber-7:#e9c162;--amber-8:#e2a336;--amber-9:#ffc53d;--amber-10:#ffba18;--amber-11:#ab6400;--amber-12:#4f3422}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){:root,.light,.light-theme{--amber-1:color(display-p3 .995 .992 .985);--amber-2:color(display-p3 .994 .986 .921);--amber-3:color(display-p3 .994 .969 .782);--amber-4:color(display-p3 .989 .937 .65);--amber-5:color(display-p3 .97 .902 .527);--amber-6:color(display-p3 .936 .844 .506);--amber-7:color(display-p3 .89 .762 .443);--amber-8:color(display-p3 .85 .65 .3);--amber-9:color(display-p3 1 .77 .26);--amber-10:color(display-p3 .959 .741 .274);--amber-11:color(display-p3 .64 .4 0);--amber-12:color(display-p3 .294 .208 .145)}}}.dark,.dark-theme{--amber-1:#16120c;--amber-2:#1d180f;--amber-3:#302008;--amber-4:#3f2700;--amber-5:#4d3000;--amber-6:#5c3d05;--amber-7:#714f19;--amber-8:#8f6424;--amber-9:#ffc53d;--amber-10:#ffd60a;--amber-11:#ffca16;--amber-12:#ffe7b3}@supports (color:color(display-p3 1 1 1)){@media (color-gamut:p3){.dark,.dark-theme{--amber-1:color(display-p3 .082 .07 .05);--amber-2:color(display-p3 .111 .094 .064);--amber-3:color(display-p3 .178 .128 .049);--amber-4:color(display-p3 .239 .156 0);--amber-5:color(display-p3 .29 .193 0);--amber-6:color(display-p3 .344 .245 .076);--amber-7:color(display-p3 .422 .314 .141);--amber-8:color(display-p3 .535 .399 .189);--amber-9:color(display-p3 1 .77 .26);--amber-10:color(display-p3 1 .87 .15);--amber-11:color(display-p3 1 .8 .29);--amber-12:color(display-p3 .984 .909 .726)}}}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-wght-normal.Czsa-EzN.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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-wght-normal.C-3rgBeH.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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-wght-normal.CCVVNp6i.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-wght-italic.xAqemagA.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-wght-italic.DFS986qL.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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-wght-italic.Bxi8ein9.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:Monaspace Neon;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/MonaspaceNeonVarVF.latin.woff2)format("woff2-variations");unicode-range:U+20-7E,U+A0-FF,U+2013-2014,U+2018-2019,U+201C-201D,U+2022,U+2026,U+2190-2193,U+2212,U+25A0,U+25B2,U+25C6,U+25CF}@font-face{font-family:Monaspace Krypton;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/MonaspaceKryptonVarVF.latin.woff2)format("woff2-variations");unicode-range:U+20-7E,U+A0-FF,U+2013-2014,U+2018-2019,U+201C-201D,U+2022,U+2026,U+2190-2193,U+2212,U+25A0,U+25B2,U+25C6,U+25CF}:root{color-scheme:light;--font-body:"Newsreader Variable", Charter, Georgia, serif;--font-display:"Newsreader Variable", Charter, Georgia, serif;--font-ui:system-ui, -apple-system, "Segoe UI", "Noto Sans", "Helvetica Neue", Arial, sans-serif;--font-mono:"Monaspace Neon", ui-monospace, monospace;--font-code:"Monaspace Krypton", ui-monospace, monospace;--paper:#f5f7f9;--plate:#eceff3;--plate-2:#e1e6ec;--node:#fff;--ink:#16202c;--ink-2:#4c5a6a;--rule:#dce2e9;--rule-2:#c4cdd7;--accent:#0a6c80;--accent-2:#074b59;--accent-wash:#dcf0f3;--amber:#955700;--amber-mark:#e8a01e;--amber-wash:#fbefd7;--shadow:0 1px 2px #16202c0f, 0 8px 24px -12px #16202c3d;--sheet-1:var(--paper);--sheet-2:var(--plate);--shape-1:var(--plate);--shape-2:var(--plate-2);--bound-1:var(--rule);--bound-2:var(--rule-2);--line-1:var(--rule);--line-2:var(--rule-2);--sign-1:var(--accent);--sign-2:var(--accent-2);--text-1:var(--ink-2);--text-2:var(--ink);--quiet:var(--ink-2);--canvas:var(--paper);--wood:var(--rule-2);--wood-dark:var(--ink-2);--vine:var(--accent);--focus:#b86a00;--primary-text:#fff;--urgent:var(--accent);--urgent-text:var(--paper);--glass:color-mix(in srgb, var(--plate) 80%, transparent);--radius:.5rem;--radius-interactive:.4rem;--page-max:72rem;--measure:38rem;--article-max:46rem;--site-header-height:4.25rem}.dark{color-scheme:dark;--paper:#0d1520;--plate:#131d2a;--plate-2:#1a2535;--node:#1a2535;--ink:#e3e9f0;--ink-2:#9eadbf;--rule:#1f2a39;--rule-2:#2e3b4d;--accent:#56cfe3;--accent-2:#a6e5f0;--accent-wash:#0c2c38;--amber:#f2b544;--amber-mark:#f2b544;--amber-wash:#31250e;--shadow:0 1px 2px #00000059, 0 10px 28px -12px #000000b3;--focus:#f2b544;--primary-text:#061820;--urgent-text:#061820}@media (prefers-color-scheme:dark){html:not(.light):not(.dark){color-scheme:dark;--paper:#0d1520;--plate:#131d2a;--plate-2:#1a2535;--node:#1a2535;--ink:#e3e9f0;--ink-2:#9eadbf;--rule:#1f2a39;--rule-2:#2e3b4d;--accent:#56cfe3;--accent-2:#a6e5f0;--accent-wash:#0c2c38;--amber:#f2b544;--amber-mark:#f2b544;--amber-wash:#31250e;--shadow:0 1px 2px #00000059, 0 10px 28px -12px #000000b3;--focus:#f2b544;--primary-text:#061820;--urgent-text:#061820}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:var(--rule-2) var(--paper);overflow-x:clip}body{background:var(--paper);min-width:20rem;min-height:100vh;color:var(--ink);font-family:var(--font-body);font-optical-sizing:auto;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:1.1875rem;line-height:1.6;overflow-x:clip}::selection{background:var(--amber-wash);color:var(--ink)}a{color:var(--accent);text-decoration-thickness:1px;text-decoration-color:color-mix(in oklab, currentColor 40%, transparent);text-underline-offset:.18em}@media (hover:hover){a:hover{color:var(--accent-2);text-decoration-color:var(--amber-mark)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){a:where(:not([class])){transition:color .18s,text-decoration-color .18s}}img,svg{display:block}img{max-width:100%;height:auto}button,input{font:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}:target,:focus-visible{scroll-margin-top:calc(var(--site-header-height) + 1rem)}::target-text{background-color:var(--amber-wash);color:var(--ink)}h1,h2,h3,p{margin-top:0}h1,h2,h3,h4{color:var(--ink);font-family:var(--font-display);text-wrap:balance;font-weight:560}h1{letter-spacing:-.02em;margin-bottom:1rem;font-size:clamp(2.4rem,1.7rem + 2.8vw,3.6rem);line-height:1.08}h2{letter-spacing:-.01em;margin-bottom:.75rem;font-size:clamp(1.6rem,1.3rem + 1vw,2.1rem);line-height:1.2}h3{margin-bottom:.5rem;font-size:1.3rem;line-height:1.3}p{text-wrap:pretty;margin-bottom:1.1em}.pixel-name{font-family:var(--font-display)}pre,code,kbd,samp{font-family:var(--font-code);font-size:.86em}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;border:1px solid var(--rule-2);border-radius:var(--radius-interactive);background:var(--plate);color:var(--ink);font-family:var(--font-ui);padding:.6rem 1rem;font-size:.85rem;font-weight:600;text-decoration:none;position:fixed;top:1rem;left:1rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.kicker,.eyebrow{color:var(--ink-2);font-family:var(--font-ui);letter-spacing:.02em;margin-bottom:.6rem;font-size:.8rem;font-weight:600}.lede{max-width:var(--measure);color:var(--ink-2);font-size:1.3rem;line-height:1.5}.meta{color:var(--ink-2);font-family:var(--font-ui);font-size:.85rem;line-height:1.5}.epigraph{max-width:var(--measure);border-left:3px solid var(--rule-2);color:var(--ink-2);margin:2rem 0;padding-left:1.2rem;font-style:italic}.epigraph cite{font-family:var(--font-ui);margin-top:.5rem;font-size:.8rem;font-style:normal;display:block}.colophon{border-top:1px solid var(--rule);color:var(--ink-2);font-family:var(--font-ui);margin-top:2rem;padding-top:1rem;font-size:.8rem}.measure{max-width:var(--measure)}.article-layout{max-width:var(--article-max)}@media (width>=78rem){.article-layout{grid-template-columns:[aside] minmax(11rem, 14rem) [main] minmax(0, var(--article-max));justify-content:center;column-gap:clamp(2.5rem,5vw,5rem);max-width:none;display:grid}.article-layout>*{grid-column:main}.article-layout>.article-sidebar{grid-area:1/aside/span 99;align-self:start}}.page-shell{overflow-clip-margin:1.25rem;width:min(calc(100% - 2.5rem), var(--page-max));margin-inline:auto;padding-block:clamp(2.5rem,6vw,5rem);position:relative;overflow-x:clip}.page-shell--home{padding-top:clamp(2rem,5vw,4rem)}.site-header{z-index:30;border-bottom:1px solid var(--rule);background:color-mix(in srgb, var(--paper) 92%, transparent);backdrop-filter:blur(8px);position:sticky;top:0}.site-header__bar{width:min(calc(100% - 2.5rem), var(--page-max));min-height:var(--site-header-height);align-items:center;gap:1.5rem;margin-inline:auto;display:flex}.wordmark{color:var(--ink);font-family:var(--font-display);letter-spacing:-.01em;white-space:nowrap;margin-right:auto;font-size:1.35rem;font-weight:600;text-decoration:none}.wordmark:hover{color:var(--accent)}.site-nav{align-items:center;gap:.25rem;display:flex}.site-nav__link{border-radius:var(--radius-interactive);color:var(--ink-2);font-family:var(--font-ui);cursor:pointer;padding:.4rem .7rem;font-size:.95rem;font-weight:500;text-decoration:none}@media (hover:hover){.site-nav__link:hover{background:var(--plate);color:var(--ink)}}.site-nav__link.is-current{color:var(--ink);text-decoration:underline;text-decoration-color:var(--amber-mark);text-underline-offset:.45em;text-decoration-thickness:2px}.site-nav__contact{position:relative}.site-nav__contact summary{list-style:none}.site-nav__contact summary::-webkit-details-marker{display:none}.site-nav__contact[open] summary{background:var(--plate);color:var(--ink)}.contact-panel{z-index:40;border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper);min-width:15rem;box-shadow:var(--shadow);gap:.15rem;padding:.5rem;display:grid;position:absolute;top:calc(100% + .5rem);right:0}.contact-panel a{border-radius:var(--radius-interactive);color:var(--ink);font-family:var(--font-ui);padding:.4rem .6rem;font-size:.9rem;text-decoration:none}@media (hover:hover){.contact-panel a:hover{background:var(--plate)}}.contact-panel__address{gap:.15rem;display:flex}.contact-panel__address a{flex:1}.contact-panel__copy{border-radius:var(--radius-interactive);min-width:4.5rem;color:var(--ink-2);font-family:var(--font-ui);cursor:pointer;background:0 0;border:0;padding:.4rem .6rem;font-size:.9rem}@media (hover:hover){.contact-panel__copy:hover{background:var(--plate);color:var(--ink)}}@media (pointer:coarse){.contact-panel__address{min-height:2.75rem}.contact-panel__address a{align-items:center;display:flex}}.theme-toggle-slot{min-width:2.25rem;display:flex}.theme-toggle{border-radius:var(--radius-interactive);width:2.25rem;height:2.25rem;color:var(--ink-2);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.theme-toggle:hover{background:var(--plate);color:var(--ink)}.theme-toggle svg{width:1.1rem;height:1.1rem}.theme-toggle__moon,.dark .theme-toggle__sun{display:none}.dark .theme-toggle__moon{display:block}.button{border:1px solid var(--rule-2);border-radius:var(--radius-interactive);background:var(--paper);color:var(--ink);font-family:var(--font-ui);align-items:center;gap:.45rem;padding:.6rem 1.1rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background-color .14s,border-color .14s;display:inline-flex}.button:hover{border-color:var(--ink-2);background:var(--plate);color:var(--ink)}.button svg{width:1rem;height:1rem}.button--primary{border-color:var(--accent);background:var(--accent);color:var(--primary-text)}.button--primary:hover{border-color:var(--accent-2);background:var(--accent-2);color:var(--primary-text)}.button--secondary{background:0 0}.back-link{color:var(--ink-2);font-family:var(--font-ui);align-items:center;gap:.4rem;margin-bottom:1.5rem;font-size:.9rem;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--accent)}.back-link svg{width:1rem;height:1rem}.section-block{margin-top:clamp(3.5rem,8vw,6rem)}.section-heading{max-width:var(--measure);gap:.4rem;margin-bottom:1.75rem;display:grid}.section-heading h2{margin:0}.section-heading>p{color:var(--ink-2);margin:0}.section-heading--narrow{max-width:var(--measure)}.related-work{margin-top:4rem}.site-footer{border-top:1px solid var(--rule);background:var(--plate);margin-top:clamp(3rem,8vw,6rem)}.site-footer__inner{width:min(calc(100% - 2.5rem), var(--page-max));gap:2rem;margin-inline:auto;padding-block:clamp(2.5rem,6vw,4rem) 2rem;display:grid}@media (width>=48rem){.site-footer__inner{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:end}}.site-footer h2{margin-bottom:.5rem}.site-footer__copy{max-width:32rem;color:var(--ink-2);margin-bottom:1.25rem}.social-links{flex-wrap:wrap;gap:.5rem;display:flex}@media (width>=48rem){.social-links{justify-content:flex-end}}.site-footer__base{width:min(calc(100% - 2.5rem), var(--page-max));border-top:1px solid var(--rule);color:var(--ink-2);font-family:var(--font-ui);justify-content:space-between;gap:1rem;margin-inline:auto;padding-block:1.25rem 2rem;font-size:.85rem;display:flex}.site-footer__base p{margin:0}.site-footer__base a{color:var(--ink-2)}[hidden]{display:none!important}@media (width<=40rem){body{font-size:1.125rem}.site-header__bar{gap:.5rem}.wordmark{font-size:1.15rem}.site-nav__link{padding:.35rem .45rem;font-size:.88rem}.page-shell{width:calc(100% - 2rem)}}@media (width<=30rem){:root{--site-header-height:6.4rem}.site-header__bar{flex-wrap:wrap;row-gap:0;padding-top:.6rem}.wordmark{font-size:1.2rem}.theme-toggle-slot{order:2}.site-nav{order:3;width:calc(100% + .9rem);margin-inline:-.45rem;padding-bottom:.35rem;position:relative}.site-nav__link{padding:.45rem}.site-nav__contact{position:static}.contact-panel{min-width:min(15rem,100% - .9rem);max-width:calc(100% - .9rem);top:calc(100% + .15rem);left:.45rem;right:auto}}@page{margin:16mm 15mm 18mm}@media print{:root,.dark{color-scheme:light;--paper:#fff;--plate:#fff;--plate-2:#e1e6ec;--node:#fff;--ink:#16202c;--ink-2:#4c5a6a;--rule:#c4cdd7;--rule-2:#c4cdd7;--accent:#0a6c80;--accent-2:#074b59;--accent-wash:#dcf0f3;--amber:#955700;--amber-mark:#e8a01e;--amber-wash:#fbefd7;--shadow:none;--focus:#b86a00;--primary-text:#fff;--urgent-text:#fff}body{background:#fff;font-size:10pt}.page-shell{width:100%;padding:0}h1{font-size:24pt}h2{font-size:16pt}h3{font-size:11pt}.site-header,.site-footer,.skip-link,main nav,main button,[data-js-only],.back-link,.button[href^=\/]{display:none!important}.button,.button--primary{border-color:var(--ink-2);color:var(--ink);background:0 0}.button[href^=http]:after{content:attr(href);overflow-wrap:anywhere;font-size:.8em;font-weight:400}main a[href^=http]:not([class],:is(h1,h2,h3,h4) a,address a,nav a,figure a):after{content:" (" attr(href) ")";color:var(--ink-2);font-family:var(--font-ui);overflow-wrap:anywhere;font-size:.8em;font-weight:400}.wipe .wipe__side{clip-path:none!important;grid-area:auto!important}.wipe .wipe__side--after figcaption{justify-content:flex-start!important}.wipe img{object-fit:contain;max-height:94mm}figure,pre,blockquote,.card,.plate,.wipe{break-inside:avoid}h1,h2,h3,h4,:has(+.wipe){break-after:avoid}p{orphans:3;widows:3}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}@keyframes page-fade-in{0%{opacity:0}}::view-transition-group(root){animation-duration:.18s}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation-name:page-fade-in}}.resume-page :is(li,dd),.project__body :is(li,blockquote){text-wrap:pretty}@media (hover:none){.theme-toggle:hover{color:var(--ink-2);background:0 0}.button:hover{border-color:var(--rule-2);background:var(--paper);color:var(--ink)}.button--primary:hover{border-color:var(--accent);background:var(--accent);color:var(--primary-text)}.button--secondary:hover{background:0 0}}.theme-flip,.theme-flip *,.theme-flip :before,.theme-flip :after{transition:none!important}.wordmark,.site-nav__link,.theme-toggle,.back-link,.site-footer__base a{position:relative}.wordmark:after,.site-nav__link:after,.theme-toggle:after,.back-link:after,.site-footer__base a:after{content:"";position:absolute}.wordmark:after{inset:-.5rem 0 -.3rem}.site-nav__link:after{inset:-.25rem 0}.theme-toggle:after{inset:-.25rem}.back-link:after{inset:-.65rem -.25rem}.site-footer__base a:after{inset:-.7rem -.25rem}.button,.card,.neighbour{-webkit-tap-highlight-color:transparent}.button:not(.button--primary):active{border-color:var(--accent);background:var(--plate-2)}.button--primary:active{filter:brightness(.85)}@media (prefers-reduced-motion:no-preference){:root[data-press=scale] .button{transition:background-color .14s,border-color .14s,transform 90ms}:root[data-press=scale] .button:active{transform:scale(.97)}:root[data-press=scale] .card:active{transform:scale(.985)}:is(.button,.home__heading a,.neighbour,.back-link) :is(.lucide-arrow-right,.lucide-arrow-left,.lucide-arrow-up-right,.lucide-download){transition:transform .14s ease-out}:is(.button,.home__heading a,.neighbour):focus-visible .lucide-arrow-right{transform:translate(3px)}:is(.back-link,.neighbour):focus-visible .lucide-arrow-left{transform:translate(-3px)}.button:focus-visible .lucide-arrow-up-right{transform:translate(2px,-2px)}.button:is(:focus-visible,:active) .lucide-download{transform:translateY(2px)}@media (hover:hover){:is(.button,.home__heading a,.neighbour):hover .lucide-arrow-right{transform:translate(3px)}:is(.back-link,.neighbour):hover .lucide-arrow-left{transform:translate(-3px)}.button:hover .lucide-arrow-up-right{transform:translate(2px,-2px)}.button:hover .lucide-download{transform:translateY(2px)}.wordmark,.site-nav__link,.theme-toggle,.back-link{transition:background-color .14s,color .14s}.card__title :is(h2,h3),.neighbour__name{transition:color .16s}}@property --contact-in{syntax:"<number>";inherits:true;initial-value:1}@keyframes motion-contact-in{0%{--contact-in:0}}.site-nav__contact[open]{animation:.16s ease-out motion-contact-in}.site-nav__contact[open] .contact-panel{opacity:var(--contact-in);transform:translateY(calc((1 - var(--contact-in)) * -4px))}@keyframes motion-go-right{45%{transform:translate(5px)}}@keyframes motion-go-left{45%{transform:translate(-5px)}}@keyframes motion-go-up-right{45%{transform:translate(4px,-4px)}}@keyframes motion-dip{45%{transform:translateY(4px)}}:root[data-motion=lively] :is(.button,.home__heading a,.neighbour):focus-visible .lucide-arrow-right{animation:.2s ease-out motion-go-right;transform:none}:root[data-motion=lively] :is(.back-link,.neighbour):focus-visible .lucide-arrow-left{animation:.2s ease-out motion-go-left;transform:none}:root[data-motion=lively] .button:focus-visible .lucide-arrow-up-right{animation:.2s ease-out motion-go-up-right;transform:none}:root[data-motion=lively] .button:focus-visible .lucide-download{animation:.2s ease-out motion-dip;transform:none}@media (hover:hover){:root[data-motion=lively] :is(.button,.home__heading a,.neighbour):hover .lucide-arrow-right{animation:.2s ease-out motion-go-right;transform:none}:root[data-motion=lively] :is(.back-link,.neighbour):hover .lucide-arrow-left{animation:.2s ease-out motion-go-left;transform:none}:root[data-motion=lively] .button:hover .lucide-arrow-up-right{animation:.2s ease-out motion-go-up-right;transform:none}:root[data-motion=lively] .button:hover .lucide-download{animation:.2s ease-out motion-dip;transform:none}}:root[data-motion=lively] .button:active .lucide-download{transform:translateY(3px)}:root[data-motion=lively] .theme-toggle svg{transition:rotate .2s ease-out}:root[data-motion=lively] .theme-toggle:active svg{rotate:90deg}:root[data-motion=lively] .site-nav__contact[open]{animation:.2s ease-out motion-contact-in}:root[data-motion=lively] .site-nav__contact[open] .contact-panel{transform:translateY(calc((1 - var(--contact-in)) * -8px))}:root[data-motion=lively] .site-nav__contact[open] .contact-panel>:first-child{opacity:clamp(0, calc(var(--contact-in) * 2), 1)}:root[data-motion=lively] .site-nav__contact[open] .contact-panel>:nth-child(2){opacity:clamp(0, calc(var(--contact-in) * 2 - .2), 1)}:root[data-motion=lively] .site-nav__contact[open] .contact-panel>:nth-child(3){opacity:clamp(0, calc(var(--contact-in) * 2 - .4), 1)}:root[data-motion=lively] .site-nav__contact[open] .contact-panel>:nth-child(4){opacity:clamp(0, calc(var(--contact-in) * 2 - .6), 1)}:root[data-motion=lively] .site-nav__contact[open] .contact-panel>:nth-child(5){opacity:clamp(0, calc(var(--contact-in) * 2 - .8), 1)}}
