@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--bg:#151613;--surface:#1c1e19;--text:#e9eae3;--muted:#969b8f;--green:#a7c59e;--line:#33362d;--mono:"IBM Plex Mono", monospace;color:var(--text);background:var(--bg);font-synthesis:none;font-family:Inter Variable,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{background:0 0}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--green);outline-offset:5px}::selection{color:var(--bg);background:var(--green)}[hidden]{display:none!important}.mono,kbd{font-family:var(--mono);font-weight:400}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1600px;height:84px;margin:auto;padding:0 5%;display:flex}.wordmark{letter-spacing:.08em;align-items:center;gap:12px;font-size:12px;font-weight:550;display:flex}.wordmark-slash{color:#606857;padding:0 8px}.brand-mark{align-items:flex-end;gap:3px;height:22px;display:inline-flex}.brand-mark i{background:var(--green);width:3px;height:17px;display:block}.brand-mark i:nth-child(2),.brand-mark i:nth-child(4){height:22px}.brand-mark i:nth-child(3){align-self:flex-start}.site-header nav{align-items:center;gap:30px;font-size:12px;display:flex}.site-header nav>a:hover{color:var(--green)}.nav-search{color:var(--muted);border:0;align-items:center;gap:8px;padding:0;display:flex}kbd{color:var(--muted);white-space:nowrap;border:1px solid #414537;border-radius:3px;padding:3px 5px;font-size:10px}.github-link span{color:var(--green);margin-left:12px;font-size:18px}.hero,.library{max-width:1440px;margin:auto;padding-left:5.55%;padding-right:5.55%}.hero{padding-top:46px}.hero-eyebrow{letter-spacing:.08em;color:var(--muted);justify-content:space-between;font-size:10px;display:flex}.hero-eyebrow>span:first-child{align-items:center;gap:10px;display:flex}.status-dot{background:var(--green);width:5px;height:5px;display:inline-block}.hero-heading{justify-content:space-between;align-items:end;gap:30px;margin-top:31px;display:flex}.hero h1{letter-spacing:-.078em;margin:0 0 0 -7px;font-size:clamp(64px,9.5vw,145px);font-weight:450;line-height:1.07}.title-period{color:var(--green)}.hero-github{min-width:112px;padding-bottom:8px;font-size:16px;line-height:1.8}.hero-github>span:first-child{font-family:var(--mono);letter-spacing:.04em;color:var(--muted);font-size:9px;display:block}.hero-github>span:last-child{float:right;color:var(--green)}.hero-github:hover{color:var(--green)}.hero-caption{color:#a5ab9c;letter-spacing:.1em;justify-content:space-between;margin-top:29px;font-size:13px;display:flex}.hero-caption a{color:var(--text);letter-spacing:0;font-size:11px}.hero-caption a span{color:var(--green);margin-left:28px}.bar-field{grid-template-columns:repeat(112,1fr);column-gap:clamp(3px,.62vw,9px);height:198px;margin-top:47px;animation:1.2s ease-out both settle;display:grid;overflow:hidden}.bar-field>span{height:48%;top:var(--offset);background:linear-gradient(to bottom, var(--tone) 0 49%, #087c65 49% 74%, #334538 74% 100%);margin-top:0;position:relative}.bar-field>span:nth-child(3n){background:linear-gradient(to bottom, #3f4736 0 24%, var(--tone) 24% 74%, #8aaa83 74%)}.bar-field>span:nth-child(5n){background:linear-gradient(to bottom, var(--tone) 0 49%, #90b28b 49% 74%, #183c32 74%)}.hero-baseline{color:#868c7d;letter-spacing:.06em;justify-content:space-between;margin-top:18px;font-size:9px;display:flex}.hero-baseline>span:last-child span{color:var(--green);margin-left:21px}.library{padding-top:80px;padding-bottom:92px}.section-heading{border-bottom:1px solid #535b45;justify-content:space-between;align-items:end;gap:24px;padding-bottom:30px;display:flex}.eyebrow{color:var(--muted);letter-spacing:.055em;margin:0 0 18px;font-size:10px}.section-heading h2{letter-spacing:-.05em;margin:0;font-size:30px;font-weight:450}.section-heading h2>span{vertical-align:top;color:var(--green);font-family:var(--mono);letter-spacing:0;margin:3px 0 0 13px;font-size:11px;display:inline-block}.library-search{border:1px solid var(--line);color:#a0a697;align-items:center;gap:13px;height:42px;padding:0 12px;font-size:11px;display:flex}.library-search:hover{border-color:#67785c}.library-search kbd{margin-left:22px}.library-content{grid-template-columns:205px minmax(0,1fr);gap:50px;margin-top:29px;display:grid}.category-label{color:#858b7d;letter-spacing:.075em;margin:0 0 21px;font-size:9px}.category-list>button{text-align:left;width:100%;color:var(--muted);border:0;justify-content:space-between;gap:15px;margin:2px 0;padding:12px 13px;font-size:12px;display:flex}.category-list>button>span:last-child{flex-shrink:0;font-size:10px}.category-list>button.active{color:var(--green);border-left:2px solid var(--green);background:#22271e;padding-left:11px}.category-list>button:hover{color:var(--text)}.list-label{letter-spacing:.045em;color:#858b7d;border-bottom:1px solid var(--line);justify-content:space-between;padding-bottom:16px;padding-right:60px;font-size:9px;display:flex}.note-row{border-bottom:1px solid var(--line);align-items:center;gap:25px;padding:28px 0;transition:background .2s,padding .2s;display:flex}.note-row:hover{background:#1c2019;padding-left:12px;padding-right:12px}.note-number{color:#848c79;align-self:flex-start;padding-top:5px;font-size:10px}.note-summary{flex:1;min-width:0}.note-category{color:var(--green);font-size:10px}.note-summary h3{letter-spacing:-.025em;overflow-wrap:anywhere;margin:10px 0 12px;font-size:23px;font-weight:450}.note-summary p{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:1.7}.reading-time{color:#939b87;white-space:nowrap;font-size:10px}.note-arrow{width:32px;height:32px;color:var(--green);border:1px solid #404834;flex-shrink:0;justify-content:center;align-items:center;margin-left:22px;font-size:19px;transition:color .2s,background .2s;display:flex}.note-row:hover .note-arrow{background:var(--green);color:var(--bg)}.index-end{color:#7b8470;align-items:center;gap:7px;margin:25px 0 0;font-size:9px;display:flex}.end-dot{background:#7b8470;width:4px;height:4px}.site-footer{border-top:1px solid var(--line);max-width:1600px;color:var(--muted);justify-content:space-between;align-items:center;gap:24px;margin:auto;padding:28px 5%;font-size:10px;display:flex}.footer-brand{color:var(--text);align-items:center;gap:10px;font-size:13px;display:flex}.footer-brand .brand-mark{transform-origin:0;margin-right:-6px;transform:scale(.72)}.site-footer>.mono{letter-spacing:.04em;font-size:9px}.site-footer>a:last-child span{color:var(--green);margin-left:18px}.skip-link{z-index:99;background:var(--green);color:var(--bg);padding:12px;position:fixed;top:-80px;left:15px}.skip-link:focus{top:15px}.search-dialog{width:min(680px,100% - 32px);max-height:min(75vh,650px);color:var(--text);background:#1b1e18;border:1px solid #525d45;margin:16vh auto auto;padding:0;box-shadow:0 32px 100px #0008}.search-dialog::backdrop{backdrop-filter:blur(7px);background:#070905cc}.search-top{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:19px 20px;display:flex}.search-top label{color:var(--green);display:flex}.search-top input{color:var(--text);background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:15px}.keycap{font:10px var(--mono);color:var(--muted);border:1px solid #515a45;padding:5px 7px}.search-results{max-height:50vh;overflow:auto}.search-message{color:var(--muted);margin:0;padding:38px 24px;font-size:13px;line-height:1.9}.search-result{border-bottom:1px solid var(--line);padding:22px 55px 22px 24px;display:block;position:relative}.search-result:hover,.search-result.selected{background:#293223}.search-result strong{font-size:16px;font-weight:500}.search-result p{color:#a1aa96;margin:8px 0 0;font-size:12px;line-height:1.8}.result-arrow{color:var(--green);position:absolute;top:24px;right:24px}.search-bottom{color:var(--muted);border-top:1px solid var(--line);justify-content:space-between;gap:12px;padding:14px 20px;font-size:9px;display:flex}.empty-state{color:var(--muted);padding:45px 0}.empty-state h3{color:var(--text);font-weight:450}.not-found{min-height:calc(100vh - 170px);padding:110px 8%}.not-found h1{letter-spacing:-.04em;font-size:clamp(35px,5vw,70px);font-weight:450}.not-found>p:not(.eyebrow){color:var(--muted);line-height:1.8}.return-button{border:1px solid var(--green);color:var(--green);margin-top:20px;padding:14px 22px;font-size:13px;display:inline-block}@keyframes settle{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@media (width>=1600px){.hero,.library{padding-left:80px;padding-right:80px}}@media (width<=800px){.site-header{height:70px}.site-header nav{gap:18px}.nav-search span,.nav-search kbd{display:none}.hero{padding-top:35px}.hero-eyebrow{font-size:8px}.hero-heading{margin-top:30px}.hero h1{margin-left:-3px;font-size:10.6vw}.hero-github{min-width:86px;padding-bottom:2px;font-size:12px}.hero-github>span:first-child{font-size:8px}.hero-caption{margin-top:26px;font-size:11px}.bar-field{grid-template-columns:repeat(80,1fr);column-gap:4px;height:155px;margin-top:35px}.bar-field span:nth-child(n+81){display:none}.hero-baseline{font-size:8px}.library{padding-top:60px;padding-bottom:65px}.library-content{grid-template-columns:150px minmax(0,1fr);gap:25px}.library-search>span{display:none}.library-search kbd{margin-left:0}.reading-time{font-size:9px}.note-row{gap:14px}.note-arrow{margin-left:4px}.site-footer>.mono{display:none}}@media (width<=520px){.wordmark{gap:8px;font-size:10px}.site-header nav{gap:15px;font-size:11px}.site-header nav>a:first-child,.hero-eyebrow>span:last-child{display:none}.hero h1{font-size:14vw}.hero-heading{display:block}.hero-github{display:none}.hero-caption{margin-top:23px}.bar-field{grid-template-columns:repeat(56,1fr);column-gap:3px;height:132px;margin-top:32px}.bar-field span:nth-child(n+57),.hero-baseline>span:last-child{display:none}.library{padding-top:47px}.section-heading{padding-bottom:24px}.section-heading h2{font-size:25px}.library-content{margin-top:20px;display:block}.category-label{display:none}.category-list{gap:8px;padding-bottom:22px;display:flex;overflow:auto}.category-list>button{border:1px solid var(--line);flex-shrink:0;width:auto;padding:9px 11px;font-size:11px}.category-list>button.active{border:1px solid #5e7351;padding-left:11px}.list-label{padding-right:40px;font-size:8px}.note-summary h3{font-size:21px}.note-number{display:none}.note-arrow{width:28px;height:28px}.site-footer{padding-top:22px;padding-bottom:22px}.search-top{gap:10px;padding:16px 14px}.search-top input{font-size:14px}.search-bottom{padding:13px;font-size:8px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
