@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/13bf9871fe164e7f-s.f2220059.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/cc545e633e20c56d-s.f6f1950f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/71b036adf157cdcf-s.bd5f4d11.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/89b21bb081cb7469-s.51c18f09.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/3fe682a82f50d426-s.23358719.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:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.15008bfb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/13bf9871fe164e7f-s.f2220059.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/cc545e633e20c56d-s.f6f1950f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/71b036adf157cdcf-s.bd5f4d11.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/89b21bb081cb7469-s.51c18f09.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3fe682a82f50d426-s.23358719.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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.15008bfb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/13bf9871fe164e7f-s.f2220059.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/cc545e633e20c56d-s.f6f1950f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/71b036adf157cdcf-s.bd5f4d11.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/89b21bb081cb7469-s.51c18f09.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/3fe682a82f50d426-s.23358719.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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.15008bfb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/13bf9871fe164e7f-s.f2220059.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/cc545e633e20c56d-s.f6f1950f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/71b036adf157cdcf-s.bd5f4d11.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/89b21bb081cb7469-s.51c18f09.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/3fe682a82f50d426-s.23358719.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:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.15008bfb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/13bf9871fe164e7f-s.f2220059.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/cc545e633e20c56d-s.f6f1950f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/71b036adf157cdcf-s.bd5f4d11.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/89b21bb081cb7469-s.51c18f09.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/3fe682a82f50d426-s.23358719.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:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.15008bfb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_c2a68d04-module__t8UQMG__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_c2a68d04-module__t8UQMG__variable{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}
@font-face{font-family:Newsreader;font-style:italic;font-weight:300;font-display:swap;src:url(../media/79e9e0e3b9220e46-s.12c18379.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:Newsreader;font-style:italic;font-weight:300;font-display:swap;src:url(../media/e62850744c7f266e-s.98408aef.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:Newsreader;font-style:italic;font-weight:300;font-display:swap;src:url(../media/9433d1a810498265-s.p.8f3b692e.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:Newsreader;font-style:italic;font-weight:400;font-display:swap;src:url(../media/79e9e0e3b9220e46-s.12c18379.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:Newsreader;font-style:italic;font-weight:400;font-display:swap;src:url(../media/e62850744c7f266e-s.98408aef.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:Newsreader;font-style:italic;font-weight:400;font-display:swap;src:url(../media/9433d1a810498265-s.p.8f3b692e.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:Newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(../media/79e9e0e3b9220e46-s.12c18379.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:Newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(../media/e62850744c7f266e-s.98408aef.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:Newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(../media/9433d1a810498265-s.p.8f3b692e.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:Newsreader;font-style:italic;font-weight:600;font-display:swap;src:url(../media/79e9e0e3b9220e46-s.12c18379.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:Newsreader;font-style:italic;font-weight:600;font-display:swap;src:url(../media/e62850744c7f266e-s.98408aef.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:Newsreader;font-style:italic;font-weight:600;font-display:swap;src:url(../media/9433d1a810498265-s.p.8f3b692e.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:Newsreader;font-style:normal;font-weight:300;font-display:swap;src:url(../media/150f724d70372c02-s.cfe419c8.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:Newsreader;font-style:normal;font-weight:300;font-display:swap;src:url(../media/750c737482d9de2f-s.1c29fe1a.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:Newsreader;font-style:normal;font-weight:300;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.b72f0478.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:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(../media/150f724d70372c02-s.cfe419c8.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:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(../media/750c737482d9de2f-s.1c29fe1a.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:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.b72f0478.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:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(../media/150f724d70372c02-s.cfe419c8.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:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(../media/750c737482d9de2f-s.1c29fe1a.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:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.b72f0478.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:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(../media/150f724d70372c02-s.cfe419c8.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:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(../media/750c737482d9de2f-s.1c29fe1a.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:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.b72f0478.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:Newsreader Fallback;src:local(Times New Roman);ascent-override:69.68%;descent-override:25.12%;line-gap-override:0.0%;size-adjust:105.48%}.newsreader_98cb6170-module__w013_a__className{font-family:Newsreader,Newsreader Fallback}.newsreader_98cb6170-module__w013_a__variable{--ed-font-display:"Newsreader","Newsreader Fallback"}
@font-face{font-family:Archivo;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/a2947afc6a06879b-s.5f161693.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:Archivo;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/651aaf1801011892-s.7b2da7da.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:Archivo;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/75affa71d1e2f6a7-s.p.51cde8ff.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:Archivo;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/a2947afc6a06879b-s.5f161693.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:Archivo;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/651aaf1801011892-s.7b2da7da.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:Archivo;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/75affa71d1e2f6a7-s.p.51cde8ff.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:Archivo;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/a2947afc6a06879b-s.5f161693.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:Archivo;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/651aaf1801011892-s.7b2da7da.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:Archivo;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/75affa71d1e2f6a7-s.p.51cde8ff.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:Archivo;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/a2947afc6a06879b-s.5f161693.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:Archivo;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/651aaf1801011892-s.7b2da7da.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:Archivo;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/75affa71d1e2f6a7-s.p.51cde8ff.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:Archivo Fallback;src:local(Arial);ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.0%;size-adjust:98.7%}.archivo_c3d7b563-module__YlkWmq__className{font-family:Archivo,Archivo Fallback;font-style:normal}.archivo_c3d7b563-module__YlkWmq__variable{--ed-font-body:"Archivo","Archivo Fallback"}
:root,[data-theme=terminal]{--bg:#070c15;--bg-panel:#a259ff0b;--bg-panel-h:#a259ff17;--border:#a259ff38;--border-h:#a259ff99;--primary:#a259ff;--p-rgb:162,89,255;--accent:#39d353;--acc2:#58b8ff;--text:#dce1ea;--text-muted:#6a7a90;--text-dim:#2a3545;--hdr-bg:#070c15ed;--code-bg:#00000080;--glow-bg:#5014a02e;--r-card:4px;--r-btn:3px;--hero-bar:#121622f7}[data-theme=red]{--bg:#0c0608;--bg-panel:#dc262614;--bg-panel-h:#dc262629;--border:#dc26264d;--border-h:#dc2626ad;--primary:#f05555;--p-rgb:240,85,85;--accent:#34d399;--acc2:#58b8ff;--text:#ede0e2;--text-muted:#a08488;--text-dim:#3a1a1a;--hdr-bg:#0c0608f2;--code-bg:#00000094;--glow-bg:#b4141433;--r-card:4px;--r-btn:3px;--hero-bar:#10080af7}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);background-image:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(var(--p-rgb),.07)0%,transparent 60%),radial-gradient(ellipse 50% 40% at 85% 75%,rgba(var(--p-rgb),.04)0%,transparent 50%);background-attachment:fixed;font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.65;overflow-x:hidden}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}body.scanlines:after{content:"";pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#0000000a 2px 4px);position:fixed;inset:0}.port-main{padding-top:52px}.port-section{max-width:1100px;margin:0 auto;padding:72px 24px;scroll-margin-top:52px}.section-head{margin-bottom:40px}.section-label{color:var(--accent);letter-spacing:.12em;margin-bottom:8px;font-size:12px;display:block}.section-title{color:var(--text);margin-bottom:10px;font-size:clamp(22px,4vw,36px);font-weight:700;line-height:1.2}.section-sub{color:var(--text-muted);max-width:560px;font-size:13px}.port-header{z-index:100;background:var(--hdr-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--border);height:52px;position:fixed;top:0;left:0;right:0}.header-inner{align-items:center;gap:20px;max-width:1200px;height:52px;margin:0 auto;padding:0 24px;display:flex}.header-logo{color:var(--text);flex-shrink:0;align-items:center;gap:8px;text-decoration:none;transition:color .18s;display:flex}.header-logo:hover{color:var(--primary)}.header-brand{letter-spacing:-.02em;font-size:15px;font-weight:700}.header-nav{flex:1;justify-content:center;align-items:center;gap:2px;display:flex}.nav-link{color:var(--text-muted);border-radius:var(--r-btn);border:1px solid #0000;padding:4px 10px;font-size:12px;text-decoration:none;transition:all .18s}.nav-link:hover{color:var(--text);background:var(--bg-panel)}.nav-active{color:var(--primary)!important;border-color:var(--border)!important;background:var(--bg-panel)!important}.header-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.lang-toggle{background:var(--bg-panel);border:1px solid var(--border);color:var(--primary);border-radius:var(--r-btn);cursor:pointer;letter-spacing:.1em;padding:4px 10px;font-family:inherit;font-size:11px;font-weight:700;transition:all .18s}.lang-toggle:hover{background:var(--bg-panel-h);border-color:var(--primary)}.mobile-menu-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:none}.hamburger{background:var(--text);border-radius:1px;width:20px;height:2px;transition:all .2s;display:block;position:relative}.hamburger:before,.hamburger:after{content:"";background:var(--text);border-radius:1px;width:20px;height:2px;transition:all .2s;display:block;position:absolute;left:0}.hamburger:before{top:-6px}.hamburger:after{top:6px}.hamburger.open{background:0 0}.hamburger.open:before{top:0;transform:rotate(45deg)}.hamburger.open:after{top:0;transform:rotate(-45deg)}.mobile-nav{background:var(--hdr-bg);border-top:1px solid var(--border);padding:6px 0}.mobile-nav-link{color:var(--text-muted);padding:10px 24px;font-size:13px;text-decoration:none;transition:color .15s;display:block}.mobile-nav-link:hover,.mobile-nav-link.nav-active{color:var(--primary)}.term-ps{color:var(--primary);font-weight:600}.term-sep{color:var(--text-dim)}.term-tilde{color:var(--accent)}.term-dollar{color:var(--primary);margin-left:2px}.term-cmd-text{color:var(--text)}.term-prompt-line{padding:1px 0;font-size:13px}.term-output{margin-top:2px;padding-left:4px;font-size:12px}.term-output-green{color:var(--accent);margin-bottom:18px;font-size:12px;display:block}.term-box{border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden}.term-box-header{background:var(--code-bg);border-bottom:1px solid var(--border);padding:6px 14px}.term-box-label{color:var(--text-muted);font-size:11px}.term-box-body{background:var(--bg-panel);padding:18px 20px}.hero-section{padding:72px 24px 48px}.hero-term-bar{background:var(--hero-bar);border:1px solid var(--border);border-radius:var(--r-card)var(--r-card)0 0;border-bottom:none;align-items:center;gap:12px;padding:8px 16px;display:flex}.hero-term-branch{color:var(--accent);flex-shrink:0;font-size:11px}.hero-term-body{background:var(--code-bg);border:1px solid var(--border);border-radius:0 0 var(--r-card)var(--r-card);border-top:none;padding:24px 28px}.hero-divider{border:none;border-top:1px solid var(--border);margin:18px 0}.hero-whoami{color:var(--text-muted);margin-bottom:6px;font-size:13px}.hero-name{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;display:flex}.hero-name-text{color:var(--text-muted);font-size:clamp(18px,3.5vw,26px)}.hero-tw-wrap{color:var(--primary);align-items:center;min-height:1.4em;font-size:clamp(18px,3.5vw,26px);font-weight:700;display:inline-flex}.hero-subtitle-row{align-items:flex-start;gap:8px;margin-bottom:20px;display:flex}.term-dollar-sm{color:var(--primary);flex-shrink:0;padding-top:2px}.hero-subtitle{color:var(--text-muted);max-width:500px;font-size:13px;line-height:1.7}.hero-ctas{flex-wrap:wrap;gap:10px;display:flex}.hero-ascii-footer{text-align:center;color:var(--text-dim);justify-content:center;align-items:center;gap:4px;margin-top:16px;font-size:11px;display:flex}.ascii-logo-inline{color:var(--primary);opacity:.4;align-items:center;display:inline-flex}.hero-linux-icon{color:var(--primary);opacity:.8;flex-shrink:0;font-size:13px;font-weight:700}.hero-linux-title{flex:1;align-items:center;gap:3px;font-size:12px;display:flex}.hero-linux-sep{color:var(--text-dim)}.hero-code-block{font-size:13px;line-height:1.75}.code-line{line-height:1.75;display:block}.code-lnum{min-width:26px;color:var(--text-dim);text-align:right;-webkit-user-select:none;user-select:none;vertical-align:baseline;margin-right:16px;font-size:11px;display:inline-block}.code-comment{color:var(--text-muted);font-style:italic}.code-kw{color:var(--acc2)}.code-var{color:var(--text)}.code-plain{color:#b4bed299}.code-bracket{color:var(--primary);opacity:.75}.code-key{color:var(--primary)}.code-str{color:#f9c86e}.code-str-green{color:var(--accent);font-weight:600}.code-arr{color:#fd8f6e}.btn-primary{background:var(--primary);color:#fff;border:1px solid var(--primary);border-radius:var(--r-btn);cursor:pointer;letter-spacing:.02em;align-items:center;padding:10px 22px;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;transition:all .18s;display:inline-flex}.btn-primary:hover{opacity:.84;box-shadow:0 4px 20px rgba(var(--p-rgb),.35);transform:translateY(-1px)}.btn-ghost{color:var(--primary);border:1px solid var(--border);border-radius:var(--r-btn);cursor:pointer;background:0 0;align-items:center;padding:10px 22px;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;transition:all .18s;display:inline-flex}.btn-ghost:hover{border-color:var(--primary);background:rgba(var(--p-rgb),.08);transform:translateY(-1px)}.btn-sm{padding:5px 14px;font-size:12px}.tech-tag{border:1px solid var(--border);color:var(--text-muted);border-radius:3px;margin:2px;padding:2px 7px;font-size:11px;transition:all .15s;display:inline-block}.tech-tag:hover{border-color:var(--primary);color:var(--primary)}.filter-bar{margin-bottom:10px}.filter-bar-prompt{margin-bottom:10px;font-size:12px}.filter-tabs{flex-wrap:wrap;gap:6px;display:flex}.filter-tab{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:3px;padding:3px 10px;font-family:inherit;font-size:11px;transition:all .15s}.filter-tab:hover{border-color:var(--primary);color:var(--primary)}.filter-tab-active{border-color:var(--primary);color:var(--primary);background:rgba(var(--p-rgb),.1)}.filter-result-line{margin-bottom:22px}.proj-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px;display:grid}.proj-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-card);flex-direction:column;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex;overflow:hidden}.proj-card:hover{border-color:var(--border-h);box-shadow:0 8px 32px rgba(var(--p-rgb),.12);transform:translateY(-2px)}[data-theme=terminal] .proj-card{border-left:3px solid #0000}[data-theme=terminal] .proj-card:hover{border-left-color:var(--primary)}.proj-retro-head{background:var(--code-bg);border-bottom:1px solid var(--border);align-items:center;gap:10px;min-height:34px;padding:8px 12px;display:flex}.proj-retro-num{color:var(--primary);letter-spacing:.06em;flex-shrink:0;font-size:12px;font-weight:700}.proj-retro-line{background:var(--border);flex:1;height:1px}.proj-links-inline{flex-shrink:0;gap:5px;display:flex}.proj-link-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:3px;padding:2px 7px;font-family:inherit;font-size:10px;text-decoration:none;transition:all .15s}.proj-link-btn:hover{border-color:var(--primary);color:var(--primary)}.proj-link-demo{border-color:rgba(var(--p-rgb),.35);color:var(--primary);background:rgba(var(--p-rgb),.06)}.proj-thumb{aspect-ratio:16/9;background:var(--bg-panel);cursor:pointer;position:relative;overflow:hidden}.proj-thumb-placeholder{position:absolute;inset:0}.proj-thumb-grid{background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-size:22px 22px;position:absolute;inset:0}.proj-thumb-inner{z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:100%;display:flex;position:relative}.proj-thumb-icon{color:var(--proj-color,var(--primary));opacity:.7;font-family:monospace;font-size:26px}.proj-thumb-name{color:var(--text-muted);text-align:center;padding:0 12px;font-size:11px}.proj-thumb-glow{background:radial-gradient(ellipse at center,var(--proj-color,var(--primary)),transparent 65%);opacity:.12;pointer-events:none;position:absolute;inset:0}.proj-thumb img,.proj-thumb video{object-fit:cover;width:100%;height:100%;display:block}.proj-thumb-play{opacity:0;background:#00000059;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.proj-thumb:hover .proj-thumb-play{opacity:1}.proj-thumb-play-icon{background:#000000a6;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.proj-card-body{flex-direction:column;flex:1;gap:9px;padding:14px 15px;display:flex}.proj-labels{flex-wrap:wrap;gap:4px;display:flex}.proj-title{color:var(--text);font-size:14px;font-weight:700;line-height:1.3}.proj-desc{color:var(--text-muted);flex:1;font-size:11px;line-height:1.65}.proj-tech{flex-wrap:wrap;margin-top:2px;display:flex}.proj-img-nav{z-index:10;color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:14px;transition:background .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.proj-img-nav:hover{background:#000000e6}.proj-img-nav-l{left:6px}.proj-img-nav-r{right:6px}.proj-img-dots{z-index:10;gap:4px;display:flex;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.proj-img-dot{background:#fff6;border-radius:50%;width:5px;height:5px;transition:background .15s}.proj-img-dot-active{background:var(--primary)}.modal-overlay{z-index:9998;background:#000000d9;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-box{border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg);width:100%;max-width:900px;overflow:hidden}.modal-header{background:var(--code-bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;display:flex}.modal-title-line{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:4px;min-width:0;font-size:12px;display:flex;overflow:hidden}.modal-close{border:1px solid var(--border);color:var(--text-muted);border-radius:var(--r-btn);cursor:pointer;background:0 0;flex-shrink:0;padding:2px 8px;font-family:inherit;font-size:11px;transition:all .15s}.modal-close:hover{border-color:var(--primary);color:var(--primary)}.modal-body{background:#000;padding:12px;position:relative}.modal-body video{border-radius:2px;width:100%;max-height:70vh;display:block}.modal-body img{object-fit:contain;border-radius:2px;width:100%;max-height:70vh;display:block}.modal-nav{z-index:10;border:1px solid var(--border);color:var(--text-muted);border-radius:var(--r-btn);cursor:pointer;background:#000000a6;padding:6px 10px;font-family:inherit;font-size:13px;transition:all .15s;position:absolute;top:50%;transform:translateY(-50%)}.modal-nav:hover{border-color:var(--primary);color:var(--primary)}.modal-nav-l{left:16px}.modal-nav-r{right:16px}.modal-dots{justify-content:center;gap:6px;padding:10px 0 4px;display:flex}.modal-dot{background:var(--text-dim);cursor:pointer;border:none;border-radius:50%;width:6px;height:6px;padding:0;transition:background .15s}.modal-dot-active{background:var(--primary)}.about-grid{grid-template-columns:260px 1fr;align-items:stretch;gap:24px;display:grid}.about-unified{border:1px solid var(--border);border-radius:var(--r-card);flex-direction:column;display:flex;overflow:hidden}.about-photo-section{flex-shrink:0;line-height:0}.about-photo-sq{aspect-ratio:1;object-fit:cover;object-position:top center;width:100%;display:block}.about-bio-section{background:var(--bg-panel);flex:1;padding:16px}.about-bio{color:var(--text);opacity:.88;margin:10px 0;font-size:13px;line-height:1.8}.about-right{flex-direction:column;display:flex}.about-right .term-box{flex-direction:column;flex:1;display:flex}.about-right .term-box-body{flex:1;overflow-y:auto}.process-list{margin-top:6px}.process-item{border-bottom:1px solid var(--text-dim);align-items:flex-start;gap:12px;padding:8px 0;display:flex}.process-item:last-child{border-bottom:none}.process-step{color:var(--primary);flex-shrink:0;min-width:28px;padding-top:1px;font-size:11px;font-weight:700}.process-bar{background:var(--border);flex-shrink:0;width:1px;min-height:24px}.process-content{flex-direction:column;gap:2px;padding-bottom:4px;display:flex}.process-title{color:var(--text);font-size:12px;font-weight:600}.process-desc{color:var(--text);opacity:.75;font-size:11px;line-height:1.6}.term-file-content{color:var(--text);border-left:2px solid var(--primary);opacity:.82;margin:6px 0 10px 4px;padding:8px 12px;font-size:12px;line-height:1.8}.skills-code-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.skills-code-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-card);transition:border-color .2s,box-shadow .2s,transform .2s;overflow:hidden}.skills-code-card:hover{border-color:var(--border-h);box-shadow:0 4px 20px rgba(var(--p-rgb),.1);transform:translateY(-2px)}[data-theme=terminal] .skills-code-card{border-left:3px solid #0000}[data-theme=terminal] .skills-code-card:hover{border-left-color:var(--primary)}.skills-code-tab{background:var(--code-bg);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:6px 12px;display:flex}.proj-tab-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.skills-code-fname{color:var(--text-muted);font-size:11px}.skills-code-body{padding:14px 16px}.skills-code-items{padding-left:4px}.services-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.svc-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-card);flex-direction:column;gap:10px;padding:22px 18px;transition:all .2s;display:flex}.svc-card:hover{border-color:var(--border-h);box-shadow:0 6px 24px rgba(var(--p-rgb),.1);transform:translateY(-2px)}.svc-card-top{justify-content:space-between;align-items:center;display:flex}.svc-num{color:var(--text-dim);letter-spacing:.1em;font-size:11px;font-weight:700}.svc-ascii-icon{color:var(--primary);letter-spacing:.05em;font-family:inherit;font-size:13px;font-weight:700}.svc-divider{background:var(--border);height:1px}.svc-title{color:var(--text);font-size:15px;font-weight:700}.svc-desc{color:var(--text);opacity:.75;font-size:12px;line-height:1.7}.svc-includes{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;margin-top:4px;font-size:11px;font-weight:700}.svc-features{flex-direction:column;flex:1;gap:5px;list-style:none;display:flex}.svc-feature{color:var(--text);opacity:.72;align-items:flex-start;gap:7px;font-size:12px;line-height:1.5;display:flex}.svc-feature-dot{color:var(--accent);flex-shrink:0;padding-top:1px;font-size:11px}.svc-cta{text-align:center;background:rgba(var(--p-rgb),.08);border:1px solid rgba(var(--p-rgb),.28);border-radius:var(--r-btn);color:var(--primary);cursor:pointer;margin-top:14px;padding:9px 16px;font-family:inherit;font-size:12px;text-decoration:none;transition:all .18s;display:block}.svc-cta:hover{background:rgba(var(--p-rgb),.18);border-color:var(--primary)}.contact-term .term-box-body{padding:20px 22px}.contact-rows{flex-direction:column;display:flex}.contact-row{border-bottom:1px solid var(--text-dim);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0;font-size:12px;display:flex}.contact-row:last-child{border-bottom:none}.contact-type-link{color:var(--primary);flex-shrink:0;min-width:85px;font-weight:600;text-decoration:none;transition:opacity .15s}.contact-type-link:hover{opacity:.75;text-decoration:underline}.contact-sep{color:var(--text-dim);flex-shrink:0}.contact-val{color:var(--text-muted);flex:1;min-width:150px}.contact-actions{flex-shrink:0;gap:6px;display:flex}.contact-btn{border:1px solid var(--border);color:var(--text-muted);border-radius:var(--r-btn);cursor:pointer;background:0 0;padding:3px 9px;font-family:inherit;font-size:11px;text-decoration:none;transition:all .15s;display:inline-block}.contact-btn:hover{border-color:var(--primary);color:var(--primary)}.contact-btn-open{border-color:rgba(var(--p-rgb),.3);color:var(--primary);background:rgba(var(--p-rgb),.06)}.personal-layout{flex-wrap:wrap;align-items:flex-start;gap:32px;padding:8px 0;display:flex}.personal-cat{color:var(--primary);white-space:pre;opacity:.75;flex-shrink:0;font-family:inherit;font-size:13px;line-height:1.1}.ascii-cat-line{font-family:JetBrains Mono,monospace}.ps-table{width:100%;margin-top:4px;font-size:12px}.ps-header{color:var(--text-muted);letter-spacing:.08em;grid-template-columns:52px 48px 40px 1fr;gap:8px;padding:0 4px 4px;font-size:10px;font-weight:700;display:grid}.ps-sep{background:var(--border);height:1px;margin-bottom:6px}.ps-row{border-radius:var(--r-btn);grid-template-columns:52px 48px 40px 1fr;gap:8px;padding:3px 4px;transition:background .15s;display:grid}.ps-row:hover{background:var(--bg-panel-h)}.ps-user{color:var(--text-muted)}.ps-pid{color:var(--text-dim);font-size:11px}.ps-stat{color:var(--accent);font-weight:700}.ps-cmd-name{color:var(--primary);font-weight:700}.ps-cmd-arrow{color:var(--text-dim)}.ps-cmd-val{color:var(--text);opacity:.82}.locale-list{flex-direction:column;gap:4px;margin-top:8px;padding-left:4px;display:flex}.locale-row{align-items:baseline;gap:14px;padding:2px 0;font-size:12px;display:flex}.locale-code{color:var(--text-muted);flex-shrink:0;min-width:22px}.locale-name{color:var(--text);flex-shrink:0;min-width:88px}.locale-label{color:var(--text-muted)}.world-trace{flex-direction:column;gap:3px;margin-top:14px;font-family:JetBrains Mono,monospace;font-size:12px;display:flex}.world-trace-row{align-items:baseline;gap:12px;display:flex}.wt-hop{color:var(--text-dim);min-width:16px}.wt-ip{color:var(--text-muted);min-width:115px}.wt-ms{color:var(--acc2);min-width:60px}.port-footer{border-top:1px solid var(--border);flex-direction:column;gap:6px;max-width:1100px;margin:0 auto;padding:20px 24px 32px;display:flex}.footer-line{font-size:13px}.footer-copy{color:var(--text-dim);font-size:11px}.theme-dots{align-items:center;gap:7px;display:flex}.theme-dot{cursor:pointer;border:2px solid #0000;border-radius:50%;flex-shrink:0;width:13px;height:13px;padding:0;transition:all .18s}.theme-dot:hover{transform:scale(1.2)}.theme-dot-active{border-color:#ffffffb3;box-shadow:0 0 7px}.boot-overlay{z-index:9999;background:#000;justify-content:flex-start;align-items:flex-start;padding:32px 40px;transition:opacity .7s;display:flex;position:fixed;inset:0;overflow:hidden}.boot-fade{opacity:0;pointer-events:none}.boot-screen{max-width:820px;font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.7}.boot-line{white-space:pre-wrap}.boot-cursor{color:#c084fc;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}.port-section{opacity:0;transition:opacity .55s,transform .55s;transform:translateY(22px)}.port-section.in-view,#home{opacity:1;transform:none}.proj-card:hover .proj-thumb-glow{opacity:.22;transition:opacity .3s}.skills-code-card:hover .skills-code-fname{color:var(--primary);transition:color .2s}.svc-card:hover .svc-ascii-icon{letter-spacing:.1em;transition:letter-spacing .2s}.process-item:hover .process-step{transition:transform .18s;transform:translate(3px)}.nav-link:after{content:"";background:var(--primary);transform-origin:0;height:1px;transition:transform .22s;display:block;transform:scaleX(0)}.nav-link:hover:after,.nav-active:after{transform:scaleX(1)}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.5)}}.crt-page{font-family:var(--font-mono,"JetBrains Mono",monospace);background:#050208;animation:3.4s step-end infinite crt-flicker;position:fixed;inset:0;overflow:hidden}.crt-fx-scanlines{pointer-events:none;z-index:50;background:repeating-linear-gradient(#00000073 0 1px,#0000 1px 3px);position:fixed;inset:0}.crt-fx-rollbar{pointer-events:none;z-index:51;background:linear-gradient(#0000 0%,#a855f70a 40%,#d8b4fe12 50%,#a855f70a 60%,#0000 100%);height:80px;animation:8s linear infinite crt-roll;position:fixed;left:0;right:0}.crt-fx-vignette{pointer-events:none;z-index:52;background:radial-gradient(110% 95%,#0000 35%,#0000008c 75%,#000000f2 100%);position:fixed;inset:0}@keyframes crt-flicker{0%,to{opacity:1}3%,6%{opacity:.94}4%,5%{opacity:1}50%{opacity:.98}52%{opacity:1}85%{opacity:.92}87%{opacity:1}}@keyframes crt-roll{0%{transform:translateY(-100px)}to{transform:translateY(110vh)}}.crt-terminal{z-index:1;color:#d8b4fe;text-shadow:0 0 4px #a855f78c,0 0 12px #a855f740,-.6px 0 #ff50b459,.6px 0 #50c8ff59;cursor:text;padding:32px 36px 24px;font-size:14px;line-height:1.55;position:fixed;inset:0}.crt-scrollable{scrollbar-width:thin;scrollbar-color:#a855f74d transparent;width:100%;height:100%;overflow-y:auto}.crt-scrollable::-webkit-scrollbar{width:6px}.crt-scrollable::-webkit-scrollbar-thumb{background:#a855f74d;border-radius:3px}.crt-line{word-break:break-word;flex-wrap:wrap;align-items:baseline;gap:0;display:flex}.crt-ps{color:#a3e635;font-weight:600}.crt-sep{color:#888;margin:0 1px}.crt-cwd{color:#67e8f9}.crt-dollar{color:#f9a8d4;margin:0 6px 0 4px}.crt-out{color:#e9d5ff;white-space:pre-wrap;font-family:inherit;font-size:inherit;text-shadow:inherit;margin:2px 0 4px;line-height:1.55}.crt-out-sys{color:#c4b5fd;opacity:.9}.crt-out-err{color:#fca5a5}.crt-prompt-line{flex-wrap:wrap;align-items:baseline;gap:0;margin-top:2px;display:flex}.crt-input{color:#f3e8ff;min-width:60px;font-family:inherit;font-size:inherit;line-height:inherit;text-shadow:inherit;caret-color:#d8b4fe;background:0 0;border:none;outline:none;flex:1;margin:0;padding:0 0 0 6px}.nf-grid{grid-template-columns:auto 1fr;align-items:center;gap:28px;margin:8px 0 12px;display:grid}.nf-logo{color:#c084fc;text-shadow:0 0 4px #a855f799,0 0 10px #a855f74d;white-space:pre;margin:0;font-family:inherit;font-size:7px;line-height:1.1}.nf-stats{min-width:0}.nf-line{color:#e9d5ff;white-space:nowrap;font-size:13px;line-height:1.5}.nf-user{color:#a3e635;font-weight:700}.nf-at{color:#888}.nf-host{color:#67e8f9;font-weight:700}.nf-rule{color:#6a7a90;opacity:.6}.nf-label{color:#f9a8d4;font-weight:600}.nf-colon{color:#888}.nf-value{color:#e9d5ff}.nf-spacer{height:12px}.nf-palette{gap:0;display:inline-flex}.nf-palette span{width:18px;height:12px;display:inline-block}@media (max-width:720px){.nf-grid{grid-template-columns:1fr;gap:12px}.nf-logo{font-size:5px}}.crt-playback{cursor:pointer;justify-content:center;align-items:center;display:flex}.crt-sw-frame{color:#d8b4fe;text-shadow:0 0 4px #a855f78c,0 0 12px #a855f740;white-space:pre;margin:0;font-family:inherit;font-size:clamp(10px,1.3vw,16px);line-height:1.15}.crt-sw-hint{text-align:center;color:#d8b4fe73;letter-spacing:.05em;text-shadow:0 0 6px #a855f74d;pointer-events:none;font-size:10px;position:fixed;bottom:16px;left:0;right:0}.footer-term-link{color:var(--text-dim);letter-spacing:.04em;align-items:center;gap:4px;margin-top:6px;font-size:10px;text-decoration:none;transition:color .18s;display:inline-flex}.footer-term-link:hover{color:var(--text-muted)}.footer-term-link svg{width:9px;height:9px}@media (max-width:640px){.crt-terminal{padding:18px 18px 14px;font-size:12px}}@media (max-width:900px){.about-grid{grid-template-columns:1fr}.header-nav{display:none}.mobile-menu-btn{display:flex}.services-grid{grid-template-columns:1fr 1fr}.header-right{margin-left:auto}}@media (max-width:640px){.port-section{padding:52px 16px}.hero-term-body{padding:16px 14px}.proj-grid,.services-grid,.skills-code-grid,.about-grid{grid-template-columns:1fr}.personal-layout{flex-direction:column;gap:16px}.personal-cat{font-size:11px}.ps-header,.ps-row{grid-template-columns:38px 40px 30px 1fr;gap:4px}.contact-row{flex-direction:column;align-items:flex-start;gap:4px}.locale-row{gap:8px}.locale-name{min-width:70px}.hero-name-text,.hero-tw-wrap{font-size:15px}.hero-code-block{font-size:11px}.code-lnum{display:none}.hero-section{padding:12px 16px 40px}.hero-ctas{flex-wrap:nowrap}.hero-ctas .btn-primary,.hero-ctas .btn-ghost{padding:8px 14px;font-size:12px}.filter-tabs{gap:4px}.boot-overlay{padding:20px}.boot-screen{font-size:11px}}
.ed-root{--ed-bg:#121214;--ed-paper:#19191c;--ed-paper-strong:#202024;--ed-ink:#f0efec;--ed-muted:#c0bdc4;--ed-soft:#96939c;--ed-line:#ffffff1f;--ed-line-strong:#ffffff3b;--ed-accent:#a77bf4;--ed-accent-deep:#c1a4ff;--ed-accent-soft:#322650;--ed-contact:#43218c;--ed-green:#88b49a;--ed-shadow:0 34px 80px #00000057;--ed-ease:cubic-bezier(.22,1,.36,1);color:var(--ed-ink);background:radial-gradient(circle at 82% 4%,#7242d914,transparent 22rem),var(--ed-bg);min-height:100vh;font-family:var(--ed-font-body),system-ui,sans-serif;letter-spacing:-.012em;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.55}[data-ed-theme=light] .ed-root{--ed-bg:#f2f0ea;--ed-paper:#fbfaf6;--ed-paper-strong:#fff;--ed-ink:#171719;--ed-muted:#535258;--ed-soft:#747279;--ed-line:#17171924;--ed-line-strong:#17171942;--ed-accent:#7242d9;--ed-accent-deep:#5427b7;--ed-accent-soft:#ded0ff;--ed-contact:#5427b7;--ed-green:#48705a;--ed-shadow:0 30px 70px #2a231a1f;background:var(--ed-bg)}.ed-root *,.ed-root :before,.ed-root :after{box-sizing:border-box}:where(.ed-root) :where(h1,h2,h3,p,figure,ul,dl,dd){margin:0;padding:0}:where(.ed-root) ul{list-style:none}.ed-root a{color:inherit;text-decoration:none}.ed-root button{color:inherit}.ed-root ::selection{color:#fff;background:var(--ed-accent)}.ed-root :focus-visible{outline:2px solid var(--ed-accent);outline-offset:4px}[data-ed-theme=dark] [data-ed-text-spotlight=true]{background-image:radial-gradient(circle 120px at var(--ed-text-x,50%)var(--ed-text-y,50%),var(--ed-accent)0%,color-mix(in srgb,var(--ed-accent)38%,var(--ed-ink))34%,var(--ed-muted)78%);-webkit-background-clip:text;background-clip:text;color:#0000!important}.ed-shell{width:min(100% - 64px,1320px);margin-inline:auto}.ed-section{padding-block:116px}.ed-mono,.ed-eyebrow,.ed-kicker,.ed-project-index,.ed-label,.ed-project-tech,.ed-private{font-family:var(--font-mono),ui-monospace,"SFMono-Regular",Consolas,monospace}.ed-eyebrow{color:var(--ed-accent);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:700;display:block}.ed-header{z-index:80;border-bottom:1px solid var(--ed-line);background:color-mix(in srgb,var(--ed-bg)86%,transparent);-webkit-backdrop-filter:blur(18px)saturate(140%);backdrop-filter:blur(18px)saturate(140%);position:sticky;top:0}.ed-header-inner{align-items:center;gap:32px;height:72px;display:flex}.ed-brand{letter-spacing:-.025em;align-items:center;gap:10px;font-weight:700;display:inline-flex}.ed-brand svg{transition:transform .45s var(--ed-ease)}.ed-brand:hover svg{transform:rotate(-9deg)}.ed-nav{gap:30px;margin-left:auto;display:flex}.ed-nav a{color:var(--ed-muted);font-size:14px;transition:color .2s;position:relative}.ed-nav a:after{content:"";background:var(--ed-accent);transform-origin:100%;height:1px;transition:transform .35s var(--ed-ease);position:absolute;bottom:-7px;left:0;right:0;transform:scaleX(0)}.ed-nav a:hover{color:var(--ed-ink)}.ed-nav a:hover:after{transform-origin:0;transform:scaleX(1)}.ed-header-actions{align-items:center;gap:10px;display:flex}.ed-theme-toggle,.ed-locale-toggle,.ed-menu-button{border:1px solid var(--ed-line);cursor:pointer;background:0 0;border-radius:50%;place-items:center;width:38px;height:38px;transition:border-color .2s,background .2s;display:grid}.ed-theme-toggle:hover,.ed-locale-toggle:hover{border-color:var(--ed-line-strong);background:var(--ed-paper)}.ed-theme-toggle svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.ed-locale-toggle{border-radius:999px;gap:6px;width:auto;min-width:53px;padding-inline:7px;display:inline-flex}.ed-locale-picker{position:relative}.ed-locale-flag{border:1px solid #ffffff2e;border-radius:2px;width:23px;height:auto;display:block;box-shadow:0 1px 3px #0003}.ed-locale-chevron{fill:none;stroke:currentColor;stroke-width:1.5px;width:11px;height:11px;transition:transform .3s var(--ed-ease)}.ed-locale-toggle.is-open .ed-locale-chevron{transform:rotate(180deg)}.ed-locale-menu{z-index:120;border:1px solid var(--ed-line-strong);opacity:0;visibility:hidden;background:color-mix(in srgb,var(--ed-paper-strong)96%,transparent);width:178px;box-shadow:var(--ed-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transform-origin:100% 0;transition:opacity .18s ease-out,transform .28s var(--ed-ease),visibility 0s linear .28s;border-radius:8px;padding:6px;position:absolute;top:calc(100% + 11px);right:0;transform:translateY(-7px)scale(.98)}.ed-locale-menu.is-open{opacity:1;visibility:visible;transition-delay:0s;transform:none}.ed-locale-menu button{width:100%;color:var(--ed-muted);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;grid-template-columns:25px 1fr 15px;align-items:center;gap:10px;padding:10px;font-size:12px;transition:color .18s,background .18s;display:grid}.ed-locale-menu button:hover{color:var(--ed-ink);background:var(--ed-paper)}.ed-locale-menu button[aria-checked=true]{color:var(--ed-ink);background:color-mix(in srgb,var(--ed-accent)10%,transparent)}.ed-locale-check{fill:none;width:14px;height:14px;stroke:var(--ed-accent);stroke-width:1.8px;opacity:0}.ed-locale-menu button[aria-checked=true] .ed-locale-check{opacity:1}.ed-root .ed-header-cta{color:#161618;background:var(--ed-ink);transition:transform .3s var(--ed-ease),background .2s;border-radius:999px;padding:10px 17px;font-size:13px;font-weight:600}[data-ed-theme=light] .ed-root .ed-header-cta{color:#fff;background:#171719}.ed-root .ed-header-cta:hover{background:var(--ed-accent);color:#fff;transform:translateY(-2px)}.ed-menu-button{padding:0;display:none}.ed-menu-button span{width:15px;height:1px;transition:transform .35s var(--ed-ease);background:currentColor;margin:2px;display:block}.ed-menu-button.is-open span:first-child{transform:translateY(2.5px)rotate(45deg)}.ed-menu-button.is-open span:last-child{transform:translateY(-2.5px)rotate(-45deg)}.ed-mobile-nav{display:none}.ed-hero{grid-template-columns:minmax(0,1.06fr) minmax(420px,.94fr);align-items:center;gap:clamp(48px,7vw,108px);min-height:min(850px,100vh - 72px);padding-block:clamp(38px,4.5vw,62px) 76px;display:grid;position:relative}.ed-hero-copy{z-index:3;position:relative}.ed-kicker{color:var(--ed-muted);letter-spacing:.09em;text-transform:uppercase;justify-items:start;gap:4px;margin-bottom:25px;font-size:11px;font-weight:600;display:grid}.ed-kicker small{color:var(--ed-soft);font:inherit;letter-spacing:.075em;font-size:10px;font-weight:400}.ed-status-dot{background:var(--ed-green);width:7px;height:7px;box-shadow:0 0 0 5px color-mix(in srgb,var(--ed-green)14%,transparent);border-radius:50%}.ed-display,.ed-section-heading h2,.ed-about-statement h2,.ed-contact-copy h2{font-family:var(--ed-font-display),Georgia,serif;letter-spacing:-.048em;text-wrap:balance;font-weight:400}.ed-display{max-width:12ch;font-size:clamp(58px,6.4vw,94px);line-height:.92}.ed-display em,.ed-section-heading em,.ed-about-statement em,.ed-contact-copy em{color:var(--ed-accent);font-weight:400}.ed-display em{font-style:italic}.ed-typewriter-title{position:relative}.ed-title-final{opacity:1;transition:opacity 90ms ease-out;display:block}.ed-typewriter-title[data-ed-typewriter=ready]:not(.ed-title-typed) .ed-title-final{opacity:0;pointer-events:none}.ed-title-type-layer{width:100%;color:inherit;white-space:pre-wrap;text-wrap:inherit;opacity:1;pointer-events:none;transition:opacity 90ms ease-out;display:block;position:absolute;inset:0}.ed-title-type-layer em{color:var(--ed-accent);font-style:italic;font-weight:400}.ed-type-word{--ed-type-reveal:0%;color:#0000;white-space:nowrap;display:inline-block;position:relative}.ed-type-word:after{content:attr(data-word);color:var(--ed-type-color,var(--ed-ink));clip-path:inset(0 calc(100% - var(--ed-type-reveal))0 0);position:absolute;inset:0}.ed-type-word.is-current:before{content:"";left:var(--ed-type-reveal);background:var(--ed-accent);width:.055em;height:.72em;margin-left:.07em;animation:.68s step-end infinite ed-type-caret;position:absolute;top:.11em}.ed-typewriter-title.ed-title-typed .ed-title-type-layer{opacity:0}@keyframes ed-type-caret{50%{opacity:0}}.ed-highlight-word{--ed-highlight-x:50%;--ed-highlight-y:50%;white-space:nowrap;display:inline-block;position:relative}.ed-highlight-word:after{content:attr(data-text);color:#0000;background:radial-gradient(circle .72em at var(--ed-highlight-x)var(--ed-highlight-y),#fff 0%,color-mix(in srgb,var(--ed-accent)88%,#fff)30%,color-mix(in srgb,var(--ed-accent)52%,transparent)58%,transparent 82%);filter:drop-shadow(0 0 .12em var(--ed-accent))drop-shadow(0 0 .32em color-mix(in srgb,var(--ed-accent)72%,transparent));opacity:0;pointer-events:none;-webkit-background-clip:text;background-clip:text;transition:opacity .18s ease-out;position:absolute;inset:0}[data-ed-theme=dark] .ed-highlight-word:hover:after{opacity:1}.ed-hero-lede{max-width:48ch;color:var(--ed-muted);margin-top:30px;font-size:clamp(17px,1.4vw,20px);line-height:1.55}.ed-hero-actions{flex-wrap:wrap;gap:10px;margin-top:36px;display:flex}.ed-button{border:1px solid var(--ed-line-strong);min-height:48px;transition:transform .3s var(--ed-ease),background .2s,border-color .2s;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 21px;font-size:14px;font-weight:600;display:inline-flex}.ed-button svg{transition:transform .3s var(--ed-ease)}.ed-button:hover{transform:translateY(-2px)}.ed-button:hover svg{transform:translate(3px)}.ed-button-primary{color:#fff;border-color:var(--ed-accent);background:var(--ed-accent)}.ed-button-primary:hover{background:var(--ed-accent-deep);border-color:var(--ed-accent-deep)}.ed-button-secondary:hover{background:var(--ed-paper)}.ed-hero-facts{border-top:1px solid var(--ed-line);grid-template-columns:1fr 1fr;gap:22px;max-width:520px;margin-top:54px;padding-top:20px;display:grid}.ed-hero-facts div{gap:4px;display:grid}.ed-hero-facts dt{color:var(--ed-soft);letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:700}.ed-hero-facts dd{color:var(--ed-muted);font-size:13px}.ed-portrait-composition{isolation:isolate;min-height:610px;position:relative}.ed-portrait-composition:before{content:"";z-index:-2;background:var(--ed-accent-soft);border-radius:48% 48% 10px 10px;position:absolute;inset:50px 0 44px 56px}.ed-portrait-composition:after{content:"";z-index:2;pointer-events:none;border:1px solid #ffffff52;border-radius:46% 46% 8px 8px;position:absolute;inset:80px 24px 68px 84px}.ed-ascii-layer{z-index:-1;opacity:.52;mix-blend-mode:multiply;position:absolute;top:-22px;right:-24px}[data-ed-theme=dark] .ed-ascii-layer{opacity:.64;mix-blend-mode:screen}.ed-ascii{cursor:default;max-width:100%;display:block;height:auto!important}.ed-hero>.ed-ascii{z-index:2;pointer-events:none;max-width:none;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);width:100vw!important;height:100%!important}.ed-hero-art{background:radial-gradient(circle at center,color-mix(in srgb,var(--ed-accent-soft)58%,transparent),transparent 64%);place-items:center;min-height:600px;display:grid;position:relative}[data-ed-theme=light] .ed-hero-art{background:0 0}.ed-hero-art:before{content:"";aspect-ratio:1;background:color-mix(in srgb,var(--ed-accent-soft)36%,transparent);filter:blur(55px);opacity:.52;pointer-events:none;border-radius:50%;width:72%;position:absolute}[data-ed-theme=light] .ed-hero-art:before{display:none}.ed-portrait-frame{box-shadow:var(--ed-shadow);background:#c8c8c8;border-radius:46% 46% 8px 8px;position:absolute;inset:80px 24px 68px 84px;overflow:hidden}.ed-portrait-frame img{object-fit:cover;object-position:50% 38%;filter:saturate(.78)contrast(1.03);width:100%;height:100%;transition:transform .9s var(--ed-ease),filter .5s;display:block}.ed-portrait-composition:hover .ed-portrait-frame img{filter:saturate(.92)contrast(1.03);transform:scale(1.018)}.ed-portrait-note{z-index:4;border:1px solid var(--ed-line);background:color-mix(in srgb,var(--ed-paper)94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:5px;width:min(280px,67%);padding:19px 21px;position:absolute;bottom:0;left:0;box-shadow:0 18px 40px #231f1b1f}.ed-portrait-note span{color:var(--ed-accent);font:700 10px/1 var(--font-mono),monospace;letter-spacing:.12em;margin-bottom:9px;display:block}.ed-portrait-note p{color:var(--ed-muted);font-size:13px;line-height:1.5}.ed-orbit-label{color:var(--ed-soft);font:600 9px/1 var(--font-mono),monospace;letter-spacing:.18em;text-transform:uppercase;position:absolute;top:50%;right:-54px;transform:rotate(90deg)}.ed-stagger-1,.ed-stagger-2,.ed-stagger-3,.ed-stagger-4,.ed-stagger-visual{animation:ed-enter .85s var(--ed-ease)both}.ed-stagger-1{animation-delay:30ms}.ed-stagger-2{animation-delay:.1s}.ed-stagger-3{animation-delay:.18s}.ed-stagger-4{animation-delay:.26s}.ed-stagger-visual{animation-delay:.2s}@keyframes ed-enter{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.ed-section-heading{grid-template-columns:minmax(0,1.1fr) minmax(280px,.7fr);align-items:end;gap:48px;margin-bottom:64px;display:grid}.ed-section-heading .ed-eyebrow{margin-bottom:17px}.ed-section-heading h2,.ed-about-statement h2,.ed-contact-copy h2{font-size:clamp(40px,4vw,58px);line-height:1}.ed-section-heading h2 em,.ed-about-statement h2 em,.ed-contact-copy h2 em{font-style:italic}.ed-section-heading>p{max-width:49ch;color:var(--ed-muted);padding-bottom:5px;font-size:16px}.ed-section-heading>.ed-projects-intro{max-width:38ch;font-size:14px;line-height:1.55}.ed-featured-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:54px 26px;display:grid}.ed-featured-card{grid-column:span 6;min-width:0}.ed-featured-card:first-child,.ed-featured-card:nth-child(4){grid-column:span 7}.ed-featured-card:nth-child(2),.ed-featured-card:nth-child(3){grid-column:span 5}.ed-featured-media{aspect-ratio:16/10;background:var(--ed-paper);box-shadow:0 1px 0 var(--ed-line);border-radius:4px;position:relative;overflow:hidden}.ed-featured-card:nth-child(2) .ed-featured-media,.ed-featured-card:nth-child(3) .ed-featured-media{aspect-ratio:4/3.18}.ed-featured-media img,.ed-featured-media video,.ed-archive-media img,.ed-archive-media video{object-fit:cover;width:100%;height:100%;transition:transform .8s var(--ed-ease);display:block}.ed-featured-card:hover .ed-featured-media img,.ed-featured-card:hover .ed-featured-media video,.ed-archive-card:hover .ed-archive-media img,.ed-archive-card:hover .ed-archive-media video{transform:scale(1.025)}.ed-project-placeholder{width:100%;height:100%;color:var(--ed-accent);background:linear-gradient(145deg,var(--ed-paper),var(--ed-accent-soft));align-content:center;place-items:center;gap:12px;display:grid}.ed-project-placeholder span{color:var(--ed-muted);font-size:12px}.ed-project-index{color:#fff;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#121214b8;border-radius:50%;place-items:center;width:36px;height:36px;font-size:10px;display:grid;position:absolute;top:13px;right:13px}.ed-featured-copy{padding-top:23px}.ed-label-row{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.ed-label{border:1px solid var(--ed-line);color:var(--ed-muted);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:650}.ed-project-title{font-family:var(--ed-font-display),Georgia,serif;letter-spacing:-.034em;font-size:clamp(28px,3vw,39px);font-weight:450;line-height:1.02}.ed-project-desc{max-width:66ch;color:var(--ed-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:12px;font-size:14px;line-height:1.58;display:-webkit-box;overflow:hidden}.ed-project-foot{border-top:1px solid var(--ed-line);justify-content:space-between;align-items:end;gap:20px;margin-top:20px;padding-top:16px;display:flex}.ed-project-tech,.ed-private{color:var(--ed-soft);letter-spacing:.07em;text-transform:uppercase;font-size:9.5px;line-height:1.5}.ed-text-link{color:var(--ed-ink);flex:none;align-items:center;gap:8px;font-size:13px;font-weight:650;display:inline-flex}.ed-text-link svg{transition:transform .3s var(--ed-ease)}.ed-text-link:hover{color:var(--ed-accent)}.ed-text-link:hover svg{transform:translate(2px,-2px)}.ed-about-section{border-block:1px solid var(--ed-line);background:var(--ed-paper);position:relative;overflow:hidden}.ed-about-section:before{content:"";border:1px solid var(--ed-line);width:560px;height:560px;box-shadow:0 0 0 80px var(--ed-bg),0 0 0 81px var(--ed-line);opacity:.6;border-radius:50%;position:absolute;top:80px;left:-350px}.ed-about-grid{grid-template-columns:minmax(0,1.16fr) minmax(380px,.84fr);gap:clamp(46px,6vw,88px);display:grid;position:relative}.ed-about-statement .ed-eyebrow{margin-bottom:22px}.ed-about-statement h2{max-width:12ch;margin-bottom:32px}.ed-about-statement>p{max-width:57ch;color:var(--ed-muted);margin-top:18px;line-height:1.7}.ed-about-statement .ed-text-link{margin-top:30px}.ed-about-profile{grid-template-columns:minmax(300px,380px) minmax(0,1fr);align-items:start;gap:28px;max-width:860px;display:grid}.ed-about-ascii{--ed-ascii-x:50%;--ed-ascii-y:50%;aspect-ratio:1857/1854;background:var(--ed-bg);border-radius:3px;outline:0;justify-self:start;width:100%;position:relative;overflow:hidden}.ed-about-ascii img,.ed-about-ascii canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.ed-about-ascii img{object-fit:contain;object-position:center;filter:saturate(.82)contrast(1.03);transition:filter .7s var(--ed-ease)}.ed-about-ascii canvas{z-index:1;opacity:0;clip-path:circle(0 at var(--ed-ascii-x)var(--ed-ascii-y));pointer-events:none;transition:clip-path .72s var(--ed-ease),opacity .12s ease-out}.ed-about-ascii:hover canvas,.ed-about-ascii:focus canvas,.ed-about-ascii:focus-visible canvas{opacity:1;clip-path:circle(150% at var(--ed-ascii-x)var(--ed-ascii-y))}.ed-about-ascii:hover img,.ed-about-ascii:focus img{filter:saturate(.62)contrast(1.08)}.ed-about-ascii:focus-visible{outline:1px solid var(--ed-accent);outline-offset:4px}.ed-about-copy{gap:18px;display:grid}.ed-about-copy p{color:var(--ed-muted);line-height:1.7}.ed-principles{border-top:1px solid var(--ed-line-strong)}.ed-principles-head{border-bottom:1px solid var(--ed-line);justify-content:space-between;align-items:center;min-height:56px;display:flex}.ed-principles-head .ed-mono{color:var(--ed-soft);font-size:10px}.ed-principles article{border-bottom:1px solid var(--ed-line);grid-template-columns:42px 1fr;gap:14px;padding-block:20px;display:grid}.ed-principles article>span{color:var(--ed-accent);font:700 10px/1.8 var(--font-mono),monospace}.ed-principles h3{font-family:var(--ed-font-display),Georgia,serif;letter-spacing:-.02em;font-size:20px;font-weight:500}.ed-principles article p{color:var(--ed-muted);margin-top:5px;font-size:13px;line-height:1.55}.ed-personal-note{border-block:1px solid var(--ed-line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:30px;margin-top:88px;padding:24px 0;display:grid;position:relative}.ed-personal-mark{width:54px;height:54px;color:var(--ed-paper);background:var(--ed-ink);font-family:var(--ed-font-display),serif;border-radius:50%;place-items:center;font-size:23px;font-style:italic;display:grid}.ed-personal-mark span{color:var(--ed-accent)}.ed-personal-note p{max-width:760px;font-family:var(--ed-font-display),Georgia,serif;letter-spacing:-.02em;font-size:clamp(20px,2vw,27px);line-height:1.3}.ed-personal-note>.ed-eyebrow{color:var(--ed-soft);text-align:right}.ed-personal-section{border-bottom:1px solid var(--ed-line);background:var(--ed-paper);padding-block:108px}.ed-personal-section .ed-section-heading{margin-bottom:48px}.ed-personal-section .ed-github-card+.ed-section-heading{margin-top:82px}.ed-traits-grid{border-block:1px solid var(--ed-line);grid-template-columns:repeat(3,1fr);display:grid}.ed-traits-grid article{border-right:1px solid var(--ed-line);min-height:210px;padding:26px}.ed-traits-grid article:last-child{border-right:0}.ed-traits-grid article>span{color:var(--ed-accent);font:700 10px/1 var(--font-mono),monospace}.ed-traits-grid strong{font-family:var(--ed-font-display),Georgia,serif;letter-spacing:-.03em;margin-top:42px;font-size:28px;font-weight:500;display:block}.ed-traits-grid p{color:var(--ed-muted);margin-top:7px;font-size:13px}.ed-traits-light{border-block:1px solid var(--ed-line);flex-wrap:wrap;gap:12px 32px;padding:24px 0;display:flex}.ed-traits-light p{color:var(--ed-muted);align-items:center;gap:8px;font-size:14px;display:inline-flex}.ed-traits-light p span{background:var(--ed-accent-soft);filter:grayscale(.25);border-radius:50%;place-items:center;width:27px;height:27px;font-size:13px;display:inline-grid}.ed-traits-light strong{color:var(--ed-ink);font-weight:650}.ed-personal-sentence{border-block:1px solid var(--ed-line);max-width:980px;color:var(--ed-muted);font-family:var(--ed-font-display),Georgia,serif;letter-spacing:-.02em;padding:24px 0;font-size:clamp(20px,2.2vw,30px);line-height:1.4}.ed-personal-sentence strong{color:var(--ed-ink);font-weight:500}.ed-personal-panels{background:var(--ed-line);grid-template-columns:1.18fr .82fr;gap:1px;margin-top:34px;display:grid}.ed-personal-panels>article{background:var(--ed-bg);padding:28px}.ed-panel-label{color:var(--ed-soft);font:700 10px/1 var(--font-mono),monospace;letter-spacing:.12em;text-transform:uppercase;margin-bottom:22px;display:block}.ed-language-panel>div{border-top:1px solid var(--ed-line);grid-template-columns:minmax(100px,1fr) auto 90px;align-items:center;gap:18px;padding:10px 0;display:grid}.ed-language-panel strong{font-size:14px;font-weight:600}.ed-language-panel small{color:var(--ed-muted);text-align:right;font-size:11px}.ed-language-bars{align-items:end;gap:3px;height:15px;display:flex}.ed-language-bars i{background:var(--ed-line-strong);width:4px;height:6px}.ed-language-bars i:nth-child(2){height:9px}.ed-language-bars i:nth-child(3){height:12px}.ed-language-bars i:nth-child(4){height:15px}.ed-language-bars i.is-on{background:var(--ed-accent)}.ed-places-panel>div{border-top:1px solid var(--ed-line);grid-template-columns:38px 1fr auto;align-items:center;gap:12px;padding:17px 0;display:grid}.ed-places-panel>div>span{color:var(--ed-accent);font:700 10px/1 var(--font-mono),monospace}.ed-places-panel strong{font-family:var(--ed-font-display),Georgia,serif;font-size:22px;font-weight:500}.ed-places-panel small{color:var(--ed-muted);font-size:11px}.ed-places-panel>p{color:var(--ed-green);font:650 10px/1 var(--font-mono),monospace;letter-spacing:.08em;text-transform:uppercase;margin-top:22px}.ed-github-card{border:1px solid var(--ed-line);background:var(--ed-bg);margin-top:34px;padding:30px}.ed-github-loading{color:var(--ed-muted);font-size:13px}.ed-github-head{justify-content:space-between;align-items:start;gap:28px;display:flex}.ed-github-head .ed-eyebrow{margin-bottom:8px}.ed-github-head h3{font-family:var(--ed-font-display),Georgia,serif;letter-spacing:-.03em;font-size:30px;font-weight:500}.ed-github-head>a{align-items:center;gap:8px;font-size:12px;font-weight:650;display:flex}.ed-github-head>a:hover{color:var(--ed-accent)}.ed-github-stats{border-top:1px solid var(--ed-line);flex-wrap:wrap;gap:12px 28px;margin-top:24px;padding-top:16px;display:flex}.ed-github-stats>div{color:var(--ed-muted);align-items:baseline;gap:7px;display:inline-flex}.ed-github-stats strong{color:var(--ed-ink);font-family:var(--ed-font-display),Georgia,serif;font-size:20px;font-weight:500}.ed-github-stats span{letter-spacing:.03em;font-size:10px}.ed-github-body{margin-top:30px}.ed-github-languages{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 28px;display:grid}.ed-github-languages>.ed-panel-label{grid-column:1/-1}.ed-github-language-row{border-top:1px solid var(--ed-line);grid-template-columns:8px 1fr auto;align-items:center;gap:9px;padding:7px 0;display:grid}.ed-github-language-row i{border-radius:50%;width:6px;height:6px}.ed-github-language-row span{font-size:12px}.ed-github-language-row small{color:var(--ed-muted);font-size:10px}.ed-contribution-wrap{border-top:1px solid var(--ed-line);min-width:0;margin-top:30px;padding-top:24px;overflow:hidden}.ed-contribution-grid{grid-template-rows:repeat(7,11px);grid-auto-columns:11px;grid-auto-flow:column;gap:4px;width:max-content;max-width:100%;padding:3px;display:grid;overflow:hidden}.ed-contribution-grid i{background:var(--ed-line);width:11px;height:11px;display:block}.ed-contribution-grid i[data-level="1"]{--ed-twinkle-brightness:1.16;--ed-twinkle-glow:color-mix(in srgb,var(--ed-accent)18%,transparent);--ed-twinkle-radius:4px;--ed-twinkle-scale:1.03;background:color-mix(in srgb,var(--ed-accent)28%,var(--ed-paper))}.ed-contribution-grid i[data-level="2"]{--ed-twinkle-brightness:1.3;--ed-twinkle-glow:color-mix(in srgb,var(--ed-accent)30%,transparent);--ed-twinkle-radius:6px;--ed-twinkle-scale:1.06;background:color-mix(in srgb,var(--ed-accent)50%,var(--ed-paper))}.ed-contribution-grid i[data-level="3"]{--ed-twinkle-brightness:1.48;--ed-twinkle-glow:color-mix(in srgb,var(--ed-accent)44%,transparent);--ed-twinkle-radius:8px;--ed-twinkle-scale:1.09;background:color-mix(in srgb,var(--ed-accent)74%,var(--ed-paper))}.ed-contribution-grid i[data-level="4"]{--ed-twinkle-brightness:1.65;--ed-twinkle-glow:color-mix(in srgb,var(--ed-accent)58%,transparent);--ed-twinkle-radius:9px;--ed-twinkle-scale:1.12;background:var(--ed-accent)}.ed-contribution-grid i:not([data-level="0"]){animation:5.8s ease-in-out infinite ed-contribution-twinkle}@keyframes ed-contribution-twinkle{0%,84%,to{filter:brightness();box-shadow:none;transform:scale(1)}90%{filter:brightness(var(--ed-twinkle-brightness));box-shadow:0 0 var(--ed-twinkle-radius)var(--ed-twinkle-glow);transform:scale(var(--ed-twinkle-scale))}}.ed-github-profile-link{border:1px solid var(--ed-line);color:var(--ed-muted);justify-content:space-between;align-self:stretch;align-items:center;gap:18px;padding:20px;font-size:12px;font-weight:650;display:flex}.ed-github-profile-link:hover{color:var(--ed-accent);border-color:var(--ed-line-strong)}.ed-github-unavailable{max-width:54ch;color:var(--ed-muted);margin-top:24px;font-size:13px}.ed-services-grid{border-block:1px solid var(--ed-line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.ed-service-card{border-right:1px solid var(--ed-line);flex-direction:column;min-height:500px;padding:34px 30px 30px;transition:background .3s;display:flex}.ed-service-card:last-child{border-right:0}.ed-service-card:hover{background:var(--ed-paper)}.ed-service-number{color:var(--ed-accent);font:700 11px/1 var(--font-mono),monospace;margin-bottom:54px}.ed-service-card h3{max-width:12ch;font-family:var(--ed-font-display),Georgia,serif;letter-spacing:-.035em;font-size:31px;font-weight:450;line-height:1.04}.ed-service-card>p{color:var(--ed-muted);margin-top:17px;font-size:14px;line-height:1.6}.ed-service-card ul{border-top:1px solid var(--ed-line);gap:8px;margin-top:25px;padding-top:21px;display:grid}.ed-service-card li{color:var(--ed-muted);padding-left:15px;font-size:12.5px;position:relative}.ed-service-card li:before{content:"";background:var(--ed-accent);width:5px;height:1px;position:absolute;top:.72em;left:0}.ed-service-card>a{justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:28px;font-size:13px;font-weight:650;display:flex}.ed-service-card>a:hover{color:var(--ed-accent)}.ed-stack-section{color:#f2f0eb;background:#18171b}.ed-stack-section .ed-muted,.ed-stack-section .ed-section-heading>p{color:#c0bdc4}.ed-language-showcase{border-bottom:1px solid #ffffff2b;padding-bottom:48px}.ed-language-showcase-heading{grid-template-columns:54px minmax(0,1fr);align-items:start;gap:22px;padding-bottom:35px;display:grid}.ed-language-showcase-heading h3{font-family:var(--ed-font-display),Georgia,serif;font-size:22px;font-weight:500}.ed-language-logo-grid{--ed-language-gap:clamp(26px,4.5vw,70px);justify-content:space-between;gap:46px var(--ed-language-gap);flex-wrap:wrap;padding-inline:clamp(0px,2vw,30px);display:flex}.ed-language-logo{flex:0 0 calc((100% - 4*var(--ed-language-gap))/5);cursor:default;flex-direction:column;justify-content:flex-start;align-items:center;gap:19px;min-width:0;max-width:none;display:flex;position:relative}.ed-language-name{color:#d4d1d8;letter-spacing:-.01em;text-align:center;font-size:13px;font-weight:620;line-height:1;transition:color .25s}.ed-language-logo:is(:hover,:focus-visible) .ed-language-name{color:#fff}.ed-language-symbol{width:108px;height:108px;overflow:visible}.ed-language-vector{fill:#dedbe2;opacity:.84;transition:opacity .25s}.ed-language-erase{fill:#18171b}.ed-language-glyphs{fill:#bea2ff;font-family:var(--font-mono),ui-monospace,"SFMono-Regular",Consolas,monospace;letter-spacing:0;font-size:2.05px;font-weight:700}.ed-language-logo:is(:hover,:focus-visible) .ed-language-vector{opacity:1}.ed-stack-list{border-bottom:1px solid #ffffff21}.ed-stack-list article{transition:padding-left .35s var(--ed-ease),background .2s;border-bottom:1px solid #ffffff21;grid-template-columns:54px minmax(190px,.42fr) minmax(0,1fr);gap:22px;padding-block:23px;display:grid}.ed-stack-list article:last-child{border-bottom:0}.ed-stack-list article:hover{background:#ffffff06;padding-left:10px}.ed-stack-index{color:var(--ed-accent);font:700 10px/1.8 var(--font-mono),monospace}.ed-stack-list h3{font-family:var(--ed-font-display),Georgia,serif;font-size:21px;font-weight:500}.ed-stack-list p{color:#c0bdc4;font-size:13px;line-height:1.7}.ed-archive-section{border-bottom:1px solid var(--ed-line)}.ed-archive-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 22px;display:grid}.ed-archive-card{min-width:0}.ed-archive-media{aspect-ratio:16/10;background:var(--ed-paper);border-radius:3px;position:relative;overflow:hidden}.ed-project-media-frame{width:100%;height:100%;position:relative}.ed-media-expand{z-index:2;color:#fff;cursor:zoom-in;background:0 0;border:0;padding:0;position:absolute;inset:0}.ed-media-expand svg{fill:none;stroke:currentColor;stroke-width:1.6px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:32px;height:32px;transition:background .18s,transform .22s var(--ed-ease);background:#0e0e11b8;border-radius:50%;padding:8px;position:absolute;bottom:12px;right:12px}.ed-media-expand span{font:650 8px/1 var(--font-mono),monospace;letter-spacing:.09em;text-transform:uppercase;opacity:0;transition:opacity .18s,transform .22s var(--ed-ease);position:absolute;bottom:18px;right:51px;transform:translate(5px)}.ed-archive-card:hover .ed-media-expand span,.ed-media-expand:focus-visible span{opacity:1;transform:none}.ed-media-expand:hover svg{background:var(--ed-accent);transform:scale(1.06)}.ed-media-position{z-index:3;color:#fff;font:650 8px/1 var(--font-mono),monospace;letter-spacing:.08em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;background:#0e0e11b8;border-radius:999px;padding:6px 8px;position:absolute;top:12px;left:12px}.ed-media-card-nav{z-index:3;pointer-events:none;justify-content:space-between;display:flex;position:absolute;inset:50% 10px auto;transform:translateY(-50%)}.ed-media-card-nav button{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;pointer-events:auto;background:#0e0e11ad;border:1px solid #ffffff2e;border-radius:50%;place-items:center;width:31px;height:31px;padding:0;transition:background .18s,transform .18s;display:grid}.ed-media-card-nav button:first-child svg{transform:rotate(180deg)}.ed-media-card-nav button:hover{background:var(--ed-accent);transform:scale(1.06)}.ed-media-card-nav svg{width:12px;height:12px}.ed-archive-copy{padding-top:17px}.ed-archive-meta{color:var(--ed-soft);font:650 8.5px/1.5 var(--font-mono),monospace;letter-spacing:.07em;text-transform:uppercase;justify-content:space-between;align-items:start;gap:14px;margin-bottom:11px;display:flex}.ed-archive-labels{min-width:0;color:var(--ed-accent);flex-wrap:wrap;align-items:center;display:flex}.ed-archive-labels span:not(:last-child):after{content:"·";color:var(--ed-accent);opacity:.58;margin-inline:7px}.ed-archive-links{flex:none;gap:11px;display:flex}.ed-archive-links a{color:var(--ed-ink);align-items:center;gap:3px;display:inline-flex}.ed-archive-links a:hover{color:var(--ed-accent)}.ed-archive-links svg{width:10px;height:10px}.ed-archive-top{justify-content:space-between;align-items:start;gap:15px;display:flex}.ed-archive-top h3{font-family:var(--ed-font-display),Georgia,serif;letter-spacing:-.025em;font-size:22px;font-weight:500;line-height:1.1}.ed-archive-top h3 a{transition:color .18s ease-out}.ed-archive-top h3 a:hover{color:var(--ed-accent)}.ed-archive-copy>p{color:var(--ed-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:9px;font-size:12.5px;line-height:1.55;display:-webkit-box;overflow:hidden}.ed-archive-tech{border-top:1px solid var(--ed-line);flex-wrap:wrap;row-gap:5px;margin-top:13px;padding-top:10px;display:flex}.ed-archive-tech span{color:var(--ed-soft);font:550 9.5px/1.35 var(--font-mono),monospace;letter-spacing:.025em;align-items:center;display:inline-flex}.ed-archive-tech span:not(:last-child):after{content:"/";color:var(--ed-accent);opacity:.72;margin-inline:7px}.ed-lightbox{z-index:200;color:#f4f2ee;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#08080bed;place-items:center;padding:28px;animation:.22s ease-out both ed-lightbox-enter;display:grid;position:fixed;inset:0}.ed-lightbox-panel{background:#121216;border:1px solid #ffffff24;border-radius:5px;grid-template-rows:minmax(0,1fr) auto;width:min(92vw,1400px);height:min(88vh,920px);display:grid;position:relative;overflow:hidden;box-shadow:0 36px 100px #00000094}.ed-lightbox-media{place-items:center;min-width:0;min-height:0;padding:34px 64px 16px;display:grid;overflow:hidden}.ed-lightbox-media img,.ed-lightbox-media video{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;display:block}.ed-lightbox-media video{background:#09090b}.ed-lightbox-close,.ed-lightbox-nav{z-index:2;color:#fff;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);cursor:pointer;background:#121216bd;border:1px solid #ffffff29;border-radius:50%;place-items:center;padding:0;transition:background .18s,border-color .18s,transform .18s;display:grid;position:absolute}.ed-lightbox-close:hover,.ed-lightbox-nav:hover{background:#7242d9;border-color:#a77bf4}.ed-lightbox-close{width:38px;height:38px;top:17px;right:17px}.ed-lightbox-close svg{fill:none;stroke:currentColor;stroke-width:1.8px;width:17px;height:17px}.ed-lightbox-nav{width:42px;height:42px;top:50%;transform:translateY(-50%)}.ed-lightbox-nav:hover{transform:translateY(-50%)scale(1.06)}.ed-lightbox-nav.is-previous{left:16px}.ed-lightbox-nav.is-next{right:16px}.ed-lightbox-nav.is-previous svg{transform:rotate(180deg)}.ed-lightbox-nav svg{width:16px;height:16px}.ed-lightbox-caption{border-top:1px solid #ffffff1f;justify-content:space-between;align-items:center;gap:24px;padding:17px 22px;display:flex}.ed-lightbox-caption strong{font-family:var(--ed-font-display),Georgia,serif;font-size:19px;font-weight:450}.ed-lightbox-caption span{color:#c1a4ff;font:650 9px/1 var(--font-mono),monospace;letter-spacing:.1em}@keyframes ed-lightbox-enter{0%{opacity:0}to{opacity:1}}.ed-load-more{border:1px solid var(--ed-line-strong);font:650 12px/1 var(--ed-font-body),sans-serif;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:9px;margin:60px auto 0;padding:12px 20px;display:flex}.ed-load-more span{color:var(--ed-accent)}.ed-load-more:hover{background:var(--ed-paper)}.ed-contact-section{color:#f6f3ed;background:var(--ed-contact);padding-block:82px}.ed-contact-grid{grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);align-items:end;gap:clamp(60px,9vw,140px);display:grid}.ed-contact-copy{position:relative;top:-60px}.ed-contact-copy .ed-eyebrow{color:#d9c8ff;margin-bottom:22px}.ed-contact-copy h2{font-size:clamp(40px,4vw,58px)}.ed-contact-copy h2 em{color:#171719}.ed-contact-copy p{color:#ffffffc7;max-width:48ch;margin-top:28px}.ed-contact-copy p strong{color:#fff;font-weight:650}.ed-contact-list{border-top:1px solid #ffffff3d}.ed-contact-list>a{transition:padding-left .35s var(--ed-ease),background .2s;border-bottom:1px solid #fff3;grid-template-columns:38px 1fr auto;align-items:center;gap:14px;padding-block:19px;display:grid}.ed-contact-list>a:hover{background:#ffffff0a;padding-left:9px}.ed-contact-list .ed-mono{color:#d9c8ff;font-size:9px}.ed-contact-list div{gap:3px;display:grid}.ed-contact-list small{color:#ffffff85;letter-spacing:.08em;text-transform:uppercase;font-size:10px}.ed-contact-list strong{font-size:15px;font-weight:550}.ed-contact-response{color:#ffffffb3;letter-spacing:.025em;padding-top:15px;font-size:11px}.ed-contact-response:before{content:"✓";color:#d9c8ff;margin-right:7px}.ed-footer{color:var(--ed-muted);background:var(--ed-paper)}.ed-footer-inner{grid-template-columns:1fr 1fr;align-items:center;gap:30px;min-height:116px;font-size:12px;display:grid}.ed-footer-inner>div{justify-content:flex-end;gap:18px;display:flex}.ed-footer-inner a:hover{color:var(--ed-accent)}.ed-rise{opacity:0;transition:opacity .75s var(--ed-ease),transform .75s var(--ed-ease);transform:translateY(20px)}.ed-rise.ed-in{opacity:1;transform:none}@media (max-width:1080px){.ed-shell{width:min(100% - 48px,1320px)}.ed-hero{grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);gap:42px}.ed-display{font-size:clamp(54px,7vw,76px)}.ed-portrait-composition,.ed-hero-art{min-height:550px}.ed-featured-card,.ed-featured-card:nth-child(n){grid-column:span 6}.ed-about-grid{grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);gap:44px}.ed-about-profile{grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:24px}.ed-services-grid{grid-template-columns:1fr}.ed-service-card{border-right:0;border-bottom:1px solid var(--ed-line);min-height:0}.ed-service-card:last-child{border-bottom:0}.ed-service-number{margin-bottom:28px}.ed-service-card>a{margin-top:30px}}@media (max-width:820px){.ed-section{padding-block:84px}.ed-nav,.ed-header-cta{display:none}.ed-header-actions{margin-left:auto}.ed-menu-button{display:grid}.ed-mobile-nav{opacity:0;visibility:hidden;background:var(--ed-bg);max-height:0;transition:max-height .5s var(--ed-ease),padding .4s var(--ed-ease),border-color .3s,border-width .3s,opacity .25s ease-out,transform .4s var(--ed-ease),visibility 0s linear .5s;border-top:0 solid #0000;padding:0 24px;display:grid;overflow:hidden;transform:translateY(-8px)}.ed-mobile-nav.is-open{border-top-width:1px;border-top-color:var(--ed-line);opacity:1;visibility:visible;max-height:360px;padding:8px 24px 18px;transition-delay:0s;transform:translateY(0)}.ed-mobile-nav a{border-bottom:1px solid var(--ed-line);opacity:0;transition:color .2s,opacity .28s ease-out,transform .38s var(--ed-ease);padding:12px 0;font-size:14px;transform:translateY(-5px)}.ed-mobile-nav.is-open a{opacity:1;transform:none}.ed-mobile-nav.is-open a:nth-child(2){transition-delay:25ms}.ed-mobile-nav.is-open a:nth-child(3){transition-delay:50ms}.ed-mobile-nav.is-open a:nth-child(4){transition-delay:75ms}.ed-mobile-nav.is-open a:nth-child(5){transition-delay:.1s}.ed-mobile-nav.is-open a:nth-child(6){transition-delay:.125s}.ed-hero{grid-template-columns:1fr;min-height:auto;padding-block:72px 84px}.ed-display{max-width:11ch}.ed-portrait-composition{width:min(100%,560px);min-height:610px;margin-inline:auto}.ed-hero-art,.ed-hero>.ed-ascii{display:none}.ed-section-heading{grid-template-columns:1fr;gap:24px}.ed-section-heading>p{padding:0}.ed-featured-card,.ed-featured-card:nth-child(n){grid-column:1/-1}.ed-featured-card:nth-child(n) .ed-featured-media{aspect-ratio:16/10}.ed-about-grid{grid-template-columns:1fr}.ed-about-ascii canvas{display:none}.ed-about-ascii:hover img,.ed-about-ascii:focus img{filter:saturate(.82)contrast(1.03)}.ed-about-statement h2{max-width:12ch}.ed-personal-panels,.ed-github-body{grid-template-columns:1fr}.ed-github-languages{grid-template-columns:repeat(2,minmax(0,1fr))}.ed-contribution-wrap{display:none}.ed-personal-note{grid-template-columns:auto 1fr}.ed-personal-note>.ed-eyebrow{text-align:left;grid-column:2}.ed-language-showcase-heading{grid-template-columns:38px 1fr;gap:14px}.ed-language-logo-grid{--ed-language-gap:clamp(18px,6vw,36px);justify-content:center;row-gap:38px;padding-inline:0}.ed-language-logo{flex-basis:calc((100% - var(--ed-language-gap))/2)}.ed-archive-grid{grid-template-columns:1fr 1fr}.ed-contact-grid{grid-template-columns:1fr;align-items:start}.ed-footer-inner{grid-template-columns:1fr auto;padding-block:28px}}@media (max-width:560px){.ed-shell{width:min(100% - 36px,1320px)}.ed-header-inner{height:64px}.ed-brand{font-size:14px}.ed-theme-toggle,.ed-menu-button{width:34px;height:34px}.ed-locale-toggle{min-width:50px;height:34px;padding-inline:6px}.ed-locale-menu{right:-42px}.ed-hero{padding-block:48px 66px}.ed-display{font-size:clamp(50px,15vw,68px)}.ed-hero-lede{font-size:16px}.ed-hero-actions{flex-direction:column;align-items:stretch}.ed-hero-facts{grid-template-columns:1fr;gap:14px;margin-top:38px}.ed-portrait-composition{min-height:490px}.ed-portrait-composition:before{inset:38px 0 38px 34px}.ed-portrait-frame,.ed-portrait-composition:after{inset:62px 12px 58px 51px}.ed-ascii-layer{transform-origin:100% 0;right:-80px;transform:scale(.8)}.ed-portrait-note{width:72%;padding:15px}.ed-orbit-label{display:none}.ed-section-heading h2,.ed-about-statement h2,.ed-contact-copy h2{font-size:clamp(39px,12vw,54px)}.ed-project-foot{flex-direction:column;align-items:start}.ed-personal-note{grid-template-columns:1fr}.ed-personal-note>.ed-eyebrow{grid-column:auto}.ed-about-profile{grid-template-columns:1fr;gap:18px}.ed-about-ascii{width:min(100%,380px)}.ed-traits-light{flex-direction:column;align-items:flex-start;gap:15px}.ed-traits-grid{grid-template-columns:1fr}.ed-traits-grid article{border-right:0;border-bottom:1px solid var(--ed-line);min-height:0}.ed-traits-grid article:last-child{border-bottom:0}.ed-traits-grid strong{margin-top:24px}.ed-personal-panels>article,.ed-github-card{padding:21px}.ed-language-panel>div{grid-template-columns:minmax(90px,1fr) auto 74px;gap:10px}.ed-github-head{flex-direction:column}.ed-github-stats,.ed-github-languages{grid-template-columns:1fr}.ed-services-grid{border:1px solid var(--ed-line)}.ed-service-card{padding-inline:22px}.ed-language-showcase{padding-bottom:40px}.ed-language-showcase-heading{padding-bottom:30px}.ed-language-logo{gap:13px;min-height:0}.ed-language-symbol{width:82px;height:82px}.ed-language-name{font-size:12px}.ed-stack-list article{grid-template-columns:28px minmax(0,1fr);gap:12px;padding-block:20px}.ed-stack-list p{grid-column:2}.ed-archive-grid{grid-template-columns:1fr}.ed-lightbox{padding:10px}.ed-lightbox-panel{width:100%;height:min(90vh,760px)}.ed-lightbox-media{padding:54px 12px 12px}.ed-lightbox-nav{top:auto;bottom:64px}.ed-lightbox-nav.is-previous{left:12px}.ed-lightbox-nav.is-next{right:12px}.ed-contact-section{padding-block:64px}.ed-contact-copy{top:-10px}.ed-contact-list strong{overflow-wrap:anywhere;font-size:13px}.ed-footer-inner{grid-template-columns:1fr}.ed-footer-inner>div{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){.ed-root *,.ed-root :before,.ed-root :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.ed-rise{opacity:1;transform:none}}@media (hover:none){.ed-language-logo{cursor:default}.ed-language-hint{display:none}}
