*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0c11;--surface:#11141b;--surface-2:#171b24;--border:#ffffff14;--border-2:#ffffff24;--text:#c5ccd8;--text-muted:#8a93a3;--text-bright:#f2f5f9;--accent:#6f8ffc;--accent-2:#8aa3fd;--accent-strong:#4166ea;--accent-ink:#fff;--accent-soft:#6f8ffc21;--danger:#f1707a;--r-control:8px;--r-card:12px;--r-panel:16px;--radius:var(--r-card);--radius-sm:var(--r-control);--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI Variable Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:ui-sans-serif, system-ui, -apple-system, "Segoe UI Variable Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "Cascadia Code", "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--shadow:0 20px 60px #0000008c;font-family:var(--font-sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html.light{--bg:#f7f8fb;--surface:#fff;--surface-2:#f0f2f7;--border:#11192d17;--border-2:#11192d29;--text:#3a4252;--text-muted:#626c7e;--text-bright:#131722;--accent:#2c55cf;--accent-2:#3f63e8;--accent-strong:#2c55cf;--accent-soft:#2c55cf17;--danger:#c02633;--shadow:0 10px 30px #17223d1a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);overflow:hidden}.app-layout{flex-direction:column;width:100%;height:100dvh;display:flex;overflow:hidden}.app-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.app-main.active{flex-direction:row}.app-header{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:20;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding-block:10px;padding-inline:clamp(16px,3vw,32px);display:flex}.app-logo{font-family:var(--font-display);color:var(--text-bright);letter-spacing:-.02em;flex-shrink:0;align-items:center;gap:10px;font-size:16px;font-weight:640;display:flex}.brand-mark{width:28px;height:28px;color:var(--accent-strong);flex-shrink:0}.header-examples{border-radius:var(--r-control);min-height:36px;color:var(--text);align-items:center;padding:0 12px;font-size:13px;text-decoration:none;transition:color .18s;display:inline-flex}.header-examples:hover{color:var(--text-bright)}.app-header .btn-icon{border-radius:var(--r-control);min-height:30px;color:var(--text);background:0 0;border-color:#0000;padding:0 9px;font-size:13px;font-weight:560}.app-header .btn-icon:hover:not(:disabled){background:var(--surface-2);color:var(--text-bright);border-color:#0000}.app-header .btn-icon:disabled{opacity:.35}.app-header .btn-square{justify-content:center;width:30px;min-width:30px;padding-inline:0}.landing-actions .btn-icon{background:0 0}.landing-actions{align-items:center;gap:.6rem;display:flex}.app-logo span:first-child{font-size:1.3rem}.app-tagline{color:var(--text-muted);font-size:.78rem}.canvas-section{opacity:0;background:var(--bg);flex:0 1 0;min-width:0;min-height:0;padding:0;transition:flex .65s cubic-bezier(.16,1,.3,1),opacity .5s .2s;overflow:hidden}.canvas-section--visible{opacity:1;flex:auto;padding:1.2rem 1.5rem .6rem}.chat-panel{border-right:1px solid var(--border);background:var(--surface);z-index:10;flex-direction:column;flex-shrink:0;width:400px;height:100%;display:flex;overflow:hidden}.chat-toolbar{border-bottom:1px solid var(--border);background:var(--surface-2);flex-shrink:0;justify-content:space-between;align-items:center;padding:.55rem 1rem;display:flex}.chat-toolbar-title{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;display:flex}.chat-toolbar-dot{background:#10b981;border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px #10b981}.chat-toolbar-actions{align-items:center;gap:.5rem;display:flex}.chat-messages{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;flex:1;gap:.6rem;padding:.75rem 1rem;display:flex;overflow-y:auto}.chat-bubble{align-items:flex-start;gap:.6rem;animation:.25s fadeSlideUp;display:flex}.chat-bubble--user{flex-direction:row-reverse}.chat-bubble-avatar{flex-shrink:0;margin-top:2px;font-size:1rem}.chat-bubble-content{border-radius:var(--radius-sm);word-break:break-word;white-space:pre-wrap;max-width:75%;max-height:260px;padding:.55rem .9rem;font-size:.87rem;line-height:1.55;overflow-y:auto}.chat-bubble--user .chat-bubble-content{color:var(--text-bright);border-radius:var(--radius-sm) var(--radius-sm) 2px var(--radius-sm);background:#4facfe1f;border:1px solid #4facfe40}.chat-bubble--assistant .chat-bubble-content{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm) var(--radius-sm) var(--radius-sm) 2px}.chat-input-row{border-top:1px solid var(--border);background:var(--surface-2);flex-shrink:0;align-items:flex-end;gap:.5rem;padding:.65rem .85rem;display:flex}.chat-input{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--radius-sm);color:var(--text-bright);resize:none;outline:none;flex:1;padding:.5rem .8rem;font-family:inherit;font-size:.88rem;line-height:1.5;transition:border-color .2s}.chat-input:focus{border-color:var(--accent)}.chat-input::placeholder{color:var(--text-muted)}.chat-input:disabled{opacity:.5}.btn-primary{background:var(--accent-strong);color:var(--accent-ink);border-radius:var(--r-control);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 18px;font-family:inherit;font-size:14px;font-weight:600;transition:background .18s,transform .12s;display:inline-flex}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent-strong) 88%, white)}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-send{background:var(--accent-strong);border-radius:var(--r-control);color:#fff;cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:.55rem .75rem;transition:opacity .2s;display:flex}.btn-send:hover:not(:disabled){opacity:.85}.btn-send:disabled{opacity:.35;cursor:not-allowed}.btn-icon{border:1px solid var(--border);border-radius:var(--r-control);color:var(--text-muted);cursor:pointer;background:0 0;align-items:center;padding:.35rem;transition:background .18s,border-color .18s,color .18s;display:flex}.btn-icon:hover:not(:disabled){border-color:var(--border-2);color:var(--text-bright)}.btn-icon:active:not(:disabled){transform:scale(.97)}.export-progress{color:var(--text-muted);flex-direction:column;gap:3px;min-width:120px;font-size:.72rem;display:flex}.export-progress-bar{background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:99px;height:3px;transition:width .2s}.thinking-dots{align-items:center;gap:4px;display:inline-flex}.thinking-dots span{background:var(--accent);border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite bounce;display:inline-block}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}.modal-backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;background:#090b10e6;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-box{background:var(--surface);border:1px solid var(--border-2);width:100%;max-width:440px;box-shadow:var(--shadow);border-radius:20px;flex-direction:column;gap:1rem;padding:2.5rem;animation:.4s cubic-bezier(.16,1,.3,1) fadeSlideUp;display:flex}.modal-logo{align-items:center;gap:.6rem;display:flex}.modal-icon{font-size:1.8rem}.modal-logo h2{color:var(--text-bright);letter-spacing:-.03em;font-size:1.6rem;font-weight:700}.modal-subtitle{color:var(--text-muted);font-size:.9rem;line-height:1.6}.modal-field label{color:var(--text);letter-spacing:.02em;font-size:.8rem;font-weight:500}.modal-field input{background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--radius-sm);color:var(--text-bright);outline:none;width:100%;padding:.7rem .9rem;font-family:JetBrains Mono,monospace;font-size:.88rem;transition:border-color .2s}.modal-field input:focus{border-color:var(--accent)}.modal-error{color:#f87171;font-size:.8rem}.modal-link{color:var(--accent);font-size:.82rem;text-decoration:none}.modal-link:hover{text-decoration:underline}.modal-note{color:var(--text-muted);font-size:.75rem;line-height:1.5}.error-msg{color:#f87171;margin-top:.5rem;font-size:.82rem}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,80%,to{opacity:.5;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:99px}.gif-toast{background:var(--surface);z-index:999;white-space:nowrap;border:1px solid #10b981;border-radius:12px;align-items:center;gap:1rem;padding:.75rem 1.2rem;animation:.35s cubic-bezier(.16,1,.3,1) fadeSlideUp;display:flex;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0009,0 0 0 1px #10b98133}.gif-toast span{color:#e2e8f0;font-size:.9rem}.gif-toast-btn{color:#fff;background:linear-gradient(135deg,#10b981,#34d399);border-radius:7px;padding:.45rem 1rem;font-family:inherit;font-size:.85rem;font-weight:600;text-decoration:none;transition:opacity .2s}.gif-toast-btn:hover{opacity:.88}.gif-toast-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.2rem .3rem;font-size:.85rem;transition:color .2s}.gif-toast-close:hover{color:var(--text)}.error-toast{background:var(--surface);z-index:999;border:1px solid #ef4444;border-radius:12px;align-items:center;gap:1rem;max-width:min(90vw,640px);padding:.75rem 1.2rem;animation:.35s cubic-bezier(.16,1,.3,1) fadeSlideUp;display:flex;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0009,0 0 0 1px #ef444433}.error-toast span{color:#fca5a5;font-size:.9rem}.app-header-right{align-items:center;gap:.6rem;min-width:0;display:flex}.btn-mermaid-toggle{background:var(--accent-soft);border:1px solid var(--border-2);color:var(--accent);border-radius:var(--r-control);cursor:pointer;padding:.3rem .75rem;font-family:inherit;font-size:13px;font-weight:560;transition:background .18s,border-color .18s}.btn-mermaid-toggle:hover{border-color:var(--accent)}.mermaid-panel{background:var(--surface);z-index:10;border:1px solid #6366f14d;border-radius:10px;width:min(420px,90%);animation:.3s fadeSlideUp;position:absolute;bottom:.75rem;right:.75rem;overflow:hidden;box-shadow:0 12px 40px #0009}.mermaid-panel-header{color:#a5b4fc;background:#6366f11a;border-bottom:1px solid #6366f133;justify-content:space-between;align-items:center;padding:.55rem .9rem;font-size:.78rem;font-weight:600;display:flex}.mermaid-copy-btn{color:#a5b4fc;cursor:pointer;background:#6366f126;border:1px solid #6366f14d;border-radius:5px;padding:.2rem .6rem;font-family:inherit;font-size:.75rem;transition:background .2s}.mermaid-copy-btn:hover{background:#6366f14d}.mermaid-panel-code{color:#94a3b8;white-space:pre;max-height:220px;margin:0;padding:.75rem .9rem;font-family:JetBrains Mono,Fira Code,Courier New,monospace;font-size:.73rem;line-height:1.6;overflow-y:auto}.loading-steps{flex-direction:column;gap:.35rem;display:flex}.loading-step{align-items:center;gap:.5rem;font-size:.82rem;transition:color .3s;display:flex}.loading-step.pending{color:var(--text-muted)}.loading-step.active{color:var(--accent)}.loading-step.done{color:#4ade80}.loading-step-icon{text-align:center;width:14px;font-size:.7rem}.loading-step.active .loading-step-icon{animation:.9s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.provider-tabs{background:var(--surface-2);border-radius:var(--radius-sm);margin-bottom:.5rem;padding:4px;display:flex}.provider-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:.5rem;font-family:inherit;font-size:.8rem;font-weight:600;transition:all .2s}.provider-tab.active{background:var(--surface);color:var(--accent);box-shadow:0 2px 8px #0003}.ollama-requirements{flex-direction:column;gap:.5rem;margin:1rem 0;list-style:none;display:flex}.ollama-requirements li{color:var(--text);align-items:flex-start;gap:.5rem;font-size:.82rem;display:flex}.ollama-requirements li:before{content:"•";color:var(--accent)}.ollama-requirements code{color:var(--accent);background:#0000004d;border-radius:4px;padding:1px 4px;font-family:JetBrains Mono,monospace}.active-provider{color:var(--text-muted);border:1px solid var(--border);background:#ffffff08;border-radius:6px;align-items:center;gap:.5rem;padding:.3rem .6rem;font-size:.75rem;font-weight:600;display:flex}.provider-dot{border-radius:50%;width:6px;height:6px}.btn-change-provider{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-top:1rem;font-family:inherit;font-size:.75rem;transition:color .2s}.btn-change-provider:hover{color:var(--accent)}.node-group{cursor:pointer;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.node-group:hover{transform:scale(1.04)}.view-toggle{background:var(--surface-2);border-radius:var(--r-control);border:1px solid #0000;gap:2px;margin-right:.35rem;padding:2px;display:flex}.view-toggle button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;min-height:26px;padding:0 12px;font-size:13px;font-weight:560;transition:background .18s,color .18s}.view-toggle button:hover:not(:disabled):not(.active){color:var(--text-bright)}.view-toggle button.active{background:var(--accent-soft);color:var(--accent)}.tools-menu .tools-reset{border-top:1px solid var(--border);border-radius:var(--r-control);color:var(--danger);margin-top:6px;padding-top:.7rem}.history-controls{gap:.25rem;display:flex}.history-controls .btn-icon{justify-content:center;width:36px;min-width:36px;padding-inline:0;font-size:15px}.frame-select{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:#ffffff0d;border-radius:8px;padding:5px 10px;font-size:.8rem;font-weight:600;transition:all .2s}.frame-select:hover{color:var(--accent);border-color:var(--accent)}.frame-select:focus{border-color:var(--accent);outline:none}.frame-select option{background:var(--surface-2,#1a1b22);color:var(--text,#e5e7eb)}.presentation-group{align-items:center;gap:6px;margin-right:1rem;display:flex}.btn-design{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6d3bff,#9b6bff);border:none;border-radius:8px;padding:6px 14px;font-size:.8rem;font-weight:700;transition:transform .12s,box-shadow .12s,opacity .12s;box-shadow:0 2px 10px #6d3bff59}.btn-design:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #6d3bff80}.btn-design:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-design-export{background:linear-gradient(135deg,#10b981,#34d399);box-shadow:0 2px 10px #10b98159}.btn-design-export:hover:not(:disabled){box-shadow:0 4px 16px #10b98180}.btn-design-export:disabled{box-shadow:none;background:linear-gradient(135deg,#4b5563,#6b7280)}.menu-wrap{position:relative}.toolbar-cluster{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border);border-radius:11px;align-items:center;gap:2px;padding:3px;display:flex}.cluster-btn{min-height:28px;color:var(--text);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;padding:0 11px;font-family:inherit;font-size:13px;font-weight:560;transition:background .15s,color .15s,box-shadow .15s;display:flex}.cluster-btn>svg{color:var(--text-muted);flex-shrink:0;transition:color .15s}.cluster-btn:hover:not(:disabled){background:color-mix(in srgb, var(--surface) 70%, transparent);color:var(--text-bright)}.cluster-btn:hover:not(:disabled)>svg{color:var(--text)}.cluster-btn:disabled{opacity:.4;cursor:not-allowed}.cluster-btn[aria-expanded=true],.cluster-btn[aria-pressed=true]{background:var(--surface);color:var(--text-bright);box-shadow:0 1px 2px #00000029, 0 0 0 1px var(--border-2)}.cluster-btn[aria-expanded=true]>svg,.cluster-btn[aria-pressed=true]>svg{color:var(--accent)}.menu-trigger{gap:7px}.cluster-btn .menu-chevron{opacity:.5;margin-left:-2px;transition:transform .2s cubic-bezier(.16,1,.3,1),opacity .15s}.cluster-btn[aria-expanded=true] .menu-chevron{opacity:1;transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.menu-chevron{transition:none}}.menu-panel{z-index:100;border:1px solid var(--border-2);background:var(--surface);min-width:208px;max-width:calc(100vw - 24px);max-height:70dvh;box-shadow:var(--shadow);border-radius:10px;gap:1px;padding:5px;animation:.14s ease-out tools-enter;display:grid;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto}@media (prefers-reduced-motion:reduce){.menu-panel{animation:none}}.menu-group-label{color:var(--text-muted);letter-spacing:.02em;padding:8px 8px 4px;font-size:11px;font-weight:620}.menu-group-label:not(:first-child){border-top:1px solid var(--border);margin-top:4px;padding-top:9px}.menu-panel button{width:100%;min-height:34px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;padding:0 8px;font-family:inherit;font-size:13px;transition:background .12s,color .12s;display:flex}.menu-panel button>svg{box-sizing:content-box;background:var(--surface-2);width:16px;height:16px;color:var(--text-muted);border-radius:6px;flex-shrink:0;padding:4px;transition:background .12s,color .12s}.menu-panel button:hover:not(:disabled){background:var(--accent-soft);color:var(--text-bright)}.menu-panel button:hover:not(:disabled)>svg{background:var(--accent);color:var(--accent-ink)}.menu-panel .tools-reset:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger)}.menu-panel .tools-reset:hover:not(:disabled)>svg{background:var(--danger);color:var(--accent-ink)}.menu-panel button:disabled{opacity:.45;cursor:not-allowed}.menu-field{border-top:1px solid var(--border);color:var(--text-muted);letter-spacing:.02em;flex-direction:column;gap:5px;margin-top:4px;padding:9px 8px 3px;font-size:11px;font-weight:620;display:flex}.menu-field select{border:1px solid var(--border-2);background:var(--surface-2);width:100%;min-height:30px;color:var(--text);font:inherit;border-radius:6px;padding:0 7px;font-size:13px;font-weight:400}.menu-backdrop{z-index:90;position:fixed;inset:0}button,select,input,textarea,summary{font:inherit}button,summary{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app-layout{height:100dvh}.app-header{flex-wrap:wrap;gap:1rem}.app-header-right{flex-wrap:wrap;justify-content:flex-end}.canvas-section{position:relative}.settings-dialog{color:var(--text);background:0 0;border:0;width:min(440px,100vw - 24px);max-height:90dvh;margin:auto;padding:0}.settings-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000b3}.settings-dialog .modal-box{padding:1.5rem;animation:none}.modal-actions{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.btn-reset-settings{color:#fca5a5;font:inherit;cursor:pointer;background:#f8717114;border:1px solid #f8717173;border-radius:8px;font-weight:700}.btn-reset-settings:hover{background:#f8717129}.modal-field{flex-direction:column;gap:.5rem;display:flex}.modal-field input,.modal-field select,.export-menu select{background:var(--surface);width:100%;color:var(--text);border:1px solid var(--border-2);border-radius:8px;padding:.7rem}.modal-field small{color:var(--text-muted);line-height:1.5}.source-editor{resize:vertical;background:var(--surface);width:100%;min-height:220px;max-height:50dvh;color:var(--text);border:0;padding:1rem;font:13px/1.6 Consolas,monospace;display:block}.source-actions{justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem;display:flex}.source-actions span{color:var(--text-muted);font-size:11px}.document-status{color:var(--text-muted);border-top:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;padding:.6rem 1.5rem;font-size:11px;display:flex}.document-status>span:first-child{align-items:center;gap:8px;display:flex}.workspace-summary{white-space:nowrap}.operation-status{z-index:50;background:var(--surface);border:1px solid var(--border-2);border-radius:12px;align-items:center;gap:1rem;padding:.75rem;display:flex;position:fixed;bottom:3rem;left:50%;transform:translate(-50%)}.error-toast span{white-space:pre-wrap;overflow-wrap:anywhere}@keyframes tools-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tool-icon{color:var(--text-muted);flex-shrink:0}.tools-reset .tool-icon{color:inherit}.credential-status{border:1px solid var(--border);color:var(--text-muted);border-radius:8px;align-items:center;gap:.45rem;margin:0;padding:.55rem .7rem;font-size:.78rem;display:flex}.credential-status.configured{color:#34d399;border-color:#34d39959}.btn-reset-settings:disabled{cursor:not-allowed;opacity:.45}@media (width<=1100px){.app-header-right{gap:.4rem}.chat-panel{width:310px}.app-header{padding:.65rem 1rem}}@media (width<=700px){.app-header{align-items:center;padding:.55rem .65rem}.app-header-right{justify-content:flex-end;gap:.3rem}.active .app-logo{font-size:0}.active .brand-name{display:none}.app-header .btn-icon{padding-inline:9px}.header-examples{display:none}.idle .app-header-right{flex-basis:100%;justify-content:space-between}.idle .landing-actions{width:100%}.idle .landing-actions .btn-icon:last-child{margin-left:auto}.document-status{padding:.5rem .75rem;font-size:9px}.app-logo span:first-child{font-size:1.2rem}.view-toggle button{padding-inline:8px;font-size:12px}.history-controls,.app-header-right>button.btn-icon{display:none}.idle .app-header{flex-wrap:wrap;gap:.7rem}.idle .app-header-right{flex:auto}.landing-actions{flex-wrap:wrap;gap:.4rem}.app-main.active{flex-direction:column-reverse}.chat-panel{border-right:0;border-top:1px solid var(--border);flex:0 0 34dvh;width:100%;height:34dvh}.canvas-section--visible{min-height:200px;padding:.5rem}.mermaid-panel{width:calc(100% - 1rem);right:.5rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.btn-icon{color:var(--text)}.chat-empty{color:var(--text-muted);padding:1.2rem;font-size:13px;line-height:1.7}.chat-empty h2{color:var(--text);margin-bottom:.8rem;font-size:15px}.chat-empty p{margin-bottom:.8rem}.presentation-preview{flex-direction:column;gap:12px;width:100%;height:100%;min-height:0;display:flex}.presentation-preview-toolbar{color:var(--text-muted);justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.presentation-preview-toolbar strong{color:var(--text-bright)}.presentation-preview-actions{gap:8px;display:flex}.presentation-preview-toolbar button{padding:7px 12px}.presentation-slide-stage{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.presentation-slide-stage>svg{border-radius:10px;width:100%;height:100%;max-height:100%}.presentation-preview-warning{color:var(--text-muted);max-height:80px;font-size:12px;overflow:auto}.presentation-preview-toggle{z-index:3;background:var(--surface);padding:8px 12px;position:absolute;bottom:16px;right:16px}@media (width<=700px){.presentation-preview-toolbar{align-items:flex-start;font-size:11px}}.landing-page{--landing-muted:var(--text-muted);--ease-out:cubic-bezier(.16, 1, .3, 1);scroll-behavior:smooth;background:radial-gradient(ellipse 900px 560px at 82% -8%, var(--accent-soft), transparent 68%), var(--bg);flex:1;overflow:hidden auto}.landing-hero,.landing-browser,.landing-examples,.landing-footer{max-width:1240px;margin-inline:auto;padding-inline:clamp(20px,5vw,56px)}.landing-hero{grid-template-columns:minmax(0,1.18fr) minmax(0,1.1fr);align-items:center;gap:clamp(32px,4vw,56px);padding-block:clamp(36px,4.5vw,56px) clamp(48px,6vw,72px);display:grid}.hero-copy h1{font-family:var(--font-display);color:var(--text-bright);letter-spacing:-.035em;padding-bottom:2px;font-size:clamp(32px,3.5vw,46px);font-weight:620;line-height:1.12}.hero-copy h1>span{color:var(--accent)}.hero-description{max-width:46ch;color:var(--landing-muted);margin-top:20px;font-size:16px;line-height:1.65}.creation-card{border:1px solid var(--border-2);background:var(--surface);border-radius:var(--r-panel);margin-top:30px;padding:18px;transition:border-color .2s,box-shadow .2s}.creation-card:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.creation-card label{color:var(--text-bright);font-size:14px;font-weight:620;display:block}.creation-help{color:var(--landing-muted);margin-top:4px;font-size:13px}.creation-card textarea{width:100%;color:var(--text-bright);font:inherit;resize:vertical;background:0 0;border:0;outline:0;min-height:78px;max-height:250px;margin:14px 0 4px;font-size:14px;line-height:1.65;display:block}.creation-card textarea::placeholder{color:var(--landing-muted);opacity:1}.creation-actions{justify-content:flex-end;display:flex}.hero-visual{min-width:0}.flow-preview{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-panel);box-shadow:var(--shadow);overflow:hidden}.preview-toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.preview-title{color:var(--text);font-size:13px;font-weight:560}.preview-toolbar button{background:var(--surface-2);border:1px solid var(--border-2);color:var(--text);font:inherit;border-radius:var(--r-control);cursor:pointer;min-height:30px;padding:0 12px;font-size:12px;transition:color .18s,border-color .18s}.preview-toolbar button:hover{color:var(--text-bright);border-color:var(--border-2)}.preview-diagram{width:100%;height:auto;color:var(--landing-muted);display:block}.preview-connections path{stroke:var(--border-2);stroke-width:2px;fill:none}.preview-beams path{fill:none;stroke:var(--accent);stroke-width:2px;stroke-dasharray:14 240;animation:4s linear infinite flow-beam}.preview-beams path:nth-child(2n){animation-delay:-2s}.preview-beams path:nth-child(3n){animation-delay:-1s}.is-paused .preview-beams path{animation-play-state:paused}.preview-node rect{fill:var(--surface-2);stroke:var(--border-2)}.preview-node:nth-child(2n) rect{stroke:var(--accent);stroke-opacity:.55}.preview-node text{fill:var(--text-bright);font-size:11px;font-weight:500}.preview-edge-label{fill:var(--landing-muted);font-family:var(--font-mono);font-size:10px}.landing-browser{border-top:1px solid var(--border);padding-block:clamp(64px,8vw,108px);position:relative}.browser-heading{z-index:4;max-width:62ch;position:relative}.section-kicker{color:var(--accent);font-family:var(--font-mono);letter-spacing:.14em;align-items:center;gap:8px;margin-bottom:14px;font-size:11px;font-weight:700;display:inline-flex}.section-kicker:before{content:"";background:currentColor;width:22px;height:1px;box-shadow:0 0 12px}.browser-heading h2,.examples-heading h2{font-family:var(--font-display);letter-spacing:-.03em;color:var(--text-bright);font-size:clamp(24px,2.6vw,32px);font-weight:600;line-height:1.2}.browser-heading p{color:var(--landing-muted);margin-top:14px;font-size:15px;line-height:1.7}.browser-stage{perspective:1600px;isolation:isolate;place-items:center;min-height:clamp(480px,54vw,690px);margin-top:clamp(32px,5vw,58px);display:grid;position:relative}.browser-stage:before{content:"";z-index:-3;background:radial-gradient(circle at 24% 44%, color-mix(in srgb, var(--accent) 25%, transparent), transparent 32%), radial-gradient(circle at 76% 56%, #1dd3b02e, transparent 34%);filter:blur(36px);opacity:.85;border-radius:50%;position:absolute;inset:2% 5% 12%}.browser-depth-grid{z-index:-2;background-image:linear-gradient(color-mix(in srgb, var(--accent) 18%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--accent) 18%, transparent) 1px, transparent 1px);transform-origin:bottom;opacity:.55;background-size:44px 44px;height:62%;position:absolute;bottom:1%;left:4%;right:4%;transform:rotateX(67deg)translateY(23%)translateZ(-80px);-webkit-mask-image:linear-gradient(#0000 2%,#000 42%,#0000 100%);mask-image:linear-gradient(#0000 2%,#000 42%,#0000 100%)}.browser-orbit{z-index:-1;border:1px solid color-mix(in srgb, var(--accent) 24%, transparent);transform-style:preserve-3d;pointer-events:none;border-radius:50%;position:absolute}.browser-orbit:after{content:"";background:var(--accent);width:8px;height:8px;box-shadow:0 0 18px 4px var(--accent-soft);border-radius:50%;position:absolute;top:50%;left:-4px}.browser-orbit-one{aspect-ratio:2.2;width:88%;animation:12s ease-in-out infinite alternate orbit-drift-one}.browser-orbit-two{aspect-ratio:1.7;border-color:#1dd3b038;width:72%;animation:15s ease-in-out infinite alternate orbit-drift-two}.browser-shot{--tilt-x:2deg;--tilt-y:-3deg;--glare-x:48%;--glare-y:38%;z-index:2;border:1px solid color-mix(in srgb, var(--border-2) 72%, var(--accent));width:min(92%,1040px);transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateZ(36px);transform-style:preserve-3d;transform-origin:50%;will-change:transform;transition:transform .18s var(--ease-out);background:#0b0f17;border-radius:18px;margin:0;position:relative;overflow:hidden;box-shadow:0 42px 90px #02081745,0 14px 32px #0208172e,inset 0 0 0 1px #ffffff0d}.browser-shot:before,.browser-shot:after{content:"";z-index:-1;border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);border-radius:inherit;background:color-mix(in srgb, var(--surface) 76%, transparent);pointer-events:none;position:absolute;inset:10px;transform:translate3d(18px,20px,-42px)}.browser-shot:after{opacity:.45;inset:18px;transform:translate3d(34px,36px,-82px)}.browser-window-bar{color:#94a3b8;background:linear-gradient(#161d2a,#101620);border-bottom:1px solid #94a3b824;grid-template-columns:1fr minmax(180px,360px) 1fr;align-items:center;gap:16px;height:42px;padding:0 15px;display:grid}.window-controls{gap:6px;display:flex}.window-controls i{background:#3a4658;border-radius:50%;width:8px;height:8px}.window-controls i:first-child{background:#ff6b6b}.window-controls i:nth-child(2){background:#f6c85f}.window-controls i:nth-child(3){background:#1dd3b0}.window-address{color:#94a3b8;min-width:0;height:26px;font-family:var(--font-mono);white-space:nowrap;background:#0206176b;border:1px solid #94a3b81f;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-size:10px;display:flex}.window-address svg{color:#1dd3b0}.window-live{color:#a7f3d0;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;justify-self:end;align-items:center;gap:6px;font-size:9px;font-weight:700;display:inline-flex}.window-live:before{content:"";background:#1dd3b0;border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite live-pulse;box-shadow:0 0 10px #1dd3b0}.browser-screen{background:#0b0f17;position:relative;overflow:hidden}.browser-screen img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;display:block;transform:scale(1.002)}.browser-screen-glare{pointer-events:none;background:radial-gradient(circle at var(--glare-x) var(--glare-y), #ffffff1f, transparent 28%);mix-blend-mode:screen;transition:background-position .15s;position:absolute;inset:0}.browser-scan-line{pointer-events:none;background:linear-gradient(#0000,#5d87ff12,#0000);height:18%;animation:7s linear infinite scan-workspace;position:absolute;top:-20%;left:0;right:0}.browser-float{z-index:5;border:1px solid color-mix(in srgb, var(--border-2) 72%, var(--accent));min-width:192px;color:var(--text-bright);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:none;transform-style:preserve-3d;border-radius:13px;align-items:center;gap:11px;padding:11px 13px;display:flex;position:absolute;box-shadow:0 18px 45px #0208172e}.browser-float span:last-child{gap:3px;display:grid}.browser-float strong{font-size:12px;font-weight:650}.browser-float small{color:var(--landing-muted);font-size:10px}.float-icon{width:32px;height:32px;color:var(--accent);background:var(--accent-soft);box-shadow:0 0 20px var(--accent-soft);border-radius:9px;flex:none;place-items:center;display:grid}.browser-float-local{animation:5.5s ease-in-out infinite float-card-a;top:18%;left:-1%}.browser-float-render{animation:6.2s ease-in-out -1.4s infinite float-card-b;top:27%;right:-1%}.browser-float-export{animation:6.8s ease-in-out -2.6s infinite float-card-a;bottom:2%;right:8%}.browser-facts{border-top:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 40px;margin-top:36px;padding-top:32px;display:grid}.browser-facts h3{color:var(--text-bright);font-size:15px;font-weight:600}.browser-facts p{color:var(--landing-muted);margin-top:8px;font-size:14px;line-height:1.65}@keyframes orbit-drift-one{0%{transform:rotateX(66deg)rotate(-8deg)translateZ(-100px)}to{transform:rotateX(72deg)rotate(4deg)translateZ(-70px)}}@keyframes orbit-drift-two{0%{transform:rotateY(66deg)rotate(8deg)translateZ(-80px)}to{transform:rotateY(73deg)rotate(-5deg)translateZ(-50px)}}@keyframes float-card-a{0%,to{transform:translateZ(76px)rotateY(-4deg)}50%{transform:translate3d(0,-10px,96px)rotateY(2deg)}}@keyframes float-card-b{0%,to{transform:translate3d(0,-5px,84px)rotateY(5deg)}50%{transform:translate3d(0,7px,104px)rotateY(-2deg)}}@keyframes scan-workspace{to{top:110%}}@keyframes live-pulse{50%{opacity:.45;transform:scale(.75)}}.landing-examples{border-top:1px solid var(--border);padding-block:clamp(48px,6vw,80px);scroll-margin-top:24px}.examples-heading>p{color:var(--landing-muted);margin-top:12px;font-size:15px}.example-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:28px;display:grid}.example-card{border:1px solid var(--border-2);border-radius:var(--r-card);background:var(--surface);text-align:left;color:var(--text);font:inherit;cursor:pointer;transition:transform .22s var(--ease-out), border-color .22s ease, background .22s ease;flex-direction:column;align-items:flex-start;gap:10px;padding:22px 20px;display:flex}.example-card:hover:not(:disabled){border-color:var(--accent);background:var(--surface-2);transform:translateY(-3px)}.example-card:active:not(:disabled){transform:translateY(-1px)}.example-card:disabled{opacity:.5;cursor:wait}.example-card strong{letter-spacing:-.015em;color:var(--text-bright);font-size:16px;font-weight:620}.example-description{color:var(--landing-muted);font-size:14px;line-height:1.6}.example-open{color:var(--accent);margin-top:auto;padding-top:8px;font-size:13px;font-weight:560}.landing-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:32px;padding-block:36px 48px;display:flex}.footer-brand strong{font-family:var(--font-display);color:var(--text-bright);letter-spacing:-.02em;font-size:17px;font-weight:640}.footer-brand p{color:var(--landing-muted);margin-top:8px;font-size:14px}.landing-footer nav{justify-items:end;gap:10px;display:grid}.landing-footer nav a,.landing-footer nav button{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;text-decoration:none;transition:color .18s}.landing-footer nav span{color:var(--landing-muted);font-size:13px}.landing-footer nav a:hover,.landing-footer nav button:hover:not(:disabled){color:var(--accent)}@keyframes flow-beam{to{stroke-dashoffset:-254px}}@media (width<=1000px){.landing-hero{grid-template-columns:minmax(0,1fr);gap:40px}.hero-description{max-width:58ch}.example-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.example-card:first-child{grid-column:span 2}.browser-stage{min-height:clamp(420px,65vw,580px)}.browser-shot{width:94%}.browser-float-local{left:0}.browser-float-render{right:0}}@media (width<=760px){.landing-browser{padding-block:56px 68px}.browser-stage{perspective:1100px;min-height:auto;margin-top:34px;padding-block:26px 56px}.browser-shot{border-radius:13px;width:100%;transform:rotateX(1deg)rotateY(-1deg)translateZ(12px)}.browser-window-bar{grid-template-columns:auto 1fr auto;gap:8px;height:36px;padding-inline:10px}.window-address{text-overflow:ellipsis;justify-self:center;max-width:190px;padding-inline:9px;overflow:hidden}.browser-depth-grid{bottom:12%}.browser-orbit,.browser-float-render{display:none}.browser-float{min-width:0;padding:8px 10px}.browser-float-local{top:auto;bottom:5px;left:2%}.browser-float-export{bottom:5px;right:2%}.float-icon{width:28px;height:28px}.browser-float small{display:none}.browser-facts{grid-template-columns:minmax(0,1fr);gap:24px}.example-grid,.example-card:first-child{grid-column:auto;grid-template-columns:minmax(0,1fr)}.landing-footer{flex-direction:column;gap:28px}.landing-footer nav{justify-items:start}}@media (prefers-reduced-motion:reduce){.landing-page{scroll-behavior:auto}.preview-beams path{stroke-dasharray:none;opacity:.5;animation:none}.example-card{transition:none}.example-card:hover:not(:disabled){transform:none}.browser-shot{transition:none;transform:none}.browser-orbit,.browser-float,.browser-scan-line,.window-live:before{animation:none}.browser-screen img{content:url(/pulsegraph/pulsegraph-live-flow-static.png)}}
