@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-vietnamese-wght-normal.D0rl6rjA.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-ext-wght-normal.D9tNdqV9.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-wght-normal.BhU9QXUp.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA)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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.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}@property --base{syntax:"<color>";inherits:true;initial-value:#141416}@property --s1{syntax:"<color>";inherits:true;initial-value:#0000}@property --s2{syntax:"<color>";inherits:true;initial-value:#0000}@property --s3{syntax:"<color>";inherits:true;initial-value:#0000}@property --accent{syntax:"<color>";inherits:true;initial-value:#bef264}:root,[data-scheme=dark]{--base:#141416;--s1:#34343a;--g1:40% 32% at 12% 0%;--s2:#1e1e22;--g2:32% 39% at 95% 25%;--s3:#0a0a0c;--g3:49% 39% at 50% 115%;--vignette:#00000073;--edge:#0e0e10;--accent:#bef264}[data-scheme=light]{--base:#f5ede1;--s1:#fff9ef;--g1:70% 40% at 65% 5%;--s2:#e2d5bc;--g2:130% 40% at 50% 72%;--s3:#ddcdb0;--g3:40% 25% at 88% 78%;--vignette:transparent;--edge:#ece4d7;--accent:#b45309}:root{--font-sans:"Space Grotesk Variable", ui-sans-serif, system-ui, sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, SFMono-Regular, "Cascadia Mono", Menlo, Consolas, monospace;--maxw:44rem;--radius:14px;--ease:cubic-bezier(.2, .7, .2, 1)}:root,[data-scheme=dark]{color-scheme:dark;--fg:#f4f4f5;--muted:#b4b4ba;--faint:#7c7c85;--line:#ffffff1a;--line-strong:#fff3;--glass:#1010146b;--glass-strong:#101014b3;--pill:#ffffff18;--shadow:0 12px 32px -14px #000000a6;--grain-img:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .2 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");--grain:1}[data-scheme=light]{color-scheme:light;--fg:#1c1b19;--muted:#4a4740;--faint:#857f74;--line:#2f2e2b24;--line-strong:#2f2e2b47;--glass:#fffcf56b;--glass-strong:#faf6eecc;--pill:#2f2e2b17;--shadow:0 12px 32px -16px #503c1e40;--grain-img:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .2 0 0 0 0 .16 0 0 0 0 .1 1.2 0 0 0 -.45'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");--grain:.35}*,:before,:after{box-sizing:border-box}html{background:var(--base);color:var(--fg);font-family:var(--font-sans);-webkit-text-size-adjust:100%;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;scrollbar-gutter:stable;transition:--base .8s var(--ease), --s1 .8s var(--ease), --s2 .8s var(--ease), --s3 .8s var(--ease), --accent .8s var(--ease);scroll-padding-top:7rem;font-size:16px;line-height:1.6}body{flex-direction:column;min-height:100dvh;margin:0;display:flex;overflow-x:hidden}img,svg{max-width:100%;display:block}::selection{background:color-mix(in srgb, var(--accent) 35%, transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}h1,h2,h3,h4{letter-spacing:-.015em;margin:0;font-weight:600;line-height:1.2}p{margin:0}a{color:inherit;text-decoration:none}.link{text-decoration:underline dashed;text-decoration-color:var(--line-strong);text-underline-offset:4px;text-decoration-thickness:1px;transition:color .2s,text-decoration-color .2s}.link:hover{color:var(--accent);text-decoration-color:currentColor}.mono{font-family:var(--font-mono)}.muted{color:var(--muted)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{z-index:100;background:var(--glass-strong);border:1px solid var(--line-strong);border-radius:999px;padding:.5rem .9rem;position:absolute;top:-3rem;left:1rem}.skip:focus{top:1rem}.wallpaper,.grain,.edge-fade{pointer-events:none;position:fixed;inset:0}.wallpaper{z-index:-2;background:linear-gradient(to bottom, transparent 55%, var(--vignette)), radial-gradient(var(--g1), var(--s1), transparent), radial-gradient(var(--g2), var(--s2), transparent), radial-gradient(var(--g3), var(--s3), transparent), var(--base)}.grain{z-index:-1;opacity:var(--grain);background-image:var(--grain-img);background-size:180px}.edge-fade{--c:var(--edge);z-index:30;background:linear-gradient(to top, var(--c), color-mix(in srgb, var(--c) 86%, transparent) 22%, color-mix(in srgb, var(--c) 58%, transparent) 44%, color-mix(in srgb, var(--c) 30%, transparent) 66%, color-mix(in srgb, var(--c) 10%, transparent) 84%, transparent);opacity:0;height:5.5rem;transition:opacity .35s var(--ease);inset:auto 0 0}.edge-fade.show{opacity:1}@supports (animation-timeline:scroll()){.edge-fade{animation-name:edge-fade;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(root)}}@keyframes edge-fade{0%,92%{opacity:1}to{opacity:0}}.wrap{width:min(100% - 2rem, var(--maxw));margin-inline:auto}main{flex:1;padding-block:3.75rem 6rem}.glass{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(18px)saturate(140%)}.label{font-family:var(--font-mono);letter-spacing:.02em;color:var(--muted);font-size:.78rem;font-weight:500}.label .prompt{color:var(--accent);margin-right:.35em}.dots{font-family:var(--font-mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:.25rem 0;margin:0;padding:0;font-size:.8rem;list-style:none;display:flex}.dots li+li:before{content:"·";color:var(--faint);margin-inline:.65rem}.chips{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.chips li{font-family:var(--font-mono);border:1px solid var(--line);color:var(--muted);background:var(--glass);border-radius:999px;padding:.15rem .6rem;font-size:.7rem}.btn{font-family:var(--font-mono);border:1px solid var(--line-strong);background:var(--glass);white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.45rem .9rem;font-size:.75rem;font-weight:600;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.btn:hover{border-color:var(--accent);color:var(--accent)}.icon-btn{width:2.1rem;height:2.1rem;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;place-items:center;padding:0;transition:color .2s,border-color .2s,background .2s;display:inline-grid}.icon-btn:hover,.icon-btn:focus-visible{color:var(--fg);border-color:var(--line);background:var(--glass);outline:none}.icon-btn svg{width:1.05rem;height:1.05rem}.ext:after{content:"↗";color:var(--faint);margin-left:.25em;font-size:.85em}.page-title{margin-top:.75rem;font-size:clamp(2rem,5vw,2.6rem)}.page-head{margin-bottom:3rem}.page-head .lead{color:var(--muted);margin-top:.9rem;font-size:1.05rem}.rows{margin:0;padding:0;list-style:none}.rows>li{border-bottom:1px dashed var(--line)}.rows>li:last-child{border-bottom:0}.to-top{z-index:40;border:1px solid var(--line-strong);background:var(--glass-strong);backdrop-filter:blur(14px);width:2.6rem;height:2.6rem;color:var(--fg);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s, translate .25s var(--ease), border-color .2s;border-radius:999px;place-items:center;display:grid;position:fixed;bottom:1.25rem;right:1.25rem;translate:0 8px}.to-top.show{opacity:1;pointer-events:auto;translate:0}.to-top:hover{border-color:var(--accent)}.to-top svg{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){html{transition:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.site-header[data-astro-cid-nen7h5rs]{z-index:50;transition:translate .35s var(--ease);padding:1.875rem .75rem 0;position:sticky;top:0}.site-header.tucked{translate:0 calc(-100% - .5rem)}.bar[data-astro-cid-nen7h5rs]{width:min(100%, calc(var(--maxw) + 2.5rem));backdrop-filter:blur()saturate();border-radius:999px;align-items:center;gap:1rem;margin-inline:auto;padding:.5rem .6rem .5rem 1.15rem;transition:background-color .3s,box-shadow .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;display:flex}.site-header.scrolled .bar[data-astro-cid-nen7h5rs]{background-color:color-mix(in srgb, var(--base) 45%, transparent);box-shadow:var(--shadow);backdrop-filter:blur(20px)saturate(140%)}.brand[data-astro-cid-nen7h5rs]{letter-spacing:-.01em;white-space:nowrap;margin-right:auto;font-weight:700}nav[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{gap:.15rem;margin:0;padding:0;list-style:none;display:flex}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--muted);border-radius:999px;padding:.375rem .75rem;font-size:.92rem;transition:color .2s,background .2s;display:block}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:var(--fg)}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--fg);background:var(--pill)}.actions[data-astro-cid-nen7h5rs]{align-items:center;gap:.4rem;display:flex}.theme-toggle[data-astro-cid-nen7h5rs]{width:2.25rem;height:2.25rem;color:var(--fg);position:relative}.theme-toggle[data-astro-cid-nen7h5rs] span[data-astro-cid-nen7h5rs]{transition:opacity .3s, rotate .45s var(--ease), scale .3s var(--ease);place-items:center;display:grid;position:absolute;inset:0}.theme-toggle[data-astro-cid-nen7h5rs] svg{stroke-width:2px;width:1.2rem;height:1.2rem}.sun[data-astro-cid-nen7h5rs],[data-scheme=light] .moon[data-astro-cid-nen7h5rs]{opacity:0;rotate:-90deg;scale:.5}[data-scheme=light] .sun[data-astro-cid-nen7h5rs]{opacity:1;rotate:0deg;scale:1}@media (width<=640px){.site-header[data-astro-cid-nen7h5rs]{padding-top:1rem}.bar[data-astro-cid-nen7h5rs]{border-radius:22px;flex-wrap:wrap;row-gap:.25rem;padding-left:1rem}nav[data-astro-cid-nen7h5rs]{order:3;width:100%;margin-inline:-.7rem}.cta[data-astro-cid-nen7h5rs]{display:none}}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);padding-block:1.5rem 2rem}.inner[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.meta[data-astro-cid-jo6i4kqk]{color:var(--faint);font-size:.75rem}.sep[data-astro-cid-jo6i4kqk]{margin-inline:.45rem}.icons[data-astro-cid-jo6i4kqk]{gap:.1rem;margin:0;padding:0;list-style:none;display:flex}
