:root{color-scheme:light;--bg:#fff;--bg-2:#fafafb;--surface:#f1f1f3;--line:#dedee3;--line-2:#c9c9d0;--text:#1c1c1f;--muted:#66666f;--faint:#6e6e77;--accent:#b23c0b;--accent-on:#fff;--accent-hover:#943209;--accent-ink:#b23c0b;--warm:#b23c0b;--danger:#b42318;--ok:#18754a;--radius:10px;--font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--mono:ui-monospace, "JetBrains Mono", SFMono-Regular, Menlo, Consolas, monospace;--wrap:1120px}:focus-visible{outline:3px solid var(--accent-ink);outline-offset:3px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font:16px/1.6 var(--font);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--accent-ink);text-underline-offset:3px}img{max-width:100%;height:auto}code,kbd{font-family:var(--mono);font-size:.88em}:not(pre)>code{background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:.05em .35em}pre{background:var(--bg-2);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;font-size:14px;line-height:1.55;overflow-x:auto}.wrap{width:min(var(--wrap), 100% - 32px);margin-inline:auto}.narrow{width:min(760px,100% - 32px);margin-inline:auto}.site-head{z-index:10;background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}.site-head .wrap{align-items:center;gap:24px;height:60px;display:flex}.logo{color:var(--text);letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:10px;font-weight:650;text-decoration:none;display:inline-flex}.logo svg{width:26px;height:26px}.top-nav{gap:20px;margin-left:auto;display:flex}.top-nav a{color:var(--muted);font-size:15px;text-decoration:none}.top-nav a:hover,.top-nav a[aria-current=page]{color:var(--text)}.btn{background:var(--accent);height:40px;color:var(--accent-on);font:600 15px/1 var(--font);cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;display:inline-flex}.btn:hover{background:var(--accent-hover)}.btn.lg{border-radius:10px;height:50px;padding:0 26px;font-size:17px}.btn.ghost{border-color:var(--line-2);color:var(--text);background:0 0}.btn.ghost:hover{background:var(--surface)}.site-foot{border-top:1px solid var(--line);color:var(--muted);margin-top:96px;padding:40px 0 56px;font-size:14px}.foot-grid{grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;display:grid}.foot-grid h3{color:var(--text);text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px;font-size:13px}.foot-grid ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.foot-grid a{color:var(--muted);text-decoration:none}.foot-grid a:hover{color:var(--text)}.sister{color:var(--faint);font-size:13px}.disclaimer{color:var(--faint);max-width:760px;margin-top:28px;font-size:13px}.page-head{padding:64px 0 24px}.eyebrow{color:var(--warm);font:600 13px/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;margin-bottom:14px;display:inline-block}h1,h2,h3{letter-spacing:-.02em;text-wrap:balance;line-height:1.2}h1{margin:0 0 16px;font-size:clamp(34px,5vw,52px)}.lede{color:var(--muted);max-width:680px;margin:0;font-size:clamp(17px,2vw,20px)}.prose{font-size:17px}.prose h2{margin:56px 0 12px;font-size:28px}.prose h3{margin:32px 0 8px;font-size:20px}.prose p,.prose li{color:var(--text)}.prose li+li{margin-top:6px}.prose img{border-radius:var(--radius);border:1px solid var(--line)}.prose figure{margin:28px 0}.prose figcaption{color:var(--faint);margin-top:8px;font-size:14px}.note{border:1px solid var(--line-2);border-left:3px solid var(--warm);background:var(--bg-2);color:var(--text);border-radius:8px;padding:14px 18px;font-size:15px}.note p{margin:0}.table-wrap{margin:20px 0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:15px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 12px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:13px;font-weight:600}.steps{counter-reset:step;padding:0;list-style:none}.steps li{counter-increment:step;margin:18px 0;padding-left:44px;position:relative}.steps li:before{content:counter(step);background:var(--surface);border:1px solid var(--line-2);width:28px;height:28px;font:600 13px/1 var(--mono);color:var(--accent-ink);border-radius:50%;place-items:center;display:grid;position:absolute;top:1px;left:0}.faq details{border-bottom:1px solid var(--line);padding:16px 0}.faq summary{cursor:pointer;justify-content:space-between;gap:16px;font-size:17px;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--faint);font-weight:400}.faq details[open] summary:after{content:"–"}.faq details p{color:var(--muted);margin:10px 0 0}.cta-band{border:1px solid var(--line);background:radial-gradient(600px 200px at 0% 0%, #f26b1d2e, transparent 70%), var(--bg-2);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-top:72px;padding:40px;display:flex}.cta-band h2{margin:0 0 6px;font-size:26px}.cta-band p{color:var(--muted);margin:0}@media (width<=860px){.top-nav{display:none}.site-head .btn{margin-left:auto}.foot-grid{grid-template-columns:1fr 1fr}.cta-band{padding:28px 20px}}.craft-apps{border-bottom:1px solid var(--line);margin-bottom:32px;padding:0 0 28px}.craft-apps-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:16px;display:flex}.craft-apps-head span{letter-spacing:.06em;text-transform:uppercase;color:var(--text);font-size:13px;font-weight:600}.craft-apps-head a{color:var(--text);text-underline-offset:3px;font-weight:600;text-decoration:underline}.craft-apps ul{grid-template-columns:repeat(13,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.craft-apps li a{color:var(--muted);flex-direction:column;align-items:center;gap:6px;font-size:12px;text-decoration:none;display:flex}.craft-apps img{border-radius:13px;width:56px;height:56px;transition:transform .15s;display:block;box-shadow:0 4px 14px #1c1c1f1f}.craft-apps li a:hover img{transform:translateY(-2px)}.craft-apps li a:hover,.craft-apps li a[aria-current=page]{color:var(--text)}.craft-apps li a[aria-current=page] img{outline:2px solid var(--text);outline-offset:3px}.craft-apps li a span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}@media (width<=860px){.craft-apps ul{grid-template-columns:repeat(7,minmax(0,1fr));row-gap:18px}}@media (width<=600px){.craft-apps ul{grid-template-columns:repeat(4,minmax(0,1fr))}.craft-apps-head span{font-size:12px}}.upstream{border:1px solid var(--line-2);width:fit-content;max-width:100%;color:var(--muted);text-align:left;border-radius:999px;align-items:center;gap:12px;margin:22px auto 0;padding:8px 16px 8px 8px;font-size:14px;text-decoration:none;display:flex}.upstream:hover{color:var(--text);border-color:var(--faint)}.upstream img{border-radius:10px;flex:none;width:40px;height:40px}.upstream b{color:var(--text)}.about-icon{float:right;border-radius:22px;width:96px;height:96px;margin:4px 0 12px 20px}.nav-menu{order:1;display:none}.nav-menu summary{border:1px solid var(--line-2);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:8px;place-items:center;list-style:none;display:grid}.nav-menu summary::-webkit-details-marker{display:none}.nav-menu[open] summary{background:var(--surface)}.nav-menu-list{border-bottom:1px solid var(--line);background:var(--bg);flex-direction:column;padding:4px 16px 12px;display:flex;position:absolute;top:100%;left:0;right:0;box-shadow:0 16px 32px #1c1c1f1f}.nav-menu-list a{border-bottom:1px solid var(--line);color:var(--text);padding:12px 0;text-decoration:none}.nav-menu-list a:last-child{border-bottom:0}.nav-menu-list a[aria-current=page]{color:var(--accent-ink)}@media (width<=860px){.nav-menu{display:block}.site-head .logo{min-width:0;margin-right:auto}.site-head .logo span{text-overflow:ellipsis;overflow:hidden}}@media (width<=600px){.site-head .wrap{gap:12px}.site-head .head-cta{display:none}}html,body.bare{height:100%;overflow:hidden}body.bare{color-scheme:light;--e-bg:#f1f1f3;--e-bar:#fff;--e-panel:#fafafb;--e-card:#fff;--e-field:#fff;--e-hover:#ececef;--e-line:#dedee3;--e-line-2:#c9c9d0;--e-text:#1c1c1f;--e-soft:#3d3d44;--e-muted:#66666f;--e-faint:#8a8a93;--e-link:#b23c0b;--e-check:#ececf0;background:var(--e-bg);color:var(--e-text)}.ed{background:var(--e-bg);flex-direction:column;display:flex;position:fixed;inset:0}.ed-bar{background:var(--e-bar);border-bottom:1px solid var(--e-line);flex:none;align-items:center;gap:12px;min-width:0;height:40px;padding:0 10px 0 12px;font-size:13px;display:flex}.ed-logo{color:var(--e-text);white-space:nowrap;align-items:center;gap:8px;font-weight:650;text-decoration:none;display:inline-flex}.ed-logo svg{width:20px;height:20px}.ed-ver{font:12px/1 var(--mono);color:var(--e-faint)}.ed-dirty{color:var(--e-muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.ed-dirty:before{content:"";background:#e68619;border-radius:50%;width:7px;height:7px}.ed-dirty{cursor:help}.ed-toast{color:var(--e-text);white-space:nowrap;text-overflow:ellipsis;background:#57d18b29;border-radius:6px;max-width:40vw;padding:3px 10px;font-size:12px;overflow:hidden}.ed-nav{align-items:center;gap:14px;margin-left:auto;display:flex}.ed-nav a{color:var(--e-muted);text-decoration:none}.ed-nav a:hover,.ed-link:hover{color:var(--e-text)}.ed-link{color:var(--e-muted);font:13px/1 var(--font);cursor:pointer;background:0 0;border:0;padding:0}.ed-ai{border:1px solid var(--e-line-2);background:var(--e-card);height:28px;color:var(--e-text);font:600 13px/1 var(--font);cursor:pointer;white-space:nowrap;border-radius:7px;align-items:center;gap:6px;padding:0 12px;display:inline-flex;position:relative}.ed-ai svg{width:15px;height:15px;fill:var(--accent)}.ed-ai:hover,.ed-ai.on{background:var(--e-hover)}.ed-badge{background:var(--accent);min-width:17px;height:17px;color:var(--accent-on);font:700 11px/17px var(--font);text-align:center;border-radius:9px;padding:0 4px;position:absolute;top:-6px;right:-6px}.ed-main{flex:1;min-height:0;display:flex}.ed-frame{background:var(--e-bg);border:0;flex:1;min-width:0;display:block}.ed-small{z-index:5;background:color-mix(in srgb, var(--e-bg) 94%, transparent);place-items:center;padding:24px;display:grid;position:fixed;inset:40px 0 0}.ed-small>div{text-align:center;max-width:380px}.ed-small a{color:var(--e-link)}.ed-err{font:12px/1.5 var(--mono);color:var(--e-faint);overflow-wrap:anywhere}.ai{background:var(--e-panel);border-left:1px solid var(--e-line);width:380px;color:var(--e-text);flex-direction:column;flex:none;font-size:13.5px;line-height:1.5;display:flex}.ai-head{border-bottom:1px solid var(--e-line);justify-content:space-between;align-items:flex-start;gap:8px;padding:12px 12px 10px 16px;display:flex}.ai-head h2{letter-spacing:0;margin:0;font-size:15px}.ai-sub{color:var(--e-faint);margin:2px 0 0;font-size:12px}.ai-head-actions{gap:4px;display:flex}.ai-icon{width:30px;height:30px;color:var(--e-muted);cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;display:grid}.ai-icon svg,.ai-picked svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.ai-icon:hover,.ai-icon.on{background:var(--e-hover);color:var(--e-text)}.ai-scroll{flex-direction:column;flex:1;gap:14px;padding:14px 16px 16px;display:flex;overflow-y:auto}.ai-settings{border:1px solid var(--e-line);background:var(--e-card);border-radius:10px;flex-direction:column;gap:12px;padding:14px;display:flex}.ai-field{flex-direction:column;gap:5px;display:flex}.ai-field>span{color:var(--e-muted);justify-content:space-between;align-items:baseline;font-size:12px;font-weight:600;display:flex}.ai a{color:var(--e-link)}.ai-field>span a{font-weight:500}.ai-field small{color:var(--e-faint);font-size:11.5px}.ai input[type=text],.ai input[type=password],.ai input[type=url],.ai input:not([type]),.ai select,.ai textarea{background:var(--e-field);width:100%;min-width:0;color:var(--e-text);border:1px solid var(--e-line-2);font:13px/1.4 var(--font);border-radius:7px;padding:7px 9px}.ai textarea{resize:vertical;min-height:64px}.ai input:focus,.ai select:focus,.ai textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #f26b1d38}.ai code,.ai kbd{font-family:var(--mono);font-size:.9em}.ai-key{gap:6px;display:flex}.ai-check{color:var(--e-soft);cursor:pointer;align-items:center;gap:7px;display:flex}.ai-privacy{color:var(--e-faint);margin:0;font-size:12px}.ai-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.ai-btn{background:var(--accent);height:34px;color:var(--accent-on);font:600 13.5px/1 var(--font);cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.ai-btn:hover:not(:disabled){background:var(--accent-hover)}.ai-btn:disabled{opacity:.45;cursor:default}.ai-btn.ghost{border-color:var(--e-line-2);color:var(--e-text);background:0 0}.ai-btn.ghost:hover:not(:disabled){background:var(--e-hover)}.ai-btn.wide{flex:1;height:38px}.ai-btn kbd{opacity:.75;font-size:11px;font-weight:500}.ai-mini{border:1px solid var(--e-line-2);background:var(--e-card);height:26px;color:var(--e-soft);font:500 12px/1 var(--font);cursor:pointer;border-radius:7px;padding:0 9px}.ai-mini:hover{background:var(--e-hover)}.ai-link{color:var(--e-link);font:500 12px/1.4 var(--font);cursor:pointer;background:0 0;border:0;padding:0}.ai-link:disabled{color:var(--e-faint)}.ai-link.danger{color:#d7373f}.ai-status{border:1px solid var(--e-line);background:var(--e-card);width:100%;color:var(--e-muted);font:12.5px/1.3 var(--font);text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;display:flex;overflow:hidden}.ai-status .dot{background:#2fb36b;border-radius:50%;flex:none;width:7px;height:7px}.ai-status code{color:var(--e-soft)}.ai-source{flex-direction:column;gap:8px;display:flex}.ai-drop{border:1px dashed var(--e-line-2);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:14px;display:flex}.ai-drop p{color:var(--e-soft);margin:0}.ai-drop small{color:var(--e-faint)}.ai-picked{border:1px solid var(--e-line);background:var(--e-card);border-radius:10px;align-items:flex-start;gap:10px;padding:10px;display:flex}.ai-picked>svg{width:22px;height:22px;color:var(--accent);flex:none;margin-top:2px}.ai-picked div{flex-direction:column;gap:2px;min-width:0;display:flex}.ai-picked strong{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.ai-picked span{color:var(--e-faint);font-size:12px}.ai-picked-actions{gap:14px;display:flex}.ai-files{gap:6px;display:flex;overflow-x:auto}.ai-files button{border:1px solid var(--e-line-2);background:var(--e-card);max-width:160px;height:26px;color:var(--e-soft);font:12px/1 var(--font);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:6px;flex:none;padding:0 9px;overflow:hidden}.ai-files button.on{border-color:var(--accent)}.ai-chips{flex-wrap:wrap;gap:6px;display:flex}.ai-chips button{border:1px solid var(--e-line-2);background:var(--e-card);height:26px;color:var(--e-soft);font:500 12px/1 var(--font);cursor:pointer;border-radius:13px;padding:0 10px}.ai-chips button:hover{border-color:var(--accent);color:var(--e-text)}.ai-tabs{background:var(--e-check);border:1px solid var(--e-line);border-radius:9px;grid-template-columns:repeat(4,1fr);padding:3px;display:grid}.ai-tabs button{height:30px;color:var(--e-muted);font:600 12.5px/1 var(--font);cursor:pointer;background:0 0;border:0;border-radius:7px}.ai-tabs button.on{background:var(--e-card);color:var(--e-text);box-shadow:0 1px 2px #00000014}.ai-section{flex-direction:column;gap:10px;display:flex}.ai-hint{color:var(--e-faint);margin:0;font-size:12px}.ai-options{flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.ai-field.inline{flex-direction:row;align-items:center;gap:8px}.ai-field.inline select{width:auto}.ai-btn.small{height:28px;padding:0 10px;font-size:12.5px}.ai-chips button:disabled{opacity:.5;cursor:default}.ai-chips button:disabled:hover{border-color:var(--e-line-2);color:var(--e-soft)}.ai-results{border-top:1px solid var(--e-line);flex-direction:column;gap:14px;padding-top:12px;display:flex}.ai-results figure{border:1px solid var(--e-line);background:var(--e-card);border-radius:10px;margin:0;overflow:hidden}.ai-results img{object-fit:contain;background:repeating-conic-gradient(#ececef 0% 25%,#fafafb 0% 50%) 50%/16px 16px;width:100%;max-height:320px;display:block}.ai-results figcaption{padding:10px}.ai-results figcaption p{color:var(--e-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 8px;font-size:12px;display:-webkit-box;overflow:hidden}.ai-results .ai-model-text{color:var(--e-soft)}.ai-outline{border:1px solid var(--e-line);background:var(--e-card);border-radius:10px;max-height:340px;margin:0;padding:10px 12px 10px 30px;overflow-y:auto}.ai-outline>li+li{margin-top:8px}.ai-outline ul{color:var(--e-soft);margin:3px 0 0;padding-left:16px;font-size:12.5px}.ai .ai-outline-edit{font:12.5px/1.5 var(--mono);tab-size:3;white-space:pre}.ai-notes{flex-direction:column;gap:12px;display:flex}.ai-notes>div{border:1px solid var(--e-line);background:var(--e-card);border-radius:10px;padding:10px}.ai-notes-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.ai-chat{border-top:1px solid var(--e-line);flex-direction:column;gap:16px;padding-top:12px;display:flex}.ai-chat article{flex-direction:column;gap:8px;display:flex}.ai-q{background:var(--e-hover);max-width:92%;color:var(--e-text);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:10px 10px 2px;align-self:flex-end;margin:0;padding:8px 11px}.ai-a{overflow-wrap:anywhere}.ai-result-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ai-meta{color:var(--e-faint);margin-left:auto;font-size:11.5px}.ai-working{color:var(--e-muted);align-items:center;gap:8px;margin:0;display:flex}.ai-compose{border-top:1px solid var(--e-line);background:var(--e-panel);flex-direction:column;flex:none;gap:8px;padding:12px 16px 14px;display:flex}.ai-foot{color:var(--e-faint);font-size:11.5px}.ai-error,.ai-notice{overflow-wrap:anywhere;border-radius:8px;margin:0;padding:9px 11px;font-size:12.5px}.ai-error{color:var(--e-text);background:#d7373f1a;border:1px solid #d7373f59}.ai-notice{color:var(--e-text);background:#2fb36b1a;border:1px solid #2fb36b4d}.spin{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}.md{color:var(--e-text)}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p,.md ul,.md ol,.md blockquote,.md pre,.md-table{margin:0 0 10px}.md h3,.md h4,.md h5{letter-spacing:0;margin:14px 0 6px;font-size:14px}.md h3{font-size:15px}.md ul,.md ol{padding-left:20px}.md li+li{margin-top:3px}.md code{background:var(--e-check);border-radius:4px;padding:.05em .3em}.md pre{background:var(--e-check);border-radius:8px;padding:10px;font-size:12px;overflow-x:auto}.md pre code{background:0 0;padding:0}.md blockquote{border-left:3px solid var(--e-line-2);color:var(--e-muted);padding-left:10px}.md hr{border:0;border-top:1px solid var(--e-line);margin:12px 0}.md-table{overflow-x:auto}.md table{border-collapse:collapse;width:100%;font-size:12.5px}.md th,.md td{border:1px solid var(--e-line);text-align:left;vertical-align:top;text-transform:none;letter-spacing:0;padding:5px 7px}.md th{background:var(--e-check);color:var(--e-text);font-size:12.5px}@media (width<=760px){.ai{z-index:4;width:auto;position:fixed;inset:40px 0 0}.ed-nav a,.ed-link,.ed-ver,.ed-dirty,.ed-toast{display:none}}
