:root{--bg:#0c0f14;--bg-raise:#11151d;--panel:#161c26;--panel-2:#1c2431;--line:#28303f;--line-strong:#3a4356;--ink:#edf1f7;--g-50:#f4f6f9;--g-100:#e2e7ee;--g-200:#c7d0dd;--g-300:#a9b5c6;--g-400:#8b99ae;--g-500:#6e7c92;--g-600:#556276;--g-700:#3d4759;--g-800:#29303d;--g-900:#171c25;--g-950:#0c0f14;--amber:#f2a93b;--amber-deep:#c9821e;--teal:#2fbf9b;--red:#e5604f;--violet:#8b7fd9;--fs-xs:12px;--fs-sm:13px;--fs-base:15px;--fs-md:17px;--fs-lg:20px;--fs-xl:26px;--fs-2xl:34px;--fs-3xl:44px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;--r-sm:4px;--r-md:8px;--r-lg:12px;--sh-1:0 1px 2px #0006;--sh-2:0 8px 28px #00000073;--container:1180px;--mono:ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:var(--fs-base);margin:0;line-height:1.55}a{color:var(--amber);text-decoration:none}a:hover{text-decoration:underline}img,canvas{max-width:100%}h1,h2,h3{margin:0 0 var(--sp-3);line-height:1.15}h1{font-size:var(--fs-2xl);letter-spacing:-.01em}h2{font-size:var(--fs-xl);margin-top:var(--sp-7)}h3{font-size:var(--fs-md)}p{margin:0 0 var(--sp-4);color:var(--g-200)}code,.mono{font-family:var(--mono);font-size:.92em}pre{background:var(--g-900);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-4);overflow-x:auto}pre code{color:var(--g-100)}.wrap{max-width:var(--container);margin:0 auto;padding:0 20px}.muted{color:var(--g-400)}.small{font-size:var(--fs-sm)}.site-header{z-index:50;backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#11151deb;position:sticky;top:0}.site-header .wrap{align-items:center;gap:var(--sp-5);height:60px;display:flex}.brand{align-items:center;gap:var(--sp-3);color:var(--ink);font-weight:700;font-size:var(--fs-md);display:flex}.brand:hover{text-decoration:none}.brand svg{display:block}.main-nav{gap:var(--sp-4);flex-wrap:wrap;margin-left:auto;display:flex}.main-nav a{color:var(--g-200);font-size:var(--fs-sm);font-weight:600}.main-nav a:hover{color:var(--amber);text-decoration:none}.lang-btn{background:var(--panel);color:var(--g-100);border:1px solid var(--line-strong);border-radius:var(--r-sm);font:600 var(--fs-sm) var(--sans);cursor:pointer;padding:5px 10px}.lang-btn:hover{border-color:var(--amber);color:var(--amber)}.site-footer{border-top:1px solid var(--line);margin-top:var(--sp-9);background:var(--bg-raise)}.site-footer .cols{gap:var(--sp-6);padding:var(--sp-7) 0 var(--sp-5);grid-template-columns:2fr 1fr 1fr 1fr;display:grid}.site-footer h4{margin:0 0 var(--sp-3);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--g-400)}.site-footer ul{margin:0;padding:0;list-style:none}.site-footer li{margin-bottom:var(--sp-2)}.site-footer a{color:var(--g-300);font-size:var(--fs-sm)}.foot-note{border-top:1px solid var(--line);padding:var(--sp-4) 0 var(--sp-6);color:var(--g-500);font-size:var(--fs-xs)}@media (width<=900px){.site-footer .cols{grid-template-columns:1fr 1fr}.main-nav{display:none}}.hero{padding:var(--sp-8) 0 var(--sp-7);border-bottom:1px solid var(--line);background:radial-gradient(720px 320px at 18% -60px,#f2a93b21,#0000 65%)}.hero h1{font-size:var(--fs-3xl);max-width:19em}.hero .lede{font-size:var(--fs-md);max-width:44em}.eyebrow{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:var(--sp-3)}.btn{background:var(--amber);color:#191103;border:1px solid var(--amber);border-radius:var(--r-sm);font-weight:700;font-size:var(--fs-base);cursor:pointer;padding:10px 18px;display:inline-block}.btn:hover{background:var(--amber-deep);border-color:var(--amber-deep);color:#fff;text-decoration:none}.btn.ghost{color:var(--g-100);border-color:var(--line-strong);background:0 0}.btn.ghost:hover{border-color:var(--amber);color:var(--amber)}.btn.teal{background:var(--teal);border-color:var(--teal);color:#06231b}.btn.sm{font-size:var(--fs-sm);padding:6px 12px}.btn:disabled{opacity:.45;cursor:not-allowed}.cta-row{gap:var(--sp-3);margin-top:var(--sp-5);flex-wrap:wrap;display:flex}.tool-grid{gap:var(--sp-4);margin:var(--sp-5) 0;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));display:grid}.tool-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-5);color:var(--ink);box-shadow:var(--sh-1);display:block}.tool-card:hover{border-color:var(--amber);text-decoration:none;transform:translateY(-1px)}.tool-card .tile{border-radius:var(--r-sm);background:var(--panel-2);border:1px solid var(--line);width:44px;height:44px;margin-bottom:var(--sp-3);place-items:center;display:grid}.tool-card h3{margin-bottom:var(--sp-2)}.tool-card p{font-size:var(--fs-sm);margin:0}.tag{font-family:var(--mono);font-size:var(--fs-xs);color:var(--teal);border:1px solid #2fbf9b66;border-radius:999px;padding:1px 8px;display:inline-block}.tag.beta{color:var(--violet);border-color:#8b7fd980}.tag.amber{color:var(--amber);border-color:#f2a93b73}.steps{gap:var(--sp-4);margin:var(--sp-5) 0;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.step{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-4)}.step .n{font-family:var(--mono);color:var(--amber);font-size:var(--fs-lg);font-weight:700}.chip-row{gap:var(--sp-2);margin:var(--sp-4) 0;flex-wrap:wrap;display:flex}.chip{font-family:var(--mono);font-size:var(--fs-xs);background:var(--panel-2);border:1px solid var(--line);color:var(--g-200);border-radius:var(--r-sm);padding:4px 9px}.fig{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-4);text-align:center}.fig figcaption{color:var(--g-400);font-size:var(--fs-sm);margin-top:var(--sp-3)}.pix{image-rendering:pixelated}details.faq{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-3)}details.faq summary{cursor:pointer;font-weight:700}details.faq p{margin:var(--sp-3) 0 0}.page-head{padding:var(--sp-7) 0 var(--sp-5)}.workbench{gap:var(--sp-5);grid-template-columns:340px 1fr;align-items:start;display:grid}@media (width<=900px){.workbench{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-4);margin-bottom:var(--sp-4)}.panel h3{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.07em;color:var(--g-300);margin-bottom:var(--sp-3)}.dropzone{border:2px dashed var(--line-strong);border-radius:var(--r-md);padding:var(--sp-5) var(--sp-4);text-align:center;color:var(--g-300);cursor:pointer;background:var(--panel-2)}.dropzone:hover,.dropzone.drag{border-color:var(--amber);color:var(--amber)}.field{margin-bottom:var(--sp-3)}.field label{font-size:var(--fs-sm);color:var(--g-300);margin-bottom:var(--sp-1);font-weight:600;display:block}.field input[type=number],.field input[type=text],.field select,.field textarea{background:var(--g-900);border:1px solid var(--line-strong);width:100%;color:var(--ink);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-sm);padding:7px 9px}.field textarea{resize:vertical;min-height:84px}.check{gap:var(--sp-2);font-size:var(--fs-sm);color:var(--g-200);margin-bottom:var(--sp-2);cursor:pointer;align-items:center;display:flex}.file-list{max-height:260px;margin:0;padding:0;list-style:none;overflow:auto}.file-list li{align-items:center;gap:var(--sp-2);border-bottom:1px solid var(--line);font-size:var(--fs-sm);padding:6px 4px;display:flex}.file-list .fname{text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:var(--fs-xs);flex:1;overflow:hidden}.icon-btn{background:var(--panel-2);border:1px solid var(--line);color:var(--g-200);border-radius:var(--r-sm);cursor:pointer;width:26px;height:26px;line-height:1}.icon-btn:hover{color:var(--amber);border-color:var(--amber)}.stage{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-4)}.stage-box{border:1px solid var(--line);border-radius:var(--r-sm);min-height:200px;padding:var(--sp-3);background:repeating-conic-gradient(#1a212d 0% 25%,#141a23 0% 50%) 0 0/24px 24px;place-items:center;display:grid;overflow:auto}.stage-box canvas{image-rendering:pixelated}.anim-bar{align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.anim-bar input[type=range]{width:110px}.stats-line{font-family:var(--mono);font-size:var(--fs-xs);color:var(--g-400);margin-top:var(--sp-3);word-break:break-all}.frame-strip{gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.frame-strip figure{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--sp-1);text-align:center;margin:0}.frame-strip canvas{image-rendering:pixelated;max-width:72px;max-height:72px}.frame-strip figcaption{font-family:var(--mono);color:var(--g-400);font-size:10px}.notice{border-radius:var(--r-md);padding:var(--sp-4);margin:var(--sp-4) 0;background:#f2a93b14;border:1px solid #f2a93b80}.notice.violet{background:#8b7fd917;border-color:#8b7fd98c}.notice p:last-child{margin-bottom:0}.prose{max-width:76ch}.prose ul,.prose ol{color:var(--g-200);padding-left:1.3em}.prose li{margin-bottom:var(--sp-2)}table.spec{border-collapse:collapse;width:100%;margin:var(--sp-4) 0;font-size:var(--fs-sm)}table.spec th,table.spec td{border:1px solid var(--line);text-align:left;padding:8px 10px}table.spec th{background:var(--panel-2);color:var(--g-100)}.beta-banner{border-radius:var(--r-md);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-5);background:linear-gradient(#8b7fd921,#8b7fd90d);border:1px solid #8b7fd98c}
