/* —— 首屏 —— */
.hero{position:relative;padding:168px 0 120px;overflow:hidden}
.hero-field{position:absolute;left:0;top:0;width:100%;height:100vh;pointer-events:none;-webkit-mask:linear-gradient(#000 40%,transparent 95%);mask:linear-gradient(#000 40%,transparent 95%)}
.hero-glow{position:absolute;top:-360px;left:50%;width:1100px;height:760px;transform:translateX(-50%);background:radial-gradient(ellipse,#ff8c241c,transparent 64%);pointer-events:none}
.hero-copy{position:relative;text-align:center}
.hero h1{font-size:clamp(52px,8.6vw,116px);line-height:1.04;letter-spacing:-.055em;font-weight:650;margin-top:28px}
.hero h1 .hl{padding-right:.04em}
.hero-sub{color:var(--muted);font-size:17px;line-height:1.85;margin:30px auto 0;max-width:640px}
.hero-actions{display:flex;justify-content:center;gap:12px;margin-top:42px;flex-wrap:wrap}
.hero-meta{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:26px;font-size:12px;color:var(--dim)}
.hero-meta i{width:3px;height:3px;border-radius:50%;background:var(--line-3)}

/* —— 产品舞台 —— */
.stage-shell{position:relative;margin-top:96px;perspective:2200px}
.stage-shell::before{content:'';position:absolute;left:10%;right:10%;top:12%;height:70%;background:radial-gradient(ellipse,#ff8a2a26,transparent 68%);filter:blur(40px);pointer-events:none}
.stage-tilt{position:relative;width:100%;height:calc(var(--h,720px) * var(--s,1));transform-origin:50% 0;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(var(--sc,1));will-change:transform}
.stage{position:absolute;left:0;top:0;width:var(--w,1180px);height:var(--h,720px);transform:scale(var(--s,1));transform-origin:0 0}
.ps-window{width:100%;height:100%;border-radius:22px;background:#1a1917;border:1px solid #ffffff14;box-shadow:0 70px 160px #000000b0,0 0 0 1px #000,inset 0 1px 0 #ffffff0d;overflow:hidden;display:flex;flex-direction:column}
.ps-title{height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:#211f1c;border-bottom:1px solid #ffffff0a;font-size:11px;color:#a29d93}
.ps-title small{color:#6c685f;font-size:10px;margin-left:4px}
.ps-dots{display:flex;gap:7px}.ps-dots i{width:10px;height:10px;border-radius:50%;background:#3a3732}
.ps-title .i{color:#6c685f}
.ps-body{flex:1;display:flex;min-height:0}
.ps-tools{width:48px;flex-shrink:0;border-right:1px solid #ffffff08;display:flex;flex-direction:column;align-items:center;gap:22px;padding-top:22px;color:#7d786f}
.ps-tools .i{width:16px;height:16px}.ps-tools .on{color:#e8e2d7}
.ps-swatch{width:15px;height:15px;border-radius:3px;background:#8c9b78;box-shadow:4px 4px 0 #d8d2c7;margin-top:4px}
.ps-canvas{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;align-items:center;padding:16px 24px 0;background:#141312 radial-gradient(#ffffff0b .7px,transparent .8px) 0 0/12px 12px}
.ps-canvas-top{width:100%;display:flex;justify-content:space-between;font-size:10px;color:#77736a;margin-bottom:20px}
.artboard{position:relative;height:500px;aspect-ratio:4/5;box-shadow:0 24px 60px #000000a0}
.art{position:absolute;inset:0}
.art.art-next{inset:28% 30% 22% 30%;opacity:0;filter:blur(14px) saturate(.6);transition:opacity 1.1s var(--out),filter 1.2s var(--out);
  -webkit-mask:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent),linear-gradient(transparent,#000 10%,#000 90%,transparent);-webkit-mask-composite:source-in;
  mask:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent),linear-gradient(transparent,#000 10%,#000 90%,transparent);mask-composite:intersect}
.stage.placed .art-next{opacity:1;filter:none}
.marquee{position:absolute;left:30%;top:28%;width:40%;height:50%;transform-origin:0 0;transform:scale(0);opacity:0;transition:transform .9s var(--out),opacity .3s;
  background:linear-gradient(90deg,#fff 50%,#111 0) repeat-x 0 0/10px 1px,linear-gradient(90deg,#fff 50%,#111 0) repeat-x 0 100%/10px 1px,linear-gradient(0deg,#fff 50%,#111 0) repeat-y 0 0/1px 10px,linear-gradient(0deg,#fff 50%,#111 0) repeat-y 100% 0/1px 10px;animation:ants .7s linear infinite}
.stage.selecting .marquee{transform:scale(1);opacity:1}
@keyframes ants{to{background-position:10px 0,-10px 100%,0 -10px,100% 10px}}
.marquee-tag{position:absolute;left:0;top:-24px;font:500 9px/1 var(--mono);color:#fff;background:#000000b3;padding:5px 7px;border-radius:6px;white-space:nowrap;letter-spacing:.4px}
.placed-badge{position:absolute;left:50%;bottom:18px;display:flex;align-items:center;gap:6px;white-space:nowrap;padding:8px 12px;border-radius:11px;background:#fffdf3ee;color:#526944;font-size:10px;box-shadow:0 6px 20px #0003;transform:translate(-50%,10px) scale(.92);opacity:0;transition:opacity .3s,transform .5s var(--spring)}
.placed-badge .i{width:13px;height:13px}
.stage.placed-badge-on .placed-badge{opacity:1;transform:translate(-50%,0) scale(1)}
.float-bar{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:3px;padding:6px;border-radius:18px;background:#22211ef0;border:1px solid #ffffff12;box-shadow:0 14px 40px #0009;backdrop-filter:blur(20px)}
.float-bar .grip{width:14px;color:#6c685f;margin:0 3px}
.float-create{position:relative;width:34px;height:34px;border-radius:12px;background:var(--accent);display:grid;place-items:center;color:#fff;margin-right:4px;overflow:hidden;box-shadow:0 4px 14px #ff8c1830}
.float-create .spark{width:16px;height:16px;transition:opacity .3s,transform .4s var(--spring)}
.float-dots{position:absolute;opacity:0;transition:opacity .3s}
.stage.generating .float-create .spark{opacity:0;transform:scale(.6)}
.stage.generating .float-dots{opacity:1}
.float-tool{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:#a29d93}.float-tool .i{width:15px;height:15px}

.hd-panel{width:420px;flex-shrink:0;display:grid;grid-template-columns:52px minmax(0,1fr);background:#191816;border-left:1px solid #ffffff0a}
.hd-rail{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px 0 18px;border-right:1px solid #ffffff08;background:#151413}
.hd-rail>span{position:relative;z-index:1;width:34px;height:38px;border-radius:13px;display:grid;place-items:center;color:#77726a}
.hd-rail>span .i{width:17px;height:17px}.hd-rail>span.on{color:#fff}
.hd-rail .hd-rail-ind{position:absolute;z-index:0;top:20px;left:8px;background:var(--accent);border:1px solid #ffffff30;box-shadow:0 4px 12px #ff8c1830}
.hd-rail-bottom{margin-top:auto}
.hd-content{display:flex;flex-direction:column;min-width:0;min-height:0}
.hd-head{padding:24px 20px 12px;display:flex;justify-content:space-between;align-items:flex-start}
.hd-head h3{font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px;letter-spacing:.2px}
.hd-head h3 i{width:4px;height:7px;border-radius:2px;background:var(--orange);transform:rotate(25deg)}
.hd-head p{font-size:10px;color:#857f76;margin-top:6px}
.hd-new{width:30px;height:30px;display:grid;place-items:center;color:#77726a;border-radius:10px}.hd-new .i{width:16px;height:16px}
.hd-output{flex:1;position:relative;min-height:0;overflow:hidden}
.hd-idle{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transition:opacity .5s,transform .6s var(--out)}
.hd-idle-title{font-size:14px;font-weight:550;margin-top:18px;color:#ece6db}
.hd-idle-sub{font-size:10px;color:#7c776e;margin-top:8px}
.hd-progress{display:flex;align-items:center;gap:12px;width:220px;margin-top:22px;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .5s var(--out)}
.hd-progress>span{flex:1;height:2px;border-radius:2px;background:#ffffff12;overflow:hidden}
.hd-progress>span>i{display:block;height:100%;width:var(--p,0%);background:var(--accent);border-radius:inherit}
.hd-progress b{font:500 10px var(--mono);color:#a29d93;width:30px;text-align:right}
.hd-steps{display:flex;gap:16px;list-style:none;padding:0;margin:14px 0 0;font-size:9.5px;color:#6c685f;opacity:0;transition:opacity .4s .1s}
.hd-steps li{display:flex;align-items:center;gap:5px;transition:color .3s}
.hd-steps li::before{content:'';width:4px;height:4px;border-radius:50%;background:currentColor}
.hd-steps li.on{color:var(--orange)}
.stage.generating .hd-progress{opacity:1;transform:none}.stage.generating .hd-steps{opacity:1}
.stage.done .hd-idle{opacity:0;transform:translateY(-10px);pointer-events:none}
.hd-results{position:absolute;inset:0 18px;opacity:0;pointer-events:none;transition:opacity .4s}
.stage.done .hd-results{opacity:1}
.hd-results-head{display:flex;justify-content:space-between;align-items:center;font-size:9.5px;color:#7c776e;margin:4px 0 12px}
.hd-results-head span{display:flex;align-items:center;gap:5px;color:var(--ok)}.hd-results-head .i{width:12px;height:12px}
.hd-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hd-grid figure{position:relative;margin:0;aspect-ratio:1/1.08;border-radius:16px;opacity:0;transform:translateY(16px) scale(.96);filter:blur(6px);transition:opacity .8s var(--out),transform .9s var(--out),filter .8s var(--out),box-shadow .3s;transition-delay:calc(var(--k,0) * 110ms)}
.stage.done .hd-grid figure{opacity:1;transform:none;filter:none}
.hd-grid figure.picked{box-shadow:0 0 0 2px var(--orange),0 12px 30px #ff8d3530;transform:scale(.97)!important;transition-delay:0s}
.hd-num{position:absolute;z-index:2;left:10px;top:10px;font:500 8px var(--mono);letter-spacing:.6px;color:#0000006b}
.hd-composer{flex-shrink:0;margin:8px 14px 16px;border:1px solid #2f2c27;background:#1f1e1b;border-radius:22px;padding:12px;transition:border-color .3s,box-shadow .3s}
.stage.typing .hd-composer{border-color:#a8683a;box-shadow:0 0 0 3px #ff8d3510}
.hd-sources{display:flex;align-items:center;gap:4px;font-size:9.5px;color:#a29d93}
.hd-sources .i{width:12px;height:12px}
.hd-plus{width:26px;height:26px;border:1px solid #2f2c27;border-radius:9px;display:grid;place-items:center;margin-right:2px}
.hd-src{display:flex;align-items:center;gap:4px;height:24px;padding:0 7px;border-radius:8px;transition:background .3s,color .3s}
.stage.selected .hd-src.sel{background:#ff8d351a;color:var(--orange)}
.hd-sources small{margin-left:auto;font-size:8.5px;color:#6c685f}
.hd-prompt{position:relative;min-height:62px;font-size:11.5px;line-height:1.9;color:#ece6db;margin:8px 2px 4px}
.hd-placeholder{position:absolute;left:0;top:0;color:#6a665e;transition:opacity .2s}
.stage.has-text .hd-placeholder{opacity:0}
.hd-caret{display:none;width:1.5px;height:13px;background:var(--orange);vertical-align:-2px;margin-left:1px;animation:caret 1s steps(1) infinite}
.stage.typing .hd-caret{display:inline-block}
@keyframes caret{50%{opacity:0}}
.hd-bottom{display:flex;align-items:center;gap:4px}
.hd-chip{display:flex;align-items:center;gap:4px;font-size:9.5px;color:#b5afa4;padding:6px 7px;border-radius:9px}.hd-chip .i{width:12px;height:12px}.hd-chip.model .i{color:var(--orange)}
.hd-count{display:flex;align-items:center;gap:7px;font-size:10px;color:#b5afa4;margin-left:4px}
.hd-count b{width:22px;height:22px;border-radius:8px;background:#2a2824;display:grid;place-items:center;font-weight:400;color:#8a857b}
.hd-send{margin-left:auto;width:34px;height:34px;border-radius:13px;background:var(--accent);color:#fff;display:grid;place-items:center;box-shadow:0 4px 12px #ff8c1830;transition:transform .3s var(--spring),background .3s,box-shadow .3s}
.hd-send .i{width:16px;height:16px}
.hd-send.press{transform:scale(.86)}
.stage.generating .hd-send{background:#2b2925;box-shadow:none}
.stage.generating .hd-send .i{display:none}
.stage.generating .hd-send::after{content:'';width:10px;height:10px;border-radius:3px;background:var(--orange)}
.press-ring{position:absolute;z-index:20;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;border:1.5px solid var(--orange);pointer-events:none;animation:press .7s var(--out) forwards}
@keyframes press{from{opacity:.9;transform:scale(.3)}to{opacity:0;transform:scale(1.4)}}

.stage.compact .ps-tools,.stage.compact .ps-canvas{display:none}
.stage.compact .hd-panel{width:100%;border-left:0}
.stage-caption{display:flex;justify-content:space-between;align-items:center;margin-top:28px;font-size:11px;color:var(--dim);letter-spacing:.5px}
.stage-caption>span:first-child{display:flex;align-items:center;gap:8px}
.stage-caption>span:first-child i{width:6px;height:6px;border-radius:50%;background:var(--orange);animation:live 2s infinite}
@keyframes live{50%{opacity:.3}}
.stage-steps{display:flex;gap:6px}
.stage-steps b{position:relative;font-weight:500;padding:6px 12px 8px;color:var(--dim);transition:color .3s}
.stage-steps b::after{content:'';position:absolute;left:12px;right:12px;bottom:2px;height:1.5px;border-radius:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--out)}
.stage-steps b.on{color:var(--text)}.stage-steps b.on::after{transform:scaleX(1)}

/* —— 宣言 —— */
.manifesto{padding:180px 0}
.manifesto-text{font-size:clamp(28px,3.7vw,50px);line-height:1.5;letter-spacing:-.025em;font-weight:560;max-width:1040px;margin-top:30px}
.manifesto-text .c{opacity:clamp(.13,calc(var(--p,0) * var(--n) - var(--i)),1);transition:opacity .15s linear}

/* —— 能力卡片 —— */
.bento{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.b-copy{padding:34px 34px 0;position:relative;z-index:1}
.b-tag{font-size:10px;letter-spacing:2px;color:var(--eyebrow)}
.b-copy h3{font-size:27px;line-height:1.28;letter-spacing:-.035em;font-weight:600;margin-top:16px}
.b-copy p{font-size:13px;color:var(--muted);line-height:1.85;margin-top:14px;max-width:360px}
.b-gen{grid-column:span 4;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-height:420px}
.b-gen .b-copy{padding-bottom:34px}
.b-gen-visual{padding:30px 30px 30px 0;display:flex;flex-direction:column;gap:14px}
.b-gen-prompt{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:#ffffff06;border:1px solid var(--line);font-size:12px;color:var(--soft);min-height:44px}
.b-gen-prompt .i{color:var(--orange);width:15px;height:15px}
.b-gen-text::after{content:'';display:inline-block;width:1.5px;height:13px;background:var(--orange);margin-left:2px;vertical-align:-2px;animation:caret 1s steps(1) infinite}
.b-gen-grid{position:relative;flex:1;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.b-gen-grid figure{margin:0;border-radius:14px;min-height:0;transition:opacity .7s var(--out),filter .7s var(--out),transform .8s var(--out);transition-delay:calc(var(--k,0) * 90ms)}
.b-gen.gen .b-gen-grid figure{opacity:.06;filter:blur(10px);transform:scale(.96);transition-delay:0s}
.b-gen-dots{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .4s;pointer-events:none}
.b-gen.gen .b-gen-dots{opacity:1}

.b-edit{grid-column:span 2;grid-row:span 2;display:flex;flex-direction:column}
.compare{position:relative;flex:1;min-height:380px;margin:26px;border-radius:18px;overflow:hidden;cursor:ew-resize;touch-action:pan-y;--x:50%;user-select:none}
.compare-a,.compare-b{position:absolute;inset:0}
.compare-b{clip-path:inset(0 0 0 var(--x))}
.compare-handle{position:absolute;top:0;bottom:0;left:var(--x);width:1px;background:#ffffffcc;box-shadow:0 0 20px #0005;z-index:3}
.compare-handle span{position:absolute;top:50%;left:50%;width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;display:grid;place-items:center;background:#ffffffd9;color:#2d2a25;box-shadow:0 6px 20px #0004;backdrop-filter:blur(10px);transition:transform .3s var(--spring)}
.compare-handle .i{width:16px;height:16px}
.compare:hover .compare-handle span,.compare.drag .compare-handle span{transform:scale(1.1)}
.compare-label{position:absolute;top:12px;z-index:3;font-size:10px;padding:5px 9px;border-radius:8px;background:#0000004d;color:#fff;backdrop-filter:blur(8px)}
.compare-label.l{left:12px}.compare-label.r{right:12px}

.b-ocr,.b-var{grid-column:span 2;min-height:400px;display:flex;flex-direction:column}
.ocr{flex:1;display:grid;grid-template-columns:1fr 1.15fr;gap:14px;align-items:center;padding:24px 26px 30px}
.ocr-art{position:relative;aspect-ratio:4/5;border-radius:14px}
.ocr-type{position:absolute;z-index:2;left:12%;top:11%;right:10%;color:#4b4335;font-family:var(--serif)}
.ocr-type b{display:block;font-weight:400;font-size:clamp(13px,1.4vw,18px);line-height:1.15}
.ocr-type small{display:block;font:500 6px/1 var(--sans);letter-spacing:2px;margin-top:8px;opacity:.65}
.ocr-scan{position:absolute;z-index:3;left:0;right:0;top:0;height:34%;background:linear-gradient(transparent,#ff8d3530 85%,#ffb470 100%);opacity:0;pointer-events:none}
.b-ocr.run .ocr-scan{animation:scan 1.6s var(--ease) .2s}
@keyframes scan{0%{opacity:0;transform:translateY(-100%)}15%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translateY(200%)}}
.ocr-layers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.ocr-layers li{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--soft);padding:8px 9px;border-radius:11px;background:#ffffff05;border:1px solid var(--line);opacity:0;transform:translateX(10px);transition:opacity .5s var(--out),transform .6s var(--out);white-space:nowrap;overflow:hidden}
.ocr-layers b{width:22px;height:22px;flex-shrink:0;border-radius:7px;background:#ffffff0c;display:grid;place-items:center;font:400 12px var(--serif);color:var(--text)}
.ocr-layers b .i{width:12px;height:12px}
.ocr-layers li>.i{width:13px;height:13px;margin-left:auto;color:var(--orange)}
.b-ocr.run .ocr-layers li{opacity:1;transform:none;transition-delay:calc(var(--k) * .28s + 1.2s)}

.variants{position:relative;flex:1;min-height:250px;outline:none;cursor:pointer}
.v-card{position:absolute;left:50%;top:50%;width:40%;max-width:156px;aspect-ratio:4/5;border-radius:16px;box-shadow:0 18px 40px #0007;
  transform:translate(-50%,-50%) translateX(calc(var(--pos) * 26px)) rotate(calc(var(--pos) * 5deg)) scale(calc(1 - var(--pos) * .07));opacity:calc(1 - var(--pos) * .2);z-index:calc(10 - var(--pos));
  transition:transform .8s var(--out),opacity .6s,filter .6s}
.v-card.out{transform:translate(-50%,-50%) translateX(-150%) rotate(-14deg) scale(.9);opacity:0}
.v-pill{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);display:flex;align-items:center;gap:7px;font-size:11px;color:var(--soft);padding:7px 12px;border-radius:11px;background:#ffffff08;border:1px solid var(--line-2);white-space:nowrap}
.v-pill .i{width:13px;height:13px;color:var(--orange);transition:transform .6s var(--out)}
.variants:hover .v-pill .i{transform:rotate(180deg)}
.v-pill b{font-weight:500;color:var(--text);font-variant-numeric:tabular-nums}

.b-queue,.b-flow{grid-column:span 3;min-height:360px;display:flex;flex-direction:column}
.queue{list-style:none;margin:0;padding:26px 30px 32px;display:flex;flex-direction:column;gap:9px;margin-top:auto}
.queue li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:15px;background:#ffffff04;border:1px solid var(--line)}
.q-thumb{width:38px;height:38px;border-radius:10px;flex-shrink:0}
.q-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.q-info b{font-size:12.5px;font-weight:500}
.q-info small{font-size:10.5px;color:var(--muted)}
.q-bar{height:3px;border-radius:3px;background:#ffffff10;overflow:hidden;margin-top:4px}
.q-bar i{display:block;height:100%;width:var(--p,0%);background:var(--accent);border-radius:inherit;transition:width .25s linear}
.q-pct{font:500 11px var(--mono);color:var(--orange);width:38px;text-align:right}
.q-done{width:24px;height:24px;border-radius:50%;background:#a5c6981f;color:var(--ok);display:grid;place-items:center}.q-done .i{width:13px;height:13px}
.q-wait{width:16px;height:16px;border-radius:50%;border:1.5px dashed var(--line-3);margin-right:4px;animation:spin 6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.chips{display:flex;flex-wrap:wrap;gap:8px;padding:26px 30px 32px;margin-top:auto}
.chips span{font-size:12px;padding:8px 13px;border-radius:11px;background:#ffffff05;border:1px solid var(--line);color:var(--soft);transition:border-color .3s,color .3s,background .3s,transform .4s var(--spring),box-shadow .3s}
.chips span:hover,.chips span.lit{border-color:#ff8d3566;color:var(--text);background:#ff8d3510;box-shadow:0 0 24px #ff8d3514}
.chips span:hover{transform:translateY(-2px)}

/* —— 生态 —— */
.eco{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 300px minmax(0,1fr);grid-template-rows:auto auto;gap:20px 72px}
.eco-node{display:block;padding:28px 28px 30px;min-height:200px}
.eco-node[data-node=ps]{grid-column:1;grid-row:1}.eco-node[data-node=bar]{grid-column:1;grid-row:2}
.eco-node[data-node=ext]{grid-column:3;grid-row:1}.eco-node[data-node=web]{grid-column:3;grid-row:2}
.eco-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#ffffff08;border:1px solid var(--line-2);color:var(--orange)}
.eco-icon .i{width:20px;height:20px}
.eco-icon.ps{font-weight:700;font-size:16px;letter-spacing:-.5px;color:#31a8ff;background:#001e36;border-color:#0d3a5c}
.eco-state{position:absolute;top:30px;right:28px;font-size:10px;letter-spacing:1px;color:var(--ok);padding:4px 9px;border-radius:20px;background:#a5c69814;border:1px solid #a5c69826}
.eco-node h3{font-size:19px;font-weight:600;letter-spacing:-.02em;margin-top:24px}
.eco-node p{font-size:13px;color:var(--muted);line-height:1.8;margin-top:10px}
.eco-node.soon{background:linear-gradient(145deg,#1d1c1a,#171716);border-style:dashed;border-color:var(--line-2)}
.eco-node.soon .eco-icon{color:var(--muted)}
.eco-node.soon .eco-state{color:var(--eyebrow);background:#ffffff06;border-color:var(--line-2)}
.eco-wire{position:relative;align-self:center;height:1px;width:72px;background:var(--line-2);overflow:hidden;z-index:1}
.eco-wire::after{content:'';position:absolute;top:-1px;height:3px;width:28px;border-radius:3px;background:linear-gradient(90deg,transparent,#ffae65,transparent);animation:wire 2.6s var(--ease) infinite;animation-delay:var(--wd,0s)}
.eco-wire.l{grid-column:1;justify-self:end;margin-right:-72px}
.eco-wire.r{grid-column:3;justify-self:start;margin-left:-72px}
.eco-wire.r::after{animation-name:wire-r}
.eco-wire.soon{background:repeating-linear-gradient(90deg,var(--line-2) 0 4px,transparent 4px 9px)}
.eco-wire.soon::after{display:none}
@keyframes wire{from{transform:translateX(-30px)}to{transform:translateX(80px)}}
@keyframes wire-r{from{transform:translateX(80px)}to{transform:translateX(-30px)}}
.eco:has([data-node=ps]:hover) .w-ps::after,.eco:has([data-node=bar]:hover) .w-bar::after,.eco:has([data-node=ext]:hover) .w-ext::after{animation-duration:1s;width:44px}
.eco-hub{grid-column:2;grid-row:1/3;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-radius:30px;border:1px solid var(--line-2);background:radial-gradient(ellipse at 50% 30%,#ff9b2f12,transparent 70%),linear-gradient(160deg,#211f1c,#191816);padding:40px 24px;overflow:hidden}
.eco-ring{position:absolute;top:50%;left:50%;pointer-events:none;width:180px;height:180px;margin:-90px 0 0 -90px;border-radius:50%;border:1px solid #ff8d3522;animation:ring 4s var(--ease) infinite}
.eco-ring.r2{animation-delay:2s}
@keyframes ring{from{transform:scale(.5);opacity:1}to{transform:scale(1.6);opacity:0}}
.eco-core{position:relative;width:84px;height:84px;border-radius:28px;display:grid;place-items:center;background:var(--accent);box-shadow:0 18px 50px #ff8c1840,inset 0 1px 0 #ffffff60;color:var(--on-accent)}
.eco-core svg{width:40px;height:40px}.eco-core path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.eco-hub b{font-size:17px;font-weight:600;margin-top:28px}
.eco-hub small{font-size:12px;color:var(--muted);margin-top:8px}
.eco-shared{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-direction:column;gap:8px;width:100%}
.eco-shared li{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--soft);padding:10px 12px;border-radius:12px;background:#ffffff05;border:1px solid var(--line);text-align:left}
.eco-shared .i{width:15px;height:15px;color:var(--orange)}

/* —— 工作流目录 —— */
.library .section-head{margin-bottom:48px}
.marquee-rows{display:flex;flex-direction:column;gap:16px;-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-row{display:flex;gap:16px;width:max-content;animation:marquee 140s linear infinite}
.marquee-row.rev{animation-direction:reverse;animation-duration:160s}
.marquee-rows:hover .marquee-row{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(calc(-50% - 8px))}}
.tool{width:300px;flex-shrink:0;padding:12px;border-radius:22px}
.tool .media{aspect-ratio:16/10;border-radius:14px;transition:transform .8s var(--out)}
.tool:hover .media{transform:scale(1.02)}
.tool-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:16px 6px 6px}
.tool h4{font-size:15px;font-weight:600;letter-spacing:-.01em}
.tool p{font-size:12px;color:var(--muted);margin-top:6px}
.tool-meta>span{font:500 10px var(--mono);color:var(--dim);padding-bottom:2px}

/* —— 收尾 —— */
.finale{text-align:center;overflow:hidden;padding:200px 0 180px}
.finale-glow{position:absolute;left:var(--mx,50%);top:var(--my,50%);width:900px;height:600px;transform:translate(-50%,-50%);background:radial-gradient(ellipse,#ff8c2420,transparent 62%);pointer-events:none;transition:left 1.2s var(--out),top 1.2s var(--out)}
.finale-inner{position:relative}
.finale-title{font-size:clamp(50px,8.4vw,124px);line-height:1;letter-spacing:-.055em;font-weight:620;margin-top:28px}
.finale-title .serif{background:var(--accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.03em;padding-right:.08em}
.finale-sub{font-size:17px;color:var(--muted);margin-top:28px}
.trust{display:flex;justify-content:center;align-items:center;gap:7px;font-size:12px;color:var(--dim);margin-top:30px}
.trust .i{width:14px;height:14px}

@media(max-width:1080px){
  .b-gen{grid-column:span 6}.b-edit{grid-column:span 6;grid-row:auto}.compare{min-height:420px}
  .b-ocr,.b-var{grid-column:span 3}.b-queue,.b-flow{grid-column:span 6}
  .eco{grid-template-columns:1fr 1fr;gap:16px}
  .eco-hub{grid-column:1/3;grid-row:1}
  .eco-node[data-node=ps]{grid-column:1;grid-row:2}.eco-node[data-node=bar]{grid-column:2;grid-row:2}
  .eco-node[data-node=ext]{grid-column:1;grid-row:3}.eco-node[data-node=web]{grid-column:2;grid-row:3}
  .eco-wire{display:none}
  .eco-shared{flex-direction:row;flex-wrap:wrap;justify-content:center;width:auto}
}
@media(max-width:720px){
  .hero{padding-top:130px}
  .hero-sub{font-size:15px}.br-lg{display:none}
  .hero-meta{flex-wrap:wrap;font-size:11px}
  .stage-shell{margin-top:64px}
  .stage-caption{flex-direction:column;gap:12px}
  .b-gen{grid-template-columns:1fr}.b-gen-visual{padding:0 24px 24px;min-height:320px}
  .b-ocr,.b-var{grid-column:span 6}
  .b-copy{padding:28px 26px 0}.b-copy h3{font-size:24px}
  .eco{grid-template-columns:1fr}
  .eco-hub,.eco-node[data-node]{grid-column:1;grid-row:auto}
  .tool{width:250px}
}
