.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}:root{font-family:Inter,system-ui,Arial,sans-serif;color:#f3f4f6;background:#0b1020;line-height:1.5;font-weight:400}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{background:radial-gradient(circle at top left,rgba(99,102,241,.18),transparent 30%),radial-gradient(circle at top right,rgba(236,72,153,.12),transparent 25%),linear-gradient(180deg,#0b1020,#111827);color:#f3f4f6}.editor-section{margin-top:18px;padding-top:4px}.editor-section-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.choice-list{display:flex;flex-direction:column;gap:12px}.choice-row{padding:12px;border-radius:14px;background:#0f172ab3;border:1px solid rgba(255,255,255,.08)}.danger-button{border:1px solid rgba(248,113,113,.3);background:#7f1d1de6;color:#fff;padding:10px 12px;border-radius:12px;cursor:pointer;transition:.15s ease}.danger-button:hover{background:#991b1bf2;transform:translateY(-1px)}.preview-header-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.preview-toolbar{display:flex;gap:8px;flex-wrap:wrap}.preview-choice-button{width:100%;text-align:left;padding:12px 14px;border-radius:12px;background:#374151c7;color:#fff;border:1px solid rgba(255,255,255,.08);cursor:pointer;display:flex;flex-direction:column;gap:4px;transition:.15s ease}.preview-choice-button:hover{background:#4f46e547;border-color:#818cf8b3;transform:translateY(-1px)}.preview-choice-target{font-size:.82rem;color:#cbd5e1}.node-choice-strip{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.node-choice-chip{max-width:140px;border:1px solid rgba(255,255,255,.1);background:#374151bf;color:#e5e7eb;border-radius:999px;padding:4px 8px;font-size:.72rem;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-choice-chip:hover{background:#4f46e559;border-color:#818cf8b3}.node-choice-more{font-size:.72rem;color:#9ca3af;padding:4px 2px}.node-add-choice-button{margin-top:10px;width:100%;border:1px dashed rgba(255,255,255,.16);background:#111827a6;color:#dbeafe;border-radius:10px;padding:7px 10px;font-size:.8rem;cursor:pointer}.node-add-choice-button:hover{background:#1e293bf2;border-color:#818cf899}.story-handle{width:12px;height:12px;border-radius:999px;background:#a78bfa;border:2px solid #ffffff}.story-handle:hover{transform:scale(1.1)}.react-flow__handle-left{left:-7px}.react-flow__handle-right{right:-7px}button,input,textarea,select{font:inherit}.app-shell{width:100%;height:100%;display:flex;flex-direction:column}.app-header{flex:0 0 72px;border-bottom:1px solid rgba(255,255,255,.08);background:#111827e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;padding:0 18px}.app-header h1{margin:0;font-size:1.35rem}.app-subtitle{margin:2px 0 0;color:#9ca3af;font-size:.9rem}.app-workspace{flex:1;min-height:0;display:grid;grid-template-columns:1fr 320px 360px;gap:12px;padding:12px}.panel{min-height:0;border:1px solid rgba(255,255,255,.08);border-radius:18px;overflow:hidden;background:#111827c7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 35px #00000047}.canvas-panel{position:relative}.sidebar-panel,.preview-panel{padding:16px;overflow-y:auto}.sidebar-section{margin-top:18px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap}.section-header h3{margin:0;font-size:1.05rem;font-weight:700}.variable-list{display:flex;flex-direction:column;gap:12px}.variable-card{padding:14px;border-radius:16px}.variable-row{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.variable-row:last-child{margin-bottom:0}.variable-card .field-label{margin:0;font-size:.84rem;font-weight:600;color:#ffffffc7}.variable-card .text-input,.variable-card .select-input{width:100%;min-width:0;display:block;border-radius:12px;padding:12px 14px;font-size:.95rem;line-height:1.2;box-sizing:border-box}.secondary-button,.danger-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:12px;padding:10px 12px;font:inherit;font-weight:600;cursor:pointer;transition:.18s ease}.secondary-button{background:#ffffff14;color:#f3f6ff;border-color:#ffffff1f}.secondary-button:hover{background:#ffffff1f;border-color:#fff3}.danger-button{background:#ff5c5c2e;color:#ffd7d7;border-color:#ff5c5c47}.danger-button:hover{background:#ff5c5c42;border-color:#ff5c5c66}.variable-card .danger-button{width:100%;margin-top:4px}.helper-box strong{color:#fff}@media (max-width: 1200px){.section-header{align-items:stretch}.section-header .secondary-button{width:100%}}.canvas-toolbar{position:absolute;top:12px;left:12px;z-index:20;display:flex;gap:8px}.toolbar-button{border:1px solid rgba(255,255,255,.12);background:#1f2937f2;color:#fff;padding:10px 12px;border-radius:12px;cursor:pointer;transition:.15s ease}.toolbar-button:hover{background:#374151f2;transform:translateY(-1px)}.section-title{margin:0 0 12px;font-size:1rem}.muted{color:#9ca3af}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.form-label{font-size:.85rem;color:#cbd5e1}.form-input,.form-textarea,.form-select{width:100%;border:1px solid rgba(255,255,255,.12);background:#0f172acc;color:#f8fafc;border-radius:12px;padding:10px 12px;outline:none}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:#818cf8e6;box-shadow:0 0 0 3px #6366f12e}.form-textarea{min-height:140px;resize:vertical}.helper-box{margin-top:12px;padding:12px;border-radius:14px;background:#1e293bb8;border:1px solid rgba(255,255,255,.06);color:#cbd5e1;font-size:.92rem}.node-card{min-width:220px;max-width:220px;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,#1f2937,#111827);color:#f9fafb;box-shadow:0 10px 25px #00000038}.node-card.selected{outline:2px solid #818cf8;box-shadow:0 0 0 5px #818cf82e}.node-card-header{padding:10px 12px;font-weight:700;font-size:.95rem;background:linear-gradient(90deg,#4f46e5,#7c3aed)}.node-card-header.chat{background:linear-gradient(90deg,#ec4899,#8b5cf6)}.node-card-header.timed{background:linear-gradient(90deg,#ef4444,#f97316)}.node-card-header.ending{background:linear-gradient(90deg,#10b981,#14b8a6)}.node-card-body{padding:12px}.node-card-content{font-size:.85rem;color:#d1d5db;min-height:48px;white-space:pre-wrap;overflow:hidden}.node-card-meta{margin-top:10px;display:flex;justify-content:space-between;font-size:.74rem;color:#9ca3af}.node-card.playing{box-shadow:0 0 0 3px #22c55e}.playing-node .node-card{outline:3px solid #22c55e;box-shadow:0 0 0 5px #22c55e40,0 10px 25px #00000040}.preview-story{display:flex;flex-direction:column;gap:14px}.preview-block{padding:16px;border-radius:16px;background:#0f172adb;border:1px solid rgba(255,255,255,.08)}.preview-title{margin:0 0 10px;font-size:1.05rem}.preview-content{white-space:pre-wrap;color:#e5e7eb}.preview-choice-list{margin-top:14px;display:flex;flex-direction:column;gap:8px}.preview-choice{padding:10px 12px;border-radius:12px;background:#374151b3;color:#fff;border:1px solid rgba(255,255,255,.08)}.playing-node .node-card{outline:3px solid #22c55e;box-shadow:0 0 0 6px #22c55e40,0 10px 25px #00000040}.canvas-searchbar-wrap{position:absolute;top:12px;right:12px;z-index:20;width:260px}.node-search{position:relative;width:100%}.node-search-input{width:100%;border:1px solid rgba(255,255,255,.12);background:#111827f2;color:#fff;padding:10px 12px;border-radius:12px;outline:none}.node-search-input:focus{border-color:#818cf8e6;box-shadow:0 0 0 3px #6366f12e}.node-search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#111827fa;border:1px solid rgba(255,255,255,.1);border-radius:14px;overflow:hidden;box-shadow:0 12px 30px #0000004d}.node-search-result{width:100%;text-align:left;border:none;background:transparent;color:#fff;padding:10px 12px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.node-search-result:hover{background:#4f46e538}.node-search-title{font-size:.92rem}.node-search-type{font-size:.76rem;color:#9ca3af;text-transform:capitalize}.node-search-empty{padding:12px;color:#9ca3af;font-size:.9rem}mark{background:#6366f159;color:#fff;padding:0 2px;border-radius:3px}.kbd{display:inline-block;padding:2px 8px;border-radius:8px;background:#334155e6;border:1px solid rgba(255,255,255,.08);font-size:.82rem}@media (max-width: 1200px){.app-workspace{grid-template-columns:1fr 300px;grid-template-rows:1fr 320px}.preview-panel{grid-column:1 / -1}}@media (max-width: 800px){.app-workspace{display:flex;flex-direction:column}.canvas-panel{min-height:420px}.sidebar-panel,.preview-panel{min-height:280px}}.diagnostic-item{border-radius:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);background:#0f172ab3}.node-issue-strip{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.node-issue-badge{font-size:.68rem;border-radius:999px;padding:3px 8px;border:1px solid rgba(255,255,255,.12);white-space:nowrap}.node-issue-error{background:#ef44442e;color:#fca5a5}.node-issue-warning{background:#f59e0b2e;color:#fcd34d}.node-indicator-strip{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.node-indicator{font-size:.68rem;border-radius:999px;padding:3px 8px;border:1px solid rgba(255,255,255,.1);white-space:nowrap}.node-indicator-requires{background:#f59e0b2e;color:#fbbf24}.node-indicator-effects{background:#3b82f62e;color:#93c5fd}.node-indicator-enter{background:#10b9812e;color:#6ee7b7}.diagnostics-list{display:flex;flex-direction:column;gap:10px}.diagnostic-item{width:100%;text-align:left;border-radius:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);background:#0f172ab3;color:inherit}.diagnostic-clickable{cursor:pointer}.diagnostic-clickable:hover{background:#1e293beb;transform:translateY(-1px)}.diagnostic-item:disabled{cursor:default;opacity:1}.diagnostic-badge{display:inline-block;font-size:.72rem;font-weight:700;margin-bottom:6px;border-radius:999px;padding:2px 8px}.diagnostic-message{font-size:.9rem;color:#e5e7eb}.diagnostic-error .diagnostic-badge{background:#ef44442e;color:#fca5a5}.diagnostic-warning .diagnostic-badge{background:#f59e0b2e;color:#fcd34d}.diagnostic-success .diagnostic-badge{background:#10b9812e;color:#6ee7b7}.variable-debugger-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}.variable-debugger-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:#1e293bad;border:1px solid rgba(255,255,255,.08)}.variable-debugger-item.changed{border-color:#818cf8a6;background:#4f46e529;box-shadow:0 0 0 3px #6366f11f}.variable-debugger-key{font-weight:700;color:#f3f4f6}.variable-debugger-value{display:flex;align-items:center;gap:8px;color:#e5e7eb;flex-wrap:wrap;justify-content:flex-end;text-align:right}.variable-debugger-old{color:#94a3b8;text-decoration:line-through}.variable-debugger-arrow{color:#a5b4fc;font-weight:700}.variable-debugger-new{color:#c4b5fd;font-weight:700}.node-card.reachable{outline:2px solid rgba(96,165,250,.95);box-shadow:0 0 0 5px #3b82f62e,0 10px 25px #00000038}.node-card.locked{opacity:.58;outline:2px dashed rgba(251,191,36,.7);box-shadow:0 0 0 4px #f59e0b1f,0 10px 25px #0000002e}.node-card.locked .node-card-content,.node-card.locked .node-card-meta{color:#9ca3af}.node-card.playing{outline:3px solid #22c55e;box-shadow:0 0 0 6px #22c55e40,0 10px 25px #00000047}.node-card.reachable .node-card-header{box-shadow:inset 0 -2px #93c5fd73}.node-card.locked .node-card-header{filter:saturate(.7) brightness(.9)}
