@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(/_astro/jetbrains-mono-cyrillic-ext-wght-normal.EocZY2iu.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: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}@font-face{font-family:Space Grotesk Fallback;src:local(Arial),local(Helvetica),local(Liberation Sans);size-adjust:107.3%;ascent-override:91.3%;descent-override:27%;line-gap-override:0%}:root{color-scheme:light dark;--field:light-dark(#e9f0fc,#0a1324);--bloom:light-dark(#c9dcfb,#17356b);--bloom-soft:light-dark(#d5e4fc,#122a57);--mist:light-dark(#f4f8ff,#12203c);--glass:light-dark(#ffffffbd,#15213cbd);--glass-edge:light-dark(#ffffffe6,#8caff024);--card:light-dark(#fff,#17253f);--paper:#fff;--line:light-dark(#e0e8f5,#2a3b5e);--line-strong:light-dark(#c8d6ec,#3f5786);--tint:light-dark(#f5f8ff,#1b2c4c);--ink:light-dark(#0f1b33,#eaf0fb);--ink-soft:light-dark(#4f5d76,#a9b6cf);--body:light-dark(#2c3b57,#cdd7ea);--blue:#1668f5;--blue-press:#0f56d6;--blue-deep:light-dark(#0f56d6,#8ebbff);--blue-wash:light-dark(#e8f0fe,#17315f);--blue-edge:light-dark(#bcd3fb,#2f5597);--green:light-dark(#0c7a40,#6ddca2);--green-fill:#0c8a48;--green-wash:light-dark(#e1f6ea,#103c2b);--green-edge:light-dark(#aee3c4,#1d6345);--amber:light-dark(#a84a08,#f7b872);--amber-wash:light-dark(#fdf0e2,#432a10);--amber-edge:light-dark(#f4d2ad,#7a4d1c);--red:light-dark(#b3261e,#ffa49d);--red-wash:light-dark(#fdeaea,#47191b);--red-edge:light-dark(#f3c0bc,#80302f);--teal:light-dark(#0b6e68,#74e0d6);--teal-wash:light-dark(#dff5f3,#0f3b3c);--violet:light-dark(#4f3fd1,#bdb5ff);--violet-wash:light-dark(#ebe9fe,#2a2763);--code-bg:light-dark(#f7faff,#101b31);--code-bar:light-dark(#eef4fe,#17253f);--code-comment:light-dark(#566680,#96a6c2);--shadow-soft:light-dark(#1e40820d,#0000004d);--shadow-wide:light-dark(#1e408238,#0000008c);--shadow-panel:0 1px 2px var(--shadow-soft), 0 18px 40px -22px var(--shadow-wide);--shadow-card:0 1px 2px var(--shadow-soft), 0 10px 24px -16px var(--shadow-wide);--r-panel:4px;--r-card:3px;--r-small:2px;--font-body:"Space Grotesk Variable", "Space Grotesk Fallback", ui-sans-serif, system-ui, sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, "SF Mono", Menlo, monospace}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}html{background:var(--field);scrollbar-gutter:stable}@view-transition{navigation:auto}header.masthead,header.header{view-transition-name:top-bar}.masthead .brand,.site-title{view-transition-name:brand}.sidebar-pane{view-transition-name:sidebar}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:.15s}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(60rem 40rem at 90% -10%, var(--bloom) 0%, transparent 62%), radial-gradient(52rem 36rem at 6% 108%, var(--bloom-soft) 0%, transparent 64%), radial-gradient(46rem 30rem at 45% 50%, var(--mist) 0%, transparent 72%);position:fixed;inset:0}.theme-switch:where(.astro-hds7qqbe){background:var(--card);border:1px solid var(--line-strong);border-radius:var(--r-small);flex:none;align-self:center;gap:.125rem;padding:.1875rem;display:inline-flex}button:where(.astro-hds7qqbe){appearance:none;border-radius:var(--r-small);width:1.75rem;height:1.75rem;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}button:where(.astro-hds7qqbe):hover{color:var(--blue-deep)}:root[data-theme-choice=light] button:where(.astro-hds7qqbe)[data-theme-choice=light],:root[data-theme-choice=dark] button:where(.astro-hds7qqbe)[data-theme-choice=dark],:root[data-theme-choice=auto] button:where(.astro-hds7qqbe)[data-theme-choice=auto]{background:var(--blue-wash);color:var(--blue-deep)}button:where(.astro-hds7qqbe):focus-visible{outline:3px solid var(--blue);outline-offset:1px}.site-menus:where(.astro-kcnbp6m7){align-items:center;gap:.25rem;display:flex;position:relative}.site-menu:where(.astro-kcnbp6m7){position:static}summary:where(.astro-kcnbp6m7){cursor:pointer;color:var(--ink);border-radius:var(--r-small);align-items:center;gap:.35rem;padding:.42rem .8rem;font-size:.98rem;font-weight:500;line-height:1.5;list-style:none;display:inline-flex}summary:where(.astro-kcnbp6m7)::-webkit-details-marker{display:none}summary:where(.astro-kcnbp6m7):hover,.site-menu:where(.astro-kcnbp6m7)[open] summary:where(.astro-kcnbp6m7){background:var(--blue-wash);color:var(--blue-deep)}summary:where(.astro-kcnbp6m7)[aria-current=true]{color:var(--blue-deep);font-weight:600}summary:where(.astro-kcnbp6m7):focus-visible{outline:2px solid var(--blue);outline-offset:2px}summary:where(.astro-kcnbp6m7) svg:where(.astro-kcnbp6m7){transition:transform .15s}.site-menu:where(.astro-kcnbp6m7)[open] summary:where(.astro-kcnbp6m7) svg:where(.astro-kcnbp6m7){transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){summary:where(.astro-kcnbp6m7) svg:where(.astro-kcnbp6m7){transition:none}}.site-menu-panel:where(.astro-kcnbp6m7){z-index:30;background:var(--card);border:1px solid var(--line-strong);border-radius:var(--r-panel);width:min(36rem,100vw - 2rem);box-shadow:var(--shadow-panel);grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem .75rem;padding:.75rem;display:grid;position:absolute;top:calc(100% + .5rem);right:0}.site-menu-panel:where(.astro-kcnbp6m7):before{content:"";height:.6rem;position:absolute;bottom:100%;left:0;right:0}.site-menu-column:where(.astro-kcnbp6m7)+.site-menu-column:where(.astro-kcnbp6m7){border-inline-start:1px solid var(--line);padding-inline-start:.75rem}.site-menu-heading:where(.astro-kcnbp6m7){color:var(--ink-soft);letter-spacing:.01em;margin:.15rem .7rem .35rem;font-size:.8rem;font-weight:600}.site-menu-column:where(.astro-kcnbp6m7) ul:where(.astro-kcnbp6m7){gap:.1rem;margin:0;padding:0;list-style:none;display:grid}.site-menu-column:where(.astro-kcnbp6m7) li:where(.astro-kcnbp6m7){margin:0}.site-menu-panel:where(.astro-kcnbp6m7) a:where(.astro-kcnbp6m7){border-radius:var(--r-small);color:var(--ink);gap:.1rem;padding:.55rem .7rem;text-decoration:none;display:grid}.site-menu-panel:where(.astro-kcnbp6m7) a:where(.astro-kcnbp6m7):hover,.site-menu-panel:where(.astro-kcnbp6m7) a:where(.astro-kcnbp6m7):focus-visible,.site-menu-panel:where(.astro-kcnbp6m7) a:where(.astro-kcnbp6m7)[aria-current=page]{background:var(--blue-wash)}.site-menu-title:where(.astro-kcnbp6m7){font-size:.95rem;font-weight:600;line-height:1.35}.site-menu-text:where(.astro-kcnbp6m7){color:var(--ink-soft);font-size:.85rem;line-height:1.4}.site-menu-panel:where(.astro-kcnbp6m7) a:where(.astro-kcnbp6m7):hover .site-menu-title:where(.astro-kcnbp6m7),.site-menu-panel:where(.astro-kcnbp6m7) a:where(.astro-kcnbp6m7)[aria-current=page] .site-menu-title:where(.astro-kcnbp6m7){color:var(--blue-deep)}@media (width<=640px){summary:where(.astro-kcnbp6m7){padding:.35rem .6rem;font-size:.95rem}.site-menu-panel:where(.astro-kcnbp6m7){grid-template-columns:minmax(0,1fr);left:0;right:auto}.site-menu-column:where(.astro-kcnbp6m7)+.site-menu-column:where(.astro-kcnbp6m7){border-inline-start:0;border-top:1px solid var(--line);padding-inline-start:0;padding-top:.5rem}}
