@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.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:Cal Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cal-sans-vietnamese-400-normal.ZD4NtNj8.woff2)format("woff2"),url(/_astro/cal-sans-vietnamese-400-normal.I4QIi_z4.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:Cal Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cal-sans-latin-ext-400-normal.TtpXEvyb.woff2)format("woff2"),url(/_astro/cal-sans-latin-ext-400-normal.BkuRabHn.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:Cal Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/cal-sans-latin-400-normal.Dbkae8dt.woff2)format("woff2"),url(/_astro/cal-sans-latin-400-normal.xE-7h5s-.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}@font-face{font-family:Geist Pixel Square;src:url(/_astro/GeistPixel-Square.B0mEoKr8.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Geist Pixel Line;src:url(/_astro/GeistPixel-Line.Bn2EgCYP.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Geist Mono;src:url(/_astro/GeistMono-Variable.Dispecij.woff2)format("woff2");font-weight:100 900;font-display:swap}:root{color-scheme:dark;--bg:#000;--raised:#0a0a0a;--line:#1a1a1a;--line-strong:#2a2a2a;--faint:#4a4a4a;--muted:#7a7a7a;--soft:#a8a8a8;--fg:#ececec;--white:#fff;--font-display:"Cal Sans", "Geist Variable", "Geist", system-ui, sans-serif;--font-text:"Geist Variable", "Geist", system-ui, sans-serif;--font-pixel:"Geist Pixel Square", "Geist Mono", ui-monospace, monospace;--font-line:"Geist Pixel Line", "Geist Mono", ui-monospace, monospace;--font-mono:"Geist Mono", ui-monospace, monospace;--tight:-.03em;--gutter:clamp(16px, 4vw, 56px);--max:1440px;--ease:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-text);font-feature-settings:"cv11", "ss01", "ss02";letter-spacing:var(--tight);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:17px;line-height:1.5;overflow-x:clip}::selection{background:var(--white);color:var(--bg)}a{color:inherit;text-decoration:none}:focus-visible{outline:1px solid var(--white);outline-offset:3px;border-radius:2px}img,canvas,svg{max-width:100%;display:block}.wrap{width:100%;max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.section{grid-template-columns:minmax(0,1fr);gap:20px 40px;margin-top:clamp(96px,12vw,168px);display:grid}.section>.content{min-width:0}@media (width>=900px){.section{grid-template-columns:minmax(0,3fr) minmax(0,9fr)}}.section-title{font-family:var(--font-display);letter-spacing:0;color:var(--white);margin:0;font-size:28px;font-weight:400;line-height:1.15}.meta{letter-spacing:-.01em;color:var(--muted);font-variant-numeric:tabular-nums;font-size:15px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.prose{letter-spacing:-.015em;color:#c4c4c4;max-width:680px;font-size:18px;line-height:1.7}.prose>:first-child{margin-top:0}.prose figure{margin:2em 0}.prose figure img,.prose img{border:1px solid var(--line);background:var(--raised);border-radius:8px;width:100%;height:auto}.prose figcaption{color:var(--muted);font-size:14px;font-family:var(--font-mono);margin-top:10px}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre{margin:0 0 1.4em}.prose h2,.prose h3{font-family:var(--font-display);letter-spacing:0;color:var(--white);text-wrap:balance;font-weight:400;line-height:1.2}.prose h2{margin:2.2em 0 .7em;font-size:28px}.prose h3{margin:1.8em 0 .6em;font-size:21px}.prose strong{color:var(--white);font-weight:600}.prose a{color:var(--white);text-decoration:underline;text-decoration-color:var(--faint);text-underline-offset:3px;transition:text-decoration-color .16s var(--ease)}.prose a:hover{text-decoration-color:var(--white)}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.4em}.prose ul li::marker{content:"- ";font-family:var(--font-pixel);color:var(--faint)}.prose ol li::marker{color:var(--muted);font-variant-numeric:tabular-nums}.prose blockquote{border-left:1px solid var(--line-strong);color:var(--soft);padding-left:20px}.prose hr{text-align:center;color:var(--faint);border:0;margin:3em 0}.prose hr:before{content:"* * *";font-family:var(--font-pixel);letter-spacing:.6em}.prose code{font-family:var(--font-mono);letter-spacing:0;font-size:.86em}.prose :not(pre)>code{border:1px solid var(--line);background:var(--raised);color:var(--fg);border-radius:4px;padding:.12em .4em}.prose pre{border:1px solid var(--line);border-radius:10px;padding:18px 20px;font-size:14px;line-height:1.65;overflow-x:auto;background:var(--raised)!important}.prose pre code{font-size:inherit}.prose table{border-collapse:collapse;width:100%;margin:0 0 1.4em;font-size:16px}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;padding:10px 12px 10px 0}.prose th{color:var(--muted);font-size:15px;font-weight:500}.prose kbd{font-family:var(--font-mono);border:1px solid var(--line-strong);color:var(--white);border-radius:4px;padding:.1em .45em;font-size:.82em}.footer-root[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);background:var(--bg);align-items:flex-end;min-height:220px;margin-top:clamp(100px,14vw,180px);display:flex;position:relative;overflow:hidden}.footer-corner-field[data-astro-cid-jo6i4kqk]{pointer-events:none;z-index:0;width:clamp(420px,58vw,820px);height:100%;min-height:260px;position:absolute;bottom:0;right:0;overflow:hidden;-webkit-mask-image:linear-gradient(270deg,#000 40%,#000000b3 65%,#00000026 85%,#0000 100%);mask-image:linear-gradient(270deg,#000 40%,#000000b3 65%,#00000026 85%,#0000 100%)}.field-bloom[data-astro-cid-jo6i4kqk]{background:radial-gradient(70% 65% at 90% 88%,#d6c8b466 0%,#b3a18a4d 28%,#7d6e5e29 55%,#4a40380f 80%,#0000 100%),radial-gradient(65% 60% at 72% 65%,#b3a18a3d 0%,#7d6e5e26 35%,#4a40380d 70%,#0000 100%),radial-gradient(85% 80% at 85% 82%,#4a40384d 0%,#1f1a1629 45%,#0f0d0b0a 80%,#0000 100%);position:absolute;inset:0}.field-brush[data-astro-cid-jo6i4kqk]{opacity:.16;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='b'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.02 0.35' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23b)'/%3E%3C/svg%3E");position:absolute;inset:0}.field-streaks[data-astro-cid-jo6i4kqk]{opacity:.14;mix-blend-mode:overlay;background:repeating-linear-gradient(115deg,#0000 0,#ffffff0a 2px,#0000 4px,#0000000f 6px,#0000 9px);position:absolute;inset:0}.field-grain[data-astro-cid-jo6i4kqk]{opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.footer-content[data-astro-cid-jo6i4kqk]{z-index:1;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;width:100%;padding-top:clamp(80px,12vw,140px);padding-bottom:clamp(40px,6vw,60px);font-size:15px;display:flex;position:relative}.footer-identity[data-astro-cid-jo6i4kqk]{color:var(--soft);letter-spacing:var(--tight);font-size:15px}.footer-links[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;gap:8px 24px;margin:0;padding:0;list-style:none;display:flex}.footer-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--fg);text-shadow:0 1px 3px #000c,0 0 1px #000000e6;transition:color .16s var(--ease), text-shadow .16s var(--ease)}.footer-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--white);text-shadow:0 1px 4px #000000f2}@media (prefers-reduced-transparency:reduce),(forced-colors:active){.footer-corner-field[data-astro-cid-jo6i4kqk]{display:none}}.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}
