@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.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:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.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:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.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:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.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:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.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:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.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:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.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:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.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:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.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:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.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:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.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:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.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:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.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:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.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:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.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:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.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:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.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:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.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:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.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:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_db5b1df5-module__UCPn9q__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_db5b1df5-module__UCPn9q__variable{--font-sans:"Inter", "Inter 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;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ff74e33ebd7bca3-s.0_n_qwbzcushi.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:600;font-display:swap;src:url(../media/1a69062cfe6f77f8-s.07r2ragk8ph~z.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:600;font-display:swap;src:url(../media/9a4838fcda0d1bca-s.0787d67~10694.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:600;font-display:swap;src:url(../media/2e95a7d252b9825a-s.0dgq8lqrj3gc_.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:600;font-display:swap;src:url(../media/23b7a97ae3b5c134-s.p.0o14nraug8u5s.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_751fc0c2-module__3RctcG__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_751fc0c2-module__3RctcG__variable{--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
:root{--bg:#08090a;--bg-soft:#08090a;--panel:#101113;--line:#ffffff14;--line-soft:#ffffff12;--line-strong:#ffffff24;--text:#d6d7db;--text-strong:#f4f4f5;--heading:#f7f7f8;--muted:#8f939c;--soft:#676c75;--accent:#5e6ad2;--accent-strong:#8f97ff;--accent-neutral:#a1a1aa;--accent-neutral-soft:#ffffff10;--accent-neutral-strong:#e5e7eb;--chip-bg:#ffffff0d;--chip-text:#c7c8ce;--surface-1:#08090a;--surface-2:#0f1012;--surface-3:#161719;--surface-glass:#0e0f11d9;--button-ghost-bg:#ffffff0a;--button-ghost-bg-hover:#ffffff12;--button-ghost-border:#ffffff16;--button-ghost-border-hover:#ffffff2b;--section-bg:#08090a;--bg-pattern-dot:#ffffff05;--bg-glow-1:transparent;--bg-glow-2:transparent;--bg-glow-3:transparent;--ink-ui-line-fill:linear-gradient(90deg, #f4f4f5 0%, #b9bbc2 18%, #6f737c 52%, #282a2f 100%);--reading-track:#ffffff14;--reading-fill:var(--ink-ui-line-fill);--loader-shell-bg:linear-gradient(180deg, #111214f5, #08090af9);--loader-shell-line:#ffffff1f;--loader-text:#f4f4f5;--loader-muted:#a1a1aa;--loader-backdrop:#08090a;--shadow-sm:0 4px 16px #0006;--shadow-md:0 8px 32px #0009;--shadow-lg:0 16px 48px #000c;--card-line:#ffffff14;--card-line-hover:#fff2;--card-line-featured:#ffffff26;--card-bg:linear-gradient(180deg, #111214f0, #0b0c0ef5);--card-bg-hover:linear-gradient(180deg, #151618f2, #0f1012f8);--card-bg-featured:linear-gradient(180deg, #131416f2, #0d0e10f8);--card-shadow:0 10px 26px #00000080;--card-shadow-hover:0 18px 42px #0009, 0 0 0 1px #ffffff10;--card-shadow-featured:0 14px 36px #0000009e, 0 0 0 1px #ffffff14;--card-shadow-featured-hover:0 22px 52px #000000bd, 0 0 0 1px #ffffff1d;--brand-badge-line:#ffffff18;--brand-badge-bg:linear-gradient(180deg, #151618f5, #0b0c0ef5);--brand-badge-shadow:0 8px 18px #0000005c, inset 0 1px 0 #ffffff12;--ink-ui-bg:linear-gradient(180deg, #17181b, #111215);--ink-ui-bg-hover:linear-gradient(180deg, #202126, #16171b);--ink-ui-border:#ffffff20;--ink-ui-border-strong:#ffffff36;--ink-ui-text:#f4f4f5;--ink-ui-shadow:inset 0 1px #ffffff16, 0 8px 16px #00000036;--ink-ui-shadow-hover:inset 0 1px #ffffff24, 0 10px 20px #00000040;--ink-ui-meter-bg:#ffffff12;--ink-ui-meter-border:#ffffff2b;--ink-ui-meter-fill:linear-gradient(90deg, #f4f4f5, #c7c8ce);--scroll-glow:0;--motion-ease:cubic-bezier(.22, 1, .36, 1);--motion-fast:.17s;--motion-base:.24s;--motion-slow:.42s;--radius-xl:16px;--radius-lg:14px;--radius-md:12px;--radius-sm:10px}:root[data-theme=light]{--bg:#f1f6ff;--bg-soft:#edf3ff;--panel:#fff;--line:#1f458329;--line-soft:#1f45831f;--line-strong:#1f458345;--text:#102245;--text-strong:#0c1d3d;--heading:#112448;--muted:#4a628a;--soft:#6078a3;--accent:#1f3fae;--accent-strong:#325fd6;--accent-neutral:#234bbb;--accent-neutral-soft:#234bbb1a;--accent-neutral-strong:#1b3c93;--chip-bg:#2f5ed012;--chip-text:#264485;--surface-1:#f6faff;--surface-2:#fff;--surface-3:#eaf2ff;--surface-glass:#ffffffe8;--button-ghost-bg:#e8efff;--button-ghost-bg-hover:#dbe7ff;--button-ghost-border:#315ea93b;--button-ghost-border-hover:#315ea96e;--section-bg:linear-gradient(180deg, #f1f6ff 0%, #fbfdff 58%, #edf4ff 100%);--bg-pattern-dot:#0e2a6610;--bg-glow-1:#4a82ff1f;--bg-glow-2:#5ca9ff1a;--bg-glow-3:#2862e014;--ink-ui-line-fill:linear-gradient(90deg, #fff 0%, #d2dff3 14%, #88a4c8 38%, #3c5f89 64%, #1f3654 100%);--reading-track:#1f458326;--reading-fill:var(--ink-ui-line-fill);--loader-shell-bg:linear-gradient(180deg, #fcfdff, #eaf3ff);--loader-shell-line:#315ea947;--loader-text:#102245;--loader-muted:#4f6893;--loader-backdrop:radial-gradient(circle at 22% 16%, #73c0ff26, transparent 36%), radial-gradient(circle at 78% 78%, #5f8cff1f, transparent 40%), linear-gradient(#f3f8ff, #eaf3fffa 62%, #f6faff);--card-line:#274d9f24;--card-line-hover:#274d9f3d;--card-line-featured:#1f3fae5e;--card-bg:linear-gradient(180deg, #fff, #f3f8ff);--card-bg-hover:linear-gradient(180deg, #fff, #ebf3ff);--card-bg-featured:linear-gradient(180deg, #e9f2ff, #f7fbff);--card-shadow:0 8px 24px #15419617;--card-shadow-hover:0 16px 34px #1541961f, 0 0 0 1px #1f45831f;--card-shadow-featured:0 10px 28px #1f3fae26, 0 0 0 1px #1f3fae33;--card-shadow-featured-hover:0 18px 36px #1f3fae38, 0 0 0 1px #1f3fae47;--brand-badge-line:#274d9f2f;--brand-badge-bg:linear-gradient(180deg, #f6f9ff, #e8f0ff);--brand-badge-shadow:0 8px 16px #2c4e8a17, inset 0 1px 0 #fff}*{box-sizing:border-box}html{background:var(--bg);overscroll-behavior-y:none;overscroll-behavior-x:none;scroll-behavior:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#d4d4d8cc #ffffff14;touch-action:pan-y pinch-zoom;width:100%;max-width:100%;min-height:100%;overflow-x:clip}html::-webkit-scrollbar{width:12px;height:0}html::-webkit-scrollbar:horizontal{width:0;height:0;display:none}html::-webkit-scrollbar-track{background:#08090a}html::-webkit-scrollbar-thumb{background:linear-gradient(#3f4148,#27292f);border:2px solid #08090a;border-radius:999px}html::-webkit-scrollbar-thumb:hover{background:linear-gradient(#52545c,#32343a)}:root[data-theme=light] html{scrollbar-color:#1d4f93c9 #1d4f9321}:root[data-theme=light] html::-webkit-scrollbar-track{background:linear-gradient(#1d4f9312,#1d4f9308)}:root[data-theme=light] html::-webkit-scrollbar-thumb{background:linear-gradient(#2a65ba,#1d4f93);border-color:#1d4f932b}:root[data-theme=light] html::-webkit-scrollbar-thumb:hover{background:linear-gradient(#2f73d1,#245ea9)}body{font-family:var(--font-sans), sans-serif;color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:var(--bg);overscroll-behavior-y:none;overscroll-behavior-x:none;touch-action:pan-y pinch-zoom;overflow-wrap:break-word;word-wrap:break-word;width:100%;max-width:100%;min-height:100%;margin:0;position:relative;overflow-x:clip}body::-webkit-scrollbar:horizontal{width:0;height:0;display:none}.portfolio-site,.blog-shell,main{max-width:100%;overflow-x:clip}body:before{content:"";pointer-events:none;z-index:0;opacity:.12;background:radial-gradient(var(--bg-pattern-dot) .55px, #0000 .8px) 0 0 / 4px 4px;position:fixed;inset:0}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,summary:focus-visible{outline-offset:3px;outline:2px solid color-mix(in srgb, var(--accent), #fff 24%)}.nav-links a:focus-visible,.mobile-panel a:focus-visible,.button-solid:focus-visible,.button-outline:focus-visible,.inline-action:focus-visible,.nav-toggle:focus-visible,.scroll-edge-button:focus-visible,.scroll-nudge:focus-visible,.project-architecture-toggle:focus-visible,.social-link-reference:focus-visible,.contact-simple-link:focus-visible,.contact-copy-btn:focus-visible,.section-filter-chip:focus-visible{color:var(--text-strong);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent), #0000 74%)}button,input,textarea,select{font:inherit}img,svg{display:block}section[id]{scroll-margin-top:132px}.container{width:min(1180px,100% - 48px);margin:0 auto}.portfolio-site{z-index:1;width:100%;max-width:100vw;min-height:100vh;position:relative;overflow-x:clip}.site-nav{z-index:50;position:fixed;inset:22px 0 auto}.nav-shell{color:#f4f4f5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#08090af2;border:1px solid #ffffff18;border-radius:999px;justify-content:center;align-items:center;gap:28px;width:fit-content;max-width:calc(100% - 42px);margin:0 auto;padding:10px 14px 10px 24px;display:flex;box-shadow:0 14px 34px #00000057,inset 0 1px #ffffff0d}.site-nav.is-scrolled .nav-shell{background:#08090af7;border-color:#ffffff20}.nav-links{align-items:center;gap:20px;display:flex;position:relative}.nav-indicator{height:2px;transition:left var(--motion-base) var(--motion-ease), width var(--motion-base) var(--motion-ease), opacity var(--motion-fast) var(--motion-ease);opacity:0;pointer-events:none;background:linear-gradient(90deg, color-mix(in srgb, var(--accent), #0000 28%), var(--accent), color-mix(in srgb, var(--accent), #0000 28%));box-shadow:0 0 8px color-mix(in srgb, var(--accent), #0000 56%);border-radius:999px;position:absolute;bottom:-9px}.nav-links a{position:relative}.nav-links a,.mobile-panel a{color:#8f939c;transition:color var(--motion-fast) var(--motion-ease);font-size:.92rem}.nav-links a.is-active,.mobile-panel a.is-active,.nav-links a:hover,.mobile-panel a:hover{color:#f4f4f5}.nav-controls{align-items:center;gap:8px;min-height:36px;display:inline-flex}.theme-toggle{color:#d4d4d8;cursor:pointer;width:54px;height:31px;transition:border-color var(--motion-fast) var(--motion-ease), background var(--motion-fast) var(--motion-ease), box-shadow var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease);background:linear-gradient(#17181b,#111215);border:1px solid #ffffff1f;border-radius:999px;justify-content:center;align-items:center;padding:2px;display:inline-flex;position:relative;box-shadow:inset 0 1px #ffffff21,0 8px 16px #00000036}.theme-toggle:before{content:"";opacity:.22;pointer-events:none;background:linear-gradient(90deg,#0000,#fff6,#0000);height:1px;position:absolute;top:1px;left:8px;right:8px}.theme-toggle:hover{color:#f4f4f5;background:linear-gradient(#202126,#16171b);border-color:#ffffff30;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff2e,0 10px 20px #00000040}.theme-toggle-track{background:linear-gradient(90deg,#141518,#0f1012);border:1px solid #ffffff18;border-radius:999px;width:100%;height:100%;display:block;position:relative;overflow:hidden}.theme-toggle-icon{pointer-events:none;width:11px;height:11px;transition:opacity var(--motion-fast) var(--motion-ease), color var(--motion-fast) var(--motion-ease);position:absolute;top:50%;transform:translateY(-50%)}.theme-toggle-icon-sun{color:#facc15;opacity:.95;left:7px}.theme-toggle-icon-moon{color:#a1a1aa;opacity:.62;right:7px}.theme-toggle-thumb{width:19px;height:19px;transition:transform var(--motion-base) var(--motion-ease), background var(--motion-base) var(--motion-ease), border-color var(--motion-base) var(--motion-ease);background:linear-gradient(#f4f4f5,#c7c8ce);border:1px solid #ffffff5c;border-radius:50%;position:absolute;top:1px;left:1px;box-shadow:0 4px 10px #00000048}.theme-toggle.is-light .theme-toggle-thumb{transform:translate(0)}.theme-toggle.is-dark .theme-toggle-thumb{background:linear-gradient(#f4f4f5,#b8bbc4);border-color:#ffffff7a;transform:translate(23px)}.theme-toggle.is-light .theme-toggle-icon-sun{opacity:1}.theme-toggle.is-light .theme-toggle-icon-moon{opacity:.42}.theme-toggle.is-dark .theme-toggle-icon-sun{opacity:.5}.theme-toggle.is-dark .theme-toggle-icon-moon{opacity:.98}.nav-toggle{color:#f4f4f5;transition:color var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease), background var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease);cursor:pointer;background:linear-gradient(#17181b,#111215);border:1px solid #ffffff1f;border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex;position:relative;box-shadow:inset 0 1px #ffffff2e,0 8px 18px #00000026}.nav-toggle:before{content:"";opacity:.28;pointer-events:none;background:linear-gradient(90deg,#0000,#fff6,#0000);height:1px;position:absolute;top:0;left:7px;right:7px}.nav-toggle:hover{color:#f4f4f5;background:linear-gradient(#202126,#16171b);border-color:#ffffff30;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff2e,0 10px 20px #00000040}.nav-toggle svg{width:18px;height:18px;transform:translateY(-.5px)}.mobile-panel{z-index:61;opacity:0;pointer-events:none;width:min(560px,100% - 24px);max-height:calc(100dvh - 108px - env(safe-area-inset-bottom));transition:opacity var(--motion-base) var(--motion-ease), transform var(--motion-base) var(--motion-ease);opacity:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overscroll-behavior:contain;scrollbar-width:thin;background:#0d0e10f2;border:1px solid #ffffff1f;border-radius:16px;grid-template-columns:1fr;gap:6px;margin:0;padding:12px;display:none;position:fixed;top:88px;right:12px;overflow-y:auto;transform:translateY(-8px)scale(.985);box-shadow:0 16px 34px #00000052,inset 0 1px #ffffff14}.mobile-panel.is-open{opacity:1;pointer-events:auto;display:grid;transform:translateY(0)scale(1)}.mobile-panel a{border-radius:14px;min-height:44px;padding:12px 14px}.mobile-panel-backdrop{z-index:60;opacity:0;pointer-events:none;transition:opacity var(--motion-base) var(--motion-ease);background:#000000a3;border:0;position:fixed;inset:0}.mobile-panel-backdrop.is-open{opacity:1;pointer-events:auto}.desktop-only{display:flex}.mobile-only{display:none}.hero-section-reference{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;min-height:clamp(620px,86svh,780px);padding:clamp(100px,11vh,124px) 0 34px;display:flex;position:relative;overflow:hidden}.hero-section-reference:before{content:"";pointer-events:none;background:0 0;position:absolute;inset:0}.hero-grid-reference{z-index:1;grid-template-columns:minmax(0,1fr);width:min(860px,100% - 48px);display:grid;position:relative}.hero-copy-reference{background:color-mix(in srgb, var(--surface-2), #0000 10%);border:1px solid var(--line);text-align:center;min-height:clamp(392px,50svh,500px);box-shadow:0 0 0 1px color-mix(in srgb, var(--line), #fff 8%);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;padding:clamp(34px,6vw,64px);display:flex;position:relative;overflow:hidden}.hero-person{flex-direction:column;align-items:center;gap:16px;display:flex}.hero-portrait-ring{flex-shrink:0;display:inline-flex}.hero-portrait{object-fit:cover;border:2px solid var(--line);border-radius:50%;width:112px;height:112px;box-shadow:0 8px 24px #00000080}.terminal-kicker{font-family:var(--font-mono), monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);font-size:.8rem}.hero-copy-reference h1{letter-spacing:-.05em;color:var(--heading);margin:0;font-size:clamp(3rem,7vw,4.5rem);line-height:1.02}.hero-actions-reference,.hero-social-row,.card-link-row,.chip-row{flex-wrap:wrap;display:flex}.hero-actions-reference,.hero-social-row{justify-content:center;gap:12px;margin-top:0}.hero-cta-stack{gap:24px;margin-top:30px;display:grid}.button-solid,.button-outline,.inline-action,.section-button{min-height:48px;transition:transform var(--motion-fast) var(--motion-ease), box-shadow var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease), background var(--motion-fast) var(--motion-ease);border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-weight:600;display:inline-flex}.button-solid{color:var(--ink-ui-text);background:var(--ink-ui-bg);border:1px solid var(--ink-ui-border);box-shadow:var(--ink-ui-shadow)}.button-solid:hover,.button-outline:hover,.inline-action:hover{transform:translateY(-1px)}.button-solid:hover{background:var(--ink-ui-bg-hover);border-color:var(--ink-ui-border-strong);box-shadow:var(--ink-ui-shadow-hover)}.button-outline,.inline-action{color:var(--text-strong);background:var(--button-ghost-bg);border:1px solid var(--button-ghost-border)}.button-outline:hover,.inline-action:hover{background:var(--button-ghost-bg-hover);border-color:var(--button-ghost-border-hover)}.button-resume{color:#f4f4f5;background:linear-gradient(#1a1b1f,#121316);border-color:#ffffff24;box-shadow:inset 0 1px #ffffff16,0 10px 22px #00000042}.button-resume:hover{background:linear-gradient(#24252a,#17181c);border-color:#ffffff3a;box-shadow:inset 0 1px #ffffff24,0 12px 26px #0000004a}.button-resume .resume-download-icon{justify-content:center;align-items:center;margin-right:2px;font-size:1rem;font-weight:700;line-height:1;display:inline-flex}.button-solid svg,.inline-action svg{width:16px;height:16px}.social-link-reference{color:var(--muted);transition:color var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease), background var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease);border:1px solid var(--line);border-radius:999px;align-items:center;gap:10px;min-height:42px;padding:0 12px 0 8px;font-size:.96rem;display:inline-flex}.social-link-reference:hover{color:var(--text-strong);background:color-mix(in srgb, var(--surface-3), #0000 14%);border-color:var(--line-strong);transform:translateY(-1px)}.social-link-icon{color:var(--text);width:14px;height:14px}.section-slab{padding:36px 0;position:relative}.section-slab-dark{background:var(--section-bg)}#about.section-slab{padding-top:20px;padding-bottom:28px}#contact.section-slab{padding-top:14px;padding-bottom:28px}.scroll-nudge{color:color-mix(in srgb, var(--text), #0000 36%);cursor:pointer;width:36px;height:36px;transition:opacity var(--motion-slow) var(--motion-ease);z-index:2;border:1px solid var(--line);background:0 0;border-radius:50%;justify-content:center;align-items:center;margin-top:12px;display:inline-flex}.scroll-nudge svg{width:16px;height:16px}.scroll-nudge.is-hidden{opacity:0;pointer-events:none}.scroll-nudge.is-visible{opacity:1}.scroll-edge-button{z-index:40;color:#d4d4d8;cursor:pointer;width:38px;height:38px;transition:opacity var(--motion-base) var(--motion-ease), transform var(--motion-base) var(--motion-ease), border-color var(--motion-base) var(--motion-ease), color var(--motion-base) var(--motion-ease);bottom:max(28px, calc(18px + env(safe-area-inset-bottom)));right:max(30px, calc(24px + env(safe-area-inset-right)));background:#0d0e10f2;border:1px solid #ffffff18;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:fixed;box-shadow:0 4px 14px #00000052}.scroll-edge-button.is-hidden{opacity:0;pointer-events:none;transform:translateY(8px)}.scroll-edge-button.is-visible{opacity:1;transform:translateY(0)}.scroll-edge-button:hover{color:#fff;background:#17181b;border-color:#ffffff2d}.scroll-edge-icon{color:currentColor;width:15px;height:15px;transition:transform var(--motion-base) var(--motion-ease)}.scroll-edge-icon.is-up{transform:rotate(180deg)}.section-lead{max-width:760px;margin-bottom:24px}.section-lead h2{letter-spacing:-.04em;color:var(--heading);margin:0 0 4px;font-size:clamp(1.6rem,3.5vw,2.4rem);line-height:1.06}.section-lead p{color:var(--muted);margin:8px 0 0;font-size:1rem;line-height:1.6}.about-copy-card,.experience-card-reference,.project-card-reference,.oss-card,.article-row-reference,.community-feature,.cert-card-reference,.skill-card-reference{border:1px solid var(--card-line);background:var(--card-bg);box-shadow:var(--card-shadow)}.about-copy-card{border-radius:var(--radius-lg);max-width:780px;padding:24px 28px}.about-heading{letter-spacing:-.04em;color:var(--heading);margin:0 0 16px;font-size:clamp(1.4rem,3vw,2rem)}.about-copy-card p{color:var(--muted);margin:0;font-size:.95rem;line-height:1.8}.about-copy-card p+p{margin-top:18px}.about-copy-card .about-meta{color:var(--soft);font-size:.86rem}.skill-icon-wrap{border-radius:var(--radius-sm);background:var(--accent-neutral-soft);width:40px;height:40px;color:var(--accent-neutral);justify-content:center;align-items:center;display:inline-flex}.cert-card-reference h3,.skill-card-reference h3,.article-row-reference h3,.community-feature-title{letter-spacing:-.02em;color:var(--heading);margin:0;line-height:1.22}.project-description-reference,.cert-card-reference p,.article-row-reference p{color:var(--muted);margin:10px 0 0;line-height:1.75}.project-description-reference{margin-top:6px}.project-impact-line{color:var(--text);background:linear-gradient(color-mix(in srgb, var(--project-accent-bg,var(--accent)), #0000 84%), color-mix(in srgb, var(--surface-2), #0000 8%));border:1px solid color-mix(in srgb, var(--project-accent-line,var(--accent)), #0000 54%);border-radius:10px;align-items:center;gap:10px;margin:12px 0 0;padding:9px 12px;font-size:.86rem;line-height:1.5;display:flex}.project-impact-line span{color:color-mix(in srgb, var(--project-accent-ink,var(--accent)), #fff 24%);letter-spacing:.08em;text-transform:uppercase;background:color-mix(in srgb, var(--project-accent-ink,var(--accent)), #0000 82%);border:1px solid color-mix(in srgb, var(--project-accent-line,var(--accent)), #0000 46%);border-radius:999px;flex:none;align-items:center;min-height:22px;padding:0 8px;font-size:.68rem;font-weight:700;display:inline-flex}.project-architecture{margin:16px 0 0}.project-architecture>summary::-webkit-details-marker{display:none}.project-architecture-toggle{color:var(--text);letter-spacing:.01em;cursor:pointer;min-height:44px;transition:border-color var(--motion-fast) var(--motion-ease), background var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease);background:linear-gradient(color-mix(in srgb, var(--surface-3), #fff 4%), color-mix(in srgb, var(--surface-2), #0000 10%));border:1px solid color-mix(in srgb, var(--accent-neutral), #0000 68%);border-radius:12px;align-items:center;gap:8px;padding:0 14px;font-size:.85rem;font-weight:600;list-style:none;display:inline-flex}.project-architecture-toggle:hover{background:linear-gradient(color-mix(in srgb, var(--surface-3), #fff 10%), color-mix(in srgb, var(--surface-2), #0000 2%));border-color:var(--line-strong);transform:translateY(-1px)}.project-architecture-label-closed,.project-architecture:not([open]) .project-architecture-label-open{display:none}.project-architecture:not([open]) .project-architecture-label-closed{display:inline}.project-architecture-toggle-icon{color:var(--text);width:15px;height:15px;transition:transform var(--motion-fast) var(--motion-ease)}.project-architecture[open] .project-architecture-toggle-icon{transform:rotate(180deg)}.project-architecture-body{margin:12px 0 0}.project-architecture-open{cursor:zoom-in;background:0 0;border:0;width:100%;margin:0;padding:0;display:block}.project-architecture-frame{background:color-mix(in srgb, var(--surface-2), #0000 2%);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:inset 0 1px #ffffff0f,0 10px 24px #00000059}.project-architecture-image{width:100%;height:auto}.project-architecture-caption{color:var(--soft);margin:10px 0 0;font-size:.8rem;line-height:1.6}.architecture-lightbox{z-index:95;position:fixed;inset:0}.architecture-lightbox-backdrop{cursor:zoom-out;background:#050505e6;border:0;position:absolute;inset:0}.architecture-lightbox-shell{z-index:1;width:min(1120px,100% - 28px);max-height:calc(100dvh - 34px - env(safe-area-inset-top) - env(safe-area-inset-bottom));background:linear-gradient(#111214fb,#08090afb);border:1px solid #ffffff24;border-radius:16px;flex-direction:column;margin:18px auto;padding:12px;display:flex;position:relative;box-shadow:0 28px 64px #000000b8}.architecture-lightbox-close{color:#d4d4d8;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:#ffffff12;border:1px solid #ffffff38;border-radius:999px;align-self:flex-end;align-items:center;min-height:36px;margin-bottom:8px;padding:0 12px;font-size:.72rem;font-weight:700;display:inline-flex}.architecture-lightbox-close:hover{color:#f4f4f5;background:#ffffff1f;border-color:#ffffff61}.architecture-lightbox-frame{border:1px solid #ffffff1f;border-radius:12px;flex:1;min-height:0;overflow:auto}.architecture-lightbox-image{object-fit:contain;width:100%;height:auto}.architecture-lightbox-caption{color:#8f939c;margin:10px 0 4px;font-size:.82rem;line-height:1.55}.project-card-reference h4,.experience-card-reference h4{letter-spacing:.1em;text-transform:uppercase;color:var(--heading);margin:22px 0 0;font-size:.78rem;font-weight:600}.experience-stack-reference,.project-stack-reference,.article-stack-reference{gap:24px;display:grid}.section-filter-row{scrollbar-width:none;flex-wrap:wrap;gap:8px;margin:0 0 16px;padding-bottom:2px;display:flex;overflow:visible}.section-filter-row::-webkit-scrollbar{display:none}.section-filter-chip{color:var(--soft);letter-spacing:.02em;white-space:nowrap;cursor:pointer;min-height:38px;transition:border-color var(--motion-fast) var(--motion-ease), background var(--motion-fast) var(--motion-ease), color var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease);background:color-mix(in srgb, var(--surface-2), #0000 4%);border:1px solid var(--line);border-radius:999px;align-items:center;gap:7px;padding:0 13px;font-size:.79rem;font-weight:600;display:inline-flex}.section-filter-chip-icon{filter:drop-shadow(0 2px 4px #00000057);background:color-mix(in srgb, var(--surface-2), #fff 82%);border:1px solid color-mix(in srgb, var(--line-strong), #0000 20%);border-radius:6px;flex-shrink:0;width:16px;height:16px;padding:2px}.section-filter-chip:hover{color:var(--text-strong);border-color:var(--line-strong);background:color-mix(in srgb, var(--surface-3), #0000 10%);transform:translateY(-1px)}.section-filter-chip.is-active{color:var(--ink-ui-text);background:var(--ink-ui-bg);border-color:var(--ink-ui-border);box-shadow:var(--ink-ui-shadow)}.experience-card-reference{border-radius:var(--radius-lg);padding:22px}.experience-card-reference.is-primary,.project-card-reference.is-featured{border-color:var(--card-line-featured);background:var(--card-bg-featured);box-shadow:var(--card-shadow-featured)}.experience-head-reference,.project-head-reference,.community-card-head{justify-content:space-between;gap:18px;display:flex}.experience-company-meta{align-items:center;gap:12px;display:flex}.experience-company-logo-wrap{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-3), #0000 12%);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;padding:3px;display:inline-flex;overflow:hidden}.experience-company-logo{object-fit:cover;width:100%;height:100%}.experience-company-logo[src*=identrail-mark]{object-fit:cover;border-radius:9px}.experience-head-reference h3,.project-head-reference h3{letter-spacing:-.02em;color:var(--heading);font-size:1.24rem;line-height:1.16}.experience-location,.experience-role-title,.experience-period,.project-context,.community-meta span,.article-meta-reference,.contact-card-reference span,.education-meta{color:var(--soft);line-height:1.4}.experience-head-reference+.experience-location{margin-top:8px}.experience-role-block{text-align:right}.experience-role-title{font-size:.94rem;font-weight:600}.experience-period{margin-top:4px;font-size:.88rem}.experience-period-infinity{vertical-align:-.06em;font-size:1.35em;font-weight:600;line-height:0}.chip-row{gap:10px;margin-top:16px}.chip-grid{margin-top:16px}.chip{--chip-border:#ffffff1f;--chip-ink:#c7c8ce;--chip-glow:#ffffff18;isolation:isolate;border:1px solid var(--chip-border);min-height:30px;color:var(--chip-ink);letter-spacing:.01em;text-shadow:0 1px #0000003d;transition:transform var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease), box-shadow var(--motion-fast) var(--motion-ease), color var(--motion-fast) var(--motion-ease);background:linear-gradient(#ffffff12,#fff0 38%),linear-gradient(#111214f5,#090a0bfa);border-radius:999px;align-items:center;padding:0 13px;font-size:.8rem;font-weight:500;display:inline-flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0f,0 8px 20px #02061747,0 0 0 1px #ffffff05}.chip:before{content:"";opacity:.38;pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff75,#0000);border-radius:999px;height:1px;position:absolute;top:0;left:12px;right:12px}.chip:after{content:"";background:linear-gradient(90deg, transparent, var(--chip-glow), transparent);opacity:.58;pointer-events:none;border-radius:999px;height:1px;position:absolute;inset:auto 9px 0}.chip:hover{color:#f4f4f5;border-color:#ffffff36;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff14,0 12px 26px #0000005c,0 0 0 1px #ffffff0d}.chip-row .chip{--chip-border:color-mix(in srgb, var(--line-strong), #0000 16%);--chip-ink:var(--chip-text);--chip-glow:color-mix(in srgb, var(--accent-neutral), #0000 72%)}.chip-soft{background:linear-gradient(#ffffff0f,#fff0 36%),linear-gradient(#101113f2,#08090afa)}.chip-with-icon{gap:8px;padding:0 11px 0 7px}.chip-skill-icon{filter:drop-shadow(0 2px 5px #0000005c);background:color-mix(in srgb, var(--surface-2), #fff 84%);border:1px solid color-mix(in srgb, var(--line-strong), #0000 18%);border-radius:6px;flex-shrink:0;width:20px;height:20px;padding:2px}.experience-card-reference.is-primary .chip{box-shadow:inset 0 1px #ffffff14,0 12px 28px #00000057,0 0 0 1px #ffffff10}.experience-inline-link{color:var(--accent-neutral-strong);vertical-align:baseline;transition:color var(--motion-fast) var(--motion-ease);font-weight:500;text-decoration:none}.experience-inline-link span{text-decoration-line:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent-neutral), transparent 18%);text-decoration-color:color-mix(in srgb, var(--accent-neutral), transparent 18%);text-underline-offset:3px;transition:text-decoration-color var(--motion-fast) var(--motion-ease);text-decoration-thickness:1px}.experience-inline-link:hover{color:var(--text-strong)}.experience-inline-link:hover span{text-decoration-color:currentColor}.bullet-list,.highlight-list{margin:12px 0 0;padding:0;list-style:none}.bullet-list li,.highlight-row{color:var(--muted);gap:12px;line-height:1.8;display:flex;position:relative}.bullet-list li+li,.highlight-row+.highlight-row{margin-top:10px}.bullet-list li:before{content:"";background:var(--accent-neutral);border-radius:50%;flex:0 0 6px;height:6px;margin-top:11px}.highlight-row span:first-child{color:var(--accent-neutral);font-weight:700}.project-card-reference{isolation:isolate;border-radius:8px;padding:26px;position:relative;overflow:hidden}.project-card-reference:before{content:"";pointer-events:none;opacity:.72;background:linear-gradient(90deg, var(--project-accent-line,var(--accent)), transparent 72%);height:1px;position:absolute;inset:0 0 auto}.project-card-intro{z-index:1;grid-template-columns:minmax(0,1fr);align-items:start;gap:0;display:grid;position:relative}.project-card-copy{min-width:0}.project-head-reference{z-index:1;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;position:relative}.project-badge{min-height:24px;color:var(--accent);background:color-mix(in srgb, var(--accent), #0000 82%);border-radius:999px;align-items:center;padding:0 10px;font-size:.78rem;font-weight:700;display:inline-flex}.project-context{color:var(--soft);text-align:right;font-size:.92rem;font-weight:600;line-height:1.35}.project-description-reference{z-index:1;margin-top:12px;position:relative}.project-detail-grid{z-index:1;margin-top:22px;position:relative}.project-detail-grid h4{margin-top:0}.card-link-row{z-index:1;gap:10px;margin-top:22px;position:relative}@keyframes project-demo-live-pulse{0%{opacity:.9;box-shadow:0 0 #31d5956b}70%{opacity:1;box-shadow:0 0 0 8px #31d59500}to{opacity:.9;box-shadow:0 0 #31d59500}}.project-demo-link{isolation:isolate;color:var(--text);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-3), #fff 6%), color-mix(in srgb, var(--surface-2), #0000 12%) 62%, color-mix(in srgb, var(--surface-1), #0000 8%));border:1px solid var(--line);min-height:44px;box-shadow:inset 0 1px color-mix(in srgb, var(--line), #fff 20%), 0 8px 18px #00000052, 0 0 0 1px color-mix(in srgb, var(--line), #fff 8%);border-radius:13px;gap:8px;padding:0 13px;position:relative}.project-demo-link:before{content:none}.project-demo-link:hover{color:var(--text-strong);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-3), #fff 14%), color-mix(in srgb, var(--surface-2), #0000 4%) 62%, color-mix(in srgb, var(--surface-1), #0000 2%));border-color:var(--line-strong);box-shadow:inset 0 1px color-mix(in srgb, var(--line), #fff 32%), 0 12px 22px #0006, 0 0 0 1px color-mix(in srgb, var(--line), #fff 20%)}.project-demo-link-live-dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 1px color-mix(in srgb, var(--surface-2), #0000 6%), 0 0 8px color-mix(in srgb, var(--accent), #0000 50%);border-radius:50%;flex:none;animation:1.8s ease-out infinite project-demo-live-pulse}.project-demo-link-title{color:inherit;letter-spacing:.01em;font-size:.86rem;font-weight:600}.project-demo-link .project-demo-link-arrow{color:var(--text);opacity:.88;width:13px;height:13px;margin-left:6px}.project-demo-link:hover .project-demo-link-arrow{transform:translate(1px)translateY(-1px)}.project-github-link{isolation:isolate;color:var(--text);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-3), #fff 4%), color-mix(in srgb, var(--surface-2), #0000 14%) 60%, color-mix(in srgb, var(--surface-1), #0000 8%));border:1px solid var(--line);min-height:44px;box-shadow:inset 0 1px color-mix(in srgb, var(--line), #fff 20%), 0 8px 18px #00000052, 0 0 0 1px color-mix(in srgb, var(--line), #fff 8%);border-radius:13px;gap:12px;padding:0 14px 0 12px;position:relative}.project-github-link:before{content:none}.project-github-link:hover{color:var(--text-strong);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-3), #fff 12%), color-mix(in srgb, var(--surface-2), #0000 6%) 60%, color-mix(in srgb, var(--surface-1), #0000 2%));border-color:var(--line-strong);box-shadow:inset 0 1px color-mix(in srgb, var(--line), #fff 28%), 0 12px 22px #0006, 0 0 0 1px color-mix(in srgb, var(--line), #fff 20%)}.project-github-link-icon{color:var(--text);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-2), #fff 6%), color-mix(in srgb, var(--surface-1), #0000 8%));border:1px solid var(--line);border-radius:9px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex;box-shadow:inset 0 1px #ffffff14,0 4px 10px #0000003d}.project-github-link-icon svg{width:16px;height:16px}.project-github-link-copy{text-align:left;gap:0;line-height:1.2;display:grid}.project-github-link-title{color:inherit;letter-spacing:.01em;font-size:.86rem;font-weight:600}.project-github-link .project-github-link-arrow{color:var(--text);opacity:.85;width:13px;height:13px;margin-left:8px}.project-github-link:hover .project-github-link-arrow{transform:translate(1px)translateY(-1px)}.project-interact-link{color:var(--text-strong);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-3), #fff 8%), color-mix(in srgb, var(--surface-2), #0000 12%));border:1px solid color-mix(in srgb, var(--line-strong), #fff 18%);border-radius:13px;align-items:center;gap:10px;min-height:44px;margin-left:6px;padding:0 14px 0 10px;text-decoration:none;box-shadow:inset 0 1px #ffffff1f,0 8px 16px #00000038,0 0 0 1px #ffffff08}.project-interact-copy{color:color-mix(in srgb, var(--text), var(--text-strong) 22%);letter-spacing:.01em;font-size:.86rem;font-weight:600}.project-interact-domain{color:var(--project-accent-ink,var(--accent-strong));text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.project-interact-icon{color:var(--project-accent-ink,var(--accent-strong));background:linear-gradient(180deg, color-mix(in srgb, var(--surface-2), #fff 10%), color-mix(in srgb, var(--surface-1), #0000 8%));border:1px solid color-mix(in srgb, var(--line-strong), #0000 12%);border-radius:9px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex;box-shadow:inset 0 1px #ffffff14,0 4px 10px #00000030}.project-interact-icon svg{width:15px;height:15px}.project-interact-arrow{color:var(--text);opacity:.86;width:13px;height:13px}.project-interact-link:hover .project-interact-domain{color:color-mix(in srgb, var(--accent), #fff 26%)}.project-interact-link:hover{color:var(--text-strong);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-3), #fff 14%), color-mix(in srgb, var(--surface-2), #0000 8%));border-color:color-mix(in srgb, var(--line-strong), var(--accent) 24%);box-shadow:inset 0 1px #ffffff2a, 0 12px 22px #00000048, 0 0 0 1px color-mix(in srgb, var(--accent), #0000 80%)}.project-interact-link:hover .project-interact-arrow{transform:translate(1px)translateY(-1px)}.project-theme-identrail{--project-accent-ink:#8bd8ea;--project-accent-bg:#123038;--project-accent-line:#4faec2;--project-accent-glow:#4faec226}.project-theme-boundary{--project-accent-ink:#f0c982;--project-accent-bg:#4a3516;--project-accent-line:#e5b869;--project-accent-glow:#f2bf5e3f}.project-theme-fuzzer{--project-accent-ink:#a8adff;--project-accent-bg:#242743;--project-accent-line:#6f76d9;--project-accent-glow:#6f76d926}.project-theme-identrail .project-demo-link-live-dot{background:#37bfd6}.project-theme-boundary .project-demo-link-live-dot{background:#f4c26d}.project-theme-fuzzer .project-demo-link-live-dot{background:#7c84f2}.cert-grid-reference,.skills-grid-reference{gap:18px;display:grid}.oss-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}#testimonials.section-slab{padding-top:20px;padding-bottom:26px}.testimonial-marquee{contain:paint;width:100%;max-width:100%;min-height:126px;margin-top:8px;position:relative;overflow:clip}@keyframes testimonial-marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.testimonial-track{will-change:transform;align-items:flex-start;gap:30px;width:max-content;padding:8px 24px 4px;animation:108s linear infinite testimonial-marquee-scroll;display:flex;position:absolute;inset:0 auto auto 0}.testimonial-marquee:hover .testimonial-track{animation-play-state:paused}.testimonial-item{align-items:flex-start;gap:14px;width:440px;min-width:440px;display:flex}.testimonial-avatar{object-fit:cover;border:1px solid var(--line);border-radius:50%;flex-shrink:0;width:82px;height:82px}.testimonial-copy h3{color:var(--heading);letter-spacing:-.01em;margin:2px 0;font-size:1.42rem;font-weight:700;line-height:1.08}.testimonial-role{color:var(--text-strong);margin:0;font-size:1rem;font-weight:600;line-height:1.35}.testimonial-quote{color:var(--text);margin:6px 0 0;font-size:.98rem;line-height:1.62}.oss-card{border-radius:var(--radius-lg);flex-direction:column;gap:10px;padding:20px;display:flex}.oss-card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.oss-project-meta{align-items:center;gap:9px;min-width:0;display:flex}.oss-project-logo-wrap{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-3), #0000 16%);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:4px;display:inline-flex;overflow:hidden}.oss-project-logo{object-fit:contain;width:100%;height:100%}.oss-project{color:var(--heading);font-size:1rem;font-weight:700}.oss-prs{font-size:.78rem;font-family:var(--font-mono), monospace;color:var(--accent-neutral-strong);background:var(--accent-neutral-soft);border-radius:999px;padding:3px 10px}.oss-value{color:var(--muted);flex:1;margin:0;font-size:.88rem;line-height:1.7}.oss-link{color:var(--accent);align-items:center;gap:6px;font-size:.82rem;font-weight:600;display:inline-flex}.oss-link svg{width:12px;height:12px}.article-row-reference{border-radius:26px;grid-template-columns:56px minmax(0,1fr) 190px;align-items:start;gap:24px;padding:24px 26px;display:grid}.article-publication-reference{justify-content:center;align-items:center;width:56px;min-height:44px;display:flex}.article-meta-reference{text-align:right;gap:8px;font-size:.9rem;display:grid}.article-read{color:var(--accent);font-weight:600}.brand-mark-badge{border:1px solid var(--brand-badge-line);background:var(--brand-badge-bg);box-shadow:var(--brand-badge-shadow);justify-content:center;align-items:center;display:inline-flex}.brand-mark-badge-inline{border-radius:8px;flex-shrink:0;width:26px;height:26px;padding:4px}.brand-mark-badge-article{border-radius:12px;width:44px;height:44px;padding:4px}.brand-mark-badge-medium,.brand-mark-badge-linkedin{background:linear-gradient(180deg, color-mix(in srgb, var(--surface-3), #fff 4%), color-mix(in srgb, var(--surface-2), #0000 8%))}.brand-mark-badge-linkedin{border-color:var(--line-strong)}.pub-pill-image{object-fit:contain;width:24px;height:24px}.article-publication-pill{border:1px solid var(--line);color:var(--muted);background:color-mix(in srgb, var(--surface-2), #0000 20%);border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:600;line-height:1.2}.section-button{margin-top:28px}.community-feature{border-radius:28px;grid-template-columns:auto 1fr;gap:20px;margin-bottom:22px;padding:28px;display:grid}.community-feature-logo{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.brand-mark-badge-community{border-radius:var(--radius-md);width:72px;height:72px;padding:8px}.brand-mark-badge-community-image{background:#05070b;padding:0;overflow:hidden}.blog-shell{max-width:1080px;margin:0 auto;padding:clamp(30px,6vw,88px) clamp(18px,5vw,34px) 80px}.blog-hero{border:1px solid var(--line-soft);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-2), #0000 12%), color-mix(in srgb, var(--surface-2), #0000 36%));border-radius:28px;margin-bottom:26px;padding:clamp(24px,4vw,38px)}.blog-kicker{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:0 0 8px;font-size:.78rem;font-weight:700}.blog-hero h1{margin:0 0 12px;font-size:clamp(1.75rem,4vw,2.5rem)}.blog-hero p{color:var(--muted);max-width:76ch;margin:0;line-height:1.7}.blog-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;display:grid}.blog-card{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-2), #0000 16%);border-radius:22px;padding:20px}.blog-card h2{margin:8px 0 10px;font-size:1.1rem;line-height:1.45}.blog-card h2 a{color:inherit;text-decoration:none}.blog-card h2 a:hover{color:var(--accent)}.blog-card p{color:var(--muted);margin:0;line-height:1.7}.blog-card-meta{color:var(--accent-neutral-strong);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:.72rem;font-weight:700}.blog-read-link{color:var(--accent);margin-top:12px;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-block}.blog-article{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-2), #0000 14%);border-radius:28px;padding:clamp(22px,4vw,42px)}.blog-back-link{color:var(--accent);margin-bottom:14px;font-size:.9rem;text-decoration:none;display:inline-block}.blog-article h1{margin:8px 0 14px;font-size:clamp(1.55rem,3.7vw,2.2rem);line-height:1.35}.blog-summary{border-left:3px solid color-mix(in srgb, var(--accent), #0000 54%);color:color-mix(in srgb, var(--muted), #fff 4%);margin:0 0 20px;padding-left:14px;font-size:1rem;line-height:1.8}.blog-article-section+.blog-article-section{margin-top:28px}.blog-article-section h2{margin:0 0 10px;font-size:1.2rem}.blog-article-section p{color:var(--muted);margin:0 0 12px;line-height:1.8}.blog-article-section ul{margin:0;padding-left:20px}.blog-article-section li{color:var(--muted);margin-bottom:8px;line-height:1.7}.blog-identrail-fit{border:1px solid color-mix(in srgb, var(--accent), #0000 72%);background:color-mix(in srgb, var(--accent), #0000 94%);border-radius:18px;padding:18px}.brand-mark-badge-community img{object-fit:contain;width:100%;height:100%}.brand-mark-badge-community-image img{object-fit:cover}.community-feature-copy p{color:var(--muted);margin:8px 0 0;line-height:1.55}.community-feature-copy span{color:var(--accent);align-items:center;gap:8px;margin-top:14px;font-weight:600;display:inline-flex}.community-feature-copy span svg{width:16px;height:16px}.skills-grid-reference{grid-template-columns:repeat(3,minmax(0,1fr))}.skill-card-reference{border-radius:24px;padding:22px}.cert-grid-reference{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:24px}.cert-card-reference{text-align:center;border-radius:24px;flex-direction:column;justify-content:flex-start;align-items:center;gap:8px;padding:22px 20px 20px;display:flex}.cert-badge-wrap{background:0 0;border:0;justify-content:center;align-items:center;width:auto;height:auto;margin:0 auto 10px;display:flex;overflow:visible}.cert-badge-image{object-fit:contain;object-position:center;width:112px;height:112px}.cert-card-reference h3{text-wrap:balance;color:var(--heading);max-width:22ch;line-height:1.18;font-family:var(--font-sans), sans-serif;letter-spacing:-.015em;margin:0;font-size:clamp(1rem,1.2vw,1.14rem);font-weight:600}.cert-card-cta{color:var(--accent);align-items:center;gap:6px;margin-top:4px;font-size:.93rem;font-weight:600;display:inline-flex}.cert-card-cta svg{width:14px;height:14px}.skill-card-head{align-items:center;gap:14px;display:flex}.skill-group-logo{width:24px;height:24px}.contact-simple{padding:18px 0 16px}.contact-simple h2{letter-spacing:-.05em;color:var(--heading);margin:0 0 10px;font-size:clamp(1.8rem,4vw,2.8rem)}.contact-simple p{color:var(--muted);max-width:100%;margin:0 0 24px;font-size:1rem}.contact-simple-row{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.contact-simple-link{color:var(--muted);transition:color var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease), background var(--motion-fast) var(--motion-ease);border:1px solid var(--line);border-radius:999px;align-items:center;gap:8px;min-height:42px;padding:0 12px;font-size:.95rem;display:inline-flex}.contact-simple-link:hover{color:var(--text-strong);background:color-mix(in srgb, var(--surface-3), #0000 12%);border-color:var(--line-strong)}.contact-simple-link>svg{width:16px;height:16px;color:var(--accent)}.contact-link-icon{color:var(--text);width:14px;height:14px}.contact-copy-btn{color:var(--text-strong);cursor:pointer;min-height:42px;transition:border-color var(--motion-fast) var(--motion-ease), background var(--motion-fast) var(--motion-ease), color var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-3), #fff 7%), color-mix(in srgb, var(--surface-2), #0000 10%));border:1px solid color-mix(in srgb, var(--line-strong), #fff 14%);border-radius:999px;justify-content:center;align-items:center;width:42px;min-width:42px;padding:0;display:inline-flex;box-shadow:inset 0 1px #ffffff1a,0 8px 16px #00000030}.contact-copy-btn:hover{color:var(--text-strong);border-color:color-mix(in srgb, var(--line-strong), var(--accent) 22%);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-3), #fff 13%), color-mix(in srgb, var(--surface-2), #0000 7%));box-shadow:inset 0 1px #ffffff24, 0 10px 20px #0000003d, 0 0 0 1px color-mix(in srgb, var(--accent), #0000 82%);transform:translateY(-1px)}.contact-copy-btn.is-copied{color:var(--ink-ui-text);background:var(--ink-ui-bg);border-color:var(--ink-ui-border);box-shadow:var(--ink-ui-shadow)}.contact-copy-btn-icon{color:var(--accent);border:1px solid color-mix(in srgb, var(--line-strong), #0000 14%);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-2), #fff 10%), color-mix(in srgb, var(--surface-1), #0000 8%));border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;font-size:.82rem;font-weight:700;line-height:1;display:inline-flex}.contact-copy-btn.is-copied .contact-copy-btn-icon{color:var(--ink-ui-text);border-color:color-mix(in srgb, var(--ink-ui-border), #0000 12%);background:color-mix(in srgb, var(--ink-ui-bg), #fff 10%)}body:after{content:"";pointer-events:none;z-index:0;opacity:0;background:0 0;position:fixed;inset:0}.project-card-reference,.experience-card-reference,.oss-card,.cert-card-reference,.skill-card-reference,.community-feature,.about-copy-card,.article-row-reference{transition:background var(--motion-base) var(--motion-ease), border-color var(--motion-base) var(--motion-ease), box-shadow var(--motion-base) var(--motion-ease), transform var(--motion-base) var(--motion-ease)}.project-card-reference:hover,.experience-card-reference:hover,.oss-card:hover,.cert-card-reference:hover,.skill-card-reference:hover,.community-feature:hover,.about-copy-card:hover,.article-row-reference:hover{box-shadow:var(--card-shadow-hover);border-color:var(--card-line-hover);background:var(--card-bg-hover);transform:translateY(-3px)}.experience-card-reference.is-primary:hover,.project-card-reference.is-featured:hover{box-shadow:var(--card-shadow-featured-hover);border-color:var(--card-line-featured);background:var(--card-bg-featured)}.footer-reference{color:var(--soft);grid-column:1/-1;justify-content:space-between;gap:18px;margin-top:14px;padding-top:10px;font-size:.92rem;display:flex}.section-slab+.section-slab:before{content:"";background:linear-gradient(90deg, #0000, var(--line) 20% 80%, #0000);width:min(1180px,100% - 48px);height:1px;margin:0 auto;display:block}.portfolio-site h1,.portfolio-site h2,.portfolio-site h3,.portfolio-site h4{color:var(--heading)}:root[data-theme=light] .chip{--chip-border:#2f5ed04a;--chip-ink:#123069;--chip-glow:#3f7dff2e;text-shadow:none;background:linear-gradient(#ffffffd9,#f0f5ff);box-shadow:inset 0 1px #fff,0 8px 16px #2a4d8f1a,0 0 0 1px #2f5ed012}:root[data-theme=light] .chip-row .chip{--chip-border:#2f5ed05c;--chip-ink:#0f2b63;--chip-glow:#3f7dff3b;letter-spacing:.015em;background:linear-gradient(#fff,#edf4ff 70%,#e8f1ff);box-shadow:inset 0 1px #fff,0 10px 18px #2a4d8f18,0 0 0 1px #2f5ed01f}:root[data-theme=light] .chip-soft{background:linear-gradient(#fff,#edf4ff)}:root[data-theme=light] .chip:hover{color:#0f2550;border-color:#2f5ed080;box-shadow:inset 0 1px #fff,0 12px 20px #2a4d8f24,0 0 0 1px #2f5ed036}:root[data-theme=light] .experience-card-reference.is-primary .chip{box-shadow:inset 0 1px #fff,0 12px 22px #2a4d8f22,0 0 0 1px #2f5ed024}:root[data-theme=light] .project-impact-line{color:#16335f;background:linear-gradient(#f9fcff,#edf4ff 62%,#e7efff);border-color:#2f5ed054;box-shadow:inset 0 1px #fff,0 8px 16px #2a4d8f14}:root[data-theme=light] .project-impact-line span{color:#12306a;background:linear-gradient(#fff,#eaf2ff);border-color:#2f5ed078;box-shadow:inset 0 1px #fff,0 4px 10px #2a4d8f1a}:root[data-theme=light] .project-demo-link,:root[data-theme=light] .project-github-link{color:#132f5f;background:linear-gradient(#fff,#eef4ff 64%,#e7efff);border-color:#2f5ed050;box-shadow:inset 0 1px #fff,0 10px 20px #2a4d8f18,0 0 0 1px #2f5ed014}:root[data-theme=light] .project-demo-link:hover,:root[data-theme=light] .project-github-link:hover{color:#0f2a56;background:linear-gradient(#fff,#e8f1ff 64%,#e1ebff);border-color:#2f5ed07a;box-shadow:inset 0 1px #fff,0 12px 24px #2a4d8f21,0 0 0 1px #2f5ed033}:root[data-theme=light] .project-demo-link .project-demo-link-arrow,:root[data-theme=light] .project-github-link .project-github-link-arrow{color:#173a79;opacity:.92}:root[data-theme=light] .project-github-link-icon{color:#173a79;background:linear-gradient(#fbfdff,#e8f0ff);border-color:#2f5ed061;box-shadow:inset 0 1px #fff,0 6px 12px #2a4d8f1d}:root[data-theme=light] .theme-toggle{background:linear-gradient(#fbfdff,#eaf2ff);border-color:#2f5ed045;box-shadow:inset 0 1px #fff,0 8px 18px #2a4d8f1f}:root[data-theme=light] .theme-toggle:hover{background:linear-gradient(#fff,#e3eeff);border-color:#2f5ed069;box-shadow:inset 0 1px #fff,0 10px 22px #2a4d8f2b}:root[data-theme=light] .theme-toggle-track{background:linear-gradient(90deg,#e5efff,#d6e5ff);border-color:#2f5ed036}:root[data-theme=light] .theme-toggle-thumb{background:linear-gradient(#fff,#f4f8ff);border-color:#d2dff8;box-shadow:0 4px 10px #2a4d8f29}:root[data-theme=light] .theme-toggle-icon-sun{color:#cc8a00}:root[data-theme=light] .theme-toggle-icon-moon{color:#4a628a}:root[data-theme=light] .button-solid{color:var(--ink-ui-text);background:var(--ink-ui-bg);border-color:var(--ink-ui-border);box-shadow:var(--ink-ui-shadow)}:root[data-theme=light] .button-solid:hover{background:var(--ink-ui-bg-hover);border-color:var(--ink-ui-border-strong);box-shadow:var(--ink-ui-shadow-hover)}:root[data-theme=light] .button-outline,:root[data-theme=light] .inline-action{color:#112448;background:#fff;border-color:#2f5ed042;box-shadow:0 8px 16px #2a4d8f14}:root[data-theme=light] .button-outline:hover,:root[data-theme=light] .inline-action:hover{background:#f5f9ff;border-color:#2f5ed072;box-shadow:0 10px 20px #2a4d8f1f}:root[data-theme=light] .button-resume{color:#0f2247;background:linear-gradient(#f6faff,#e8f2ff);border-color:#2f5ed05c;box-shadow:inset 0 1px #fff,0 10px 20px #2a4d8f1c,0 0 0 1px #2f5ed021}:root[data-theme=light] .button-resume:hover{background:linear-gradient(#fff,#e4efff);border-color:#2f5ed082;box-shadow:inset 0 1px #fff,0 12px 24px #2a4d8f22,0 0 0 1px #2f5ed030}:root[data-theme=light] .nav-toggle{background:linear-gradient(#192741eb,#111c31e9);border-color:#6f8fbf54;box-shadow:inset 0 1px #ffffff24,0 8px 18px #0004}:root[data-theme=light] .nav-toggle:hover{background:linear-gradient(#213757ed,#16263fe9);border-color:#90b0de68;box-shadow:inset 0 1px #ffffff2e,0 10px 20px #00000040}:root[data-theme=light] .reading-progress-track{background:#1f458321}:root[data-theme=light] .scroll-edge-button{background:#10182a;border-color:#10182a;box-shadow:0 4px 14px #1541962e}:root[data-theme=light] .scroll-edge-button:hover{background:#1a2540;border-color:#1a2540}:root[data-theme=light] .social-link-reference,:root[data-theme=light] .contact-simple-link,:root[data-theme=light] .contact-copy-btn{background:#f5f9ff;border-color:#315ea93b}:root[data-theme=light] .social-link-reference:hover,:root[data-theme=light] .contact-simple-link:hover,:root[data-theme=light] .contact-copy-btn:hover{background:#eaf2ff;border-color:#315ea96e}:root[data-theme=light] .section-filter-chip{color:#4e6690;background:#f4f8ff;border-color:#315ea938}:root[data-theme=light] .section-filter-chip-icon{filter:drop-shadow(0 2px 4px #2a4d8f2e);background:linear-gradient(#fff,#eef4ff);border-color:#315ea947}:root[data-theme=light] .section-filter-chip:hover{color:#17316f;background:#eaf2ff;border-color:#315ea967}:root[data-theme=light] .section-filter-chip.is-active,:root[data-theme=light] .contact-copy-btn.is-copied{color:var(--ink-ui-text);background:var(--ink-ui-bg);border-color:var(--ink-ui-border);box-shadow:var(--ink-ui-shadow)}@media (min-width:1121px){.hero-copy-reference{justify-content:center;min-height:clamp(440px,58svh,560px);padding-top:clamp(42px,6vw,72px);padding-bottom:clamp(42px,6vw,72px)}.hero-cta-stack{gap:24px;margin-top:34px;padding-top:0}}@media (max-width:1180px){.desktop-only{display:none}.mobile-only{display:inline-flex}.nav-shell{gap:8px;width:fit-content;max-width:calc(100% - 28px);margin-left:auto;margin-right:14px;padding:10px}}@media (max-width:1120px){.hero-grid-reference,.skills-grid-reference,.cert-grid-reference,.article-row-reference{grid-template-columns:1fr}.article-meta-reference{text-align:left}}@media (max-width:860px){.desktop-only{display:none}.mobile-only{display:inline-flex}.hero-section-reference{min-height:clamp(610px,84svh,720px);padding:106px 0 34px}.hero-person{align-items:center}.hero-copy-reference h1{font-size:clamp(2.8rem,11vw,3.8rem)}.experience-head-reference,.project-head-reference,.community-card-head{flex-direction:column;align-items:flex-start;gap:8px}.project-context{text-align:left;font-size:.9rem}.project-card-intro{grid-template-columns:1fr;gap:0}.project-impact-line{flex-direction:column;align-items:flex-start}.project-card-reference h4,.experience-card-reference h4{color:var(--heading);margin-top:20px}.project-detail-grid h4{margin-top:0}.oss-grid{grid-template-columns:1fr}.hero-portrait-ring{flex-shrink:0;width:88px;height:88px;position:relative}.hero-portrait-ring:before{content:"";z-index:0;background:var(--line-strong);border-radius:50%;position:absolute;inset:-3px}.hero-portrait-ring:after{content:"";z-index:1;background:var(--surface-2);border-radius:50%;position:absolute;inset:2px}.hero-portrait{z-index:2;object-fit:cover;border:none;border-radius:50%;width:80px;height:80px;margin:4px;position:relative;box-shadow:0 8px 24px #00000080}.footer-reference{flex-direction:column;align-items:flex-start}.experience-role-block{text-align:left}.community-feature{grid-template-columns:1fr}.testimonial-track{gap:24px;padding:8px 16px 4px;animation-duration:124s}.testimonial-marquee{min-height:150px}.testimonial-item{width:min(90vw,440px);min-width:min(90vw,440px)}.testimonial-copy h3{font-size:1.26rem}.testimonial-role{font-size:.95rem}.testimonial-quote{font-size:.92rem}}@media (max-width:640px){.container,.mobile-panel{width:min(100%,100% - 28px)}.reading-progress{width:100%;top:0}.site-nav{inset:14px 0 auto}.nav-shell{padding:10px 14px}.mobile-panel{max-height:calc(100dvh - 94px - env(safe-area-inset-bottom));padding-bottom:calc(12px + env(safe-area-inset-bottom));top:78px;right:14px}.theme-toggle{width:54px;height:31px}.theme-toggle.is-dark .theme-toggle-thumb{transform:translate(23px)}.section-slab{padding:72px 0 44px}.hero-section-reference{min-height:clamp(600px,82svh,700px);padding:100px 0 32px}#contact.section-slab{padding-top:20px;padding-bottom:32px}.hero-portrait{width:88px;height:88px}.project-card-reference,.experience-card-reference,.oss-card,.about-copy-card,.community-feature,.article-row-reference,.skill-card-reference,.cert-card-reference{padding:20px}.section-filter-row{margin-bottom:14px}.project-github-link,.project-demo-link,.project-interact-link{justify-content:flex-start;width:100%}.cert-badge-wrap{width:auto;height:auto;margin-bottom:10px}.cert-badge-image{width:96px;height:96px}.contact-simple-row{flex-direction:column;align-items:flex-start;gap:14px}.scroll-edge-button{width:38px;height:38px;bottom:max(86px, calc(18px + env(safe-area-inset-bottom)));right:max(18px, calc(14px + env(safe-area-inset-right)));justify-content:center;padding:0}}@media (prefers-reduced-motion:reduce){.testimonial-track{flex-wrap:wrap;width:100%;padding-right:0;animation:none}.testimonial-item[aria-hidden=true]{display:none}.testimonial-item{width:min(100%,520px);min-width:min(100%,520px)}}
