@font-face{font-family:IBM Plex Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/b6a3ba25a63ffdc2-s.15ohl7e77t946.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:IBM Plex Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/c46d9efd5b21dbaa-s.05wsi7y..0-zn.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/6308822089fd3411-s.0gpf~ipgyub9r.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:IBM Plex Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/ff4d9f8b7294524b-s.07f3ikk4yi_cj.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/0e64cfb82a47c250-s.p.0ifiqyzdok2k..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:IBM Plex Serif;font-style:italic;font-weight:500;font-display:swap;src:url(../media/79d9db89a59a83fa-s.00t13ga90sieb.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:IBM Plex Serif;font-style:italic;font-weight:500;font-display:swap;src:url(../media/11705a6cc6a37f59-s.0i8u8rm4-rxel.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Serif;font-style:italic;font-weight:500;font-display:swap;src:url(../media/221a7ef2b9efbaad-s.15v8us89x~07t.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:IBM Plex Serif;font-style:italic;font-weight:500;font-display:swap;src:url(../media/730055c84ed23e9d-s.0c8d635zbe~1j.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Serif;font-style:italic;font-weight:500;font-display:swap;src:url(../media/b02a479d288d97d4-s.p.06_fqbhf6hhmd.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:IBM Plex Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7f49c72243bdcede-s.02n~ovut9q.eh.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:IBM Plex Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a2797aaeec05c026-s.0heuz94e2xu-_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b3baf9375001c1f5-s.0pgow3hyiaf3k.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:IBM Plex Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9096fd5f49bfad97-s.0wnpx~ncnbwem.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ef7be03ed7e60a63-s.p.14o~5h-2n.9~4.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:IBM Plex Serif;font-style:normal;font-weight:500;font-display:swap;src:url(../media/4bd7aa058bc96e4f-s.15bgzjziiwxor.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:IBM Plex Serif;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0bd78c1bd4dfd4c7-s.131wlma90crvu.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Serif;font-style:normal;font-weight:500;font-display:swap;src:url(../media/197b82234d448be7-s.15ua0zfd806~o.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:IBM Plex Serif;font-style:normal;font-weight:500;font-display:swap;src:url(../media/79050e547acec5d8-s.10902ftf82jy~.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Serif;font-style:normal;font-weight:500;font-display:swap;src:url(../media/522cd826f2dc0be6-s.p.0n2990xzhyidg.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:IBM Plex Serif Fallback;src:local(Times New Roman);ascent-override:88.04%;descent-override:23.62%;line-gap-override:0.0%;size-adjust:116.43%}.ibm_plex_serif_355e5f2b-module__OWhCBG__className{font-family:IBM Plex Serif,IBM Plex Serif Fallback}.ibm_plex_serif_355e5f2b-module__OWhCBG__variable{--font-plex-serif:"IBM Plex Serif", "IBM Plex Serif Fallback"}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.0xyeb7czu1stb.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.0vnh8.d8wxa2x.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.0~.8lt~vdqmc3.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.00z~hoalba5dm.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0vwgtotjdgnhr.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.09.f.n_ccld80.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.0xyeb7czu1stb.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.0vnh8.d8wxa2x.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.0~.8lt~vdqmc3.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.00z~hoalba5dm.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0vwgtotjdgnhr.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.09.f.n_ccld80.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.0xyeb7czu1stb.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.0vnh8.d8wxa2x.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.0~.8lt~vdqmc3.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.00z~hoalba5dm.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0vwgtotjdgnhr.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.09.f.n_ccld80.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:IBM Plex Sans Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_a6a9608d-module__M_5FiW__className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.ibm_plex_sans_a6a9608d-module__M_5FiW__variable{--font-plex-sans:"IBM Plex Sans", "IBM Plex Sans Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.08hd0g.321csk.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.0x08jh8vondwt.woff2)format("woff2");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-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.0~wrfy7sm-h4g.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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.0k_.i63k_i_qa.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.p.16-z~2sp29ex6.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.0m9hhkgdlzukj.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.0juuwbcf7uz~t.woff2)format("woff2");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-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.0qg7j5o.yrclm.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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.0hkrq11n-dhos.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.p.07ig5l8azj~hy.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:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_bdb4b585-module__35JmoG__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_bdb4b585-module__35JmoG__variable{--font-plex-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
:root{--paper:#f4efe4;--paper-2:#ece6d8;--paper-3:#e1dac8;--paper-edge:#d5cdb8;--ink:#15140f;--ink-2:#2c2a22;--ink-3:#5a5648;--ink-4:#8a8472;--ink-line:#c3bba6;--white:#fbf8f1;--white-pure:#fff;--rust:#b5522c;--rust-2:#9a3f1e;--rust-3:#e8b79e;--rust-wash:#f5ddcb;--ok:#4a6b3a;--ok-wash:#dde3cc;--warn:#b07c1a;--warn-wash:#efe0be;--err:#8e2a1f;--err-wash:#e8ccc6;--info:#2d5a7a;--info-wash:#cfdae3;--slab:#1b1a15;--slab-2:#26241d;--slab-line:#3a372d;--slab-fg:#e8e2d2;--slab-fg-2:#a8a290;--slab-rust:#e08858;--font-serif:var(--font-plex-serif), "IBM Plex Serif", "Iowan Old Style", Georgia, serif;--font-sans:var(--font-plex-sans), "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--font-mono:var(--font-plex-mono), "IBM Plex Mono", "SF Mono", Menlo, Consolas, monospace;--fs-12:.75rem;--fs-13:.8125rem;--fs-14:.875rem;--fs-16:1rem;--fs-18:1.125rem;--fs-21:1.3125rem;--fs-25:1.5625rem;--fs-31:1.9375rem;--fs-39:2.4375rem;--fs-49:3.0625rem;--fs-61:3.8125rem;--fs-76:4.75rem;--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semi:600;--fw-bold:700;--lh-tight:1.05;--lh-snug:1.2;--lh-normal:1.45;--lh-relaxed:1.6;--lh-loose:1.75;--tr-tight:-.02em;--tr-snug:-.01em;--tr-normal:0;--tr-wide:.04em;--tr-wider:.08em;--tr-widest:.14em;--s-0:0;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-16:64px;--s-20:80px;--s-24:96px;--s-32:128px;--s-40:160px;--r-0:0px;--r-1:2px;--r-2:4px;--r-3:8px;--r-pill:999px;--shadow-0:none;--shadow-1:0 1px 0 #15140f0a;--shadow-2:0 1px 2px #15140f0f, 0 1px 0 #15140f08;--shadow-3:0 4px 14px -6px #15140f1f, 0 1px 0 #15140f0a;--shadow-4:0 12px 32px -12px #15140f2e, 0 2px 0 #15140f0a;--hairline:1px solid var(--ink-line);--hairline-paper:1px solid var(--paper-edge);--hairline-strong:1px solid var(--ink-3);--paper-translucent:#f4efe4eb;--ease-out:cubic-bezier(.2, .7, .2, 1);--ease-in-out:cubic-bezier(.6, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.32, .6, 1);--dur-fast:.12s;--dur-base:.2s;--dur-slow:.36s;--measure:66ch;--content-max:1180px;--gutter:32px}:root[data-theme=dark]{--paper:#14130e;--paper-2:#1f1d17;--paper-3:#2a2820;--paper-edge:#3a372d;--ink:#ece5d2;--ink-2:#c8c1ae;--ink-3:#8a8472;--ink-4:#5a5648;--ink-line:#3a372d;--white:#1f1d17;--white-pure:#2a2820;--rust:#e08858;--rust-2:#f0a07a;--rust-3:#b5522c;--rust-wash:#e0885824;--ok:#93b97a;--ok-wash:#93b97a24;--warn:#d9a23f;--warn-wash:#d9a23f24;--err:#d86a5a;--err-wash:#d86a5a24;--info:#6fa0c2;--info-wash:#6fa0c224;--paper-translucent:#14130ed9;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--font-sans);font-size:var(--fs-16);line-height:var(--lh-relaxed);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}.display,.display-1{font-family:var(--font-serif);font-size:clamp(var(--fs-49), 6vw, var(--fs-76));font-weight:var(--fw-regular);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);color:var(--ink)}h1,.h1{font-family:var(--font-serif);font-size:var(--fs-49);font-weight:var(--fw-regular);line-height:var(--lh-snug);letter-spacing:var(--tr-snug);color:var(--ink);margin:0}h2,.h2{font-family:var(--font-serif);font-size:var(--fs-39);font-weight:var(--fw-regular);line-height:var(--lh-snug);letter-spacing:var(--tr-snug);color:var(--ink);margin:0}h3,.h3{font-family:var(--font-serif);font-size:var(--fs-31);font-weight:var(--fw-regular);line-height:var(--lh-snug);letter-spacing:var(--tr-snug);color:var(--ink);margin:0}h4,.h4{font-family:var(--font-sans);font-size:var(--fs-21);font-weight:var(--fw-semi);line-height:var(--lh-snug);color:var(--ink);margin:0}h5,.h5{font-family:var(--font-sans);font-size:var(--fs-18);font-weight:var(--fw-semi);line-height:var(--lh-snug);color:var(--ink);margin:0}h6,.h6{font-family:var(--font-mono);font-size:var(--fs-12);font-weight:var(--fw-medium);line-height:var(--lh-normal);letter-spacing:var(--tr-widest);text-transform:uppercase;color:var(--ink-3);margin:0}p,.body{font-size:var(--fs-16);line-height:var(--lh-relaxed);color:var(--ink-2);margin:0}.lede{font-family:var(--font-serif);font-size:var(--fs-21);line-height:var(--lh-relaxed);color:var(--ink);font-weight:var(--fw-regular)}.small{font-size:var(--fs-14);line-height:var(--lh-normal);color:var(--ink-3)}.micro{font-family:var(--font-mono);font-size:var(--fs-12);letter-spacing:var(--tr-wide);color:var(--ink-3)}.prose{font-family:var(--font-serif);font-size:var(--fs-18);line-height:var(--lh-loose);color:var(--ink);max-width:var(--measure)}.prose p+p{margin-top:1em}code,.code{font-family:var(--font-mono);background:var(--paper-2);border-radius:var(--r-1);color:var(--ink);border:1px solid var(--paper-edge);padding:1px 6px;font-size:.92em}pre,.pre{font-family:var(--font-mono);font-size:var(--fs-13);line-height:var(--lh-normal);background:var(--slab);color:var(--slab-fg);border-radius:var(--r-2);padding:16px 20px;overflow-x:auto}a,.link{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--ink-line);text-decoration-color:var(--ink-line);text-underline-offset:3px;transition:color var(--dur-fast) var(--ease-out), text-decoration-color var(--dur-fast) var(--ease-out);text-decoration-thickness:1px}a:hover,.link:hover{color:var(--rust);-webkit-text-decoration-color:var(--rust);text-decoration-color:var(--rust)}:focus-visible{outline:2px solid var(--rust);outline-offset:2px}.tabular{font-variant-numeric:tabular-nums}.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}.app{flex-direction:column;min-height:100vh;display:flex}.app>main{flex:1}.skip-link{z-index:100;background:var(--ink);color:var(--paper);font-family:var(--font-sans);transition:top .12s var(--ease-out);border-radius:2px;padding:10px 16px;font-size:14px;font-weight:500;text-decoration:none;position:fixed;top:-100px;left:16px}.skip-link:focus-visible{color:var(--paper);top:16px}.container{width:100%;max-width:1180px;margin:0 auto;padding:0 32px}.container-tight{max-width:880px}.container-prose{max-width:720px}.hdr{z-index:50;background:var(--paper-translucent);-webkit-backdrop-filter:saturate(140%)blur(8px);border-bottom:1px solid var(--paper-edge);position:sticky;top:0}.hdr-inner{justify-content:space-between;align-items:center;height:64px;display:flex}.brand{color:var(--ink);align-items:center;gap:12px;text-decoration:none;display:flex}.brand-mark{background:var(--ink);border-radius:3px;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.brand-mark span{font-family:var(--font-mono);color:var(--paper);letter-spacing:-.5px;font-size:11px;font-weight:600}.brand-name{font-family:var(--font-serif);color:var(--ink);font-size:18px}.brand-sep{color:var(--ink-line);margin:0 8px}.brand-role{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-size:11px}.nav{align-items:center;gap:28px;display:flex}.nav a{font-family:var(--font-sans);color:var(--ink-2);transition:color .12s var(--ease-out);align-items:center;gap:6px;font-size:14px;text-decoration:none;display:inline-flex}.nav a:hover{color:var(--rust)}.nav a.active{color:var(--ink)}.nav a.active:before{content:"";background:var(--rust);border-radius:50%;width:4px;height:4px;display:inline-block}.nav-cv{font-family:var(--font-sans);color:var(--ink-2);border:1px solid var(--ink-line);transition:color .12s var(--ease-out), border-color .12s var(--ease-out), background .12s var(--ease-out);border-radius:2px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.nav-cv:hover{color:var(--rust);border-color:var(--ink-3);background:var(--paper-2)}.nav-cv svg{width:14px;height:14px;display:block}:root[data-theme=dark] .nav-cv{border-color:var(--ink-4);color:var(--ink-2)}:root[data-theme=dark] .nav-cv:hover{border-color:var(--ink-3);color:var(--rust)}.nav-cv-label{letter-spacing:.04em}.theme-toggle{border:1px solid var(--ink-line);width:32px;height:32px;color:var(--ink-2);cursor:pointer;transition:color .12s var(--ease-out), border-color .12s var(--ease-out);background:0 0;border-radius:2px;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{color:var(--rust);border-color:var(--ink-3)}.theme-toggle svg{width:16px;height:16px;display:block}:root[data-theme=dark] .theme-toggle{border-color:var(--ink-4);color:var(--ink-2)}:root[data-theme=dark] .theme-toggle:hover{border-color:var(--ink-3);color:var(--rust)}.hdr-burger{border:1px solid var(--ink-line);width:36px;height:36px;color:var(--ink-2);cursor:pointer;background:0 0;border-radius:2px;justify-content:center;align-items:center;padding:0;display:none}.hdr-burger svg{width:18px;height:18px}.hdr-menu{background:var(--paper);border-bottom:1px solid var(--paper-edge);box-shadow:var(--shadow-2);padding:8px 0 16px;display:none;position:absolute;top:64px;left:0;right:0}.hdr-menu.open{display:block}.hdr-menu a{font-family:var(--font-sans);color:var(--ink-2);border-bottom:1px solid var(--paper-edge);align-items:center;padding:12px 32px;font-size:15px;text-decoration:none;display:flex}.hdr-menu a:last-of-type{border-bottom:none}.hdr-menu a:hover{color:var(--rust);background:var(--paper-2)}.hdr-menu a.active{color:var(--ink)}.hdr-menu a.rust{color:var(--rust)}@media (max-width:720px){.container{padding:0 20px}.brand-sep,.brand-role,.nav .nav-link,.nav .nav-cta,.nav .nav-cv{display:none}.hdr-burger{display:inline-flex}.hdr-menu a{padding-left:20px;padding-right:20px}}.hero{border-bottom:1px solid var(--ink-line);padding:88px 0 64px}.hero h1{font-family:var(--font-serif);font-size:clamp(40px,5.5vw,64px);font-weight:400;line-height:var(--lh-tight);letter-spacing:var(--tr-tight);color:var(--ink);max-width:22ch;margin:0}.hero h1 em{color:var(--rust);font-style:italic}.hero .lede{font-family:var(--font-serif);color:var(--ink-2);max-width:52ch;margin-top:22px;font-size:19px;line-height:1.6}.hero-meta{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;gap:32px;margin-top:36px;font-size:12px;display:flex}.hero-meta span{align-items:center;gap:8px;display:inline-flex}.hero-meta .dot{background:var(--ok);border-radius:50%;width:6px;height:6px}.recruiter-strip{border-top:1px solid var(--ink-line);grid-template-columns:repeat(2,1fr);gap:14px 32px;max-width:760px;margin:32px 0 0;padding:18px 0 0;display:grid}.recruiter-strip>div{grid-template-columns:96px 1fr;align-items:baseline;gap:14px;display:grid}.recruiter-strip dt{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0;font-size:11px;font-weight:500}.recruiter-strip dd{font-family:var(--font-sans);color:var(--ink);margin:0;font-size:14px;line-height:1.4}@media (max-width:720px){.recruiter-strip{grid-template-columns:1fr;gap:12px}.recruiter-strip>div{grid-template-columns:80px 1fr;gap:12px}.hero{padding:56px 0 48px}.hero h1{font-size:clamp(32px,9vw,44px)}.hero .lede{margin-top:18px;font-size:17px}.hero-meta{gap:16px 24px;margin-top:28px}}.section{padding:96px 0}.section+.section{border-top:1px solid var(--ink-line)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:40px;display:flex}.section-head h2{font-size:38px}@media (max-width:720px){.section{padding:64px 0}.section-head h2{font-size:28px}.section-head{margin-bottom:28px}}.section-head h2{font-family:var(--font-serif);letter-spacing:-.015em;margin:0;font-size:32px;font-weight:400}.section-head .more{font-family:var(--font-sans);color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--ink-line);text-decoration-color:var(--ink-line);text-underline-offset:3px;white-space:nowrap;font-size:14px}.section-head .more:hover{color:var(--rust);-webkit-text-decoration-color:var(--rust);text-decoration-color:var(--rust)}.eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:10px;font-size:12px;font-weight:500;display:inline-flex}.eyebrow:before{content:"";background:var(--ink-3);width:18px;height:1px;display:inline-block}.project-grid{grid-template-columns:repeat(2,1fr);gap:0;display:grid}@media (min-width:1080px){.project-grid-3{grid-template-columns:repeat(3,1fr)}}@media (max-width:720px){.project-grid{grid-template-columns:1fr}}.project{color:inherit;border-top:1px solid var(--ink-line);transition:background .12s var(--ease-out);cursor:pointer;padding:28px 0;text-decoration:none;display:block;position:relative}.project:hover{background:var(--paper-2)}.project-inner{padding:0 20px}.project-arrow{font-family:var(--font-mono);color:var(--ink-line);transition:color .12s var(--ease-out), transform .12s var(--ease-out);font-size:14px;position:absolute;top:28px;right:20px}.project:hover .project-arrow{color:var(--rust);transform:translate(2px,-2px)}.project-meta{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}.project-status{align-items:center;gap:6px;display:inline-flex}.project-status .dot{border-radius:50%;width:6px;height:6px}.project h3{font-family:var(--font-serif);color:var(--ink);letter-spacing:-.01em;margin:10px 0 8px;font-size:24px;font-weight:400;line-height:1.2}.project p{font-family:var(--font-sans);color:var(--ink-2);max-width:48ch;margin:0;font-size:14px;line-height:1.55}.project-stack{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.project-pinned{color:var(--rust-2);margin-left:auto}:root[data-theme=dark] .project-pinned{color:var(--rust)}.project-company{color:var(--ink-2);font-weight:500}.project-image-wrap{aspect-ratio:16/10;border:1px solid var(--ink-line);background:var(--paper-2);border-radius:4px;width:100%;margin-bottom:18px;position:relative;overflow:hidden}.project-image{object-fit:cover}@media (max-width:720px){.project-image-wrap{aspect-ratio:4/3;margin-bottom:14px}}.project-links{gap:18px;margin-top:14px;display:flex}.project-links a{font-family:var(--font-mono);color:var(--rust);text-decoration:underline;-webkit-text-decoration-color:var(--ink-line);text-decoration-color:var(--ink-line);text-underline-offset:3px;letter-spacing:.04em;font-size:12px}.project-links a:hover{-webkit-text-decoration-color:var(--rust);text-decoration-color:var(--rust)}.tag{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;background:var(--paper-2);color:var(--ink-2);border:1px solid var(--paper-edge);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:11px;font-weight:500;display:inline-flex}.tag.rust{background:var(--rust-wash);color:var(--rust-2);border-color:#0000}.tag.ok{background:var(--ok-wash);color:var(--ok);border-color:#0000}.tag.warn{background:var(--warn-wash);color:#7e5710;border-color:#0000}.tag.info{background:var(--info-wash);color:var(--info);border-color:#0000}.btn{font-family:var(--font-sans);cursor:pointer;transition:all .12s var(--ease-out);border:1px solid #0000;border-radius:2px;align-items:center;gap:8px;padding:11px 16px;font-size:14px;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--rust);color:var(--paper)}.btn-secondary{color:var(--ink);border-color:var(--ink-line);background:0 0}.btn-secondary:hover{border-color:var(--ink-3);color:var(--ink)}.btn-rust{background:var(--rust);color:var(--paper)}.btn-rust:hover{background:var(--rust-2);color:var(--paper)}.btn-ghost{color:var(--ink);background:0 0;padding:0}.btn-ghost:hover{color:var(--rust)}.contact{background:var(--ink);color:var(--paper);border-radius:4px;grid-template-columns:1.4fr 1fr;align-items:center;gap:48px;padding:56px 48px;display:grid}@media (max-width:720px){.contact{grid-template-columns:1fr;padding:40px 28px}}.contact h3{font-family:var(--font-serif);color:var(--paper);letter-spacing:-.015em;margin:0;font-size:36px;font-weight:400;line-height:1.15}.contact .eyebrow{color:rgb(from var(--paper) r g b / .78)}.contact .eyebrow:before{background:rgb(from var(--paper) r g b / .78)}.contact h3{color:var(--paper)}.contact .lede{font-family:var(--font-serif);color:rgb(from var(--paper) r g b / .86);margin-top:12px;font-size:16px;line-height:1.55}.contact .links{flex-direction:column;gap:0;display:flex}.contact .links a{border-top:1px solid rgb(from var(--paper) r g b / .22);color:var(--paper);font-family:var(--font-sans);transition:color .12s var(--ease-out);justify-content:space-between;align-items:center;padding:14px 0;font-size:14px;text-decoration:none;display:flex}.contact .links a:hover{color:var(--rust)}.contact .links a:last-child{border-bottom:1px solid rgb(from var(--paper) r g b / .22)}.contact .links .k{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:rgb(from var(--paper) r g b / .82);font-size:11px}.cs-head{border-bottom:1px solid var(--ink-line);padding:88px 0 48px}@media (max-width:720px){.cs-head{padding:48px 0 32px}}.cs-head h1{font-family:var(--font-serif);letter-spacing:-.02em;max-width:22ch;margin:14px 0 0;font-size:clamp(30px,6vw,56px);font-weight:400;line-height:1.1}.cs-head .dek{font-family:var(--font-serif);color:var(--ink-2);max-width:56ch;margin:22px 0 0;font-size:19px;line-height:1.55}.cs-grid{grid-template-columns:220px 1fr;gap:56px;padding:56px 0;display:grid}@media (max-width:720px){.cs-grid{grid-template-columns:1fr;gap:32px}}.cs-side{font-family:var(--font-mono);color:var(--ink-3);align-self:start;font-size:12px;position:sticky;top:88px}@media (max-width:720px){.cs-side{position:static}}.cs-side dl{margin:0}.cs-side dt{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:10px;margin-top:18px;font-size:12px;font-weight:500;display:inline-flex}.cs-side dt:before{content:"";background:var(--ink-3);width:18px;height:1px;display:inline-block}.cs-side dt:first-of-type{margin-top:0}.cs-side dd{font-family:var(--font-sans);color:var(--ink);margin:6px 0 0;font-size:14px}.cs-body{font-family:var(--font-serif);color:var(--ink);font-size:18px;line-height:1.75}.cs-body p{margin:0 0 1.2em}.cs-body h2{font-family:var(--font-serif);letter-spacing:-.01em;color:var(--ink);margin:1.8em 0 .4em;font-size:24px;font-weight:500;line-height:1.2}.cs-body code{font-family:var(--font-mono);background:var(--paper-2);border:1px solid var(--paper-edge);border-radius:2px;padding:1px 6px;font-size:.88em}.callout{background:var(--rust-wash);border-left:2px solid var(--rust);border-radius:0 2px 2px 0;margin:1.5em 0;padding:16px 20px}.callout .eyebrow{color:var(--rust-2)}.callout .eyebrow:before{background:var(--rust-2)}.callout p{color:var(--ink);font-size:16px;font-family:var(--font-serif);margin:6px 0 0}.cs-nav{border-top:1px solid var(--ink-line);grid-template-columns:1fr 1fr;gap:24px;margin-top:24px;padding:32px 0 56px;display:grid}.cs-nav>*{color:inherit;flex-direction:column;gap:8px;text-decoration:none;display:flex}.cs-nav-next{text-align:right;align-items:flex-end}.cs-nav .eyebrow{font-size:12px}.cs-nav-title{font-family:var(--font-serif);color:var(--ink);transition:color .12s var(--ease-out);font-size:18px;line-height:1.3}.cs-nav a:hover .cs-nav-title{color:var(--rust)}@media (max-width:600px){.cs-nav{grid-template-columns:1fr;gap:24px}.cs-nav-next{text-align:left;align-items:flex-start}}.stat-row{border-top:1px solid var(--ink-3);border-bottom:1px solid var(--ink-line);grid-template-columns:repeat(3,1fr);gap:0;margin:1.5em 0;padding:22px 0;display:grid}.stat-row>div+div{border-left:1px solid var(--ink-line);padding-left:22px}@media (max-width:600px){.stat-row{grid-template-columns:1fr;gap:16px;padding:16px 0}.stat-row>div+div{border-left:none;border-top:1px solid var(--ink-line);padding-top:16px;padding-left:0}}.stat-row .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink);font-size:32px;font-weight:400;line-height:1}.stat-row .num.rust{color:var(--rust)}.stat-row .lbl{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-top:6px;font-size:12px}.tl{border-top:1px solid var(--ink-line)}.tl-item{border-bottom:1px solid var(--ink-line);grid-template-columns:140px 1fr 1fr;gap:32px;padding:24px 0;display:grid}@media (max-width:720px){.tl-item{grid-template-columns:1fr;gap:8px}}.tl-date{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.04em;padding-top:4px;font-size:12px}.tl-title{font-family:var(--font-serif);color:var(--ink);font-size:19px;font-weight:400;line-height:1.3}.tl-company{font-family:var(--font-mono);color:var(--rust-2);letter-spacing:.04em;margin-top:4px;font-size:12px}:root[data-theme=dark] .tl-company{color:var(--rust)}.tl-desc{font-family:var(--font-sans);color:var(--ink-2);font-size:14px;line-height:1.55}.about-row{grid-template-columns:220px 1fr;gap:56px;display:grid}@media (max-width:720px){.about-row{grid-template-columns:1fr;gap:16px}}.about-headshot{border:1px solid var(--ink-line);filter:saturate(.9);width:140px;height:140px;box-shadow:0 0 0 4px var(--paper);background:0 0;border-radius:50%;margin-bottom:28px;overflow:hidden}.about-headshot img{object-fit:cover;width:100%;height:100%;display:block}:root[data-theme=dark] .about-headshot{filter:saturate(.75)brightness(.92);border-color:var(--ink-3);box-shadow:0 0 0 4px var(--paper)}.tl-item[data-tl-kind=independent] .tl-title{color:var(--ink-2);font-style:italic}.tl-item[data-tl-kind=independent] .tl-company,.tl-item[data-tl-kind=independent] .tl-desc{color:var(--ink-3)}.skill-groups{flex-direction:column;gap:22px;display:flex}.skill-group-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:10px;font-size:11px;font-weight:500}.skill-group-tags{flex-wrap:wrap;gap:8px;display:flex}.filter-row{border-bottom:1px solid var(--ink-line);flex-wrap:wrap;gap:0;margin-bottom:8px;display:flex}.filter-row .count{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;align-self:center;margin-left:auto;padding:10px 0;font-size:11px}.filter-tab{font-family:var(--font-sans);color:var(--ink-3);cursor:pointer;transition:color .12s var(--ease-out);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px 12px;font-size:14px;font-weight:400}.filter-tab:hover{color:var(--ink)}.filter-tab.active{color:var(--ink);border-bottom-color:var(--rust);font-weight:500}.ftr{border-top:1px solid var(--ink-3);margin-top:80px;padding:56px 0 40px}.ftr-inner{grid-template-columns:1.6fr 1fr 1.2fr;gap:36px;display:grid}@media (max-width:720px){.ftr-inner{grid-template-columns:1fr 1fr}}.ftr .ftr-h{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 14px;font-size:12px;font-weight:500}.ftr ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ftr a{font-family:var(--font-sans);color:var(--ink-2);font-size:14px;text-decoration:none}.ftr a:hover{color:var(--rust)}.ftr-bottom{border-top:1px solid var(--paper-edge);font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:48px;padding-top:20px;font-size:11px;display:flex}.contact-card{border:1px solid var(--ink-line);transition:border-color .12s var(--ease-out);border-radius:4px;padding:20px;text-decoration:none;display:block}.contact-card:hover{border-color:var(--ink-3)}.contact-card .v{font-family:var(--font-serif);color:var(--ink);margin-top:8px;font-size:18px}.contact-grid{grid-template-columns:1fr 1fr;gap:24px;max-width:640px;margin-top:32px;display:grid}@media (max-width:600px){.contact-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media print{:root,:root[data-theme=dark]{--paper:#fff;--paper-2:#f5f5f5;--paper-edge:#d0d0d0;--ink:#15140f;--ink-2:#2c2a22;--ink-3:#5a5648;--ink-line:silver;--paper-translucent:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:#fff}.hdr,.ftr,.skip-link,.theme-toggle,.hdr-burger,.hdr-menu,.project-image-wrap,.project-links,.btn{display:none!important}.container{max-width:100%;padding:0 24px}a{color:var(--ink);text-decoration:none}.hero{border-bottom:1px solid var(--ink-line);page-break-after:avoid;padding:24px 0}.section{padding:24px 0}.project-grid{grid-template-columns:1fr;gap:12px}.project{page-break-inside:avoid;padding:12px 0}.contact{color:var(--ink);border:1px solid var(--ink-line);background:#fff;padding:16px 0}.contact h3,.contact .eyebrow,.contact .lede{color:var(--ink)!important}.contact .links a{color:var(--ink)!important;border-color:var(--ink-line)!important}.tl-item{page-break-inside:avoid}.cs-nav{display:none!important}}
