.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}@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: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}:root{--fg:light-dark(#111,#eee);--text-primary:light-dark(#111,#fff);--text-secondary:light-dark(#111c,#fffc);--text-tertiary:light-dark(#1119,#fff9);--line:light-dark(#e4e4e4,#2a2a2a);--bg:light-dark(#fff,#111);--accent:light-dark(#1a5cff,#7aa2ff);--pill:#e8b020;--pill-fg:#111;--gap:clamp(1rem, 3vw, 2rem);--edge:clamp(1.5rem, 6vw, 6rem);--font-body:"Inter Variable", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-heading:"Cal Sans", "Inter Variable", ui-sans-serif, system-ui, sans-serif;color-scheme:light dark;font-family:var(--font-body);color:var(--text-secondary);background:var(--bg);line-height:1.55}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*{box-sizing:border-box}body{margin:0}img{max-width:100%;height:auto;display:block}a{color:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-primary);font-weight:400;line-height:1.2}.shell{column-gap:calc(var(--edge) / 2);padding-inline:calc(var(--edge) / 2);grid-template-columns:12rem minmax(0,1fr);min-height:100vh;display:grid}.site-header{flex-direction:column;align-self:start;gap:2rem;height:100svh;padding-block:1.5rem;display:flex;position:sticky;top:0}.site-menu{display:contents}.menu-button{display:none}.site-header .theme-toggle{margin-top:auto}.site-header nav{flex-direction:column;gap:1.5rem;display:flex}.nav-group{flex-direction:column;gap:.25rem;display:flex}.nav-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);font-size:.75rem}.site-header a{text-decoration:none}.site-header nav a{font-family:var(--font-heading);align-self:flex-start;padding-block:.3rem;position:relative}.site-header nav a:after{content:"";background:var(--pill);opacity:.5;width:0;height:1px;transition:width .2s;position:absolute;bottom:.1rem;left:0}.site-header nav a:hover:after,.site-header nav a:focus-visible:after{width:100%}.site-header nav a[aria-current]:after{opacity:1;width:100%}@media (prefers-reduced-motion:reduce){.site-header nav a:after{transition:none}}.wordmark{font-family:var(--font-heading);color:var(--text-primary);font-size:1.5rem;line-height:1.2}.content{flex-direction:column;min-width:0;display:flex}main{flex:1;padding-top:1.5rem}h1{margin:0 0 1.5rem;font-size:1.5rem}@media (width<=767px){.shell{display:block}.site-header{z-index:10;gap:0;height:auto;padding-block:1rem;position:relative}.header-bar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.menu-button{width:2.5rem;height:2.5rem;color:var(--text-primary);cursor:pointer;background:0 0;border:0;border-radius:.375rem;justify-content:center;align-items:center;margin-inline-end:-.5rem;padding:0;display:inline-flex}.menu-button:hover{background:color-mix(in srgb, var(--fg) 8%, transparent)}.menu-close,.menu-button[aria-expanded=true] .menu-open{display:none}.menu-button[aria-expanded=true] .menu-close{display:inline}.site-header[data-menu=open]{position:sticky;top:0}html:has(.site-header[data-menu=open]){overflow:hidden}.site-menu{z-index:-1;padding:6rem calc(var(--edge) / 2) 2rem;background:color-mix(in srgb, var(--bg) 90%, transparent);isolation:isolate;flex-direction:column;gap:2rem;display:none;position:fixed;inset:0;overflow-y:auto}.site-menu:before{content:"";z-index:-1;background:var(--bg);-webkit-mask:var(--pattern) 0 0 / 2px 2px;mask:var(--pattern) 0 0 / 2px 2px;pointer-events:none;position:absolute;inset:0}.site-header[data-menu=open] .site-menu{display:flex}.site-header .theme-toggle{margin-top:0}}.muted{color:var(--text-secondary)}.prose{max-width:42rem}.prose img{margin-block:2rem}.grid{gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));padding:0;list-style:none;display:grid}@keyframes fade-up{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:none}}.grid>li{animation:.5s ease-out .77s both fade-up}.grid>li:first-child{animation-delay:0s}.grid>li:nth-child(2){animation-delay:70ms}.grid>li:nth-child(3){animation-delay:.14s}.grid>li:nth-child(4){animation-delay:.21s}.grid>li:nth-child(5){animation-delay:.28s}.grid>li:nth-child(6){animation-delay:.35s}.grid>li:nth-child(7){animation-delay:.42s}.grid>li:nth-child(8){animation-delay:.49s}.grid>li:nth-child(9){animation-delay:.56s}.grid>li:nth-child(10){animation-delay:.63s}.grid>li:nth-child(11){animation-delay:.7s}.grid>li:nth-child(12){animation-delay:.77s}@media (prefers-reduced-motion:reduce){.grid>li{animation:none}}.badge{border:1px solid var(--line);color:var(--text-secondary);border-radius:999px;padding:.1rem .5rem;font-size:.75rem;display:inline-block}.badge.draft{color:orange;border-color:orange}.meta{grid-template-columns:max-content 1fr;gap:.25rem 1.5rem;display:grid}.meta dt{color:var(--text-secondary)}.meta dd{margin:0}figure{margin:0 0 2rem}figcaption{color:var(--text-secondary);margin-top:.5rem;font-size:.9rem}.theme-toggle[data-astro-cid-l6lhmie6]{border:1px solid var(--line);border-radius:999px;align-self:flex-start;gap:.1rem;padding:.2rem;display:inline-flex}button[data-astro-cid-l6lhmie6]{width:1.9rem;height:1.9rem;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:background-color .15s,color .15s;display:inline-flex}button[data-astro-cid-l6lhmie6]:hover{background:color-mix(in srgb, var(--pill) 30%, transparent);color:var(--text-primary)}button[data-astro-cid-l6lhmie6][aria-pressed=true]{background:var(--pill);color:var(--pill-fg)}
