@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-400-normal.17d05b18.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-ext-400-normal.7daf4077.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-cyrillic-400-normal.17524150.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-400-normal.29859c59.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-greek-400-normal.77d339c7.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-greek-400-normal.4a5b0cb1.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-vietnamese-400-normal.553f85d1.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-vietnamese-400-normal.fd17702b.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-latin-ext-400-normal.4d63b447.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-ext-400-normal.ef62d646.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-latin-400-normal.db9d659a.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-400-normal.b0c7be19.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-500-normal.d9de1144.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-ext-500-normal.02ec8c39.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-cyrillic-500-normal.ae6258df.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-500-normal.00657183.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-greek-500-normal.89c6cba8.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-greek-500-normal.96a101cf.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-vietnamese-500-normal.3bbdce79.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-vietnamese-500-normal.5b6505bb.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-latin-ext-500-normal.b7bedb53.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-ext-500-normal.d0559b71.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/jetbrains-mono-latin-500-normal.af2e87f5.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-500-normal.24c9023a.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-600-normal.3a831a4d.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-ext-600-normal.ec1a271e.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/jetbrains-mono-cyrillic-600-normal.40b4fdec.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-600-normal.6ee2be4b.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/jetbrains-mono-greek-600-normal.642314e1.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-greek-600-normal.41929c71.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/jetbrains-mono-vietnamese-600-normal.ec0f0d2d.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-vietnamese-600-normal.31cb43a1.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/jetbrains-mono-latin-ext-600-normal.c6da524e.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-ext-600-normal.d62c3bc3.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/jetbrains-mono-latin-600-normal.ebeb24f1.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-600-normal.1a59e979.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-700-normal.1a0d0474.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-ext-700-normal.5f007e01.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/jetbrains-mono-cyrillic-700-normal.ffc7bcaa.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-700-normal.d894fc2f.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/jetbrains-mono-greek-700-normal.c396066f.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-greek-700-normal.01f43261.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/jetbrains-mono-vietnamese-700-normal.a2cb9bd4.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-vietnamese-700-normal.ba52a63c.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/jetbrains-mono-latin-ext-700-normal.3125316a.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-ext-700-normal.7c3a7a66.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/jetbrains-mono-latin-700-normal.9545a3d1.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-700-normal.c9484cde.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--bg:#0f0e0a;--panel:#17150e;--ink:#e9e2d0;--inkrgb:233 226 208;--am:#e8b25a;--amrgb:232 178 90;--green:#79c98a;--greenrgb:121 201 138;--red:#e0674a;--redrgb:224 103 74;--scan:0.5;--vig:0.06;--wrap:1040px;--pad:28px;--font-mono:"JetBrains Mono"}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg,#0f0e0a);color:var(--ink,#e9e2d0);font-family:var(--font-mono),"JetBrains Mono",ui-monospace,monospace;-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.7}::selection{background:rgb(var(--amrgb,232 178 90)/.28);color:#fff}a{color:inherit;text-decoration:none}button,input{font-family:inherit}input::placeholder{color:rgb(var(--inkrgb,233 226 208)/.75)}[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--am,#e8b25a);outline-offset:2px}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes flick{0%,to{opacity:.5}92%{opacity:.5}93%{opacity:.37}94%{opacity:.5}97%{opacity:.45}}@keyframes kin{0%{opacity:0;transform:translateY(-8px) scale(.99)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes eq{0%,to{height:20%}50%{height:95%}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes dots{0%,80%,to{transform:scale(.5);opacity:.4}40%{transform:scale(1);opacity:1}}@keyframes shine{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes mq{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes glitch404{0%,91%,to{transform:none;text-shadow:0 0 22px rgb(var(--amrgb,232 178 90)/.5)}92%{transform:translateX(-2px);text-shadow:-2px 0 var(--red,#e0674a),2px 0 var(--green,#79c98a)}94%{transform:translateX(2px);text-shadow:2px 0 var(--red,#e0674a),-2px 0 var(--green,#79c98a)}96%{transform:none;text-shadow:0 0 22px rgb(var(--amrgb,232 178 90)/.5)}}.cur{display:inline-block;width:9px;height:1.05em;background:var(--am,#e8b25a);vertical-align:-2px;animation:blink 1.1s step-end infinite}.wrap{position:relative;z-index:5;max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}.scanlines{z-index:40;background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.15),rgba(0,0,0,.15) 1px,transparent 0,transparent 3px);opacity:var(--scan,.5)}.scanlines,.vignette{position:fixed;inset:0;pointer-events:none}.vignette{z-index:1;background:radial-gradient(120% 75% at 50% 0,rgb(var(--amrgb,232 178 90)/var(--vig,.06)),transparent 62%)}.panel{border:1px solid rgb(var(--amrgb,232 178 90)/.16);background:var(--panel,#17150e)}.prompt{color:rgb(var(--inkrgb,233 226 208)/.75);font-size:13px}.glow{color:var(--am,#e8b25a);text-shadow:0 0 18px rgb(var(--amrgb,232 178 90)/.55)}.badge{font-size:11px;padding:1px 8px;border:1px solid;white-space:nowrap}.badge-tut{color:var(--green,#79c98a)}.badge-essay{color:rgb(var(--amrgb,232 178 90)/.85)}.badge-proj{color:rgb(var(--inkrgb,233 226 208)/.75)}.badge-ok{color:var(--green,#79c98a)}.badge-warn{color:var(--am,#e8b25a)}.badge-fail{color:var(--red,#e0674a)}.btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;padding:9px 18px;cursor:pointer;border:1px solid rgb(var(--inkrgb,233 226 208)/.25);background:transparent;color:var(--ink,#e9e2d0);transition:border-color .2s,background .2s,opacity .2s}.btn-primary{border:none;background:var(--am,#e8b25a);color:var(--bg,#0f0e0a);font-weight:600}.chip{font-size:12px;padding:4px 12px;border:1px solid rgb(var(--amrgb,232 178 90)/.25);color:rgb(var(--inkrgb,233 226 208)/.75);background:transparent;cursor:pointer;transition:border-color .2s,color .2s,background .2s}.chip[data-active=true]{color:var(--bg,#0f0e0a);background:var(--am,#e8b25a);border-color:var(--am,#e8b25a)}.hb:hover{border-color:rgb(var(--amrgb,232 178 90)/.5)}.hb6:hover{border-color:rgb(var(--amrgb,232 178 90)/.6)}.ha:hover{color:var(--am,#e8b25a)}.hbg:hover{background:rgb(var(--amrgb,232 178 90)/.14)}.hrow:hover{background:rgb(var(--amrgb,232 178 90)/.07)}.hop:hover{opacity:.85}.hu:hover{text-decoration:underline}.hglow:hover{box-shadow:0 0 20px rgb(var(--amrgb,232 178 90)/.45)}.nav-burger{display:none}@media (max-width:640px){.nav-full{display:none!important}.nav-burger{display:flex!important}.sb-sub{display:none!important}:root{--pad:18px}.tap{min-height:44px;display:inline-flex;align-items:center}}.rp-bar{transition:transform .1s linear}@media (prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}.rp-bar{transition:none!important}}.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 200px;grid-gap:44px;gap:44px;align-items:start}@media (max-width:860px){.article-grid{grid-template-columns:1fr}.article-aside{display:none}}.repo-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;grid-gap:32px;gap:32px;align-items:start}@media (max-width:860px){.repo-grid{grid-template-columns:1fr}}.prose{font-size:15px;line-height:1.85;color:rgb(var(--inkrgb,233 226 208)/.85)}.prose h2,.prose h3{color:var(--ink,#e9e2d0);font-weight:600;letter-spacing:-.01em;margin:2.2em 0 .8em;scroll-margin-top:80px}.prose h2{font-size:21px}.prose h3{font-size:17px}.prose h2:before{content:"▸ ";color:var(--am,#e8b25a)}.prose p{margin:1.1em 0}.prose a{color:var(--am,#e8b25a);text-decoration:underline;text-underline-offset:2px}.prose ol,.prose ul{padding-left:1.4em;margin:1.1em 0}.prose li{margin:.35em 0}.prose strong{color:var(--ink,#e9e2d0);font-weight:600}.prose code{font-size:.88em;padding:1px 5px;background:rgb(var(--amrgb,232 178 90)/.1);color:var(--am,#e8b25a)}.prose pre{background:var(--panel,#17150e);border:1px solid rgb(var(--amrgb,232 178 90)/.16);border-left:3px solid rgb(var(--amrgb,232 178 90)/.5);padding:16px 18px;overflow-x:auto;font-size:13px;line-height:1.7;margin:1.4em 0}.prose pre code{background:none;padding:0;color:rgb(var(--inkrgb,233 226 208)/.9)}.prose blockquote{border-left:3px solid rgb(var(--greenrgb,121 201 138)/.5);padding:2px 0 2px 18px;margin:1.4em 0;color:rgb(var(--inkrgb,233 226 208)/.75)}.prose h2 a.anchor,.prose h3 a.anchor{text-decoration:none}.hljs-comment,.hljs-quote{color:rgb(var(--inkrgb,233 226 208)/.75);font-style:italic}.hljs-built_in,.hljs-keyword,.hljs-selector-tag{color:var(--am,#e8b25a)}.hljs-attr,.hljs-string,.hljs-template-tag{color:var(--green,#79c98a)}.hljs-literal,.hljs-number{color:var(--red,#e0674a)}.hljs-title,.hljs-title.function_{color:var(--ink,#e9e2d0);font-weight:600}.hljs-class .hljs-title,.hljs-type{color:rgb(var(--amrgb,232 178 90)/.8)}.hljs-meta{color:rgb(var(--inkrgb,233 226 208)/.75)}