@font-face{font-family:Funnel Display;src:url(/fonts/funnel-display-latin.woff2)format("woff2");font-weight:300 800;font-style:normal;font-display:swap}@font-face{font-family:Funnel Sans;src:url(/fonts/funnel-sans-latin.woff2)format("woff2");font-weight:300 800;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin.woff2)format("woff2");font-weight:100 800;font-style:normal;font-display:swap}:root{--bg:#fbfbfa;--bg2:#f3f3f1;--card:#fff;--fg:#141414;--muted:#5f6066;--border:#e4e4e1;--chip:#efefec;--accent:#2563eb;--accentHi:#3b82f6;--accentLo:#1d4ed8;--accentSoft:#e8effd;--hl:#ffffffe6;--code:#151515;--codeFg:#e8e8e8;--codeMuted:#8c8c8c;--green:#d9f7e3;--greenFg:#15803d;--yellow:#fdf1c4;--yellowFg:#a16207;--shadow:#14141414;--font-sans:"Funnel Sans",system-ui,sans-serif;--font-mono:"JetBrains Mono",monospace;--w-page:1072px;--w-prose:760px;--header-h:64px;--radius:10px;--radius-sm:7px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--bg:#202020;--bg2:#252525;--card:#2a2a2a;--fg:#f2f2f2;--muted:#a6a6a6;--border:#383838;--chip:#323232;--accent:#3b82f6;--accentHi:#5b95f8;--accentLo:#2563eb;--accentSoft:#24324d;--hl:#ffffff12;--code:#171717;--codeFg:#e8e8e8;--codeMuted:#8c8c8c;--green:#1f3b2a;--greenFg:#6ee7a0;--yellow:#3d3418;--yellowFg:#fcd34d;--shadow:#0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--surface:var(--card);--surface-2:var(--bg2);--line:var(--border);--line-strong:color-mix(in srgb,var(--border) 80%,var(--muted));--text:var(--fg);--faint:var(--muted);--accent-hover:var(--accentLo);--accent-text:var(--accent);--on-accent:#fff;--code-bg:var(--code);--code-text:var(--codeFg);--ok:var(--greenFg);--warn:var(--yellowFg);--danger:#b91c1c;--focus:var(--accentSoft);--header-bg:var(--bg);--header-ink:var(--fg);--header-line:var(--border);--header-accent:var(--accent);--theme-toggle-line:var(--border);--theme-toggle-bg:var(--card)}html[data-theme=dark]{--danger:#fca5a5}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px);-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%}code,pre,kbd{font-family:var(--font-mono)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:color-mix(in srgb, var(--accent) 30%, transparent)}[hidden]{display:none!important}.shell{width:min(var(--w-page), calc(100% - 48px));margin-inline:auto}.prose-width{max-width:var(--w-prose)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:50;border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);padding:10px 14px;position:fixed;top:-60px;left:16px}.skip-link:focus{top:12px}h1,h2,h3,h4{color:var(--text);letter-spacing:-.02em;margin:0;font-weight:700}h1{letter-spacing:-.035em;font-size:clamp(32px,4.4vw,46px);line-height:1.1}h2{font-size:clamp(22px,2.4vw,28px);line-height:1.25}h3{font-size:18px;line-height:1.35}p{margin:0 0 1em}.lede{max-width:680px;color:var(--muted);margin:16px 0 0;font-size:18px;line-height:1.6}.muted{color:var(--muted)}.small{font-size:14px}.mono{font-family:var(--font-mono)}.num{font-variant-numeric:tabular-nums}.prose{color:var(--text);font-size:16px;line-height:1.72}.prose p,.prose li{color:color-mix(in srgb, var(--text) 82%, var(--bg))}.prose h2{margin:48px 0 14px}.prose h3{margin:32px 0 10px}.prose ul,.prose ol{margin:0 0 1.1em;padding-left:22px}.prose li+li{margin-top:6px}.prose a,.text-link{color:var(--accent-text);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.prose a:hover,.text-link:hover{text-decoration-thickness:2px}.prose :not(pre)>code,.inline-code{overflow-wrap:anywhere;border:1px solid var(--line);background:var(--surface-2);border-radius:4px;padding:1px 5px;font-size:.88em}.prose strong{color:var(--text)}.page-header{padding-block:64px 40px}.page-header .actions{margin-top:28px}.section{border-top:1px solid var(--line);padding-block:56px}.section-head{max-width:720px;margin-bottom:28px}.section-head p{color:var(--muted);margin:10px 0 0}.btn{border-radius:var(--radius);white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 18px;font-size:15px;font-weight:700;line-height:1;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{border-color:var(--line-strong);color:var(--text);background:0 0}.btn-secondary:hover{background:var(--surface-2)}.btn-ghost{min-height:34px;color:var(--muted);background:0 0;padding:0 10px;font-size:14px;font-weight:600}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-sm{min-height:34px;padding:0 12px;font-size:13px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-danger{color:var(--danger)}.actions{flex-wrap:wrap;gap:10px;display:flex}.field{gap:6px;min-width:0;display:grid}.field>span,.label{color:var(--muted);font-size:13px;font-weight:600}.input{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);width:100%;min-height:42px;color:var(--text);outline:none;padding:0 12px;font-size:15px;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:var(--faint)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}.input:disabled{opacity:.7}.segmented{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.segmented button{min-height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:0 11px;font-size:13px;font-weight:600}.segmented button:hover{color:var(--text)}.segmented button[aria-selected=true],.segmented button[aria-pressed=true]{background:var(--surface-2);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong)}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:14px}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 14px}.table thead th{z-index:1;background:var(--surface);color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700;position:sticky;top:0}.table tbody tr:last-child>*{border-bottom:0}.table tbody th{font-weight:600}.table .num,.table th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table code{font-size:13px}.table-plain{background:0 0;border:0;border-radius:0}.table-plain .table thead th{background:var(--bg)}.table-plain .table th:first-child,.table-plain .table td:first-child{padding-left:0}@media (width<=640px){.table-stack thead{display:none}.table-stack,.table-stack tbody{display:block}.table-stack tr{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:12px 14px;display:grid}.table-stack tbody tr:last-child{border-bottom:0}.table-stack tr>*{text-align:left!important;border:0!important;padding:0!important}.table-stack tr>:not(:first-child){grid-column:1/-1}.table-stack tr>.num:last-child{grid-area:1/2;text-align:right!important}.table-plain .table-stack tr{padding-inline:0}}.code-block{border:1px solid var(--line);border-radius:var(--radius);background:var(--code-bg);color:var(--code-text);margin:16px 0;overflow:hidden}.code-block-head{color:#a9a9a4;border-bottom:1px solid #2a2a2a;justify-content:space-between;align-items:center;gap:12px;min-height:38px;padding:0 6px 0 14px;font-size:12px;font-weight:600;display:flex}.code-block-head .segmented{scrollbar-width:none;background:0 0;border:0;flex-wrap:nowrap;min-width:0;padding:0;overflow-x:auto}.code-block-head .segmented button{color:#a9a9a4;min-height:28px}.code-block-head .segmented button[aria-selected=true]{color:#f2f2ef;box-shadow:none;background:#262626}.copy-button{color:#c9c9c4;cursor:pointer;background:0 0;border:0;border-radius:5px;min-height:28px;padding:0 10px;font-size:12px;font-weight:600}.copy-button:hover{color:#fff;background:#262626}.code-block pre{tab-size:2;margin:0;padding:16px;font-size:13px;line-height:1.65;overflow-x:auto}.code-block pre code{color:inherit}.callout{border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface);color:var(--muted);margin:20px 0;padding:12px 16px;font-size:15px}.callout strong{color:var(--text)}.callout p:last-child{margin:0}.method{background:color-mix(in srgb, var(--ok) 18%, transparent);color:var(--ok);font:700 11px/1.4 var(--font-mono);letter-spacing:.02em;border-radius:4px;padding:2px 6px;display:inline-block}.method.post{background:color-mix(in srgb, var(--warn) 18%, transparent);color:var(--warn)}.method.delete{background:color-mix(in srgb, var(--danger) 16%, transparent);color:var(--danger)}.pill{border:1px solid var(--line-strong);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.status-dot{background:var(--faint);border-radius:50%;width:7px;height:7px}.status-dot.ok{background:var(--ok)}.status-dot.warn{background:var(--warn)}.status-dot.bad{background:var(--danger)}.status-dot.live{background:#3b8fe6}.link-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.link-list li{border-bottom:1px solid var(--line)}.link-list a{grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:14px 0;display:grid}.link-list a strong{font-size:15px}.link-list a span{color:var(--muted);grid-column:1;font-size:14px}.link-list a:after{content:"→";color:var(--faint);grid-area:1/2/span 2;align-self:center;transition:transform .15s,color .15s}.link-list a:hover strong{color:var(--accent-text)}.link-list a:hover:after{color:var(--accent-text);transform:translate(3px)}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{cursor:pointer;justify-content:space-between;gap:20px;padding:16px 0;font-weight:700;list-style:none;display:flex}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"+";color:var(--faint);font-weight:400}.faq-list details[open] summary:after{content:"–"}.faq-list details p{color:var(--muted);margin:0;padding:0 32px 18px 0}@media (width<=640px){.shell{width:calc(100% - 32px)}.page-header{padding-block:44px 28px}.lede{font-size:17px}.section{padding-block:44px}.actions .btn{flex:auto}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}body{-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:Funnel Display,sans-serif}h1{text-wrap:balance;font-weight:800}.btn{box-shadow:inset 0 1px 0 var(--hl),0 1px 2px var(--shadow);font-weight:500}.btn-primary{color:#fff;box-shadow:inset 0 1px 0 #ffffff47,0 1px 2px #0003,0 6px 16px -8px var(--accent);background:linear-gradient(#2563eb,#1d4ed8);border-color:#1d4ed8;font-weight:600}.btn-primary:hover{filter:brightness(1.08);color:#fff;background:linear-gradient(#2563eb,#1d4ed8)}.btn-secondary,.theme-toggle{background:linear-gradient(180deg,var(--card),var(--bg2));border-color:var(--border)}.input{background:var(--bg);border-color:var(--border);box-shadow:inset 0 1px 2px var(--shadow)}.table-wrap{box-shadow:inset 0 1px 0 var(--hl),0 1px 2px var(--shadow);border-radius:14px}.table thead th{background:var(--bg2)}.table th,.table td{padding:14px 18px}.code-block{border-radius:12px}.code-block-head{min-height:44px}.breadcrumb{color:var(--muted);flex-wrap:wrap;gap:8px;font-size:13px;display:flex}.breadcrumb a:hover{color:var(--accent)}.design-page{line-height:normal}.design-page h2,.design-page h3{color:inherit}.design-page button{font-family:var(--font-sans)}.design-page section>div,.design-page section>div>div{min-width:0}.design-page a[data-auth-cta]{white-space:normal}@keyframes txfloat{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-8px)rotate(4deg)}}@media (width<=600px){.design-page>section,.design-page>section>div[style*=max-width\:1120px]{padding-left:20px!important;padding-right:20px!important}.design-page section[style*="112px"],.design-page section>div[style*="112px"]{padding-bottom:64px!important}.design-page section>div[style*=padding\:112px]{padding-top:64px!important}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.directory-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px;padding-bottom:40px;display:grid}.directory-grid>a{border:1px solid var(--border);background:var(--card);min-width:0;box-shadow:inset 0 1px 0 var(--hl),0 1px 2px var(--shadow);border-radius:14px;flex-direction:column;gap:12px;padding:24px;display:flex}.directory-grid>a:hover{border-color:var(--accent)}.directory-grid h2{font-size:22px}.directory-grid p{color:var(--muted);margin:0;font-size:15px}.directory-grid>a>span:last-child{color:var(--accent);margin-top:auto;padding-top:12px;font-size:14px}.directory-tag{font:12px var(--font-mono);color:var(--muted)}.signed-out-cta{align-items:center;gap:inherit;display:inline-flex}.signed-in-cta,html[data-auth-state=signed-in] .signed-out-cta{display:none}html[data-auth-state=signed-in] .signed-in-cta{display:inline}.theme-toggle[data-astro-cid-l6lhmie6]{border:1px solid var(--line-strong,#3d3d3d);border-radius:var(--radius-sm,6px);width:36px;height:36px;color:inherit;cursor:pointer;background:0 0;flex:0 0 36px;place-items:center;padding:0;transition:background .15s;display:grid}.theme-toggle[data-astro-cid-l6lhmie6]:hover{background:var(--surface-2,#1c1c1c)}.theme-toggle[data-astro-cid-l6lhmie6] svg{grid-area:1/1}.theme-toggle[data-astro-cid-l6lhmie6] .sun{display:none}html[data-theme=light] .theme-toggle[data-astro-cid-l6lhmie6] .sun{display:block}html[data-theme=light] .theme-toggle[data-astro-cid-l6lhmie6] .moon{display:none}
