@font-face{font-family:Cabinet Grotesk;src:url(/fonts/cabinet-grotesk/cabinet-grotesk-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Cabinet Grotesk;src:url(/fonts/cabinet-grotesk/cabinet-grotesk-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Cabinet Grotesk;src:url(/fonts/cabinet-grotesk/cabinet-grotesk-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Cabinet Grotesk;src:url(/fonts/cabinet-grotesk/cabinet-grotesk-800.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}@import url("https://api.fontshare.com/v2/css?f[]=cabinet-grotesk@500,600,700,800&display=swap");h1,h2,h3,h4,h5,h6{font-family:var(--w-font-display);letter-spacing:-.015em;font-weight:600}h1{font-weight:700;letter-spacing:-.02em}.w-mono,code,kbd,pre,samp{font-family:var(--w-font-mono)}.w-display{font-family:var(--w-font-display);font-weight:700;letter-spacing:-.02em}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:2px solid var(--s-accent);outline-offset:2px;border-radius:inherit}:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,textarea:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--input-bg,#1a1a1a) inset!important;-webkit-text-fill-color:var(--input-text,#e8e6e2)!important;caret-color:var(--input-text,#e8e6e2);-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;color:var(--page-text);background:var(--page-bg)}.app-bar{display:flex;align-items:center;height:44px;padding:0 var(--space-5);background:var(--appbar-bg);border-bottom:1px solid var(--appbar-border);gap:var(--space-4);position:-webkit-sticky;position:sticky;top:0;z-index:40}.app-bar-brand{font-size:var(--text-base);font-weight:var(--weight-bold);color:var(--appbar-text);text-decoration:none;letter-spacing:-.3px}.app-bar-nav{display:flex;gap:var(--space-1)}.app-bar-nav a{font-size:var(--text-sm);color:var(--appbar-text-muted);text-decoration:none;padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);transition:background var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default)}.app-bar-nav a.active,.app-bar-nav a:hover{background:var(--appbar-nav-hover);color:var(--appbar-text)}.content-area{max-width:1440px;margin:0 auto;padding:var(--space-6) var(--space-5)}.pipeline-list{list-style:none}.pipeline-item{padding:var(--space-4);border:1px solid var(--page-border);border-radius:var(--radius-md);margin-bottom:var(--space-2);cursor:pointer;transition:background var(--duration-normal) var(--ease-default)}.pipeline-item:hover{background:var(--page-bg-hover)}.pipeline-item h3{font-size:18px;margin-bottom:5px}.pipeline-meta{color:var(--page-text-secondary);font-size:var(--text-base)}.pipeline-status{display:inline-block;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-bold);margin-right:10px}.status-draft{background:rgba(230,179,26,.15);color:#edc95e}.status-active{background:hsla(var(--accent-h),var(--accent-s),var(--accent-l),.15);color:hsl(var(--accent-h),var(--accent-s),65%)}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;margin-bottom:var(--space-1);font-weight:var(--weight-semibold);font-size:var(--text-sm);color:var(--page-text-secondary)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--space-2);border:1px solid var(--input-border);border-radius:var(--input-radius);font-size:var(--input-font);background:var(--input-bg);color:var(--input-text);transition:border-color var(--duration-fast)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--input-border-focus);box-shadow:0 0 0 2px hsla(var(--accent-h),var(--accent-s),var(--accent-l),.15)}.form-group textarea{min-height:100px;font-family:var(--font-mono)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--btn-height);padding:0 var(--space-4);border:1px solid var(--btn-border);border-radius:var(--btn-radius);font-size:var(--btn-font);font-weight:var(--btn-weight);cursor:pointer;transition:all var(--duration-fast) var(--ease-default)}.btn-primary{background:var(--btn-bg);color:var(--btn-text);border-color:transparent}.btn-primary:hover{background:var(--btn-bg-hover);box-shadow:0 0 16px -2px hsla(var(--accent-h),var(--accent-s),var(--accent-l),.3)}.btn-secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border-color:var(--btn-secondary-border)}.btn-secondary:hover{background:var(--btn-secondary-bg-hover)}.btn-success{background:var(--accent);color:#fff;border-color:transparent}.btn-success:hover{background:var(--accent-hover);box-shadow:0 0 16px -2px hsla(var(--accent-h),var(--accent-s),var(--accent-l),.3)}.btn-danger{background:var(--btn-danger-bg);color:var(--btn-danger-text);border-color:transparent}.btn-danger:hover{background:var(--btn-danger-bg-hover)}.json-editor{width:100%;min-height:400px;padding:var(--space-3);border:1px solid var(--input-border);border-radius:var(--input-radius);font-family:var(--font-mono);font-size:13px;line-height:1.4;background:var(--input-bg);color:var(--input-text)}.loading{text-align:center;padding:var(--space-10);color:var(--page-text-muted)}.error{background:rgba(163,41,41,.15);color:var(--status-error);border-radius:var(--radius-md);border:1px solid rgba(163,41,41,.25)}.error,.success{padding:var(--space-4);margin-bottom:var(--space-5)}.success{background:hsla(var(--accent-h),var(--accent-s),var(--accent-l),.15);color:var(--accent-text);border-radius:var(--radius-md);border:1px solid hsla(var(--accent-h),var(--accent-s),var(--accent-l),.25)}.pipeline-detail{display:grid;grid-gap:var(--space-5);gap:var(--space-5)}.detail-section{border:1px solid var(--page-border);border-radius:var(--radius-md);padding:var(--space-4)}.detail-section h2{font-size:18px;margin-bottom:var(--space-4)}.detail-row{display:flex;margin-bottom:var(--space-2)}.detail-label{font-weight:var(--weight-semibold);width:150px;flex-shrink:0}.detail-value{flex-grow:1}.tags{display:flex;flex-wrap:wrap;gap:5px}.tag{background:var(--page-bg-muted);padding:3px 8px;border-radius:var(--radius-sm);font-size:var(--text-sm)}.studio-shell{--s-bg-deepest:#100f0f;--s-bg-canvas:#151414;--s-bg-base:#1a1919;--s-bg-raised:#222120;--s-bg-overlay:#2a2928;--s-bg-hover:#32302f;--s-border-subtle:hsla(0,0%,100%,.06);--s-border-default:hsla(0,0%,100%,.1);--s-border-strong:hsla(0,0%,100%,.15);--s-text-primary:#e8e6e2;--s-text-secondary:#c5c0b9;--s-text-muted:#9a9590;--s-text-dim:#7a7570;--s-text-disabled:#6a655f;--s-interactive-accent-bg:hsla(var(--accent-h),var(--accent-s),var(--accent-l),0.12);--s-interactive-accent-text:hsl(var(--accent-h),var(--accent-s),75%);--s-playhead:var(--s-accent);--s-snap-guide:hsla(var(--accent-h),var(--accent-s),60%,0.55);--s-generating-bg:var(--s-bg-overlay);--s-accent:hsl(var(--accent-h),var(--accent-s),var(--accent-l));--s-accent-hover:hsl(var(--accent-h),var(--accent-s),48%);--s-accent-glow:hsla(var(--accent-h),var(--accent-s),var(--accent-l),0.2);--s-success:#2a5;--s-success-hover:#3b6;--s-error:#f44;--s-error-text:#f66;--s-warning:#f5d90a;--s-font-sans:var(--font-sans);--s-font-mono:var(--font-mono);--s-node-asset:#6ecfd8;--s-node-prompt:#7fa5e0;--s-node-text-gen:#9aabdc;--s-node-image-gen:#e49cb8;--s-node-video-gen:#d9a650;--s-node-compose:#6ebfb7;--s-node-export:#6bc99a}body.studio-active{overflow:hidden}body.studio-active .app-bar{display:none}body.studio-active .content-area{max-width:none;padding:0;margin:0}.studio-shell{position:fixed;inset:0;z-index:50;display:grid;grid-template-rows:42px 1fr;grid-template-columns:auto 1fr;background:var(--s-bg-deepest);color:var(--s-text-primary);font-family:var(--font-sans)}.studio-shell.studio-shell-v2{grid-template-columns:1fr}.studio-shell.studio-shell-v2 .studio-topbar{grid-column:1/-1}.studio-shell.studio-shell-v2 .studio-dock-area{position:relative;min-height:0}.studio-topbar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:0 12px;background:var(--s-bg-base);border-bottom:1px solid var(--s-border-subtle);gap:10px;z-index:2}.studio-topbar h3{margin:0;font-size:14px;font-weight:600;color:var(--s-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.studio-topbar .btn{font-size:12px;padding:5px 12px}.studio-tool-rail{display:flex;flex-direction:column;padding:6px 4px;gap:2px;background:var(--s-bg-canvas);border-right:1px solid var(--s-border-subtle);overflow-y:auto;overflow-x:hidden;z-index:2;width:116px;min-width:116px;max-width:116px;flex-shrink:0;scrollbar-width:thin;-ms-overflow-style:auto}.studio-tool-rail::-webkit-scrollbar{width:4px}.studio-tool-rail::-webkit-scrollbar-thumb{background:var(--s-border-subtle);border-radius:2px}.studio-tool-rail::-webkit-scrollbar-track{background:transparent}.studio-tool-rail button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--s-text-muted);font-size:9px;cursor:-webkit-grab;cursor:grab;transition:all .12s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.studio-tool-rail button:hover{background:var(--s-bg-hover);color:var(--s-text-secondary);border-color:var(--s-border-default)}.studio-tool-rail button:active{cursor:-webkit-grabbing;cursor:grabbing}.studio-canvas-area{position:relative;overflow:hidden}.floating-panel{position:absolute;display:flex;flex-direction:column;box-sizing:border-box;border-radius:10px;background:var(--s-bg-raised);border:1px solid var(--s-border-default);box-shadow:0 8px 32px rgba(0,0,0,.4);overflow:hidden;min-width:200px;min-height:120px}.floating-panel-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--s-bg-overlay);border-bottom:1px solid var(--s-border-default);cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0}.floating-panel-header span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--s-text-muted)}.floating-panel-header button{background:none;border:none;color:var(--s-text-muted);cursor:pointer;font-size:14px;padding:0 4px;line-height:1}.floating-panel-header button:hover{color:var(--s-error-text)}.floating-panel-body{flex:1 1;overflow:auto;padding:10px;display:flex;flex-direction:column;scrollbar-width:none;-ms-overflow-style:none}.floating-panel-body::-webkit-scrollbar{display:none}.floating-panel .resize-handle{position:absolute;bottom:0;right:0;width:14px;height:14px;cursor:nwse-resize;opacity:.3}.floating-panel .resize-handle:hover{opacity:.7}.studio-side-drawer{position:absolute;top:0;right:0;height:100%;width:380px;background:var(--s-bg-base);border-left:1px solid var(--s-border-subtle);overflow-y:auto;z-index:30;box-shadow:-4px 0 16px rgba(0,0,0,.3);scrollbar-width:none;-ms-overflow-style:none;transform:translateX(100%);transition:transform .2s ease}.studio-side-drawer::-webkit-scrollbar{display:none}.studio-side-drawer.open{transform:translateX(0)}.studio-side-drawer-content{padding:16px}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{display:none}.studio-shell textarea{scrollbar-width:none;-ms-overflow-style:none}.studio-shell textarea::-webkit-scrollbar{display:none}.studio-shell input,.studio-shell select,.studio-shell textarea{background:var(--s-bg-overlay);border:1px solid var(--s-border-default);color:var(--s-text-primary);border-radius:4px;font-size:12px}.studio-shell input:focus,.studio-shell select:focus,.studio-shell textarea:focus{outline:none;border-color:var(--s-accent);box-shadow:0 0 0 2px var(--s-accent-glow)}.studio-shell input[type=number]::-webkit-inner-spin-button,.studio-shell input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none}.studio-shell input[type=number]{-moz-appearance:textfield}.studio-shell input[type=range]{background:transparent}.studio-shell input[type=color]{padding:1px;height:28px}.studio-shell .btn{font-size:12px;padding:5px 12px;border-radius:5px;cursor:pointer;border:1px solid transparent;transition:all .12s}.studio-shell .btn-primary{background:var(--s-accent);color:#fff;border-color:var(--s-accent-hover)}.studio-shell .btn-primary:hover{background:var(--s-accent-hover)}.studio-shell .btn-success{background:var(--s-success);color:#fff;border-color:var(--s-success-hover)}.studio-shell .btn-success:hover{background:var(--s-success-hover)}.studio-shell .btn-secondary{background:var(--s-bg-hover);color:var(--s-text-secondary);border-color:var(--s-text-dim)}.studio-shell .btn-secondary:hover{background:var(--s-border-strong)}.studio-shell .react-flow__edge:hover .studio-edge-glow{stroke-opacity:.15!important}.studio-shell .react-flow__edge.selected .studio-edge-glow{stroke-opacity:.2!important}.studio-shell .react-flow__edge:hover .studio-edge-delete{opacity:1!important}@keyframes studio-edge-flow{0%{stroke-dashoffset:16}to{stroke-dashoffset:0}}@keyframes studio-run-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.18);opacity:.85}}@keyframes studio-node-generating-pulse{0%,to{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.05),0 0 0 1.5px color-mix(in srgb,var(--s-accent,#32ae6c) 55%,transparent),0 0 10px -2px color-mix(in srgb,var(--s-accent,#32ae6c) 40%,transparent)}50%{box-shadow:inset 0 1px 0 hsla(0,0%,100%,.05),0 0 0 2px color-mix(in srgb,var(--s-accent,#32ae6c) 90%,transparent),0 0 20px 0 color-mix(in srgb,var(--s-accent,#32ae6c) 60%,transparent)}}@media (prefers-reduced-motion:reduce){.studio-shell .react-flow__edge [style*=studio-edge-flow],[style*=studio-run-pulse]{animation:none!important}[style*=studio-node-generating-pulse]{animation:none!important;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.05),0 0 0 2px color-mix(in srgb,var(--s-accent,#32ae6c) 80%,transparent)!important}}.studio-shell .react-flow__handle{transition:transform .12s ease,box-shadow .12s ease}.studio-shell .react-flow__handle:hover{transform:scale(1.5);box-shadow:0 0 0 3px var(--s-accent-glow)}.studio-tool-rail button{position:relative}.toolrail-node-btn .toolrail-icon{width:36px!important;height:36px!important;transition:transform .15s ease,box-shadow .15s ease}.toolrail-node-btn{font-size:11px!important;min-height:62px!important;padding:8px 4px!important;transition:background .12s ease,border-color .12s ease}.toolrail-node-btn:hover{background:hsla(0,0%,100%,.05)!important;border-color:hsla(0,0%,100%,.1)!important}.toolrail-node-btn:hover .toolrail-icon{transform:scale(1.1);box-shadow:0 0 14px currentColor;border-color:currentColor!important}.studio-shell button{transition:all .12s ease}.studio-shell button:active{transform:scale(.98)}.studio-shell .react-flow__controls{background:var(--s-bg-raised);border:1px solid var(--s-border-default);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.3);overflow:hidden}.studio-shell .react-flow__controls-button{background:var(--s-bg-raised);border:none;border-bottom:1px solid var(--s-border-subtle);color:var(--s-text-muted);width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,color .12s}.studio-shell .react-flow__controls-button:last-child{border-bottom:none}.studio-shell .react-flow__controls-button:hover{background:var(--s-bg-hover);color:var(--s-text-primary)}.studio-shell .react-flow__controls-button svg{fill:currentColor;width:14px;height:14px}.studio-shell .react-flow__node-studioNode{transition:box-shadow var(--duration-fast) var(--ease-default),border-color var(--duration-fast) var(--ease-default);border:1px solid transparent;border-radius:10px}.studio-shell .react-flow__node-studioNode:hover{border-color:var(--s-border-strong)}.studio-shell .react-flow__node-studioNode.selected{border-color:var(--s-accent);box-shadow:0 0 0 2px var(--s-accent-glow)}.studio-shell .react-flow__edge-path{stroke:var(--s-border-default);stroke-width:2;transition:stroke var(--duration-fast)}.studio-shell .react-flow__edge:hover .react-flow__edge-path{stroke:var(--s-accent)}.studio-shell .react-flow__edge.selected .react-flow__edge-path{stroke:var(--s-accent);stroke-width:2.5}.studio-shell .react-flow__handle{width:8px;height:8px;background:var(--s-border-strong);border:2px solid var(--s-bg-canvas);border-radius:50%}.studio-shell .react-flow__handle:hover{background:var(--s-accent)}@font-face{font-family:__GeistSans_245d8d;src:url(/_next/static/media/27834908180db20f-s.p.woff2) format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:__GeistSans_Fallback_245d8d;src:local("Arial");ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.00%;size-adjust:106.28%}.__className_245d8d{font-family:__GeistSans_245d8d,__GeistSans_Fallback_245d8d}.__variable_245d8d{--font-geist-sans:"__GeistSans_245d8d","__GeistSans_Fallback_245d8d"}@font-face{font-family:__GeistMono_97c177;src:url(/_next/static/media/78fec81b34c4a365.p.woff2) format("woff2");font-display:swap;font-weight:100 900}.__className_97c177{font-family:__GeistMono_97c177,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.__variable_97c177{--font-geist-mono:"__GeistMono_97c177",ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}