@font-face{font-family:Geist;src:url(https://cdn.jsdelivr.net/npm/geist@1.3.1/dist/fonts/geist-sans/Geist-Variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(https://cdn.jsdelivr.net/npm/geist@1.3.1/dist/fonts/geist-mono/GeistMono-Variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--brand-font-sans: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--brand-font-mono: "Geist Mono", ui-monospace, monospace;--brand-text-xs: 12px;--brand-text-sm: 14px;--brand-text-base: 14px;--brand-text-lg: 18px;--brand-text-xl: 20px;--brand-text-2xl: 24px;--brand-text-3xl: 30px;--brand-text-4xl: 36px;--brand-tracking: -.025em;--brand-weight-normal: 400;--brand-weight-medium: 500;--brand-weight-semibold: 600;--brand-radius-sm: 6px;--brand-radius-md: 8px;--brand-radius-lg: 12px;--brand-radius-xl: 16px;--brand-radius-2xl: 16px;--brand-radius-full: 9999px;--brand-transition: .2s cubic-bezier(.4, 0, .2, 1)}:root,[data-mode=light][data-scheme=default],[data-theme=light]{--brand-bg: #ffffff;--brand-bg-subtle: #fafafa;--brand-bg-muted: #f4f4f5;--brand-bg-elevated: #ffffff;--brand-text: #18181b;--brand-text-secondary: #52525b;--brand-text-muted: #71717a;--brand-border: #e4e4e7;--brand-border-subtle: #f4f4f5;--brand-hover: #f4f4f5;--brand-accent: #18181b;--brand-accent-hover: #27272a;--brand-accent-contrast: #ffffff;--brand-btn-primary-bg: #18181b;--brand-btn-primary-fg: #ffffff;--brand-btn-primary-hover: #27272a;--brand-btn-secondary-bg: #f4f4f5;--brand-btn-secondary-fg: #18181b;--brand-btn-secondary-hover-bg: #18181b;--brand-btn-secondary-hover-fg: #fafafa;--brand-ring: rgba(228, 228, 231, .8);--brand-shadow: rgba(0, 0, 0, .08);--brand-selection: #e4e4e7;--brand-canvas-bg: #fafafa;--brand-canvas-dots: rgba(24, 24, 27, .06);--brand-danger: #dc2626;--brand-danger-bg: #fef2f2}[data-mode=dark][data-scheme=default],[data-theme=dark]{--brand-bg: #09090b;--brand-bg-subtle: #18181b;--brand-bg-muted: #27272a;--brand-bg-elevated: #18181b;--brand-text: #fafafa;--brand-text-secondary: #a1a1aa;--brand-text-muted: #71717a;--brand-border: #27272a;--brand-border-subtle: #3f3f46;--brand-hover: #27272a;--brand-accent: #fafafa;--brand-accent-hover: #e4e4e7;--brand-accent-contrast: #18181b;--brand-btn-primary-bg: #fafafa;--brand-btn-primary-fg: #18181b;--brand-btn-primary-hover: #e4e4e7;--brand-btn-secondary-bg: #27272a;--brand-btn-secondary-fg: #fafafa;--brand-btn-secondary-hover-bg: #3f3f46;--brand-btn-secondary-hover-fg: #fafafa;--brand-ring: rgba(39, 39, 42, .8);--brand-shadow: rgba(0, 0, 0, .4);--brand-selection: #27272a;--brand-canvas-bg: #09090b;--brand-canvas-dots: rgba(255, 255, 255, .05);--brand-danger: #f87171;--brand-danger-bg: #450a0a}::selection{background:var(--brand-selection)}.brand-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--brand-btn-primary-bg);color:var(--brand-btn-primary-fg);border:none;border-radius:var(--brand-radius-full);padding:10px 24px;font-family:var(--brand-font-sans);font-size:var(--brand-text-sm);font-weight:var(--brand-weight-medium);letter-spacing:var(--brand-tracking);cursor:pointer;transition:background var(--brand-transition)}.brand-btn-primary:hover:not(:disabled){background:var(--brand-btn-primary-hover)}.brand-btn-primary:disabled{opacity:.5;cursor:default}.brand-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--brand-btn-secondary-bg);color:var(--brand-btn-secondary-fg);border:1px solid var(--brand-border);border-radius:var(--brand-radius-full);padding:10px 24px;font-family:var(--brand-font-sans);font-size:var(--brand-text-sm);font-weight:var(--brand-weight-medium);letter-spacing:var(--brand-tracking);cursor:pointer;transition:background var(--brand-transition),color var(--brand-transition),border-color var(--brand-transition)}.brand-btn-secondary:hover:not(:disabled){background:var(--brand-btn-secondary-hover-bg);color:var(--brand-btn-secondary-hover-fg);border-color:transparent}.brand-btn-secondary:disabled{opacity:.5;cursor:default}.brand-chip{display:inline-flex;align-items:center;background:var(--brand-btn-secondary-bg);color:var(--brand-text-muted);border:1px solid var(--brand-border);border-radius:var(--brand-radius-full);padding:6px 14px;font-family:var(--brand-font-sans);font-size:var(--brand-text-sm);font-weight:var(--brand-weight-normal);letter-spacing:var(--brand-tracking);cursor:pointer;transition:background var(--brand-transition),color var(--brand-transition),border-color var(--brand-transition)}.brand-chip:hover:not(:disabled){background:var(--brand-hover);color:var(--brand-text);border-color:var(--brand-border)}.brand-chip:disabled{opacity:.5;cursor:default}.brand-card{background:var(--brand-bg);border:1px solid var(--brand-border);border-radius:var(--brand-radius-2xl);box-shadow:0 8px 32px var(--brand-shadow)}:root{--radius: var(--brand-radius-lg);--radius-sm: var(--brand-radius-md);--shadow-sm: 0 1px 2px var(--brand-shadow);--shadow-md: 0 6px 20px var(--brand-shadow);--shadow-lg: 0 18px 50px var(--brand-shadow);--transition: var(--brand-transition);--bg: var(--brand-bg);--bg-elevated: var(--brand-bg-elevated);--canvas-bg: var(--brand-canvas-bg);--canvas-dots: var(--brand-canvas-dots);--text: var(--brand-text);--text-muted: var(--brand-text-muted);--border: var(--brand-border);--border-strong: var(--brand-border-subtle);--accent: var(--brand-accent);--accent-contrast: var(--brand-accent-contrast);--input-bg: var(--brand-bg);--hover: var(--brand-hover);--danger: var(--brand-danger)}[data-theme=light]{--bg: var(--brand-bg);--bg-elevated: var(--brand-bg-elevated);--canvas-bg: var(--brand-canvas-bg);--canvas-dots: var(--brand-canvas-dots);--text: var(--brand-text);--text-muted: var(--brand-text-muted);--border: var(--brand-border);--border-strong: var(--brand-border-subtle);--accent: var(--brand-accent);--accent-contrast: var(--brand-accent-contrast);--input-bg: var(--brand-bg);--hover: var(--brand-hover);--danger: var(--brand-danger)}[data-theme=dark]{--bg: var(--brand-bg);--bg-elevated: var(--brand-bg-elevated);--canvas-bg: var(--brand-canvas-bg);--canvas-dots: var(--brand-canvas-dots);--text: var(--brand-text);--text-muted: var(--brand-text-muted);--border: var(--brand-border);--border-strong: var(--brand-border-subtle);--accent: var(--brand-accent);--accent-contrast: var(--brand-accent-contrast);--input-bg: var(--brand-bg-elevated);--hover: var(--brand-hover);--danger: var(--brand-danger)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--brand-font-sans);font-size:var(--brand-text-base);letter-spacing:var(--brand-tracking);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;transition:background var(--transition),color var(--transition)}button{font-family:inherit;cursor:pointer}.app{height:100%;display:flex;flex-direction:column}.landing{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;position:relative;overflow:hidden}.landing__glow{display:none}.landing__brand{display:inline-flex;align-items:center;gap:8px;font-size:var(--brand-text-sm);font-weight:var(--brand-weight-medium);letter-spacing:var(--brand-tracking);color:var(--brand-text-muted);margin-bottom:28px}.landing__title{font-size:clamp(28px,5vw,40px);font-weight:var(--brand-weight-semibold);line-height:1.15;margin:0 0 32px;letter-spacing:var(--brand-tracking);color:var(--brand-text)}.landing__title span{color:var(--brand-text-secondary)}.prompt-box{display:flex;align-items:center;gap:10px;background:var(--input-bg);border:1px solid var(--border);border-radius:var(--brand-radius-2xl);padding:8px 8px 8px 20px;box-shadow:var(--shadow-sm);transition:border-color var(--transition),box-shadow var(--transition)}.prompt-box:focus-within{border-color:var(--brand-text-muted);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-border) 60%,transparent)}.prompt-box textarea{flex:1;border:none;outline:none;resize:none;background:transparent;color:var(--text);font-size:var(--brand-text-base);line-height:1.5;padding:10px 0;max-height:160px;font-family:inherit;letter-spacing:var(--brand-tracking)}.prompt-box textarea::placeholder{color:var(--text-muted)}.prompt-submit{border:none;background:var(--brand-btn-primary-bg);color:var(--brand-btn-primary-fg);width:44px;height:44px;border-radius:var(--brand-radius-full);display:grid;place-items:center;flex-shrink:0;transition:background var(--transition),transform var(--transition)}.prompt-submit:hover:not(:disabled){background:var(--brand-btn-primary-hover);transform:translateY(-1px)}.prompt-submit:disabled{opacity:.45;cursor:not-allowed}.landing__suggestions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:18px}.landing__suggestions-label{font-size:13px;color:var(--text-muted);margin-right:2px}.suggestion-chip{border:1px solid var(--border);background:var(--brand-btn-secondary-bg);color:var(--text-muted);border-radius:var(--brand-radius-full);padding:7px 14px;font-size:var(--brand-text-sm);letter-spacing:var(--brand-tracking);transition:all var(--transition)}.suggestion-chip:hover:not(:disabled){color:var(--text);background:var(--brand-btn-secondary-hover-bg);color:var(--brand-btn-secondary-hover-fg);border-color:transparent;transform:none}.suggestion-chip:disabled{opacity:.5;cursor:not-allowed}.landing__settings{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;margin-top:26px}.setting{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left}.setting__label{font-size:12px;color:var(--text-muted);padding-left:2px}.segmented{display:inline-flex;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:3px;gap:2px}.segmented button{border:none;background:transparent;color:var(--text-muted);padding:7px 12px;border-radius:7px;font-size:13px;font-weight:500;transition:all var(--transition)}.segmented button.active{background:var(--accent);color:var(--accent-contrast)}.landing__hint{margin-top:22px;font-size:13px;color:var(--text-muted)}.landing__error{margin-top:18px;color:var(--danger);font-size:14px}.topbar{display:flex;align-items:center;gap:14px;padding:10px 16px;background:var(--bg-elevated);border-bottom:1px solid var(--border);flex-wrap:wrap;z-index:5}.topbar__group{display:flex;align-items:center;gap:8px}.topbar__spacer{flex:1}.topbar__brand{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px}.control{display:flex;flex-direction:column;gap:3px}.control__label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding-left:2px}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--input-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a94a6' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 10px center;border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius-sm);padding:8px 30px 8px 12px;font-size:13px;font-family:inherit;min-width:128px;transition:border-color var(--transition)}.select:hover{border-color:var(--accent)}.btn{border:1px solid var(--border-strong);background:var(--input-bg);color:var(--text);border-radius:var(--radius-sm);padding:9px 14px;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:7px;transition:all var(--transition)}.btn:hover{background:var(--hover);border-color:var(--accent)}.btn--primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.btn--primary:hover{filter:brightness(1.05)}.btn--icon{padding:9px;min-width:38px;justify-content:center}.workspace{flex:1;display:flex;min-height:0}.json-pane{width:340px;flex-shrink:0;background:var(--bg-elevated);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:width var(--transition),margin var(--transition)}.json-pane.collapsed{width:0;overflow:hidden;border-right:none}.json-pane__header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border)}.json-pane__header h2{font-size:13px;margin:0;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.outline{flex:1;overflow-y:auto;padding:8px 6px}.outline__add-branch{padding:6px;min-width:30px}.outline__row{display:flex;align-items:center;gap:8px;padding-right:8px;border-radius:var(--radius-sm);min-height:34px;transition:background var(--transition)}.outline__row:hover{background:var(--hover)}.outline__bullet{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--text-muted)}.outline__row--root .outline__bullet{width:9px;height:9px;background:var(--accent)}.outline__bullet--d1{background:var(--accent);opacity:.85}.outline__bullet--d2{opacity:.7}.outline__bullet--d3{opacity:.5}.outline__input{flex:1;min-width:0;border:1px solid transparent;outline:none;background:transparent;color:var(--text);font-family:inherit;font-size:13.5px;padding:6px 8px;border-radius:6px;transition:border-color var(--transition),background var(--transition)}.outline__row--root .outline__input{font-weight:700;font-size:15px}.outline__input:focus{border-color:var(--accent);background:var(--input-bg)}.outline__input::placeholder{color:var(--text-muted);opacity:.7}.outline__actions{display:flex;gap:2px;opacity:0;transition:opacity var(--transition)}.outline__row:hover .outline__actions,.outline__input:focus~.outline__actions{opacity:1}.outline__action{border:none;background:transparent;color:var(--text-muted);width:24px;height:24px;border-radius:6px;font-size:16px;line-height:1;display:grid;place-items:center;transition:all var(--transition)}.outline__action:hover{background:var(--border);color:var(--text)}.outline__action--danger:hover{color:var(--danger)}.json-pane__footer{padding:10px 14px;border-top:1px solid var(--border);font-size:11.5px;min-height:42px;display:flex;align-items:center;gap:8px;color:var(--text-muted)}.json-pane__status--ok{color:var(--text-muted)}.json-pane__status--error{color:var(--danger)}.canvas-wrap{flex:1;position:relative;min-width:0;background-color:var(--canvas-bg);background-image:radial-gradient(var(--canvas-dots) 1.4px,transparent 1.4px);background-size:22px 22px;overflow:hidden}.canvas-wrap svg{display:block;width:100%;height:100%;cursor:grab}.canvas-wrap svg:active{cursor:grabbing}.node-label{pointer-events:none;-webkit-user-select:none;user-select:none;font-family:var(--brand-font-sans);font-weight:var(--brand-weight-semibold);letter-spacing:var(--brand-tracking)}.node-shape{transition:filter var(--transition)}.zoom-controls{position:absolute;bottom:18px;right:18px;display:flex;flex-direction:column;gap:6px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:6px;box-shadow:var(--shadow-md)}.zoom-controls button{border:none;background:transparent;color:var(--text);width:34px;height:34px;border-radius:7px;font-size:17px;display:grid;place-items:center;transition:background var(--transition)}.zoom-controls button:hover{background:var(--hover)}.canvas-hint{position:absolute;bottom:20px;left:20px;font-size:12px;color:var(--text-muted);background:color-mix(in srgb,var(--bg-elevated) 82%,transparent);padding:6px 12px;border-radius:20px;border:1px solid var(--border);pointer-events:none}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 70%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:10}.spinner{width:34px;height:34px;border:3px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-block{display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--text-muted);font-size:14px}@media(max-width:720px){.json-pane{position:absolute;z-index:8;height:100%;box-shadow:var(--shadow-lg)}}
