@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular Italic"),local("JetBrains Mono Italic"),url(../_fonts/F0v3UFNNkSF8o6EydjtyBS9QZk5NFsjcsZWz-W16j10-Bp_L2PtidhiMbYzb_qLNZQmx2gdqx3uvv8fxSYxAfpA.woff2) format(woff2);font-display:swap;unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-weight:400;font-style:italic}@font-face{font-family:"JetBrains Mono Fallback: Courier New";src:local("Courier New");size-adjust:99.9837%;ascent-override:102.0166%;descent-override:30.0049%;line-gap-override:0%}@font-face{font-family:"JetBrains Mono Fallback: Roboto Mono";src:local("Roboto Mono");size-adjust:99.9837%;ascent-override:102.0166%;descent-override:30.0049%;line-gap-override:0%}@font-face{font-family:"JetBrains Mono Fallback: Noto Sans Mono";src:local("Noto Sans Mono");size-adjust:100%;ascent-override:102%;descent-override:30%;line-gap-override:0%}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular Italic"),local("JetBrains Mono Italic"),url(../_fonts/UKVJSdtvy1DoKG9D4b2rY5EnFdCWkUUg_Tk4LnF5HEI-m7Qjmpy7C_s6_2ueR3b13FuhqhfqTzOI3VPXjIBZ8kQ.woff2) format(woff2);font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-weight:400;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular Italic"),local("JetBrains Mono Italic"),url(../_fonts/3zHJNmqdAFbSygXFh60olvDMc9mZf_RpJHm5hhtqFXI-PBGlnsMtfLn7RnCxO5_jJe61l26CMDVuNLtfG9gtTlE.woff2) format(woff2);font-display:swap;unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-weight:400;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular Italic"),local("JetBrains Mono Italic"),url(../_fonts/l87PW7gYrQBvFuIlBDBBpuumCWPK0EySROFPoL9gSIo-hY8Q0hKlLTUrw_MzSSX1eDhdKj3f0XpPunu_3tMuPl8.woff2) format(woff2);font-display:swap;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-weight:400;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular Italic"),local("JetBrains Mono Italic"),url(../_fonts/ZJX0G_frSa7aVOdboU5OqQi2dxDmQqfSTRdh6uJyMf4-Id0ZPbT1Vtaz_Vo_lhXBRMzAd3Nz9rSQGCIEBTMAtXM.woff2) format(woff2);font-display:swap;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-weight:400;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular Italic"),local("JetBrains Mono Italic"),url(../_fonts/7uOd3iVpdDqNvPdr7Ucjkz5YxLn-p5sROroyjNDR-H0-Uh8yU4TKTd4T8rG_0BkgUEJ6_h6rC6xbOCN0ToQJrPY.woff2) format(woff2);font-display:swap;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-weight:400;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Medium Italic"),url(../_fonts/F0v3UFNNkSF8o6EydjtyBS9QZk5NFsjcsZWz-W16j10-Bp_L2PtidhiMbYzb_qLNZQmx2gdqx3uvv8fxSYxAfpA.woff2) format(woff2);font-display:swap;unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-weight:500;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Medium Italic"),url(../_fonts/UKVJSdtvy1DoKG9D4b2rY5EnFdCWkUUg_Tk4LnF5HEI-m7Qjmpy7C_s6_2ueR3b13FuhqhfqTzOI3VPXjIBZ8kQ.woff2) format(woff2);font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-weight:500;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Medium Italic"),url(../_fonts/3zHJNmqdAFbSygXFh60olvDMc9mZf_RpJHm5hhtqFXI-PBGlnsMtfLn7RnCxO5_jJe61l26CMDVuNLtfG9gtTlE.woff2) format(woff2);font-display:swap;unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-weight:500;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Medium Italic"),url(../_fonts/l87PW7gYrQBvFuIlBDBBpuumCWPK0EySROFPoL9gSIo-hY8Q0hKlLTUrw_MzSSX1eDhdKj3f0XpPunu_3tMuPl8.woff2) format(woff2);font-display:swap;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-weight:500;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Medium Italic"),url(../_fonts/ZJX0G_frSa7aVOdboU5OqQi2dxDmQqfSTRdh6uJyMf4-Id0ZPbT1Vtaz_Vo_lhXBRMzAd3Nz9rSQGCIEBTMAtXM.woff2) format(woff2);font-display:swap;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-weight:500;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Medium Italic"),url(../_fonts/7uOd3iVpdDqNvPdr7Ucjkz5YxLn-p5sROroyjNDR-H0-Uh8yU4TKTd4T8rG_0BkgUEJ6_h6rC6xbOCN0ToQJrPY.woff2) format(woff2);font-display:swap;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-weight:500;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono SemiBold Italic"),url(../_fonts/F0v3UFNNkSF8o6EydjtyBS9QZk5NFsjcsZWz-W16j10-Bp_L2PtidhiMbYzb_qLNZQmx2gdqx3uvv8fxSYxAfpA.woff2) format(woff2);font-display:swap;unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-weight:600;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono SemiBold Italic"),url(../_fonts/UKVJSdtvy1DoKG9D4b2rY5EnFdCWkUUg_Tk4LnF5HEI-m7Qjmpy7C_s6_2ueR3b13FuhqhfqTzOI3VPXjIBZ8kQ.woff2) format(woff2);font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-weight:600;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono SemiBold Italic"),url(../_fonts/3zHJNmqdAFbSygXFh60olvDMc9mZf_RpJHm5hhtqFXI-PBGlnsMtfLn7RnCxO5_jJe61l26CMDVuNLtfG9gtTlE.woff2) format(woff2);font-display:swap;unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-weight:600;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono SemiBold Italic"),url(../_fonts/l87PW7gYrQBvFuIlBDBBpuumCWPK0EySROFPoL9gSIo-hY8Q0hKlLTUrw_MzSSX1eDhdKj3f0XpPunu_3tMuPl8.woff2) format(woff2);font-display:swap;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-weight:600;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono SemiBold Italic"),url(../_fonts/ZJX0G_frSa7aVOdboU5OqQi2dxDmQqfSTRdh6uJyMf4-Id0ZPbT1Vtaz_Vo_lhXBRMzAd3Nz9rSQGCIEBTMAtXM.woff2) format(woff2);font-display:swap;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-weight:600;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono SemiBold Italic"),url(../_fonts/7uOd3iVpdDqNvPdr7Ucjkz5YxLn-p5sROroyjNDR-H0-Uh8yU4TKTd4T8rG_0BkgUEJ6_h6rC6xbOCN0ToQJrPY.woff2) format(woff2);font-display:swap;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-weight:600;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular"),local("JetBrains Mono"),url(../_fonts/oNa6whS7MVbn65pKPXeJ2cWQibvBosy3ZAT0Dohs8I8-FwVnDt7T5Dh2owO1U2jDMuN8ln799r58Pl3hJjRV514.woff2) format(woff2);font-display:swap;unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-weight:400;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular"),local("JetBrains Mono"),url(../_fonts/I9T0LQ9YgnidA3gv2WqRNnupdjurYMRHUSozaf8YKS8-uzL4HEVJcWv7MNxyvQlTwCX1yJQUNRD9baZLI82Tb3A.woff2) format(woff2);font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-weight:400;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular"),local("JetBrains Mono"),url(../_fonts/1A__tf0ZS0Popmdoy0kDZjC9cmK73U4dP6MIlsd_mVE-zPz52wX6aUUJP2ax_uXZbgJ0eM8_rL4hFCIvGE44Ffk.woff2) format(woff2);font-display:swap;unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-weight:400;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular"),local("JetBrains Mono"),url(../_fonts/M9APVqWeTzvVW4qPYRJCmF1rcePZ5S7SBngry5FFRPE-DUaVl8X_g2YsuAyoLBkA9NbbiOfIoAL_D57NjKMsqZ8.woff2) format(woff2);font-display:swap;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-weight:400;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular"),local("JetBrains Mono"),url(../_fonts/d_9_xcsozg-tYicFoS9kdd_kSP9qO5F-tsV1HOYOrHE-QGwxIgoAZb0u7XwlqFE30tZQnYSj3KurQRhAuEDN6_4.woff2) format(woff2);font-display:swap;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-weight:400;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular"),local("JetBrains Mono"),url(../_fonts/E8cfqMw6EhdWSEj5PXdbh2J7u4m8j202JWUh3VNzOC8-e0c1w2KmhUNIOTE4pe8Jo3c0h2HmZyUQhs5p5_aOUl4.woff2) format(woff2);font-display:swap;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-weight:400;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Medium"),url(../_fonts/oNa6whS7MVbn65pKPXeJ2cWQibvBosy3ZAT0Dohs8I8-FwVnDt7T5Dh2owO1U2jDMuN8ln799r58Pl3hJjRV514.woff2) format(woff2);font-display:swap;unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-weight:500;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Medium"),url(../_fonts/I9T0LQ9YgnidA3gv2WqRNnupdjurYMRHUSozaf8YKS8-uzL4HEVJcWv7MNxyvQlTwCX1yJQUNRD9baZLI82Tb3A.woff2) format(woff2);font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-weight:500;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Medium"),url(../_fonts/1A__tf0ZS0Popmdoy0kDZjC9cmK73U4dP6MIlsd_mVE-zPz52wX6aUUJP2ax_uXZbgJ0eM8_rL4hFCIvGE44Ffk.woff2) format(woff2);font-display:swap;unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-weight:500;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Medium"),url(../_fonts/M9APVqWeTzvVW4qPYRJCmF1rcePZ5S7SBngry5FFRPE-DUaVl8X_g2YsuAyoLBkA9NbbiOfIoAL_D57NjKMsqZ8.woff2) format(woff2);font-display:swap;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-weight:500;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Medium"),url(../_fonts/d_9_xcsozg-tYicFoS9kdd_kSP9qO5F-tsV1HOYOrHE-QGwxIgoAZb0u7XwlqFE30tZQnYSj3KurQRhAuEDN6_4.woff2) format(woff2);font-display:swap;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-weight:500;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Medium"),url(../_fonts/E8cfqMw6EhdWSEj5PXdbh2J7u4m8j202JWUh3VNzOC8-e0c1w2KmhUNIOTE4pe8Jo3c0h2HmZyUQhs5p5_aOUl4.woff2) format(woff2);font-display:swap;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-weight:500;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono SemiBold"),url(../_fonts/oNa6whS7MVbn65pKPXeJ2cWQibvBosy3ZAT0Dohs8I8-FwVnDt7T5Dh2owO1U2jDMuN8ln799r58Pl3hJjRV514.woff2) format(woff2);font-display:swap;unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-weight:600;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono SemiBold"),url(../_fonts/I9T0LQ9YgnidA3gv2WqRNnupdjurYMRHUSozaf8YKS8-uzL4HEVJcWv7MNxyvQlTwCX1yJQUNRD9baZLI82Tb3A.woff2) format(woff2);font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-weight:600;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono SemiBold"),url(../_fonts/1A__tf0ZS0Popmdoy0kDZjC9cmK73U4dP6MIlsd_mVE-zPz52wX6aUUJP2ax_uXZbgJ0eM8_rL4hFCIvGE44Ffk.woff2) format(woff2);font-display:swap;unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-weight:600;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono SemiBold"),url(../_fonts/M9APVqWeTzvVW4qPYRJCmF1rcePZ5S7SBngry5FFRPE-DUaVl8X_g2YsuAyoLBkA9NbbiOfIoAL_D57NjKMsqZ8.woff2) format(woff2);font-display:swap;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-weight:600;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono SemiBold"),url(../_fonts/d_9_xcsozg-tYicFoS9kdd_kSP9qO5F-tsV1HOYOrHE-QGwxIgoAZb0u7XwlqFE30tZQnYSj3KurQRhAuEDN6_4.woff2) format(woff2);font-display:swap;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-weight:600;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono SemiBold"),url(../_fonts/E8cfqMw6EhdWSEj5PXdbh2J7u4m8j202JWUh3VNzOC8-e0c1w2KmhUNIOTE4pe8Jo3c0h2HmZyUQhs5p5_aOUl4.woff2) format(woff2);font-display:swap;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-weight:600;font-style:normal}@font-face{font-family:Onest;src:local("Onest Light"),url(../_fonts/wzzz2shnfAzkL93HU8t8eCO8wlLYVZB6H2l1d84QjUA-p1YhII35c_fcLYzqEVhBLuxG56IaQifEiQ3qzaLatew.woff2) format(woff2);font-display:swap;unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-weight:300;font-style:normal}@font-face{font-family:"Onest Fallback: BlinkMacSystemFont";src:local("BlinkMacSystemFont");size-adjust:112.604%;ascent-override:86.1426%;descent-override:27.0861%;line-gap-override:0%}@font-face{font-family:"Onest Fallback: Segoe UI";src:local("Segoe UI");size-adjust:105.7833%;ascent-override:91.6969%;descent-override:28.8325%;line-gap-override:0%}@font-face{font-family:"Onest Fallback: Helvetica Neue";src:local("Helvetica Neue");size-adjust:104.2222%;ascent-override:93.0704%;descent-override:29.2644%;line-gap-override:0%}@font-face{font-family:"Onest Fallback: Arial";src:local("Arial");size-adjust:105.2039%;ascent-override:92.2019%;descent-override:28.9913%;line-gap-override:0%}@font-face{font-family:"Onest Fallback: Noto Sans";src:local("Noto Sans");size-adjust:98.9451%;ascent-override:98.0341%;descent-override:30.8252%;line-gap-override:0%}@font-face{font-family:Onest;src:local("Onest Light"),url(../_fonts/wfxdz7B7lh2OdF7FUIyrFUnW307YbaWH-rgkxTa3CnE-pr_GskdAc05AXTuF1tR6bLkUOU0o4lQBlwp2-c1AeHs.woff2) format(woff2);font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-weight:300;font-style:normal}@font-face{font-family:Onest;src:local("Onest Light"),url(../_fonts/qa0f3KUz4qHzX04FBGtySIpNngLQoG5kh2dKodSulx0-PqjQgaCEBwcGAsrUdkfcamRxc8JKn_Sd05Y5_ZXHuMA.woff2) format(woff2);font-display:swap;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-weight:300;font-style:normal}@font-face{font-family:Onest;src:local("Onest Light"),url(../_fonts/9pYDlQNNS1dRHcDSX9nD2Jt_rnAj0_U969CrAJccTT8-4wxJgC6c6Fylixo8HsrTbFVy97CZcHbKZoZu7qh8vZc.woff2) format(woff2);font-display:swap;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-weight:300;font-style:normal}@font-face{font-family:Onest;src:local("Onest Regular"),local("Onest"),url(../_fonts/wzzz2shnfAzkL93HU8t8eCO8wlLYVZB6H2l1d84QjUA-p1YhII35c_fcLYzqEVhBLuxG56IaQifEiQ3qzaLatew.woff2) format(woff2);font-display:swap;unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-weight:400;font-style:normal}@font-face{font-family:Onest;src:local("Onest Regular"),local("Onest"),url(../_fonts/wfxdz7B7lh2OdF7FUIyrFUnW307YbaWH-rgkxTa3CnE-pr_GskdAc05AXTuF1tR6bLkUOU0o4lQBlwp2-c1AeHs.woff2) format(woff2);font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-weight:400;font-style:normal}@font-face{font-family:Onest;src:local("Onest Regular"),local("Onest"),url(../_fonts/qa0f3KUz4qHzX04FBGtySIpNngLQoG5kh2dKodSulx0-PqjQgaCEBwcGAsrUdkfcamRxc8JKn_Sd05Y5_ZXHuMA.woff2) format(woff2);font-display:swap;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-weight:400;font-style:normal}@font-face{font-family:Onest;src:local("Onest Regular"),local("Onest"),url(../_fonts/9pYDlQNNS1dRHcDSX9nD2Jt_rnAj0_U969CrAJccTT8-4wxJgC6c6Fylixo8HsrTbFVy97CZcHbKZoZu7qh8vZc.woff2) format(woff2);font-display:swap;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-weight:400;font-style:normal}@font-face{font-family:Onest;src:local("Onest Medium"),url(../_fonts/wzzz2shnfAzkL93HU8t8eCO8wlLYVZB6H2l1d84QjUA-p1YhII35c_fcLYzqEVhBLuxG56IaQifEiQ3qzaLatew.woff2) format(woff2);font-display:swap;unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-weight:500;font-style:normal}@font-face{font-family:Onest;src:local("Onest Medium"),url(../_fonts/wfxdz7B7lh2OdF7FUIyrFUnW307YbaWH-rgkxTa3CnE-pr_GskdAc05AXTuF1tR6bLkUOU0o4lQBlwp2-c1AeHs.woff2) format(woff2);font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-weight:500;font-style:normal}@font-face{font-family:Onest;src:local("Onest Medium"),url(../_fonts/qa0f3KUz4qHzX04FBGtySIpNngLQoG5kh2dKodSulx0-PqjQgaCEBwcGAsrUdkfcamRxc8JKn_Sd05Y5_ZXHuMA.woff2) format(woff2);font-display:swap;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-weight:500;font-style:normal}@font-face{font-family:Onest;src:local("Onest Medium"),url(../_fonts/9pYDlQNNS1dRHcDSX9nD2Jt_rnAj0_U969CrAJccTT8-4wxJgC6c6Fylixo8HsrTbFVy97CZcHbKZoZu7qh8vZc.woff2) format(woff2);font-display:swap;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-weight:500;font-style:normal}@font-face{font-family:Onest;src:local("Onest SemiBold"),url(../_fonts/wzzz2shnfAzkL93HU8t8eCO8wlLYVZB6H2l1d84QjUA-p1YhII35c_fcLYzqEVhBLuxG56IaQifEiQ3qzaLatew.woff2) format(woff2);font-display:swap;unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-weight:600;font-style:normal}@font-face{font-family:Onest;src:local("Onest SemiBold"),url(../_fonts/wfxdz7B7lh2OdF7FUIyrFUnW307YbaWH-rgkxTa3CnE-pr_GskdAc05AXTuF1tR6bLkUOU0o4lQBlwp2-c1AeHs.woff2) format(woff2);font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-weight:600;font-style:normal}@font-face{font-family:Onest;src:local("Onest SemiBold"),url(../_fonts/qa0f3KUz4qHzX04FBGtySIpNngLQoG5kh2dKodSulx0-PqjQgaCEBwcGAsrUdkfcamRxc8JKn_Sd05Y5_ZXHuMA.woff2) format(woff2);font-display:swap;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-weight:600;font-style:normal}@font-face{font-family:Onest;src:local("Onest SemiBold"),url(../_fonts/9pYDlQNNS1dRHcDSX9nD2Jt_rnAj0_U969CrAJccTT8-4wxJgC6c6Fylixo8HsrTbFVy97CZcHbKZoZu7qh8vZc.woff2) format(woff2);font-display:swap;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-weight:600;font-style:normal}@font-face{font-family:Onest;src:local("Onest Bold"),url(../_fonts/wzzz2shnfAzkL93HU8t8eCO8wlLYVZB6H2l1d84QjUA-p1YhII35c_fcLYzqEVhBLuxG56IaQifEiQ3qzaLatew.woff2) format(woff2);font-display:swap;unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-weight:700;font-style:normal}@font-face{font-family:Onest;src:local("Onest Bold"),url(../_fonts/wfxdz7B7lh2OdF7FUIyrFUnW307YbaWH-rgkxTa3CnE-pr_GskdAc05AXTuF1tR6bLkUOU0o4lQBlwp2-c1AeHs.woff2) format(woff2);font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-weight:700;font-style:normal}@font-face{font-family:Onest;src:local("Onest Bold"),url(../_fonts/qa0f3KUz4qHzX04FBGtySIpNngLQoG5kh2dKodSulx0-PqjQgaCEBwcGAsrUdkfcamRxc8JKn_Sd05Y5_ZXHuMA.woff2) format(woff2);font-display:swap;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-weight:700;font-style:normal}@font-face{font-family:Onest;src:local("Onest Bold"),url(../_fonts/9pYDlQNNS1dRHcDSX9nD2Jt_rnAj0_U969CrAJccTT8-4wxJgC6c6Fylixo8HsrTbFVy97CZcHbKZoZu7qh8vZc.woff2) format(woff2);font-display:swap;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-weight:700;font-style:normal}:root{--color-bg:#0a0a0b;--color-bg-2:#0f0f11;--color-surface:#131316;--color-surface-2:#17171b;--color-line:#1e1e22;--color-line-2:#2a2a30;--color-dim:#3f3f46;--color-muted:#6b6b72;--color-text-2:#a8a8b0;--color-text:#f4f4f5;--color-blue:#3d7bff;--color-blue-2:#5e94ff;--color-blue-dim:rgba(61,123,255,.12);--color-amber:#f5a524;--color-green:#22c55e;--color-red:#ef4444;--font-sans:"Onest", "Onest Fallback: BlinkMacSystemFont", "Onest Fallback: Segoe UI", "Onest Fallback: Helvetica Neue", "Onest Fallback: Arial", "Onest Fallback: Noto Sans",ui-sans-serif,system-ui,sans-serif;--font-mono:"JetBrains Mono", "JetBrains Mono Fallback: Courier New", "JetBrains Mono Fallback: Roboto Mono", "JetBrains Mono Fallback: Noto Sans Mono",ui-monospace,"SF Mono",Menlo,monospace;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--s-10:128px;--r-1:4px;--r-2:8px;--r-3:14px;--r-full:999px;--container-max:1240px;--gutter:clamp(20px,5vw,56px);--ease:cubic-bezier(.2,.7,.2,1);--dur-fast:.12s;--dur:.18s;--dur-slow:.28s}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}:where(#projects,#stack,#journal,#about,#contact){scroll-margin-top:88px}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:23px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv11"}::-moz-selection{background:var(--color-blue);color:#fff}::selection{background:var(--color-blue);color:#fff}img,svg{display:block;max-width:100%}a,button{color:inherit}button{font:inherit;cursor:pointer;background:none;border:0;padding:0}.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter)}.mono{font-family:var(--font-mono);font-feature-settings:"zero","ss01"}.has-js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--reveal-delay,0s);will-change:opacity,transform}.has-js .reveal.reveal-in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.has-js .reveal{opacity:1;transform:none;transition:none}}.strip[data-v-a4399347]{height:34px;border-bottom:1px solid var(--color-line);overflow:hidden;transition:height .22s var(--ease),opacity var(--dur) var(--ease),border-bottom-color .22s var(--ease)}.strip[data-v-a4399347],.strip__inner[data-v-a4399347]{display:flex;align-items:center}.strip__inner[data-v-a4399347]{justify-content:space-between;width:100%}.strip__group[data-v-a4399347]{display:flex;align-items:center;gap:var(--s-5)}.strip__item[data-v-a4399347]{font-family:var(--font-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);display:inline-flex;align-items:center;gap:var(--s-2);white-space:nowrap}.strip__item b[data-v-a4399347]{color:var(--color-text-2);font-weight:500}.strip__clock[data-v-a4399347]{color:var(--color-text);font-variant-numeric:tabular-nums}.strip__divider[data-v-a4399347]{width:1px;height:10px;background:var(--color-line-2)}@media(prefers-reduced-motion:reduce){.strip[data-v-a4399347]{transition:none}}.nav[data-v-b10ac8e8]{display:flex;gap:var(--s-1);flex:1;justify-content:center}.nav__link[data-v-b10ac8e8]{display:inline-flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-2);font-size:15px;color:var(--color-text-2);text-decoration:none;letter-spacing:-.005em;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.nav__link[data-v-b10ac8e8]:hover{background:var(--color-surface)}.nav__link.is-active[data-v-b10ac8e8],.nav__link[data-v-b10ac8e8]:hover{color:var(--color-text)}.nav__link.is-active[data-v-b10ac8e8]:before{content:"";width:4px;height:4px;border-radius:50%;background:var(--color-blue);box-shadow:0 0 0 3px #3d7bff2e}.nav__num[data-v-b10ac8e8]{font-size:15px;color:var(--color-muted);letter-spacing:.06em;font-variant-numeric:tabular-nums}.nav__link.is-active .nav__num[data-v-b10ac8e8]{color:var(--color-text-2)}.main[data-v-8ae77198]{display:flex;justify-content:space-between;height:72px;gap:var(--s-7);transition:height .22s var(--ease)}.brand[data-v-8ae77198],.main[data-v-8ae77198]{align-items:center}.brand[data-v-8ae77198]{display:inline-flex;gap:var(--s-3);color:var(--color-text);text-decoration:none}.brand__word[data-v-8ae77198]{font-size:24px;font-weight:500;letter-spacing:-.03em;line-height:1}.brand__dev[data-v-8ae77198]{color:var(--color-blue)}.util[data-v-8ae77198]{display:flex;gap:var(--s-5)}.cta[data-v-8ae77198],.util[data-v-8ae77198]{align-items:center}.cta[data-v-8ae77198]{display:inline-flex;gap:var(--s-2);height:38px;padding:0 var(--s-4);border-radius:var(--r-2);background:var(--color-blue);color:#fff;font-size:17px;font-weight:500;letter-spacing:-.005em;text-decoration:none;border:1px solid transparent;transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease);position:relative}.cta[data-v-8ae77198]:before{content:"";position:absolute;inset:-4px}.cta[data-v-8ae77198]:hover{background:var(--color-blue-2);box-shadow:0 0 0 4px #3d7bff2e}.cta__arrow[data-v-8ae77198]{transition:transform var(--dur) var(--ease)}.cta:hover .cta__arrow[data-v-8ae77198]{transform:translate(3px)}.menu-btn[data-v-8ae77198]{display:none;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r-2);border:1px solid var(--color-line-2);color:var(--color-text);position:relative}.menu-btn[data-v-8ae77198]:before{content:"";position:absolute;inset:-4px}@media(prefers-reduced-motion:reduce){.cta[data-v-8ae77198],.cta__arrow[data-v-8ae77198],.main[data-v-8ae77198]{transition:none}.cta:hover .cta__arrow[data-v-8ae77198]{transform:none}}.drawer[data-v-24afed6e]{display:flex;flex-direction:column;height:100%;background:var(--color-bg);color:var(--color-text);padding:var(--s-5)}.drawer__head[data-v-24afed6e]{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--s-5);border-bottom:1px solid var(--color-line)}.drawer__title[data-v-24afed6e]{font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted)}.drawer__close[data-v-24afed6e]{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-line-2);border-radius:var(--r-2);color:var(--color-text)}.drawer__nav[data-v-24afed6e]{display:flex;flex-direction:column;padding:var(--s-5) 0;gap:var(--s-2)}.drawer__nav-link[data-v-24afed6e]{display:inline-flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-2);color:var(--color-text);text-decoration:none;font-size:24px;letter-spacing:-.01em;border-radius:var(--r-2)}.drawer__nav-link[data-v-24afed6e]:hover{background:var(--color-surface)}.drawer__num[data-v-24afed6e]{font-size:15px;color:var(--color-muted);letter-spacing:.06em}.drawer__meta[data-v-24afed6e]{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-5) 0;border-top:1px solid var(--color-line)}.drawer__item[data-v-24afed6e]{font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);display:inline-flex;align-items:center;gap:var(--s-2)}.drawer__item b[data-v-24afed6e]{color:var(--color-text-2);font-weight:500}.drawer__cta[data-v-24afed6e]{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);height:44px;border-radius:var(--r-2);background:var(--color-blue);color:#fff;text-decoration:none;font-weight:500;font-size:19px;letter-spacing:-.005em}.site-header[data-v-007cd445]{position:sticky;top:0;z-index:50;background:#0a0a0bb8;-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--color-line);transition:box-shadow var(--dur) var(--ease)}@supports not (backdrop-filter:blur(1px)){.site-header[data-v-007cd445]{background:var(--color-bg)}}.site-header.is-scrolled[data-v-007cd445]{box-shadow:0 1px 0 var(--color-line),0 8px 24px -16px #000c}.site-header.is-scrolled[data-v-007cd445] .strip{height:0;opacity:0;pointer-events:none;border-bottom-color:transparent}.site-header.is-scrolled[data-v-007cd445] .main{height:60px}@media(max-width:767px){.site-header[data-v-007cd445] .strip{display:none}.site-header[data-v-007cd445] .main{height:60px;gap:var(--s-3)}.site-header[data-v-007cd445] .container{padding:0 20px}.site-header[data-v-007cd445] .nav{display:none}.site-header[data-v-007cd445] .menu-btn{display:inline-flex}}@media(prefers-reduced-motion:reduce){.site-header[data-v-007cd445],.site-header[data-v-007cd445] .main,.site-header[data-v-007cd445] .strip{transition:none}}.gallery[data-v-68afce85]{position:relative}.gallery__viewport[data-v-68afce85]{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;border:1px solid var(--color-line-2);border-radius:var(--r-3);background:var(--color-surface);scrollbar-width:none}.gallery__viewport[data-v-68afce85]::-webkit-scrollbar{display:none}.gallery__slide[data-v-68afce85]{flex:0 0 100%;margin:0;scroll-snap-align:start}.gallery__zoom[data-v-68afce85]{cursor:zoom-in}.gallery__img[data-v-68afce85],.gallery__zoom[data-v-68afce85]{display:block;width:100%;border-radius:inherit}.gallery__img[data-v-68afce85]{height:auto}.gallery__nav[data-v-68afce85]{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:var(--r-full);display:inline-flex;align-items:center;justify-content:center;background:#0a0a0bb8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--color-line-2);color:var(--color-text);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.gallery__nav[data-v-68afce85]:hover{background:var(--color-surface-2);border-color:var(--color-blue)}.gallery__nav--prev[data-v-68afce85]{left:var(--s-3)}.gallery__nav--next[data-v-68afce85]{right:var(--s-3)}.gallery__dots[data-v-68afce85]{display:flex;justify-content:center;gap:var(--s-2);margin-top:var(--s-3)}.gallery__dot[data-v-68afce85]{width:7px;height:7px;border-radius:var(--r-full);background:var(--color-line-2);transition:background var(--dur) var(--ease),width var(--dur) var(--ease)}.gallery__dot[data-v-68afce85]:hover{background:var(--color-muted)}.gallery__dot.is-active[data-v-68afce85]{background:var(--color-blue);width:18px}.lightbox[data-v-68afce85]{position:fixed;inset:0;z-index:100;display:flex;align-items:stretch;background:#050506e6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:lightbox-in-68afce85 var(--dur) var(--ease)}@keyframes lightbox-in-68afce85{0%{opacity:0}to{opacity:1}}.lightbox__stage[data-v-68afce85]{position:relative;flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:var(--s-7)}.lightbox__img[data-v-68afce85]{max-width:100%;max-height:86vh;width:auto;height:auto;border-radius:var(--r-2);box-shadow:0 24px 80px -24px #000000e6}.lightbox__panel[data-v-68afce85]{flex:0 0 360px;max-width:40vw;display:flex;flex-direction:column;gap:var(--s-4);padding:var(--s-6);background:var(--color-bg-2);border-left:1px solid var(--color-line);overflow-y:auto}.lightbox__panel-head[data-v-68afce85]{display:flex;align-items:center;justify-content:space-between}.lightbox__title[data-v-68afce85]{margin:0;font-size:29px;font-weight:500;letter-spacing:-.02em;line-height:1.15;color:var(--color-text)}.lightbox__desc[data-v-68afce85]{margin:0;font-size:20px;line-height:1.65;color:var(--color-text-2)}.lightbox__desc[data-v-68afce85] a{color:var(--color-blue);text-decoration:underline;text-underline-offset:2px}.lightbox__desc[data-v-68afce85] strong{color:var(--color-text);font-weight:600}.lightbox__desc[data-v-68afce85] code{font-family:var(--font-mono);font-size:.9em;background:var(--color-surface);padding:1px 5px;border-radius:var(--r-1)}.lightbox__close[data-v-68afce85]{width:40px;height:40px;border-radius:var(--r-full);display:inline-flex;align-items:center;justify-content:center;background:var(--color-surface);border:1px solid var(--color-line-2);color:var(--color-text);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.lightbox__close[data-v-68afce85]:hover{background:var(--color-surface-2);border-color:var(--color-blue)}.lightbox__counter[data-v-68afce85]{font-size:16px;letter-spacing:.1em;color:var(--color-muted);font-variant-numeric:tabular-nums}.lightbox__nav[data-v-68afce85]{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:var(--r-full);display:inline-flex;align-items:center;justify-content:center;background:var(--color-surface);border:1px solid var(--color-line-2);color:var(--color-text);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.lightbox__nav[data-v-68afce85]:hover{background:var(--color-surface-2);border-color:var(--color-blue)}.lightbox__nav--prev[data-v-68afce85]{left:var(--s-5)}.lightbox__nav--next[data-v-68afce85]{right:var(--s-5)}@media(max-width:767px){.lightbox[data-v-68afce85]{flex-direction:column}.lightbox__stage[data-v-68afce85]{padding:var(--s-4);flex:1 1 auto}.lightbox__img[data-v-68afce85]{max-height:60vh}.lightbox__panel[data-v-68afce85]{flex:0 0 auto;max-width:100%;border-left:0;border-top:1px solid var(--color-line);padding:var(--s-5)}.lightbox__nav[data-v-68afce85]{width:40px;height:40px}.lightbox__nav--prev[data-v-68afce85]{left:var(--s-2)}.lightbox__nav--next[data-v-68afce85]{right:var(--s-2)}}@media(prefers-reduced-motion:reduce){.gallery__viewport[data-v-68afce85]{scroll-behavior:auto}.gallery__dot[data-v-68afce85],.gallery__nav[data-v-68afce85],.lightbox__close[data-v-68afce85],.lightbox__nav[data-v-68afce85]{transition:none}.lightbox[data-v-68afce85]{animation:none}}.tech-icon[data-v-075fde9d]{display:inline-block;width:1em;height:1em;flex:none;background-color:currentColor;-webkit-mask:var(--icon) center /contain no-repeat;mask:var(--icon) center /contain no-repeat}.entry[data-v-56cddcd6]{display:grid;grid-template-columns:64px 1fr;gap:var(--s-5);padding:var(--s-7) 0;color:var(--color-text)}.entry.is-wip[data-v-56cddcd6]{color:var(--color-muted)}.entry__num[data-v-56cddcd6]{font-size:17px;color:var(--color-dim);letter-spacing:.08em;font-variant-numeric:tabular-nums;padding-top:10px}.entry__body[data-v-56cddcd6]{flex-direction:column;max-width:76ch}.entry__body[data-v-56cddcd6],.entry__head[data-v-56cddcd6]{display:flex;gap:var(--s-4)}.entry__head[data-v-56cddcd6]{align-items:center}.entry__name[data-v-56cddcd6]{margin:0;font-size:37px;font-weight:500;letter-spacing:-.03em;line-height:1.05}.entry.is-wip .entry__name[data-v-56cddcd6]{color:var(--color-text-2)}.entry__status[data-v-56cddcd6]{margin-left:auto;display:inline-flex;align-items:center;gap:var(--s-2);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);white-space:nowrap}.entry__dot[data-v-56cddcd6]{width:6px;height:6px;border-radius:50%;background:var(--color-dim)}.entry__status[data-status=live][data-v-56cddcd6]{color:var(--color-text-2)}.entry__status[data-status=live] .entry__dot[data-v-56cddcd6]{background:var(--color-green);box-shadow:0 0 0 4px #22c55e1f}.entry__status[data-status=wip] .entry__dot[data-v-56cddcd6]{background:var(--color-amber)}.entry__summary[data-v-56cddcd6]{margin:0;font-size:21px;line-height:1.6;color:var(--color-text-2)}.entry__summary--muted[data-v-56cddcd6]{color:var(--color-dim)}.entry__stack[data-v-56cddcd6]{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2)}.entry__chip[data-v-56cddcd6]{display:inline-flex;align-items:center;gap:6px;font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-2);background:var(--color-surface);border:1px solid var(--color-line-2);border-radius:var(--r-1);padding:4px var(--s-2)}.entry__chip-icon[data-v-56cddcd6]{font-size:17px;color:var(--color-muted)}.entry__gallery[data-v-56cddcd6]{margin-top:var(--s-2)}@media(max-width:767px){.entry[data-v-56cddcd6]{grid-template-columns:1fr;gap:var(--s-3);padding:var(--s-6) 0}.entry__num[data-v-56cddcd6]{padding-top:0}.entry__name[data-v-56cddcd6]{font-size:29px}.entry__head[data-v-56cddcd6]{flex-wrap:wrap}}.projects[data-v-2d6988be]{padding:var(--s-10) 0;position:relative;background:var(--color-surface)}.projects__head[data-v-2d6988be]{max-width:64ch;margin-bottom:var(--s-7)}.projects__eyebrow[data-v-2d6988be]{display:inline-block;font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-blue);margin-bottom:var(--s-4)}.projects__title[data-v-2d6988be]{margin:0 0 var(--s-4);font-size:53px;font-weight:500;letter-spacing:-.04em;line-height:1.05;color:var(--color-text)}.projects__lede[data-v-2d6988be]{margin:0;font-size:23px;line-height:1.6;color:var(--color-text-2)}.projects__list[data-v-2d6988be]{display:flex;flex-direction:column}@media(max-width:767px){.projects[data-v-2d6988be]{padding:var(--s-9) 0}.projects__title[data-v-2d6988be]{font-size:40px}}.stack[data-v-d30df6fc]{padding:var(--s-10) 0}.stack__head[data-v-d30df6fc]{max-width:68ch;margin-bottom:var(--s-8)}.stack__eyebrow[data-v-d30df6fc]{display:inline-block;font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-blue);margin-bottom:var(--s-4)}.stack__title[data-v-d30df6fc]{margin:0 0 var(--s-5);font-size:53px;font-weight:500;letter-spacing:-.04em;line-height:1.1;color:var(--color-text)}.stack__lede[data-v-d30df6fc]{display:flex;flex-direction:column;gap:var(--s-4)}.stack__lede p[data-v-d30df6fc]{margin:0;font-size:23px;line-height:1.65;color:var(--color-text-2)}.stack__groups[data-v-d30df6fc]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-7) var(--s-8)}.group[data-v-d30df6fc]{gap:var(--s-4);padding-top:var(--s-5);border-top:1px solid var(--color-line)}.group[data-v-d30df6fc],.group__head[data-v-d30df6fc]{display:flex;flex-direction:column}.group__head[data-v-d30df6fc]{gap:4px}.group__label[data-v-d30df6fc]{margin:0;font-size:17px;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text)}.group__note[data-v-d30df6fc]{margin:0;font-size:17px;color:var(--color-muted)}.group__items[data-v-d30df6fc]{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2)}.chip[data-v-d30df6fc]{display:inline-flex;align-items:center;gap:var(--s-2);font-size:17px;color:var(--color-text-2);background:var(--color-surface);border:1px solid var(--color-line-2);border-radius:var(--r-2);padding:6px var(--s-3);transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.chip[data-v-d30df6fc]:hover{color:var(--color-blue-2);border-color:var(--color-line-2)}.chip__icon[data-v-d30df6fc]{font-size:20px;color:var(--color-muted);transition:color var(--dur) var(--ease)}.chip:hover .chip__icon[data-v-d30df6fc]{color:var(--color-blue)}@media(max-width:767px){.stack[data-v-d30df6fc]{padding:var(--s-9) 0}.stack__title[data-v-d30df6fc]{font-size:37px}.stack__groups[data-v-d30df6fc]{grid-template-columns:1fr;gap:var(--s-6)}}@media(prefers-reduced-motion:reduce){.chip[data-v-d30df6fc],.chip__icon[data-v-d30df6fc]{transition:none}}.about[data-v-5f979f7c]{padding:var(--s-10) 0}.about__grid[data-v-5f979f7c]{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--s-8)}.about__eyebrow[data-v-5f979f7c]{display:inline-block;font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-blue);margin-bottom:var(--s-4)}.about__title[data-v-5f979f7c]{margin:0;font-size:53px;font-weight:500;letter-spacing:-.04em;line-height:1.05;color:var(--color-text);max-width:16ch}.about__body[data-v-5f979f7c]{display:flex;flex-direction:column;gap:var(--s-4);max-width:68ch}.about__lead[data-v-5f979f7c]{margin:0;font-size:23px;line-height:1.55;color:var(--color-text);letter-spacing:-.01em}.about__para[data-v-5f979f7c]{margin:0;font-size:19px;line-height:1.65;color:var(--color-text-2)}@media(max-width:767px){.about[data-v-5f979f7c]{padding:var(--s-9) 0}.about__grid[data-v-5f979f7c]{grid-template-columns:1fr;gap:var(--s-5)}.about__title[data-v-5f979f7c]{font-size:40px}}.footer[data-v-20ef90a2]{position:relative;background:var(--color-surface)}.cta[data-v-20ef90a2]{padding:clamp(64px,12vh,140px) 0 var(--s-9)}.cta__intro[data-v-20ef90a2]{min-width:0}.cta__eyebrow[data-v-20ef90a2]{display:inline-block;font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-blue);margin-bottom:var(--s-5)}.cta__title[data-v-20ef90a2]{margin:0 0 var(--s-6);font-size:clamp(48px,7vw,92px);font-weight:500;letter-spacing:-.05em;line-height:.92;color:var(--color-text)}.cta__dot[data-v-20ef90a2]{color:var(--color-blue)}.cta__lede[data-v-20ef90a2]{margin:0;max-width:44ch;font-size:21px;line-height:1.55;color:var(--color-text-2);letter-spacing:-.01em}.cta__mail[data-v-20ef90a2]{color:var(--color-text);text-decoration:none;white-space:nowrap;border-bottom:1px solid var(--color-line-2);transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.cta__mail[data-v-20ef90a2]:hover{color:var(--color-blue-2);border-color:var(--color-blue)}.meta[data-v-20ef90a2]{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr);gap:var(--s-7) var(--s-6);padding:var(--s-8) 0;border-top:1px solid var(--color-line)}.brand[data-v-20ef90a2]{display:inline-flex;align-items:center;gap:var(--s-3);color:var(--color-text);text-decoration:none}.brand__word[data-v-20ef90a2]{font-size:24px;font-weight:500;letter-spacing:-.03em;line-height:1}.brand__dev[data-v-20ef90a2]{color:var(--color-blue)}.meta__brand[data-v-20ef90a2]{display:flex;flex-direction:column;gap:var(--s-4);align-items:flex-start;max-width:46ch}.meta__note[data-v-20ef90a2]{margin:0;font-size:17px;line-height:1.6;color:var(--color-text-2)}.meta__col[data-v-20ef90a2]{display:flex;flex-direction:column;gap:var(--s-3)}.meta__col-title[data-v-20ef90a2]{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-dim);margin-bottom:var(--s-2)}.meta__link[data-v-20ef90a2]{display:inline-flex;align-items:center;gap:var(--s-2);font-size:17px;color:var(--color-text-2);text-decoration:none;width:-moz-fit-content;width:fit-content;transition:color var(--dur) var(--ease)}.meta__link[data-v-20ef90a2]:hover{color:var(--color-text)}.meta__link-num[data-v-20ef90a2]{font-size:12px;color:var(--color-dim);letter-spacing:.06em}.bar[data-v-20ef90a2]{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-5) 0;border-top:1px solid var(--color-line)}.bar__copy[data-v-20ef90a2],.bar__geo[data-v-20ef90a2]{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted)}.bar__geo b[data-v-20ef90a2]{color:var(--color-text-2);font-weight:500}.bar__clock[data-v-20ef90a2]{color:var(--color-text);font-variant-numeric:tabular-nums}.bar__top[data-v-20ef90a2]{display:inline-flex;align-items:center;gap:var(--s-2);font-family:var(--font-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);text-decoration:none;transition:color var(--dur) var(--ease)}.bar__top[data-v-20ef90a2]:hover{color:var(--color-text)}@media(max-width:767px){.meta[data-v-20ef90a2]{grid-template-columns:1fr;gap:var(--s-6)}.bar[data-v-20ef90a2]{flex-wrap:wrap;gap:var(--s-3)}.bar__geo[data-v-20ef90a2]{order:3;flex-basis:100%}}.skip-link[data-v-e19307e9]{position:absolute;top:-100px;left:var(--gutter);background:var(--color-blue);color:#fff;padding:var(--s-2) var(--s-4);border-radius:var(--r-2);z-index:100;text-decoration:none;font-size:17px}.skip-link[data-v-e19307e9]:focus{top:var(--s-2)}.site-bg[data-v-e19307e9]{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:var(--color-bg)}.site-bg__blob[data-v-e19307e9]{position:absolute;border-radius:50%;filter:blur(90px);will-change:transform}.site-bg__blob--1[data-v-e19307e9]{width:52vw;height:52vw;top:-14%;left:-8%;background:radial-gradient(circle,rgba(61,123,255,.2),transparent 70%);animation:drift-1-e19307e9 28s var(--ease) infinite alternate}.site-bg__blob--2[data-v-e19307e9]{width:46vw;height:46vw;top:30%;right:-12%;background:radial-gradient(circle,rgba(94,148,255,.14),transparent 70%);animation:drift-2-e19307e9 34s var(--ease) infinite alternate}.site-bg__blob--3[data-v-e19307e9]{width:40vw;height:40vw;bottom:-16%;left:20%;background:radial-gradient(circle,rgba(61,123,255,.12),transparent 72%);animation:drift-3-e19307e9 40s var(--ease) infinite alternate}.site-bg__grid[data-v-e19307e9]{position:absolute;inset:0;background-image:radial-gradient(var(--color-line-2) 1.1px,transparent 1.5px);background-size:28px 28px;opacity:.5}.site-bg__grain[data-v-e19307e9]{position:absolute;inset:0;opacity:.04;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='a'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='2' stitchTiles='stitch' type='fractalNoise'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E")}@keyframes drift-1-e19307e9{0%{transform:translate(0) scale(1)}to{transform:translate(6vw,5vh) scale(1.12)}}@keyframes drift-2-e19307e9{0%{transform:translate(0) scale(1)}to{transform:translate(-7vw,-4vh) scale(1.08)}}@keyframes drift-3-e19307e9{0%{transform:translate(0) scale(1)}to{transform:translate(4vw,-6vh) scale(1.15)}}@media(prefers-reduced-motion:reduce){.site-bg__blob[data-v-e19307e9]{animation:none}}.hero[data-v-e19307e9]{position:relative;min-height:58vh;display:flex;align-items:center;padding:clamp(72px,14vh,140px) 0 clamp(40px,8vh,80px);overflow:hidden}.hero__inner[data-v-e19307e9]{position:relative;z-index:1}.hero__bg[data-v-e19307e9]{position:absolute;inset:-15% 0;z-index:0;pointer-events:none;transform:translateY(var(--hero-shift,0));will-change:transform}.hero__glow[data-v-e19307e9]{position:absolute;left:var(--mx,32%);top:var(--my,38%);width:640px;height:640px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(61,123,255,.2),transparent 62%);filter:blur(28px);opacity:0;transition:opacity .5s var(--ease)}.hero.is-ready .hero__glow[data-v-e19307e9]{opacity:1}.hero__word[data-v-e19307e9]{margin:0;font-size:clamp(53px,15vw,128px);letter-spacing:-.05em;font-weight:500;line-height:.9}.hero__lede[data-v-e19307e9]{margin:var(--s-5) 0 0;max-width:54ch;font-size:23px;line-height:1.55;color:var(--color-text-2);letter-spacing:-.01em}.has-js{opacity:0;transition:opacity .8s var(--ease),transform .8s var(--ease)}.has-js{transform:translateY(22px)}.has-js{transform:translateY(16px);transition-delay:.14s}.has-js{opacity:1;transform:none}@media(max-width:767px){.hero__lede[data-v-e19307e9]{font-size:19px}.hero__glow[data-v-e19307e9]{width:420px;height:420px}}@media(prefers-reduced-motion:reduce){.has-js{opacity:1;transform:none;transition:none}.hero__glow[data-v-e19307e9]{display:none}}
