:root{color-scheme:light;--bg:#f5f6fa;--surface:#fff;--surface-2:#f1f3f8;--text:#111827;--muted:#667085;--line:#e4e7ef;--accent:#5b4ff0;--accent-hover:#4a3fd6;--accent-soft:#5b4ff01a;--accent-2:#0ea5e9;--accent-2-soft:#0ea5e91a;--cat:var(--accent);--cat-soft:var(--accent-soft);--shadow:0 1px 2px #1018280a, 0 1px 3px #1018280a;--shadow-lift:0 4px 8px -2px #1018280f, 0 12px 28px -6px #1018281f;--header-bg:#ffffffd1;--radius:10px;--radius-lg:14px;--container:1120px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}body{background:var(--bg);min-height:100dvh;color:var(--text);font:16px/1.7 var(--font);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;display:flex;overflow-x:clip}[data-category=developer]{--cat:#0d9488;--cat-soft:#0d94881f}[data-category=image]{--cat:#ea580c;--cat-soft:#ea580c1f}[data-category=fund]{--cat:#4f46e5;--cat-soft:#4f46e51f}[data-category=text]{--cat:#7c3aed;--cat-soft:#7c3aed1f}[data-category=ai]{--cat:var(--accent);--cat-soft:var(--accent-soft)}[data-group]{--cat-soft:color-mix(in srgb, var(--cat) 11%, transparent)}[data-group=chat]{--cat:#5b4ff0}[data-group=agent]{--cat:#8b5cf6}[data-group=writing]{--cat:#0ea5e9}[data-group=office]{--cat:#10b981}[data-group=coding]{--cat:#2563eb}[data-group=image]{--cat:#f43f5e}[data-group=design]{--cat:#d946ef}[data-group=video]{--cat:#f97316}[data-group=audio]{--cat:#14b8a6}[data-group=research]{--cat:#d97706}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px}.shell{flex:1;grid-template-columns:208px minmax(0,1fr);width:100%;max-width:1360px;margin:0 auto;display:grid}main{z-index:0;min-width:0;padding:28px 28px 88px;position:relative}main:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(680px 340px at 22% 8%,#5b4ff01a,#0000 62%),radial-gradient(560px 320px at 85% 4%,#0ea5e914,#0000 62%);width:100vw;height:620px;position:absolute;top:-80px;left:calc(50% - 50vw);-webkit-mask-image:linear-gradient(#000 55%,#0000 100%);mask-image:linear-gradient(#000 55%,#0000 100%)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.site-header{z-index:20;border-bottom:1px solid var(--line);background:var(--header-bg);-webkit-backdrop-filter:saturate(180%)blur(12px);position:sticky;top:0}.site-header .container{align-items:center;gap:24px;max-width:1360px;height:64px;display:flex}.brand{letter-spacing:-.01em;color:var(--text);flex-shrink:0;align-items:center;gap:9px;font-size:16px;font-weight:700;display:inline-flex}.brand:hover{text-decoration:none}.brand .mark{color:#fff;letter-spacing:0;background:linear-gradient(135deg,#5b4ff0,#0ea5e9);border-radius:8px;place-items:center;width:27px;height:27px;font-size:11px;font-weight:700;line-height:1;display:grid;box-shadow:0 2px 6px #5b4ff059}.brand .tagline{color:var(--muted);letter-spacing:0;border-left:1px solid var(--line);white-space:nowrap;padding-left:10px;font-size:12.5px;font-weight:400}@media (width<=1100px){.brand .tagline{display:none}}.site-nav{align-items:center;gap:2px;min-width:0;margin-left:auto;display:flex}.site-nav .pinned{flex-shrink:0}.site-nav a{color:var(--muted);white-space:nowrap;border-radius:8px;flex-shrink:0;padding:7px 11px;font-size:14.5px;font-weight:500}.site-nav a:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.site-nav a.active{color:var(--accent);background:var(--accent-soft);font-weight:600}.site-nav .lang{border-left:1px solid var(--line);color:var(--accent);border-radius:0 8px 8px 0;margin-left:6px;padding-left:14px}.sidebar{border-right:1px solid var(--line);background:var(--surface)}.sidenav{flex-direction:column;gap:2px;max-height:calc(100dvh - 64px);padding:20px 12px;display:flex;position:sticky;top:64px;overflow-y:auto}.sidenav a{color:var(--muted);border-radius:9px;align-items:center;gap:10px;padding:6px 10px 6px 6px;font-size:14.5px;font-weight:500;display:flex}.sidenav a:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.sidenav a.active{color:var(--cat);background:var(--cat-soft);font-weight:600}.sidenav a.active em{color:var(--cat)}.sidenav svg{width:30px;height:30px;color:var(--cat);background:var(--cat-soft);border-radius:8px;flex-shrink:0;padding:6px}.sidenav span{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sidenav em{color:var(--muted);opacity:.8;font-size:12px;font-style:normal}.cats{scrollbar-width:none;gap:6px;margin:-8px 0 18px;display:none;overflow-x:auto}.cats::-webkit-scrollbar{display:none}.cats a{border:1px solid var(--line);background:var(--surface);color:var(--muted);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:6px 12px;font-size:13.5px}.cats a:hover{color:var(--text);text-decoration:none}.cats a.active{color:var(--cat);border-color:var(--cat);background:var(--cat-soft)}@media (width<=900px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.cats{display:flex}main{padding:24px 16px 72px}}.site-footer{border-top:1px solid var(--line);background:var(--surface);color:var(--muted);padding:28px 0;font-size:14px}.site-footer .container{flex-wrap:wrap;align-items:center;gap:8px 20px;display:flex}.site-footer nav{flex-wrap:wrap;gap:8px 20px;margin-left:auto;display:flex}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--text)}h1{letter-spacing:-.032em;text-wrap:balance;margin:0 0 14px;font-size:clamp(32px,4.6vw,46px);font-weight:700;line-height:1.14}h2{letter-spacing:-.02em;margin:0;font-size:21px;font-weight:650}h3{margin:0;font-size:16px;font-weight:600}.lede{color:var(--muted);text-wrap:pretty;max-width:58ch;margin:0;font-size:18px;line-height:1.6}.hero{border-bottom:1px solid #0000;border-image:linear-gradient(90deg, var(--line) 0%, var(--line) 55%, transparent 100%) 1;margin-bottom:18px;padding:0 0 18px}.hero-text{min-width:0}.eyebrow{border:1px solid var(--line);background:var(--surface);color:var(--muted);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:8px;margin:0 0 18px;padding:6px 12px 6px 10px;font-size:13px;font-weight:500;display:inline-flex}.eyebrow .dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 3px var(--accent-soft);border-radius:50%}.section{margin-bottom:56px}.section-head{align-items:baseline;gap:16px;margin-bottom:20px;padding-top:40px;display:flex}.section-head h2{color:var(--text);align-items:center;gap:10px;display:inline-flex}.section-head h2:before{content:"";background:var(--cat);width:10px;height:10px;box-shadow:0 0 0 3px var(--cat-soft);border-radius:3px}.section-head .more{white-space:nowrap;margin-left:auto;font-size:14px;font-weight:500}.grid{grid-template-columns:repeat(auto-fill,minmax(288px,1fr));gap:14px;display:grid}.prose{max-width:68ch;margin-top:52px}.prose>:first-child{margin-top:0}.prose h2{margin:44px 0 12px;padding-top:4px;font-size:21px}.prose h3{margin:28px 0 8px;font-size:17px}.prose p{margin:0 0 18px}.prose ol,.prose ul{margin:0 0 16px;padding-left:22px}.prose li{margin-bottom:6px}.prose a{text-decoration:underline}.prose :not(pre)>code{font-family:var(--mono);background:var(--surface-2);border-radius:5px;padding:2px 6px;font-size:.9em}.prose pre{tab-size:2;border-radius:10px;margin:0 0 20px;padding:16px 18px;font-size:13.5px;line-height:1.65;overflow-x:auto;box-shadow:inset 0 0 0 1px #ffffff0f}.prose pre code{font-family:var(--mono);font-size:inherit}@media (width<=640px){main{padding:28px 20px 64px}.container{padding:0 20px}.site-header .container{gap:10px}.site-nav a{padding:7px 8px;font-size:14px}.cats{mask-image:linear-gradient(90deg,#000 0 calc(100% - 14px),#0000 100%)}}.aisection{margin-bottom:34px;scroll-margin-top:64px}.aisection .section-head{padding-top:22px}.aisection .section-head h2{font-size:19px}.aisection .section-head h2:before{content:none}.aiicon{background:var(--cat);color:#fff;width:30px;height:30px;box-shadow:0 3px 8px -2px color-mix(in srgb, var(--cat) 55%, transparent);border-radius:9px;place-items:center;display:grid}.aiicon svg{width:16px;height:16px}.aisection .section-head{margin-bottom:14px}.aicount{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:2px 9px;font-size:12.5px;font-weight:600}.aigrid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));align-items:start;gap:10px;display:grid}.aicard{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);color:var(--text);align-items:flex-start;gap:10px;padding:12px 13px;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex}.aicard:hover{border-color:color-mix(in srgb, var(--cat) 45%, var(--line));box-shadow:var(--shadow-lift);text-decoration:none;transform:translateY(-2px)}.ailogo{background:color-mix(in srgb, var(--swatch) 13%, #fff);width:34px;height:34px;color:var(--swatch);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--swatch) 18%, transparent);border-radius:9px;flex-shrink:0;place-items:center;font-size:16px;font-weight:700;line-height:1;display:grid}.ainame{flex:1;min-width:0;display:block}.aititle{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:14.5px;font-weight:600;display:block;overflow:hidden}.aicard:hover .aititle{color:var(--cat)}.aitagline{white-space:nowrap;text-overflow:ellipsis;color:var(--muted);margin-top:2px;font-size:12px;line-height:1.5;display:block;overflow:hidden}.aiarrow{width:15px;height:15px;color:var(--muted);opacity:.5;flex-shrink:0;margin-top:2px;transition:transform .18s,color .18s,opacity .18s}.aicard:hover .aiarrow{color:var(--cat);opacity:1;transform:translate(2px)}.aitags{flex-wrap:nowrap;gap:5px;margin-top:7px;display:flex;overflow:hidden}.aitag{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:6px;padding:2px 7px;font-size:11px;line-height:1.6}.aitag.blocked{color:#b91c1c;background:#dc262617;flex-shrink:0}.aidisclaimer{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);color:var(--muted);margin:4px 0 0;padding:14px 16px;font-size:13px;line-height:1.7}.aibanner{background:radial-gradient(420px 220px at 100% 0,#0ea5e938,#0000 70%),radial-gradient(460px 260px at 0 100%,#8b5cf633,#0000 70%),linear-gradient(135deg,#eef0ff 0%,#f4f1ff 55%,#eaf6fd 100%);border:1px solid #5b4ff01f;border-radius:20px;margin:0 0 20px;padding:34px 36px 30px;position:relative;overflow:hidden}.aibanner:after{content:"";pointer-events:none;background-image:radial-gradient(#5b4ff029 1px,#0000 1px);background-size:18px 18px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 35%,#000 100%);mask-image:linear-gradient(90deg,#0000 35%,#000 100%)}.aibanner>*{z-index:1;position:relative}.aibanner h1{background:linear-gradient(90deg,#3b2fd9,#7c3aed 55%,#0284c7);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 8px;font-size:clamp(26px,3.2vw,36px)}.aibanner .lede{color:#4b5565;max-width:640px;margin:0 0 22px;font-size:15px}.aibanner .aisearch{max-width:760px;margin:0}.aibanner .aiengines button[aria-selected=true]{box-shadow:var(--shadow);background:#fff}@media (width<=640px){.aibanner{border-radius:16px;padding:24px 18px 20px}}.aisearch{margin:0 0 22px}.aiengines{scrollbar-width:none;gap:4px;margin-bottom:8px;display:flex;overflow-x:auto}.aiengines::-webkit-scrollbar{display:none}.aiengines button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;flex-shrink:0;padding:5px 12px;font-size:13.5px}.aiengines button:hover{color:var(--text)}.aiengines button[aria-selected=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.aisearchbox{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:10px;padding:6px 6px 6px 16px;transition:border-color .16s,box-shadow .16s;display:flex}.aisearchbox:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.aisearchbox svg{width:18px;height:18px;color:var(--muted);flex-shrink:0}.aisearchbox input{min-width:0;color:var(--text);font:inherit;background:0 0;border:0;outline:0;flex:1;padding:6px 0;font-size:15px}.aisearchbox button{color:#fff;font:inherit;cursor:pointer;background:linear-gradient(135deg,#5b4ff0,#7c3aed);border:0;border-radius:999px;flex-shrink:0;padding:8px 22px;font-size:14px;font-weight:600;box-shadow:0 4px 12px -3px #5b4ff080}.aisearchbox button:hover{filter:brightness(1.08)}.aihot{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);margin:0 0 8px;padding:14px 16px}.aihot h2{align-items:center;gap:8px;margin:0 0 12px;font-size:15px;display:flex}.aihot h2:before{content:"";background:linear-gradient(135deg,#f97316,#f43f5e);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #f9731626}.aihotlist{flex-wrap:wrap;gap:8px;display:flex}.aihotlist a{background:var(--surface-2);color:var(--text);border:1px solid #0000;border-radius:999px;align-items:center;gap:7px;padding:5px 11px 5px 5px;font-size:13.5px;font-weight:500;transition:border-color .16s,background .16s;display:inline-flex}.aihotlist a:hover{background:var(--accent-soft);color:var(--accent);border-color:#5b4ff040;text-decoration:none}.ailogo.sm{border-radius:999px;width:22px;height:22px;font-size:11px}.ainoresult{color:var(--muted);text-align:center;padding:28px 0}.crumbs{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 16px;font-size:13.5px;display:flex}.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--accent)}.crumbs [aria-current]{color:var(--text);font-weight:500}.tool{max-width:920px}.toolhead{border:1px solid color-mix(in srgb, var(--cat) 18%, var(--line));background:radial-gradient(360px 200px at 100% 0%, color-mix(in srgb, var(--cat) 16%, transparent), transparent 70%), linear-gradient(135deg, color-mix(in srgb, var(--cat) 6%, #fff), #fff 70%);border-radius:20px;align-items:center;gap:20px;padding:28px;display:flex;position:relative;overflow:hidden}.ailogo.xl{border-radius:18px;width:72px;height:72px;font-size:32px}.toolhead-main{flex:1;min-width:0}.toolhead h1{margin:0;font-size:clamp(24px,3vw,32px);line-height:1.2}.tooltagline{color:var(--muted);margin:6px 0 12px;font-size:15px}.tooltags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tooltags .aitag{padding:3px 9px;font-size:12px}.toolgroup{background:var(--cat-soft);color:var(--cat);border-radius:6px;align-items:center;gap:5px;padding:3px 10px 3px 7px;font-size:12px;font-weight:600;display:inline-flex}.toolgroup svg{width:14px;height:14px}.toolgroup:hover{filter:brightness(.95);text-decoration:none}.toolvisit{background:linear-gradient(135deg, var(--cat), color-mix(in srgb, var(--cat) 70%, #000));box-shadow:0 6px 16px -6px color-mix(in srgb, var(--cat) 70%, transparent);color:#fff;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:11px 22px;font-size:14.5px;font-weight:600;display:inline-flex}.toolvisit svg{width:14px;height:14px}.toolvisit:hover{filter:brightness(1.08);text-decoration:none}.toolfacts{grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 0;display:grid}.toolfacts>div{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:14px 16px}.toolfacts dt{color:var(--muted);margin-bottom:4px;font-size:12.5px}.toolfacts dd{margin:0;font-size:14.5px;font-weight:500;line-height:1.6}.toolfacts .blocked dd{color:#b91c1c}.toolsection{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);margin-top:16px;padding:24px 28px}.toolsection h2{align-items:center;gap:10px;margin:0 0 14px;font-size:19px;display:flex}.toolsection h2:before{content:"";background:var(--cat);border-radius:2px;width:4px;height:18px}.toolsection .prose{max-width:none;margin-top:0;font-size:15.5px}.toolsection .prose p:last-child,.toolsection .prose>:last-child{margin-bottom:0}.toolsection .prose h2{border-top:1px dashed var(--line);align-items:center;gap:10px;margin:30px 0 14px;padding-top:24px;font-size:17px;display:flex}.toolsection .prose h2:before{content:"";background:var(--cat);opacity:.6;border-radius:2px;width:4px;height:16px}.toolsection .prose ul{padding-left:0;list-style:none}.toolsection .prose ul>li{margin-bottom:9px;padding-left:18px;line-height:1.75;position:relative}.toolsection .prose ul>li:before{content:"";background:var(--cat);border-radius:50%;width:6px;height:6px;position:absolute;top:.72em;left:3px}.toolsection .prose li strong{color:var(--text)}.toolsection .prose ol{counter-reset:step;padding-left:0;list-style:none}.toolsection .prose ol>li{counter-increment:step;margin-bottom:12px;padding-left:34px;line-height:1.75;position:relative}.toolsection .prose ol>li:before{content:counter(step);background:var(--cat-soft);width:22px;height:22px;color:var(--cat);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid;position:absolute;top:1px;left:0}.toolsection .prose p:has(>strong:only-child){color:var(--muted);margin:18px 0 8px;font-size:14px}.tablewrap{margin:0 -4px;overflow-x:auto}.comparetable{border-collapse:collapse;width:100%;min-width:620px;font-size:13.5px}.comparetable th{text-align:left;color:var(--muted);background:var(--surface-2);white-space:nowrap;padding:10px 12px;font-size:12.5px;font-weight:600}.comparetable th:first-child{border-radius:8px 0 0 8px}.comparetable th:last-child{border-radius:0 8px 8px 0}.comparetable td{border-bottom:1px solid var(--line);vertical-align:top;padding:11px 12px;line-height:1.6}.comparetable tr:last-child td{border-bottom:0}.comparetable td:first-child{white-space:nowrap;font-weight:500}.comparetable tr.current td{background:var(--cat-soft)}.comparetable td.bad{color:#b91c1c}.toolnote{color:var(--muted);margin:12px 0 0;font-size:12.5px}.relgrid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;display:grid}.relcard{border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--text);align-items:center;gap:10px;padding:12px;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex}.relcard:hover{border-color:color-mix(in srgb, var(--cat) 45%, var(--line));box-shadow:var(--shadow-lift);text-decoration:none;transform:translateY(-2px)}@media (width<=640px){.toolhead{flex-wrap:wrap;gap:14px;padding:20px}.ailogo.xl{border-radius:14px;width:56px;height:56px;font-size:24px}.toolvisit{justify-content:center;width:100%}.toolfacts{grid-template-columns:1fr}.toolsection{padding:20px 18px}}@media (prefers-reduced-motion:reduce){.relcard{transition:none}.relcard:hover{transform:none}.aicard,.aiarrow,.aisearchbox{transition:none}.aicard:hover{transform:none}}
