@font-face{font-family:space grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/space-grotesk-400.woff2)format("woff2")}@font-face{font-family:space grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/space-grotesk-500.woff2)format("woff2")}@font-face{font-family:space grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-grotesk-700.woff2)format("woff2")}@font-face{font-family:"source serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/source-serif-400.woff2)format("woff2")}@font-face{font-family:"source serif 4";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/source-serif-400-italic.woff2)format("woff2")}@font-face{font-family:"source serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/source-serif-600.woff2)format("woff2")}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400.woff2)format("woff2")}:root{--canvas:#F4F2ED;--surface:#FFFFFF;--surface-subtle:#F1F3F4;--rule:#D9DDDF;--ink:#2E3740;--muted:#66717A;--accent:#28B59F;--teal:#0F5D57;--dark-block:#043836;--on-dark:#EAF4F1;--font-sans:"Space Grotesk", system-ui, -apple-system, "Segoe UI",
    Roboto, sans-serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica,
    Arial, sans-serif;--font-serif:"Source Serif 4", Georgia, "Times New Roman", serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo,
    Consolas, monospace}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--font-sans);font-weight:700;line-height:1.15;letter-spacing:-.01em;color:var(--ink)}h1{font-size:clamp(2rem,5vw,3rem)}h2{font-size:clamp(1.4rem,3vw,1.9rem)}h3{font-size:1.2rem}p{margin:0 0 1rem}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre,kbd,samp{font-family:var(--font-mono)}img,svg{max-width:100%;height:auto}.container{width:100%;max-width:1080px;margin-inline:auto;padding-inline:24px}.hero{padding-block:64px 48px}.hero__brand{margin:0;font-family:var(--font-sans);font-size:clamp(4rem,15vw,9rem);font-weight:700;line-height:.82;letter-spacing:-.065em}.hero__brand span{color:var(--accent)}.hero__title{margin:0 0 16px;max-width:22ch;text-wrap:balance}.hero__sub{max-width:60ch;font-size:1.1rem}.hero__cta{display:inline-block;margin-top:8px;padding:10px 16px;border-radius:6px;background:var(--accent);color:#fff;font-family:var(--font-sans);font-weight:700}.hero__cta:hover{background:#229684;color:#fff;text-decoration:none}.hero h2{margin:48px 0 0}.quickstart{display:grid;grid-template-columns:minmax(0,1.65fr)minmax(0,1fr);margin-top:22px;background:var(--surface);border:1px solid var(--rule);border-radius:10px;overflow:hidden}.quickstart__pane{min-width:0;padding:18px 0 22px;background:var(--dark-block);color:var(--on-dark)}.quickstart__label{margin:0 0 12px;padding-inline:22px;color:var(--accent);font-family:var(--font-sans);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.quickstart__cmd{margin:0 0 16px;padding:0 22px 16px;border-bottom:1px solid rgba(234,244,241,.13);font-family:var(--font-mono);font-size:.9rem;color:var(--on-dark);overflow-wrap:anywhere}.quickstart__cmd::before{content:"$";margin-right:.7em;color:var(--accent);-webkit-user-select:none;user-select:none}.quickstart__pane .highlight{margin:0}.quickstart__pane pre{margin:0;padding:0 22px;background:0 0;font-size:.85rem;line-height:1.65;overflow-x:auto}.quickstart__aside{display:flex;flex-direction:column;align-items:start;justify-content:center;gap:12px;padding:28px 26px}.quickstart__aside p{margin:0}.quickstart__aside>p:first-child{font-family:var(--font-sans);font-size:1.05rem;font-weight:500;line-height:1.4;color:var(--ink)}.quickstart__bridge{color:var(--muted);font-size:.95rem}.quickstart__bridge code{font-size:.88em}.quickstart__aside .hero__cta{margin-top:8px}@media(max-width:860px){.quickstart{grid-template-columns:1fr}.quickstart__aside{padding:22px;gap:10px}}.proof,.grow,.sample,.faces{padding-block:64px 0}.hero h2::after,.grow h2::after,.sample h2::after,.faces h2::after,.proof__slab h2::after{content:"";display:block;width:36px;height:3px;background:var(--accent);margin-top:10px}.grow h2,.sample h2,.faces h2{margin:0 0 14px}.grow__lead,.faces__lead{color:var(--muted);margin:0;max-width:62ch}.grow__steps code,.faces__item code{display:inline-block;width:fit-content;margin:0 0 6px;background:var(--dark-block);color:var(--on-dark);font-size:.8rem;line-height:1.7;padding:2px 10px;border-radius:6px;overflow-wrap:anywhere}.grow__steps{counter-reset:step;list-style:none;margin:28px 0 0;padding:0;border-top:1px solid var(--rule)}@media(min-width:861px){.grow__steps{max-width:calc(100% * 1.65/2.65)}}.grow__steps li{display:grid;grid-template-columns:200px 1fr;column-gap:32px;padding-block:18px;border-bottom:1px solid var(--rule)}.grow__steps strong{grid-column:1;font-family:var(--font-sans);align-self:start}.grow__steps strong::before{counter-increment:step;content:counter(step);display:inline-block;min-width:1.5em;color:var(--accent)}.grow__steps code,.grow__steps span{grid-column:2}.grow__steps span{color:var(--muted);font-size:.95rem}.proof__slab{background:var(--dark-block);color:var(--on-dark);padding:32px;border-radius:10px}.proof__slab h2,.proof__slab h3{color:#fff}.proof__slab h2{margin:0 0 24px}.proof__grid{display:grid;gap:0 32px;grid-template-columns:repeat(2,minmax(0,1fr))}.proof__grid article{border-top:1px solid var(--teal);padding:20px 20px 0 0}.proof__grid h3{font-size:1.1rem;margin:0 0 8px}.proof__grid h3::before{content:"";display:inline-block;width:.4rem;height:.4rem;margin-right:.6rem;background:var(--accent)}.proof__grid p{color:var(--on-dark);font-size:.97rem}.bg{color:#f8f8f2;background-color:#272822}.chroma{color:#f8f8f2;background-color:#272822;-webkit-text-size-adjust:none}.chroma .err{color:#960050;background-color:#1e0010}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#3c3d38}.chroma .lnt,.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kp,.chroma .kr,.chroma .kt,.chroma .no{color:#66d9ef}.chroma .kn,.chroma .nt,.chroma .o,.chroma .ow,.chroma .or,.chroma .gd{color:#f92672}.chroma .na,.chroma .nc,.chroma .nd,.chroma .ne,.chroma .nx,.chroma .nf,.chroma .fm,.chroma .gi{color:#a6e22e}.chroma .l,.chroma .se,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:#ae81ff}.chroma .ld,.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:#e6db74}.chroma .p{color:#f8f8f2}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:#75715e}.chroma .ge{font-style:italic}.chroma .gs{font-weight:700}.chroma .gu{color:#75715e}.bg,.chroma{background-color:var(--dark-block);color:var(--on-dark)}.sample__blocks{display:grid;gap:20px;margin-top:28px}@media(min-width:900px){.sample__blocks{grid-template-columns:1fr 1fr}}.code{display:flex;flex-direction:column;margin:0;min-width:0}.code figcaption{font-family:var(--font-sans);font-size:.78rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:8px}.code .highlight{flex:1;display:flex}.code pre{flex:1;margin:0;background:var(--dark-block);color:var(--on-dark);padding:20px;border-radius:10px;overflow-x:auto;font-size:.84rem;line-height:1.6}.faces__cols{display:grid;gap:40px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));border-top:1px solid var(--rule);margin-top:28px;padding-top:28px}.faces__label{display:block;margin-bottom:16px;color:var(--accent);font-family:var(--font-sans);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.faces__list{list-style:none;margin:0;padding:0;display:grid;gap:20px}.faces__item{display:block;color:var(--ink)}.faces__item:hover{color:var(--ink);text-decoration:none}.faces__item strong{display:block;font-family:var(--font-sans);margin-bottom:4px}.faces__item code{display:block}.faces__item span{display:block;color:var(--muted);font-size:.95rem}.faces__hosted{display:block;margin-top:6px;font-size:.9rem;color:var(--accent)}.faces .hero__cta{margin-top:36px}.book-band{background:var(--teal);color:#fff;margin-top:72px;padding-block:64px}.book-band__eyebrow{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;margin:0 0 12px;color:rgba(255,255,255,.66)}.book-band__title{font-family:var(--font-serif);font-weight:600;color:#fff;font-size:clamp(1.6rem,3.5vw,2.3rem);letter-spacing:0;margin:0 0 12px}.book-band__sub{font-family:var(--font-serif);font-size:1.15rem;color:var(--on-dark);max-width:52ch;margin:0 0 24px}.book-band__cta{font-family:var(--font-sans);font-weight:500;color:#fff;border-bottom:1px solid var(--accent);padding-bottom:2px}.book-band__cta:hover{color:var(--accent);text-decoration:none}.home-cta{padding-block:56px 16px}.home-cta__link{display:inline-block;font-family:var(--font-sans);font-size:clamp(1.05rem,2vw,1.35rem);font-weight:700;white-space:nowrap}.home-cta__link span{margin-right:.35em;color:var(--ink)}.home-cta__link:hover{text-decoration:none}.eyebrow{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.22em;font-size:.8rem;font-weight:500;color:var(--muted);margin:0 0 .75rem}.docs{display:grid;gap:40px;padding-block:40px;align-items:start;grid-template-columns:1fr}@media(max-width:719px){.docs__rail{order:2}.docs__body{order:1}.docs__toc{display:none}}@media(min-width:720px){.docs{grid-template-columns:minmax(0,1fr)220px}.docs__body{grid-column:1;grid-row:1}.docs__rail{grid-column:2;grid-row:1}}.docs__rail{min-width:0;padding:16px;border:1px solid var(--rule);border-radius:8px;background:var(--surface-subtle)}@media(min-width:720px){.docs__rail{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto}}.docs__body{min-width:0;max-width:90ch;overflow-x:clip}.docs__body>h1:first-child{margin-top:0}.docs__body h2{margin-top:2rem}.docs__body .highlight{margin:0 0 1rem;border-radius:8px;overflow:hidden}.docs__body .highlight pre{margin:0;padding:16px 18px;overflow-x:auto;font-size:.85rem;line-height:1.55}.docs__body>pre{background:var(--dark-block);color:var(--on-dark);padding:16px 18px;border-radius:8px;overflow-x:auto;font-size:.85rem;line-height:1.55}.docs__body :not(pre)>code{background:var(--surface-subtle);padding:.12em .36em;border-radius:4px;font-size:.9em}.docs__body table{border-collapse:collapse;width:100%;margin:0 0 1rem}.docs__body th,.docs__body td{border:1px solid var(--rule);padding:8px 12px;text-align:left;font-size:.95rem}.docs__body th{background:var(--surface-subtle)}.docs-version{border-bottom:1px solid var(--rule);margin-bottom:24px;padding-bottom:16px;font-family:var(--font-sans);font-size:.92rem}.docs-version details{display:inline-block}.docs-version summary{color:var(--accent);cursor:pointer;font-weight:700}.docs-version ul{list-style:none;margin:8px 0 0;padding:0}.docs-version li+li{margin-top:4px}.docs-version__outdated{background:var(--surface-subtle);margin:12px 0 0;padding:8px 10px}.docs-provenance{margin-top:3rem;padding-top:16px;border-top:1px solid var(--rule);color:var(--muted);font-family:var(--font-sans);font-size:.86rem}.docs-provenance p{margin:0}.docs-sidebar{font-family:var(--font-sans);font-size:.98rem}.docs-sidebar__home{display:block;font-weight:700;color:var(--accent)}.docs-sidebar ul{list-style:none;margin:0;padding:0}.docs-sidebar>ul>li{margin-bottom:5px}.docs-sidebar a{display:block;padding:3px 8px;border-left:2px solid transparent;color:var(--muted)}.docs-sidebar a:hover{color:var(--accent);text-decoration:none}.docs-sidebar a.is-current{border-left-color:var(--accent);color:var(--accent);font-weight:700}.docs-sidebar__group>span{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:.76rem;color:var(--muted);margin:16px 0 6px}.docs-sidebar__group:first-child>span{margin-top:0}.docs-sidebar__group li{margin-bottom:4px}.docs__toc{font-family:var(--font-sans);font-size:.85rem;margin-top:24px;padding-top:20px;border-top:1px solid var(--rule)}.docs__toc-h{text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:var(--muted);margin:0 0 8px}.docs__toc nav ul{list-style:none;margin:0;padding:0}.docs__toc nav ul ul{padding-left:12px}.docs__toc a{color:var(--muted);display:block;padding:2px 0}.docs__toc a:hover{color:var(--accent);text-decoration:none}.docs-index{list-style:none;margin:1.5rem 0 0;padding:0}.docs-index li{margin-bottom:8px}.docs-index a{font-family:var(--font-sans);font-weight:500}.docs-start{margin-top:2.5rem}.docs-start__eyebrow,.docs-journey__track{margin:0 0 6px;color:var(--muted);font-family:var(--font-sans);font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.docs-start h2{margin:0 0 8px}.docs-start__paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px}.docs-start__path{display:flex;flex-direction:column;gap:10px;min-width:0;background:var(--surface);border:1px solid var(--rule);border-top:3px solid var(--accent);border-radius:10px;padding:20px;color:var(--ink);font-family:var(--font-sans)}.docs-start__path:hover{border-color:var(--accent);text-decoration:none;box-shadow:0 2px 10px rgba(4,56,54,8%)}.docs-start__path strong{color:var(--accent);font-size:1.1rem}.docs-start__who{color:var(--muted);font-size:.92rem;line-height:1.45}.docs-start__chain{counter-reset:step;list-style:none;margin:2px 0 0;padding:0;display:grid;gap:7px;font-size:.93rem}.docs-start__chain li{display:flex;gap:9px;align-items:baseline;color:var(--ink)}.docs-start__chain li::before{counter-increment:step;content:counter(step);min-width:.9em;color:var(--accent);font-size:.74rem;font-weight:700}.docs-start__chain .docs-start__finish{color:var(--muted)}.docs-start__chain li.docs-start__finish::before{counter-increment:none;content:"→";font-size:.85rem}.docs-start__go{margin-top:auto;padding-top:4px;color:var(--accent);font-weight:700;font-size:.95rem}.docs-release{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 20px;margin-top:2.5rem;padding-top:16px;border-top:1px solid var(--rule);font-family:var(--font-sans);font-size:.95rem}.docs-release__label{color:var(--muted);font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.docs-journey{display:none;margin-top:3rem;padding-top:20px;border-top:1px solid var(--rule);font-family:var(--font-sans)}.docs-journey__links,.docs-journey__examples{display:flex;align-items:stretch;justify-content:space-between;gap:12px}.docs-journey__links a,.docs-journey__examples a{border:1px solid var(--rule);border-radius:6px;padding:12px 14px;font-weight:700}.docs-journey__links a:hover,.docs-journey__examples a:hover{border-color:var(--accent);text-decoration:none}.docs-journey__links span{display:block;margin-bottom:3px;color:var(--muted);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.docs-journey__next{margin-left:auto;text-align:right}.docs-journey__complete{font-size:1.1rem}.docs-journey__target:target~.docs-journey{display:block}@media(max-width:719px){.docs-start__paths{grid-template-columns:1fr}.docs-journey__links,.docs-journey__examples{flex-direction:column}.docs-journey__next{margin-left:0;text-align:left}}.openapi-op{border:1px solid var(--rule);border-radius:8px;margin:0 0 10px;padding:10px 14px}.openapi-op summary{cursor:pointer;font-family:var(--font-sans);display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.openapi-op summary code:not(.openapi-op__method){min-width:0;white-space:normal;overflow-wrap:anywhere}.openapi-op a,.openapi-schema a{overflow-wrap:anywhere}.openapi-op__method{display:inline-block;min-width:52px;text-align:center;font-weight:700;border-radius:4px;padding:.1em .5em;background:var(--surface-subtle)}.openapi-op__method--get{color:var(--accent)}.openapi-op__method--post,.openapi-op__method--put,.openapi-op__method--patch,.openapi-op__method--delete{color:var(--teal)}.openapi-op__summary{color:var(--muted)}.openapi-op p{margin:10px 0}.openapi-table-wrap{width:100%;max-width:100%;margin:10px 0;overflow-x:auto;contain:inline-size}.openapi-table{border-collapse:collapse;width:max-content;min-width:100%;margin:0;font-size:.95rem;white-space:nowrap}.openapi-table th,.openapi-table td{border:1px solid var(--rule);padding:6px 10px;text-align:left;vertical-align:top}.openapi-table th{background:var(--surface-subtle)}.openapi-schema{border-top:1px solid var(--rule);padding-top:12px;margin:20px 0 0}.site-header{background:var(--surface);border-bottom:1px solid var(--rule)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:64px}.wordmark{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-sans);font-weight:700;font-size:1.35rem;letter-spacing:.01em;text-transform:uppercase;color:var(--ink)}.wordmark:hover{text-decoration:none}.wordmark__icon{width:32px;height:32px}.wordmark__db{color:var(--accent)}.site-nav{display:flex;flex-wrap:wrap;align-items:center;gap:22px;font-family:var(--font-sans);font-size:.95rem}.site-nav a{color:var(--ink)}.site-nav a:hover{color:var(--accent);text-decoration:none}.site-nav a[aria-current]{color:var(--accent)}.site-nav a.site-nav__github{background:var(--accent);color:#fff;border-radius:6px;padding:6px 12px}.site-nav a.site-nav__github:hover{background:#229684;color:#fff;text-decoration:none}.project-resources{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-top:16px;padding:24px;background:var(--surface);border:1px solid var(--rule);border-radius:10px;font-family:var(--font-sans)}.project-resources span{grid-column:1/-1;color:var(--muted);font-weight:700}.project-resources a{font-weight:500}.project-resources__source{color:var(--ink);border-bottom:2px solid var(--accent);padding-bottom:4px}@media(max-width:600px){.container{padding-inline:18px}.site-header__inner{gap:12px;min-height:56px}.wordmark{font-size:1.1rem;gap:8px}.wordmark__icon{width:26px;height:26px}.site-nav{gap:14px;font-size:.9rem}.hero{padding-block:40px 8px}.hero__title{font-size:1.7rem}.hero h2{margin-top:36px}.proof,.grow,.sample,.faces{padding-block:44px 0}.proof__slab{padding:24px}.proof__grid{grid-template-columns:1fr}.project-resources{grid-template-columns:1fr 1fr}.grow__steps li{grid-template-columns:1fr;row-gap:4px}.grow__steps code,.grow__steps span{grid-column:1}.book-band{margin-top:48px;padding-block:48px}}@media(max-width:420px){.wordmark{font-size:1.05rem}.wordmark__icon{width:24px;height:24px}.site-nav{gap:8px 11px;font-size:.88rem}.site-nav a.site-nav__github{padding:5px 10px}}.site-footer{background:var(--surface);border-top:1px solid var(--rule);margin-top:64px;padding-block:28px;color:var(--muted);font-size:.95rem}.site-footer__tag{margin:0}body:has(.book){background:var(--surface)}body:has(.book) .site-header,body:has(.book) .site-footer{background:var(--canvas)}.book{background:var(--surface);font-family:var(--font-serif)}.book__cover{padding-block:64px 48px}.book__eyebrow{margin-bottom:36px}.book__title-band{background:var(--teal);color:#fff;padding-block:44px}.book__title{margin:0;color:#fff;font-family:var(--font-serif);font-weight:600;font-size:clamp(2.5rem,9vw,4.5rem);letter-spacing:0;line-height:.95}.book__details{padding-block:40px 64px}.book__subtitle{font-size:clamp(1.25rem,3vw,1.6rem);line-height:1.35}.book__author{margin-top:40px;color:var(--ink)}.book__imprint{font-family:var(--font-sans);font-size:.76rem;letter-spacing:.16em}.book__status{margin-top:40px;color:var(--muted)}.book__status p{margin-bottom:0}.book__cta{font-family:var(--font-sans)}@media(max-width:600px){.book__cover{padding-block:32px 24px}.book__eyebrow{margin-bottom:0}.book__title-band{padding-block:28px}.book__title{font-size:clamp(2.1rem,11.5vw,3rem);line-height:1}.book__details{padding-block:28px 44px;font-size:1.125rem}.book__subtitle{font-size:1.375rem;line-height:1.4}.book__author{margin-top:28px}.book__imprint{font-size:.875rem}.book__status{margin-top:28px}}.skip-link{position:absolute;left:-9999px;top:0;padding:8px 16px;background:var(--ink);color:#fff;z-index:10}.skip-link:focus{left:0}