@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwgknk-6nFg.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwgknk-6nFg.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwgknk-6nFg.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwgknk-6nFg.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwgknk-6nFg.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwgknk-4.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx3cwgknk-6nFg.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxTcwgknk-6nFg.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxPcwgknk-6nFg.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx_cwgknk-6nFg.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPx7cwgknk-6nFg.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwgknk-4.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Sora';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwWa-xo6eeI7fM.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:'Sora';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwV6-xo6eeIw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Sora';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwWa-xo6eeI7fM.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:'Sora';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwV6-xo6eeIw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Sora';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwWa-xo6eeI7fM.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:'Sora';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwV6-xo6eeIw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Sora';font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwWa-xo6eeI7fM.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:'Sora';font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/sora/v17/xMQ9uFFYT72X5wkB_18qmnndmSdSnh2BAfO5mnuyOo1lfiQwV6-xo6eeIw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ng-ink:#0e1116;--ng-ink-soft:#1a1f27;--ng-white:#ffffff;--ng-paper:#f6f7f9;--ng-paper-2:#eef0f4;--ng-muted:#5b6472;--ng-muted-2:#8a93a2;--ng-border:#e6e8ec;--ng-border-dark:#262c36;--ng-accent:#3457ff;--ng-accent-2:#2440d6;--ng-accent-3:#7f92ff;--ng-accent-soft:#edefff;--ng-gradient:linear-gradient(120deg, #3457ff 0%, #2540e6 100%);--ng-gradient-soft:linear-gradient(120deg, rgba(52,87,255,.12), rgba(52,87,255,.05));--ng-font-display:"Sora", "Segoe UI", system-ui, sans-serif;--ng-font-body:"Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--ng-container:1200px;--ng-container-narrow:760px;--ng-radius:16px;--ng-radius-sm:10px;--ng-radius-lg:28px;--ng-shadow:0 10px 40px -12px rgba(14, 17, 22, .18);--ng-shadow-lg:0 30px 70px -20px rgba(14, 17, 22, .30);--ng-shadow-accent:0 16px 40px -16px rgba(14, 17, 22, .40);--ng-transition:.28s cubic-bezier(.4, 0, .2, 1)}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:var(--ng-font-body);font-size:17px;line-height:1.7;color:var(--ng-ink);background:var(--ng-white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:var(--ng-accent);text-decoration:none;transition:color var(--ng-transition)}a:hover{color:var(--ng-accent-2)}h1,h2,h3,h4,h5,h6{font-family:var(--ng-font-display);font-weight:700;line-height:1.15;color:var(--ng-ink);letter-spacing:-.02em;margin:0 0 .6em}p{margin:0 0 1.2em}ul,ol{margin:0 0 1.2em;padding-left:1.3em}blockquote{margin:1.8em 0;padding:1.2em 1.6em;border-left:4px solid #fff0;border-image:var(--ng-gradient) 1;background:var(--ng-gradient-soft);border-radius:0 var(--ng-radius-sm) var(--ng-radius-sm) 0;font-size:1.05em;font-style:italic;color:var(--ng-ink)}code,pre{font-family:"JetBrains Mono","Fira Code",ui-monospace,"Cascadia Code",Consolas,monospace;font-size:.9em}code{background:var(--ng-paper);padding:.15em .45em;border-radius:6px;color:var(--ng-accent-2)}pre{background:var(--ng-ink);color:#e6e6f0;padding:1.4em 1.6em;border-radius:var(--ng-radius-sm);overflow-x:auto;line-height:1.6}pre code{background:none;padding:0;color:inherit}hr{border:none;height:1px;background:var(--ng-border);margin:2.5em 0}::selection{background:rgb(109 94 252 / .22)}.ng-skip-link{position:absolute;left:-9999px;top:0;background:var(--ng-ink);color:#fff;padding:.8em 1.2em;z-index:9999;border-radius:0 0 var(--ng-radius-sm) 0}.ng-skip-link:focus{left:0;color:#fff}:focus-visible{outline:3px solid var(--ng-accent);outline-offset:2px;border-radius:4px}.ng-container{width:100%;max-width:var(--ng-container);margin:0 auto;padding:0 24px}.ng-narrow{max-width:var(--ng-container-narrow)}.ng-section{padding:96px 0}.ng-section--tight{padding:64px 0}.ng-section--paper{background:var(--ng-paper)}.ng-section--ink{background:var(--ng-ink);color:#cdd3de}.ng-section--ink h1,.ng-section--ink h2,.ng-section--ink h3{color:#fff}.ng-eyebrow{display:inline-flex;align-items:center;gap:.5em;font-family:var(--ng-font-display);font-size:.78rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ng-accent);margin-bottom:1rem}.ng-eyebrow::before{content:"";width:26px;height:2px;border-radius:2px;background:var(--ng-gradient)}.ng-section--ink .ng-eyebrow{color:#b9aefd}.ng-gradient-text{background:var(--ng-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:#fff0;color:#fff0}.ng-mark{position:relative;white-space:nowrap;color:var(--ng-ink);padding-bottom:.06em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 22' preserveAspectRatio='none'%3E%3Cpath d='M5 14 C55 6 110 19 175 11 C230 5 268 9 295 14' fill='none' stroke='%233457ff' stroke-width='7' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left bottom;background-size:100% .36em}.ng-section-head{max-width:640px;margin-bottom:56px}.ng-section-head h2{font-size:clamp(1.9rem, 4vw, 2.8rem)}.ng-section-head p{color:var(--ng-muted);font-size:1.1rem;margin:0}.ng-section--ink .ng-section-head p{color:#9aa3b2}.ng-btn{display:inline-flex;align-items:center;gap:.6em;font-family:var(--ng-font-display);font-weight:600;font-size:.98rem;padding:.85em 1.7em;border-radius:100px;border:1.5px solid #fff0;cursor:pointer;transition:transform var(--ng-transition),box-shadow var(--ng-transition),background var(--ng-transition),color var(--ng-transition);white-space:nowrap}.ng-btn svg{width:1.1em;height:1.1em}.ng-btn--primary{background:var(--ng-ink);color:#fff;box-shadow:var(--ng-shadow-accent)}.ng-btn--primary:hover{color:#fff;background:var(--ng-accent);transform:translateY(-3px)}.ng-section--ink .ng-btn--primary,.ng-cta .ng-btn--primary{background:#fff;color:var(--ng-ink)}.ng-section--ink .ng-btn--primary:hover,.ng-cta .ng-btn--primary:hover{background:var(--ng-accent);color:#fff}.ng-btn--ghost{background:#fff0;color:var(--ng-ink);border-color:var(--ng-border)}.ng-btn--ghost:hover{border-color:var(--ng-accent);color:var(--ng-accent);transform:translateY(-3px)}.ng-section--ink .ng-btn--ghost{color:#fff;border-color:rgb(255 255 255 / .25)}.ng-section--ink .ng-btn--ghost:hover{border-color:#fff;background:rgb(255 255 255 / .06)}.ng-btn--light{background:#fff;color:var(--ng-ink)}.ng-btn--light:hover{color:var(--ng-accent);transform:translateY(-3px);box-shadow:var(--ng-shadow)}.ng-header{position:sticky;top:0;z-index:100;background:rgb(255 255 255 / .82);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid #fff0;transition:border-color var(--ng-transition),box-shadow var(--ng-transition)}.ng-header.is-scrolled{border-bottom-color:var(--ng-border);box-shadow:0 6px 24px -18px rgb(14 17 22 / .4)}.ng-header__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:84px}.ng-logo{display:inline-flex;align-items:center;gap:.7em}.ng-logo img{max-height:56px;width:auto}.custom-logo-link{display:inline-block;line-height:0}.custom-logo{max-height:68px;width:auto;height:auto;display:block}@media (max-width:560px){.custom-logo{max-height:54px}}.ng-footer .custom-logo{filter:brightness(0) invert(1)}.ng-logo__text{font-family:var(--ng-font-display);font-weight:800;font-size:1.35rem;letter-spacing:-.03em;color:var(--ng-ink);line-height:1}.ng-logo__text span{color:var(--ng-accent)}.ng-nav{display:flex;align-items:center;gap:8px}.ng-nav ul{list-style:none;display:flex;align-items:center;gap:4px;margin:0;padding:0}.ng-nav a{display:block;font-family:var(--ng-font-display);font-weight:500;font-size:.95rem;color:var(--ng-ink);padding:.55em .95em;border-radius:100px;position:relative;transition:color var(--ng-transition),background var(--ng-transition)}.ng-nav a:hover{color:var(--ng-accent);background:var(--ng-accent-soft)}.ng-nav .current-menu-item>a,.ng-nav .current_page_item>a{color:var(--ng-accent)}.ng-header__cta{margin-left:8px}.ng-burger{display:none;width:46px;height:46px;border:1px solid var(--ng-border);border-radius:12px;background:#fff;cursor:pointer;position:relative}.ng-burger span{position:absolute;left:50%;top:50%;width:20px;height:2px;background:var(--ng-ink);border-radius:2px;transform:translate(-50%,-50%);transition:transform var(--ng-transition),opacity var(--ng-transition)}.ng-burger span:nth-child(1){transform:translate(-50%,-7px)}.ng-burger span:nth-child(3){transform:translate(-50%,5px)}.ng-burger.is-open span:nth-child(1){transform:translate(-50%,-50%) rotate(45deg)}.ng-burger.is-open span:nth-child(2){opacity:0}.ng-burger.is-open span:nth-child(3){transform:translate(-50%,-50%) rotate(-45deg)}.ng-hero{position:relative;padding:110px 0 96px;overflow:hidden;background:radial-gradient(1100px 520px at 78% -10%,rgb(168 85 247 / .14),transparent 60%),radial-gradient(900px 500px at 8% 20%,rgb(109 94 252 / .12),transparent 55%)}.ng-hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}.ng-hero__badge{display:inline-flex;align-items:center;gap:.6em;background:#fff;border:1px solid var(--ng-border);padding:.5em 1em;border-radius:100px;font-size:.85rem;font-weight:500;color:var(--ng-muted);box-shadow:var(--ng-shadow);margin-bottom:1.6rem}.ng-hero__badge .dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgb(34 197 94 / .18)}.ng-hero h1{font-size:clamp(2.4rem, 6vw, 4.2rem);font-weight:800;margin-bottom:.5em}.ng-hero__lead{font-size:clamp(1.05rem, 2vw, 1.25rem);color:var(--ng-muted);max-width:44ch;margin-bottom:2em}.ng-hero__actions{display:flex;flex-wrap:wrap;gap:14px}.ng-hero__stats{display:flex;gap:40px;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--ng-border)}.ng-hero__stats .num{font-family:var(--ng-font-display);font-weight:800;font-size:1.9rem;display:block;line-height:1}.ng-hero__stats .lbl{font-size:.85rem;color:var(--ng-muted)}.ng-hero__visual{position:relative}.ng-code-card{background:var(--ng-ink);border-radius:var(--ng-radius-lg);box-shadow:var(--ng-shadow-lg);overflow:hidden;transform:rotate(1.4deg);transition:transform var(--ng-transition)}.ng-code-card:hover{transform:rotate(0deg) translateY(-4px)}.ng-code-card__bar{display:flex;align-items:center;gap:8px;padding:14px 18px;background:#161b23;border-bottom:1px solid var(--ng-border-dark)}.ng-code-card__bar i{width:12px;height:12px;border-radius:50%;display:block}.ng-code-card__bar i:nth-child(1){background:#ff5f57}.ng-code-card__bar i:nth-child(2){background:#febc2e}.ng-code-card__bar i:nth-child(3){background:#28c840}.ng-code-card__bar span{margin-left:10px;font-family:var(--ng-font-body);font-size:.8rem;color:#6b7280}.ng-code-card__body{padding:22px 24px;font-family:"JetBrains Mono",ui-monospace,Consolas,monospace;font-size:.92rem;line-height:1.85;color:#c9d1d9}.ng-code-card__body .c-key{color:#ff7eb6}.ng-code-card__body .c-str{color:#a5d6ff}.ng-code-card__body .c-fn{color:#d2a8ff}.ng-code-card__body .c-com{color:#6b7280}.ng-code-card__body .c-num{color:#79c0ff}.ng-hero__blob{position:absolute;inset:-30px -40px -30px -20px;background:var(--ng-gradient);filter:blur(60px);opacity:.28;z-index:-1;border-radius:50%;animation:ng-float 8s ease-in-out infinite}@keyframes ng-float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-18px) scale(1.04)}}.ng-marquee{border-top:1px solid var(--ng-border);border-bottom:1px solid var(--ng-border);padding:22px 0;overflow:hidden;background:var(--ng-white)}.ng-marquee__track{display:flex;gap:60px;white-space:nowrap;animation:ng-scroll 28s linear infinite;width:max-content}.ng-marquee__track span{font-family:var(--ng-font-display);font-weight:600;font-size:1.15rem;color:var(--ng-muted-2);display:inline-flex;align-items:center;gap:60px}.ng-marquee__track span::after{content:"✦";color:var(--ng-accent);font-size:.8em}@keyframes ng-scroll{to{transform:translateX(-50%)}}.ng-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.ng-card{position:relative;background:#fff;border:1px solid var(--ng-border);border-radius:var(--ng-radius);padding:34px 30px;transition:transform var(--ng-transition),box-shadow var(--ng-transition),border-color var(--ng-transition);overflow:hidden}.ng-card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--ng-gradient);transform:scaleX(0);transform-origin:left;transition:transform var(--ng-transition)}.ng-card:hover{transform:translateY(-6px);box-shadow:var(--ng-shadow);border-color:#fff0}.ng-card:hover::before{transform:scaleX(1)}.ng-card__icon{width:56px;height:56px;display:grid;place-items:center;border-radius:14px;background:var(--ng-gradient-soft);color:var(--ng-accent);margin-bottom:22px}.ng-card__icon svg{width:28px;height:28px}.ng-card h3{font-size:1.35rem;margin-bottom:.5em}.ng-card p{color:var(--ng-muted);font-size:.98rem;margin-bottom:1.2em}.ng-card__tags{display:flex;flex-wrap:wrap;gap:8px}.ng-card__tags span{font-size:.78rem;font-weight:500;padding:.3em .8em;border-radius:100px;background:var(--ng-paper);color:var(--ng-muted)}.ng-posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:30px}.ng-post-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--ng-border);border-radius:var(--ng-radius);overflow:hidden;transition:transform var(--ng-transition),box-shadow var(--ng-transition),border-color var(--ng-transition)}.ng-post-card:hover{transform:translateY(-6px);box-shadow:var(--ng-shadow);border-color:#fff0}.ng-post-card__media{position:relative;aspect-ratio:16 / 10;overflow:hidden;background:var(--ng-paper-2)}.ng-post-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.ng-post-card:hover .ng-post-card__media img{transform:scale(1.05)}.ng-post-card__media--empty{display:grid;place-items:center;background:var(--ng-gradient);color:rgb(255 255 255 / .9);font-family:var(--ng-font-display);font-weight:800;font-size:2rem}.ng-post-card__cat{position:absolute;top:14px;left:14px;background:rgb(14 17 22 / .72);backdrop-filter:blur(6px);color:#fff;font-size:.74rem;font-weight:600;padding:.35em .8em;border-radius:100px;text-transform:uppercase;letter-spacing:.05em}.ng-post-card__body{padding:26px 26px 28px;display:flex;flex-direction:column;flex:1}.ng-post-card__meta{display:flex;align-items:center;gap:12px;font-size:.82rem;color:var(--ng-muted-2);margin-bottom:12px}.ng-post-card__meta .sep{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.5}.ng-post-card h3{font-size:1.3rem;margin-bottom:.5em}.ng-post-card h3 a{color:var(--ng-ink);background-image:var(--ng-gradient);background-size:0% 2px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--ng-transition),color var(--ng-transition)}.ng-post-card:hover h3 a{color:var(--ng-accent)}.ng-post-card__excerpt{color:var(--ng-muted);font-size:.96rem;margin-bottom:1.4em;flex:1}.ng-post-card__more{font-family:var(--ng-font-display);font-weight:600;font-size:.92rem;display:inline-flex;align-items:center;gap:.5em;align-self:flex-start}.ng-post-card__more svg{transition:transform var(--ng-transition)}.ng-post-card:hover .ng-post-card__more svg{transform:translateX(4px)}.ng-layout{display:grid;grid-template-columns:1fr 320px;gap:56px;align-items:start}.ng-page-hero{padding:70px 0 40px;text-align:center;background:radial-gradient(700px 300px at 50% -20%,rgb(109 94 252 / .12),transparent 65%)}.ng-page-hero h1{font-size:clamp(2rem, 5vw, 3.2rem);margin-bottom:.3em}.ng-page-hero p{color:var(--ng-muted);font-size:1.1rem;max-width:60ch;margin:0 auto}.ng-breadcrumb{font-size:.85rem;color:var(--ng-muted-2);margin-bottom:1rem}.ng-breadcrumb a{color:var(--ng-muted)}.ng-article__header{margin-bottom:36px}.ng-article__cat{display:inline-block;background:var(--ng-gradient);color:#fff;font-family:var(--ng-font-display);font-weight:600;font-size:.78rem;padding:.4em 1em;border-radius:100px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:1.2rem}.ng-article__title{font-size:clamp(2rem, 4.5vw, 3.1rem);margin-bottom:.6em}.ng-article__meta{display:flex;flex-wrap:wrap;align-items:center;gap:16px;color:var(--ng-muted);font-size:.92rem;padding-bottom:28px;border-bottom:1px solid var(--ng-border)}.ng-article__author{display:flex;align-items:center;gap:10px;font-weight:500;color:var(--ng-ink)}.ng-article__author img{width:40px;height:40px;border-radius:50%}.ng-article__cover{margin:36px 0;border-radius:var(--ng-radius-lg);overflow:hidden;box-shadow:var(--ng-shadow)}.ng-prose{font-size:1.08rem;line-height:1.85}.ng-prose>h2{font-size:1.7rem;margin-top:1.8em;scroll-margin-top:110px}.ng-prose>h3{font-size:1.35rem;margin-top:1.5em;scroll-margin-top:110px}.ng-prose img{border-radius:var(--ng-radius-sm);margin:1.6em 0}.ng-prose a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgb(109 94 252 / .4)}.ng-prose a:hover{text-decoration-color:var(--ng-accent)}.ng-prose ul li::marker{color:var(--ng-accent)}.ng-prose ol li::marker{color:var(--ng-accent);font-weight:700}.ng-toc{position:sticky;top:104px;background:var(--ng-paper);border:1px solid var(--ng-border);border-radius:var(--ng-radius);padding:26px 24px}.ng-toc__title{font-family:var(--ng-font-display);font-weight:700;font-size:1.05rem;display:flex;align-items:center;gap:.5em;margin-bottom:1rem}.ng-toc ul{list-style:none;margin:0;padding:0}.ng-toc li{margin:0}.ng-toc a{display:block;padding:.4em 0 .4em 14px;border-left:2px solid var(--ng-border);color:var(--ng-muted);font-size:.92rem;line-height:1.4;transition:color var(--ng-transition),border-color var(--ng-transition)}.ng-toc a:hover{color:var(--ng-ink)}.ng-toc li.is-sub a{padding-left:28px;font-size:.88rem}.ng-toc a.is-active{color:var(--ng-accent);border-left-color:var(--ng-accent);font-weight:600}.ng-tags{display:flex;flex-wrap:wrap;gap:10px;margin:40px 0}.ng-tags a{font-size:.84rem;font-weight:500;padding:.4em 1em;border-radius:100px;background:var(--ng-paper);color:var(--ng-muted);transition:background var(--ng-transition),color var(--ng-transition)}.ng-tags a:hover{background:var(--ng-accent);color:#fff}.ng-share{display:flex;align-items:center;gap:12px}.ng-share span{font-weight:500;font-size:.9rem}.ng-share a{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;border:1px solid var(--ng-border);color:var(--ng-muted);transition:all var(--ng-transition)}.ng-share a:hover{background:var(--ng-gradient);color:#fff;border-color:#fff0;transform:translateY(-3px)}.ng-author-box{display:flex;gap:22px;align-items:flex-start;background:var(--ng-paper);border-radius:var(--ng-radius);padding:30px;margin:48px 0}.ng-author-box img{width:72px;height:72px;border-radius:50%;flex-shrink:0}.ng-author-box h4{margin:0 0 .3em;font-size:1.2rem}.ng-author-box p{color:var(--ng-muted);font-size:.96rem;margin:0}.ng-post-nav{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:40px 0}.ng-post-nav a{display:block;padding:22px 24px;border:1px solid var(--ng-border);border-radius:var(--ng-radius);transition:border-color var(--ng-transition),transform var(--ng-transition)}.ng-post-nav a:hover{border-color:var(--ng-accent);transform:translateY(-3px)}.ng-post-nav small{color:var(--ng-muted-2);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.ng-post-nav strong{display:block;color:var(--ng-ink);font-family:var(--ng-font-display);margin-top:6px}.ng-post-nav .next{text-align:right}.ng-sidebar .widget{margin-bottom:36px}.ng-sidebar .widget-title,.ng-widget-title{font-family:var(--ng-font-display);font-size:1.05rem;font-weight:700;margin-bottom:1rem;display:flex;align-items:center;gap:.5em}.ng-widget-title::before{content:"";width:22px;height:3px;border-radius:3px;background:var(--ng-gradient)}.ng-search{position:relative}.ng-search input[type="search"],.ng-search input[type="text"]{width:100%;padding:.9em 1em .9em 2.8em;border:1px solid var(--ng-border);border-radius:100px;font-family:var(--ng-font-body);font-size:.95rem;background:#fff;transition:border-color var(--ng-transition),box-shadow var(--ng-transition)}.ng-search input:focus{outline:none;border-color:var(--ng-accent);box-shadow:0 0 0 4px var(--ng-accent-soft)}.ng-search__icon{position:absolute;left:1em;top:50%;transform:translateY(-50%);color:var(--ng-muted-2);pointer-events:none}.ng-search button{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:var(--ng-gradient);color:#fff;width:38px;height:38px;border-radius:50%;cursor:pointer;display:grid;place-items:center}.ng-socials{display:flex;flex-direction:column;gap:4px}.ng-socials a{display:flex;align-items:center;gap:12px;padding:.7em .9em;border-radius:var(--ng-radius-sm);color:var(--ng-ink);font-weight:500;transition:background var(--ng-transition),color var(--ng-transition),transform var(--ng-transition)}.ng-socials a:hover{background:var(--ng-paper);color:var(--ng-accent);transform:translateX(4px)}.ng-socials a svg{width:20px;height:20px}.ng-cats{list-style:none;margin:0;padding:0}.ng-cats li{border-bottom:1px solid var(--ng-border)}.ng-cats li:last-child{border-bottom:none}.ng-cats a{display:flex;align-items:center;justify-content:space-between;padding:.7em 0;color:var(--ng-ink);font-weight:500;transition:color var(--ng-transition),padding var(--ng-transition)}.ng-cats a::before{content:"→";color:var(--ng-accent);margin-right:.6em;opacity:0;transform:translateX(-8px);transition:all var(--ng-transition);display:inline-block}.ng-cats a:hover{color:var(--ng-accent);padding-left:4px}.ng-cats a:hover::before{opacity:1;transform:translateX(0)}.ng-cats .count{color:var(--ng-muted-2);font-size:.82rem;font-weight:400}.ng-widget-card{background:var(--ng-ink);color:#cdd3de;border-radius:var(--ng-radius);padding:30px 26px;position:relative;overflow:hidden}.ng-widget-card::after{content:"";position:absolute;inset:auto -30px -40px auto;width:140px;height:140px;background:var(--ng-gradient);filter:blur(40px);opacity:.5;border-radius:50%}.ng-widget-card h3{color:#fff;font-size:1.2rem;margin-bottom:.5em}.ng-widget-card p{font-size:.92rem;color:#9aa3b2;margin-bottom:1.2em}.ng-widget-card .ng-btn{position:relative;z-index:1}.ng-cta{position:relative;background:var(--ng-ink);border-radius:var(--ng-radius-lg);padding:70px 60px;overflow:hidden;text-align:center}.ng-cta::before{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 20% 0%,rgb(52 87 255 / .42),transparent 60%),radial-gradient(600px 300px at 90% 100%,rgb(52 87 255 / .20),transparent 60%)}.ng-cta>*{position:relative;z-index:1}.ng-cta h2{color:#fff;font-size:clamp(1.8rem, 4vw, 2.8rem);margin-bottom:.4em}.ng-cta p{color:#b6bdc9;font-size:1.1rem;max-width:50ch;margin:0 auto 2em}.ng-cta__actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}.ng-footer{background:var(--ng-ink);color:#9aa3b2;padding:72px 0 0}.ng-footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding-bottom:56px}.ng-footer__brand .ng-logo__text{color:#fff}.ng-footer__brand p{margin:1.2em 0 1.6em;max-width:34ch}.ng-footer h4{color:#fff;font-size:1rem;margin-bottom:1.2em}.ng-footer ul{list-style:none;margin:0;padding:0}.ng-footer li{margin-bottom:.7em}.ng-footer a{color:#9aa3b2}.ng-footer a:hover{color:#fff}.ng-footer__socials{display:flex;gap:10px}.ng-footer__socials a{width:42px;height:42px;border-radius:12px;border:1px solid var(--ng-border-dark);display:grid;place-items:center;color:#9aa3b2;transition:all var(--ng-transition)}.ng-footer__socials a:hover{background:var(--ng-gradient);color:#fff;border-color:#fff0;transform:translateY(-3px)}.ng-footer__bottom{border-top:1px solid var(--ng-border-dark);padding:26px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.88rem}.ng-pagination{display:flex;justify-content:center;gap:8px;margin-top:56px}.ng-pagination .page-numbers{display:grid;place-items:center;min-width:44px;height:44px;padding:0 12px;border:1px solid var(--ng-border);border-radius:12px;font-family:var(--ng-font-display);font-weight:600;color:var(--ng-ink);transition:all var(--ng-transition)}.ng-pagination .page-numbers:hover{border-color:var(--ng-accent);color:var(--ng-accent)}.ng-pagination .page-numbers.current{background:var(--ng-gradient);color:#fff;border-color:#fff0}.ng-pagination .dots{border:none}.ng-comments{margin-top:56px}.ng-comments__title{font-size:1.5rem;margin-bottom:1.4em}.ng-comments .comment-list{list-style:none;margin:0;padding:0}.ng-comments .comment-body{padding:22px 0;border-bottom:1px solid var(--ng-border)}.ng-comments .comment-author{font-family:var(--ng-font-display);font-weight:600}.ng-comments .children{list-style:none;margin:0 0 0 40px;padding:0}.ng-comment-form input,.ng-comment-form textarea,.comment-form input,.comment-form textarea{width:100%;padding:.9em 1.1em;border:1px solid var(--ng-border);border-radius:var(--ng-radius-sm);font-family:var(--ng-font-body);font-size:.96rem;margin-bottom:1em}.comment-form input:focus,.comment-form textarea:focus{outline:none;border-color:var(--ng-accent);box-shadow:0 0 0 4px var(--ng-accent-soft)}.comment-form .form-submit input{width:auto;background:var(--ng-gradient);color:#fff;border:none;padding:.9em 2em;border-radius:100px;font-weight:600;cursor:pointer}.ng-empty{text-align:center;padding:80px 20px}.ng-empty__code{font-family:var(--ng-font-display);font-weight:800;font-size:clamp(5rem, 18vw, 11rem);line-height:1;margin-bottom:.1em}.ng-empty h2{font-size:1.8rem;margin-bottom:.4em}.ng-empty p{color:var(--ng-muted);max-width:44ch;margin:0 auto 2em}.ng-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.ng-reveal.is-visible{opacity:1;transform:none}@media (max-width:1024px){.ng-hero__grid{grid-template-columns:1fr;gap:48px}.ng-hero__visual{max-width:480px}.ng-layout{grid-template-columns:1fr}.ng-sidebar{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;align-items:start}.ng-toc{position:static}.ng-footer__grid{grid-template-columns:1fr 1fr;gap:32px}}@media (max-width:860px){.ng-nav,.ng-header__cta{display:none}.ng-burger{display:block}.ng-nav.is-open{display:block;position:absolute;top:84px;left:0;right:0;background:#fff;border-bottom:1px solid var(--ng-border);padding:16px 24px 24px;box-shadow:var(--ng-shadow)}.ng-nav.is-open ul{flex-direction:column;align-items:stretch;gap:2px}.ng-nav.is-open a{padding:.8em 1em}.ng-cards{grid-template-columns:1fr}.ng-section{padding:64px 0}.ng-cta{padding:50px 28px}.ng-post-nav{grid-template-columns:1fr}.ng-post-nav .next{text-align:left}}@media (max-width:560px){body{font-size:16px}.ng-container{padding:0 18px}.ng-hero{padding:70px 0 64px}.ng-hero__stats{flex-wrap:wrap;gap:24px}.ng-sidebar{grid-template-columns:1fr}.ng-footer__grid{grid-template-columns:1fr}.ng-footer__bottom{flex-direction:column;text-align:center}.ng-posts{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.ng-reveal{opacity:1;transform:none}}.ng-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}@media (max-width:900px){.ng-split{grid-template-columns:1fr;gap:40px}}.ng-timeline{position:relative;margin:0;padding:0;list-style:none}.ng-timeline::before{content:"";position:absolute;left:11px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--ng-accent),var(--ng-border))}.ng-timeline li{position:relative;padding:0 0 30px 46px}.ng-timeline li:last-child{padding-bottom:0}.ng-timeline li::before{content:"";position:absolute;left:4px;top:4px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--ng-accent);box-shadow:0 0 0 4px var(--ng-accent-soft)}.ng-timeline .yr{font-family:var(--ng-font-display);font-weight:700;color:var(--ng-accent);font-size:.88rem;letter-spacing:.02em}.ng-timeline h3{font-size:1.15rem;margin:.2em 0 .3em}.ng-timeline p{color:var(--ng-muted);margin:0;font-size:.98rem}.ng-featurelist{list-style:none;margin:0;padding:0;display:grid;gap:14px}.ng-featurelist li{display:flex;gap:12px;align-items:flex-start;font-size:.98rem}.ng-featurelist li svg{flex-shrink:0;color:var(--ng-accent);margin-top:3px}.ng-trust{display:inline-flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--ng-border);border-radius:100px;padding:.7em 1.4em;box-shadow:var(--ng-shadow);font-weight:600;font-size:.98rem}.ng-trust .g{font-family:var(--ng-font-display);font-weight:800;font-size:1.15rem;letter-spacing:-.02em}.ng-area{display:flex;flex-wrap:wrap;gap:10px}.ng-area__pin{display:inline-flex;align-items:center;gap:7px;padding:.55em 1em;border-radius:100px;border:1px solid var(--ng-border-dark);background:rgb(255 255 255 / .03);color:#cdd3de;font-size:.9rem;font-weight:500}.ng-area__pin svg{color:var(--ng-accent-3)}.ng-faq{max-width:820px;margin:0 auto;display:grid;gap:12px}.ng-faq__item{border:1px solid var(--ng-border);border-radius:var(--ng-radius-sm);background:#fff;overflow:hidden;transition:border-color var(--ng-transition)}.ng-faq__item.is-open{border-color:var(--ng-accent)}.ng-faq__q{width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:20px 22px;font-family:var(--ng-font-display);font-weight:600;font-size:1.05rem;color:var(--ng-ink);display:flex;justify-content:space-between;gap:16px;align-items:center}.ng-faq__q .ic{transition:transform var(--ng-transition);color:var(--ng-accent);flex-shrink:0;display:grid;place-items:center}.ng-faq__item.is-open .ng-faq__q .ic{transform:rotate(45deg)}.ng-faq__a{max-height:0;overflow:hidden;transition:max-height .32s ease}.ng-faq__a p{margin:0;padding:0 22px 20px;color:var(--ng-muted);font-size:.98rem}.ng-filterbar{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:44px}.ng-filter{font-family:var(--ng-font-display);font-weight:600;font-size:.92rem;padding:.55em 1.25em;border-radius:100px;border:1.5px solid var(--ng-border);background:#fff;color:var(--ng-ink);cursor:pointer;transition:transform var(--ng-transition),background var(--ng-transition),color var(--ng-transition),border-color var(--ng-transition)}.ng-filter:hover{border-color:var(--ng-accent);color:var(--ng-accent)}.ng-filter.is-active{background:var(--ng-ink);color:#fff;border-color:var(--ng-ink)}.ng-portfolio{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:28px}.ng-project{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--ng-border);border-radius:var(--ng-radius);overflow:hidden;transition:transform var(--ng-transition),box-shadow var(--ng-transition),border-color var(--ng-transition),opacity .35s ease}.ng-project:hover{transform:translateY(-6px);box-shadow:var(--ng-shadow);border-color:#fff0}.ng-project.is-hidden{display:none}.ng-project.is-anim{opacity:0;transform:scale(.97)}.ng-project__media{position:relative;display:block;aspect-ratio:4 / 3;overflow:hidden;background:var(--ng-gradient)}.ng-project__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.ng-project:hover .ng-project__media img{transform:scale(1.06)}.ng-project__initial{display:grid;place-items:center;height:100%;color:rgb(255 255 255 / .92);font-family:var(--ng-font-display);font-weight:800;font-size:3rem}.ng-project__overlay{position:absolute;inset:0;display:flex;align-items:flex-end;padding:20px;background:linear-gradient(to top,rgb(14 17 22 / .82),transparent 62%);opacity:0;transition:opacity var(--ng-transition)}.ng-project:hover .ng-project__overlay{opacity:1}.ng-project__overlay span{color:#fff;font-family:var(--ng-font-display);font-weight:600;font-size:.92rem;display:inline-flex;align-items:center;gap:.5em}.ng-project__body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}.ng-project__cats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.ng-project__cats span{font-size:.72rem;font-weight:600;color:var(--ng-accent);background:var(--ng-accent-soft);padding:.28em .75em;border-radius:100px;text-transform:uppercase;letter-spacing:.04em}.ng-project h3{font-size:1.25rem;margin-bottom:.35em}.ng-project h3 a{color:var(--ng-ink)}.ng-project:hover h3 a{color:var(--ng-accent)}.ng-project p{color:var(--ng-muted);font-size:.94rem;margin:0 0 1em;flex:1}.ng-project__meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.82rem;color:var(--ng-muted-2);border-top:1px solid var(--ng-border);padding-top:14px}.ng-project__meta .yr{font-family:var(--ng-font-display);font-weight:600;color:var(--ng-ink)}.ng-demo-notice{display:flex;align-items:center;gap:10px;background:var(--ng-accent-soft);color:var(--ng-accent-2);border-radius:var(--ng-radius-sm);padding:12px 18px;font-size:.9rem;margin-bottom:28px}.ng-demo-notice svg{flex-shrink:0}.alignleft{float:left;margin:.4em 1.6em 1em 0}.alignright{float:right;margin:.4em 0 1em 1.6em}.aligncenter{margin-left:auto;margin-right:auto}.wp-caption-text,figcaption{font-size:.85rem;color:var(--ng-muted-2);text-align:center;margin-top:.6em}.sticky,.gallery-caption,.bypostauthor{display:block}.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}.wp-block-quote{box-sizing:border-box;overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:right}.wp-block-quote>cite{display:block}