:root{--font-family: 'JetBrains Mono', monospace}@font-face{font-family:"Roboto";font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular"),url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Roboto";font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular"),url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Roboto";font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular"),url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:"Roboto";font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular"),url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:"Roboto";font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular"),url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Roboto";font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular"),url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Roboto";font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular"),url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4mxK.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Roboto";font-style:normal;font-weight:700;src:local("Roboto Bold"),local("Roboto-Bold"),url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Roboto";font-style:normal;font-weight:700;src:local("Roboto Bold"),local("Roboto-Bold"),url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Roboto";font-style:normal;font-weight:700;src:local("Roboto Bold"),local("Roboto-Bold"),url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:"Roboto";font-style:normal;font-weight:700;src:local("Roboto Bold"),local("Roboto-Bold"),url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:"Roboto";font-style:normal;font-weight:700;src:local("Roboto Bold"),local("Roboto-Bold"),url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Roboto";font-style:normal;font-weight:700;src:local("Roboto Bold"),local("Roboto-Bold"),url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Roboto";font-style:normal;font-weight:700;src:local("Roboto Bold"),local("Roboto-Bold"),url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Roboto";font-style:normal;font-weight:300;src:local("Roboto Light"),local("Roboto-Light"),url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Roboto";font-style:normal;font-weight:300;src:local("Roboto Light"),local("Roboto-Light"),url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Roboto";font-style:normal;font-weight:300;src:local("Roboto Light"),local("Roboto-Light"),url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:"Roboto";font-style:normal;font-weight:300;src:local("Roboto Light"),local("Roboto-Light"),url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:"Roboto";font-style:normal;font-weight:300;src:local("Roboto Light"),local("Roboto-Light"),url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Roboto";font-style:normal;font-weight:300;src:local("Roboto Light"),local("Roboto-Light"),url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Roboto";font-style:normal;font-weight:300;src:local("Roboto Light"),local("Roboto-Light"),url(https://fonts.gstatic.com/s/roboto/v18/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans Pro";font-style:italic;font-weight:400;font-display:swap;src:local("Source Sans Pro Italic"),local("SourceSansPro-Italic"),url(https://fonts.gstatic.com/s/sourcesanspro/v13/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans Pro";font-style:italic;font-weight:400;font-display:swap;src:local("Source Sans Pro Italic"),local("SourceSansPro-Italic"),url(https://fonts.gstatic.com/s/sourcesanspro/v13/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Sans Pro";font-style:italic;font-weight:400;font-display:swap;src:local("Source Sans Pro Italic"),local("SourceSansPro-Italic"),url(https://fonts.gstatic.com/s/sourcesanspro/v13/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:"Source Sans Pro";font-style:italic;font-weight:400;font-display:swap;src:local("Source Sans Pro Italic"),local("SourceSansPro-Italic"),url(https://fonts.gstatic.com/s/sourcesanspro/v13/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:"Source Sans Pro";font-style:italic;font-weight:400;font-display:swap;src:local("Source Sans Pro Italic"),local("SourceSansPro-Italic"),url(https://fonts.gstatic.com/s/sourcesanspro/v13/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans Pro";font-style:italic;font-weight:400;font-display:swap;src:local("Source Sans Pro Italic"),local("SourceSansPro-Italic"),url(https://fonts.gstatic.com/s/sourcesanspro/v13/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans Pro";font-style:italic;font-weight:400;font-display:swap;src:local("Source Sans Pro Italic"),local("SourceSansPro-Italic"),url(https://fonts.gstatic.com/s/sourcesanspro/v13/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans Pro";font-style:normal;font-weight:400;font-display:swap;src:local("Source Sans Pro Regular"),local("SourceSansPro-Regular"),url(https://fonts.gstatic.com/s/sourcesanspro/v13/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans Pro";font-style:normal;font-weight:400;font-display:swap;src:local("Source Sans Pro Regular"),local("SourceSansPro-Regular"),url(https://fonts.gstatic.com/s/sourcesanspro/v13/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Sans Pro";font-style:normal;font-weight:400;font-display:swap;src:local("Source Sans Pro Regular"),local("SourceSansPro-Regular"),url(https://fonts.gstatic.com/s/sourcesanspro/v13/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:"Source Sans Pro";font-style:normal;font-weight:400;font-display:swap;src:local("Source Sans Pro Regular"),local("SourceSansPro-Regular"),url(https://fonts.gstatic.com/s/sourcesanspro/v13/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:"Source Sans Pro";font-style:normal;font-weight:400;font-display:swap;src:local("Source Sans Pro Regular"),local("SourceSansPro-Regular"),url(https://fonts.gstatic.com/s/sourcesanspro/v13/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans Pro";font-style:normal;font-weight:400;font-display:swap;src:local("Source Sans Pro Regular"),local("SourceSansPro-Regular"),url(https://fonts.gstatic.com/s/sourcesanspro/v13/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans Pro";font-style:normal;font-weight:400;font-display:swap;src:local("Source Sans Pro Regular"),local("SourceSansPro-Regular"),url(https://fonts.gstatic.com/s/sourcesanspro/v13/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Ubuntu Mono";font-style:italic;font-weight:400;font-display:swap;src:local("Ubuntu Mono Italic"),local("UbuntuMono-Italic"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFOhCneDtsqEr0keqCMhbCc_OsvSkLBP.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Ubuntu Mono";font-style:italic;font-weight:400;font-display:swap;src:local("Ubuntu Mono Italic"),local("UbuntuMono-Italic"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFOhCneDtsqEr0keqCMhbCc_OsLSkLBP.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Ubuntu Mono";font-style:italic;font-weight:400;font-display:swap;src:local("Ubuntu Mono Italic"),local("UbuntuMono-Italic"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFOhCneDtsqEr0keqCMhbCc_OsrSkLBP.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:"Ubuntu Mono";font-style:italic;font-weight:400;font-display:swap;src:local("Ubuntu Mono Italic"),local("UbuntuMono-Italic"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFOhCneDtsqEr0keqCMhbCc_OsXSkLBP.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:"Ubuntu Mono";font-style:italic;font-weight:400;font-display:swap;src:local("Ubuntu Mono Italic"),local("UbuntuMono-Italic"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFOhCneDtsqEr0keqCMhbCc_OsjSkLBP.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Ubuntu Mono";font-style:italic;font-weight:400;font-display:swap;src:local("Ubuntu Mono Italic"),local("UbuntuMono-Italic"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFOhCneDtsqEr0keqCMhbCc_OsbSkA.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Ubuntu Mono";font-style:italic;font-weight:700;font-display:swap;src:local("Ubuntu Mono Bold Italic"),local("UbuntuMono-BoldItalic"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFO8CneDtsqEr0keqCMhbCc_Mn33hYJufkO1.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Ubuntu Mono";font-style:italic;font-weight:700;font-display:swap;src:local("Ubuntu Mono Bold Italic"),local("UbuntuMono-BoldItalic"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFO8CneDtsqEr0keqCMhbCc_Mn33hYtufkO1.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Ubuntu Mono";font-style:italic;font-weight:700;font-display:swap;src:local("Ubuntu Mono Bold Italic"),local("UbuntuMono-BoldItalic"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFO8CneDtsqEr0keqCMhbCc_Mn33hYNufkO1.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:"Ubuntu Mono";font-style:italic;font-weight:700;font-display:swap;src:local("Ubuntu Mono Bold Italic"),local("UbuntuMono-BoldItalic"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFO8CneDtsqEr0keqCMhbCc_Mn33hYxufkO1.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:"Ubuntu Mono";font-style:italic;font-weight:700;font-display:swap;src:local("Ubuntu Mono Bold Italic"),local("UbuntuMono-BoldItalic"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFO8CneDtsqEr0keqCMhbCc_Mn33hYFufkO1.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Ubuntu Mono";font-style:italic;font-weight:700;font-display:swap;src:local("Ubuntu Mono Bold Italic"),local("UbuntuMono-BoldItalic"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFO8CneDtsqEr0keqCMhbCc_Mn33hY9ufg.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Ubuntu Mono";font-style:normal;font-weight:400;font-display:swap;src:local("Ubuntu Mono"),local("UbuntuMono-Regular"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFOjCneDtsqEr0keqCMhbCc3CsTKlA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Ubuntu Mono";font-style:normal;font-weight:400;font-display:swap;src:local("Ubuntu Mono"),local("UbuntuMono-Regular"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFOjCneDtsqEr0keqCMhbCc-CsTKlA.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Ubuntu Mono";font-style:normal;font-weight:400;font-display:swap;src:local("Ubuntu Mono"),local("UbuntuMono-Regular"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFOjCneDtsqEr0keqCMhbCc2CsTKlA.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:"Ubuntu Mono";font-style:normal;font-weight:400;font-display:swap;src:local("Ubuntu Mono"),local("UbuntuMono-Regular"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFOjCneDtsqEr0keqCMhbCc5CsTKlA.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:"Ubuntu Mono";font-style:normal;font-weight:400;font-display:swap;src:local("Ubuntu Mono"),local("UbuntuMono-Regular"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFOjCneDtsqEr0keqCMhbCc0CsTKlA.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Ubuntu Mono";font-style:normal;font-weight:400;font-display:swap;src:local("Ubuntu Mono"),local("UbuntuMono-Regular"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFOjCneDtsqEr0keqCMhbCc6CsQ.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Ubuntu Mono";font-style:normal;font-weight:700;font-display:swap;src:local("Ubuntu Mono Bold"),local("UbuntuMono-Bold"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFO-CneDtsqEr0keqCMhbC-BL9H4tY12eg.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Ubuntu Mono";font-style:normal;font-weight:700;font-display:swap;src:local("Ubuntu Mono Bold"),local("UbuntuMono-Bold"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFO-CneDtsqEr0keqCMhbC-BL9HxtY12eg.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Ubuntu Mono";font-style:normal;font-weight:700;font-display:swap;src:local("Ubuntu Mono Bold"),local("UbuntuMono-Bold"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFO-CneDtsqEr0keqCMhbC-BL9H5tY12eg.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:"Ubuntu Mono";font-style:normal;font-weight:700;font-display:swap;src:local("Ubuntu Mono Bold"),local("UbuntuMono-Bold"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFO-CneDtsqEr0keqCMhbC-BL9H2tY12eg.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:"Ubuntu Mono";font-style:normal;font-weight:700;font-display:swap;src:local("Ubuntu Mono Bold"),local("UbuntuMono-Bold"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFO-CneDtsqEr0keqCMhbC-BL9H7tY12eg.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Ubuntu Mono";font-style:normal;font-weight:700;font-display:swap;src:local("Ubuntu Mono Bold"),local("UbuntuMono-Bold"),url(https://fonts.gstatic.com/s/ubuntumono/v9/KFO-CneDtsqEr0keqCMhbC-BL9H1tY0.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;border-radius:0 !important;-webkit-border-radius:0 !important;-moz-border-radius:0 !important}*{scrollbar-width:auto;scrollbar-color:var(--border-color) var(--bg-secondary)}*::-webkit-scrollbar{width:12px;height:12px}*::-webkit-scrollbar-track{background:var(--bg-secondary);border:1px solid var(--bg-primary)}*::-webkit-scrollbar-thumb{background-color:var(--border-color);border:3px solid var(--bg-secondary);min-height:40px}*::-webkit-scrollbar-thumb:hover{background-color:var(--accent-color);border:2px solid var(--bg-secondary)}*::-webkit-scrollbar-thumb:active{background-color:var(--accent-hover)}pre::-webkit-scrollbar{width:10px;height:10px}pre::-webkit-scrollbar-track{background:var(--bg-primary)}pre::-webkit-scrollbar-thumb{background-color:var(--text-secondary);border:2px solid var(--bg-secondary);min-height:30px}pre::-webkit-scrollbar-thumb:hover{background-color:var(--accent-color)}pre::-webkit-scrollbar-thumb:active{background-color:var(--accent-hover)}pre{scrollbar-width:auto;scrollbar-color:var(--text-secondary) var(--bg-primary)}.notransition{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}html{overflow-x:hidden;width:100%;scroll-behavior:smooth}body,h1,h2,h3,h4,h5,h6,p,blockquote,pre,hr,dl,dd,ol,ul,figure{margin:0;padding:0}body{min-height:100vh;overflow-x:hidden;position:relative;color:var(--text-primary);background-color:var(--bg-primary);font-family:var(--font-family);font-weight:400;font-size:16px;line-height:1.6;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;font-kerning:normal;box-sizing:border-box}@media screen and (max-width: 768px){body{font-size:14px}}h1,h2,h3,h4,h5,h6,p,blockquote,pre,ul,ol,dl,figure{margin-top:20px;margin-bottom:20px}strong,b{font-weight:700;color:var(--text-primary)}hr{border:0;border-top:1px solid var(--bg-secondary);margin:40px 0}kbd{border:1px solid var(--border-color);color:var(--text-primary);display:inline-block;font-size:15px;line-height:1.4;font-family:var(--font-family);margin:0 0.1em;font-weight:700;padding:2px 6px;background-color:var(--bg-secondary)}img{max-width:100%;vertical-align:middle;-webkit-user-drag:none;margin:0 auto;text-align:center;display:block}figure{position:relative;margin:30px 0}figure>img{display:block;position:relative}figcaption{font-size:13px;text-align:center;color:var(--text-secondary);margin-top:10px}ul{list-style:none}ul li{display:list-item;text-align:-webkit-match-parent}ul li::before{content:">";display:inline-block;width:1.2em;position:relative;margin-left:-1.3em;font-weight:700;color:var(--accent-color)}ol{list-style:none;counter-reset:li}ol li{position:relative;counter-increment:li}ol li::before{content:counter(li) ".";display:inline-block;width:2em;margin-right:0.5em;margin-left:-2.5em;text-align:right;font-weight:700;font-size:15px;color:var(--accent-color)}ul,ol{margin-top:0;margin-left:30px}li{padding-bottom:5px;padding-top:5px;color:var(--text-primary)}li>ul,li>ol{margin-bottom:5px;margin-top:5px}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:700;letter-spacing:1px;text-transform:uppercase}h1+ul,h1+ol,h2+ul,h2+ol,h3+ul,h3+ol,h4+ul,h4+ol,h5+ul,h5+ol,h6+ul,h6+ol{margin-top:10px}@media screen and (max-width: 768px){h1,h2,h3,h4,h5,h6{scroll-margin-top:80px}}h1{font-size:2em;margin-top:40px;margin-bottom:20px}@media screen and (max-width: 768px){h1{font-size:1.6em;margin-top:30px}}h2{font-size:1.5em;margin-top:35px;margin-bottom:15px;border-bottom:2px solid var(--border-color);padding-bottom:10px}@media screen and (max-width: 768px){h2{font-size:1.3em;margin-top:25px}}h3{font-size:1.2em;margin-top:30px;margin-bottom:15px}@media screen and (max-width: 768px){h3{font-size:1.1em}}h4,h5,h6{font-size:1em;margin-top:25px;margin-bottom:10px}h1>a,h2>a,h3>a,h4>a,h5>a,h6>a{text-decoration:none;border:none;color:var(--text-primary)}h1>a:hover,h2>a:hover,h3>a:hover,h4>a:hover,h5>a:hover,h6>a:hover{text-decoration:none;border:none;color:var(--accent-color)}a{color:var(--accent-color);text-decoration:none;border-bottom:1px solid transparent}a:hover{color:var(--accent-hover);border-bottom:1px solid var(--accent-hover)}a:focus{outline:2px solid var(--accent-color);outline-offset:2px}del{color:var(--text-secondary);text-decoration:line-through}em{color:inherit;font-style:italic}blockquote{color:var(--text-secondary);font-style:italic;border-left:4px solid var(--border-color);padding:15px 20px;margin:30px 0;background-color:var(--bg-secondary)}blockquote>:last-child{margin-bottom:0}blockquote>:first-child{margin-top:0}.wrapper{max-width:1000px;position:relative;margin-right:auto;margin-left:auto;padding-right:30px;padding-left:30px}@media screen and (max-width: 768px){.wrapper{padding-right:20px;padding-left:20px}}.wrapper.post{max-width:100%;padding-right:5%;padding-left:5%}u{text-decoration-color:var(--accent-color)}small{font-size:15px;color:var(--text-secondary)}sup{top:-3px;left:2px;font-size:small;position:relative;margin-right:2px}code{font-family:var(--font-family);font-size:15px;background-color:var(--bg-secondary);color:var(--accent-color);padding:2px 6px;border:1px solid var(--bg-secondary)}code.highlighter-rouge{background-color:var(--bg-secondary);color:var(--accent-color)}pre{position:relative;background-color:var(--bg-secondary);border:2px solid var(--border-color);padding:20px;overflow-x:auto;margin:30px 0;line-height:1.6}pre code{background-color:transparent;border:none;padding:0;color:var(--text-primary);font-size:16px}.overflow-table{overflow-x:auto}table{width:100%;margin-top:20px;margin-bottom:20px;border-collapse:collapse;font-size:15px;border:2px solid var(--border-color)}table thead{font-weight:700;color:var(--bg-primary);background-color:var(--border-color)}table th,table td,table tr{border:1px solid var(--border-color);padding:8px 12px}table tbody tr:hover{background-color:var(--bg-secondary)}.wrapper:after{content:"";display:table;clear:both}mark,::selection{background:var(--accent-color);color:var(--bg-primary)}.gist table{border:0}.gist table tr,.gist table td{border:0}.navbar{height:auto;max-width:100%;position:fixed;top:0;left:0;right:0;z-index:1000;background-color:var(--bg-primary);border-bottom:2px solid var(--border-color);padding:0;margin:0}.menu{user-select:none;-ms-user-select:none;-webkit-user-select:none;display:flex;justify-content:flex-start;align-items:center;padding:15px 30px;max-width:1200px;margin:0 auto}.menu .menu-left .site-title{color:var(--text-primary);text-decoration:none;font-weight:700;font-size:16px;letter-spacing:1px;text-transform:uppercase}.menu .menu-left .site-title:hover{color:var(--accent-color)}.menu .trigger{display:flex;align-items:center;margin-left:auto}.menu .menu-trigger{display:none}.menu .menu-icon{display:none}.menu label[for="menu-trigger"]{display:flex;align-items:center}.menu .trigger-container{display:flex;gap:20px;align-items:center}.menu .quick-search-open{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background-color:transparent;border:1px solid transparent;color:var(--text-primary);cursor:pointer;margin-left:12px}.menu .quick-search-open:hover{border:1px solid var(--border-color);background-color:var(--border-color);color:var(--bg-primary)}.menu .quick-search-open svg{display:block}.menu .menu-link{color:var(--text-primary);line-height:1;text-decoration:none;padding:8px 12px;background-color:transparent;border:1px solid transparent;letter-spacing:1px;font-size:14px;text-transform:uppercase;transition:all 0.1s ease}.menu .menu-link:hover{border:1px solid var(--border-color);background-color:var(--border-color);color:var(--bg-primary)}.menu .menu-link.active{border:1px solid var(--accent-color);color:var(--accent-color)}@media screen and (max-width: 768px){.menu{padding:15px 20px}.menu label[for="menu-trigger"]{margin-left:auto}.menu .menu-icon{display:block;color:var(--text-primary);font-size:14px;font-weight:700;cursor:pointer;padding:8px 12px;border:1px solid var(--border-color);letter-spacing:1px}.menu .menu-icon:hover{background-color:var(--border-color);color:var(--bg-primary)}.menu input[type="checkbox"]:not(:checked) ~ .trigger{display:none}.menu input[type="checkbox"]:checked ~ .trigger{position:fixed;top:52px;left:0;right:0;background-color:var(--bg-primary);border-top:2px solid var(--border-color);padding:20px;display:block}.menu .trigger-container{flex-direction:column;gap:10px;align-items:stretch}.menu .quick-search-open{width:36px;height:36px;border:1px solid var(--border-color);margin-left:12px}.menu .menu-link{display:block;text-align:center;width:100%}}.author{margin-top:120px;margin-bottom:60px;text-align:center;padding:0 20px}@media screen and (max-width: 768px){.author{margin-top:100px;margin-bottom:40px}}.author .author-avatar{display:none}.author .author-name{font-size:2em;margin-bottom:10px;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:2px}@media screen and (max-width: 768px){.author .author-name{font-size:1.5em;letter-spacing:1px}}.author .author-bio,.author p{margin:0 auto;max-width:600px;line-height:1.6;color:var(--text-secondary);font-size:16px}.wrapper{max-width:1000px;margin:0 auto;padding:0 30px}@media screen and (max-width: 768px){.wrapper{padding:0 20px}}.wrapper.post{max-width:100%;padding:0 5%}.posts-item-note{font-size:18px;font-weight:700;margin-bottom:30px;margin-top:40px;color:var(--text-primary);text-transform:uppercase;letter-spacing:2px;border-bottom:2px solid var(--border-color);padding-bottom:10px}.quick-search{position:fixed;inset:0;z-index:1000001}.quick-search[hidden]{display:none !important}.quick-search-overlay{position:absolute;inset:0;background-color:rgba(0,0,0,0.65)}.quick-search-modal{position:absolute;left:50%;top:90px;transform:translateX(-50%);width:min(720px, calc(100vw - 40px));background-color:var(--bg-primary);border:2px solid var(--border-color);padding:16px}.quick-search-input-row{display:flex;gap:10px;align-items:center}.quick-search-input{flex:1;height:44px;padding:0 12px;background-color:var(--bg-secondary);border:2px solid var(--border-color);color:var(--text-primary);font-family:var(--font-family);font-size:14px;outline:none}.quick-search-input:focus{border-color:var(--accent-color)}.quick-search-close{height:44px;padding:0 10px;background-color:transparent;border:2px solid var(--border-color);color:var(--text-secondary);font-family:var(--font-family);font-size:12px;font-weight:700;letter-spacing:1px}.quick-search-close:hover{border-color:var(--accent-color);color:var(--accent-color)}.quick-search-status{margin-top:10px;color:var(--text-secondary);font-size:12px}.quick-search-results{margin-top:12px;max-height:min(60vh, 520px);overflow:auto;border-top:2px solid var(--border-color)}.quick-search-result{display:block;padding:12px;border-bottom:1px solid var(--border-color);text-decoration:none}.quick-search-result:hover{background-color:var(--bg-secondary)}.quick-search-result-title{color:var(--text-primary);font-weight:700;letter-spacing:0.5px;margin:0}.quick-search-result-meta{color:var(--text-secondary);font-size:12px;margin-top:4px}@media screen and (max-width: 768px){.quick-search-modal{top:70px;width:calc(100vw - 20px)}}.post-item{display:flex;padding:20px 0;border-bottom:1px solid var(--bg-secondary);transition:all 0.2s ease}.post-item:hover{background-color:var(--bg-secondary);margin:0 -15px;padding:20px 15px}.post-item .post-item-date{min-width:120px;color:var(--text-secondary);font-weight:700;padding-right:20px;font-size:14px;letter-spacing:1px}@media screen and (max-width: 768px){.post-item .post-item-date{min-width:80px;font-size:13px}}.post-item .post-item-title{margin:0;border:0;padding:0;font-size:18px;font-weight:400;letter-spacing:0.5px}.post-item .post-item-title a{color:var(--text-primary);text-decoration:none}.post-item .post-item-title a:hover{color:var(--accent-color)}.footer{margin-top:100px;margin-bottom:40px;text-align:center;border-top:2px solid var(--border-color);padding-top:40px}@media screen and (max-width: 768px){.footer{margin-top:60px}}.footer span.footer_item{color:var(--text-primary);font-weight:700;font-size:15px;letter-spacing:1px}.footer a.footer_item{color:var(--text-primary);text-decoration:none}.footer a.footer_item:not(:last-child){margin-right:20px}.footer a.footer_item:not(:last-child):hover{color:var(--accent-color)}.footer .footer_copyright{font-size:15px;margin-top:20px;display:block;color:var(--text-secondary)}.not-found{text-align:center;display:flex;justify-content:center;flex-direction:column;height:75vh}.not-found .title{font-size:5em;font-weight:700;line-height:1.1;color:var(--text-primary)}.not-found .phrase{color:var(--text-primary)}.not-found .not-found-gif{display:block;width:240px;max-width:80vw;margin:18px auto;border:2px solid var(--border-color);background-color:var(--bg-secondary)}.not-found .not-found-actions{margin-top:14px;display:flex;gap:18px;justify-content:center;flex-wrap:wrap}.not-found .solution{color:var(--accent-color);letter-spacing:1px}.not-found .solution:hover{color:var(--accent-hover)}.search-article{position:relative;margin-bottom:50px}.search-article label[for="search-input"]{display:none}.search-article input[type="search"]{width:100%;height:45px;outline:none;padding:10px 15px;color:var(--text-primary);font-size:16px;background-color:var(--bg-secondary);border:2px solid var(--bg-secondary);font-family:var(--font-family)}.search-article input[type="search"]:focus{border:2px solid var(--border-color)}.search-article input[type="search"]::-webkit-input-placeholder{color:var(--text-secondary)}#search-results{text-align:center}#search-results li{text-align:left}.archive-tags{height:auto}.archive-tags .tag-item{padding:5px 10px;border:1px solid var(--border-color);background-color:transparent;display:inline-block;margin:5px;color:var(--text-primary);text-decoration:none}.archive-tags .tag-item:hover{background-color:var(--border-color);color:var(--bg-primary)}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:80px 0 60px 0}@media screen and (max-width: 768px){.post-nav{grid-template-columns:1fr;gap:15px;margin:60px 0 40px 0}}.post-nav .post-nav-item{display:flex;flex-direction:column;gap:12px;padding:25px;background-color:var(--bg-secondary);border:2px solid var(--bg-secondary);text-decoration:none;transition:all 0.2s ease;min-height:120px}.post-nav .post-nav-item:hover{border-color:var(--accent-color);background-color:var(--bg-primary);transform:translateY(-2px)}.post-nav .post-nav-item.post-nav-empty{visibility:hidden;pointer-events:none}.post-nav .post-nav-prev .nav-label{justify-content:flex-start}.post-nav .post-nav-prev .post-title{text-align:left}.post-nav .post-nav-next .nav-label{justify-content:flex-end}.post-nav .post-nav-next .post-title{text-align:right}.post-nav .nav-label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-secondary)}.post-nav .nav-arrow{font-size:16px;color:var(--accent-color);font-weight:700}.post-nav .nav-text{color:var(--text-secondary)}.post-nav .post-title{font-size:16px;font-weight:700;color:var(--text-primary);line-height:1.4;transition:color 0.2s ease}.post-nav-item:hover .post-nav .post-title{color:var(--accent-color)}.page-content{padding-top:100px}@media screen and (max-width: 768px){.page-content{padding-top:80px}}.wrapper.post .page-content{padding-top:0}.wrapper:after{content:"";display:table;clear:both}.archive-separator{border:0;border-top:1px solid var(--bg-secondary);margin:40px 0}.archive-list{list-style:none;margin:0;padding:0;border-left:2px solid var(--bg-secondary)}.archive-list li::before{content:none}.archive-item{position:relative;margin-bottom:40px;margin-left:30px;padding-bottom:20px}.archive-marker{position:absolute;left:-35px;top:5px;width:10px;height:10px;background-color:var(--accent-color);border:2px solid var(--bg-primary)}.archive-content .archive-title{font-size:1.3em;margin-bottom:5px;color:var(--text-primary);text-transform:none;letter-spacing:0.5px}.archive-content .archive-title:hover{color:var(--accent-color)}.archive-content .archive-date{display:inline-block;font-size:15px;font-weight:700;color:var(--text-secondary);padding:4px 8px;border:1px solid var(--bg-secondary);margin-bottom:10px;letter-spacing:1px}.archive-content .archive-excerpt{margin:10px 0;color:var(--text-secondary);font-size:16px}.archive-content .archive-tags{margin-top:10px}.category-tag{font-weight:700;font-size:15px;color:var(--accent-color);border:1px solid var(--accent-color);padding:4px 8px;margin-right:8px;display:inline-block;text-transform:uppercase}.category-tag:hover{background-color:var(--accent-color);color:var(--bg-primary)}.blog-grid{display:grid;grid-template-columns:1fr;gap:30px;margin:40px 0}@media screen and (max-width: 769px){.blog-grid{grid-template-columns:1fr}}.blog-card{background-color:var(--bg-secondary);border:2px solid var(--bg-secondary);padding:25px;transition:all 0.2s ease;display:flex;flex-direction:column;gap:15px}.blog-card:hover{border-color:var(--accent-color);background-color:var(--bg-primary)}.blog-card-header{display:flex;flex-direction:column;gap:10px}.blog-card-title{margin:0;font-size:1.4em;font-weight:700;text-transform:none;letter-spacing:0.5px}@media screen and (max-width: 768px){.blog-card-title{font-size:1.1em}}.blog-card-title a{color:var(--text-primary);text-decoration:none;border:none}.blog-card-title a:hover{color:var(--accent-color);border:none}.blog-card-date{display:inline-block;font-size:15px;font-weight:700;color:var(--text-secondary);padding:6px 12px;border:1px solid var(--border-color);align-self:flex-start;letter-spacing:1px;text-transform:uppercase}.blog-card-excerpt{margin:0;color:var(--text-secondary);font-size:16px;line-height:1.6}.blog-card-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:5px}.blog-tag{font-weight:700;font-size:15px;color:var(--accent-color);border:1px solid var(--accent-color);padding:4px 10px;text-transform:uppercase;letter-spacing:0.5px;transition:all 0.2s ease}.blog-tag:hover{background-color:var(--accent-color);color:var(--bg-primary)}.blog-card-link{color:var(--accent-color);text-decoration:none;font-weight:700;text-transform:uppercase;font-size:15px;letter-spacing:1px;align-self:flex-start;border-bottom:2px solid transparent;padding-bottom:2px;transition:all 0.2s ease}.blog-card-link:hover{border-bottom-color:var(--accent-color)}.wrapper.post>.page-content{padding-top:100px}@media screen and (max-width: 768px){.wrapper.post>.page-content{padding-top:80px}}@media screen and (max-width: 768px){.wrapper.post{padding-left:20px !important;padding-right:20px !important}}.header{margin-top:120px;margin-bottom:60px}@media screen and (max-width: 768px){.header{margin-top:100px;margin-bottom:40px}}.header .tags{margin-left:0;letter-spacing:1px;margin-bottom:15px}.header .tags .tag{font-weight:700;font-size:15px;color:#09f;border:1px solid #09f;padding:4px 8px;margin-right:8px;display:inline-block;text-transform:uppercase}.header .tags .tag:hover{text-decoration:none;background-color:#09f;color:#000}.header .category-tag{font-weight:700;font-size:15px;color:var(--accent-color);border:1px solid var(--accent-color);padding:4px 8px;margin-right:8px;display:inline-block;text-transform:uppercase}.header .category-tag:hover{background-color:var(--accent-color);color:var(--bg-primary)}.header .header-title{font-size:2.5em;line-height:1.2;margin-top:15px;margin-bottom:20px;color:var(--text-primary);font-weight:700;text-transform:uppercase;letter-spacing:2px}@media screen and (max-width: 768px){.header .header-title{font-size:1.5em;letter-spacing:1px}}.post-meta{padding-top:10px;line-height:1.3;color:var(--text-secondary);font-size:15px;border-top:1px solid var(--bg-secondary);border-bottom:1px solid var(--bg-secondary);padding:15px 0;margin-bottom:30px;letter-spacing:1px}.post-meta time{position:relative;margin-right:20px;font-weight:700}.post-meta span[itemprop="author"]{font-weight:700}.post-article .page-content{padding-top:8px}.post-article .page-content iframe{text-align:center;border:2px solid var(--border-color)}.post-article .page-content figure img{border:2px solid var(--border-color)}.post-article .page-content figure figcaption{margin-top:10px;font-style:italic;font-size:15px;color:var(--text-secondary)}.post-article .page-content a{color:#09f;text-decoration:none;border-bottom:1px solid transparent}.post-article .page-content a[target="_blank"]::after{content:" ↗";font-size:15px;line-height:0;position:relative;bottom:5px;vertical-align:baseline}.post-article .page-content a:hover{color:#07c;border-bottom:1px solid #07c}.post-article .page-content a:focus{color:#09f;outline:2px solid #09f}.post-article .page-content>p{margin:0;padding-top:15px;padding-bottom:15px;line-height:1.8}.post-article .page-content ul.task-list{list-style:none;margin:0}.post-article .page-content ul.task-list li::before{content:""}.post-article .page-content ul.task-list li input[type="checkbox"]{margin-right:10px;border:2px solid #fff}.post-article .page-content dl dt{font-weight:700;color:var(--text-primary)}.post-article .page-content dd{margin-left:20px;margin-bottom:10px}.post-article .page-content h1,.post-article .page-content h2,.post-article .page-content h3,.post-article .page-content h4,.post-article .page-content h5,.post-article .page-content h6{color:var(--text-primary);font-weight:700;margin-top:40px;margin-bottom:20px;text-transform:uppercase;letter-spacing:1px}.post-article .page-content h1:hover .anchor-head,.post-article .page-content h2:hover .anchor-head,.post-article .page-content h3:hover .anchor-head,.post-article .page-content h4:hover .anchor-head,.post-article .page-content h5:hover .anchor-head,.post-article .page-content h6:hover .anchor-head{color:#09f;opacity:1}.post-article .page-content h1 .anchor-head,.post-article .page-content h2 .anchor-head,.post-article .page-content h3 .anchor-head,.post-article .page-content h4 .anchor-head,.post-article .page-content h5 .anchor-head,.post-article .page-content h6 .anchor-head{position:relative;opacity:0;outline:none}.post-article .page-content h1 .anchor-head::before,.post-article .page-content h2 .anchor-head::before,.post-article .page-content h3 .anchor-head::before,.post-article .page-content h4 .anchor-head::before,.post-article .page-content h5 .anchor-head::before,.post-article .page-content h6 .anchor-head::before{content:"#";position:absolute;right:-3px;width:1em;font-weight:700}.post-article .page-content h1{font-size:2em;border-bottom:3px solid var(--border-color);padding-bottom:15px}.post-article .page-content h2{font-size:1.6em;border-bottom:2px solid var(--border-color);padding-bottom:10px}.post-article .page-content h3{font-size:1.3em;border-bottom:1px solid var(--bg-secondary);padding-bottom:8px}.post-article .page-content h4{font-size:1.1em}.post-article .page-content h5{font-size:1em}.post-article .page-content h6{font-size:0.9em;color:var(--text-secondary)}.post-nav{display:flex;position:relative;margin-top:60px;margin-bottom:40px;border-top:2px solid var(--border-color);border-bottom:2px solid var(--border-color);line-height:1.4;padding:20px 0}.post-nav .post-nav-item{width:50%;text-decoration:none;color:var(--text-primary);font-weight:700}.post-nav .post-nav-item:hover .post-title{color:var(--accent-color)}.post-nav .post-nav-item .nav-arrow{color:var(--text-secondary);margin:0 10px}.post-nav .post-nav-item .post-title{color:var(--text-primary);display:inline-block}.post-nav .post-nav-item.post-prev{text-align:left}.post-nav .post-nav-item.post-next{text-align:right}.related{margin-top:60px;padding-top:30px;border-top:2px solid var(--border-color)}.related .related-header{font-size:1.5em;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:2px;margin-bottom:20px}.post-container{display:flex !important;gap:40px;max-width:100%;transition:all 0.3s ease;position:relative;justify-content:flex-start;align-items:flex-start}.post-container.toc-closed{justify-content:center}@media screen and (max-width: 768px){.post-container{flex-direction:column;justify-content:flex-start}}.post-article{flex:1;min-width:0;width:100%;max-width:calc(100% - 320px);transition:all 0.3s ease}.post-container.toc-closed .post-article{max-width:100%;margin:0 auto}@media screen and (max-width: 768px){.post-article{max-width:100% !important}}.toc-sidebar{width:280px;flex-shrink:0;position:fixed;right:2%;top:50%;transform:translateY(-50%);height:auto;max-height:70vh;overflow-y:auto;background-color:var(--bg-secondary);border:2px solid var(--border-color);padding:20px;transition:all 0.3s ease;display:block !important;z-index:10;scrollbar-width:thin;scrollbar-color:var(--text-secondary) var(--bg-primary)}.toc-sidebar.toc-hidden{transform:translate(350px, -50%);opacity:0;pointer-events:none}@media screen and (max-width: 768px){.toc-sidebar{display:none !important}}.toc-sidebar::-webkit-scrollbar{width:6px}.toc-sidebar::-webkit-scrollbar-track{background:var(--bg-primary)}.toc-sidebar::-webkit-scrollbar-thumb{background-color:var(--text-secondary);border:1px solid var(--bg-secondary)}.toc-sidebar::-webkit-scrollbar-thumb:hover{background-color:var(--accent-color)}.toc-sidebar .toc-header{margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid var(--border-color)}.toc-sidebar .toc-header h3{font-size:14px;font-weight:700;color:var(--text-primary);letter-spacing:2px;margin:0}.toc-sidebar .toc-nav ul{list-style:none;margin:0;padding:0}.toc-sidebar .toc-nav ul li{margin:0;padding:0}.toc-sidebar .toc-nav ul li::before{content:none}.toc-sidebar .toc-nav ul li a{display:block;padding:8px 0;color:var(--text-secondary);text-decoration:none;font-size:14px;border-left:2px solid transparent;padding-left:10px;transition:all 0.2s ease;border-bottom:none}.toc-sidebar .toc-nav ul li a:hover{color:var(--accent-color);border-left-color:var(--accent-color);padding-left:15px;border-bottom:none}.toc-sidebar .toc-nav ul li a.active{color:var(--accent-color);border-left-color:var(--accent-color);font-weight:700}.toc-sidebar .toc-nav ul li ul{margin-left:15px}.toc-sidebar .toc-nav ul li ul a{font-size:13px}.toc-sidebar .toc-nav ul li ul ul{margin-left:15px}.toc-sidebar .toc-nav ul li ul ul a{font-size:12px}.toc-toggle{position:fixed !important;bottom:30px !important;right:30px !important;width:60px;height:60px;background-color:var(--bg-primary);border:2px solid var(--border-color);color:var(--text-primary);cursor:pointer;font-family:var(--font-family);font-size:12px;font-weight:700;letter-spacing:1px;z-index:999 !important;transition:all 0.2s ease;display:flex !important;align-items:center;justify-content:center}.toc-toggle:hover{background-color:var(--accent-color);color:var(--bg-primary);border-color:var(--accent-color)}.toc-toggle.toc-open::after{content:" ✕";margin-left:5px}@media screen and (max-width: 768px){.toc-toggle{display:none !important}}.toc-toggle-text{pointer-events:none}.reading-progress-container{position:fixed;top:0;left:0;width:100%;height:6px;background-color:var(--bg-secondary);z-index:999999}.reading-progress-bar{height:100%;background:var(--accent-color);width:0%;transition:width 0.1s ease}.progress-cat{position:fixed;top:0px;width:35px;height:auto;z-index:1000000;will-change:transform;pointer-events:none;transform:translateX(0)}@media screen and (max-width: 768px){.progress-cat{width:25px}}.reading-time{color:var(--text-secondary);font-size:15px;margin-left:8px}@media screen and (max-width: 768px){.reading-time{display:block;margin-left:0;margin-top:4px}}.lightbox{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.95);z-index:99999;align-items:center;justify-content:center;cursor:zoom-out}.lightbox-image{max-width:95%;max-height:95%;object-fit:contain;box-shadow:0 0 50px rgba(0,0,0,0.8)}.lightbox-close{position:absolute;top:20px;right:40px;color:#fff;font-size:40px;font-weight:bold;cursor:pointer;z-index:100000}.lightbox-close:hover{color:var(--accent-color)}@media screen and (max-width: 768px){.lightbox-close{font-size:30px;top:10px;right:20px}}@keyframes fadein{0%{opacity:1}100%{opacity:1}}@keyframes blur{0%{filter:blur(0px)}100%{filter:blur(0px)}}.embed-responsive{height:0;max-width:100%;overflow:hidden;position:relative;padding-bottom:56.25%;margin-top:20px;border:2px solid #fff}.embed-responsive iframe,.embed-responsive object,.embed-responsive embed{top:0;left:0;width:100%;height:100%;position:absolute}.snow-canvas{position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:2}@media (prefers-reduced-motion: reduce){.snow-canvas{display:none}}pre.highlight,pre{position:relative;margin:30px 0;border:2px solid var(--border-color);background-color:var(--bg-secondary);padding:20px;display:block;overflow-x:auto;font-family:var(--font-family);line-height:1.6}@media screen and (max-width: 768px){pre.highlight,pre{padding:15px;margin:20px -10px}}pre.highlight>code,pre>code{width:100%;line-height:1.6;display:block;border:0;background-color:transparent;color:var(--text-primary);font-size:16px}.highlight table td{padding:5px}.highlight table pre{margin:0;border:0}.highlight,.highlight .w{color:var(--text-primary)}.highlight .err{color:#ff0000;font-weight:bold}.highlight .c,.highlight .cd,.highlight .cm,.highlight .c1,.highlight .cs{color:var(--text-secondary);font-style:italic}.highlight .cp{color:var(--accent-color)}.highlight .nt{color:var(--accent-color)}.highlight .o,.highlight .ow{color:var(--text-primary)}.highlight .p,.highlight .pi{color:var(--text-primary)}.highlight .gi{color:var(--accent-color);background-color:transparent}.highlight .gd{color:#ff0000;background-color:transparent}.highlight .gh{color:var(--text-primary);font-weight:bold}.highlight .k,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kv{color:var(--accent-color);font-weight:bold}.highlight .kc{color:var(--accent-color)}.highlight .kt{color:var(--accent-color)}.highlight .kd{color:var(--accent-color)}.highlight .s,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .s2,.highlight .sh,.highlight .sx,.highlight .s1{color:var(--string-color)}.highlight .sr{color:var(--string-color)}.highlight .si{color:var(--string-color)}.highlight .se{color:var(--accent-color)}.highlight .nn{color:var(--text-primary)}.highlight .nc{color:var(--text-primary);font-weight:bold}.highlight .no{color:var(--accent-color)}.highlight .na{color:var(--text-primary)}.highlight .m,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .il,.highlight .mo,.highlight .mb,.highlight .mx{color:var(--string-color)}.highlight .ss{color:var(--accent-color)}:root,html,body{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--text-primary: #000000;--text-secondary: #666666;--accent-color: #0099ff;--accent-hover: #0077cc;--border-color: #000000;--string-color: #cc6600}html[data-theme="default"],body[data-theme="default"]{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--text-primary: #000000;--text-secondary: #666666;--accent-color: #0099ff;--accent-hover: #0077cc;--border-color: #000000;--string-color: #cc6600}html[data-theme="dark"],body[data-theme="dark"]{--bg-primary: #0d0d0d;--bg-secondary: #1a1a1a;--text-primary: #e0e0e0;--text-secondary: #a0a0a0;--accent-color: #4da6ff;--accent-hover: #66b3ff;--border-color: #333333;--string-color: #ffa500}html[data-theme="light"],body[data-theme="light"]{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--text-primary: #000000;--text-secondary: #666666;--accent-color: #0066cc;--accent-hover: #004499;--border-color: #000000;--string-color: #cc6600}html[data-theme="light-blue"],body[data-theme="light-blue"]{--bg-primary: #e6f2ff;--bg-secondary: #cce5ff;--text-primary: #001a33;--text-secondary: #004080;--accent-color: #0066cc;--accent-hover: #004499;--border-color: #003366;--string-color: #cc3300}html[data-theme="cyberpunk"],body[data-theme="cyberpunk"]{--bg-primary: #0a0a0a;--bg-secondary: #1a0a1a;--text-primary: #ff00ff;--text-secondary: #9933ff;--accent-color: #ff0099;--accent-hover: #cc0077;--border-color: #ff00ff}html[data-theme="matrix"],body[data-theme="matrix"]{--bg-primary: #001a00;--bg-secondary: #003300;--text-primary: #00ff00;--text-secondary: #00aa00;--accent-color: #33ff33;--accent-hover: #00cc00;--border-color: #00ff00}html[data-theme="midnight"],body[data-theme="midnight"]{--bg-primary: #000a1a;--bg-secondary: #001a33;--text-primary: #66ccff;--text-secondary: #3399cc;--accent-color: #00ccff;--accent-hover: #0099cc;--border-color: #66ccff}html[data-theme="terminal"],body[data-theme="terminal"]{--bg-primary: #0d1b0d;--bg-secondary: #1a331a;--text-primary: #33ff33;--text-secondary: #66ff66;--accent-color: #00ff00;--accent-hover: #00cc00;--border-color: #33ff33}html[data-theme="hacker"],body[data-theme="hacker"]{--bg-primary: #1a0000;--bg-secondary: #330000;--text-primary: #ff3333;--text-secondary: #cc0000;--accent-color: #ff0000;--accent-hover: #cc0000;--border-color: #ff3333}body{background-color:var(--bg-primary) !important;color:var(--text-primary) !important}.navbar{background-color:var(--bg-primary);border-bottom-color:var(--border-color)}.menu-link{color:var(--text-primary)}.menu-link:hover{border-color:var(--border-color);background-color:var(--border-color);color:var(--bg-primary)}.menu-link.active{border-color:var(--accent-color);color:var(--accent-color)}.site-title{color:var(--text-primary)}.site-title:hover{color:var(--accent-color)}.author-name{color:var(--text-primary)}.author-bio,.author p{color:var(--text-secondary)}.posts-item-note{color:var(--text-primary);border-bottom-color:var(--border-color)}.post-item{border-bottom-color:var(--bg-secondary)}.post-item:hover{background-color:var(--bg-secondary)}.post-item .post-item-date{color:var(--text-secondary)}.post-item .post-item-title a{color:var(--text-primary)}.post-item .post-item-title a:hover{color:var(--accent-color)}.footer{border-top-color:var(--border-color)}.footer span.footer_item{color:var(--text-primary)}.footer a.footer_item{color:var(--text-primary)}.footer a.footer_item:hover{color:var(--accent-color)}.footer .footer_copyright{color:var(--text-secondary)}h1,h2,h3,h4,h5,h6{color:var(--text-primary)}h2{border-bottom-color:var(--border-color)}a{color:var(--accent-color)}a:hover{color:var(--accent-hover);border-bottom-color:var(--accent-hover)}code{background-color:var(--bg-secondary);color:var(--accent-color);border-color:var(--bg-secondary)}pre{background-color:var(--bg-secondary);border-color:var(--border-color)}pre code{color:var(--text-primary)}blockquote{color:var(--text-secondary);border-left-color:var(--border-color);background-color:var(--bg-secondary)}table{border-color:var(--border-color)}table thead{color:var(--bg-primary);background-color:var(--border-color)}table th,table td,table tr{border-color:var(--border-color)}table tbody tr:hover{background-color:var(--bg-secondary)}kbd{border-color:var(--border-color);color:var(--text-primary);background-color:var(--bg-secondary)}hr{border-top-color:var(--bg-secondary)}.post-meta{color:var(--text-secondary);border-top-color:var(--bg-secondary);border-bottom-color:var(--bg-secondary)}.header .tags .tag{color:var(--accent-color);border-color:var(--accent-color)}.header .tags .tag:hover{background-color:var(--accent-color);color:var(--bg-primary)}.post-nav{border-top-color:var(--border-color);border-bottom-color:var(--border-color)}.post-nav .post-nav-item{color:var(--text-primary)}.post-nav .post-nav-item:hover .post-title{color:var(--accent-color)}.post-nav .post-nav-item .nav-arrow{color:var(--text-secondary)}.post-nav .post-nav-item .post-title{color:var(--text-primary)}.search-article input[type="search"]{color:var(--text-primary);background-color:var(--bg-secondary);border-color:var(--bg-secondary)}.search-article input[type="search"]:focus{border-color:var(--border-color)}.search-article input[type="search"]::-webkit-input-placeholder{color:var(--text-secondary)}.archive-tags .tag-item{border-color:var(--border-color);color:var(--text-primary)}.archive-tags .tag-item:hover{background-color:var(--border-color);color:var(--bg-primary)}.highlight{color:var(--text-primary)}.highlight .k,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kv,.highlight .kc,.highlight .kt,.highlight .kd{color:var(--accent-color)}.highlight .c,.highlight .cd,.highlight .cm,.highlight .c1,.highlight .cs{color:var(--text-secondary)}
