.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.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__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray: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.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.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-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.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:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.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-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.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{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.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:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-0:#050814;--bg-1:#080d1c;--bg-2:#10192e;--panel:#0c1428d1;--panel-strong:#080e1ef0;--line:#7ea4dc2e;--line-strong:#5ad2ff73;--text:#e7eefc;--muted:#8ea0c3;--cyan:#3ee0ff;--blue:#4c8dff;--violet:#8b7cff;--magenta:#e15cff;--orange:#ff9a3c;--amber:#ffc14d;--green:#3dde9a;--red:#ff5d73;--shadow:0 18px 40px #00000059;--radius:16px;--font:"Outfit", "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--editor-w:340px;--top:58px}:root[data-accent=violet]{--cyan:#c4b5fd;--blue:#8b7cff;--line-strong:#b096ff80}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--text);background:var(--bg-0);text-rendering:optimizelegibility}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{z-index:50;background:var(--cyan);color:#041018;border-radius:8px;padding:8px 12px;position:absolute;top:-40px;left:12px}.skip:focus{top:8px}body{background:radial-gradient(900px 420px at 8% -12%, #3878ff29, transparent 55%), radial-gradient(680px 360px at 100% 0%, #8c46ff1f, transparent 50%), var(--bg-0)}.hint{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.tb-btn,.nav-btn,.seg button,.text-btn{background:#ffffff0a;border:1px solid #0000;border-radius:999px}.tb-btn,.text-btn,.seg button{justify-content:center;align-items:center;gap:6px;height:32px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.tb-btn:hover,.nav-btn:hover,.text-btn:hover,.seg button:hover{background:#ffffff14}.tb-btn--run{color:#041018;background:linear-gradient(#7af0ff,#2f7bff);box-shadow:0 0 16px #3ee0ff38}.tb-btn--run:hover{filter:brightness(1.05)}.seg{border:1px solid var(--line);background:#0003;border-radius:999px;padding:2px;display:inline-flex}.seg button{height:26px;padding:0 10px}.seg button.is-on,.nav-btn.is-on,.side-item.is-on,.mem-tabs button.is-on,.dock-tabs button.is-on{color:var(--cyan);background:#3ee0ff24;border-color:#3ee0ff47}.status-pill{border:1px solid var(--line);height:28px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;max-width:180px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex;overflow:hidden}.status-pill i{background:var(--muted);border-radius:50%;width:7px;height:7px}.status-pill--ready i{background:var(--green)}.status-pill--running i{background:var(--amber)}.status-pill--error i{background:var(--red)}.status-pill--loading i{background:var(--cyan)}.field,.side-search{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;display:flex}input[type=search],input[type=text],input[type=number],select,textarea{border:1px solid var(--line);background:#040814a6;border-radius:10px;width:100%;padding:8px 10px}textarea{resize:vertical;min-height:72px;font-family:var(--mono);font-size:12px}input[type=range]{width:100%;accent-color:var(--cyan)}.chip{height:22px;font-family:var(--mono);background:#4c8dff26;border:1px solid #4c8dff47;border-radius:999px;align-items:center;padding:0 8px;font-size:11px;display:inline-flex}.chip--obj{color:var(--cyan)}.chip--hot{color:var(--amber);border-color:#ff9a3c99}.shell{grid-template-rows:var(--top) minmax(0, 1fr);height:100dvh;display:grid;overflow:hidden}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#060a16e0;align-items:center;gap:12px;min-width:0;padding:0 12px;display:flex}.brand{align-items:center;gap:10px;min-width:180px;display:flex}.brand__mark{flex:none;width:28px;height:28px}.brand strong{letter-spacing:.01em;font-size:14px;display:block}.brand small{color:var(--muted);font-size:11px}.tb-group{align-items:center;gap:6px;display:flex}.tb-spacer{flex:1}.tb-range{min-width:160px;color:var(--muted);font-family:var(--mono);align-items:center;gap:8px;font-size:12px;display:flex}.tb-range input{width:110px}.nav-toggle{display:inline-flex}.work{grid-template-columns:232px minmax(0,1fr);min-height:0;display:grid}.work.is-nav-closed{grid-template-columns:0 minmax(0,1fr)}.work.is-nav-closed .sidebar{visibility:hidden;border:0;padding:0;overflow:hidden}.sidebar{border-right:1px solid var(--line);background:#050914b8;flex-direction:column;gap:10px;min-height:0;padding:10px;display:flex}.side-nav{flex-direction:column;gap:4px;display:flex}.nav-btn{text-align:left;width:100%;height:34px;color:var(--muted);border-radius:10px;align-items:center;gap:8px;padding:0 10px;font-size:13px;font-weight:600;display:flex}.side-list{flex-direction:column;gap:12px;min-height:0;padding-right:2px;display:flex;overflow:auto}.side-group h2{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:11px;font-weight:600}.side-group ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.side-item{text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:7px 8px;display:flex}.side-item strong{font-size:13px;font-weight:600}.side-item small{color:var(--muted);text-transform:uppercase;font-size:10px}.work__main{grid-template-rows:minmax(0,1fr) 132px;gap:8px;min-width:0;height:100%;min-height:0;padding:8px;display:grid}.work__panels{grid-template-columns:var(--editor-w) 8px minmax(320px, 1.15fr) minmax(280px, .86fr);gap:8px;min-height:0;display:grid}.splitter{cursor:col-resize;background:#7ea4dc29;border:0;border-radius:999px;padding:0}.splitter:hover,.splitter:focus-visible{background:var(--cyan)}.work__right{grid-template-rows:minmax(120px,.7fr) minmax(220px,1.4fr);gap:8px;min-width:0;min-height:0;display:grid}.panel{border:1px solid var(--line);border-radius:var(--radius);min-width:0;min-height:0;box-shadow:var(--shadow), inset 0 1px 0 #ffffff0a;background:linear-gradient(#101c38c7,#070c1ae6);flex-direction:column;display:flex}.panel__head{border-bottom:1px solid #7ea4dc1a;justify-content:space-between;align-items:flex-start;gap:8px;padding:8px 10px 6px;display:flex}.panel__head h2{margin:0;font-size:13px;font-weight:650}.panel__head p{color:var(--muted);margin:2px 0 0;font-size:11px;line-height:1.35}.panel__actions{flex:none;align-items:center;gap:6px;display:flex}.panel__body{flex-direction:column;flex:1;min-height:0;display:flex}.panel--scroll .panel__body{overflow:auto}.panel--stage .panel__body,.panel--flow .panel__body{position:relative;overflow:hidden}.panel--flow .panel__body{min-height:0}.dock{grid-template-columns:1.15fr .85fr;gap:8px;min-height:0;display:grid}.page{min-height:min-content;padding:16px 16px 28px;overflow:visible}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px;display:flex}.page-head h1{letter-spacing:-.03em;margin:0;font-size:28px}.page-head p{max-width:640px;color:var(--muted);margin:6px 0 0}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.catalog-card,.film-card,.saved-card{border:1px solid var(--line);color:inherit;text-align:left;background:linear-gradient(#101c3ae6,#070c1cf0);border-radius:16px}.catalog-card{flex-direction:column;gap:8px;min-height:228px;padding:12px;display:flex;box-shadow:inset 0 1px #ffffff0a}.catalog-card:hover,.film-card:hover,.saved-card:hover{border-color:#3ee0ff66}.catalog-card h3,.saved-card strong{margin:0;font-size:15px}.catalog-card p{color:var(--muted);flex:1;margin:0;font-size:12px;line-height:1.4}.card-meta{color:var(--cyan);justify-content:space-between;font-size:11px;font-weight:650;display:flex}.film{border:1px solid var(--line);border-radius:var(--radius);background:#060a16b8;gap:8px;min-height:0;padding:8px;display:flex;overflow-x:auto}.film-card{flex:0 0 168px;grid-template-columns:72px 1fr;align-items:center;gap:8px;height:92px;padding:8px;display:grid}.film-card strong,.film-card small{display:block}.film-card strong{font-size:12px}.film-card small{color:var(--muted);margin-top:3px;font-size:10px}.settings,.saved-list{gap:12px;max-width:720px;display:grid}.settings-card,.saved-card{gap:10px;padding:14px;display:grid}.saved-card{grid-template-columns:1fr auto;align-items:center}.saved-actions{gap:6px;display:flex}#workspace{-webkit-overflow-scrolling:touch;min-width:0;height:100%;min-height:0;overflow:hidden auto}#workspace>.work__main{height:100%;min-height:0;overflow:hidden}@media (width<=1180px){.work__panels{grid-template-columns:1fr!important}.splitter{display:none}.work__right{grid-template-rows:240px 320px}.work__main{grid-template-rows:auto 150px;height:auto;overflow:auto}.panel--editor{min-height:280px}}@media (width<=860px){.work,.work.is-nav-closed{grid-template-columns:1fr}.work.is-nav-closed .sidebar{visibility:visible;border-right:1px solid var(--line);padding:10px;overflow:auto}.sidebar{z-index:30;inset:var(--top) auto 0 0;background:#070b16;width:min(300px,88vw);transition:transform .18s;position:fixed;transform:translate(-105%)}.sidebar.is-open{transform:none}.dock{grid-template-columns:1fr}.tb-range,.brand small,.tb-btn span{display:none}.brand{min-width:0}}.stage-viewport{background:radial-gradient(420px 180px at 50% 20%,#3c78dc29,#0000 70%),linear-gradient(#0b1428,#070b16 70%);flex:1;min-height:320px;position:relative}.stage-canvas,.stage-flat{position:absolute;inset:0}.stage-toolbar,.op-card,.legend{z-index:2;pointer-events:auto;position:absolute}.stage-toolbar{flex-wrap:wrap;align-items:center;gap:6px;display:flex;top:8px;left:8px;right:220px}.op-card,.legend{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#070c1ac7;border-radius:12px}.op-card{width:min(230px,42%);padding:10px;top:8px;right:8px}.op-card h3{margin:0 0 6px;font-size:13px}.op-card dl{gap:4px;margin:0;display:grid}.op-card div{justify-content:space-between;gap:8px;font-size:11px;display:flex}.op-card dt{color:var(--muted)}.op-card dd{text-align:right;font-family:var(--mono);margin:0}.legend{color:var(--muted);flex-wrap:wrap;gap:8px;padding:4px 8px;font-size:11px;display:flex;position:static}.legend i{border-radius:2px;width:8px;height:8px;margin-right:4px;display:inline-block}.swatch-idle{background:#3d7dff}.swatch-compare{background:#ffb020}.swatch-swap{background:#ff5c8a}.swatch-sorted{background:#2ee59a}.swatch-found{background:#3ee0ff}.vlabel,.vtag{font-family:var(--mono);color:#fff;text-shadow:0 1px 2px #000000a6;white-space:nowrap;font-weight:650}.vlabel{font-size:13px}.vnote{color:#f4fbff;text-align:center;text-shadow:0 1px 2px #000c;font-size:13px;line-height:1.35;display:block}.vnote--ink{color:#142033;text-shadow:none;font-family:var(--mono);font-weight:700}.expr-steps{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.expr-steps strong{color:#b9ffe2;display:block}.queen-board{gap:2px;display:grid}.queen-board button{color:#142033;background:#d7e4f8;border:0;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.queen-board button.is-dark{color:#fff;background:#1d4e8f}.queen-board button.is-queen{outline:2px solid #ffb020}.scene-caption{z-index:3;color:#d7e7ff;pointer-events:none;margin:0;font-size:13px;line-height:1.35;position:absolute;bottom:10px;left:12px;right:248px}.vtag{color:#d7f7ff;letter-spacing:.04em;font-size:10px}.flat-scene{place-items:center;height:100%;padding:54px 16px 36px;display:grid;overflow:auto}.fit-host{justify-content:flex-start;align-items:flex-start;height:100%;min-height:0;padding:78px 16px 16px;display:flex;overflow:auto}.fit-slot{flex:none;position:relative}.fit-scale{transform-origin:0 0;width:max-content}.viz-stack{flex-direction:column;align-items:center;gap:12px;display:flex}.bar-row{align-items:flex-end;gap:8px;width:max-content;min-height:160px;display:flex}.bar{color:#fff;width:52px;min-height:42px;font-family:var(--mono);background:linear-gradient(165deg,#9ad8ff 0%,#2f6bff 46%,#15264f 100%);border:0;border-radius:12px;place-items:center;font-weight:650;transition:transform .28s,height .28s,background .18s;display:grid;position:relative;box-shadow:inset 0 1px #ffffff73,6px 7px #101e3c}.bar small{color:#b7f4ff;font-size:10px;position:absolute;top:-16px}.bar.is-compare{background:linear-gradient(165deg,#ffe08a,#e08912 55%,#5a3a10);transform:translateY(-12px)}.bar.is-swap{background:linear-gradient(165deg,#ffc1d8,#e23b78 55%,#4a1730)}.bar.is-bubble{transform:translateY(-42px)}.bar.is-sorted,.bar.is-found{background:linear-gradient(165deg,#b9ffe2,#14b87a 50%,#0d3b32)}.bar.is-changed{background:linear-gradient(165deg,#e4d4ff,#7c5cff 50%,#2a2158)}.bar.is-hot{background:linear-gradient(165deg,#ffd0a8,#ff8a2a 50%,#5a3212);transform:translateY(-28px)}.bar.is-dim{opacity:.4}.merge-board{flex-direction:column;align-items:center;gap:8px;width:max-content;display:flex}.merge-sources{align-items:flex-end;gap:18px;display:flex}.contour{background:#10244873;border:1px dashed #7ed2ffb3;border-radius:18px;padding:8px 12px 12px}.contour--merged{border-style:solid;border-color:#3dde9abf}.merge-label{color:var(--cyan);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:11px;display:block}.merge-arrow{color:var(--amber);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}@media (width<=720px){.merge-stage{grid-template-rows:auto 1fr auto;grid-template-columns:1fr}.merge-explain{max-height:140px;margin:0 8px 28px}.merge-mini{display:none}}.merge-stage{grid-template-rows:auto 1fr;grid-template-columns:1fr 240px;display:grid;position:absolute;inset:0}.merge-zoom{z-index:2;flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:6px;padding:8px 8px 0 52px;display:flex}.merge-zoom button{color:#fff;background:#121c34;border:1px solid #7ea4dc73;border-radius:8px;padding:4px 8px}.merge-legend{color:#9eb6d8;margin-left:4px;font-size:11px}.merge-scroll{cursor:grab;touch-action:none;min-height:0;padding:8px 12px 48px;overflow:hidden}.merge-scroll:active{cursor:grabbing}.merge-scale{transform-origin:0 0;will-change:transform;margin:8px auto 0}.merge-tree-abs{margin:0 auto;position:relative}.merge-phase-banner{letter-spacing:.08em;text-transform:uppercase;color:#8fb0d8;pointer-events:none;margin:0;font-size:10px;position:absolute;left:8px;right:8px}.merge-phase-banner.is-split{top:-2px}.merge-phase-banner.is-merge{color:#7dcea0}.merge-edges{pointer-events:none;position:absolute;inset:0;overflow:visible}.merge-edge{stroke:#7ed2ff73;stroke-width:2px}.merge-edge.is-left{stroke-dasharray:6 4}.merge-edge.is-right{stroke-dasharray:none}.merge-edge.is-active{stroke:#3dde9a;stroke-width:2.5px}.merge-edge.is-path{stroke:#ffb020;stroke-width:2.5px}.merge-box{z-index:1;position:absolute}.merge-explain{color:#d7e7ff;font-size:12px;line-height:1.45;font-family:var(--mono);white-space:pre-wrap;background:#070c1ae6;border:1px solid #7ea4dc59;border-radius:12px;margin:8px 8px 36px 0;padding:10px;overflow:auto}.merge-explain p{margin:0 0 4px}.merge-mini{pointer-events:none;z-index:3;background:#060c18d9;border:1px solid #7ea4dc66;border-radius:8px;width:128px;height:80px;position:absolute;bottom:44px;right:252px;overflow:hidden}.merge-mini-inner{transform-origin:0 0;position:relative}.merge-mini-dot{background:#5078c88c;border-radius:2px;position:absolute}.merge-mini-dot.is-active{background:#3dde9a}.merge-mini-dot.is-merged,.merge-mini-dot.is-leaf{background:#3db4788c}.merge-node{color:#fff;cursor:pointer;background:#081024eb;border:1px solid #7ea4dc73;border-radius:12px;flex-direction:column;align-items:center;gap:4px;width:100%;padding:6px 8px 8px;display:flex}.merge-node.is-side-left{border-left:3px solid #6ec1ff}.merge-node.is-side-right{border-right:3px solid #ffb86b}.merge-node.is-waiting{opacity:.5}.merge-node.is-active{opacity:1;border-color:#3dde9a;box-shadow:0 0 0 2px #3dde9a59}.merge-node.is-merged,.merge-node.is-leaf{opacity:.95}.merge-node.is-merging{border-color:#3dde9a}.merge-node.is-path{outline:1px solid #ffb020}.merge-side-mark{background:#7ea4dc59;border-radius:3px;place-items:center;width:14px;height:14px;margin-right:4px;font-size:9px;font-style:normal;display:inline-grid}.merge-node.is-side-left .merge-side-mark{background:#2a5f9a}.merge-node.is-side-right .merge-side-mark{background:#8a5a28}.merge-row-tag{letter-spacing:.1em;text-transform:uppercase;color:#8fb0d8;align-self:flex-start;font-size:9px}.merge-row-tag.is-merge{color:#7dcea0}.merge-compare{color:#ffd28a;font-size:10px;font-family:var(--mono)}.merge-values{flex-wrap:wrap;justify-content:center;gap:3px;display:flex}.merge-values i{min-width:22px;height:22px;font-style:normal;font-family:var(--mono);background:#245bff;border-radius:6px;place-items:center;padding:0 4px;font-size:12px;display:grid}.merge-values i.is-empty{color:#8fb0d8;background:0 0;border:1px dashed #7ea4dc80}.merge-values.is-result i{background:#147a52}.merge-values.is-result i.is-hot{box-shadow:0 0 0 2px #ffb020}.merge-missing{width:36px}.merge-empty{min-width:180px;min-height:72px;color:var(--muted);border-radius:16px;place-items:center;font-size:13px;display:grid}.flat-svg{display:block;overflow:visible}.flat-svg line{stroke:#67e8f98c;stroke-width:2px}.flat-svg line.is-road{stroke:#ffb020;stroke-width:3px;stroke-dasharray:6 4;animation:.8s linear infinite road-dash}.flat-svg marker path,.ptr-arrow polygon{fill:#ffb020}.ptr-arrow line{stroke:#67e8f9;stroke-width:2px}.ptr-arrow text{fill:#9ad8ff;font-size:8px}.link-step,.call-step{align-items:center;gap:4px;display:flex}.node-card{position:relative}.bar-slot,.bubble-wrap{align-items:flex-end;display:flex;position:relative}.bubble-row{align-items:flex-end;gap:14px;min-height:120px;display:flex}.bubble-rest,.bubble-float{flex-direction:column;align-items:center;gap:6px;display:flex}.bubble-float{animation:1s ease-in-out infinite float-bubble}.orb{color:#fff;width:64px;height:64px;font-family:var(--mono);background:radial-gradient(circle at 32% 30%,#fff 0%,#8fd4ff 18%,#2f6bff 55%,#15264f 100%);border:0;border-radius:50%;font-weight:700;box-shadow:inset 0 -8px 12px #00000040,0 10px 16px #00000047}.orb.is-hot{background:radial-gradient(circle at 32% 30%,#fff 0%,#ffe08a 20%,#ff8a2a 58%,#5a3212 100%)}.orb.is-sorted{background:radial-gradient(circle at 32% 30%,#fff 0%,#b9ffe2 18%,#14b87a 55%,#0d3b32 100%)}.bubble-ring{pointer-events:none;background:radial-gradient(circle at 32% 30%,#ffffff73,#50beff2e 42%,#0000 68%);border:2px solid #beebffe6;border-radius:50%;width:74px;height:74px;margin-left:-37px;animation:1s ease-in-out infinite float-bubble;position:absolute;bottom:0;left:50%}.bar.is-bubble{animation:1s ease-in-out infinite float-bubble}.bar.is-drop{animation:.45s drop-in}.bar.is-lift{animation:.45s lift-off}.buckets{align-items:flex-end;gap:10px;display:flex}.bucket{color:var(--muted);flex-direction:column;align-items:center;gap:6px;font-size:11px;display:flex}.bucket-bin{background:#0a1630cc;border:2px solid #78b4ff73;border-top:6px solid #3d7dff;border-radius:0 0 16px 16px;flex-direction:column;gap:6px;min-width:72px;min-height:88px;padding:8px;display:flex}.bucket-chip{color:#fff;font-family:var(--mono);background:#245bff;border:0;border-radius:8px;padding:6px}.bucket-chip.is-drop{background:#ff9a3c;animation:.45s drop-in}.bucket-chip small{color:#d7f7ff;font-size:10px;display:block}.sum-row,.merge-math{flex-direction:column;align-items:center;gap:18px;display:flex}.merge-math__pair{align-items:center;gap:18px;display:flex}.op-badge{color:#ffe08a;background:#241848;border-radius:50%;place-items:center;width:48px;height:48px;font-weight:700;display:grid}.slide-left{animation:.42s both slide-left}.slide-right{animation:.42s both slide-right}.merge-math__arrow{color:var(--amber);letter-spacing:.12em;text-transform:uppercase;font-size:13px}.road{flex-direction:column;align-items:center;gap:16px;min-width:420px;display:flex}.road-ask{color:#fff;background:#241848;border:0;border-radius:14px;padding:12px 18px;font-weight:700}.road-fork{grid-template-columns:1fr 1fr;gap:28px;width:100%;display:grid}.road-lane{color:#fff;text-align:left;background:#081024cc;border:2px solid #7ea4dc59;border-radius:16px;min-height:92px;padding:14px}.road-lane span{letter-spacing:.08em;margin-bottom:6px;font-size:12px;display:block}.road-lane.is-taken{border-color:#3dde9a;animation:.35s pop-in;box-shadow:0 0 0 3px #3dde9a40}.road-lane.is-skip{opacity:.38}.road-lane.is-taken span{color:#3dde9a}.sum-chip,.sum-join{color:#fff;min-width:64px;min-height:64px;font-family:var(--mono);background:linear-gradient(165deg,#9ad8ff,#2f6bff 55%,#15264f);border:0;border-radius:12px;font-weight:700}.sum-chip small{color:#d7f7ff;font-size:10px;font-weight:500;display:block}.sum-chip.is-total{background:linear-gradient(165deg,#b9ffe2,#14b87a 55%,#0d3b32);animation:.4s pop-in}.sum-join{color:var(--amber);background:0 0;min-width:0}.react-flow__edge.is-active .react-flow__edge-path{stroke-width:4px}.react-flow__edge.is-active .react-flow__edge-text{fill:#f4fbff;font-weight:700}.flat-stack{flex-direction:column-reverse;align-items:center;gap:8px;width:max-content;height:auto;display:flex}.flat-row,.flat-stack,.flat-lanes{position:relative}.flat-row{width:min(100%,680px);height:220px}.cube,.node-card,.pair-card,.frame-slab,.matrix button,.mem-row{color:inherit;cursor:pointer;border:0}.cube,.node-card,.pair-card,.frame-slab{color:#fff;font-family:var(--mono);background:linear-gradient(165deg,#9ad8ff 0%,#2f6bff 46%,#15264f 100%);border-radius:12px;place-items:center;font-weight:650;transition:left .28s,bottom .28s,height .28s,background .18s;display:grid;box-shadow:inset 0 1px #ffffff73,7px 8px #101e3c,0 16px 24px #00000047}.cube{width:54px;min-height:42px;margin-left:-27px;position:absolute;bottom:18px}.cube small,.node-card small,.pair-card small{color:#b7f4ff;font-size:10px;position:absolute;top:-16px}.cube.is-compare{background:linear-gradient(165deg,#ffe08a,#e08912 55%,#5a3a10)}.cube.is-swap{background:linear-gradient(165deg,#ffc1d8,#e23b78 55%,#4a1730)}.cube.is-sorted,.cube.is-found{background:linear-gradient(165deg,#b9ffe2,#14b87a 50%,#0d3b32)}.cube.is-changed{background:linear-gradient(165deg,#e4d4ff,#7c5cff 50%,#2a2158)}.cube.is-dim{opacity:.4}.cube.is-hot{background:linear-gradient(165deg,#ffd0a8,#ff8a2a 50%,#5a3212)}.cube.is-selected{outline:2px solid #fff}.flat-stack{width:140px;height:280px}.flat-stack .cube{width:92px;height:42px;margin-left:-46px;left:50%}.lane{align-items:end;gap:6px;margin-bottom:8px;display:flex}.lane span{text-align:center;min-width:28px;font-family:var(--mono);background:#4c8dff40;border-radius:8px;padding:6px;font-size:12px}.lane--merged span{background:#3dde9a40}.chain{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.node-card{width:64px;height:64px;position:relative}.node-card.is-active{outline:2px solid var(--cyan)}.arrow{color:var(--cyan);font-size:18px}.flat-tree,.flat-graph{width:min(100%,640px);height:280px;overflow:visible}.flat-tree line,.flat-graph line{stroke:#67e8f9d9;stroke-width:2px}.flat-tree circle,.flat-graph circle{fill:#245bff;stroke:#ffffff59}.flat-tree .is-active circle,.flat-graph .is-active circle{fill:#ff9a3c}.flat-graph .is-visited circle{fill:#128a9a}.flat-tree text,.flat-graph text{fill:#fff;font-size:12px;font-family:var(--mono)}.matrix{gap:6px;display:grid}.matrix button{color:#fff;min-width:42px;height:42px;font-family:var(--mono);background:#16306a;border:1px solid #78aaff40;border-radius:8px}.matrix button.is-dim{opacity:.35;background:#1a2744}.matrix button.is-cell{background:#128a9a;transform:translateY(-4px)}.matrix button.is-changed{background:#8a4b16}.matrix button.is-selected{outline:2px solid #fff}.pair-card{min-width:74px;height:78px;padding:8px;position:relative}.frame-slab{width:min(100%,420px);min-height:48px;margin:6px auto;padding:8px 12px}.frame-slab.is-active{outline:1px solid var(--cyan)}.motif{background:radial-gradient(120px 60px at 50% 20%,#5096ff33,#0000 70%),#0a1224;border-radius:12px;height:92px;position:relative;overflow:hidden}.film .motif{height:72px}.motif i,.motif b,.motif em{background:linear-gradient(165deg,#9ad8ff,#2f6bff 50%,#17284f);border-radius:6px;display:block;position:absolute;box-shadow:4px 4px #101e3c}.motif--bars i{width:12px;bottom:14px}.motif--bars i:first-child{height:28px;left:16px}.motif--bars i:nth-child(2){background:linear-gradient(165deg,#ffe08a,#e08912);height:48px;left:34px}.motif--bars i:nth-child(3){height:36px;left:52px}.motif--bars i:nth-child(4){background:linear-gradient(165deg,#b9ffe2,#14b87a);height:58px;left:70px}.motif--stack i{width:36px;height:14px;left:28px}.motif--stack i:first-child{bottom:16px}.motif--stack i:nth-child(2){bottom:34px}.motif--stack i:nth-child(3){background:linear-gradient(165deg,#ffd0a8,#ff8a2a);bottom:52px}.motif--queue i{border-radius:50%;width:18px;height:18px;top:36px}.motif--queue i:first-child{left:12px}.motif--queue i:nth-child(2){left:36px}.motif--queue i:nth-child(3){background:linear-gradient(165deg,#ffd0a8,#ff8a2a);left:60px}.motif--linked i{border-radius:50%;width:16px;height:16px;top:36px}.motif--linked i:nth-child(odd){background:#67e8f9;width:18px;height:3px;top:42px}.motif--tree i{border-radius:50%;width:14px;height:14px}.motif--tree i:first-child{top:16px;left:38px}.motif--tree i:nth-child(2){top:44px;left:22px}.motif--tree i:nth-child(3){background:linear-gradient(165deg,#ffd0a8,#ff8a2a);top:44px;left:54px}.motif--graph i{border-radius:50%;width:12px;height:12px}.motif--graph i:first-child{top:24px;left:20px}.motif--graph i:nth-child(2){background:linear-gradient(165deg,#ffd0a8,#ff8a2a);top:18px;left:48px}.motif--graph i:nth-child(3){top:48px;left:64px}.motif--hash i{width:16px;height:28px;bottom:18px}.motif--hash i:first-child{left:18px}.motif--hash i:nth-child(2){height:40px;left:40px}.motif--hash i:nth-child(3){left:62px}.motif--grid i{width:14px;height:14px}.motif--grid i:first-child{top:22px;left:22px}.motif--grid i:nth-child(2){background:#ff9a3c;top:22px;left:40px}.motif--grid i:nth-child(3){top:40px;left:22px}.motif--grid i:nth-child(4){top:40px;left:40px}.motif--recursion i{height:12px;left:24px}.motif--recursion i:first-child{width:48px;top:22px}.motif--recursion i:nth-child(2){width:40px;top:38px}.motif--recursion i:nth-child(3){background:linear-gradient(165deg,#ffd0a8,#ff8a2a);width:32px;top:54px}.motif--flow i{left:30px}.motif--flow i:first-child{border-radius:99px;width:28px;height:12px;top:16px}.motif--flow i:nth-child(2){background:#8b7cff;width:16px;height:16px;top:36px;transform:rotate(45deg)}.motif--flow i:nth-child(3){width:28px;height:12px;top:60px}.motif--memory i{width:18px;height:36px;top:28px}.motif--memory i:first-child{left:18px}.motif--memory i:nth-child(2){background:linear-gradient(165deg,#b9ffe2,#14b87a);left:42px}.motif--values i{width:22px;height:22px;top:30px}.motif--values i:first-child{left:16px}.motif--values i:nth-child(2){border-radius:50%;left:44px}.motif--values i:nth-child(3){background:linear-gradient(165deg,#ffd0a8,#ff8a2a);left:70px}.code-editor{height:100%;min-height:0}.cf-line-highlight{background:#3ee0ff1f}.cf-line-glyph{border-left:2px solid #3ee0ff}.mem-tabs,.dock-tabs{flex-wrap:wrap;gap:4px;padding:6px;display:flex}.mem-tabs button,.dock-tabs button{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:999px;height:26px;padding:0 8px;font-size:12px;font-weight:650}.mem-body,.dock-body{flex:1;min-height:0;padding:0 8px 8px;overflow:auto}.mem-row,.event-row{text-align:left;background:0 0;border-bottom:1px solid #7ea4dc1a;grid-template-columns:1fr auto;gap:6px;width:100%;padding:6px 4px;font-size:12px;display:grid}.mem-row strong,.event-row strong{font-family:var(--mono);font-weight:600}.mem-row.is-changed{background:#ffb02014}.mem-card{border:1px solid var(--line);border-radius:12px;margin-bottom:8px;padding:8px}.mem-card.is-hot,.mem-card.is-selected{border-color:#3ee0ffa6}.mem-card header{color:var(--muted);justify-content:space-between;margin-bottom:6px;font-size:11px;display:flex}.frame-card{border:1px solid var(--line);border-radius:12px;margin-bottom:8px;overflow:hidden}.frame-card.is-active{border-color:#3ee0ff8c}.frame-card header{background:#3ee0ff14;justify-content:space-between;padding:6px 8px;font-size:12px;display:flex}.ref-row{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.ref-arrow{width:42px;height:14px}.ref-arrow path{fill:none;stroke:var(--cyan);stroke-width:1.6px}.flow-wrap,.flow-canvas{height:100%;min-height:0}.flow-wrap{flex-direction:column;display:flex}.flow-canvas{flex:1}.cfg-flow{background:0 0}.cfg-node{width:100%;height:100%}.cfg-box,.cfg-diamond{text-align:center;place-items:center;width:100%;height:100%;padding:4px;font-size:11px;font-weight:650;display:grid}.cfg-box{background:#121c34;border:1px solid #78aaff4d;border-radius:10px}.cfg-node--start .cfg-box,.cfg-node--end .cfg-box{border-radius:999px}.cfg-diamond{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);background:#241848}.cfg-node.is-current .cfg-box,.cfg-node.is-current .cfg-diamond{border-color:var(--cyan);box-shadow:0 0 0 1px #3ee0ff73}.cfg-node.is-done .cfg-box{opacity:.72}.cfg-box__n{color:var(--muted);font-size:9px;position:absolute;top:4px;left:6px}.cfg-handle{opacity:0}.react-flow__controls-button{fill:#d7e6ff!important;background:#12182a!important;border-bottom-color:#243049!important}.react-flow__attribution{color:var(--muted)!important;background:0 0!important}.lesson{flex-direction:column;align-items:center;gap:16px;width:max-content;max-width:760px;display:flex}.lesson-line{text-align:center;color:#d5e6ff;background:#070c1aeb;border-radius:12px;max-width:420px;margin:0;padding:8px 12px;font-size:14px;line-height:1.45}.op-stage{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;display:flex}.op-result{color:var(--amber);letter-spacing:.08em;text-transform:uppercase;flex-direction:column;align-items:center;gap:6px;font-size:12px;display:flex}.var-shelf{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.pair-card em,.sum-chip em{color:#9ad8ff;margin-top:4px;font-size:10px;font-style:normal;display:block}.sum-chip.is-ghost{opacity:.5;box-shadow:none;background:0 0;border:1px dashed #b4d2ffb3}.sum-chip.is-taken-away{opacity:.45;animation:.4s both lift-off}.bool-pill{color:#fff;text-align:center;background:#1a2744;border-radius:999px;min-width:72px;padding:8px 12px;font-weight:700}.bool-pill.is-yes{background:#147a52}.bool-pill.is-no{background:#8a3b22}.paper{color:#142033;background:#f4f7fb;border-radius:4px 12px 12px;min-width:140px;padding:10px 14px;animation:.35s drop-in;box-shadow:0 8px 16px #00000040}.paper span{letter-spacing:.06em;text-transform:uppercase;color:#5d6b82;font-size:11px;display:block}.paper strong{font-family:var(--mono)}.char-row{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.char-cell{color:#fff;width:36px;height:42px;font-family:var(--mono);background:#121c34;border:1px solid #8cb4ff59;border-radius:8px;place-items:center;display:grid}.char-cell small{color:#9ad8ff;font-size:9px}.char-cell.is-on{background:#245bff;border-color:#9ad8ff;animation:.3s pop-in}.char-cell.is-shared{outline:2px solid #ffb020}.bar-index{opacity:.8;font-size:10px;font-weight:500;position:absolute;bottom:4px}.groups{flex-wrap:wrap;justify-content:center;gap:6px;max-width:420px;display:flex}.group{color:#fff;min-width:28px;font-family:var(--mono);text-align:center;border:1px dashed #9ad8ff99;border-radius:8px;padding:4px 6px}.set-board{align-items:center;gap:16px;display:flex}.pair-table{gap:8px;display:grid}.pair-row{color:#fff;background:#121c34;border:1px solid #8cb4ff4d;border-radius:12px;grid-template-columns:auto auto auto;align-items:center;gap:10px;padding:8px 12px;display:grid}.pair-row.is-hot{border-color:#ffb020;animation:.3s pop-in}.pair-row em{color:#ffb020;font-style:normal}.obj-card{color:#fff;background:#121c34;border:1px solid #9ad8ff66;border-radius:16px;min-width:220px;padding:12px 14px}.obj-card header{justify-content:space-between;gap:12px;margin-bottom:8px;display:flex}.obj-card small{color:#9ad8ff}.obj-card ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.obj-card li{justify-content:space-between;gap:12px;display:flex}.obj-card button{color:#fff;font-family:var(--mono);background:#245bff;border:0;border-radius:8px;padding:4px 8px}.key-float{color:#fff;background:#3a2a12;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;animation:.35s drop-in;display:flex}.key-float span{letter-spacing:.08em;text-transform:uppercase;color:#ffd59a;font-size:11px}.edge-weight{fill:#d7f7ff;font-size:11px;font-family:var(--mono)}.flat-svg text{fill:#fff;font-size:12px;font-family:var(--mono)}.console-line{font-family:var(--mono);margin:0 0 4px;font-size:12px}.console-line.is-new{color:var(--cyan)}.console-error{color:#ffb4c0;font-size:12px}.explain p{margin:0 0 8px;font-size:13px;line-height:1.45}.explain dl{gap:4px;margin:0;display:grid}.explain div{grid-template-columns:88px 1fr;gap:6px;font-size:12px;display:grid}.explain dt{color:var(--muted)}.explain dd{margin:0}.empty-state{text-align:center;color:var(--muted);margin:auto;padding:16px}.empty-state strong{color:var(--text);margin-bottom:4px;display:block}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes ref-dash{to{stroke-dashoffset:-24px}}@keyframes float-bubble{0%,to{transform:translateY(6px)}50%{transform:translateY(-34px)}}@keyframes drop-in{0%{opacity:.2;transform:translateY(-28px)}to{opacity:1;transform:translateY(0)}}@keyframes lift-off{0%{transform:translateY(0)}to{transform:translateY(-24px)}}@keyframes pop-in{0%{opacity:.2;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes slide-left{0%{opacity:.35;transform:translate(-36px)}to{opacity:1;transform:translate(18px)}}@keyframes slide-right{0%{opacity:.35;transform:translate(36px)}to{opacity:1;transform:translate(-18px)}}@keyframes road-dash{to{stroke-dashoffset:-20px}}@keyframes pulse-ring{50%{box-shadow:0 0 0 1px #3ee0ff59}}.ref-arrow path{stroke-dasharray:5 4;animation:1.4s linear infinite ref-dash}html[data-motion=reduce] .ref-arrow path{animation:none}
