@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-wght-normal.DLoelf7F.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:Red Hat Mono Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/red-hat-mono-latin-ext-wght-normal.BQQ6IFDA.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:Red Hat Mono Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/red-hat-mono-latin-wght-normal.Dwfc5A3M.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-wght-normal.DLoelf7F.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:Red Hat Mono Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/red-hat-mono-latin-ext-wght-normal.BQQ6IFDA.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:Red Hat Mono Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/red-hat-mono-latin-wght-normal.Dwfc5A3M.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-fog:#eef1f4;--color-white:#fff;--color-harbor:#0e2238;--color-slate:#5b6b7c;--color-hairline:#d6dce3;--color-crate:#ef7d3e;--color-bg:var(--color-fog);--color-panel:var(--color-white);--color-ink:var(--color-harbor);--color-text:var(--color-harbor);--color-text-secondary:var(--color-slate);--color-border:var(--color-hairline);--color-accent:var(--color-crate);--color-button-bg:var(--color-harbor);--color-button-text:var(--color-fog);--color-link:var(--color-harbor);--font-display:"Bricolage Grotesque Variable", "Bricolage Grotesque", system-ui, sans-serif;--font-mono:"Red Hat Mono Variable", "Red Hat Mono", ui-monospace, monospace;--radius:.625rem;--ease-house:cubic-bezier(.23, 1, .32, 1)}:root[data-theme=dark],:root.theme-dark{--color-bg:#0a1622;--color-panel:#101f30;--color-ink:#eef1f4;--color-text:#eef1f4;--color-text-secondary:#93a4b6;--color-border:#eef1f424;--color-accent:var(--color-crate);--color-button-bg:var(--color-fog);--color-button-text:var(--color-harbor);--color-link:var(--color-fog)}*{box-sizing:border-box}html{color-scheme:light}html[data-theme=dark]{color-scheme:dark}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-display);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;margin:0}code,pre,kbd,.mono{font-family:var(--font-mono)}a{color:var(--color-link)}::selection{background:var(--color-crate);color:var(--color-harbor)}.skip-link{background:var(--color-harbor);color:var(--color-fog);z-index:100;padding:.5rem 1rem;position:absolute;top:0;left:-9999px}.skip-link:focus{top:1rem;left:1rem}.wrap{max-width:72rem;margin:0 auto;padding-inline:1.5rem}.site-nav{z-index:20;background:var(--color-white);border-bottom:1px solid var(--color-hairline);position:sticky;top:0}:root[data-theme=dark] .site-nav{background:var(--color-panel)}.site-nav .wrap{align-items:center;gap:2rem;height:4rem;display:flex}.brand{color:var(--color-crate);align-items:center;gap:.5rem;font-size:1.05rem;font-weight:700;text-decoration:none;display:flex}.brand span{color:var(--color-text)}.site-nav nav{flex:1;gap:1.5rem;display:flex}.site-nav nav a{color:var(--color-text-secondary);font-size:.95rem;text-decoration:none}.site-nav nav a:hover{color:var(--color-text);text-decoration:underline}.nav-actions{align-items:center;gap:.75rem;display:flex}#theme-toggle{border:1px solid var(--color-hairline);cursor:pointer;width:2.25rem;height:2.25rem;color:var(--color-text);background:0 0;border-radius:999px;place-items:center;display:grid}.theme-icon-dark,:root[data-theme=dark] .theme-icon-light{display:none}:root[data-theme=dark] .theme-icon-dark{display:inline}.btn{border-radius:var(--radius);transition:transform .16s var(--ease-house), opacity .16s var(--ease-house);border:1px solid #0000;justify-content:center;align-items:center;padding:.6rem 1.15rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{opacity:.9}.btn-primary{background:var(--color-button-bg);color:var(--color-button-text)}.btn-secondary{color:var(--color-text);border-color:var(--color-hairline);background:0 0}.site-footer{background:var(--color-harbor);color:var(--color-fog);margin-top:6rem;padding-block:3.5rem 2rem;position:relative;overflow:hidden}.footer-grid{z-index:1;grid-template-columns:1.4fr repeat(3,1fr);gap:2rem;display:grid;position:relative}.footer-brand{flex-direction:column;gap:.5rem;display:flex}.footer-brand>span:nth-child(2){font-weight:700}.site-footer p{color:#93a4b6;margin:0;font-size:.9rem}.site-footer h3{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:#93a4b6;margin:0 0 .75rem;font-size:.75rem}.site-footer ul{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.site-footer a{color:var(--color-fog);font-size:.9rem;text-decoration:none}.site-footer a:hover{text-decoration:underline}.footer-mark{opacity:.12;color:var(--color-fog);position:absolute;bottom:-3rem;right:-2rem}@media (width<=900px){.site-nav nav{display:none}.footer-grid{grid-template-columns:1fr 1fr}}.iso{width:100%;height:auto;color:var(--color-ink);--iso-lit:var(--color-white);--iso-shade:var(--color-fog);--iso-deep:var(--color-hairline);--iso-crate-top:var(--color-crate);--iso-crate-left:color-mix(in srgb, var(--color-crate) 86%, var(--color-harbor));--iso-crate-right:color-mix(in srgb, var(--color-crate) 70%, var(--color-harbor));--iso-shadow-opacity:.1;display:block}:root[data-theme=dark] .iso{--iso-lit:color-mix(in srgb, var(--color-panel) 84%, var(--color-fog));--iso-shade:var(--color-panel);--iso-deep:var(--color-bg);--iso-shadow-opacity:.32}.iso path,.iso line{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.iso .brace{stroke-width:1px;opacity:.55}.iso .thin{stroke-width:1px}.iso .ribbon-out{stroke-width:6.5px}.iso .ribbon-in{stroke:var(--iso-lit);stroke-width:4px}.iso .faint{opacity:.45}.iso .dash{stroke-dasharray:3 4}.iso .shadow{fill:var(--color-harbor);stroke:none;opacity:var(--iso-shadow-opacity)}.iso .crate-top{fill:var(--iso-crate-top)}.iso .crate-left{fill:var(--iso-crate-left)}.iso .crate-right{fill:var(--iso-crate-right)}.iso .lit{fill:var(--iso-lit)}.iso .shade{fill:var(--iso-shade)}.iso .deep{fill:var(--iso-deep)}.iso .ink{fill:currentColor;stroke:none}.hero:where(.astro-lcdefpme){padding-block:3.5rem 4rem}.hero-grid:where(.astro-lcdefpme){grid-template-columns:1.1fr .9fr;align-items:center;gap:3rem;display:grid}h1:where(.astro-lcdefpme){font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-harbor);margin:0 0 1rem;font-size:clamp(2.5rem,5vw,4rem);font-weight:700;line-height:1.05}:root[data-theme=dark] h1:where(.astro-lcdefpme){color:var(--color-fog)}.lede:where(.astro-lcdefpme){color:var(--color-text-secondary);max-width:38rem;font-size:1.15rem;line-height:1.55}.hero-actions:where(.astro-lcdefpme){gap:.75rem;margin:1.5rem 0 2rem;display:flex}.terminal:where(.astro-lcdefpme){background:var(--color-harbor);border-radius:var(--radius);max-width:34rem;overflow:hidden}.terminal-bar:where(.astro-lcdefpme){background:#ffffff0f;gap:.4rem;padding:.6rem .9rem;display:flex}.terminal-bar:where(.astro-lcdefpme) .dot:where(.astro-lcdefpme){background:#ffffff40;border-radius:50%;width:.55rem;height:.55rem}.terminal:where(.astro-lcdefpme) pre:where(.astro-lcdefpme){color:#eef1f4;font-family:var(--font-mono);margin:0;padding:1.1rem 1.25rem 1.4rem;font-size:.85rem;line-height:1.6;overflow-x:auto}.band:where(.astro-lcdefpme){background:var(--color-fog);padding-block:3rem}:root[data-theme=dark] .band:where(.astro-lcdefpme){background:#0d1c2b}.section:where(.astro-lcdefpme){padding-block:3rem}.section:where(.astro-lcdefpme) h2:where(.astro-lcdefpme),.try-copy:where(.astro-lcdefpme) h2:where(.astro-lcdefpme),.migrate-panel:where(.astro-lcdefpme) h2:where(.astro-lcdefpme){font-family:var(--font-display);letter-spacing:-.01em;color:var(--color-harbor);margin:0 0 1.75rem;font-size:1.9rem}:root[data-theme=dark] .section:where(.astro-lcdefpme) h2:where(.astro-lcdefpme),:root[data-theme=dark] .try-copy:where(.astro-lcdefpme) h2:where(.astro-lcdefpme),:root[data-theme=dark] .migrate-panel:where(.astro-lcdefpme) h2:where(.astro-lcdefpme){color:var(--color-fog)}.try-panel:where(.astro-lcdefpme){background:var(--color-white);border:1px solid var(--color-hairline);border-radius:var(--radius);grid-template-columns:1fr 1fr;align-items:center;gap:2rem;padding:2rem;display:grid}:root[data-theme=dark] .try-panel:where(.astro-lcdefpme){background:var(--color-panel)}.try-copy:where(.astro-lcdefpme) p:where(.astro-lcdefpme){color:var(--color-text-secondary);line-height:1.6}.try-copy:where(.astro-lcdefpme) .hint:where(.astro-lcdefpme){font-family:var(--font-mono);color:var(--color-ink);font-size:.85rem}.try-art:where(.astro-lcdefpme){max-width:11rem;margin-bottom:1rem}.try-code:where(.astro-lcdefpme){background:var(--color-fog);border-radius:var(--radius);margin:0;padding:1.25rem;font-size:.82rem;overflow-x:auto}:root[data-theme=dark] .try-code:where(.astro-lcdefpme){background:#101f30}.bench-panel:where(.astro-lcdefpme){background:var(--color-white);border:1px solid var(--color-hairline);border-radius:var(--radius);grid-template-columns:1.3fr 1fr;align-items:center;gap:2rem;margin-bottom:1.75rem;padding:2rem;display:grid}:root[data-theme=dark] .bench-panel:where(.astro-lcdefpme){background:var(--color-panel)}.bench-panel:where(.astro-lcdefpme).reverse{grid-template-columns:1fr 1.3fr}.bench-panel:where(.astro-lcdefpme).reverse .bench-copy:where(.astro-lcdefpme){order:2}.bench-copy:where(.astro-lcdefpme) h3:where(.astro-lcdefpme){font-family:var(--font-display);margin:0 0 .6rem;font-size:1.35rem}.bench-copy:where(.astro-lcdefpme) p:where(.astro-lcdefpme){color:var(--color-text-secondary);line-height:1.6}.bench-table:where(.astro-lcdefpme){border-collapse:collapse;width:100%;margin:1rem 0;font-size:.85rem}.bench-table:where(.astro-lcdefpme) th:where(.astro-lcdefpme),.bench-table:where(.astro-lcdefpme) td:where(.astro-lcdefpme){text-align:left;border-bottom:1px solid var(--color-hairline);padding:.4rem .6rem}.bench-table:where(.astro-lcdefpme) .ratio:where(.astro-lcdefpme){color:var(--color-ink);font-weight:700}.footnote:where(.astro-lcdefpme){color:var(--color-text-secondary);font-size:.85rem}.footnote:where(.astro-lcdefpme) a:where(.astro-lcdefpme){color:var(--color-ink)}.diff-blocks:where(.astro-lcdefpme) pre:where(.astro-lcdefpme){background:var(--color-fog);border-radius:.4rem;margin:.4rem 0;padding:.75rem 1rem}:root[data-theme=dark] .diff-blocks:where(.astro-lcdefpme) pre:where(.astro-lcdefpme){background:#101f30}.bench-art:where(.astro-lcdefpme){justify-self:center;max-width:22rem;padding:1rem}.vocab:where(.astro-lcdefpme){grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem 2rem;margin:-.75rem 0 2rem;padding:0;list-style:none;display:grid}.vocab:where(.astro-lcdefpme) li:where(.astro-lcdefpme){font-family:var(--font-mono);color:var(--color-text-secondary);align-items:center;gap:.75rem;font-size:.8rem;display:flex}.vocab:where(.astro-lcdefpme) .iso{flex:none;width:auto;height:3.5rem}.feature-list:where(.astro-lcdefpme){grid-template-columns:1fr 1fr;gap:1.5rem 3rem;margin:0;display:grid}.feature-row:where(.astro-lcdefpme){border-bottom:1px solid var(--color-hairline);padding-bottom:1rem}.feature-row:where(.astro-lcdefpme) dt:where(.astro-lcdefpme){font-family:var(--font-display);margin-bottom:.25rem;font-weight:700}.feature-row:where(.astro-lcdefpme) dd:where(.astro-lcdefpme){color:var(--color-text-secondary);margin:0;font-size:.95rem;line-height:1.5}.feature-row:where(.astro-lcdefpme) dd:where(.astro-lcdefpme) code:where(.astro-lcdefpme){color:var(--color-ink);margin-top:.35rem;font-size:.8rem;display:block}.migrate-art:where(.astro-lcdefpme){justify-self:center;max-width:17rem;margin-top:1rem}.migrate-panel:where(.astro-lcdefpme){grid-template-columns:.8fr 1.2fr;align-items:start;gap:2.5rem;display:grid}.migrate-panel:where(.astro-lcdefpme) pre:where(.astro-lcdefpme){background:var(--color-harbor);color:#eef1f4;border-radius:.5rem;margin:.75rem 0;padding:1rem 1.25rem;font-size:.82rem;overflow-x:auto}.migrate-panel:where(.astro-lcdefpme) .diff:where(.astro-lcdefpme){background:#101f30}.checklist:where(.astro-lcdefpme){color:var(--color-text-secondary);padding-left:1.1rem;line-height:1.6}.example-grid:where(.astro-lcdefpme){grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.5rem;display:grid}.example-card:where(.astro-lcdefpme){background:var(--color-white);border:1px solid var(--color-hairline);border-radius:var(--radius);color:inherit;transition:transform .16s var(--ease-house);padding:1.25rem;text-decoration:none;display:block}:root[data-theme=dark] .example-card:where(.astro-lcdefpme){background:var(--color-panel)}.example-card:where(.astro-lcdefpme):hover{transform:translateY(-2px)}.example-shot:where(.astro-lcdefpme){background:repeating-linear-gradient(135deg, var(--color-fog), var(--color-fog) 10px, var(--color-hairline) 10px, var(--color-hairline) 11px);height:8rem;font-family:var(--font-mono);color:var(--color-slate);border-radius:.4rem;place-items:center;margin-bottom:.9rem;font-size:.75rem;display:grid}.example-card:where(.astro-lcdefpme) h3:where(.astro-lcdefpme){font-family:var(--font-mono);margin:0 0 .4rem;font-size:.95rem}.example-card:where(.astro-lcdefpme) p:where(.astro-lcdefpme){color:var(--color-text-secondary);margin:0;font-size:.85rem;line-height:1.5}.mono:where(.astro-lcdefpme){font-family:var(--font-mono)}.mono:where(.astro-lcdefpme).small{color:var(--color-text-secondary);font-size:.8rem}@media (width<=900px){.hero-grid:where(.astro-lcdefpme),.try-panel:where(.astro-lcdefpme),.bench-panel:where(.astro-lcdefpme),.bench-panel:where(.astro-lcdefpme).reverse,.migrate-panel:where(.astro-lcdefpme){grid-template-columns:1fr}.hero-grid:where(.astro-lcdefpme)>:where(.astro-lcdefpme),.try-panel:where(.astro-lcdefpme)>:where(.astro-lcdefpme),.bench-panel:where(.astro-lcdefpme)>:where(.astro-lcdefpme),.migrate-panel:where(.astro-lcdefpme)>:where(.astro-lcdefpme){min-width:0}.bench-panel:where(.astro-lcdefpme).reverse .bench-copy:where(.astro-lcdefpme){order:0}.feature-list:where(.astro-lcdefpme){grid-template-columns:1fr}.hero-art:where(.astro-lcdefpme){max-height:16rem;overflow:hidden}.migrate-art:where(.astro-lcdefpme){justify-self:start;max-width:14rem}}
