@font-face{font-family:DM Sans;src:url(/fonts/DMSans-Variable.woff2)format("woff2");font-weight:100 1000;font-style:normal;font-display:swap}:root{--bg:#ededea;--grid:#dededa;--surface:#fff;--main:#d6d6d2;--ink:#000;--sub:#55554f;--muted:#6b6b65;--border:2px solid var(--ink);--radius:5px;--shadow:4px 4px 0 var(--ink);--shadow-sm:2px 2px 0 var(--ink);--ui:"DM Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;font-family:var(--ui);color:var(--ink);background:var(--bg);font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:48px 48px;min-width:320px;margin:0;font-size:16px;font-weight:500;line-height:1.6}button,input,select{font:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}h1,h2,h3,p,figure,dl,dd{margin:0}h1,h2,h3{letter-spacing:-.02em;font-weight:800;line-height:1.15}a:focus-visible,summary:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.skip-link{z-index:30;border:var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);padding:10px 14px;font-weight:700;position:fixed;top:-100px;left:16px}.skip-link:focus{top:12px}.site-header{z-index:10;background:var(--surface);border-bottom:var(--border);position:fixed;top:0;left:0;right:0}.header-inner{justify-content:space-between;align-items:center;gap:20px;max-width:1120px;min-height:68px;margin:auto;padding:0 40px;display:flex}.brand{letter-spacing:-.02em;white-space:nowrap;align-items:center;gap:10px;font-size:21px;font-weight:800;display:inline-flex}.brand img{object-fit:contain;width:32px;height:32px}.site-header nav{white-space:nowrap;align-items:center;gap:6px;font-size:14px;font-weight:700;display:flex}.site-header nav a{border-radius:var(--radius);border:2px solid #0000;padding:7px 12px}.site-header nav a[aria-current]{border-color:var(--ink);background:var(--main)}.site-header nav .header-download{border-color:var(--ink);background:var(--main);color:var(--ink);box-shadow:var(--shadow-sm);margin-left:6px}.header-controls{align-items:center;gap:12px;display:flex}.github-link{border:var(--border);border-radius:var(--radius);background:var(--surface);width:38px;height:38px;box-shadow:var(--shadow-sm);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.language-picker{flex-shrink:0;font-size:14px;font-weight:700;position:relative}.language-trigger{border:var(--border);border-radius:var(--radius);min-height:38px;color:var(--ink);background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;font:inherit;justify-content:space-between;align-items:center;gap:10px;padding:6px 12px;display:inline-flex}.language-trigger[aria-expanded=true] .language-chevron{transform:rotate(180deg)}.language-menu{border:var(--border);border-radius:var(--radius);background:var(--surface);min-width:160px;box-shadow:var(--shadow);padding:6px;position:absolute;top:calc(100% + 8px);right:0}.language-menu button{border-radius:var(--radius);width:100%;min-height:38px;color:var(--ink);cursor:pointer;font:inherit;text-align:left;background:0 0;border:2px solid #0000;justify-content:space-between;align-items:center;gap:24px;padding:8px 10px;display:flex}.language-menu button[aria-checked=true]{border-color:var(--ink);background:var(--main)}.language-menu button:hover,.language-menu button:focus-visible{background:var(--main);outline:none}.btn-primary,.btn-ghost,.github-link,.language-trigger,.site-header nav .header-download,.article-pager a{transition:transform .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1);position:relative}.btn-primary:active,.btn-ghost:active{box-shadow:none;transform:translate(4px,4px)}.github-link:active,.language-trigger:active,.site-header nav .header-download:active,.article-pager a:active{box-shadow:none;transform:translate(2px,2px)}.page{width:100%;max-width:1120px;margin:0 auto;padding:124px 40px 64px}.home-page>section{margin-bottom:88px}.hero{text-align:center;padding-bottom:8px}.eyebrow{border:var(--border);border-radius:var(--radius);background:var(--main);box-shadow:var(--shadow-sm);margin-bottom:24px;padding:4px 12px;font-size:13px;font-weight:700;display:inline-block;transform:rotate(-2deg)}.hero h1{letter-spacing:-.04em;margin-bottom:22px;font-size:clamp(42px,7vw,84px);line-height:1.05}.hero h1 span{display:inline-block}.tagline{margin-bottom:12px;font-size:20px;font-weight:700}.hero-description{max-width:680px;color:var(--sub);margin:auto}.hero-facts{flex-wrap:wrap;justify-content:center;gap:10px;margin:26px 0;padding:0;font-size:13px;font-weight:700;list-style:none;display:flex}.hero-facts li{white-space:nowrap;border:var(--border);border-radius:var(--radius);background:var(--surface);padding:4px 10px}.hero-cta{justify-content:center;gap:16px;display:flex}.btn-primary,.btn-ghost{border:var(--border);border-radius:var(--radius);white-space:nowrap;min-height:48px;box-shadow:var(--shadow);justify-content:center;align-items:center;padding:12px 22px;font-size:15px;font-weight:700;display:inline-flex}.btn-primary{color:var(--ink);background:var(--main)}.btn-ghost{background:var(--surface)}.download-actions{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.article-section .download-actions{justify-content:flex-start}.article-section .download-actions a{margin-top:0}.article-section .download-options{margin-top:20px}.hero-image{border:var(--border);border-radius:var(--radius);background:var(--surface);width:100%;max-width:820px;box-shadow:6px 6px 0 var(--ink);margin:40px auto 0;padding:16px}.section-head{margin-bottom:28px}.section-num{border-radius:var(--radius);background:var(--ink);color:var(--surface);margin-bottom:14px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.section-head h2{font-size:40px}.section-lede{color:var(--sub);margin-top:12px;font-size:17px}.app-demo-frame{aspect-ratio:1020/700;border:var(--border);border-radius:var(--radius);background:var(--bg);box-shadow:var(--shadow);overflow:hidden}.app-demo-frame iframe{width:1020px;height:700px;transform:scale(var(--demo-scale,1));transform-origin:0 0;border:0;display:block}.app-demo-bar{align-items:center;gap:20px;margin-top:24px;display:flex}.app-demo-bar p{color:var(--sub);font-size:15px}.app-demo-bar .btn-primary{cursor:pointer;font-family:inherit}.app-gallery{grid-template-columns:1fr 1fr;gap:28px;display:none}.app-gallery figure{min-width:0}.app-gallery figure>a{border:var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);display:block;overflow:hidden}.app-gallery img{width:100%}.app-gallery figure:first-child{grid-column:1/-1}.app-gallery figcaption{margin-top:14px;font-size:14px;font-weight:700}.features{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.features>div{border:var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);cursor:default;padding:22px 24px;transition:transform .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1);position:relative}.features dt{margin-bottom:8px;font-size:19px;font-weight:800}.features dd{color:var(--sub);font-size:15px}.workflow{grid-template-columns:1fr 1fr;gap:20px;margin:0;padding:0;list-style:none;display:grid}.workflow li{border:var(--border);border-radius:var(--radius);background:var(--surface);grid-template-columns:36px 1fr;gap:14px;padding:20px;display:grid}.step-number{border-radius:var(--radius);background:var(--ink);width:36px;height:36px;color:var(--surface);place-items:center;font-weight:800;display:grid}.workflow h3{margin:6px 0 8px;font-size:18px}.workflow p{color:var(--sub);font-size:15px}.text-link{border-bottom:var(--border);margin-top:24px;padding-bottom:2px;font-size:15px;font-weight:700;display:inline-block}.faq{interpolate-size:allow-keywords;gap:12px;display:grid}.faq details{border:var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.faq details::details-content{height:0;transition:height .2s ease-out, content-visibility .2s allow-discrete;overflow:clip}.faq details[open]::details-content{height:auto}.faq summary{background:var(--main);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;font-size:17px;font-weight:800;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:focus-visible{outline-offset:-5px}.faq details[open] summary{border-bottom:var(--border)}.faq-chevron{flex-shrink:0;transition:transform .2s}.faq details[open] .faq-chevron{transform:rotate(180deg)}.faq p{color:var(--sub);padding:16px 20px}.site-footer{border:var(--border);border-radius:var(--radius);background:var(--surface);justify-content:space-between;align-items:flex-start;gap:32px;padding:24px 28px;display:flex}.site-footer p{color:var(--sub);margin-top:12px;font-size:13px}.footer-links{flex-direction:column;align-items:flex-end;gap:10px;font-size:13px;font-weight:700;display:flex}.footer-links a:hover{text-underline-offset:3px;text-decoration:underline}.docs-page{grid-template-columns:210px minmax(0,1fr);gap:48px;padding-top:116px;display:grid}.docs-sidebar{border:var(--border);border-radius:var(--radius);background:var(--surface);width:210px;max-height:calc(100svh - 140px);box-shadow:var(--shadow);padding:14px;position:fixed;top:116px;left:max(40px,50vw - 520px);overflow:auto}.sidebar-label{color:var(--sub);margin:0 0 10px 4px;font-size:12px;font-weight:700}.docs-sidebar nav{gap:4px;display:grid}.docs-sidebar nav a{border-radius:var(--radius);border:2px solid #0000;padding:7px 10px;font-size:14px;font-weight:700}.docs-sidebar nav a[aria-current=page]{border-color:var(--ink);background:var(--main)}.article-column{grid-column:2;min-width:0;max-width:760px}.article-column>article{border:var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin-bottom:32px;padding:36px 40px}.article-header{border-bottom:var(--border);margin-bottom:32px;padding-bottom:28px}.article-header h1{margin-bottom:16px;font-size:40px}.article-header>p:last-child{color:var(--sub);font-size:18px}.article-section{margin-bottom:36px}.article-section h2{margin-bottom:14px;scroll-margin-top:100px;font-size:23px}.article-section p{color:var(--sub);margin-top:14px}.article-section ul,.article-section ol{color:var(--sub);margin:16px 0;padding-left:24px}.article-section li{margin:10px 0;padding-left:5px}.article-section .btn-primary{margin-top:16px}.article-code{border:var(--border);border-radius:var(--radius);background:var(--surface);margin:16px 0;padding:12px 16px;font-size:14px;overflow-x:auto}.article-image{margin-top:24px}.article-image img{border:var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.article-image figcaption{color:var(--sub);margin-top:14px;font-size:13px;font-weight:700}.feedback-links{flex-wrap:wrap;gap:20px;display:flex}.feedback-links a{text-underline-offset:4px;font-weight:700;text-decoration:underline;text-decoration-thickness:2px}.article-pager{grid-template-columns:1fr 1fr;gap:16px;margin:40px 0 0;display:grid}.article-pager a{border:var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);padding:14px 16px;font-weight:700;display:block}.article-pager>div:last-child{text-align:right}.article-pager small{color:var(--sub);margin-bottom:4px;font-size:12px;display:block}.article-column>.site-footer,.docs-page .site-footer{flex-direction:column;gap:20px}.docs-page .footer-links{flex-flow:wrap;align-items:center;gap:10px 20px}@media (hover:hover){.site-header nav a:not([aria-current]):not(.header-download):hover,.docs-sidebar nav a:not([aria-current]):hover{border-color:var(--ink)}.btn-primary:hover,.btn-ghost:hover,.features>div:hover{box-shadow:none;transform:translate(4px,4px)}.github-link:hover,.language-trigger:hover,.site-header nav .header-download:hover,.article-pager a:hover{box-shadow:none;transform:translate(2px,2px)}.btn-primary:hover:after,.btn-ghost:hover:after,.features>div:hover:after{content:"";position:absolute;inset:-6px 0 0 -6px}.github-link:hover:after,.language-trigger:hover:after,.site-header nav .header-download:hover:after,.article-pager a:hover:after{content:"";position:absolute;inset:-4px 0 0 -4px}.app-gallery figure>a{cursor:zoom-in}}@media (width<=760px){.app-demo{display:none}.app-gallery{display:grid}}@media (width<=880px){.header-inner{padding:0 24px}.page{padding:108px 24px 56px}.home-page>section{margin-bottom:64px}.section-head h2{font-size:34px}.app-gallery,.features,.workflow{grid-template-columns:1fr}.site-footer{flex-direction:column}.footer-links{align-items:flex-start}.docs-page{display:block}.docs-sidebar{z-index:8;width:auto;min-width:0;max-height:none;margin:0 0 28px;padding:10px 12px;position:sticky;top:80px;left:auto;overflow:visible}.sidebar-label{display:none}.docs-sidebar nav{scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.docs-sidebar nav a{white-space:nowrap;flex:none}.article-column{max-width:none}.article-column>article{padding:28px 24px}}@media (width<=560px){.header-inner{flex-wrap:wrap;gap:8px;min-height:108px;padding:10px 16px}.header-controls{justify-content:space-between;gap:8px;width:100%}.site-header nav{gap:2px;font-size:13px}.site-header nav a{padding:6px 8px}.language-trigger{min-height:36px;padding:5px 8px;font-size:13px}.github-link{width:36px;height:36px}.brand{gap:8px;font-size:19px}.brand img{width:28px;height:28px}.page{padding:136px 16px 40px}.home-page>section{margin-bottom:52px}.hero{text-align:left}.hero h1{font-size:44px}.hero h1 span{display:block}.tagline{font-size:18px}.hero-description{font-size:15px}.hero-facts,.hero-cta,.hero .download-actions{justify-content:flex-start}.hero-cta{flex-wrap:wrap}.btn-primary,.btn-ghost{padding:12px 16px;font-size:14px}.hero-image{margin-top:28px;padding:8px}.section-head h2{font-size:30px}.section-lede{font-size:16px}.docs-sidebar{top:120px}.article-column>article{padding:22px 16px}.article-header h1{font-size:32px}.article-header>p:last-child{font-size:16px}.article-section h2{font-size:21px}.article-pager{grid-template-columns:1fr}.article-pager>div:last-child{text-align:left}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn-primary,.btn-ghost,.github-link,.language-trigger,.site-header nav .header-download,.article-pager a,.features>div,.faq-chevron{transition:none}.faq details::details-content{transition:none}}.privacy-page{max-width:880px}.privacy-page .article-column{margin:0 auto}.privacy-updated{color:var(--sub)!important;margin-top:14px!important;font-size:12px!important}.privacy-page .site-footer{flex-direction:column;gap:20px}.privacy-page .footer-links{flex-flow:wrap;align-items:center;gap:10px 20px}article .site-footer{border:0;border-top:var(--border);background:0 0;border-radius:0;padding:24px 0 0}
