.proj,.proj *{transition:none}.proj{--bg:#fbfbfa;--surface:#fff;--ink:#141414;--ink-2:#5c5c5a;--line:#e6e6e3;--code-bg:#f3f3f1;--accent:#2459d6;--mark:#dfe8fc;--kw:#8a3ab9;--st:#186a42;--ok:#1f7a4d;--err:#b42318;--sans:"Geist", ui-sans-serif, system-ui, sans-serif;--mono:"Geist Mono", ui-monospace, monospace;background:var(--bg);color:var(--ink);font:400 1rem/1.6 var(--sans);-webkit-font-smoothing:antialiased;caret-color:var(--accent);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;flex-grow:1}@media (prefers-color-scheme:dark){.proj{--bg:#111110;--surface:#181817;--ink:#ededec;--ink-2:#a1a19d;--line:#2a2a28;--code-bg:#1d1d1c;--accent:#7ea2f0;--mark:#1f2d4d;--kw:#c99bea;--st:#7fc8a0;--ok:#7fc8a0;--err:#f2877c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}.proj ::selection{background:var(--mark)}.proj a{color:inherit;-webkit-text-decoration-color:color-mix(in oklab, var(--ink-2) 50%, transparent);text-decoration-color:color-mix(in oklab, var(--ink-2) 50%, transparent);text-underline-offset:.2em}.proj a:hover{color:inherit;text-decoration-color:currentColor}.proj :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}.proj code,.proj pre{font-family:var(--mono)}.proj .wrap{width:min(880px,100% - 3rem);margin-inline:auto}.proj .top{justify-content:space-between;align-items:center;padding-block:1.5rem;display:flex}.proj .brand{font-weight:500;text-decoration:none}.proj .brand span{color:var(--ink-2);font-weight:400}.proj .top nav{gap:1.5rem;font-size:.95rem;display:flex}.proj .top nav a{color:var(--ink-2);text-decoration:none}.proj .top nav a:hover{color:var(--ink)}.proj .hero{padding-block:6rem 4rem}.proj h1{letter-spacing:-.035em;margin:0 0 1.25rem;font-size:clamp(2.5rem,6vw,4rem);font-weight:600;line-height:1.05}.proj .lede{color:var(--ink-2);text-wrap:pretty;max-width:34em;margin:0 0 2rem;font-size:1.2rem}.proj .meta{color:var(--ink-2);flex-wrap:wrap;gap:.4rem 1.25rem;margin-top:1.25rem;font-size:.88rem;display:flex}.proj .actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.proj .btn{height:2.75rem;font:500 .95rem var(--sans);cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:.5rem;padding:0 1.1rem;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.proj .btn svg{width:1rem;height:1rem}.proj .btn-dark{background:var(--ink);color:var(--bg)}.proj .btn-dark:hover{color:var(--bg);background:color-mix(in oklab, var(--ink) 82%, var(--bg))}.proj .btn-line{border-color:var(--line);background:var(--surface)}.proj .btn-line:hover{border-color:color-mix(in oklab, var(--ink-2) 45%, var(--line))}.proj .install{border:1px solid var(--line);background:var(--surface);height:2.75rem;font:400 .9rem var(--mono);border-radius:8px;align-items:center;max-width:100%;padding:0 .35rem 0 1rem;display:inline-flex}.proj .install .p{color:var(--ink-2);opacity:.6;margin-right:.6rem}.proj .install>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.proj .copy{height:2rem;color:var(--ink-2);font:500 .82rem var(--sans);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;margin-left:.5rem;padding:0 .6rem}.proj .copy:hover{background:var(--code-bg);color:var(--ink)}.proj pre.code{background:var(--code-bg);border-radius:10px;margin:0;padding:1.25rem 1.5rem;font-size:.88rem;line-height:1.7;overflow-x:auto}.proj .kw{color:var(--kw)}.proj .st{color:var(--st)}.proj .mark{background:var(--mark);box-shadow:0 0 0 3px var(--mark);border-radius:3px}.proj .caption{color:var(--ink-2);margin:.6rem 0 0;font-size:.85rem}.proj section{border-top:1px solid var(--line);padding-block:4rem}.proj section.first{border-top:0;padding-top:0}.proj h2{letter-spacing:-.02em;margin:0 0 .75rem;font-size:1.6rem;font-weight:600;line-height:1.2}.proj h3{margin:0 0 .5rem;font-size:1rem;font-weight:500}.proj .sub{color:var(--ink-2);max-width:36em;margin:0 0 2rem}.proj p code,.proj li code,.proj td code{background:var(--code-bg);border-radius:4px;padding:.12em .35em;font-size:.88em}.proj .rows{margin:0;padding:0;list-style:none}.proj .rows li{border-top:1px solid var(--line);grid-template-columns:11rem 1fr;gap:.15rem 1.5rem;padding-block:1rem;display:grid}.proj .rows li:last-child{border-bottom:1px solid var(--line)}.proj .rows.narrow li{grid-template-columns:5.5rem 1fr}.proj .rows .name{grid-row:span 2;font-weight:500}.proj .rows code.call{background:0 0;padding:0;font-size:.9rem}.proj .rows .desc{color:var(--ink-2);font-size:.95rem}.proj .demo{border:1px solid var(--line);background:var(--surface);border-radius:10px;overflow:hidden}.proj .tabs{border-bottom:1px solid var(--line);gap:.25rem;padding:.5rem;display:flex}.proj .tabs button{cursor:pointer;font:400 .9rem var(--sans);color:var(--ink-2);background:0 0;border:0;border-radius:6px;padding:.35rem .8rem;transition:background-color .15s,color .15s}.proj .tabs button:hover{color:var(--ink)}.proj .tabs button[aria-checked=true]{background:var(--code-bg);color:var(--ink);font-weight:500}.proj .demo pre{min-height:12.5em;margin:0;padding:1.25rem 1.5rem;font-size:.86rem;line-height:1.7;overflow-x:auto}.proj .result{border-top:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:.75rem;padding:.9rem 1.5rem;font-size:.9rem;display:flex}.proj .result code{font-size:.86rem}.proj .status{font-family:var(--mono);font-weight:500}.proj .status.ok{color:var(--ok)}.proj .status.err{color:var(--err)}.proj .result .note{color:var(--ink-2)}.proj table{border-collapse:collapse;width:100%}.proj td{border-top:1px solid var(--line);vertical-align:top;padding:.85rem 0}.proj tr:last-child td{border-bottom:1px solid var(--line)}.proj td:first-child{width:40%;padding-right:1.5rem}.proj td:first-child code{background:0 0;padding:0;font-size:.9rem}.proj td:last-child{color:var(--ink-2)}.proj .pair{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);align-items:start;gap:1.25rem;display:grid}.proj .signin{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:1.5rem;box-shadow:0 1px 2px #0000000a,0 8px 24px -12px #0000001f}.proj .signin .app{align-items:center;gap:.6rem;margin-bottom:1.25rem;font-weight:500;display:flex}.proj .signin .logo{background:var(--ink);width:1.75rem;height:1.75rem;color:var(--bg);border-radius:7px;place-items:center;font-size:.8rem;font-weight:600;display:grid}.proj .signin label{color:var(--ink-2);margin-bottom:.35rem;font-size:.85rem;display:block}.proj .signin .field{border:1px solid var(--line);border-radius:8px;align-items:center;height:2.5rem;margin-bottom:.75rem;padding:0 .75rem;font-size:.92rem;display:flex}.proj .signin .btn{justify-content:center;width:100%;height:2.5rem;font-size:.9rem}.proj .signin .or{text-align:center;color:var(--ink-2);margin:.6rem 0;font-size:.8rem}.proj .signin .fine{color:var(--ink-2);text-align:center;margin:1rem 0 0;font-size:.78rem}.proj .roadmap{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;display:grid}.proj .roadmap ul{margin:0;padding:0;list-style:none}.proj .roadmap li{border-top:1px solid var(--line);color:var(--ink-2);padding-block:.45rem;font-size:.95rem}.proj .roadmap h3{align-items:center;gap:.5rem;display:flex}.proj .dot{background:var(--ok);border-radius:50%;width:.5rem;height:.5rem}.proj .dot.wip{background:#c98a12}.proj .dot.later{background:var(--line);box-shadow:inset 0 0 0 1px var(--ink-2)}.proj .steps{counter-reset:step;margin:0;padding:0;list-style:none}.proj .steps li{counter-increment:step;border-top:1px solid var(--line);grid-template-columns:2rem 1fr;gap:.25rem 1rem;padding-block:1rem;display:grid}.proj .steps li:last-child{border-bottom:1px solid var(--line)}.proj .steps li>*,.proj .rows li>*,.proj .pair>*{min-width:0}.proj .steps .desc{color:var(--ink-2);font-size:.95rem}.proj .steps li:before{content:counter(step);font:500 .9rem var(--mono);color:var(--ink-2);grid-row:span 2;padding-top:.1rem}.proj .steps pre{margin:.4rem 0 0;font-size:.85rem;overflow-x:auto}.proj .end{border-top:1px solid var(--line);padding-block:4rem 3rem}.proj .end h2{margin-bottom:1.5rem}.proj .colophon{color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:3rem;font-size:.9rem;display:flex}@media (width<=700px){.proj .pair,.proj .roadmap{grid-template-columns:1fr}}@media (width<=600px){.proj .wrap{width:calc(100% - 2.5rem)}.proj .hero{padding-block:3.5rem 3rem}.proj .top nav a.opt{display:none}.proj .rows li,.proj .rows.narrow li{grid-template-columns:1fr}.proj .rows .name{grid-row:auto}.proj .rows code.call{overflow-wrap:anywhere}.proj pre.code,.proj .demo pre{padding-inline:1rem;font-size:.78rem}.proj td{padding:0;display:block;border:0!important;width:auto!important}.proj tr{border-top:1px solid var(--line);padding-block:.85rem;display:block}.proj tr:last-child{border-bottom:1px solid var(--line)}}
