:root{--color-bg-primary:#efefef;--color-bg-surface:#131317;--color-bg-elevated:#1a1a20;--color-bg-glass:#131317bf;--color-border-default:#ffffff0f;--color-border-hover:#8b5cf640;--color-border-active:#8b5cf6;--color-text-primary:#efefef;--color-text-secondary:#ababab;--color-text-tertiary:#bbb;--color-text-disabled:#52525b;--color-accent:#8b5cf6;--color-accent-hover:#9777f8;--color-accent-muted:#8b5cf61f;--color-accent-hover-2:#8a5cf64c;--color-success:#4ade80;--color-success-muted:#4ade801f;--color-warning:#fbbf24;--color-warning-muted:#fbbf241f;--color-error:#f87171;--color-error-muted:#f871711f;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 8px 32px #0009;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", Consolas, monospace;--text-hero:clamp(2.2rem, 6vw + .5rem, 4.5rem);--text-display:clamp(1.8rem, 4.5vw + .4rem, 3.8rem);--text-h1:clamp(1.625rem, 2.8vw + .5rem, 2.35rem);--text-h2:clamp(1.25rem, 2vw + .4rem, 1.75rem);--text-h3:clamp(1.0625rem, 1.2vw + .35rem, 1.25rem);--text-body:1rem;--text-body-sm:.875rem;--text-caption:.75rem;--text-mono:.8125rem;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-out-quint:cubic-bezier(.22, 1, .36, 1);--ease-in-out-circ:cubic-bezier(.85, 0, .15, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--navbar-height:3.5rem;--content-max-width:80rem;--content-padding:var(--space-6)}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-cyrillic-ext-400-normal.BQZuk6qB.woff2)format("woff2"),url(/_astro/inter-cyrillic-ext-400-normal.DQukG94-.woff)format("woff");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-display:swap;font-weight:400;src:url(/_astro/inter-cyrillic-400-normal.obahsSVq.woff2)format("woff2"),url(/_astro/inter-cyrillic-400-normal.HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-greek-ext-400-normal.DGGRlc-M.woff2)format("woff2"),url(/_astro/inter-greek-ext-400-normal.KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-greek-400-normal.B4URO6DV.woff2)format("woff2"),url(/_astro/inter-greek-400-normal.q2sYcFCs.woff)format("woff");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-display:swap;font-weight:400;src:url(/_astro/inter-vietnamese-400-normal.DMkecbls.woff2)format("woff2"),url(/_astro/inter-vietnamese-400-normal.Bbgyi5SW.woff)format("woff");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-display:swap;font-weight:400;src:url(/_astro/inter-latin-ext-400-normal.C1nco2VV.woff2)format("woff2"),url(/_astro/inter-latin-ext-400-normal.77YHD8bZ.woff)format("woff");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-display:swap;font-weight:400;src:url(/_astro/inter-latin-400-normal.C38fXH4l.woff2)format("woff2"),url(/_astro/inter-latin-400-normal.CyCys3Eg.woff)format("woff");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-display:swap;font-weight:500;src:url(/_astro/inter-cyrillic-ext-500-normal.B0yAr1jD.woff2)format("woff2"),url(/_astro/inter-cyrillic-ext-500-normal.BmqWE9Dz.woff)format("woff");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-display:swap;font-weight:500;src:url(/_astro/inter-cyrillic-500-normal.BasfLYem.woff2)format("woff2"),url(/_astro/inter-cyrillic-500-normal.CxZf_p3X.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-greek-ext-500-normal.C4iEst2y.woff2)format("woff2"),url(/_astro/inter-greek-ext-500-normal.2j5mBUwD.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-greek-500-normal.BIZE56-Y.woff2)format("woff2"),url(/_astro/inter-greek-500-normal.Xzm54t5V.woff)format("woff");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-display:swap;font-weight:500;src:url(/_astro/inter-vietnamese-500-normal.DOriooB6.woff2)format("woff2"),url(/_astro/inter-vietnamese-500-normal.mJboJaSs.woff)format("woff");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-display:swap;font-weight:500;src:url(/_astro/inter-latin-ext-500-normal.CV4jyFjo.woff2)format("woff2"),url(/_astro/inter-latin-ext-500-normal.BxGbmqWO.woff)format("woff");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-display:swap;font-weight:500;src:url(/_astro/inter-latin-500-normal.Cerq10X2.woff2)format("woff2"),url(/_astro/inter-latin-500-normal.BL9OpVg8.woff)format("woff");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-display:swap;font-weight:600;src:url(/_astro/inter-cyrillic-ext-600-normal.Dfes3d0z.woff2)format("woff2"),url(/_astro/inter-cyrillic-ext-600-normal.Bcila6Z-.woff)format("woff");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-display:swap;font-weight:600;src:url(/_astro/inter-cyrillic-600-normal.CWCymEST.woff2)format("woff2"),url(/_astro/inter-cyrillic-600-normal.4D_pXhcN.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-greek-ext-600-normal.DRtmH8MT.woff2)format("woff2"),url(/_astro/inter-greek-ext-600-normal.B8X0CLgF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-greek-600-normal.plRanbMR.woff2)format("woff2"),url(/_astro/inter-greek-600-normal.BZpKdvQh.woff)format("woff");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-display:swap;font-weight:600;src:url(/_astro/inter-vietnamese-600-normal.Cc8MFFhd.woff2)format("woff2"),url(/_astro/inter-vietnamese-600-normal.BuLX-rYi.woff)format("woff");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-display:swap;font-weight:600;src:url(/_astro/inter-latin-ext-600-normal.D2bJ5OIk.woff2)format("woff2"),url(/_astro/inter-latin-ext-600-normal.CIVaiw4L.woff)format("woff");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-display:swap;font-weight:600;src:url(/_astro/inter-latin-600-normal.LgqL8muc.woff2)format("woff2"),url(/_astro/inter-latin-600-normal.CiBQ2DWP.woff)format("woff");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-display:swap;font-weight:700;src:url(/_astro/inter-cyrillic-ext-700-normal.BjwYoWNd.woff2)format("woff2"),url(/_astro/inter-cyrillic-ext-700-normal.LO58E6JB.woff)format("woff");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-display:swap;font-weight:700;src:url(/_astro/inter-cyrillic-700-normal.CjBOestx.woff2)format("woff2"),url(/_astro/inter-cyrillic-700-normal.DrXBdSj3.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-greek-ext-700-normal.qfdV9bQt.woff2)format("woff2"),url(/_astro/inter-greek-ext-700-normal.BoQ6DsYi.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-greek-700-normal.C3JjAnD8.woff2)format("woff2"),url(/_astro/inter-greek-700-normal.BUv2fZ6O.woff)format("woff");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-display:swap;font-weight:700;src:url(/_astro/inter-vietnamese-700-normal.DlLaEgI2.woff2)format("woff2"),url(/_astro/inter-vietnamese-700-normal.BZaoP0fm.woff)format("woff");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-display:swap;font-weight:700;src:url(/_astro/inter-latin-ext-700-normal.Ca8adRJv.woff2)format("woff2"),url(/_astro/inter-latin-ext-700-normal.TidjK2hL.woff)format("woff");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-display:swap;font-weight:700;src:url(/_astro/inter-latin-700-normal.Yt3aPRUw.woff2)format("woff2"),url(/_astro/inter-latin-700-normal.BLAVimhd.woff)format("woff");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-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQQAAAQuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVF4AdBEICoRkhAALIAABNgIkAzoEIAWFAAeBFAwHG2oHKJ6DceNW4lJEFHn9tEOE37LNsvkjHr7f739rn3u+OSrSxLQytE91Dw2PYtNVq3Qaw/vJ7fUBMdOj/u2ImB98cT5WUx9F13ZKt06mU7tG1sAYcM26yCRX4f/0904bmwq8hwkUUMTRX61pa9C3xlpAGYw1vOu8C2SBZZFlld7DAW82RJWmwYMI1AJCKBNCIASqdZGFmtPSNQRhMpR0EKjWTwm6z6sJ+4jqhxjovTinVdRpZaQjaQzAYjI8NgAKDJCokgunCn9oUQE8VZd/F//+v6P4F1U9gLr58yNI/dJX9BAshEoJbTDogz7ocKoUsPvES8UK/aQIUQgpGgECBVLkOEV6iASTYgNAPKdNXayhDPL7IJuAZnEYSZ0eOLc9i5Rv5/+lEi3sW/kfnCf/+fTe0sxS7CKLx5erRJkKOixEqQaoqrvx5HN4iz4VhX0gS6DjFIWUzn/fIXJRVFY1NFRVNVeFt+SYmrK6vCU6eJsnKnJj5HTESMTQZOTI3Y/tzr3rUcOsiRy/ciP50s3Mycgxmhz9GMXhjzVH30ut796NHP0UUa31/Zoa6vCH6iPvdIM0IRANaT60FablmZlZd+UKNFy9NrvnFGxb5NC2CRxR0/rIyF/WNn+35sv9r+tHVhkseuWGKkCPPh96+GXt8Lc/Sh24ujfjf+tNw1lZWreiPuHb/PSpyjdv2rf/++ZE5TSKjFdZxYsBvr1sEHl5STuHZqYR7jGYGvGBBdjcaB5bODY1GAxMjsd0wDMIzXAXODRd74DxNMtO4YuYHclgLQRzp9KlUmxptCwv9bYgvWGD2xBW7r9413fdJu+mxzvzAUYeeONQvZP4kgfqZle4jhH/MWh+UbxgtJdrLdXLymNL53PRU0D3Q6FcXTfGqGcul6vrqhgLGAVSv+IVIfZOHpu+mlLqSlnj903j8mazXDsba/wbxhS/4Oubh1c5/uXDgt4j5KtnGEy5BIJHo0ur+jD+r2qCkuP1aRVM8EpUoRYSJyqNRA38uwDvHBNo0AejO2Z+ZYLLal1QiFyFh1EDQOgSCSCpjwwKU8yDbIjroEwne0G5Qca49cYp4AlqtQNZfWTQoFb1tRpFYAmRD+HXTkV4uQhG2bg4OKmyoypAsUGtWgQXyFxYrkpODeUxvGqIZA61erXo0sFG1UBGuPgpuon8RNUG2DhovAjZCBuZwtXrU3mQGki9+pm0eVZAXoWxLWTQoYHBPrJR4WunNxIFbCHfkTyPK+sqxjxDmGArZvf79JGJ3GwEqjwc7a7NIrl/7bJ7Nzu4+n1Ow6shEPnUrtVo7cnd5Wi5qCUbBIQbNKCP95FMCSZylEV5VCiiMqqiOmrKZ/I/C0gI1fyuulVcM2E1r4MhtcV/fbCD+HwEvVzH1dGNAzFE0FTbKzyQz3gootrNbN2a4PuG0j0JOgE=)format("woff2"),url(data:font/woff;base64,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)format("woff");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-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-cyrillic-400-normal.BEIGL1Tu.woff2)format("woff2"),url(/_astro/jetbrains-mono-cyrillic-400-normal.ugxPyKxw.woff)format("woff");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-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-greek-400-normal.C190GLew.woff2)format("woff2"),url(/_astro/jetbrains-mono-greek-400-normal.B9oWc5Lo.woff)format("woff");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-display:swap;font-weight:400;src:url(data:font/woff2;base64,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)format("woff2"),url(/_astro/jetbrains-mono-vietnamese-400-normal.CqNFfHCs.woff)format("woff");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-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-ext-400-normal.Bc8Ftmh3.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-ext-400-normal.fXTG6kC5.woff)format("woff");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-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff");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-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAASUABAAAAAACRAAAAQ3AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVEwAdBEICoRkg3oLIAABNgIkAzoEIAWFHgeBFAwHG3AHKB4HzukrRjyF5Gb4kQ/B873d17mv8TWkoqUUGaHodJCtoqntw7m8tiPWyGkfWDU/IMpzVk4zAs9Czv3c7Os5NvKFG1Ht9vBVXySRZpJc4tTrbM3sTRFcLa3zVboKWRIoAksKSKgqUQWEwlSoqjp44V5J9/kjd0+Fi5xaFjwJArgBAIJgIAgCCAI4CdNMqGuYXYUKdADLAkAAJwl6iX0+bZqEm1AH0Hu9rvrJHwxQG1Q/gFYwWYbgTRWgwEESVzbmtjQAt3DXO7Tu/+9Q/KNKWhTCgZ8fQSWoL0CUUgTBjgL8iEAcce7YHBeA8ZvogieCnxI0BCVeACCAAhBD/oDcAdUPABSgAX4kBPBTwjCAjwYSCneiqF65LUo/qXdYFrRwTujtMrKm07plTbSqLQFAiHBN7E4DG5wkiGXhCYBNETh3K/AciHN69iFfQjFOr9EXQQAAQXRNszs8PR0OH4fDV/dwGe76CHdj1MQa11DXYGcfZ6+B1X0OfwjY+i7KpQ1w9d+1z3/HydCB1f3U8A0fRFv+0bXxPWrZu3d9Nn4UcbLs/QCXLH/j3PCKblKOiZxLOR78W9brPo7eGTLz/F27ZPmePQdCB1YP4nJU91o4gU9cy64L3c3SPu8GfDn6ZXD2cGmllVqSxtD5vCXHm5xaeHlnpffx7DcPvXog5NnjA//cPz2btsz3yf+0MI8ri33tuv7upNbYmW5STbosW8bYItV/SPzxvXC0KnpWnFdC91oojit5Lyo6WcJQ1YzwBYbi52ohJVpcxfcHBqsv0nFz8U74rzS6M7r0RVlXZ3jJC4G92O//7Lm78VOtnUx+aQxAzsqPnrRr1t9zDrezKePvZ027x+fGte4s4NXu7/jEp3G9cM1bICYgACbuETUUD5wmenGXA/IBpAKVrl0AEJ5cqr6Q89tGq+SpqkDfX2DtG+pZ9teuae0AX98c301CX179InyErnSG8WCiABB4HFbVrw/lpTdBIOk82nXbpHKoQGyBpUovAAD4XQA8ZTUCeBJHIpI0v0FRrgcnckV3ANckrwYJKXEihQfdSKPER6XeExmEeEMmSe6QBwWmkZdmSOSthhibgIkBlUYreBKd/0NeVAE9WAyEaQpH6KikDWlUVg43Jy2FOmaYlsZhDEGZXO3mWEyWHI6zuaJkMlcSQ9k4F+KidIiFyZItGDc7r1pUj6wP6zrWB0/fbeeFeHl4YOvETMNiM8Ny+7OO6Qh2wur20YVxFts5dlORdl5Kwd5utR7SRcxqX8RA5Ehacha76hg7c6yzNm/Xf6vOLNrv544lIEkWg7xWo/ItBAeIJEmt0XgBwgM8gTifoiiLJroYYooNTeziEKe4zOoR/wvIKp89hSr+6jFAqw/LaonjmZHSscMNg4iPlWpFrO1RN3zkMU+/xUP+JQ99TbvTl1Vg0gtirT6lbwYAAAA=)format("woff2"),url(data:font/woff;base64,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)format("woff");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-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-cyrillic-500-normal.DmUKJPL_.woff2)format("woff2"),url(/_astro/jetbrains-mono-cyrillic-500-normal.DJqRU3vO.woff)format("woff");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-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-greek-500-normal.JpySY46c.woff2)format("woff2"),url(/_astro/jetbrains-mono-greek-500-normal.D7SFKleX.woff)format("woff");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-display:swap;font-weight:500;src:url(data:font/woff2;base64,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)format("woff2"),url(/_astro/jetbrains-mono-vietnamese-500-normal.DNRqzVM1.woff)format("woff");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-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-ext-500-normal.Cut-4mMH.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-ext-500-normal.ckzbgY84.woff)format("woff");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-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff)format("woff");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}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:--theme(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:--theme(--default-font-feature-settings, normal);font-variation-settings:--theme(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:--theme(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:--theme(--default-mono-font-feature-settings, normal);font-variation-settings:--theme(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}@tailwind utilities;@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@theme inline{--animation-delay-0: 0s; --animation-delay-75: 75ms; --animation-delay-100: .1s; --animation-delay-150: .15s; --animation-delay-200: .2s; --animation-delay-300: .3s; --animation-delay-500: .5s; --animation-delay-700: .7s; --animation-delay-1000: 1s; --animation-repeat-0: 0; --animation-repeat-1: 1; --animation-repeat-infinite: infinite; --animation-direction-normal: normal; --animation-direction-reverse: reverse; --animation-direction-alternate: alternate; --animation-direction-alternate-reverse: alternate-reverse; --animation-fill-mode-none: none; --animation-fill-mode-forwards: forwards; --animation-fill-mode-backwards: backwards; --animation-fill-mode-both: both; --percentage-0: 0; --percentage-5: .05; --percentage-10: .1; --percentage-15: .15; --percentage-20: .2; --percentage-25: .25; --percentage-30: .3; --percentage-35: .35; --percentage-40: .4; --percentage-45: .45; --percentage-50: .5; --percentage-55: .55; --percentage-60: .6; --percentage-65: .65; --percentage-70: .7; --percentage-75: .75; --percentage-80: .8; --percentage-85: .85; --percentage-90: .9; --percentage-95: .95; --percentage-100: 1; --percentage-translate-full: 1; --animate-in: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); --animate-out: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); @keyframes enter { from { opacity: var(--tw-enter-opacity,1); transform: translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0)); filter: blur(var(--tw-enter-blur,0)); }}@keyframes exit { to { opacity: var(--tw-exit-opacity,1); transform: translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0)); filter: blur(var(--tw-exit-blur,0)); }}--animate-accordion-down: accordion-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); --animate-accordion-up: accordion-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); --animate-collapsible-down: collapsible-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); --animate-collapsible-up: collapsible-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); @keyframes accordion-down { from { height: 0; }to { height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto))))); }}@keyframes accordion-up { from { height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto))))); }to { height: 0; }}@keyframes collapsible-down { from { height: 0; }to { height: var(--radix-collapsible-content-height,var(--bits-collapsible-content-height,var(--reka-collapsible-content-height,var(--kb-collapsible-content-height,auto)))); }}@keyframes collapsible-up { from { height: var(--radix-collapsible-content-height,var(--bits-collapsible-content-height,var(--reka-collapsible-content-height,var(--kb-collapsible-content-height,auto)))); }to { height: 0; }}--animate-caret-blink: caret-blink 1.25s ease-out infinite; @keyframes caret-blink { 0%,70%,100% { opacity: 1; }20%,50% { opacity: 0; }}}@utility animation-duration-*{--tw-animation-duration: calc(--value(number)*1ms); --tw-animation-duration: --value(--animation-duration-*,[duration],"initial",[*]); animation-duration: calc(--value(number)*1ms); animation-duration: --value(--animation-duration-*,[duration],"initial",[*]);}@utility delay-*{animation-delay: calc(--value(number)*1ms); animation-delay: --value(--animation-delay-*,[duration],"initial",[*]); --tw-animation-delay: calc(--value(number)*1ms); --tw-animation-delay: --value(--animation-delay-*,[duration],"initial",[*]);}@utility repeat-*{animation-iteration-count: --value(--animation-repeat-*,number,"initial",[*]); --tw-animation-iteration-count: --value(--animation-repeat-*,number,"initial",[*]);}@utility direction-*{animation-direction: --value(--animation-direction-*,"initial",[*]); --tw-animation-direction: --value(--animation-direction-*,"initial",[*]);}@utility fill-mode-*{animation-fill-mode: --value(--animation-fill-mode-*,"initial",[*]); --tw-animation-fill-mode: --value(--animation-fill-mode-*,"initial",[*]);}@utility running{animation-play-state: running;}@utility paused{animation-play-state: paused;}@utility play-state-*{animation-play-state: --value("initial",[*]);}@utility blur-in{--tw-enter-blur: 20px;}@utility blur-in-*{--tw-enter-blur: calc(--value(number)*1px); --tw-enter-blur: --value(--blur-*,[*]);}@utility blur-out{--tw-exit-blur: 20px;}@utility blur-out-*{--tw-exit-blur: calc(--value(number)*1px); --tw-exit-blur: --value(--blur-*,[*]);}@utility fade-in{--tw-enter-opacity: 0;}@utility fade-in-*{--tw-enter-opacity: calc(--value(number)/100); --tw-enter-opacity: --value(--percentage-*,[*]);}@utility fade-out{--tw-exit-opacity: 0;}@utility fade-out-*{--tw-exit-opacity: calc(--value(number)/100); --tw-exit-opacity: --value(--percentage-*,[*]);}@utility zoom-in{--tw-enter-scale: 0;}@utility zoom-in-*{--tw-enter-scale: calc(--value(number)*1%); --tw-enter-scale: calc(--value(ratio)); --tw-enter-scale: --value(--percentage-*,[*]);}@utility -zoom-in-*{--tw-enter-scale: calc(--value(number)*-1%); --tw-enter-scale: calc(--value(ratio)*-1); --tw-enter-scale: --value(--percentage-*,[*]);}@utility zoom-out{--tw-exit-scale: 0;}@utility zoom-out-*{--tw-exit-scale: calc(--value(number)*1%); --tw-exit-scale: calc(--value(ratio)); --tw-exit-scale: --value(--percentage-*,[*]);}@utility -zoom-out-*{--tw-exit-scale: calc(--value(number)*-1%); --tw-exit-scale: calc(--value(ratio)*-1); --tw-exit-scale: --value(--percentage-*,[*]);}@utility spin-in{--tw-enter-rotate: 30deg;}@utility spin-in-*{--tw-enter-rotate: calc(--value(number)*1deg); --tw-enter-rotate: calc(--value(ratio)*360deg); --tw-enter-rotate: --value(--rotate-*,[*]);}@utility -spin-in{--tw-enter-rotate: -30deg;}@utility -spin-in-*{--tw-enter-rotate: calc(--value(number)*-1deg); --tw-enter-rotate: calc(--value(ratio)*-360deg); --tw-enter-rotate: --value(--rotate-*,[*]);}@utility spin-out{--tw-exit-rotate: 30deg;}@utility spin-out-*{--tw-exit-rotate: calc(--value(number)*1deg); --tw-exit-rotate: calc(--value(ratio)*360deg); --tw-exit-rotate: --value(--rotate-*,[*]);}@utility -spin-out{--tw-exit-rotate: -30deg;}@utility -spin-out-*{--tw-exit-rotate: calc(--value(number)*-1deg); --tw-exit-rotate: calc(--value(ratio)*-360deg); --tw-exit-rotate: --value(--rotate-*,[*]);}@utility slide-in-from-top{--tw-enter-translate-y: -100%;}@utility slide-in-from-top-*{--tw-enter-translate-y: calc(--value(integer)*var(--spacing)*-1); --tw-enter-translate-y: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-enter-translate-y: calc(--value(ratio)*-100%); --tw-enter-translate-y: calc(--value(--translate-*,[percentage],[length])*-1);}@utility slide-in-from-bottom{--tw-enter-translate-y: 100%;}@utility slide-in-from-bottom-*{--tw-enter-translate-y: calc(--value(integer)*var(--spacing)); --tw-enter-translate-y: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-enter-translate-y: calc(--value(ratio)*100%); --tw-enter-translate-y: --value(--translate-*,[percentage],[length]);}@utility slide-in-from-left{--tw-enter-translate-x: -100%;}@utility slide-in-from-left-*{--tw-enter-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-enter-translate-x: calc(--value(ratio)*-100%); --tw-enter-translate-x: calc(--value(--translate-*,[percentage],[length])*-1);}@utility slide-in-from-right{--tw-enter-translate-x: 100%;}@utility slide-in-from-right-*{--tw-enter-translate-x: calc(--value(integer)*var(--spacing)); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-enter-translate-x: calc(--value(ratio)*100%); --tw-enter-translate-x: --value(--translate-*,[percentage],[length]);}@utility slide-in-from-start{&:dir(ltr){ --tw-enter-translate-x: -100%; }&:dir(rtl){ --tw-enter-translate-x: 100%; }}@utility slide-in-from-start-*{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"]*){ --tw-enter-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-enter-translate-x: calc(--value(ratio)*-100%); --tw-enter-translate-x: calc(--value(--translate-*,[percentage],[length])*-1); }&:where(:dir(rtl),[dir="rtl"],[dir="rtl"]*){ --tw-enter-translate-x: calc(--value(integer)*var(--spacing)); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-enter-translate-x: calc(--value(ratio)*100%); --tw-enter-translate-x: --value(--translate-*,[percentage],[length]); }}@utility slide-in-from-end{&:dir(ltr){ --tw-enter-translate-x: 100%; }&:dir(rtl){ --tw-enter-translate-x: -100%; }}@utility slide-in-from-end-*{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"]*){ --tw-enter-translate-x: calc(--value(integer)*var(--spacing)); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-enter-translate-x: calc(--value(ratio)*100%); --tw-enter-translate-x: --value(--translate-*,[percentage],[length]); }&:where(:dir(rtl),[dir="rtl"],[dir="rtl"]*){ --tw-enter-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-enter-translate-x: calc(--value(ratio)*-100%); --tw-enter-translate-x: calc(--value(--translate-*,[percentage],[length])*-1); }}@utility slide-out-to-top{--tw-exit-translate-y: -100%;}@utility slide-out-to-top-*{--tw-exit-translate-y: calc(--value(integer)*var(--spacing)*-1); --tw-exit-translate-y: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-exit-translate-y: calc(--value(ratio)*-100%); --tw-exit-translate-y: calc(--value(--translate-*,[percentage],[length])*-1);}@utility slide-out-to-bottom{--tw-exit-translate-y: 100%;}@utility slide-out-to-bottom-*{--tw-exit-translate-y: calc(--value(integer)*var(--spacing)); --tw-exit-translate-y: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-exit-translate-y: calc(--value(ratio)*100%); --tw-exit-translate-y: --value(--translate-*,[percentage],[length]);}@utility slide-out-to-left{--tw-exit-translate-x: -100%;}@utility slide-out-to-left-*{--tw-exit-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-exit-translate-x: calc(--value(ratio)*-100%); --tw-exit-translate-x: calc(--value(--translate-*,[percentage],[length])*-1);}@utility slide-out-to-right{--tw-exit-translate-x: 100%;}@utility slide-out-to-right-*{--tw-exit-translate-x: calc(--value(integer)*var(--spacing)); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-exit-translate-x: calc(--value(ratio)*100%); --tw-exit-translate-x: --value(--translate-*,[percentage],[length]);}@utility slide-out-to-start{&:dir(ltr){ --tw-exit-translate-x: -100%; }&:dir(rtl){ --tw-exit-translate-x: 100%; }}@utility slide-out-to-start-*{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"]*){ --tw-exit-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-exit-translate-x: calc(--value(ratio)*-100%); --tw-exit-translate-x: calc(--value(--translate-*,[percentage],[length])*-1); }&:where(:dir(rtl),[dir="rtl"],[dir="rtl"]*){ --tw-exit-translate-x: calc(--value(integer)*var(--spacing)); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-exit-translate-x: calc(--value(ratio)*100%); --tw-exit-translate-x: --value(--translate-*,[percentage],[length]); }}@utility slide-out-to-end{&:dir(ltr){ --tw-exit-translate-x: 100%; }&:dir(rtl){ --tw-exit-translate-x: -100%; }}@utility slide-out-to-end-*{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"]*){ --tw-exit-translate-x: calc(--value(integer)*var(--spacing)); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-exit-translate-x: calc(--value(ratio)*100%); --tw-exit-translate-x: --value(--translate-*,[percentage],[length]); }&:where(:dir(rtl),[dir="rtl"],[dir="rtl"]*){ --tw-exit-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-exit-translate-x: calc(--value(ratio)*-100%); --tw-exit-translate-x: calc(--value(--translate-*,[percentage],[length])*-1); }}@theme inline{@keyframes accordion-down { from { height: 0; } to { height: var(--radix-accordion-content-height,var(--accordion-panel-height,auto)); } } @keyframes accordion-up { from { height: var(--radix-accordion-content-height,var(--accordion-panel-height,auto)); } to { height: 0; } }}@custom-variant data-open{&:where([data-state="open"]), &:where([data-open]:not([data-open="false"])) { @slot; }}@custom-variant data-closed{&:where([data-state="closed"]), &:where([data-closed]:not([data-closed="false"])) { @slot; }}@custom-variant data-checked{&:where([data-state="checked"]), &:where([data-checked]:not([data-checked="false"])) { @slot; }}@custom-variant data-unchecked{&:where([data-state="unchecked"]), &:where([data-unchecked]:not([data-unchecked="false"])) { @slot; }}@custom-variant data-selected{&:where([data-selected="true"]) { @slot; }}@custom-variant data-disabled{&:where([data-disabled="true"]), &:where([data-disabled]:not([data-disabled="false"])) { @slot; }}@custom-variant data-active{&:where([data-state="active"]), &:where([data-active]:not([data-active="false"])) { @slot; }}@custom-variant data-horizontal{&:where([data-orientation="horizontal"]) { @slot; }}@custom-variant data-vertical{&:where([data-orientation="vertical"]) { @slot; }}@utility no-scrollbar{-ms-overflow-style: none; scrollbar-width: none; &::-webkit-scrollbar { display: none; }}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@custom-variant dark (&:is(.dark *));*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--navbar-height) + 2rem);scrollbar-color:#8b5cf6 #09090b;scrollbar-width:thin;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-size:100%}body{font-family:var(--font-sans);font-size:var(--text-body);color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.6;overflow-x:hidden}h1,h2,h3,h4{letter-spacing:-.015em;font-weight:600}p{color:var(--color-text-secondary);line-height:1.6}a{color:var(--color-text-primary);transition:color .15s var(--ease-in-out-circ);text-decoration:none}a:hover{color:var(--color-accent)}img,svg,video,canvas{max-width:100%;height:auto;display:block}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}input,textarea{font:inherit;color:inherit}ul,ol{list-style:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}:focus:not(:focus-visible){outline:none}::selection{background:var(--color-accent-muted);color:var(--color-text-primary)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#09090b}::-webkit-scrollbar-thumb{background:#8b5cf6;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a78bfa}.btn{transition:background .2s var(--ease-out-quint), color .2s var(--ease-out-quint), border-color .2s var(--ease-out-quint), transform .15s var(--ease-out-quint);cursor:pointer;white-space:nowrap;border-radius:12px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-accent);color:var(--color-text-primary);border:1px solid var(--color-accent)}.btn-primary:hover{color:var(--color-text-primary);background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-secondary{background:var(--color-accent-muted);color:var(--color-text-primary);border:1px solid var(--color-border-active)}.btn-secondary:hover{color:var(--color-text-primary);border-color:var(--color-accent);background:var(--color-accent-hover-2)}.btn-ghost{color:var(--color-text-secondary);background:0 0;border:1px solid #0000;padding-left:.75rem;padding-right:.75rem}.btn-ghost:hover{color:var(--color-text-primary);background:var(--color-bg-elevated);border-color:var(--color-border-default)}.section-heading{z-index:1;text-align:center;width:100%;max-width:1200px;margin:0 auto;position:relative}.section-heading .title-main{font-size:clamp(1.8rem,5vw + .5rem,3.6rem)}.title-block{letter-spacing:-.03em;color:var(--color-text-primary);margin:0;line-height:1}.section-heading .title-block:after{content:"";background:var(--color-accent);opacity:.5;width:60px;height:3px;transition:width .4s var(--ease-spring), opacity .4s var(--ease-out-quint), box-shadow .4s var(--ease-out-quint);border-radius:2px;margin:.5em auto 0;display:block}.section-heading .title-block:hover:after{opacity:1;width:90px;box-shadow:0 0 12px #8b5cf680}.bracket{font-family:var(--font-mono);color:var(--color-accent);opacity:.7;transition:opacity .4s var(--ease-out-quint), color .4s var(--ease-out-quint);font-weight:300}.bracket--open{margin-right:.15em}.bracket--close{margin-left:.15em}.title-block:hover .bracket{opacity:1;color:var(--color-accent)}.title-main{color:var(--color-text-primary);font-size:clamp(1rem,5vw + .3rem,2.6rem);font-weight:800;line-height:.95}.page-loader{z-index:999;opacity:0;pointer-events:none;transition:opacity .6s var(--ease-out-expo);background:#0c0c12;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}body.loading .page-loader{opacity:1;pointer-events:auto}.page-loader__spinner{border:3px solid #8b5cf626;border-top-color:var(--color-accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.page-loader{transition:none}.page-loader__spinner{opacity:0;animation:none}}@theme inline{--font-heading: var(--font-mono); --font-mono: "JetBrains Mono Variable", monospace; --color-sidebar-ring: var(--sidebar-ring); --color-sidebar-border: var(--sidebar-border); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar: var(--sidebar); --color-chart-5: var(--chart-5); --color-chart-4: var(--chart-4); --color-chart-3: var(--chart-3); --color-chart-2: var(--chart-2); --color-chart-1: var(--chart-1); --color-ring: var(--ring); --color-input: var(--input); --color-border: var(--border); --color-destructive: var(--destructive); --color-accent-foreground: var(--accent-foreground); --color-accent: var(--accent); --color-muted-foreground: var(--muted-foreground); --color-muted: var(--muted); --color-secondary-foreground: var(--secondary-foreground); --color-secondary: var(--secondary); --color-primary-foreground: var(--primary-foreground); --color-primary: var(--primary); --color-popover-foreground: var(--popover-foreground); --color-popover: var(--popover); --color-card-foreground: var(--card-foreground); --color-card: var(--card); --color-foreground: var(--foreground); --color-background: var(--background); --radius-sm: calc(var(--radius) * .6); --radius-md: calc(var(--radius) * .8); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) * 1.4); --radius-2xl: calc(var(--radius) * 1.8); --radius-3xl: calc(var(--radius) * 2.2); --radius-4xl: calc(var(--radius) * 2.6);}:root{--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--radius:.625rem;--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}@layer base{@apply border-border outline-ring/50;@apply font-mono;}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes bounce-subtle{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.6}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)translate(0)}25%{transform:translateY(-8px)translate(4px)}50%{transform:translateY(-4px)translate(-4px)}75%{transform:translateY(6px)translate(2px)}}@keyframes bg-drift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes underline-expand{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.animate-fade-in-up{animation:fade-in-up .6s var(--ease-out-expo) forwards;opacity:0}.animate-fade-in{animation:fade-in .4s var(--ease-out-expo) forwards}.animate-bounce-subtle{animation:bounce-subtle 2s var(--ease-in-out-circ) infinite}.animate-float{animation:20s ease-in-out infinite float}.animate-shimmer{background:linear-gradient(90deg,#0000 0%,#ffffff0a 50%,#0000 100%) 0 0/200% 100%;animation:2s infinite shimmer}.stagger-children>*{opacity:0;transition:opacity .5s var(--ease-out-expo), transform .5s var(--ease-out-expo);transform:translateY(16px)}.stagger-children.revealed>*{opacity:1;transform:translateY(0)}.reveal-item{opacity:0;transition:opacity .6s var(--ease-out-expo), transform .6s var(--ease-out-expo);transform:translateY(20px)}.reveal-item.revealed{opacity:1;transform:translateY(0)}.revealed>.stagger-1{transition-delay:0s}.revealed>.stagger-2{transition-delay:80ms}.revealed>.stagger-3{transition-delay:.16s}.revealed>.stagger-4{transition-delay:.24s}.revealed>.stagger-5{transition-delay:.32s}.revealed>.stagger-6{transition-delay:.4s}.veil-bg[data-astro-cid-74grinvf]{z-index:0;position:fixed;inset:0}.veil-bg[data-astro-cid-74grinvf] canvas[data-astro-cid-74grinvf]{max-width:none;width:100%!important;height:100%!important}.nav[data-astro-cid-wnunrr27]{z-index:100;pointer-events:none;justify-content:center;display:flex;position:fixed;top:1.5rem;left:0;right:0}.nav-inner[data-astro-cid-wnunrr27]{align-items:center;gap:var(--space-3);display:flex}.nav-track[data-astro-cid-wnunrr27]{backdrop-filter:blur(10px);pointer-events:auto;background:#6200ff1a;border:1px solid #fff3;border-radius:12px;align-items:center;gap:2px;padding:5px;display:flex;position:relative}.nav-link[data-astro-cid-wnunrr27]{letter-spacing:.01em;color:#fffc;transition:color .3s var(--ease-out-quint);white-space:nowrap;z-index:1;border-radius:12px;padding:.5rem 1.125rem;font-size:.8125rem;font-weight:500;text-decoration:none;position:relative}.nav-link[data-astro-cid-wnunrr27]:hover{color:var(--bg-primary)}.nav-link[data-astro-cid-wnunrr27][aria-current=true]{color:#000}.nav-indicator[data-astro-cid-wnunrr27]{opacity:0;transition:transform .3s var(--ease-out-quint), width .3s var(--ease-out-quint), opacity .12s var(--ease-out-quint);pointer-events:none;background:#fff;border:1px solid #ffffff0d;border-radius:12px;position:absolute;top:5px;bottom:5px;left:5px}.nav-hamburger[data-astro-cid-wnunrr27]{z-index:120;cursor:pointer;pointer-events:auto;width:48px;height:48px;transition:box-shadow .4s var(--ease-out-quint);background:0 0;border:none;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0;display:none;position:fixed;top:1rem;right:1rem}.nav-hamburger[data-astro-cid-wnunrr27]:before{content:"";border:1.5px solid var(--color-accent);opacity:0;transition:opacity .5s var(--ease-out-quint), transform .5s var(--ease-out-quint);pointer-events:none;border-radius:50%;position:absolute;inset:-4px;transform:scale(.8)}.nav-hamburger[data-astro-cid-wnunrr27].open:before{opacity:1;transform:scale(1)}.nav-hamburger[data-astro-cid-wnunrr27]:hover:before{opacity:.6;transform:scale(1)}.hamburger-line[data-astro-cid-wnunrr27]{width:20px;height:1.5px;transition:transform .4s var(--ease-spring), opacity .3s var(--ease-out-quint), width .3s var(--ease-out-quint);transform-origin:50%;background:#fff;border-radius:1px;display:block}.nav-hamburger[data-astro-cid-wnunrr27]:hover .hamburger-line[data-astro-cid-wnunrr27]{width:24px}.nav-hamburger[data-astro-cid-wnunrr27].open .line-1[data-astro-cid-wnunrr27]{width:22px;transform:translateY(5.5px)rotate(45deg)}.nav-hamburger[data-astro-cid-wnunrr27].open .line-2[data-astro-cid-wnunrr27]{opacity:0;transform:scaleX(0)}.nav-hamburger[data-astro-cid-wnunrr27].open .line-3[data-astro-cid-wnunrr27]{width:22px;transform:translateY(-5.5px)rotate(-45deg)}.nav-menu[data-astro-cid-wnunrr27]{z-index:110;background:#0a0a0f;display:none;position:fixed;inset:0;overflow:hidden}.nav-menu[data-astro-cid-wnunrr27].open{pointer-events:auto;animation:menuReveal .5s var(--ease-out-expo) both;display:block}@keyframes menuReveal{0%{opacity:0}to{opacity:1}}.menu-orb[data-astro-cid-wnunrr27]{filter:blur(80px);opacity:0;pointer-events:none;border-radius:50%;position:absolute}.nav-menu[data-astro-cid-wnunrr27].open .menu-orb[data-astro-cid-wnunrr27]{animation:orbAppear 1s var(--ease-out-expo) .2s both}@keyframes orbAppear{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.orb-1[data-astro-cid-wnunrr27]{background:#8b5cf6;width:300px;height:300px;animation:12s ease-in-out infinite orbDrift1;top:-10%;left:-20%}.orb-2[data-astro-cid-wnunrr27]{background:#60a5fa;width:250px;height:250px;animation:14s ease-in-out infinite orbDrift2;bottom:-15%;right:-15%}@keyframes orbDrift1{0%,to{transform:translate(0)scale(1)}25%{transform:translate(60px,40px)scale(1.15)}50%{transform:translate(-20px,80px)scale(.9)}75%{transform:translate(40px,-20px)scale(1.1)}}@keyframes orbDrift2{0%,to{transform:translate(0)scale(1)}33%{transform:translate(-50px,-30px)scale(1.2)}66%{transform:translate(30px,-60px)scale(.85)}}.menu-grid[data-astro-cid-wnunrr27]{opacity:0;pointer-events:none;transition:opacity .6s var(--ease-out-quint);background-image:linear-gradient(#8b5cf608 1px,#0000 1px),linear-gradient(90deg,#8b5cf608 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0;mask-image:radial-gradient(60% 60%,#000 20%,#0000 70%)}.nav-menu[data-astro-cid-wnunrr27].open .menu-grid[data-astro-cid-wnunrr27]{opacity:1;transition-delay:.15s}.nav-menu-content[data-astro-cid-wnunrr27]{z-index:2;justify-content:center;align-items:flex-start;gap:var(--space-1);height:100%;padding:var(--space-10) var(--space-8);flex-direction:column;max-width:400px;margin:0 auto;display:flex;position:relative}.nav-menu-link[data-astro-cid-wnunrr27]{align-items:center;gap:var(--space-5);width:100%;padding:var(--space-4) var(--space-5);color:#ffffff73;opacity:0;transition:color .35s var(--ease-out-quint), background .35s var(--ease-out-quint), opacity .5s var(--ease-out-quint), transform .5s var(--ease-spring);border-radius:14px;text-decoration:none;display:flex;position:relative;transform:translate(-30px)rotateY(15deg)}.nav-menu-link[data-astro-cid-wnunrr27].animate{animation:linkEnter .6s var(--ease-spring) both;animation-delay:calc(80ms * var(--i))}@keyframes linkEnter{0%{opacity:0;transform:translate(-30px)rotateY(15deg)}to{opacity:1;transform:translate(0)rotateY(0)}}.nav-menu-link[data-astro-cid-wnunrr27]:hover,.nav-menu-link[data-astro-cid-wnunrr27]:focus-visible,.nav-menu-link[data-astro-cid-wnunrr27].active{color:#fff;background:#8b5cf614}.nav-menu-link[data-astro-cid-wnunrr27]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.menu-link-bar[data-astro-cid-wnunrr27]{background:var(--color-accent);width:3px;height:60%;transition:transform .4s var(--ease-spring);border-radius:0 4px 4px 0;position:absolute;top:50%;left:0;transform:translateY(-50%)scaleY(0)}.nav-menu-link[data-astro-cid-wnunrr27]:hover .menu-link-bar[data-astro-cid-wnunrr27],.nav-menu-link[data-astro-cid-wnunrr27].active .menu-link-bar[data-astro-cid-wnunrr27]{transform:translateY(-50%)scaleY(1)}.menu-link-index[data-astro-cid-wnunrr27]{font-family:var(--font-mono);color:var(--color-accent);opacity:.5;text-align:right;min-width:24px;transition:opacity .35s var(--ease-out-quint), transform .35s var(--ease-spring);font-size:.75rem;font-weight:500}.nav-menu-link[data-astro-cid-wnunrr27]:hover .menu-link-index[data-astro-cid-wnunrr27],.nav-menu-link[data-astro-cid-wnunrr27].active .menu-link-index[data-astro-cid-wnunrr27]{opacity:1;transform:scale(1.15)}.menu-link-label[data-astro-cid-wnunrr27]{font-family:var(--font-sans);letter-spacing:-.02em;transition:transform .35s var(--ease-spring);font-size:1.375rem;font-weight:600}.nav-menu-link[data-astro-cid-wnunrr27]:hover .menu-link-label[data-astro-cid-wnunrr27]{transform:translate(4px)}@media (width>=641px){.nav-desktop[data-astro-cid-wnunrr27]{display:flex}.nav-menu[data-astro-cid-wnunrr27]{display:none!important}}@media (width<=640px){.nav[data-astro-cid-wnunrr27]{justify-content:flex-end;top:0}.nav-desktop[data-astro-cid-wnunrr27]{display:none}.nav-hamburger[data-astro-cid-wnunrr27]{display:flex}.orb-1[data-astro-cid-wnunrr27]{width:200px;height:200px;top:-5%;left:-30%}.orb-2[data-astro-cid-wnunrr27]{width:180px;height:180px;bottom:-10%;right:-25%}.nav-menu-content[data-astro-cid-wnunrr27]{padding:var(--space-8) var(--space-6)}.menu-link-label[data-astro-cid-wnunrr27]{font-size:1.25rem}}@media (width<=380px){.nav-menu-content[data-astro-cid-wnunrr27]{padding:var(--space-6) var(--space-5)}.menu-link-label[data-astro-cid-wnunrr27]{font-size:1.125rem}}@media (prefers-reduced-motion:reduce){.nav-menu[data-astro-cid-wnunrr27].open{animation:none}.nav-menu[data-astro-cid-wnunrr27].open .menu-orb[data-astro-cid-wnunrr27]{opacity:.3;animation:none}.nav-menu-link[data-astro-cid-wnunrr27].animate{opacity:1;animation:none;transform:none}.menu-link-bar[data-astro-cid-wnunrr27],.menu-link-index[data-astro-cid-wnunrr27],.menu-link-label[data-astro-cid-wnunrr27],.hamburger-line[data-astro-cid-wnunrr27]{transition:none}.orb-1[data-astro-cid-wnunrr27],.orb-2[data-astro-cid-wnunrr27]{animation:none}}.hero-grid[data-astro-cid-p5cqgtg4]{gap:clamp(var(--space-8), 4vw, var(--space-12));width:100%;max-width:1200px;padding:var(--content-padding);animation:fade-in-up .8s var(--ease-out-expo) forwards;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;display:grid}.hero-content[data-astro-cid-p5cqgtg4]{justify-content:center;align-items:flex-start;gap:var(--space-6);flex-direction:column;min-width:0;display:flex}.hero-avatar[data-astro-cid-p5cqgtg4]{border-radius:20px;justify-content:flex-end;align-items:center;display:flex;overflow:hidden}.hero-avatar[data-astro-cid-p5cqgtg4] img[data-astro-cid-p5cqgtg4]{object-fit:cover}.hero-title[data-astro-cid-p5cqgtg4]{font-size:var(--text-hero);color:var(--color-text-primary);letter-spacing:-.03em;margin:0;font-weight:700;line-height:.85}.hero-title-accent[data-astro-cid-p5cqgtg4]{color:var(--color-accent);font-size:clamp(1.5rem,4vw + .3rem,3rem)}.hero-description[data-astro-cid-p5cqgtg4]{color:var(--color-text-tertiary);max-width:40rem;margin:0;font-size:clamp(1rem,4vw + .2rem,1rem);line-height:1.7}.hero-actions[data-astro-cid-p5cqgtg4]{align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}@media (width<=1024px){.hero-avatar[data-astro-cid-p5cqgtg4]{display:none}.hero-grid[data-astro-cid-p5cqgtg4]{grid-template-columns:1fr}.hero-content[data-astro-cid-p5cqgtg4]{text-align:center;align-items:center}.hero-title[data-astro-cid-p5cqgtg4]{font-size:clamp(2.8rem,8vw + .5rem,5.5rem)}.hero-title-accent[data-astro-cid-p5cqgtg4]{font-size:clamp(2rem,6vw + .3rem,4rem)}.hero-description[data-astro-cid-p5cqgtg4]{max-width:44rem;margin-inline:auto;font-size:clamp(1rem,3vw + .3rem,1rem)}.hero-actions[data-astro-cid-p5cqgtg4]{justify-content:center}}@media (width<=768px){.hero-grid[data-astro-cid-p5cqgtg4]{gap:var(--space-8)}}@media (width<=640px){.hero-section[data-astro-cid-p5cqgtg4]{height:100vh}.hero-grid[data-astro-cid-p5cqgtg4]{place-items:center}.hero-description[data-astro-cid-p5cqgtg4]{max-width:30ch}.hero-content[data-astro-cid-p5cqgtg4]{gap:var(--space-4);justify-content:center}.hero-description[data-astro-cid-p5cqgtg4]{font-size:clamp(.875rem,3.5vw,1rem)}.btn[data-astro-cid-p5cqgtg4]{justify-content:center}}@media (width<=480px){.hero-actions[data-astro-cid-p5cqgtg4]{align-items:center}a[data-astro-cid-p5cqgtg4]{width:120px;height:80%;font-size:.7rem}.hero-title[data-astro-cid-p5cqgtg4]{font-size:clamp(2.3rem,3.5vw,2rem)}.hero-title-accent[data-astro-cid-p5cqgtg4]{font-size:clamp(1.6rem,3.5vw,2rem)}}.tech-card-grid-wrapper{width:100%}.tech-card-grid{gap:clamp(var(--space-2), 1.5vw, var(--space-3));width:100%;max-width:1000px;padding:0 var(--content-padding);grid-template-columns:repeat(auto-fit,minmax(90px,120px));justify-content:center;margin:0 auto 2.5rem;display:grid}.tech-category-section{width:100%;margin-bottom:2rem}.tech-category-title{color:var(--text-muted,#a0aec0);letter-spacing:.05em;text-transform:uppercase;text-align:center;border-left:none;margin-bottom:1.2rem;margin-left:0;padding-left:0;font-size:1rem;font-weight:500}.tech-card{aspect-ratio:1;perspective:600px;transition:transform .45s var(--ease-spring), box-shadow .35s var(--ease-out-quint);will-change:transform;position:relative;transform:scale(1)translateY(0)}.tech-card:hover{transform:scale(1.04)translateY(-5px)}.tech-card__inner{justify-content:center;align-items:center;gap:clamp(var(--space-1), 1vw, var(--space-3));-webkit-backdrop-filter:blur(12px);z-index:1;transform:rotateX(var(--rx)) rotateY(var(--ry));transition:border-color .35s var(--ease-out-quint), background .35s var(--ease-out-quint);background:#ffffff0a;border:1px solid #ffffff0f;border-radius:14px;flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.tech-card:hover .tech-card__inner{border-color:color-mix(in srgb, var(--brand-color) 30%, transparent);background:#ffffff12}.tech-card:hover{box-shadow:0 0 18px color-mix(in srgb, var(--brand-color) 18%, transparent), 0 12px 32px #00000073}.tech-card__spotlight{z-index:2;pointer-events:none;background:radial-gradient(circle clamp(80px, 18vw, 140px) at var(--mx) var(--my), color-mix(in srgb, var(--brand-color) 10%, transparent) 0%, transparent 70%);opacity:0;transition:opacity .3s var(--ease-out-quint);position:absolute;inset:0}.tech-card:hover .tech-card__spotlight{opacity:1}.tech-card__icon{flex-shrink:0;justify-content:center;align-items:center;width:clamp(32px,10vw,48px);height:clamp(32px,10vw,48px);display:flex}.tech-card__icon svg{width:100%;height:100%;display:block}.tech-card__name{font-size:clamp(.5625rem, 1.8vw + .1rem, var(--text-caption));color:var(--color-text-primary);text-align:center;z-index:3;font-weight:500;line-height:1.2;position:relative}@media (width<=480px){.tech-card-grid{gap:var(--space-2);padding:0 var(--space-4);grid-template-columns:repeat(auto-fit,minmax(85px,120px));width:100%}.tech-category-title{margin-left:0}}@media (prefers-reduced-motion:reduce){.tech-card,.tech-card__inner{aspect-ratio:auto;width:100%;max-width:120px;margin:0 auto;transition:none;transform:none}.tech-card:hover{box-shadow:none;transform:none}.tech-card:hover .tech-card__inner{border-color:var(--color-border-hover);background:#ffffff12}.tech-card__spotlight{display:none}}.edu-card[data-astro-cid-njv4xxqq]{-webkit-backdrop-filter:blur(14px);border:1px solid var(--color-border-default);opacity:0;width:100%;max-width:780px;transition:opacity .8s var(--ease-out-expo), transform .8s var(--ease-out-expo), border-color .5s var(--ease-out-quint), box-shadow .5s var(--ease-out-quint);background:#13131773;border-radius:20px;transition-delay:.3s;position:relative;overflow:hidden;transform:translateY(20px)scale(.97)}.edu-card[data-astro-cid-njv4xxqq].revealed{opacity:1;transform:translateY(0)scale(1)}.edu-card[data-astro-cid-njv4xxqq]:hover{border-color:#8b5cf640;transform:translateY(-3px);box-shadow:0 8px 40px #00000073,0 0 60px #8b5cf60f}.edu-card__bg[data-astro-cid-njv4xxqq]{z-index:0;pointer-events:none;opacity:.035;transition:opacity .6s var(--ease-out-quint);position:absolute;top:clamp(-60px,-8vw,-20px);right:clamp(-40px,-5vw,-10px)}.edu-card[data-astro-cid-njv4xxqq]:hover .edu-card__bg[data-astro-cid-njv4xxqq]{opacity:.06}.edu-card__cap[data-astro-cid-njv4xxqq]{width:clamp(140px,30vw,240px);height:clamp(140px,30vw,240px);color:var(--color-accent)}.edu-card__inner[data-astro-cid-njv4xxqq]{z-index:1;gap:clamp(var(--space-6), 4vw, var(--space-12));padding:clamp(var(--space-6), 3vw, var(--space-12));grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid;position:relative}.edu-card__shimmer[data-astro-cid-njv4xxqq]{z-index:0;pointer-events:none;opacity:0;transition:opacity .8s var(--ease-out-quint);background:radial-gradient(60% 50% at 30%,#8b5cf614 0%,#0000 60%);position:absolute;inset:0}.edu-card[data-astro-cid-njv4xxqq]:hover .edu-card__shimmer[data-astro-cid-njv4xxqq]{opacity:1}.edu-info[data-astro-cid-njv4xxqq]{gap:var(--space-3);flex-direction:column;display:flex}.edu-degree[data-astro-cid-njv4xxqq]{color:var(--color-text-primary);letter-spacing:-.02em;margin:0;font-size:clamp(1.0625rem,2.5vw + .2rem,1.25rem);font-weight:700;line-height:1.3}.edu-institution-row[data-astro-cid-njv4xxqq]{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.edu-institution[data-astro-cid-njv4xxqq]{color:var(--color-text-secondary);font-size:clamp(.8125rem,2vw + .15rem,.9375rem);font-weight:500}.edu-address[data-astro-cid-njv4xxqq]{font-family:var(--font-mono);color:var(--color-text-tertiary);letter-spacing:.02em;font-size:clamp(.6875rem,1.5vw + .1rem,.75rem)}.edu-meta[data-astro-cid-njv4xxqq]{align-items:center;gap:var(--space-4);margin-top:var(--space-2);display:flex}.edu-year[data-astro-cid-njv4xxqq]{font-family:var(--font-mono);color:var(--color-text-secondary);letter-spacing:.03em;font-size:.8125rem;font-weight:500}.edu-status[data-astro-cid-njv4xxqq]{align-items:center;gap:var(--space-2);font-family:var(--font-mono);color:var(--color-success);text-transform:uppercase;letter-spacing:.08em;background:#4ade8014;border:1px solid #4ade8026;border-radius:999px;padding:.25rem .75rem;font-size:.6875rem;font-weight:600;display:inline-flex}.edu-status__dot[data-astro-cid-njv4xxqq]{background:var(--color-success);border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2s ease-in-out infinite pulse-soft-glow;box-shadow:0 0 8px #4ade8099}@keyframes pulse-soft-glow{0%,to{opacity:1;box-shadow:0 0 6px #4ade8080}50%{opacity:.6;box-shadow:0 0 12px #4ade80cc}}.edu-highlight[data-astro-cid-njv4xxqq]{align-items:center;gap:var(--space-6);flex-direction:column;flex-shrink:0;display:flex}.edu-gpa-ring[data-astro-cid-njv4xxqq]{justify-content:center;align-items:center;width:120px;height:120px;display:flex;position:relative}.edu-gpa-ring__svg[data-astro-cid-njv4xxqq]{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.edu-gpa-ring__track[data-astro-cid-njv4xxqq]{stroke:#8b5cf61f}.edu-gpa-ring__fill[data-astro-cid-njv4xxqq]{stroke:var(--color-accent);filter:drop-shadow(0 0 6px #8b5cf666);transition:stroke-dashoffset 1.2s var(--ease-out-expo), filter .6s var(--ease-out-quint)}.edu-card[data-astro-cid-njv4xxqq]:hover .edu-gpa-ring__fill[data-astro-cid-njv4xxqq]{filter:drop-shadow(0 0 12px #8b5cf6b3)}.edu-gpa-ring__content[data-astro-cid-njv4xxqq]{z-index:1;flex-direction:column;align-items:center;gap:2px;display:flex;position:relative}.edu-gpa-ring__value[data-astro-cid-njv4xxqq]{color:var(--color-accent);letter-spacing:-.03em;font-size:clamp(1.4rem,4vw + .2rem,2rem);font-weight:800;line-height:1}.edu-gpa-ring__label[data-astro-cid-njv4xxqq]{font-family:var(--font-mono);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.1em;font-size:.625rem;font-weight:500}.edu-cta[data-astro-cid-njv4xxqq]{align-items:center;gap:var(--space-2);font-family:var(--font-sans);color:var(--color-text-primary);background:var(--color-accent);border:1px solid var(--color-accent);cursor:pointer;transition:background .2s var(--ease-out-quint), border-color .2s var(--ease-out-quint), transform .2s var(--ease-spring), box-shadow .2s var(--ease-out-quint);white-space:nowrap;border-radius:10px;padding:.625rem 1.25rem;font-size:.8125rem;font-weight:600;text-decoration:none;display:inline-flex}.edu-cta[data-astro-cid-njv4xxqq]:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);transform:translateY(-2px);box-shadow:0 4px 20px #8b5cf659}.edu-cta[data-astro-cid-njv4xxqq]:active{transform:scale(.97)}@media (width<=640px){.edu-card__inner[data-astro-cid-njv4xxqq]{gap:var(--space-6);text-align:center;grid-template-columns:1fr}.edu-info[data-astro-cid-njv4xxqq]{align-items:center}.edu-meta[data-astro-cid-njv4xxqq]{flex-wrap:wrap;justify-content:center}.edu-highlight[data-astro-cid-njv4xxqq]{gap:var(--space-6);flex-direction:row;justify-content:center}.edu-gpa-ring[data-astro-cid-njv4xxqq]{width:min(100px,25vw);height:min(100px,25vw)}}@media (width<=480px){.edu-highlight[data-astro-cid-njv4xxqq]{align-items:center;gap:var(--space-4);flex-direction:column}}@media (prefers-reduced-motion:reduce){.edu-card[data-astro-cid-njv4xxqq]{opacity:1;transition:none;transform:none}.edu-status__dot[data-astro-cid-njv4xxqq]{animation:none}.edu-gpa-ring__fill[data-astro-cid-njv4xxqq]{transition:none}}.profile-section[data-astro-cid-qlzm2jqu]{flex-direction:column;overflow:hidden}.section-heading[data-astro-cid-qlzm2jqu]{padding:0 var(--content-padding)}.profile-grid[data-astro-cid-qlzm2jqu]{z-index:1;gap:clamp(var(--space-8), 4vw, var(--space-12));width:100%;max-width:1000px;padding-inline:var(--content-padding);grid-template-columns:minmax(240px,340px) minmax(0,1fr);align-items:center;display:grid;position:relative}.terminal-frame[data-astro-cid-qlzm2jqu]{transition:border-color .4s var(--ease-out-quint), box-shadow .4s var(--ease-out-quint), transform .5s var(--ease-out-quint);background:linear-gradient(160deg,#14141ce6 0%,#0e0e14f2 100%);border:1px solid #ffffff14;border-radius:14px;position:relative;overflow:hidden}.terminal-frame-inner[data-astro-cid-qlzm2jqu]{animation:18s ease-in-out infinite float}.terminal-frame[data-astro-cid-qlzm2jqu]:hover{border-color:#6ef65c4d;transform:translateY(-3px);box-shadow:0 0 30px #8b5cf614,0 0 60px #8b5cf608}.terminal-frame[data-astro-cid-qlzm2jqu]:hover .terminal-glow[data-astro-cid-qlzm2jqu]{opacity:1}.terminal-glow[data-astro-cid-qlzm2jqu]{opacity:0;transition:opacity .5s var(--ease-out-quint);pointer-events:none;z-index:2;background:linear-gradient(135deg,#7bf65c1f 0%,#0000 40% 60%,#5cf68314 100%);border-radius:14px;position:absolute;inset:-1px}.terminal-header[data-astro-cid-qlzm2jqu]{z-index:3;background:#00000040;border-bottom:1px solid #ffffff0a;align-items:center;gap:7px;padding:12px 14px;display:flex;position:relative}.terminal-dot[data-astro-cid-qlzm2jqu]{border-radius:50%;flex-shrink:0;width:12px;height:12px}.terminal-dot--red[data-astro-cid-qlzm2jqu]{background:#8a7e7d;box-shadow:0 0 6px #ff5f574d}.terminal-dot--yellow[data-astro-cid-qlzm2jqu]{background:#8a7e7d;box-shadow:0 0 6px #febc2e4d}.terminal-dot--green[data-astro-cid-qlzm2jqu]{background:#8a7e7d;box-shadow:0 0 6px #28c8404d}.terminal-title[data-astro-cid-qlzm2jqu]{font-family:var(--font-mono);color:#ffffff59;letter-spacing:.03em;user-select:none;margin-left:10px;font-size:.6875rem;font-weight:400}.terminal-body[data-astro-cid-qlzm2jqu]{z-index:1;padding:10px;position:relative}.terminal-avatar[data-astro-cid-qlzm2jqu]{z-index:1;border-radius:8px;width:100%;height:auto;display:block;position:relative}.terminal-scanline[data-astro-cid-qlzm2jqu]{pointer-events:none;z-index:2;background:linear-gradient(#0000 50%,#00000008 50%) 0 0/100% 4px;border-radius:8px;position:absolute;inset:10px}.profile-content[data-astro-cid-qlzm2jqu]{align-items:center;min-width:0;display:flex}.profile-content-inner[data-astro-cid-qlzm2jqu]{gap:var(--space-6);flex-direction:column;width:100%;display:flex}.profile-subtitle[data-astro-cid-qlzm2jqu]{color:var(--color-text-secondary);padding-bottom:var(--space-5);margin:0;font-size:clamp(.875rem,2vw + .25rem,1rem);line-height:1.5}.stats-row[data-astro-cid-qlzm2jqu]{gap:var(--space-5);grid-template-columns:repeat(2,1fr);display:grid}.stat-card[data-astro-cid-qlzm2jqu]{-webkit-backdrop-filter:blur(14px);border:1px solid var(--color-border-default);padding:var(--space-5) var(--space-5) var(--space-4);transition:border-color .3s var(--ease-out-quint), transform .4s var(--ease-spring), box-shadow .4s var(--ease-out-quint), background .3s var(--ease-out-quint);background:#13131773;border-radius:14px;position:relative;overflow:hidden}.stat-card[data-astro-cid-qlzm2jqu]:before{content:"";opacity:0;transition:opacity .4s var(--ease-out-quint);pointer-events:none;background:radial-gradient(80% 80%,#8b5cf60f 0%,#0000 70%);position:absolute;inset:0}.stat-card--alt[data-astro-cid-qlzm2jqu]:before{background:radial-gradient(80% 80%,#4ade800f 0%,#0000 70%)}.stat-card[data-astro-cid-qlzm2jqu]:hover{background:#13131799;border-color:#8b5cf64d;transform:translateY(-4px);box-shadow:0 8px 30px #0006,0 0 40px #8b5cf60d}.stat-card--alt[data-astro-cid-qlzm2jqu]:hover{border-color:#4ade8059;box-shadow:0 8px 30px #0006,0 0 40px #4ade800f}.stat-card--cyan[data-astro-cid-qlzm2jqu]:before{background:radial-gradient(80% 80%,#22d3ee0f 0%,#0000 70%)}.stat-card--cyan[data-astro-cid-qlzm2jqu]:hover{border-color:#22d3ee59;box-shadow:0 8px 30px #0006,0 0 40px #22d3ee0f}.stat-card--red[data-astro-cid-qlzm2jqu]:before{background:radial-gradient(80% 80%,#f871710f 0%,#0000 70%)}.stat-card--red[data-astro-cid-qlzm2jqu]:hover{border-color:#f8717159;box-shadow:0 8px 30px #0006,0 0 40px #f871710f}.stat-card[data-astro-cid-qlzm2jqu]:hover:before{opacity:1}.stat-card[data-astro-cid-qlzm2jqu] .animated-counter{text-align:center;align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.stat-card[data-astro-cid-qlzm2jqu] .animated-counter__number{color:var(--color-accent);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:clamp(1.6rem,4vw + .2rem,3rem);font-weight:800;line-height:1}.stat-card--alt[data-astro-cid-qlzm2jqu] .animated-counter__number{color:#4ade80}.stat-card[data-astro-cid-qlzm2jqu] .animated-counter__label{font-family:var(--font-mono);color:var(--color-accent);letter-spacing:.02em;text-transform:uppercase;font-size:clamp(.625rem,1.5vw + .1rem,.75rem);font-weight:400}.stat-card--alt[data-astro-cid-qlzm2jqu] .animated-counter__label{color:#6ee7b0}.stat-card--cyan[data-astro-cid-qlzm2jqu] .animated-counter__number{color:#22d3ee}.stat-card--cyan[data-astro-cid-qlzm2jqu] .animated-counter__label{color:#67e8f9}.stat-card--red[data-astro-cid-qlzm2jqu] .animated-counter__number{color:#f87171}.stat-card--red[data-astro-cid-qlzm2jqu] .animated-counter__label{color:#fca5a5}@media (width<=860px){.profile-grid[data-astro-cid-qlzm2jqu]{gap:var(--space-8);grid-template-columns:1fr;max-width:560px}.terminal-frame[data-astro-cid-qlzm2jqu]{justify-self:center;max-width:min(320px,75vw)}.profile-content-inner[data-astro-cid-qlzm2jqu]{gap:var(--space-5)}}@media (width<=640px){.profile-content-inner[data-astro-cid-qlzm2jqu] .title-main[data-astro-cid-qlzm2jqu]{font-size:clamp(1rem,4.5vw + .3rem,1.27rem)}.profile-grid[data-astro-cid-qlzm2jqu]{padding:var(--space-6) var(--space-6);gap:var(--space-8)}.terminal-frame[data-astro-cid-qlzm2jqu]{max-width:min(260px,80vw)}.terminal-header[data-astro-cid-qlzm2jqu]{padding:10px 12px}.terminal-dot[data-astro-cid-qlzm2jqu]{width:10px;height:10px}.terminal-title[data-astro-cid-qlzm2jqu]{margin-left:6px;font-size:.625rem}.terminal-body[data-astro-cid-qlzm2jqu]{padding:8px}.profile-subtitle[data-astro-cid-qlzm2jqu]{font-size:var(--text-body-sm);padding-bottom:var(--space-4)}.stats-row[data-astro-cid-qlzm2jqu]{gap:var(--space-3);grid-template-columns:1fr}}.tech-section[data-astro-cid-qlzm2jqu]{z-index:1;align-items:center;gap:var(--space-8);width:100%;max-width:1000px;padding:0 var(--content-padding);flex-direction:column;display:flex;position:relative}.tech-heading-wrapper[data-astro-cid-qlzm2jqu]{text-align:center}@media (width<=480px){.tech-section[data-astro-cid-qlzm2jqu]{padding:0 var(--space-5)}}@media (prefers-reduced-motion:reduce){.terminal-frame-inner[data-astro-cid-qlzm2jqu]{animation:none}.stat-card[data-astro-cid-qlzm2jqu]{transition:none}}.education-section[data-astro-cid-qlzm2jqu]{z-index:1;align-items:center;gap:var(--space-8);width:100%;max-width:1000px;padding:0 var(--content-padding);flex-direction:column;display:flex;position:relative}@media (width<=480px){.education-section[data-astro-cid-qlzm2jqu]{padding:0 var(--space-5)}}.strengths-section[data-astro-cid-wcybp6br]{flex-direction:column}.section-heading[data-astro-cid-wcybp6br]{padding:0 var(--content-padding)}.strengths-grid[data-astro-cid-wcybp6br]{gap:clamp(var(--space-8), 4vw, var(--space-16));width:100%;max-width:1100px;padding-inline:var(--content-padding);grid-template-columns:1fr 1fr;display:grid}.strengths-column[data-astro-cid-wcybp6br]{gap:var(--space-6);flex-direction:column;min-width:0;display:flex}.column-heading[data-astro-cid-wcybp6br]{font-family:var(--font-sans);font-size:var(--text-h3);color:var(--color-text-primary);letter-spacing:-.02em;padding-bottom:var(--space-3);margin:0;font-weight:700;position:relative}.column-heading[data-astro-cid-wcybp6br]:after{content:"";background:linear-gradient(90deg, var(--color-accent), transparent);border-radius:1px;width:3rem;height:2px;position:absolute;bottom:0;left:0}.card-list[data-astro-cid-wcybp6br]{gap:var(--space-4);flex-direction:column;display:flex}.strength-card[data-astro-cid-wcybp6br]{gap:var(--space-5);padding:var(--space-6);-webkit-backdrop-filter:blur(14px);border:1px solid var(--color-border-default);transition:border-color .3s var(--ease-out-quint), transform .4s var(--ease-spring), box-shadow .4s var(--ease-out-quint), background .3s var(--ease-out-quint);background:#13131773;border-radius:14px;align-items:flex-start;display:flex;position:relative;overflow:hidden}.strength-card[data-astro-cid-wcybp6br]:before{content:"";opacity:0;transition:opacity .4s var(--ease-out-quint);pointer-events:none;background:radial-gradient(70% 70% at 80% 20%,#8b5cf60d 0%,#0000 70%);position:absolute;inset:0}.strength-card[data-astro-cid-wcybp6br]:hover{background:#13131799;border-color:#8b5cf640;transform:translateY(-3px);box-shadow:0 8px 30px #00000059,0 0 40px #8b5cf60a}.strength-card[data-astro-cid-wcybp6br]:hover:before{opacity:1}.card-icon[data-astro-cid-wcybp6br]{background:var(--color-accent-muted);width:44px;height:44px;color:var(--color-accent);transition:background .3s var(--ease-out-quint), color .3s var(--ease-out-quint), transform .3s var(--ease-spring);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.strength-card[data-astro-cid-wcybp6br]:hover .card-icon[data-astro-cid-wcybp6br]{color:var(--color-accent-hover);background:#8b5cf633;transform:scale(1.08)}.card-body[data-astro-cid-wcybp6br]{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.card-title[data-astro-cid-wcybp6br]{font-family:var(--font-sans);color:var(--color-text-primary);letter-spacing:-.01em;margin:0;font-size:clamp(.9rem,.6vw + .7rem,1.05rem);font-weight:600;line-height:1.35}.card-description[data-astro-cid-wcybp6br]{color:var(--color-text-secondary);margin:0;font-size:clamp(.8125rem,.4vw + .7rem,.9375rem);line-height:1.6}@media (width<=860px){.strengths-grid[data-astro-cid-wcybp6br]{gap:var(--space-10);grid-template-columns:1fr;max-width:620px}.column-heading[data-astro-cid-wcybp6br]{text-align:center}.column-heading[data-astro-cid-wcybp6br]:after{left:50%;transform:translate(-50%)}}@media (width<=480px){.strengths-grid[data-astro-cid-wcybp6br]{padding-inline:var(--space-4);gap:var(--space-8)}.strength-card[data-astro-cid-wcybp6br]{padding:var(--space-5);gap:var(--space-4)}.card-icon[data-astro-cid-wcybp6br]{border-radius:8px;width:38px;height:38px}.card-icon[data-astro-cid-wcybp6br] svg[data-astro-cid-wcybp6br]{width:20px;height:20px}}@media (prefers-reduced-motion:reduce){.strength-card[data-astro-cid-wcybp6br]{transition:none}}.gallery-grid{gap:clamp(var(--space-5), 3vw, var(--space-8));width:100%;max-width:1200px;padding:0 var(--content-padding);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));display:grid}.gallery-grid.revealed .gallery-card{animation-play-state:running}.gallery-card{--card-index:0;background:var(--color-bg-elevated);border:1px solid var(--color-border-default);opacity:0;animation:card-entrance .6s var(--ease-out-expo) forwards;animation-delay:calc(var(--card-index) * .12s + .1s);transition:border-color .22s var(--ease-out-quint), box-shadow .22s var(--ease-out-quint), transform .22s var(--ease-out-quint);border-radius:14px;flex-direction:column;animation-play-state:paused;display:flex;position:relative;overflow:hidden;transform:translateY(30px)scale(.97)}.gallery-card:hover{border-color:var(--card-accent);box-shadow:0 0 0 1px var(--card-accent-muted), 0 8px 32px #0006, 0 0 60px var(--card-accent-muted);transform:translateY(-4px)}@keyframes card-entrance{to{opacity:1;transform:translateY(0)scale(1)}}.gallery-card__media{aspect-ratio:16/9;cursor:pointer;background:var(--color-bg-surface);position:relative;overflow:hidden}.gallery-card__media:focus-visible{outline:2px solid var(--card-accent);outline-offset:-2px}.gallery-card__img{object-fit:cover;width:100%;height:100%;transition:transform .5s var(--ease-out-quint), filter .5s var(--ease-out-quint);display:block}.gallery-card:hover .gallery-card__img{filter:brightness(1.08);transform:scale(1.04)}.gallery-card__img--placeholder{background:linear-gradient(135deg, var(--color-bg-surface), var(--color-bg-elevated));width:100%;height:100%}.gallery-card__media-overlay{opacity:0;transition:opacity .35s var(--ease-out-quint);pointer-events:none;background:linear-gradient(#0000 30%,#00000026 60%,#0000008c 100%);position:absolute;inset:0}.gallery-card__media:hover .gallery-card__media-overlay{opacity:1}.gallery-card__status{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-primary);-webkit-backdrop-filter:blur(10px);z-index:2;background:#000000a6;border:1px solid #ffffff14;border-radius:20px;align-items:center;gap:6px;padding:4px 12px 4px 8px;font-size:.65rem;font-weight:600;line-height:1;display:inline-flex;position:absolute;top:12px;right:12px}.gallery-card__status-dot{background:var(--status-dot);width:6px;height:6px;box-shadow:0 0 6px var(--status-glow);border-radius:50%;flex-shrink:0}.gallery-card__gallery-badge{font-family:var(--font-mono);color:#fffc;-webkit-backdrop-filter:blur(8px);z-index:2;transition:opacity .3s var(--ease-out-quint);background:#0000008c;border:1px solid #ffffff0f;border-radius:14px;align-items:center;gap:4px;padding:3px 9px 3px 7px;font-size:.625rem;font-weight:500;display:inline-flex;position:absolute;bottom:12px;right:12px}.gallery-card__media:not(:hover) .gallery-card__gallery-badge{opacity:.6}.gallery-card__body{gap:var(--space-3);padding:var(--space-5);flex-direction:column;flex:1;display:flex;position:relative}.gallery-card__title{color:var(--color-text-primary);letter-spacing:-.01em;margin:0;font-size:1.125rem;font-weight:650;line-height:1.25}.gallery-card__desc{color:var(--color-text-secondary);margin:0;font-size:.8125rem;line-height:1.65}.gallery-card__desc--measure{visibility:hidden;pointer-events:none;width:100%;position:absolute;top:0;left:0}.gallery-card__inline-expand{font-family:var(--font-mono);color:var(--card-accent);cursor:pointer;font-size:.6875rem;font-weight:550;line-height:inherit;vertical-align:baseline;transition:color .2s var(--ease-out-quint);background:0 0;border:none;padding:0;display:inline}.gallery-card__inline-expand:hover{color:color-mix(in srgb, var(--card-accent) 85%, white)}.gallery-card__tech{padding-top:var(--space-2);flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.gallery-card__pill{font-size:.6875rem;font-weight:500;font-family:var(--font-mono);color:var(--color-text-secondary);transition:color .25s var(--ease-out-quint), background .25s var(--ease-out-quint), border-color .25s var(--ease-out-quint);background:#ffffff0a;border:1px solid #ffffff0f;border-radius:6px;align-items:center;gap:5px;padding:3px 9px;line-height:1;display:inline-flex}.gallery-card__pill:hover{color:var(--color-text-primary);background:#ffffff14;border-color:#ffffff1f}.gallery-card__pill-icon{opacity:.7;transition:opacity .25s var(--ease-out-quint);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.gallery-card__pill-icon svg{display:block}.gallery-card__pill:hover .gallery-card__pill-icon{opacity:1}.gallery-card__actions{gap:var(--space-2);padding-top:var(--space-2);margin-top:var(--space-1);display:flex}.gallery-card__btn{font-size:.75rem;font-weight:550;font-family:var(--font-mono);letter-spacing:.02em;transition:background .25s var(--ease-out-quint), color .25s var(--ease-out-quint), border-color .25s var(--ease-out-quint), box-shadow .25s var(--ease-out-quint);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:7px 15px;line-height:1;text-decoration:none;display:inline-flex}.gallery-card__btn--demo{color:var(--color-text-primary);background:var(--card-accent);border:1px solid var(--card-accent)}.gallery-card__btn--demo:hover{color:var(--color-text-primary);background:color-mix(in srgb, var(--card-accent) 85%, white);box-shadow:0 0 20px var(--card-accent-muted)}.gallery-card__btn--code{color:var(--color-text-secondary);background:0 0;border:1px solid #ffffff1f}.gallery-card__btn--code:hover{color:var(--color-text-primary);background:#ffffff0f;border-color:#fff3}@media (width<=640px){.gallery-grid{padding:0 var(--space-4)}.gallery-card__status{padding:3px 10px 3px 7px;font-size:.6rem;top:8px;right:8px}.gallery-card__body{padding:var(--space-4)}.gallery-card__title{font-size:clamp(.9375rem,3vw + .15rem,1.125rem)}.gallery-card__desc{font-size:.78125rem}.gallery-card__btn{padding:6px 12px;font-size:.6875rem}}.lightbox{z-index:9999;backdrop-filter:blur(24px);opacity:0;transition:opacity .3s var(--ease-out-expo);background:#09090be0;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox.entering,.lightbox.open{opacity:1}.lightbox.exiting{opacity:0;pointer-events:none}.lightbox-close{top:var(--space-6);right:var(--space-6);z-index:10;width:44px;height:44px;color:var(--color-text-secondary);cursor:pointer;backdrop-filter:blur(12px);transition:background .2s var(--ease-out-quint), border-color .2s var(--ease-out-quint), color .2s var(--ease-out-quint), transform .15s var(--ease-out-quint);background:#ffffff0a;border:1px solid #ffffff1a;border-radius:12px;justify-content:center;align-items:center;display:flex;position:absolute}.lightbox-close:hover{color:var(--color-text-primary);background:#ffffff1a;border-color:#fff3;transform:scale(1.05)}.lightbox-close:active{transform:scale(.95)}.lightbox-counter{top:var(--space-6);z-index:10;font-family:var(--font-mono);color:var(--color-text-tertiary);backdrop-filter:blur(12px);background:#ffffff0a;border:1px solid #ffffff14;border-radius:999px;padding:.375rem 1rem;font-size:.8125rem;font-weight:500;position:absolute;left:50%;transform:translate(-50%)}.lightbox-arrow{z-index:10;width:48px;height:48px;color:var(--color-text-secondary);cursor:pointer;backdrop-filter:blur(12px);transition:background .2s var(--ease-out-quint), border-color .2s var(--ease-out-quint), color .2s var(--ease-out-quint), transform .15s var(--ease-spring);background:#ffffff0a;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-arrow:hover{color:var(--color-text-primary);background:#ffffff1a;border-color:#fff3}.lightbox-arrow:active{transform:translateY(-50%)scale(.9)}.lightbox-arrow--prev{left:var(--space-6)}.lightbox-arrow--prev:hover{transform:translateY(-50%)translate(-3px)}.lightbox-arrow--next{right:var(--space-6)}.lightbox-arrow--next:hover{transform:translateY(-50%)translate(3px)}.lightbox-stage{padding:var(--space-20) var(--space-16) var(--space-6);flex:1;justify-content:center;align-items:center;max-width:90vw;max-height:calc(100vh - 160px);display:flex;overflow:hidden}.lightbox-img{object-fit:contain;user-select:none;-webkit-user-drag:none;border-radius:12px;max-width:100%;max-height:100%}.lightbox-img.slide-from-right{animation:slide-in-right .35s var(--ease-out-expo) forwards}.lightbox-img.slide-from-left{animation:slide-in-left .35s var(--ease-out-expo) forwards}@keyframes slide-in-right{0%{opacity:0;transform:translate(40px)scale(.96)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-40px)scale(.96)}to{opacity:1;transform:translate(0)scale(1)}}.lightbox-thumbs{padding:var(--space-4) var(--space-6);scrollbar-width:none;-ms-overflow-style:none;flex-shrink:0;gap:8px;display:flex;overflow-x:auto}.lightbox-thumbs::-webkit-scrollbar{display:none}.lightbox-thumb{cursor:pointer;opacity:.4;width:64px;height:48px;transition:opacity .2s var(--ease-out-quint), border-color .2s var(--ease-out-quint), transform .2s var(--ease-spring);background:0 0;border:2px solid #0000;border-radius:8px;flex-shrink:0;padding:0;overflow:hidden}.lightbox-thumb:hover{opacity:.7;transform:translateY(-2px)}.lightbox-thumb.active{opacity:1;border-color:var(--color-accent)}.lightbox-thumb img{object-fit:cover;width:100%;height:100%}@media (width<=768px){.lightbox-stage{padding:var(--space-24) var(--space-4) var(--space-4);max-width:100vw;max-height:calc(100vh - 120px)}.lightbox-arrow{width:40px;height:40px}.lightbox-arrow--prev{left:var(--space-3)}.lightbox-arrow--next{right:var(--space-3)}.lightbox-close{top:var(--space-4);right:var(--space-4);width:40px;height:40px}.lightbox-counter{top:var(--space-4);padding:.25rem .75rem;font-size:.75rem}.lightbox-thumbs{padding:var(--space-3) var(--space-4);gap:6px}.lightbox-thumb{width:48px;height:36px}}.projects-section[data-astro-cid-cw346tha]{flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex}@media (width<=640px){.projects-section[data-astro-cid-cw346tha]{padding:var(--space-6) var(--space-4)}}.contact-section{max-width:1200px;padding:clamp(var(--space-8), 5vh, var(--space-12)) var(--content-padding);flex-direction:column;justify-content:center;margin-inline:auto;position:relative}.contact-grid{gap:clamp(var(--space-12), 4vw, var(--space-16));grid-template-columns:minmax(0,1fr) minmax(260px,360px);width:100%;display:grid}.contact-card{-webkit-backdrop-filter:blur(16px);border:1px solid var(--color-border-default);padding:var(--space-8);transition:border-color .4s var(--ease-out-quint), box-shadow .4s var(--ease-out-quint), transform .5s var(--ease-out-quint);background:#13131773;border-radius:16px;position:relative;overflow:hidden}.contact-card:before{content:"";pointer-events:none;opacity:0;transition:opacity .5s var(--ease-out-quint);background:radial-gradient(70% 60% at 50% 0,#8b5cf60f 0%,#0000 60%);border-radius:16px;position:absolute;inset:0}.contact-card:hover{border-color:#8b5cf62e;transform:translateY(-2px);box-shadow:0 4px 30px #00000059,0 0 50px #8b5cf60a}.contact-card:hover:before{opacity:1}.contact-card-header{margin-bottom:var(--space-10);color:var(--color-accent);text-align:center;width:100%;font-size:var(--text-h2);letter-spacing:-.02em;flex-direction:column;justify-content:center;align-items:center;font-weight:700;line-height:1.6;display:flex}.contact-card-desc{font-size:var(--text-body-sm);color:var(--color-text-secondary);margin:0;line-height:1.2}.contact-form{gap:var(--space-5);flex-direction:column;display:flex}.form-field{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-family:var(--font-mono);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.08em;font-size:.6875rem;font-weight:500}.form-input,.form-textarea{width:100%;font-family:var(--font-sans);font-size:var(--text-body-sm);color:var(--color-text-primary);background:var(--color-bg-elevated);border:1px solid var(--color-border-default);transition:border-color .2s var(--ease-out-quint), box-shadow .2s var(--ease-out-quint), background .2s var(--ease-out-quint);border-radius:10px;outline:none;padding:.75rem 1rem;font-weight:400;line-height:1.5}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-disabled)}.form-input:hover,.form-textarea:hover{border-color:#ffffff1a}.form-input:focus,.form-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-muted);background:#1a1a20e6}.form-input:disabled,.form-textarea:disabled{opacity:.5;cursor:not-allowed}.form-input:focus-visible,.form-textarea:focus-visible{outline:none}.form-textarea{resize:vertical;min-height:120px;max-height:300px}.form-counter{text-align:right;font-family:var(--font-mono);color:var(--color-text-disabled);transition:color .2s var(--ease-out-quint);margin-top:4px;font-size:.625rem;display:block}.form-counter--full{color:var(--color-error)}.form-alert{align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--text-body-sm);animation:fade-in .3s var(--ease-out-expo) forwards;border-radius:10px;line-height:1.5;display:flex}.form-alert--error{background:var(--color-error-muted);color:var(--color-error);border:1px solid #f8717133}.form-alert-icon{flex-shrink:0;margin-top:1px}.form-submit{justify-content:center;align-items:center;gap:var(--space-2);width:100%;font-family:var(--font-sans);font-size:var(--text-body-sm);color:var(--color-text-primary);background:var(--color-accent);border:1px solid var(--color-accent);cursor:pointer;transition:background .2s var(--ease-out-quint), border-color .2s var(--ease-out-quint), transform .15s var(--ease-out-quint), box-shadow .2s var(--ease-out-quint);margin-top:var(--space-2);border-radius:12px;padding:.875rem 1.5rem;font-weight:600;display:inline-flex}.form-submit:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover);box-shadow:0 0 20px #8b5cf640}.form-submit:active:not(:disabled){transform:scale(.98)}.form-submit:disabled{opacity:.7;cursor:not-allowed}.form-submit-icon{flex-shrink:0}.form-spinner{border:2px solid #ffffff40;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.6s linear infinite spin}.form-success{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);text-align:center;animation:fade-in-up .5s var(--ease-out-expo) forwards;flex-direction:column;display:flex}.form-success-icon{width:48px;height:48px;color:var(--color-success);animation:check-draw .5s var(--ease-out-expo) forwards}.form-success span{font-size:var(--text-body-sm);color:var(--color-success);font-weight:500}.form-send-another{font-family:var(--font-mono);color:var(--color-text-secondary);border:1px solid var(--color-border-default);cursor:pointer;transition:color .2s var(--ease-out-quint), border-color .2s var(--ease-out-quint);margin-top:var(--space-2);background:0 0;border-radius:8px;padding:.5rem 1rem;font-size:.75rem;font-weight:500}.form-send-another:hover{color:var(--color-text-primary);border-color:var(--color-accent)}@keyframes check-draw{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.contact-info{gap:var(--space-4);flex-direction:column;display:flex}.info-card{-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border-default);padding:var(--space-5) var(--space-6);transition:border-color .3s var(--ease-out-quint), background .3s var(--ease-out-quint);background:#1313174d;border-radius:14px}.info-card:hover{background:#13131773;border-color:#8b5cf626}.info-card-title{font-family:var(--font-mono);color:var(--color-accent);text-transform:uppercase;letter-spacing:.1em;margin:0 0 var(--space-3);font-size:clamp(.625rem,1.4vw + .1rem,.6875rem);font-weight:500}.info-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.info-item{align-items:center;gap:var(--space-3);font-size:var(--text-body-sm);color:var(--color-text-secondary);display:flex}.info-item svg{color:var(--color-accent);opacity:.5;flex-shrink:0}.email-row{align-items:center;gap:var(--space-2);display:inline-flex}.copy-btn{border:1px solid var(--color-border-default);width:26px;height:26px;color:var(--color-text-disabled);cursor:pointer;transition:color .2s var(--ease-out-quint), border-color .2s var(--ease-out-quint), background .2s var(--ease-out-quint);background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.copy-btn:hover{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-muted)}.info-availability{align-items:center;gap:var(--space-3);font-size:var(--text-body-sm);color:var(--color-text-secondary);margin:0;display:flex}.availability-dot{background:var(--color-success);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s ease-in-out infinite pulse-soft;box-shadow:0 0 8px #4ade8080}.info-social{gap:var(--space-3);display:flex}.social-link{border:1px solid var(--color-border-default);width:40px;height:40px;color:var(--color-text-secondary);transition:color .2s var(--ease-out-quint), border-color .2s var(--ease-out-quint), background .2s var(--ease-out-quint), transform .2s var(--ease-spring);background:0 0;border-radius:10px;justify-content:center;align-items:center;display:flex}.social-link:hover{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-muted);transform:translateY(-2px)}.cv-download-link{align-items:center;gap:var(--space-2);font-family:var(--font-mono);color:var(--color-accent);background:var(--color-accent-muted);border:1px solid var(--color-border-active);transition:color .2s var(--ease-out-quint), background .2s var(--ease-out-quint), border-color .2s var(--ease-out-quint), transform .2s var(--ease-spring);border-radius:10px;padding:.5rem 1rem;font-size:.75rem;font-weight:600;text-decoration:none;display:inline-flex}.cv-download-link:hover{color:#fff;background:var(--color-accent);border-color:var(--color-accent);transform:translateY(-2px)}@media (width<=860px){.contact-section{min-height:auto}.contact-grid{gap:var(--space-10);grid-template-columns:1fr}.contact-card-header{margin-bottom:var(--space-6)}.contact-info{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.info-card{flex:none}}@media (width<=480px){.contact-section{min-height:auto;padding:var(--space-10) var(--space-4)}.contact-card{padding:var(--space-5) var(--space-4)}.contact-info{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.contact-card,.info-card,.social-link{transition:none}.contact-card:before{display:none}.availability-dot,.form-success-icon,.form-alert{animation:none}}.page-container{z-index:1;position:relative}.section-wrapper{gap:var(--space-16);max-width:1200px;padding:var(--content-padding);margin-inline:auto;justify-content:center;align-items:center;margin-bottom:100px;scroll-margin-top:.5rem;display:flex;position:relative}.hero-section{max-width:none;min-height:100dvh;margin-inline:0;padding-block:0}@media (width<=640px){.section-wrapper{max-width:100%;min-height:auto;padding-block:var(--space-10)}}
