@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/04c5164763c40239-s.0h-nw9_c8d~-_.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/26f284dcc38c84c0-s.10hk62x1-0d9n.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/7e7f32a39836f228-s.0bmyfaahigzds.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/fa39153a3fc630ba-s.0-0ft90hthv3~.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/6a5386fd6038edbe-s.16fk0g~ypa53a.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/051742360c26797e-s.p.0f97p8c3305p~.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/04c5164763c40239-s.0h-nw9_c8d~-_.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/26f284dcc38c84c0-s.10hk62x1-0d9n.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/7e7f32a39836f228-s.0bmyfaahigzds.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/fa39153a3fc630ba-s.0-0ft90hthv3~.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/6a5386fd6038edbe-s.16fk0g~ypa53a.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/051742360c26797e-s.p.0f97p8c3305p~.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/04c5164763c40239-s.0h-nw9_c8d~-_.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/26f284dcc38c84c0-s.10hk62x1-0d9n.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/7e7f32a39836f228-s.0bmyfaahigzds.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/fa39153a3fc630ba-s.0-0ft90hthv3~.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/6a5386fd6038edbe-s.16fk0g~ypa53a.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/051742360c26797e-s.p.0f97p8c3305p~.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/04c5164763c40239-s.0h-nw9_c8d~-_.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/26f284dcc38c84c0-s.10hk62x1-0d9n.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/7e7f32a39836f228-s.0bmyfaahigzds.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/fa39153a3fc630ba-s.0-0ft90hthv3~.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/6a5386fd6038edbe-s.16fk0g~ypa53a.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/051742360c26797e-s.p.0f97p8c3305p~.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_78559d5d-module__lUM3Hq__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_78559d5d-module__lUM3Hq__variable{--font-display:"JetBrains Mono", "JetBrains Mono Fallback"}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.0xyeb7czu1stb.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.0vnh8.d8wxa2x.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.0~.8lt~vdqmc3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.00z~hoalba5dm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0vwgtotjdgnhr.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.09.f.n_ccld80.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.0xyeb7czu1stb.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.0vnh8.d8wxa2x.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.0~.8lt~vdqmc3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.00z~hoalba5dm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0vwgtotjdgnhr.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.09.f.n_ccld80.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.0xyeb7czu1stb.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.0vnh8.d8wxa2x.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.0~.8lt~vdqmc3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.00z~hoalba5dm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0vwgtotjdgnhr.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.09.f.n_ccld80.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.0xyeb7czu1stb.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.0vnh8.d8wxa2x.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.0~.8lt~vdqmc3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.00z~hoalba5dm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0vwgtotjdgnhr.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.09.f.n_ccld80.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.0xyeb7czu1stb.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.0vnh8.d8wxa2x.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.0~.8lt~vdqmc3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.00z~hoalba5dm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0vwgtotjdgnhr.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.09.f.n_ccld80.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_d150041d-module__4s2GWG__className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.ibm_plex_sans_d150041d-module__4s2GWG__variable{--font-body:"IBM Plex Sans", "IBM Plex Sans Fallback"}
:root{--bg-primary:#fff;--bg-secondary:#f4f4f5;--bg-dark:#18181b;--bg-card:#fff;--bg-card-hover:#f4f4f5;--border-color:#e4e4e7;--border-section:#e4e4e7;--accent:#18181b;--accent-dim:#52525b;--accent-glow:#0000000a;--text-primary:#09090b;--text-secondary:#52525b;--text-muted:#a1a1aa;--max-width:1100px;--nav-height:64px;--radius:8px;--radius-lg:12px;--transition:.3s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-height)}body{font-family:var(--font-body), "IBM Plex Sans", sans-serif;color:#09090b;-webkit-font-smoothing:antialiased;background-color:#fff;font-size:16px;line-height:1.7;overflow-x:hidden}.section-label,.section-title,.nav-logo,.nav-links a,.hero-greeting,.hero-name,.hero-title,.btn,.badge,.skill-card h3,.skill-name,.skill-level,.skill-tag,.project-card h3,.project-status,.project-tag,.modal h2,.modal-meta,.modal-highlight span,.contact-info h4,.contact-location,.footer p{font-family:var(--font-display), "JetBrains Mono", monospace}a{color:#18181b;transition:color var(--transition);text-decoration:none}a:hover{color:#52525b}img{max-width:100%;display:block}body:before{content:"";opacity:.3;pointer-events:none;z-index:0;background-image:radial-gradient(circle,#e4e4e7 .5px,#0000 .5px);background-size:32px 32px;position:fixed;inset:0}.container{max-width:var(--max-width);z-index:1;margin:0 auto;padding:0 24px;position:relative}.section{padding:100px 0;position:relative}.hero{background:url(/projects/new/bg.jpeg) 100%/cover no-repeat;position:relative}.hero:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,#fff 0% 50%,#ffffffa5 60%,#ffffff4d 75%,#0003 95%);position:absolute;inset:0}.hero>*{z-index:2;position:relative}#about{background:#f4f4f5;border-top:1px solid #e4e4e7}#skills{color:#fafafa;background:#18181b;border-top:1px solid #27272a}#projects{background:#f4f4f5;border-top:1px solid #e4e4e7}#contact{color:#fafafa;background:#18181b;border-top:1px solid #27272a}#skills .section-label,#contact .section-label,#skills .section-title,#contact .section-title{color:#fafafa}#skills .section-label:before,#contact .section-label:before{color:#a1a1aa}.section-label{color:#18181b;text-transform:uppercase;letter-spacing:3px;align-items:center;gap:8px;margin-bottom:8px;font-size:.75rem;display:flex}.section-label:before{content:"//";opacity:.5}.section-title{color:#09090b;margin-bottom:48px;font-size:2rem;font-weight:700}.navbar{height:var(--nav-height);-webkit-backdrop-filter:blur(16px);z-index:1000;background:#ffffffd1;border-bottom:1px solid #00000014;align-items:center;transition:background .3s;display:flex;position:fixed;top:0;left:0;right:0}.nav-inner{max-width:var(--max-width);justify-content:space-between;align-items:center;width:100%;margin:0 auto;padding:0 24px;display:flex}.nav-logo{color:#09090b;font-size:1.1rem;font-weight:700}.nav-logo span{color:#09090b}.nav-links{gap:32px;list-style:none;display:flex}.nav-links a{color:#09090b;text-transform:lowercase;letter-spacing:.5px;padding:4px 0;font-size:.8rem;position:relative}.nav-links a:after{content:"";width:0;height:2px;transition:width var(--transition);background:#09090b;position:absolute;bottom:-2px;left:0}.nav-links a:hover,.nav-links a.active{color:#52525b}.nav-links a:hover:after,.nav-links a.active:after{width:100%}.hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:4px;display:none}.hamburger span{width:24px;height:2px;transition:var(--transition);background:#09090b;border-radius:2px;display:block}.hamburger.active span:first-child{transform:rotate(45deg)translate(5px,5px)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:rotate(-45deg)translate(5px,-5px)}.hero{min-height:100vh;padding-top:var(--nav-height);align-items:center;display:flex;position:relative}.hero-content{z-index:1;position:relative}.hero-greeting{color:#52525b;opacity:.8;text-shadow:0 0 12px #52525b66;min-height:1.5em;margin-bottom:16px;font-size:.9rem}.greeting-fadein{opacity:0;animation:.7s cubic-bezier(.22,1,.36,1) .1s forwards greetingReveal;transform:translateY(14px)}@keyframes greetingReveal{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.hero-name{margin-bottom:8px;font-size:clamp(2.5rem,6vw,4rem);font-weight:700;line-height:1.1}.glitch{animation:.28s steps(4,end) forwards glitchMain;display:inline-block;position:relative}.glitch:before,.glitch:after{content:attr(data-text);pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.glitch:before{color:#09090b;text-shadow:-2px 0 #00e5ff;clip-path:inset(0 0 50%);animation:.28s steps(4,end) forwards glitchBefore,.52s linear .33s forwards glitchFlickerBefore}.glitch:after{color:#09090b;text-shadow:2px 0 #f05;clip-path:inset(50% 0 0);animation:.28s steps(4,end) forwards glitchAfter,.52s linear .33s forwards glitchFlickerAfter}@keyframes glitchMain{0%{filter:blur(3px);opacity:.7;transform:skew(-8deg)translate(-6px)}25%{filter:blur(2px);opacity:.85;transform:skew(5deg)translate(4px)}50%{filter:blur(1.5px);opacity:.75;transform:skew(-3deg)translate(-3px)}75%{filter:blur(.5px);opacity:.9;transform:skew(2deg)translate(2px)}to{filter:blur();opacity:1;transform:skew(0)translate(0)}}@keyframes glitchBefore{0%{clip-path:inset(10% 0 40%);transform:translate(-4px)skew(-6deg)}25%{clip-path:inset(30% 0 20%);transform:translate(3px)skew(4deg)}50%{clip-path:inset(5% 0 60%);transform:translate(-2px)skew(-2deg)}75%{clip-path:inset(20% 0 30%);transform:translate(1px)skew(1deg)}to{clip-path:inset(0 0 50%);text-shadow:none;transform:translate(0)skew(0)}}@keyframes glitchAfter{0%{clip-path:inset(50% 0 10%);transform:translate(4px)skew(6deg)}25%{clip-path:inset(40% 0 20%);transform:translate(-3px)skew(-3deg)}50%{clip-path:inset(55% 0 5%);transform:translate(2px)skew(2deg)}75%{clip-path:inset(48% 0 15%);transform:translate(-1px)skew(-1deg)}to{clip-path:inset(50% 0 0);text-shadow:none;transform:translate(0)skew(0)}}@keyframes glitchFlickerBefore{0%{text-shadow:-1px 0 #00e5ff80;opacity:.8;transform:translate(-1.5px)}20%{text-shadow:-.5px 0 #00e5ff4d;opacity:.6;transform:translate(1px)}50%{text-shadow:-.3px 0 #00e5ff26;opacity:.4;transform:translate(-.5px)}80%{text-shadow:none;opacity:.15;transform:translate(.2px)}to{text-shadow:none;opacity:0;transform:translate(0)}}@keyframes glitchFlickerAfter{0%{text-shadow:1px 0 #ff005580;opacity:.8;transform:translate(1.5px)}20%{text-shadow:.5px 0 #ff00554d;opacity:.6;transform:translate(-1px)}50%{text-shadow:.3px 0 #ff005526;opacity:.4;transform:translate(.5px)}80%{text-shadow:none;opacity:.15;transform:translate(-.2px)}to{text-shadow:none;opacity:0;transform:translate(0)}}.hero-title{color:#18181b;margin-bottom:24px;font-size:clamp(1.2rem,3vw,1.6rem);font-weight:500}.hero-tagline{color:#52525b;max-width:560px;min-height:2em;margin-bottom:40px;font-size:1.1rem}.typing-cursor{vertical-align:text-bottom;background:#18181b;width:2px;height:1.2em;margin-left:2px;animation:1s step-end infinite cursorBlink;display:inline-block}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.hero-cta{flex-wrap:wrap;gap:16px;display:flex}.btn{border-radius:var(--radius);cursor:pointer;transition:var(--transition);border:none;align-items:center;gap:8px;padding:12px 28px;font-size:.85rem;font-weight:600;display:inline-flex}.btn-primary{color:#fafafa;background:#18181b}.btn-primary:hover{opacity:.85;color:#fafafa;transition:all .2s;transform:translateY(-2px);box-shadow:0 1px 3px #0000001f}.btn-outline{color:#18181b;background:0 0;border:1px solid #e4e4e7}.btn-outline:hover{color:#18181b;background:#f4f4f5;border-color:#18181b;transition:all .2s;transform:translateY(-2px)}.hero-decoration{opacity:.06;pointer-events:none;width:340px;height:340px;position:absolute;top:50%;right:0;transform:translateY(-50%)}.about-grid{grid-template-columns:auto 1fr;align-items:center;gap:48px;display:grid}.about-avatar{clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);background:#e4e4e7;justify-content:center;align-items:center;width:180px;height:200px;display:flex;position:relative;overflow:hidden}.about-avatar-inner{clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);color:#18181b;background:linear-gradient(135deg,#fff,#f4f4f5);justify-content:center;align-items:center;width:170px;height:190px;font-size:3rem;display:flex}.about-text p{color:var(--text-secondary);margin-bottom:24px;font-size:1.05rem}.about-badges{flex-wrap:wrap;gap:12px;display:flex}.badge{color:#52525b;background:#fff;border:1px solid #e4e4e7;border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-size:.75rem;display:flex}.badge svg{stroke:#18181b;width:14px;height:14px}.skills-grid{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.skill-card{border-radius:var(--radius-lg);transition:var(--transition);background:#27272a;border:1px solid #3f3f46;padding:28px}.skill-card:hover{border-color:#52525b;transform:translateY(-4px);box-shadow:0 4px 16px #0000004d}.skill-card-header{align-items:center;gap:12px;margin-bottom:20px;display:flex}.skill-card-icon{border-radius:var(--radius);background:#ffffff14;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.skill-card-icon svg{stroke:#fafafa;fill:none;width:20px;height:20px}.skill-card h3{color:#fafafa;font-size:1rem;font-weight:600}.skill-item{margin-bottom:14px}.skill-item:last-child{margin-bottom:0}.skill-name{color:#a1a1aa;justify-content:space-between;margin-bottom:6px;font-size:.8rem;display:flex}.skill-level{color:#fafafa;font-size:.7rem}.skill-bar{background:#3f3f46;border-radius:3px;width:100%;height:6px;overflow:hidden}.skill-bar-fill{background:linear-gradient(90deg,#fafafa,#a1a1aa);border-radius:3px;width:0;height:100%;transition:width 1s cubic-bezier(.4,0,.2,1)}.skill-tags{flex-wrap:wrap;gap:8px;display:flex}.skill-tag{color:#a1a1aa;transition:var(--transition);background:#18181b;border:1px solid #3f3f46;border-radius:6px;padding:6px 12px;font-size:.75rem}.skill-tag:hover{color:#fafafa;border-color:#fafafa}.projects-grid{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.project-card{border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition);background:#fff;border:1px solid #e4e4e7;overflow:hidden;box-shadow:0 1px 3px #00000014}.project-card:hover{border-color:#a1a1aa;transform:translateY(-4px);box-shadow:0 4px 16px #0000001a}.project-card-image{object-fit:cover;width:100%;height:200px;transition:var(--transition);border-bottom:1px solid #e4e4e7}.project-card:hover .project-card-image{opacity:.85}.project-card-body{padding:24px}.project-card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.project-card h3{font-size:1rem;font-weight:600}.project-status{text-transform:uppercase;letter-spacing:.5px;border-radius:20px;padding:4px 10px;font-size:.65rem;font-weight:600}.status-completed{color:#18181b;background:#f4f4f5;border:1px solid #e4e4e7}.status-progress,.status-competition{color:#52525b;background:#f4f4f5;border:1px solid #e4e4e7}.project-card p{color:var(--text-secondary);margin-bottom:16px;font-size:.9rem;line-height:1.6}.project-tags{flex-wrap:wrap;gap:6px;display:flex}.project-tag{color:#52525b;background:#f4f4f5;border:1px solid #e4e4e7;border-radius:4px;padding:3px 10px;font-size:.7rem}.project-badge{margin-bottom:8px;font-size:.75rem;display:inline-block}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;opacity:0;visibility:hidden;transition:var(--transition);background:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay.active{opacity:1;visibility:visible}.modal{border-radius:var(--radius-lg);width:90%;max-width:640px;max-height:85vh;transition:var(--transition);color:#09090b;background:#fff;border:1px solid #e4e4e7;position:relative;overflow-y:auto;transform:scale(.9)translateY(20px)}.modal-overlay.active .modal{transform:scale(1)translateY(0)}.modal-image-wrapper{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:300px;overflow-y:auto}.modal-body{padding:32px}.modal-close{color:#fafafa;cursor:pointer;width:36px;height:36px;transition:var(--transition);z-index:10;background:#0009;border:1px solid #3f3f46;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;display:flex;position:absolute;top:16px;right:16px}.modal-close:hover{color:#fafafa;background:#18181b}.modal h2{margin-bottom:8px;font-size:1.4rem}.modal-meta{color:#a1a1aa;margin-bottom:16px;font-size:.8rem}.modal p{color:#52525b;margin-bottom:16px;line-height:1.7}.modal-highlight{border-radius:0 var(--radius) var(--radius) 0;background:#f4f4f5;border-left:3px solid #18181b;margin-bottom:20px;padding:12px 16px}.modal-highlight span{color:#18181b;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px;font-size:.75rem;display:block}.modal-highlight p{margin-bottom:0;font-size:.9rem}.modal .project-tags{margin-top:16px}.contact-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:32px;display:grid}.contact-card{border-radius:var(--radius-lg);transition:var(--transition);color:#fafafa;background:#27272a;border:1px solid #3f3f46;align-items:center;gap:16px;padding:24px;text-decoration:none;display:flex}.contact-card:hover{color:#fafafa;border-color:#52525b;transform:translateY(-2px);box-shadow:0 4px 16px #0000004d}.contact-icon{border-radius:var(--radius);width:44px;height:44px;transition:var(--transition);background:#18181b;flex-shrink:0;justify-content:center;align-items:center;display:flex}.contact-card:hover .contact-icon{background:#3f3f46}.contact-icon svg{stroke:#a1a1aa;fill:none;width:20px;height:20px;transition:var(--transition)}.contact-card:hover .contact-icon svg{stroke:#fafafa}.contact-info h4{color:#fafafa;margin-bottom:2px;font-size:.85rem;font-weight:600}.contact-info p{color:#a1a1aa;font-size:.8rem}.contact-location{text-align:center;color:#a1a1aa;justify-content:center;align-items:center;gap:6px;font-size:.8rem;display:flex}.contact-location svg{stroke:#a1a1aa;fill:none;width:14px;height:14px}.footer{text-align:center;background:#18181b;border-top:1px solid #27272a;padding:32px 0}.footer p{color:#a1a1aa;font-size:.75rem}.footer span{color:#fafafa}.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(30px)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-children>*{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(20px)}.reveal-children.visible>:first-child{transition-delay:50ms}.reveal-children.visible>:nth-child(2){transition-delay:.1s}.reveal-children.visible>:nth-child(3){transition-delay:.15s}.reveal-children.visible>:nth-child(4){transition-delay:.2s}.reveal-children.visible>:nth-child(5){transition-delay:.25s}.reveal-children.visible>*{opacity:1;transform:translateY(0)}@media (max-width:768px){.section{padding:72px 0}.hero{text-align:left;background-image:none;padding:100px 24px 60px}.hero:before{display:none}.hero>*{z-index:2;position:relative}.hero-name{word-break:keep-all;overflow-wrap:normal;font-size:clamp(2rem,10vw,3rem);line-height:1.15}.hero-cta{flex-direction:column;align-items:flex-start;gap:12px}.hero-cta .btn{width:auto;min-width:160px;max-width:260px;padding:12px 24px}.navbar{padding:0 20px}.nav-links{top:var(--nav-height);opacity:0;visibility:hidden;transition:var(--transition);background:#fff;border-bottom:1px solid #e4e4e7;flex-direction:column;gap:20px;padding:24px;position:fixed;left:0;right:0;transform:translateY(-100%)}.nav-links.open{opacity:1;visibility:visible;transform:translateY(0)}.hamburger{display:flex}.about-grid{text-align:center;grid-template-columns:1fr;gap:32px}.about-avatar{margin:0 auto}.about-badges{justify-content:center}.skills-grid,.projects-grid{grid-template-columns:1fr}}@media (max-width:480px){.container{padding:0 16px}.section{padding:56px 0}.section-title{margin-bottom:32px;font-size:1.5rem}.hero-cta{flex-direction:column;align-items:flex-start;gap:12px}.hero-cta .btn{width:auto;min-width:160px;max-width:260px;padding:12px 24px}.contact-grid{grid-template-columns:1fr}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#f4f4f5}::-webkit-scrollbar-thumb{background:#e4e4e7;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a1a1aa}
