:root{--bg:#F7F4EE;--bg-2:#F1ECE2;--bg-3:#EAE3D6;--paper:#FFFFFF;--paper-2:#FBF9F4;--ink:#1A1815;--ink-2:#34302A;--ink-3:#5C564C;--ink-soft:#8A8377;--ink-faint:#B8B0A0;--line:#E6DFD2;--line-2:#DBD2C0;--accent:#3D5A4A;--accent-2:#5A7A68;--accent-soft:rgba(61,90,74,0.08);--gold:#9C7B3D;--danger:#A8553D;--danger-soft:rgba(168,85,61,0.08);--shadow-xs:0 1px 2px rgba(26,24,21,0.04);--shadow-s:0 1px 3px rgba(26,24,21,0.05),0 4px 14px rgba(26,24,21,0.06);--shadow-m:0 2px 6px rgba(26,24,21,0.06),0 12px 32px rgba(26,24,21,0.09);--shadow-l:0 4px 10px rgba(26,24,21,0.07),0 24px 56px rgba(26,24,21,0.14);--shadow-glow:0 0 0 1px var(--accent-soft),0 8px 30px rgba(61,90,74,0.12);--r-xs:6px;--r-s:9px;--r-m:13px;--r-l:18px;--r-xl:24px;--serif:"Cormorant Garamond","Noto Serif SC",Georgia,"Songti SC",serif;--sans:"Noto Sans SC",-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;--ease:cubic-bezier(0.22,0.61,0.36,1);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1)}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;font-family:var(--sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;text-rendering:optimizeLegibility}body{overflow:hidden;overscroll-behavior:none}button{cursor:pointer;border:none;background:none}button,input,select,textarea{font-family:inherit;color:inherit}::selection{background:var(--accent);color:#FBF9F4}.icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:radial-gradient(130% 100% at 50% -10%,#FDFAF4 0,#F3EEE3 50%,#E9E1D2 100%);transition:opacity .8s var(--ease),visibility .8s var(--ease);overflow:hidden}.gate.fade{opacity:0;visibility:hidden;pointer-events:none}.gate-canvas,.gate-glow{position:absolute;inset:0;z-index:0;pointer-events:none}.gate-glow{background:radial-gradient(55% 45% at 50% 42%,rgba(61,90,74,.045) 0,transparent 70%);animation:glowPulse 9s ease-in-out infinite}@keyframes glowPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.gate-vignette{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(100% 100% at 50% 50%,transparent 50%,rgba(26,24,21,.05) 100%)}.gate-card{position:relative;z-index:1;width:min(440px,calc(100% - 3rem));padding:2.8rem 2.4rem 2.2rem;text-align:center;background:rgba(255,255,255,.58);-webkit-backdrop-filter:blur(22px) saturate(140%);backdrop-filter:blur(22px) saturate(140%);border:1px solid rgba(255,255,255,.55);border-radius:var(--r-xl);box-shadow:0 2px 8px rgba(26,24,21,.04),0 12px 32px rgba(26,24,21,.06),0 32px 64px rgba(26,24,21,.08),inset 0 1px 0 rgba(255,255,255,.65);transition:transform .35s var(--ease);will-change:transform}.gate-card>.anim-d1,.gate-card>.anim-d2,.gate-card>.anim-d3,.gate-card>.anim-d4,.gate-card>.anim-d5,.gate-card>.anim-d6,.gate-card>.anim-d7{opacity:0;animation:gateFadeUp .8s var(--ease-out) forwards}.anim-d1{animation-delay:.3s}.anim-d2{animation-delay:.45s}.anim-d3{animation-delay:.55s}.anim-d4{animation-delay:.7s}.anim-d5{animation-delay:.85s}.anim-d6{animation-delay:.95s}.anim-d7{animation-delay:1.1s}@keyframes gateFadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.gate-eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.7rem;letter-spacing:.34em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:1.6rem}.gate-eyebrow:after,.gate-eyebrow:before{content:"";width:28px;height:1px;background:var(--line-2)}.gate-mark{display:flex;justify-content:center;margin-bottom:.6rem}.eye-mark{width:54px;height:27px;color:var(--accent)}.gate-title{font-weight:500;font-size:clamp(2.2rem,7vw,2.9rem);letter-spacing:.1em;color:var(--ink);line-height:1.1}.gate-sub,.gate-title{font-family:var(--serif)}.gate-sub{font-style:italic;font-size:.96rem;color:var(--ink-faint);letter-spacing:.28em;text-transform:uppercase;margin-top:.5rem;margin-bottom:2.4rem}.gate-form{display:flex;flex-direction:column;gap:.8rem}.gate-input{width:100%;padding:1rem 1.2rem;background:rgba(255,255,255,.72);border:1px solid var(--line-2);border-radius:var(--r-s);font-size:16px;letter-spacing:.06em;text-align:center;color:var(--ink);box-shadow:inset 0 1px 3px rgba(26,24,21,.03);transition:border-color .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease)}.gate-input:focus{outline:none;border-color:var(--accent);background:rgba(255,255,255,.92);box-shadow:0 0 0 4px var(--accent-soft),inset 0 1px 3px rgba(26,24,21,.02)}.gate-input::placeholder{color:var(--ink-faint);font-family:var(--serif);font-style:italic}.gate-input.shake{animation:shake .45s var(--ease)}@keyframes shake{0%,to{transform:translateX(0)}18%{transform:translateX(-8px)}38%{transform:translateX(7px)}58%{transform:translateX(-5px)}78%{transform:translateX(3px)}}.gate-btn{position:relative;overflow:hidden;padding:1rem;border-radius:var(--r-s);background:linear-gradient(135deg,var(--ink) 0,var(--ink-2) 100%);color:#FBF9F4;font-size:.9rem;letter-spacing:.36em;text-indent:.36em;box-shadow:var(--shadow-s);transition:transform .2s var(--ease),box-shadow .3s var(--ease)}.gate-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--accent) 0,var(--accent-2) 100%);opacity:0;transition:opacity .3s var(--ease)}.gate-btn:hover:before{opacity:1}.gate-btn:hover{box-shadow:var(--shadow-glow)}.gate-btn:active{transform:scale(.985)}.gate-btn:disabled{opacity:.6;cursor:not-allowed}.gate-btn:disabled:before{opacity:0}.gate-btn-text{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center}.gate-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(251,249,244,.3);border-top-color:#fbf9f4;border-radius:50%;animation:spin .7s linear infinite}.gate-error{margin-top:.3rem;min-height:1.2rem;font-size:.8rem;color:var(--danger);letter-spacing:.04em}.gate-foot{margin-top:2.2rem;font-size:.72rem;color:var(--ink-faint);letter-spacing:.2em}.app{position:fixed;inset:0;display:flex;flex-direction:column}.topbar{gap:1rem;padding:0 1.25rem;height:58px;background:rgba(251,249,244,.82);-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--line);z-index:20;flex-shrink:0}.brand,.topbar{display:flex;align-items:center}.brand{gap:.55rem}.brand-mark{display:flex;align-items:center}.brand-eye{width:28px;height:14px;color:var(--accent)}.brand-name{font-weight:500;font-size:1.12rem;letter-spacing:.16em}.brand-name,.brand-sub{font-family:var(--serif)}.brand-sub{font-style:italic;font-size:.78rem;color:var(--ink-faint);letter-spacing:.1em;margin-left:.2rem}.tools{display:flex;align-items:center;gap:.3rem;margin-left:auto}.tool-sep{width:1px;height:18px;background:var(--line-2);margin:0 .4rem}.tool-btn{display:inline-flex;align-items:center;gap:.42rem;height:36px;padding:0 .85rem;border-radius:var(--r-s);font-size:.84rem;color:var(--ink-2);background:transparent;transition:background .2s var(--ease),color .2s var(--ease)}.tool-btn:hover{background:var(--bg-2);color:var(--ink)}.tool-btn .icon{width:16px;height:16px}.tool-btn.ghost{color:var(--ink-soft)}.tool-btn.primary{background:var(--ink);color:#FBF9F4;box-shadow:var(--shadow-xs)}.tool-btn.primary.video,.tool-btn.primary:hover{background:var(--accent)}.tool-btn.primary.video:hover{background:var(--accent-2)}.meta{display:flex;gap:.6rem;margin-left:.4rem}.meta,.zoom-pill{align-items:center}.zoom-pill{display:inline-flex;gap:.4rem;height:30px;padding:0 .7rem;font-family:var(--serif);font-style:italic;font-size:.86rem;color:var(--ink-soft);background:var(--bg-2);border-radius:999px;border:1px solid var(--line);min-width:3.4rem;justify-content:center}.stage{position:relative;flex:1 1;overflow:hidden;background:var(--bg);cursor:-webkit-grab;cursor:grab;touch-action:none}.stage.panning{cursor:-webkit-grabbing;cursor:grabbing}.stage:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(26,24,21,.11) 1px,transparent 1.4px);background-size:calc(28px * var(--gs, 1)) calc(28px * var(--gs, 1));background-position:var(--gx,0) var(--gy,0)}.canvas{top:0;left:0;width:0;height:0;transform-origin:0 0;will-change:transform}.canvas,.origin{position:absolute}.origin{top:-5px;left:-5px;width:10px;height:10px;border-radius:50%;background:var(--accent);opacity:.3;box-shadow:0 0 0 4px var(--accent-soft)}.hint{left:50%;transform:translateX(-50%);font-size:.74rem;color:var(--ink-faint);letter-spacing:.08em;background:rgba(251,249,244,.78);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:.45rem 1rem;border-radius:999px;pointer-events:none;white-space:nowrap;z-index:5}.hint,.zoom-ctrl{position:absolute;bottom:1.1rem;border:1px solid var(--line)}.zoom-ctrl{right:1.1rem;z-index:6;display:flex;flex-direction:column;gap:.3rem;background:rgba(251,249,244,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--r-m);padding:.3rem;box-shadow:var(--shadow-s)}.zoom-ctrl button{width:34px;height:34px;border-radius:var(--r-s);display:grid;place-items:center;color:var(--ink-2);transition:background .18s var(--ease)}.zoom-ctrl button:hover{background:var(--bg-2)}.zoom-ctrl .zlabel{font-family:var(--serif);font-style:italic;font-size:.78rem;color:var(--ink-soft);text-align:center;line-height:1;padding:.15rem 0}.node{position:absolute;width:330px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-s);overflow:hidden;z-index:1;transition:box-shadow .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease);animation:nodeIn .45s var(--ease-spring) both}@keyframes nodeIn{0%{opacity:0;transform:scale(.94) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.node:hover{box-shadow:var(--shadow-m)}.node.lift,.node:hover{border-color:var(--line-2)}.node.lift{box-shadow:var(--shadow-l);z-index:50}.node.busy{pointer-events:none}.node-head{display:flex;align-items:center;justify-content:space-between;padding:.72rem .95rem .62rem;border-bottom:1px solid var(--line);cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.node-head:active{cursor:-webkit-grabbing;cursor:grabbing}.node-tag{display:inline-flex;align-items:center;gap:.45rem}.node-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.node-dot.video{background:var(--gold)}.node-type{font-family:var(--serif);font-style:italic;font-size:.98rem;color:var(--accent);letter-spacing:.04em}.node-type.video{color:var(--gold)}.node-actions{display:flex;gap:.15rem}.node-act{font-size:.74rem;color:var(--ink-faint);padding:.28rem .5rem;border-radius:var(--r-xs);transition:background .18s var(--ease),color .18s var(--ease)}.node-act:hover{background:var(--bg-2);color:var(--ink)}.node-act[data-act=del]:hover{background:var(--danger-soft);color:var(--danger)}.node-body{padding:.85rem .95rem .9rem}.node-prompt{width:100%;resize:vertical;min-height:70px;padding:.65rem .75rem;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-s);font-size:.88rem;line-height:1.65;color:var(--ink);transition:border-color .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease)}.node-prompt:focus{outline:none;border-color:var(--accent-2);background:var(--paper);box-shadow:0 0 0 3px var(--accent-soft)}.node-prompt::placeholder{color:var(--ink-faint);font-style:italic;font-family:var(--serif)}.node-options{display:flex;gap:.7rem;margin-top:.65rem}.opt{display:flex;align-items:center;gap:.4rem;font-size:.76rem;color:var(--ink-soft)}.opt select{padding:.32rem .45rem;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-xs);font-size:.76rem;color:var(--ink-2)}.opt select:focus{outline:none;border-color:var(--accent-2)}.node-gen{width:100%;margin-top:.75rem;padding:.7rem;background:var(--ink);color:#FBF9F4;border-radius:var(--r-s);font-size:.85rem;letter-spacing:.18em;transition:background .25s var(--ease),transform .18s var(--ease),box-shadow .25s var(--ease)}.node-gen:hover{background:var(--accent);box-shadow:var(--shadow-glow)}.node-gen:active{transform:scale(.985)}.node-gen:disabled{background:var(--ink-faint);cursor:not-allowed;box-shadow:none}.node-gen.video{background:var(--gold)}.node-gen.video:hover{background:#7E6330}.node-result{border-top:1px solid var(--line);background:var(--paper-2);min-height:90px;display:flex;flex-direction:column;align-items:stretch;justify-content:stretch;overflow:hidden}.result-empty{font-family:var(--serif);font-style:italic;font-size:.86rem;color:var(--ink-faint);letter-spacing:.1em;padding:1.8rem 1rem;text-align:center;flex:1 1;display:flex;align-items:center;justify-content:center}.node-result img{display:block;width:100%;height:auto;max-height:560px;object-fit:contain;background:var(--bg-3)}.node-result video{display:block;width:100%;max-height:440px;background:#000}.result-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem;padding:1.9rem 1rem;color:var(--ink-soft);font-size:.8rem;letter-spacing:.06em;flex:1 1}.result-loading .lbl{font-family:var(--serif);font-style:italic}.result-error{padding:1.5rem 1rem;text-align:center;color:var(--danger);font-size:.82rem;line-height:1.65}.spinner{width:28px;height:28px;border:2px solid var(--line-2);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}.spinner.video{border-top-color:var(--gold)}@keyframes spin{to{transform:rotate(1turn)}}.node-status{padding:.5rem .95rem;font-size:.7rem;color:var(--ink-faint);letter-spacing:.05em;border-top:1px solid var(--line);min-height:1.7rem;display:flex;align-items:center;gap:.4rem}.node-status .ok{color:var(--accent)}.node-status .err{color:var(--danger)}.adv-toggle{display:flex;align-items:center;gap:.4rem;margin-top:.55rem;padding:0;font-size:.74rem;color:var(--ink-faint);letter-spacing:.05em;transition:color .2s var(--ease)}.adv-toggle:hover{color:var(--accent)}.adv-arrow{display:inline-block;transition:transform .2s var(--ease);font-size:.7rem}.adv-arrow.open{transform:rotate(90deg)}.adv-panel{margin-top:.5rem;padding:.6rem .7rem;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-s);display:flex;flex-direction:column;gap:.5rem}.adv-input{width:100%;resize:vertical;min-height:44px;padding:.45rem .6rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-xs);font-size:.78rem;line-height:1.55;color:var(--ink);transition:border-color .25s var(--ease),box-shadow .25s var(--ease)}.adv-input:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-soft)}.adv-input::placeholder{color:var(--ink-faint);font-size:.74rem}.opt-seed{flex:1 1}.seed-input{width:100%;padding:.32rem .45rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-xs);font-size:.76rem;color:var(--ink-2)}.seed-input:focus{outline:none;border-color:var(--accent-2)}.ref-section{margin-top:.6rem;padding:.6rem .7rem;background:var(--paper-2);border:1px dashed var(--line-2);border-radius:var(--r-s)}.ref-label{font-size:.72rem;color:var(--ink-faint);letter-spacing:.06em;margin-bottom:.45rem}.ref-controls{display:flex;gap:.4rem;flex-wrap:wrap}.ref-btn{padding:.32rem .6rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-xs);font-size:.73rem;color:var(--ink-soft);transition:all .2s var(--ease)}.ref-btn:hover{border-color:var(--accent-2);color:var(--accent);background:var(--accent-soft)}.ref-btn:disabled{opacity:.5;cursor:not-allowed}.ref-clear:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}.ref-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));grid-gap:.4rem;gap:.4rem;margin-top:.5rem}.ref-item{position:relative;display:flex;flex-direction:column;align-items:center;padding:.3rem;background:var(--paper);border:1px solid var(--line);overflow:hidden}.ref-item,.ref-thumb{border-radius:var(--r-xs)}.ref-thumb{width:100%;aspect-ratio:1;object-fit:cover;flex-shrink:0}.ref-remove{position:absolute;top:2px;right:2px;width:18px;height:18px;padding:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55);color:#fff;border:none;border-radius:50%;font-size:.85rem;line-height:1;cursor:pointer;transition:background .2s var(--ease)}.ref-remove:hover{background:var(--danger)}.ref-remove:disabled{opacity:.4;cursor:not-allowed}.ref-name{font-size:.62rem;color:var(--ink-faint);margin-top:.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;text-align:center}.ref-mode-toggle{display:flex;align-items:center;gap:.35rem;margin-top:.5rem;font-size:.72rem;color:var(--ink-soft);cursor:pointer}.ref-mode-toggle input{accent-color:var(--accent-2)}.result-actions{display:flex;gap:.4rem;padding:.5rem .7rem;width:100%;box-sizing:border-box;border-top:1px solid var(--line);background:var(--paper)}.result-btn{flex:1 1;padding:.45rem .6rem;border:1px solid var(--line);border-radius:var(--r-xs);font-size:.74rem;color:var(--ink-soft);letter-spacing:.04em;transition:all .2s var(--ease)}.download-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.download-btn:disabled{opacity:.5;cursor:not-allowed}.ref-video-btn:hover{border-color:var(--gold);color:var(--gold);background:rgba(156,123,61,.06)}.quick-menu{position:fixed;z-index:60;display:flex;flex-direction:column;gap:.15rem;padding:.4rem;background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-m);box-shadow:var(--shadow-l);animation:pop .18s var(--ease-spring) both;transform-origin:top left}@keyframes pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.quick-menu button{display:flex;align-items:center;gap:.55rem;padding:.6rem .85rem;border-radius:var(--r-s);font-size:.84rem;color:var(--ink-2);white-space:nowrap;transition:background .16s var(--ease)}.quick-menu button:hover{background:var(--bg-2)}.quick-menu .qmark{font-family:var(--serif);font-style:italic;color:var(--accent);width:17px;text-align:center}.quick-menu .qmark.video{color:var(--gold)}@media (max-width:1024px) and (min-width:641px){.node{width:300px}.topbar{gap:.8rem;padding:0 1rem}}@media (max-width:640px){.topbar{gap:.5rem;padding:0 .7rem;height:54px}.brand-name,.brand-sub{display:none}.brand-eye{width:24px;height:12px}.tool-btn span{display:none}.tool-btn{padding:0;width:38px;height:38px;justify-content:center}.tool-btn .icon{width:19px;height:19px}.zoom-pill{display:none}.tool-sep{margin:0 .15rem}.hint{font-size:.66rem;padding:.4rem .8rem;bottom:.8rem;max-width:calc(100% - 1.6rem)}.node{width:calc(100vw - 2.2rem);max-width:360px}.gate-card{padding:2rem 1.5rem 1.6rem}.gate-card:hover{transform:none!important}.eye-mark{width:44px;height:22px}.zoom-ctrl{right:.7rem;bottom:.7rem}.zoom-ctrl button{width:32px;height:32px}}@media (max-width:900px) and (orientation:landscape) and (max-height:500px){.gate-card{padding:1.4rem 2rem 1.2rem}.gate-eyebrow{margin-bottom:.8rem}.gate-sub{margin-top:.3rem;margin-bottom:1.4rem}.gate-foot{margin-top:1.2rem}.gate-mark{margin-bottom:.3rem}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}