@font-face{font-family:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;font-stretch:75% 125%;src:url(/_astro/mona-sans-vietnamese-wdth-normal.Rd0aZl9c.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:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;font-stretch:75% 125%;src:url(/_astro/mona-sans-latin-ext-wdth-normal.CQ1tG6In.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:Mona Sans Variable;font-style:normal;font-display:swap;font-weight:200 900;font-stretch:75% 125%;src:url(/_astro/mona-sans-latin-wdth-normal.BMVx8nn_.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: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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.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 Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.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 Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.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 Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.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}:root{color-scheme:light;--bg:#f6f6fc;--panel:#fff;--ink:#0f0e27;--muted:#5c5e7e;--line:#e3e3f1;--dot:#cfcfe4;--soft:#f0ebff;--brand:#6425fc;--solid:#6425fc;--on-solid:#fff;--live:#0a6e94;--live-dot:#00c2ec;--warn:#8a5200;--g1:#f02ee8;--g2:#6a2bff;--g3:#0a6cff;--g4:#00b4e0;--gt1:#b01cd8;--gt2:#6425fc;--gt3:#0a5fe0;--gt4:#0a5fe0;--gb1:#b01cd8;--gb2:#6425fc;--gb3:#2456f0;--t-bg:#100f26;--t-head:#17163a;--t-ink:#e9e8f7;--t-muted:#8d8fb3;--t-acc:#00e5ff;--t-live:#00e5ff;--t-line:#ffffff17;--emb-fill:#ebebf5;--emb-hover:#e1e1ef;--emb-dark:#18144a80;--emb-light:#fff;--r-btn:9px;--r-panel:12px;--col-margin:clamp(10px, 7vw, 92px);--grid:56px;--f-display:"Mona Sans Variable", "Mona Sans", system-ui, sans-serif;--f-body:"Geist Variable", "Geist", system-ui, sans-serif;--f-mono:"Geist Mono Variable", "Geist Mono", ui-monospace, Menlo, monospace;--t-sm:.875rem;--t-base:1.125rem;--t-md:1.375rem;--t-lg:1.75rem;--t-xl:clamp(2rem, 1.4rem + 2.4vw, 3rem);--t-2xl:clamp(2.25rem, 1.4rem + 3.2vw, 3.625rem);--t-hero:clamp(2.75rem, 1.2rem + 6.2vw, 6rem);--r-sm:8px;--r-md:12px;--r-lg:18px;--gutter:clamp(16px, 4vw, 40px);--wrap:1200px;--ease:cubic-bezier(.2, .9, .25, 1.05)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#0a0a18;--panel:#12122b;--ink:#efeffb;--muted:#9c9ec2;--line:#24244b;--dot:#2a2a56;--soft:#1d1648;--brand:#9a7bff;--solid:#6a2bff;--live:#2ee6f5;--live-dot:#00e5ff;--warn:#ffb020;--g1:#ff3df0;--g2:#7b45ff;--g3:#2b86ff;--g4:#00e5ff;--gt1:#ff5cf2;--gt2:#9a7bff;--gt3:#3d9bff;--gt4:#2ee6f5;--gb1:#b01cd8;--gb2:#6a2bff;--gb3:#2456f0;--t-bg:#05060f;--t-head:#0c0d20;--emb-fill:#05060f;--emb-hover:#020309;--emb-dark:#000000f2;--emb-light:#a5afff33}}:root[data-theme=dark]{color-scheme:dark;--bg:#0a0a18;--panel:#12122b;--ink:#efeffb;--muted:#9c9ec2;--line:#24244b;--dot:#2a2a56;--soft:#1d1648;--brand:#9a7bff;--solid:#6a2bff;--live:#2ee6f5;--live-dot:#00e5ff;--warn:#ffb020;--g1:#ff3df0;--g2:#7b45ff;--g3:#2b86ff;--g4:#00e5ff;--gt1:#ff5cf2;--gt2:#9a7bff;--gt3:#3d9bff;--gt4:#2ee6f5;--gb1:#b01cd8;--gb2:#6a2bff;--gb3:#2456f0;--t-bg:#05060f;--t-head:#0c0d20;--emb-fill:#05060f;--emb-hover:#020309;--emb-dark:#000000f2;--emb-light:#a5afff33}.zoomable{position:relative}.zoom-open{z-index:2;border-radius:inherit;color:var(--ink);cursor:zoom-in;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin:0;padding:0;position:absolute;inset:0}.zoom-open:focus-visible{outline:2px solid var(--brand);outline-offset:-3px}.zoom-open svg{border:1px solid var(--line);border-radius:var(--r-btn);background:color-mix(in srgb, var(--bg) 86%, transparent);width:34px;height:34px;color:var(--ink);pointer-events:none;padding:8px;position:absolute;bottom:10px;right:10px}@media (hover:hover){.zoom-open svg{opacity:0}.zoom-open:hover svg,.zoom-open:focus-visible svg{opacity:1}}@media (prefers-reduced-motion:no-preference){.zoom-open svg{transition:opacity .15s}}.zoom-dlg{box-sizing:border-box;color:#fff;background:#080712e0;border:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:clamp(12px,3vw,32px);inset:0;overflow:hidden}.zoom-dlg[open]{grid-template:minmax(0,1fr)/minmax(0,1fr);display:grid}.zoom-dlg::backdrop{background:0 0}.zoom-dlg__body{grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;min-width:0;min-height:0;display:grid}.zoom-dlg__body>:is(img,video){width:auto;height:auto;max-width:min(100%, calc(var(--w) / var(--dpr) * 1px));border-radius:var(--r-panel);background:var(--panel);max-height:100%;display:block;box-shadow:0 30px 90px -20px #0009}.zoom-dlg__close{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));z-index:1;border-radius:var(--r-btn);color:#fff;cursor:pointer;background:#080712b3;border:1px solid #ffffff47;place-items:center;width:40px;height:40px;padding:0;display:grid;position:absolute}.zoom-dlg__close:hover{border-color:#fff9}.zoom-dlg__close:focus-visible{outline-offset:2px;outline:2px solid #fff}@media (prefers-reduced-motion:no-preference){.zoom-dlg__body>:is(img,video){transition:opacity .18s}.zoom-dlg__body>[data-loading]{opacity:0}}html:has(.zoom-dlg[open]){scrollbar-gutter:stable;overflow:hidden}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:root{--dpr:1}@media (resolution>=1.25x){:root{--dpr:1.25}}@media (resolution>=1.5x){:root{--dpr:1.5}}@media (resolution>=2x){:root{--dpr:2}}.capped{max-width:calc(var(--w) / var(--dpr) * 1px)}.capped.centered{margin-inline:auto}.wrap{width:100%;max-width:calc(var(--wrap) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.d,.d-sm{font-family:var(--f-display);letter-spacing:-.034em;text-wrap:balance;font-stretch:110%}.d{font-weight:700}.d-sm{letter-spacing:-.0204em;font-weight:800}.acc{color:var(--brand)}html[data-acc=grad] .acc{background:linear-gradient(90deg, var(--gt1), var(--gt2) 45%, var(--gt3) 80%, var(--gt4));color:#0000;-webkit-background-clip:text;background-clip:text}.btn{border-radius:var(--r-btn);font-size:13px;font-weight:600;line-height:1.2;font-family:var(--f-body);white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:8px 14px;text-decoration:none;transition:filter .15s,transform .15s;display:inline-flex}.btn:active{filter:brightness(.85);transform:scale(.96)}.btn--primary{background:var(--solid);color:var(--on-solid)}html[data-acc=grad] .btn--primary{background:linear-gradient(105deg, var(--gb1), var(--gb2) 55%, var(--gb3))}.btn--ghost{background:var(--panel);border-color:var(--line);color:var(--ink)}.btn--soft{background:color-mix(in srgb, var(--ink) 6%, var(--bg));color:var(--ink)}.btn:disabled{opacity:.45;cursor:not-allowed;filter:none;transform:none}.btn--sm{padding:6px 11px;font-size:12px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px;overflow-x:clip}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:var(--t-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-weight:400;line-height:1.6;overflow-x:clip}img,svg,video{max-width:100%;height:auto;display:block}h1,h2,h3,h4{letter-spacing:-.03em;text-wrap:balance;margin:0;font-weight:600;line-height:1.08}p{text-wrap:pretty;margin:0}a{color:inherit}code,kbd,pre{font-family:var(--f-mono);font-size:.88em}kbd{border:1px solid var(--dot);background:var(--panel);text-align:center;border-bottom-width:2px;border-radius:6px;min-width:1.6em;padding:.05em .45em;font-size:.8em;line-height:1.5;display:inline-block}.kbd-other,:root[data-os=other] .kbd-mac{display:none}:root[data-os=other] .kbd-other{display:inline-block}::selection{color:#fff;background:#6a2bff8c}:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:6px}.skip{z-index:100;border-radius:var(--r-sm);background:var(--ink);color:var(--bg);padding:10px 16px;font-weight:600;text-decoration:none;position:absolute;top:-100px;left:16px}.skip:focus{top:16px}.lede{font-size:var(--t-md);color:var(--muted);max-width:34em;line-height:1.5}.muted{color:var(--muted)}.shot{border-radius:var(--r-lg);background:var(--panel);position:relative;overflow:hidden;box-shadow:0 0 0 1px #ffffff1a,inset 0 1px #ffffff1f,0 40px 80px -30px #000c,0 20px 120px -40px #6a2bff73}.shot img{width:100%}.prose{max-width:42rem;color:var(--muted)}.prose h2{font-size:var(--t-lg);color:var(--ink);margin-top:56px;margin-bottom:16px}.prose h3{font-size:var(--t-md);color:var(--ink);margin-top:32px;margin-bottom:8px}.prose p+p,.prose p+ul,.prose p+ol,.prose ul+p,.prose ol+p{margin-top:16px}.prose ul,.prose ol{padding-left:1.2em}.prose li+li{margin-top:8px}.prose strong{color:var(--ink);font-weight:600}.prose a{color:var(--ink);text-underline-offset:3px;text-decoration-color:#00e5ff80}.gridbg{z-index:-1;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:var(--grid) var(--grid);opacity:.85;pointer-events:none;background-position:top;position:fixed;inset:0}.col{margin-inline:var(--col-margin);border-inline:1px solid var(--line);background:var(--bg);transition:background-color .3s;position:relative}.band{border-top:1px solid var(--line);position:relative}.label{font-family:var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0;font-size:10.5px}.label b{color:var(--brand);font-weight:500}.tag,.chip{font-family:var(--f-mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);color:var(--muted);border-radius:5px;padding:1px 6px;font-size:10px}.chip{border-radius:999px}.tag--pro{color:var(--brand);border-color:color-mix(in srgb, var(--brand) 40%, transparent)}.tag--live{color:var(--live);border-color:color-mix(in srgb, var(--live) 40%, transparent)}.ck-list{flex-direction:column;gap:7px;margin:0;padding:0;font-size:12.5px;list-style:none;display:flex}.ck-list li{color:var(--ink);grid-template-columns:14px 1fr;align-items:start;gap:8px;display:grid}.ck-list li:before{content:"";border-left:1.5px solid var(--brand);border-bottom:1.5px solid var(--brand);width:9px;height:5px;margin-top:5px;transform:rotate(-45deg)}.ck-list li.soon{color:var(--muted)}.ck-list li.soon:before{border-color:var(--dot)}.field{color:var(--muted);gap:6px;font-size:13px;display:grid}.field input,.field textarea{border-radius:var(--r-btn);border:1px solid color-mix(in srgb, var(--muted) 65%, var(--line));background:var(--panel);min-width:0;height:46px;color:var(--ink);font:inherit;padding:0 14px;font-size:16px}.field textarea{resize:vertical;height:auto;min-height:96px;padding:12px 14px}.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:1}.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.field input[inputmode=numeric]{font-family:var(--f-mono);letter-spacing:.2em;max-width:12em}.intro{grid-template-columns:1fr 1fr;align-items:end;gap:16px 36px;padding:clamp(22px,4vw,44px) clamp(16px,3.4vw,44px) clamp(18px,3vw,30px);display:grid}.intro .r{flex-direction:column;gap:12px;display:flex}.intro p{color:var(--muted);font-size:14.5px;line-height:1.6}.inset{margin:0 clamp(12px,3.4vw,44px) clamp(22px,3.6vw,40px)}@media (width<=760px){.intro{grid-template-columns:1fr}}.band-h2{margin:0;font-size:clamp(24px,3.4vw,40px);line-height:1.04}.band-h2.sm{font-size:clamp(22px,2.8vw,30px)}.v-link{color:var(--brand);align-self:flex-start;align-items:center;gap:5px;font-size:13.5px;font-weight:600;text-decoration:none;display:inline-flex}.v-link svg{width:12px;height:12px}.band-prose{grid-template-columns:.8fr 1.2fr;gap:0 40px;padding:clamp(22px,3.6vw,40px) clamp(16px,3.4vw,44px);display:grid}.band-prose>h2{grid-area:1/1/span 9;margin:0}.band-prose>:not(h2){max-width:64ch;color:var(--muted);grid-column:2;margin:0 0 12px;font-size:14.5px;line-height:1.65}.band-prose>:last-child{margin-bottom:0}.band-prose a{color:var(--brand);text-underline-offset:3px;text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--brand) 45%, transparent);font-weight:600}.band-prose a:hover{text-decoration-color:var(--brand)}@media (width<=760px){.band-prose{grid-template-columns:1fr;gap:16px}.band-prose>h2{grid-row:auto}.band-prose>:not(h2){grid-column:1;margin-bottom:0}}.dotlive{background:var(--live-dot);border-radius:50%;flex:none;width:6px;height:6px;display:inline-block}.dotlive.pulse{animation:1.8s ease-in-out infinite dotlive-pulse}@keyframes dotlive-pulse{0%,to{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}@media (prefers-reduced-motion:reduce){.dotlive.pulse{animation:none}}.v-facts{flex-wrap:wrap;gap:6px 16px;margin-top:14px;display:flex}.v-facts span{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:6px;font-size:10.5px;display:flex}.v-facts span:before{content:"";background:var(--brand);width:4px;height:4px}.vp-head{background:var(--t-head);border-bottom:1px solid var(--t-line);font-family:var(--f-mono);color:var(--t-muted);white-space:nowrap;align-items:center;gap:8px;min-width:0;padding:7px 12px;font-size:10.5px;display:flex}.vp-head .who{color:var(--t-ink);text-overflow:ellipsis;overflow:hidden}.vp-head .st{letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;margin-left:auto;font-size:9.5px;display:flex}.vp-head .st i{background:var(--t-muted);border-radius:50%;width:6px;height:6px}.vp-head .st[data-s=working] i,.vp-head .st[data-s=connecting] i{background:var(--t-live)}.vp-head .st[data-s=working],.vp-head .st[data-s=connecting]{color:var(--t-live)}.term{background:var(--t-bg);color:var(--t-ink);font-family:var(--f-mono)}.t-u{color:var(--t-acc)}.t-o{color:var(--t-muted)}.t-c{color:var(--t-ink)}.t-ok{color:var(--t-live)}.t-caret{background:var(--t-live);vertical-align:-2px;width:7px;height:13px;display:inline-block}html[data-acc=grad] .t-caret{background:linear-gradient(180deg, var(--g1), var(--g2) 45%, var(--g3) 75%, var(--g4))}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.band__x:where(.astro-nrld5rh2){z-index:3;width:11px;height:11px;position:absolute}.band__x:where(.astro-nrld5rh2):before,.band__x:where(.astro-nrld5rh2):after{content:"";background:var(--brand);position:absolute}.band__x:where(.astro-nrld5rh2):before{width:1px;height:11px;top:0;left:5px}.band__x:where(.astro-nrld5rh2):after{width:11px;height:1px;top:5px;left:0}.band__x:where(.astro-nrld5rh2).tl{top:-6px;left:-6px}.band__x:where(.astro-nrld5rh2).tr{top:-6px;right:-6px}
