@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-vietnamese-wght-normal.XAtsl5Q_.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-latin-ext-wght-normal.C4zznr8T.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-latin-wght-normal.E0tuGl4L.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:Archivo Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-vietnamese-wght-italic.D5r7qpn0.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:Archivo Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-latin-ext-wght-italic.DX1NMQXW.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:Archivo Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/archivo-latin-wght-italic.C1arb59o.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:#efeee9;--ink:#161616;--muted:#6e6d68;--line:#d6d4cd;--accent:#a3472b;--accent-2:#4b6f5c;--font:"Archivo Variable", "Helvetica Neue", Arial, sans-serif;--surface:var(--bg);--serif:var(--font);--sans:var(--font);--mono:var(--font);--tone:var(--ink);--tone-soft:var(--muted);--p-red-bg:#f3dcd6;--p-red-fg:#a23a28;--p-blue-bg:#dce6ee;--p-blue-fg:#2d5a7b;--p-green-bg:#e1e8dc;--p-green-fg:#3f6436;--p-yellow-bg:#f6ecc0;--p-yellow-fg:#7d6200;--heat-1:color-mix(in srgb, var(--accent) 28%, var(--bg));--heat-2:color-mix(in srgb, var(--accent) 52%, var(--bg));--heat-3:color-mix(in srgb, var(--accent) 76%, var(--bg))}html[data-theme=dark]{color-scheme:dark;--bg:#141413;--ink:#ecebe6;--muted:#8f8e88;--line:#2e2d2a;--accent:#e38d6f;--accent-2:#93bda4;--p-red-bg:#3a2420;--p-red-fg:#eea596;--p-blue-bg:#1d2b36;--p-blue-fg:#9cc0dc;--p-green-bg:#1f2a1c;--p-green-fg:#a5c99a;--p-yellow-bg:#332b0e;--p-yellow-fg:#e9c21a}@media (prefers-color-scheme:dark){html:not([data-theme=light]){color-scheme:dark;--bg:#141413;--ink:#ecebe6;--muted:#8f8e88;--line:#2e2d2a;--accent:#e38d6f;--accent-2:#93bda4;--p-red-bg:#3a2420;--p-red-fg:#eea596;--p-blue-bg:#1d2b36;--p-blue-fg:#9cc0dc;--p-green-bg:#1f2a1c;--p-green-fg:#a5c99a;--p-yellow-bg:#332b0e;--p-yellow-fg:#e9c21a}}*{box-sizing:border-box}html,body{margin:0}html{scrollbar-gutter:stable}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:17px;line-height:1.5}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}a,button,.feature-title,.rank-title{transition:color .3s ease-out,text-decoration-color .3s ease-out,text-decoration-thickness .3s ease-out}a:hover,button:hover,a:hover .feature-title,a:hover .rank-title{transition-duration:0s}@media (prefers-reduced-motion:reduce){a,button,.feature-title,.rank-title{transition:none}}img{max-width:100%;height:auto;display:block}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.wrap{max-width:78rem;margin:0 auto;padding:0 clamp(1.25rem,3vw,2.25rem)}header.top .inner{justify-content:space-between;align-items:flex-start;gap:1rem 2rem;padding:1.5rem 0;font-size:.9rem;line-height:1.35;display:flex}.mark{text-decoration:none}.mark span{color:var(--muted);display:block}nav.links{flex-wrap:wrap;justify-content:flex-end;gap:.2rem 1.4rem;display:flex}nav.links a{color:var(--muted);text-decoration:none}nav.links a:hover,nav.links a[aria-current=page]{color:var(--ink)}nav.links a[aria-current=page]:before{content:"";background:var(--accent);vertical-align:.08em;width:.5em;height:.5em;margin-right:.4em;display:inline-block}.menu{display:contents}.menu>summary{display:none}.menu::details-content{content-visibility:visible}@media (width<=600px){header.top{position:relative}header.top .inner{align-items:center}.menu{display:block}.menu>summary{cursor:pointer;width:36px;height:36px;color:var(--ink);place-items:center;margin-right:-6px;list-style:none;display:grid}.menu>summary::-webkit-details-marker{display:none}.menu svg{fill:none;stroke:currentColor;stroke-width:1.5px;width:22px;height:22px}.menu .i-close,.menu[open] .i-open{display:none}.menu[open] .i-close{display:block}.menu nav.links{display:none}.menu[open] nav.links{z-index:20;background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-end;gap:.1rem;padding:.4rem clamp(1.25rem,3vw,2.25rem) 1.4rem;font-size:1.15rem;animation:.35s cubic-bezier(.22,.61,.36,1) menu-in;display:flex;position:absolute;top:100%;left:0;right:0}.menu[open] nav.links a{padding:.3rem 0}}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.menu[open] nav.links{animation:none}}.row{border-top:1px solid var(--line);grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(2rem,6vw,6rem);padding:1.6rem 0;display:grid}.row>*{min-width:0}.label{color:var(--muted);margin:.2rem 0 0;font-size:.9rem;font-weight:400}.label a{color:var(--muted);margin-left:.6rem}.label a:hover{color:var(--ink)}.row.page-head{border-top:0;padding:clamp(2.5rem,7vw,5rem) 0 clamp(2rem,5vw,3.5rem)}.page-title,.lede{letter-spacing:-.02em;max-width:17em;margin:0;font-size:clamp(1.75rem,3.4vw,2.85rem);font-weight:400;line-height:1.15}.page-intro{color:var(--muted);max-width:34em;margin:1rem 0 0}.hue{font-weight:600}.hue.accent{color:var(--accent)}.hue.accent-2{color:var(--accent-2)}.body{max-width:38em;margin:0;font-size:clamp(1.02rem,1.4vw,1.15rem);line-height:1.5}.body a,.prose a{text-decoration-color:var(--muted)}.body a:hover,.prose a:hover{text-decoration-color:var(--accent)}.list{max-width:42em;margin:0;padding:0;list-style:none}.list>li{grid-template-columns:5.5rem minmax(0,1fr);gap:1rem;padding:.2rem 0 .7rem;display:grid}.list .meta{color:var(--muted);font-variant-numeric:tabular-nums;padding-top:.1rem;font-size:.9rem}.list a{text-decoration-line:underline;text-decoration-color:#0000}.list a:hover{text-decoration-color:var(--accent)}.list .sub{color:var(--muted);margin-top:.1rem;font-size:.9rem;display:block}.prose{max-width:38em;font-size:1.08rem;line-height:1.65}.prose>:first-child{margin-top:0}.prose h2,.prose h3{margin:2rem 0 .5rem;font-size:1.15rem;font-weight:500}.prose img{margin:1.5rem 0}.prose blockquote{border-left:2px solid var(--accent);color:var(--muted);margin:1.2rem 0;padding-left:1rem}.prose code{font-size:.9em}.hl{color:var(--accent);font-style:normal}.back{color:var(--muted);font-size:.9rem;text-decoration:none}.back:hover{color:var(--ink)}@media (width<=760px){.row{grid-template-columns:1fr;row-gap:.5rem}}html.motion :is([data-reveal],.prose-reveal>:not([data-reveal])):not(.is-in){opacity:0;transform:translateY(12px)}@media print{html.motion :is([data-reveal],.prose-reveal>*){opacity:1;transform:none}}footer{margin-top:clamp(4rem,10vw,8rem)}footer .row{border-top:1px solid var(--ink);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;padding:1.4rem 0 2.5rem;font-size:.875rem;display:flex}footer a{text-decoration-line:underline;text-decoration-color:#0000}footer a:hover{color:var(--ink);text-decoration-color:currentColor}footer .flinks{flex-wrap:wrap;gap:1.2rem;display:flex}footer .fmeta{flex-wrap:wrap;gap:.5rem 2rem;display:flex}@media (width<=600px){footer .row{grid-template-columns:5.5rem minmax(0,1fr) 6.5rem;gap:.7rem 1rem;display:grid}footer .fmeta,footer .flinks{display:contents}footer .flinks a,footer .fmeta>:first-child{white-space:nowrap}footer .flinks .full{display:none}footer .fmeta>:first-child{grid-column:1/3}footer .theme-switch{grid-column:3;justify-content:space-between;gap:0;width:6.5rem}footer .row:after{content:"";background:var(--line);grid-area:2/1/auto/-1;height:1px;margin:.3rem 0}}@media (width<=349px){footer .fmeta>:first-child{grid-column:1/-1}footer .theme-switch{grid-area:2/1/auto/-1;justify-self:end}footer .row:after{grid-row:3}}footer .flinks .short{display:none}@media (width<=600px){footer .flinks .short{display:inline}}.theme-switch{gap:.7rem;display:inline-flex}.theme-switch[hidden]{display:none}.theme-switch button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0}.theme-switch button:hover,.theme-switch button[aria-pressed=true]{color:var(--ink)}
