@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/fraunces-vietnamese-400-normal.CvGt0Ybw.woff2) format("woff2"),url(/_astro/fraunces-vietnamese-400-normal.B65MOf9T.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/fraunces-latin-ext-400-normal.D8gbi3Gu.woff2) format("woff2"),url(/_astro/fraunces-latin-ext-400-normal.UihxqfOe.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/fraunces-latin-400-normal.6IfK1voy.woff2) format("woff2"),url(/_astro/fraunces-latin-400-normal.NUPT2cO8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/dm-sans-latin-ext-400-normal.BtiwyxMk.woff2) format("woff2"),url(/_astro/dm-sans-latin-ext-400-normal.BjWJ59Pq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/dm-sans-latin-400-normal.CW0RaeGs.woff2) format("woff2"),url(/_astro/dm-sans-latin-400-normal.BwCSEQnW.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/dm-sans-latin-ext-500-normal.BJfUCQsA.woff2) format("woff2"),url(/_astro/dm-sans-latin-ext-500-normal.DR84L5F-.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/dm-sans-latin-500-normal.B9HHJjqV.woff2) format("woff2"),url(/_astro/dm-sans-latin-500-normal.Dr3UlScf.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/dm-sans-latin-ext-600-normal.4vooXBpG.woff2) format("woff2"),url(/_astro/dm-sans-latin-ext-600-normal.DRtaDpgU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/dm-sans-latin-600-normal.Aqo67rzb.woff2) format("woff2"),url(/_astro/dm-sans-latin-600-normal.BmdmIIQ2.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.landing{--lp-font-display: "Fraunces", Georgia, "Times New Roman", serif;--lp-font: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--lp-font-mono: var(--__sl-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);--lp-bg: var(--sl-color-bg);--lp-bg-alt: hsl(224, 12%, 13%);--lp-bg-elevated: hsl(224, 14%, 16%);--lp-text: hsl(224, 20%, 94%);--lp-text-body: hsl(224, 8%, 78%);--lp-text-muted: hsl(224, 6%, 67%);--lp-accent: #3cb9ec;--lp-accent-strong: #8ad6f6;--lp-accent-low: rgb(60 185 236 / .13);--lp-accent-glow: rgb(60 185 236 / .35);--lp-on-accent: #04131d;--lp-amber: #f5a524;--lp-amber-low: rgb(245 165 36 / .13);--lp-green: #3ecf8e;--lp-green-low: rgb(62 207 142 / .13);--lp-border-subtle: 1px solid rgb(255 255 255 / .07);--lp-border: 1px solid rgb(255 255 255 / .13);--lp-line: rgb(255 255 255 / .22);--lp-shadow-md: 0 4px 12px rgb(0 0 0 / .4);--lp-shadow-lg: 0 8px 24px rgb(0 0 0 / .5);--lp-section-pad: 5rem;--lp-transition: .25s ease;font-family:var(--lp-font);color:var(--lp-text-body)}:root[data-theme=light] .landing{--lp-bg-alt: #f3f5f8;--lp-bg-elevated: #ffffff;--lp-text: #0f1724;--lp-text-body: #2f3742;--lp-text-muted: #505965;--lp-accent: #00629e;--lp-accent-strong: #004785;--lp-accent-low: rgb(0 98 158 / .08);--lp-accent-glow: rgb(0 98 158 / .22);--lp-on-accent: #ffffff;--lp-amber: #a5540a;--lp-amber-low: rgb(217 119 6 / .1);--lp-green: #127a4a;--lp-green-low: rgb(18 122 74 / .09);--lp-border-subtle: 1px solid rgb(0 0 0 / .07);--lp-border: 1px solid rgb(0 0 0 / .13);--lp-line: rgb(0 0 0 / .25);--lp-shadow-md: 0 4px 12px rgb(0 0 0 / .08);--lp-shadow-lg: 0 8px 24px rgb(0 0 0 / .1)}@media (max-width: 48rem){.landing{--lp-section-pad: 3.5rem}}:where(.landing) :is(h1,h2,h3){font-family:var(--lp-font-display);font-weight:400;letter-spacing:-.02em;line-height:1.15;color:var(--lp-text);margin:0;text-wrap:balance}:where(.landing) p{margin:0;text-wrap:pretty}:where(.landing) a{color:var(--lp-accent);text-underline-offset:.2em}:where(.landing) a:hover{color:var(--lp-accent-strong)}:where(.landing) :focus-visible{outline:2px solid var(--lp-accent);outline-offset:3px;border-radius:6px}:where(.landing) :not(pre)>code{font-family:var(--lp-font-mono);font-size:.875em;padding:.1em .3em;border-radius:4px;background:var(--lp-accent-low);color:var(--lp-text);overflow-wrap:anywhere}.landing .lp-band{border-image:conic-gradient(var(--lp-band-bg, var(--lp-bg)) 0 0) fill 0 / /0 100vmax}@media (prefers-reduced-motion: no-preference){@supports ((animation-timeline: view()) and (animation-range: entry)){@keyframes lp-reveal{0%{opacity:0;translate:0 1.5rem}}.landing .lp-reveal{animation:lp-reveal linear both;animation-timeline:view();animation-range:entry 0% entry 70%}}}
