@layer base{*{box-sizing:border-box}html{scroll-padding-top:5rem}body{background:var(--color-bg);color:var(--color-fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading)}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-strong);text-decoration:underline}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:var(--color-selection)}code{font-family:var(--font-mono);background:var(--color-bg-code);border:1px solid var(--color-border);border-radius:4px;padding:.1em .35em;font-size:.875em}}@layer components{.skip-link{z-index:20;background:var(--color-bg-raised);border:1px solid var(--color-border);color:var(--color-fg);border-radius:6px;padding:.5rem .9rem;font-size:.9rem;position:absolute;top:.5rem;left:.5rem;transform:translateY(calc(-100% - 1rem))}.skip-link:focus-visible{transform:none}.site-header{z-index:10;background:var(--color-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0}.site-header-inner{max-width:var(--container-site);justify-content:space-between;align-items:center;margin:0 auto;padding:.65rem 1.25rem;display:flex}.lockup{color:var(--color-fg);align-items:center;display:flex}.lockup:hover{color:var(--color-fg);text-decoration:none}.logo{width:auto;height:2.1rem;display:block}.logo .logo-body{fill:url(#tl-glass-light)}.logo .logo-shade{fill:url(#tl-shade-light)}.logo .logo-rim{stroke:#0c8a4d;opacity:.6}.logo .logo-halo{fill:#0c9152}@media (prefers-color-scheme:dark){.logo .logo-body{fill:url(#tl-glass-dark)}.logo .logo-shade{fill:url(#tl-shade-dark)}.logo .logo-rim{stroke:#b8ffd4;opacity:.55}.logo .logo-halo{fill:#35e87c}}.site-header nav{gap:1.25rem;display:flex}.site-header nav a{color:var(--color-fg-muted);font-size:.95rem}.site-header nav a:hover{color:var(--color-fg);text-decoration:none}.site-footer{border-top:1px solid var(--color-border);margin-top:4rem}.site-footer-inner{max-width:var(--container-site);color:var(--color-fg-muted);flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;margin:0 auto;padding:1.5rem 1.25rem;font-size:.9rem;display:flex}.landing{max-width:var(--container-site);margin:0 auto;padding:0 1.25rem}.hero{max-width:52rem;padding:5rem 0 3.5rem}.hero h1{letter-spacing:-.025em;margin:0 0 1.25rem;font-size:clamp(2rem,5vw,3rem);font-weight:700;line-height:1.12}.hero .lede{color:var(--color-fg-muted);max-width:var(--container-prose-col);margin:0 0 2rem;font-size:1.2rem}.hero-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.button{background:var(--color-accent-fill);color:var(--color-accent-fill-contrast);border-radius:6px;padding:.6rem 1.2rem;font-weight:600;display:inline-block}.button:hover{background:var(--color-accent-strong);color:var(--color-accent-fill-contrast);text-decoration:none}.install-snippet{font-family:var(--font-mono);background:var(--color-bg-code);border:1px solid var(--color-border);white-space:nowrap;border-radius:6px;max-width:100%;padding:.6rem 1rem;font-size:.9rem;overflow-x:auto}.section{border-top:1px solid var(--color-border);padding:2.75rem 0}.section h2{letter-spacing:-.015em;margin:0 0 1rem;font-size:1.55rem;font-weight:600}.section>p{max-width:var(--container-prose-col)}.section .aside{color:var(--color-fg-muted)}.card-grid{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin-top:1.5rem;display:grid}.card{background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:8px;padding:1.1rem 1.25rem}.card h3{letter-spacing:-.01em;margin:0 0 .5rem;font-size:1.02rem;font-weight:600}.card h3 .step{font-family:var(--font-mono);color:var(--color-accent);margin-right:.5rem}.card p{color:var(--color-fg-muted);margin:0;font-size:.95rem}.docs-shell{max-width:var(--container-site);grid-template-columns:14rem minmax(0,1fr);align-items:start;gap:3rem;margin:0 auto;padding:0 1.25rem;display:grid}.docs-sidebar{padding:1.5rem 0;position:sticky;top:4.5rem}.docs-sidebar ul{margin:0;padding:0;list-style:none}.docs-sidebar li{margin:0}.docs-sidebar a{color:var(--color-fg-muted);border-radius:5px;padding:.35rem .6rem;font-size:.95rem;display:block}.docs-sidebar a:hover{color:var(--color-fg);background:var(--color-bg-raised);text-decoration:none}.docs-sidebar a[aria-current=page]{color:var(--color-accent);background:var(--color-bg-raised);font-weight:600}.docs-sidebar .nested{padding-left:.9rem}@media (width<=48rem){.docs-shell{grid-template-columns:minmax(0,1fr);gap:0}.docs-sidebar{border-bottom:1px solid var(--color-border);padding:1rem 0 0;position:static}.docs-sidebar ul{flex-wrap:wrap;gap:.25rem;padding-bottom:.75rem;display:flex}.docs-sidebar .nested{padding-left:0}}.doc{min-width:0;padding:2rem 0 1rem;font-size:1.0625rem;line-height:1.7}.doc h1{letter-spacing:-.02em;margin:0 0 1rem;font-size:1.9rem;font-weight:700;line-height:1.2}.doc h2{letter-spacing:-.015em;margin:2.5rem 0 .75rem;padding-top:.5rem;font-size:1.4rem;font-weight:600}.doc h3{letter-spacing:-.01em;margin:2rem 0 .5rem;font-size:1.12rem;font-weight:600}.doc h4,.doc h5,.doc h6{margin:1.5rem 0 .5rem;font-size:1rem;font-weight:600}.doc .anchor{color:inherit}.doc .anchor:hover{text-decoration:none}.doc .anchor:hover:after{content:" #";color:var(--color-accent);font-weight:400}.doc p,.doc li{max-width:var(--container-prose-col)}.doc li{margin:.25rem 0}.doc blockquote{border-left:3px solid var(--color-border);color:var(--color-fg-muted);margin:1rem 0;padding:.1rem 0 .1rem 1.1rem}.doc hr{border:none;border-top:1px solid var(--color-border);margin:2.5rem 0}.doc img{max-width:100%;height:auto}.codeblock{border:1px solid var(--color-border);background:var(--color-bg-code);border-radius:8px;margin:1rem 0;position:relative;overflow:hidden}.codeblock[data-lang]:before{content:attr(data-lang);font-family:var(--font-mono);color:var(--color-fg-muted);text-transform:lowercase;font-size:.7rem;position:absolute;top:.4rem;right:.7rem}.codeblock pre{font-family:var(--font-mono);margin:0;padding:.9rem 1.1rem;font-size:.85rem;line-height:1.55;overflow-x:auto}.codeblock code{font-size:inherit;background:0 0;border:none;padding:0}.table-scroll{margin:1rem 0;overflow-x:auto}.doc table{border-collapse:collapse;font-size:.95rem}.doc th,.doc td{border:1px solid var(--color-border);text-align:left;padding:.4rem .75rem}.doc th{background:var(--color-bg-raised)}.prev-next{border-top:1px solid var(--color-border);justify-content:space-between;gap:1rem;margin:3rem 0 2rem;padding-top:1.25rem;display:flex}.prev-next a{flex-direction:column;gap:.15rem;max-width:48%;display:flex}.prev-next a:hover{text-decoration:none}.prev-next .direction{font-family:var(--font-mono);letter-spacing:.02em;color:var(--color-fg-muted);font-size:.75rem}.prev-next .next{text-align:right;margin-left:auto}}@font-face{font-family:Sora;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/sora-latin-ext.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/sora-latin.woff2)format("woff2");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:Sora Fallback;src:local(Arial);ascent-override:85.29%;descent-override:25.5%;line-gap-override:0%;size-adjust:113.73%}:root{--color-bg:#fff;--color-bg-raised:#f4f7f2;--color-bg-code:#f1f5f0;--color-fg:#131712;--color-fg-muted:#5a635a;--color-border:#e1e6e0;--color-accent:#0a7a44;--color-accent-strong:#075c33;--color-accent-fill:#0a7a44;--color-accent-fill-contrast:#fff;--color-selection:#c6f2d8;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-heading:Sora, "Sora Fallback", var(--font-sans);--container-site:72rem;--container-prose-col:42rem}@media (prefers-color-scheme:dark){:root{--color-bg:#060806;--color-bg-raised:#101510;--color-bg-code:#0c110c;--color-fg:#f4f7f2;--color-fg-muted:#a9b3a7;--color-border:#222a22;--color-accent:#35e87c;--color-accent-strong:#8bffbb;--color-accent-fill:#2fe884;--color-accent-fill-contrast:#04170c;--color-selection:#14532d}}
