:root{--bg-void: #070709;--bg-base: #0a0a0e;--bg-panel: #0f0f15;--bg-elev: #16161e;--bg-input: #1b1b24;--bg-hover: #20202b;--line: rgba(255, 255, 255, .07);--line-soft: rgba(255, 255, 255, .045);--line-strong: rgba(255, 255, 255, .14);--line-film: rgba(255, 107, 26, .35);--text: #ededf2;--text-dim: #9b9ba8;--text-faint: #5d5d6b;--text-on-film: #0a0a0e;--film: #ff6b1a;--film-bright: #ff8a3d;--film-dim: #b94e12;--signal: #ff3b30;--signal-dim: #b52820;--ok: #2fd28a;--warn: #ffc24b;--info: #4cc2ff;--grad-film: linear-gradient(135deg, #ff8a3d 0%, #ff6b1a 45%, #ff3b30 100%);--grad-panel: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0));--glow-film: 0 0 0 1px rgba(255,107,26,.4), 0 8px 30px -8px rgba(255,107,26,.45);--font-mono: "JetBrains Mono", "IBM Plex Mono", "SF Mono", ui-monospace, SFMono-Regular, "Menlo", "Cascadia Code", "Roboto Mono", monospace;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--sh-1: 0 1px 2px rgba(0,0,0,.5);--sh-2: 0 6px 20px -6px rgba(0,0,0,.6);--sh-3: 0 18px 50px -12px rgba(0,0,0,.7);--ease: cubic-bezier(.22, 1, .36, 1);--ease-snap: cubic-bezier(.34, 1.56, .64, 1);--rail-w: 76px;--topbar-h: 56px}@media (prefers-color-scheme: light){:root{color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-void);color:var(--text);font-family:var(--font-mono);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}#root:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:32px 32px}#root:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(120% 90% at 50% 0%,transparent 55%,rgba(0,0,0,.55) 100%)}a{color:var(--info);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;color:var(--text)}::selection{background:#ff6b1a4d;color:#fff}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:10px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:#ff6b1a80;background-clip:content-box}.mono{font-family:var(--font-mono)}.dim{color:var(--text-dim)}.faint{color:var(--text-faint)}.film{color:var(--film)}.signal{color:var(--signal)}.ok{color:var(--ok)}.eyebrow{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--text-faint)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:focus-visible{outline:2px solid var(--film);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);border:1px solid var(--line-strong);background:var(--bg-elev);color:var(--text);font-family:var(--font-mono);font-size:13px;font-weight:500;padding:8px 14px;border-radius:var(--r-md);transition:all .16s var(--ease);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:hover{background:var(--bg-hover);border-color:var(--line-strong)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--grad-film);border-color:transparent;color:var(--text-on-film);font-weight:700;box-shadow:var(--glow-film)}.btn--primary:hover{filter:brightness(1.08);background:var(--grad-film)}.btn--ghost{background:transparent;border-color:var(--line)}.btn--ghost:hover{background:var(--bg-elev)}.btn--danger{background:transparent;border-color:#ff3b3066;color:var(--signal)}.btn--danger:hover{background:#ff3b301f}.btn--sm{padding:5px 10px;font-size:12px}.btn--icon{padding:8px}.btn--block{width:100%}.panel{background:var(--grad-panel),var(--bg-panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-2)}.panel__head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--line)}.panel__title{font-size:14px;font-weight:700;letter-spacing:.02em}.panel__body{padding:var(--sp-5)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--sp-4)}.field__label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.input,.textarea,.select{background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md);color:var(--text);font-family:var(--font-mono);font-size:13px;padding:9px 11px;width:100%;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--film);box-shadow:0 0 0 3px #ff6b1a26}.textarea{resize:vertical;min-height:84px;line-height:1.6}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.toggle{position:relative;width:42px;height:24px;border-radius:999px;background:var(--bg-input);border:1px solid var(--line-strong);transition:background .18s var(--ease);flex:none}.toggle[data-on=true]{background:var(--film);border-color:transparent}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .18s var(--ease-snap)}.toggle[data-on=true]:after{transform:translate(18px)}.badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:#ff6b1a1f;color:var(--film);border:1px solid var(--line-film)}.badge--signal{background:#ff3b301f;color:var(--signal);border-color:#ff3b3059}.badge--ok{background:#2fd28a1f;color:var(--ok);border-color:#2fd28a59}.badge--ghost{background:var(--bg-elev);color:var(--text-dim);border-color:var(--line)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--sp-3);padding:var(--sp-7) var(--sp-5);color:var(--text-faint)}.empty__icon{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:var(--bg-elev);border:1px solid var(--line);color:var(--film)}.modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#030305b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:var(--sp-5);animation:fade .16s var(--ease)}.modal{width:min(420px,92vw);background:var(--bg-panel);border:1px solid var(--line-strong);border-radius:var(--r-xl);box-shadow:var(--sh-3);animation:pop .18s var(--ease-snap)}.modal__head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--line)}.modal__body{padding:var(--sp-4) var(--sp-4)}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.grid{display:grid;gap:var(--sp-4)}.grid--cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.app{position:relative;z-index:1;display:grid;grid-template-columns:var(--rail-w) 1fr;height:100%}.rail{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-4) 0;background:linear-gradient(180deg,var(--bg-panel),var(--bg-void));border-right:1px solid var(--line)}.rail__brand{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--grad-film);color:var(--text-on-film);box-shadow:var(--glow-film);margin-bottom:var(--sp-3);flex:none}.rail__item{height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:var(--r-md);color:var(--text-faint);position:relative;transition:all .16s var(--ease);background:transparent;border:none;width:56px}.rail__item:hover{color:var(--text-dim);background:var(--bg-elev)}.rail__item[data-active=true]{color:var(--film);background:#ff6b1a1a}.rail__item[data-active=true]:before{content:"";position:absolute;left:-1px;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--film);box-shadow:0 0 12px var(--film)}.rail__label{font-size:9px;letter-spacing:.06em}.rail__spacer{flex:1}.main{display:flex;flex-direction:column;min-width:0;height:100%;overflow:hidden}.topbar{height:var(--topbar-h);flex:none;display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-5);border-bottom:1px solid var(--line);background:#0a0a0eb3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.topbar__title{font-weight:700;font-size:15px}.topbar__crumb{color:var(--text-faint)}.topbar__spacer{flex:1}.content{flex:1;overflow:auto;padding:var(--sp-6)}.content--flush{padding:0;overflow:hidden}.page-head{margin-bottom:var(--sp-5)}.page-head h1{font-size:22px;margin:6px 0 4px;letter-spacing:-.01em}.page-head p{color:var(--text-dim);margin:0;max-width:640px}.mobilenav{display:none}@media (max-width: 720px){.app{grid-template-columns:1fr;grid-template-rows:1fr auto}.rail{display:none}.mobilenav{display:flex;grid-row:2;border-top:1px solid var(--line);background:var(--bg-panel);padding:6px 0 calc(6px + env(safe-area-inset-bottom))}.mobilenav__item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--text-faint);background:none;border:none}.mobilenav__item[data-active=true]{color:var(--film)}.mobilenav__label{font-size:10px}.content{padding:var(--sp-4)}}.hero{position:relative;border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--sp-7) var(--sp-6);background:radial-gradient(80% 120% at 12% 0%,rgba(255,107,26,.16),transparent 60%),radial-gradient(70% 100% at 100% 10%,rgba(255,59,48,.12),transparent 55%),var(--bg-panel);overflow:hidden;margin-bottom:var(--sp-6)}.hero__eyebrow{color:var(--film);letter-spacing:.28em;font-size:11px}.hero h1{font-size:clamp(28px,5vw,46px);line-height:1.05;margin:14px 0 12px;letter-spacing:-.02em;max-width:760px}.hero h1 .accent{color:var(--film)}.hero p{color:var(--text-dim);max-width:560px;font-size:15px}.hero__actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-5);flex-wrap:wrap}.hero__stat{display:flex;gap:var(--sp-6);margin-top:var(--sp-5);flex-wrap:wrap}.hero__stat b{font-size:20px;color:var(--text)}.hero__stat span{font-size:11px;color:var(--text-faint);letter-spacing:.08em;text-transform:uppercase}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:var(--sp-6) 0 var(--sp-4)}.section-head h2{font-size:16px;margin:0}.section-head a{font-size:12px}.tpl-card{position:relative;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5);background:var(--bg-panel);transition:all .18s var(--ease);cursor:pointer;overflow:hidden}.tpl-card--compact{padding:var(--sp-3) var(--sp-3)}.tpl-card--compact .tpl-card__icon{width:34px;height:34px;border-radius:10px;margin-bottom:var(--sp-2)}.tpl-card--compact h3{font-size:13px}.tpl-card--compact p{font-size:11px}.tpl-card:hover{border-color:var(--line-film);transform:translateY(-3px);box-shadow:var(--sh-2)}.tpl-card__icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:var(--bg-elev);color:var(--film);margin-bottom:var(--sp-3)}.tpl-card h3{margin:0 0 4px;font-size:15px}.tpl-card p{margin:0;color:var(--text-dim);font-size:12px}.proj-card{position:relative;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg-panel);overflow:hidden;transition:all .18s var(--ease);cursor:pointer}.proj-card:hover{border-color:var(--line-film);box-shadow:var(--sh-2)}.proj-card__thumb{aspect-ratio:16 / 10;background:var(--bg-void);display:grid;place-items:center;border-bottom:1px solid var(--line);overflow:hidden}.proj-card__thumb img{width:100%;height:100%;object-fit:cover}.proj-card__meta{padding:var(--sp-3) var(--sp-4)}.proj-card__name{font-weight:600;font-size:14px}.proj-card__sub{color:var(--text-faint);font-size:11px;margin-top:2px}.proj-card__menu{position:absolute;top:8px;right:8px;display:flex;gap:6px;opacity:0;transition:opacity .15s var(--ease)}.proj-card:hover .proj-card__menu{opacity:1}.asset-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg-panel);overflow:hidden;display:flex;flex-direction:column}.asset-card__thumb{aspect-ratio:1;background:var(--bg-void);display:grid;place-items:center;overflow:hidden}.asset-card__thumb img,.asset-card__thumb svg{width:100%;height:100%;object-fit:cover}.asset-card__meta{padding:var(--sp-2) var(--sp-3);display:flex;align-items:center;justify-content:space-between;gap:6px}.asset-card__name{font-size:12px;font-weight:600}.set-group{margin-bottom:var(--sp-5)}.set-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) 0;border-bottom:1px solid var(--line)}.set-row__main{flex:1;min-width:0}.set-row__title{font-weight:600;font-size:14px}.set-row__desc{color:var(--text-faint);font-size:12px;margin-top:2px}.prov-card{border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);background:var(--bg-panel);margin-bottom:var(--sp-3)}.prov-card[data-enabled=true]{border-color:var(--line-film)}.toolrow{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:center}.story-table{width:100%;border-collapse:collapse;font-size:12px}.story-table th,.story-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}.story-table th{color:var(--text-faint);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:10px}.story-table img{width:96px;border-radius:6px}.form-row{display:flex;gap:var(--sp-3)}.form-row>*{flex:1}.react-flow{direction:ltr;--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: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--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: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--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: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--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 rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.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: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--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: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--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: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--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 rgba(0, 0, 0, .08);--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{position:absolute;width:100%;height:100%;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{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.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;-moz-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:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.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:default}.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:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;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%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;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{position:absolute;z-index:5;margin:15px}.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{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@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;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.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{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.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{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;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))}.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{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));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:var(--xy-resize-background-color, var(--xy-resize-background-color-default));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%}.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))}.react-flow{background:radial-gradient(120% 90% at 50% 0%,rgba(255,107,26,.05),transparent 60%),var(--bg-void)}.react-flow__attribution{display:none}.react-flow__edge-path{stroke:var(--film);stroke-width:1.6}.react-flow__edge.rel-reference .react-flow__edge-path{stroke:var(--info)!important;stroke-dasharray:5 4}.react-flow__edge.rel-audio .react-flow__edge-path{stroke:var(--ok)!important;stroke-dasharray:2 5}.react-flow__edge.rel-sequence .react-flow__edge-path{stroke:var(--film)}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--film-bright);stroke-width:2.4}.react-flow__connection-path{stroke:var(--film);stroke-width:2}.react-flow__controls{box-shadow:var(--sh-2);border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line)}.react-flow__controls-button{background:var(--bg-panel);border-bottom:1px solid var(--line);color:var(--text);width:28px;height:28px}.react-flow__controls-button:hover{background:var(--bg-hover)}.react-flow__controls-button svg{fill:var(--text-dim)}.react-flow__minimap{background:var(--bg-panel)!important;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-2)}.react-flow__minimap-node{fill:#2a2a34}.react-flow__minimap-node[data-kind=character]{fill:var(--film)}.react-flow__minimap-node[data-kind=scene]{fill:var(--info)}.react-flow__minimap-node[data-kind=shot]{fill:var(--warn)}.react-flow__minimap-node[data-kind=script]{fill:#e056fd}.react-flow__minimap-node[data-kind=generator]{fill:var(--film)}.react-flow__handle{width:9px;height:9px;background:var(--bg-elev);border:2px solid var(--film);border-radius:50%}.react-flow__handle:hover{background:var(--film);box-shadow:0 0 10px var(--film)}.snode{width:230px;background:linear-gradient(180deg,rgba(255,255,255,.03),transparent),var(--bg-panel);border:1px solid var(--line-strong);border-radius:var(--r-lg);box-shadow:var(--sh-2);overflow:hidden;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.snode--rich{width:280px!important;background:linear-gradient(180deg,rgba(224,86,253,.06),transparent),var(--bg-panel)}.snode-rich__head{display:flex;align-items:center;gap:8px;padding:10px 12px 8px}.snode-rich__badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;background:#ff6b1a26;color:var(--film);border:1px solid rgba(255,107,26,.3);flex:none;letter-spacing:.04em}.snode-rich__title{font-size:14px;font-weight:700;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.snode-rich__meta{padding:4px 12px 6px;display:flex;flex-direction:column;gap:2px}.snode-rich__meta-row{display:flex;align-items:baseline;gap:6px;font-size:11.5px;line-height:1.5}.snode-rich__meta-label{color:var(--text-faint);flex:none;min-width:52px}.snode-rich__meta-row>span:last-child{color:var(--text-dim)}.snode-rich__tags{display:flex;flex-wrap:wrap;gap:4px;padding:2px 12px 6px}.snode-rich__tag{font-size:10px;color:var(--info);background:#4cc2ff1a;border:1px solid rgba(76,194,255,.2);padding:1px 5px;border-radius:3px}.snode-rich__body{margin:0 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.snode-rich__toggle{display:flex;align-items:center;gap:4px;width:100%;padding:5px 2px;background:transparent;border:none;color:var(--text-faint);font-size:11px;cursor:pointer}.snode-rich__toggle:hover{color:var(--text)}.snode-rich__content{padding:6px 2px 8px;font-size:11.5px;color:var(--text-dim);line-height:1.65;white-space:pre-wrap;word-break:break-word;max-height:140px;overflow-y:auto}.snode-rich__foot{display:flex;align-items:center;gap:6px;padding:7px 12px}.snode[data-selected=true]{border-color:var(--film);box-shadow:var(--glow-film)}.snode__head{display:flex;align-items:center;gap:8px;padding:9px 11px;border-bottom:1px solid var(--line);background:#ffffff05}.snode__kind{width:26px;height:26px;border-radius:7px;flex:none;display:grid;place-items:center;background:var(--bg-elev);color:var(--film)}.snode__label{font-weight:700;font-size:13px;flex:1;min-width:0}.snode__body{padding:10px 11px}.snode__note{font-size:12px;color:var(--text-dim);line-height:1.5}.snode__thumb{margin-top:8px;border-radius:var(--r-sm);overflow:hidden;aspect-ratio:16/10;background:var(--bg-void);display:grid;place-items:center;border:1px solid var(--line)}.snode__thumb img,.snode__thumb svg{width:100%;height:100%;object-fit:cover}.snode__foot{display:flex;align-items:center;justify-content:space-between;padding:7px 11px;border-top:1px solid var(--line);font-size:11px;color:var(--text-faint)}.snode__gen{display:inline-flex;align-items:center;gap:4px;color:var(--film);font-weight:600}.snode--busy{border-color:var(--film)}.flow-toolbar{position:absolute;top:12px;left:12px;z-index:6;display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:#0f0f15e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:var(--r-lg);padding:8px;box-shadow:var(--sh-2);max-width:calc(100% - 24px)}.flow-toolbar__div{width:1px;align-self:stretch;background:var(--line);margin:0 2px}.addpop{position:absolute;z-index:20;background:var(--bg-panel);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--sh-3);padding:6px;display:grid;gap:2px;min-width:170px}.addpop button{display:flex;align-items:center;gap:8px;text-align:left;background:transparent;border:none;color:var(--text);padding:8px 10px;border-radius:var(--r-sm);font-size:13px}.addpop button:hover{background:var(--bg-hover)}.inspector{display:flex;flex-direction:column;height:100%}.inspector__head{padding:var(--sp-4) var(--sp-4) var(--sp-3);border-bottom:1px solid var(--line)}.inspector__body{flex:1;overflow:auto;padding:var(--sp-4)}.inspector__empty{display:grid;place-items:center;height:100%;color:var(--text-faint);text-align:center;padding:24px;gap:8px}.studio-layout{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}.studio-modebar{height:40px;flex:none;display:flex;align-items:center;gap:12px;padding:0 14px;border-bottom:1px solid var(--line);background:var(--bg-panel)}.studio-modebtn{display:flex;align-items:center;gap:5px;font-size:12px;padding:5px 10px;border-radius:var(--r-md);border:1px solid var(--line);background:transparent;color:var(--text-dim);cursor:pointer;transition:all .15s var(--ease);margin-left:auto}.studio-modebtn:hover{color:var(--text);border-color:var(--film)}.bg-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;z-index:80;padding:20px}.batchgen{width:min(880px,96vw);max-height:90vh;overflow:auto;background:var(--bg-panel);border:1px solid var(--line-strong);border-radius:var(--r-xl);padding:18px;box-shadow:var(--sh-3)}.batchgen__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.batchgen__title{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700}.batchgen__title svg{color:var(--film)}.batchgen__x{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:18px}.batchgen__ctrl{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.batchgen__label{font-size:12px;color:var(--text-dim);font-weight:600}.batchgen__row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.batchgen__count{display:flex;gap:4px}.batchgen__cnt{width:32px;height:30px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer}.batchgen__cnt[data-active=true]{background:var(--film);border-color:var(--film);color:#fff}.batchgen__hint{font-size:11px;color:var(--text-dim)}.batchgen__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.batchgen__cell{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--bg-deep);display:flex;flex-direction:column}.batchgen__cell[data-ok=false]{opacity:.6}.batchgen__thumb{position:relative;aspect-ratio:1 / 1;background:#000}.batchgen__thumb img,.batchgen__thumb video{width:100%;height:100%;object-fit:cover;display:block}.batchgen__idx{position:absolute;top:6px;left:6px;background:#0009;color:#fff;font-size:11px;padding:1px 7px;border-radius:999px}.batchgen__err{height:100%;display:grid;place-items:center;text-align:center;font-size:11px;color:var(--text-dim);padding:10px}.batchgen__meta{padding:8px;display:flex;flex-direction:column;gap:6px}.batchgen__stars{display:flex;gap:2px}.batchgen__star{background:transparent;border:none;font-size:16px;line-height:1;color:var(--line-strong);cursor:pointer;padding:0}.batchgen__star[data-on=true]{color:var(--warn)}.batchgen__sub{font-size:11px;color:var(--text-dim)}.batchgen__rate{color:var(--warn);font-style:normal}.batchgen__pick{font-size:12px;padding:6px;border-radius:8px;border:1px solid var(--film);background:var(--film);color:#fff;cursor:pointer}.batchgen__pick:disabled{opacity:.4;cursor:not-allowed;background:transparent;color:var(--text-dim);border-color:var(--line)}.batchgen__foot{margin-top:12px;font-size:12px;color:var(--text-dim)}.studio-body{flex:1;min-height:0;display:flex}.studio-layout[data-mode=stage] .studio-inspector{display:none}.studio-inspector{width:344px;flex:none;position:relative;border-left:1px solid var(--line);background:var(--bg-panel);height:100%;overflow:hidden;transition:width .18s var(--ease)}.studio-inspector[data-resizing=true]{transition:none}.studio-inspector[data-collapsed=true],.studio-layout[data-mode=canvas] .studio-inspector[data-collapsed=true]{display:none!important;border-left:none}.inspector-resize{position:absolute;left:0;top:0;bottom:0;width:7px;cursor:col-resize;z-index:6;background:transparent;transition:background .15s var(--ease)}.inspector-resize:after{content:"";position:absolute;left:3px;top:50%;transform:translateY(-50%);width:2px;height:38px;border-radius:2px;background:var(--line-strong);transition:background .15s var(--ease)}.inspector-resize:hover,.studio-inspector[data-resizing=true] .inspector-resize{background:#ff6b1a47}.inspector-resize:hover:after{background:var(--film)}.inspector-reopen{position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:1000;display:flex;align-items:center;gap:6px;padding:10px 13px;border-radius:10px 0 0 10px;background:linear-gradient(180deg,var(--film),#7f6fff);border:1px solid rgba(255,255,255,.28);border-right:none;color:#0a0a0e;font-size:12.5px;font-weight:700;letter-spacing:.02em;cursor:pointer;box-shadow:-4px 0 18px #a855f780,0 6px 18px #0000008c;transition:filter .15s,transform .12s;animation:reopen-in .25s ease}.inspector-reopen:hover{filter:brightness(1.1)}.inspector-reopen:active{transform:translateY(-50%) scale(.96)}@keyframes reopen-in{0%{opacity:0;transform:translateY(-50%) translate(10px)}to{opacity:1;transform:translateY(-50%) translate(0)}}.node-action-menu{position:absolute;z-index:25;min-width:220px;max-height:calc(100% - 80px);overflow-y:auto;background:#0f0f15f5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line-strong);border-radius:var(--r-lg);box-shadow:var(--sh-3),0 0 40px #00000080;padding:6px 0;animation:nodeMenuIn .18s var(--ease)}@keyframes nodeMenuIn{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.node-action-menu__sec{font-size:11px;font-weight:700;color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;padding:10px 14px 6px}.node-action-menu__item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:none;color:var(--text);padding:9px 14px;font-size:13.5px;font-weight:500;cursor:pointer;transition:background .12s var(--ease),color .12s var(--ease)}.node-action-menu__item:hover{background:#ff6b1a1a;color:var(--film)}.node-action-menu__icon{flex:none;width:20px;height:20px;display:grid;place-items:center;color:var(--text-dim);transition:color .12s var(--ease)}.node-action-menu__item:hover .node-action-menu__icon{color:var(--film)}.node-action-menu__label{flex:1}.node-action-menu__arrow{flex:none;color:var(--text-faint);font-size:16px}.ctx-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:24}.ctx-overlay .node-action-menu{position:absolute}.ctx-close{position:absolute;top:0;right:0;width:22px;height:22px;display:grid;place-items:center;background:#0a0a0ecc;border:1px solid var(--line-strong);border-radius:6px;color:var(--text-dim);font-size:12px;cursor:pointer;transform:translate(50%,-50%)}.ctx-close:hover{color:var(--signal);border-color:var(--signal)}.inspector__prov-hint{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--text-faint);margin:-6px 0 6px;line-height:1.4}.inspector__prov-hint .dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--text-faint)}.inspector__prov-hint .dot[data-ok=true]{background:var(--ok);box-shadow:0 0 6px var(--ok)}@media (max-width: 720px){.studio-inspector{position:absolute!important;top:0;right:0;bottom:0;width:90%!important;z-index:30;transform:translate(100%);transition:transform .2s var(--ease);box-shadow:var(--sh-3);border-left:1px solid var(--line)!important}.studio-inspector[data-open=true]{transform:none}.inspector-resize{display:none}}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.result-card{border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;position:relative;background:var(--bg-void)}.result-card img,.result-card video{width:100%;display:block;aspect-ratio:1;object-fit:cover}.result-card__txt{font-size:11px;padding:8px;max-height:120px;overflow:auto;color:var(--text-dim);white-space:pre-wrap}.result-card__bar{position:absolute;top:4px;right:4px;display:flex;gap:4px}@keyframes edgeflow{to{stroke-dashoffset:-28}}.react-flow__edge.rel-sequence .react-flow__edge-path{stroke-dasharray:9 7;animation:edgeflow .9s linear infinite}.react-flow__edge.rel-reference .react-flow__edge-path{stroke-dasharray:5 4}.react-flow__edge.rel-audio .react-flow__edge-path{stroke-dasharray:2 5}.snode[data-kind=character]{box-shadow:var(--sh-2),inset 3px 0 #ff6b1a}.snode[data-kind=scene]{box-shadow:var(--sh-2),inset 3px 0 #4cc2ff}.snode[data-kind=shot]{box-shadow:var(--sh-2),inset 3px 0 #ffc24b}.snode[data-kind=asset]{box-shadow:var(--sh-2),inset 3px 0 #b98bff}.snode[data-kind=prompt]{box-shadow:var(--sh-2),inset 3px 0 #ff6b1a}.snode[data-kind=music]{box-shadow:var(--sh-2),inset 3px 0 #3ddc84}.snode[data-kind=text]{box-shadow:var(--sh-2),inset 3px 0 #9aa0b5}.snode[data-kind=script]{box-shadow:var(--sh-2),inset 3px 0 #e056fd}.snode[data-kind=generator]{box-shadow:var(--sh-2),inset 3px 0 #ff6b1a}.snode[data-selected=true]{box-shadow:var(--glow-film),inset 3px 0 #ffffff40}.snode__status{width:8px;height:8px;border-radius:50%;flex:none;background:var(--text-faint)}.snode__status[data-status=done]{background:var(--ok);box-shadow:0 0 8px var(--ok)}.snode__status[data-status=busy]{background:var(--film);box-shadow:0 0 8px var(--film);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.snode__actions{position:absolute;top:6px;right:6px;z-index:4;display:none;gap:4px}.snode:hover .snode__actions{display:flex}.snode__actions button{width:22px;height:22px;display:grid;place-items:center;background:#0a0a0ed1;border:1px solid var(--line-strong);border-radius:6px;color:var(--text-dim);cursor:pointer}.snode__actions button:hover{color:var(--film);border-color:var(--film)}.snode__story{display:flex;align-items:center;justify-content:center;gap:5px;width:calc(100% - 22px);margin:0 11px 9px;padding:6px;font-size:12px;font-weight:600;background:#ff6b1a1a;border:1px solid rgba(255,107,26,.32);color:var(--film);border-radius:var(--r-sm);cursor:pointer}.snode__story:hover{background:#ff6b1a2e}.flow-stat{font-size:12px;color:var(--text-dim);padding:4px 8px;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-sm);white-space:nowrap}.edge-rel-pop{position:absolute;top:64px;left:50%;transform:translate(-50%);z-index:12;display:flex;align-items:center;gap:10px;background:#0f0f15f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line-strong);border-radius:var(--r-lg);padding:8px 10px;box-shadow:var(--sh-3)}.edge-rel-pop__title{font-size:12px;color:var(--text-dim);padding-left:2px}.edge-rel-pop__x{background:transparent;border:none;color:var(--text-dim);font-size:18px;line-height:1;cursor:pointer;padding:0 4px}.edge-rel-pop__x:hover{color:var(--signal)}.seg--sm{gap:0;padding:3px}.seg--sm button{padding:5px 12px;font-size:12px}.rel-sequence{color:#ff6b1a}.rel-reference{color:#4cc2ff}.rel-audio{color:#3ddc84}.seg--sm button[data-active=true].rel-sequence{background:#ff6b1a;color:#0a0a0e}.seg--sm button[data-active=true].rel-reference{background:#4cc2ff;color:#0a0a0e}.seg--sm button[data-active=true].rel-audio{background:#3ddc84;color:#0a0a0e}.app:fullscreen{position:relative;width:100vw;height:100vh;background:var(--bg-void);outline:none;overflow:hidden}.app:fullscreen .rail,.app:fullscreen .topbar,.app:fullscreen .mobilenav{display:none!important}.app:fullscreen .studio-layout{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-void)}.app:fullscreen .studio-modebar,.app:fullscreen .flow-toolbar{background:#0f0f15eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.studio-layout.fs-fake{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;width:100vw;height:100vh;background:var(--bg-void);outline:none}.canvas-bottombar{position:absolute;bottom:0;left:0;right:0;z-index:6;display:flex;align-items:center;gap:10px;height:42px;padding:0 12px;background:#0f0f15eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line)}.canvas-bottombar__left,.canvas-bottombar__right{display:flex;align-items:center;gap:6px;flex:none}.canvas-bottombar__right{margin-left:auto}.bottombar__div{width:1px;height:18px;background:var(--line);flex:none}.storyboard-strip--inline{position:static!important;border:none!important;background:transparent!important;box-shadow:none!important;padding:0!important;flex:1;min-width:0;overflow-x:auto}.storyboard-strip--inline .storyboard-strip__head{font-size:10px;color:var(--text-faint);padding:0 4px 0 0}.snode--gen{width:264px!important;background:linear-gradient(180deg,rgba(255,107,26,.06),transparent),var(--bg-panel)}.snode-gen__head{display:flex;align-items:center;gap:8px;padding:9px 11px;border-bottom:1px solid var(--line);background:#ffffff05}.snode-gen__types{display:flex;gap:4px;padding:8px 11px 4px}.snode-gen__types button{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;font-size:12px;padding:6px 4px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-elev);color:var(--text-dim);cursor:pointer}.snode-gen__types button[data-active=true]{border-color:var(--film);color:var(--film);background:#ff6b1a1a;font-weight:600}.snode-gen__src{padding:2px 11px 4px;font-size:11px;color:var(--text-faint)}.snode-gen__prompt{padding:0 11px}.snode-gen__ta{width:100%;min-height:54px;resize:vertical;font-size:12px}.snode-gen__run{display:flex;align-items:center;justify-content:center;gap:6px;margin:8px 11px 0;width:calc(100% - 22px);padding:9px;border:none;border-radius:var(--r-md);background:var(--film);color:#0a0a0e;font-weight:700;cursor:pointer}.snode-gen__run:disabled{opacity:.6;cursor:default}.snode-gen__progress{margin:8px 11px 0;height:4px;background:var(--bg-elev);border-radius:4px;overflow:hidden}.snode-gen__bar{height:100%;width:40%;background:var(--film);border-radius:4px;animation:genProg 1.1s ease-in-out infinite}@keyframes genProg{0%{transform:translate(-100%)}to{transform:translate(350%)}}.snode-gen__foot{display:flex;align-items:center;justify-content:space-between;padding:7px 11px;font-size:11px;color:var(--text-faint);border-top:1px solid var(--line);margin-top:8px}.gnode{border:1.5px dashed rgba(255,107,26,.5);border-radius:var(--r-lg);background:#ff6b1a0a}.gnode[data-selected=true]{border-color:var(--film);box-shadow:var(--glow-film)}.gnode[data-collapsed=true]{background:#ff6b1a14}.gnode__bar{display:flex;align-items:center;gap:8px;padding:6px 10px}.gnode__title{display:flex;align-items:center;gap:6px;font-weight:700;font-size:13px;color:var(--film);flex:1;min-width:0}.gnode__count{font-size:11px;color:var(--text-faint);white-space:nowrap}.gnode__bar button{background:var(--bg-elev);border:1px solid var(--line);color:var(--text-dim);border-radius:6px;padding:3px 8px;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:3px}.gnode__bar button:hover{color:var(--film);border-color:var(--film)}.gnode__hint{position:absolute;bottom:10px;left:12px;font-size:11px;color:var(--text-faint)}.node-action-submenu{position:absolute;z-index:26;width:220px;max-height:calc(100% - 80px);overflow-y:auto;background:#0f0f15f7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line-strong);border-radius:var(--r-lg);box-shadow:var(--sh-3);padding:6px 0;animation:nodeMenuIn .16s var(--ease)}.node-action-submenu__head{display:flex;align-items:center;justify-content:space-between;padding:6px 14px 8px;font-size:11px;font-weight:700;color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em}.node-action-submenu__x{background:transparent;border:none;color:var(--text-faint);font-size:14px;line-height:1;cursor:pointer;padding:0 2px}.node-action-submenu__x:hover{color:var(--signal)}.node-action-submenu__item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:none;color:var(--text);padding:9px 14px;font-size:13.5px;cursor:pointer}.node-action-submenu__item:hover{background:#ff6b1a1a;color:var(--film)}.node-action-submenu__thumb{width:20px;height:20px;border-radius:4px;overflow:hidden;display:grid;place-items:center;background:var(--bg-elev);color:var(--text-dim);flex:none}.node-action-submenu__thumb img{width:100%;height:100%;object-fit:cover}.node-action-submenu__import{padding:4px 12px 10px}.node-action-submenu__import .textarea{width:100%;min-height:70px;font-size:12px}.bottombar__btn{background:var(--bg-elev);border:1px solid var(--line);color:var(--text-dim);border-radius:var(--r-sm);padding:4px 9px;font-size:12px;cursor:pointer;white-space:nowrap}.bottombar__btn:hover:not(:disabled){color:var(--film);border-color:var(--film)}.bottombar__btn:disabled{opacity:.4;cursor:default}.canvas-panel-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:70;background:#0707098c;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.canvas-panel{width:560px;max-width:92%;max-height:74%;background:var(--bg-panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 24px 70px #0000008c;display:flex;flex-direction:column;overflow:hidden}.canvas-panel--wide{width:760px}.canvas-panel__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);font-weight:600;font-size:13px}.canvas-panel__head svg{vertical-align:-2px;margin-right:4px}.canvas-panel__count{font-size:11px;font-weight:600;color:var(--film);background:color-mix(in srgb,var(--film) 16%,transparent);padding:1px 7px;border-radius:999px;margin-left:4px}.canvas-panel__body{padding:12px 14px;overflow:auto}.canvas-panel__empty{font-size:12px;line-height:1.7;color:var(--text-faint);padding:14px 4px}.canvas-panel__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.asset-card{display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:10px;background:var(--bg-elev);border:1px solid var(--line);border-radius:10px;color:var(--text);font-size:12px;cursor:pointer;text-align:left;transition:border-color .15s,transform .1s}.asset-card:hover{border-color:var(--film);transform:translateY(-2px)}.asset-card__thumb{width:100%;height:84px;border-radius:7px;overflow:hidden;display:grid;place-items:center;background:var(--bg-sunken);color:var(--text-dim)}.asset-card__thumb img{width:100%;height:100%;object-fit:cover}.asset-card__kind{font-size:10px;font-weight:700;letter-spacing:.3px;color:var(--info);background:color-mix(in srgb,var(--info) 16%,transparent);padding:1px 7px;border-radius:999px}.timeline-track{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px}.timeline-shot{position:relative;flex:none;width:132px;display:flex;flex-direction:column;gap:6px;padding:8px;background:var(--bg-elev);border:1px solid var(--line);border-radius:10px;color:var(--text);cursor:pointer;text-align:left;transition:border-color .15s,transform .1s}.timeline-shot:hover{border-color:var(--film);transform:translateY(-2px)}.timeline-shot[data-dragging=true]{opacity:.4}.timeline-shot[data-over=true]{border-color:var(--film);box-shadow:0 0 0 2px #ff6b1a66}.timeline-shot__idx{font-size:11px;font-weight:700;color:var(--film)}.timeline-shot__grip{position:absolute;top:6px;right:8px;font-size:13px;color:var(--text-faint);cursor:grab;line-height:1;-webkit-user-select:none;user-select:none}.timeline-shot__grip:active{cursor:grabbing}.timeline-shot__thumb{width:100%;height:74px;border-radius:7px;overflow:hidden;display:grid;place-items:center;background:var(--bg-sunken);color:var(--text-dim)}.timeline-shot__thumb img{width:100%;height:100%;object-fit:cover}.timeline-shot__label{font-size:11px;color:var(--text-dim)}.canvas-panel__hint{font-size:11.5px;color:var(--text-faint);line-height:1.6;padding:0 2px 4px}.panel-btn{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:4px 9px;border-radius:6px;border:1px solid var(--line);background:var(--bg-elev);color:var(--text-dim);cursor:pointer;white-space:nowrap;transition:border-color .12s,color .12s}.panel-btn:hover:not(:disabled){color:var(--film);border-color:var(--film)}.panel-btn:disabled{opacity:.4;cursor:default}.panel-btn--danger:hover:not(:disabled){color:var(--signal);border-color:var(--signal)}.frame-dialog-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;background:#0707098c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.frame-dialog{width:540px;max-width:92%;max-height:84%;background:var(--bg-panel);border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 24px 70px #0000008c;display:flex;flex-direction:column;overflow:hidden;animation:nodeMenuIn .18s var(--ease)}.frame-dialog__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);font-weight:600;font-size:13px}.frame-dialog__head svg{vertical-align:-2px;margin-right:2px}.frame-dialog__body{padding:14px;overflow:auto;display:flex;flex-direction:column;gap:12px}.frame-dialog__foot{display:flex;gap:8px;justify-content:flex-end;padding:12px 14px;border-top:1px solid var(--line)}.frame-file{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;border:1px dashed var(--line-strong);border-radius:10px;background:var(--bg-elev);color:var(--text);font-size:13px;cursor:pointer;transition:border-color .12s,color .12s}.frame-file:hover{border-color:var(--film);color:var(--film)}.frame-file--ghost{border-style:solid;color:var(--text-dim)}.frame-file--ghost:hover{color:var(--film)}.frame-note{font-size:12px;color:var(--text-faint);line-height:1.6}.frame-note--warn{color:var(--warn)}.frame-previews{display:flex;gap:10px}.frame-prev{position:relative;flex:1;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--bg-sunken);aspect-ratio:16/9;display:grid;place-items:center}.frame-prev img{width:100%;height:100%;object-fit:cover}.frame-prev__tag{position:absolute;bottom:4px;left:4px;font-size:10px;font-weight:700;color:#0a0a0e;background:#ffc24be6;padding:1px 6px;border-radius:4px}.react-flow__minimap-node[data-kind=group]{fill:#ffc24b}.kindcard__fields{display:flex;flex-wrap:wrap;gap:4px;padding:7px 11px 0;border-top:1px solid var(--line)}.kindcard__chip{font-size:10.5px;color:var(--text-dim);background:var(--bg-elev);border:1px solid var(--line);padding:1px 7px;border-radius:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kindcard__foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:7px 11px;border-top:1px solid var(--line);font-size:11px;color:var(--text-faint)}.kindcard__foot .snode__gen{font-size:11.5px}.insp-fields{margin:4px 0 14px}.insp-ctx{margin:4px 0 16px;padding:10px;border:1px solid var(--line);border-radius:var(--r-md);background:#4cc2ff0d}.insp-ctx--empty{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--text-faint);line-height:1.5}.insp-ctx--empty .eye{color:var(--info);font-size:14px}.insp-ctx__list{display:flex;flex-direction:column;gap:6px}.insp-ctx__item{display:grid;grid-template-columns:auto 1fr auto;gap:6px 8px;align-items:center;padding:7px 9px;border-radius:var(--r-sm);background:var(--bg-elev);border:1px solid var(--line)}.insp-ctx__item[data-kind=character]{border-left:3px solid #ff6b1a}.insp-ctx__item[data-kind=scene]{border-left:3px solid #4cc2ff}.insp-ctx__item[data-kind=music]{border-left:3px solid #3ddc84}.insp-ctx__item[data-kind=script]{border-left:3px solid #e056fd}.insp-ctx__item[data-kind=asset]{border-left:3px solid #b98bff}.insp-ctx__kind{font-size:10px;font-weight:700;color:var(--text-dim);background:var(--bg-panel);border:1px solid var(--line);border-radius:4px;padding:1px 5px}.insp-ctx__label{font-size:12px;color:var(--text);font-weight:600;min-width:0}.insp-ctx__rel{font-size:10px;padding:1px 6px;border-radius:4px;flex:none}.insp-ctx__rel[data-rel=sequence]{color:#ff6b1a;background:#ff6b1a1f}.insp-ctx__rel[data-rel=reference]{color:#4cc2ff;background:#4cc2ff1f}.insp-ctx__rel[data-rel=audio]{color:#3ddc84;background:#3ddc841f}.insp-ctx__summary{grid-column:1 / -1;font-size:11px;color:var(--text-faint);line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.eyebrow-btn{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--info);background:#4cc2ff1a;border:1px solid rgba(76,194,255,.28);border-radius:var(--r-sm);padding:3px 8px;cursor:pointer}.eyebrow-btn:hover{background:#4cc2ff2e}.seg{display:inline-flex;background:var(--bg-void);border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}.seg button{background:transparent;color:var(--text-dim);border:0;padding:7px 13px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:color .15s,background .15s}.seg button:hover{color:var(--text)}.seg button[data-active=true]{background:var(--film);color:#0a0a0a;font-weight:600}.stage-layout{flex:1;min-height:0;display:grid;grid-template-columns:208px 1fr 300px;grid-template-rows:1fr 190px;grid-template-areas:"palette viewport inspector" "timeline timeline timeline";background:var(--bg-void)}.stage-palette{grid-area:palette;border-right:1px solid var(--line);padding:14px 12px;overflow:auto;background:var(--bg-panel)}.stage-viewport{grid-area:viewport;position:relative;min-width:0;display:flex;flex-direction:column}.stage-inspector{grid-area:inspector;border-left:1px solid var(--line);background:var(--bg-panel);overflow:auto}.stage-timeline{grid-area:timeline;border-top:1px solid var(--line);background:var(--bg-panel);display:flex;flex-direction:column;min-height:0}.stage-palette__title{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin:16px 0 8px}.stage-palette__title:first-child{margin-top:0}.stage-add{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:10px 12px;margin-bottom:8px;background:var(--bg-void);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--text);cursor:pointer;font-size:13px;transition:border-color .15s,color .15s}.stage-add:hover{border-color:var(--film);color:var(--film)}.stage-palette__hint{font-size:12px;color:var(--text-dim);line-height:1.7;margin-top:14px}.stage-toolbar{position:absolute;top:12px;left:12px;z-index:5;display:flex;align-items:center;gap:8px}.stage-toolbar__count{color:var(--text-dim);font-size:12px;margin-left:4px}.stage-canvas-wrap{position:absolute;top:0;right:0;bottom:0;left:0}.stage-inspector__empty{padding:22px 16px;color:var(--text-dim);text-align:center;display:flex;flex-direction:column;align-items:center}.stage-inspector__empty .muted{font-size:12px;line-height:1.7;margin-top:6px}.stage-inspector__body{padding:16px}.stage-inspector__body .eyebrow{margin-bottom:14px}.stage-color{width:100%;height:36px;background:var(--bg-void);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;padding:2px}.stage-inspector__body input[type=range]{width:100%;accent-color:var(--film)}.stage-timeline__head{display:flex;align-items:baseline;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line)}.stage-timeline__strip{display:flex;gap:12px;padding:12px 14px;overflow-x:auto;flex:1;min-height:0;align-items:stretch}.shotcard{flex:none;width:154px;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--bg-void);display:flex;flex-direction:column}.shotcard__frame{position:relative;aspect-ratio:16/9;background:#000}.shotcard__frame img{width:100%;height:100%;object-fit:cover;display:block}.shotcard__tag{position:absolute;left:6px;bottom:6px;font-size:10px;padding:2px 7px;background:#0009;border:1px solid var(--line);border-radius:999px;color:var(--text)}.shotcard__name{font-size:12px;padding:7px 8px 4px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shotcard__actions{display:flex;gap:3px;padding:0 6px 8px}.iconbtn-sm{flex:1;display:grid;place-items:center;height:28px;background:var(--bg-panel);border:1px solid var(--line);border-radius:6px;color:var(--text-dim);cursor:pointer;transition:color .15s,border-color .15s}.iconbtn-sm:hover{color:var(--film);border-color:var(--film)}.iconbtn-sm.danger:hover{color:var(--signal);border-color:var(--signal)}.iconbtn-sm:disabled{opacity:.4;cursor:default}.storyboard-strip{position:absolute;left:50%;transform:translate(-50%);bottom:12px;width:min(72%,720px);background:#0c0c10db;border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:6}.storyboard-strip__head{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin-bottom:6px}.storyboard-strip__row{display:flex;gap:8px;overflow-x:auto}.storyboard-chip{flex:none;width:86px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--bg-void);cursor:pointer;transition:border-color .15s}.storyboard-chip:hover{border-color:var(--film)}.storyboard-chip img{width:100%;height:52px;object-fit:cover;display:block}.storyboard-chip__ph{display:grid;place-items:center;height:52px;color:var(--text-dim)}.storyboard-chip__label{display:block;font-size:10px;padding:4px 5px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 880px){.stage-layout{grid-template-columns:1fr;grid-template-rows:auto 46vh auto 170px;grid-template-areas:"palette" "viewport" "inspector" "timeline"}}.login-epic{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;background:var(--bg-void);overflow:hidden}.login-epic__bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(80% 60% at 22% 18%,rgba(255,107,26,.16),transparent 60%),radial-gradient(70% 60% at 100% 100%,rgba(255,59,48,.12),transparent 55%),linear-gradient(135deg,#0c0a10,#070709 55%,#0a0a0e)}.login-epic__grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(120% 100% at 50% 40%,#000 40%,transparent 100%);mask-image:radial-gradient(120% 100% at 50% 40%,#000 40%,transparent 100%)}.login-epic__back{position:absolute;top:22px;left:24px;z-index:5;display:inline-flex;align-items:center;gap:6px;background:#0f0f1599;border:1px solid var(--line);color:var(--text-dim);padding:8px 13px;border-radius:var(--r-md);font-size:13px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .16s var(--ease)}.login-epic__back:hover{color:var(--film);border-color:#ff6b1a66}.login-epic__split{position:relative;z-index:2;width:min(960px,92vw);max-height:88vh;display:grid;grid-template-columns:1.05fr .95fr;background:#0c0c11b8;border:1px solid var(--line-strong);border-radius:var(--r-xl);box-shadow:var(--sh-3);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);overflow:hidden}.login-epic__brand{position:relative;padding:40px 38px;display:flex;flex-direction:column;background:linear-gradient(160deg,rgba(255,107,26,.1),transparent 60%),linear-gradient(180deg,rgba(255,255,255,.02),transparent);border-right:1px solid var(--line)}.login-epic__logo{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:var(--grad-film);color:var(--text-on-film);box-shadow:var(--glow-film)}.login-epic__eyebrow{margin-top:22px;font-size:10px;letter-spacing:.24em;color:var(--film);text-transform:uppercase}.login-epic__tagline{margin:12px 0 0;font-size:40px;line-height:1.08;letter-spacing:-.02em;font-weight:800;background:linear-gradient(180deg,#fff,#c7c7d2);-webkit-background-clip:text;background-clip:text;color:transparent}.login-epic__lede{margin:18px 0 0;color:var(--text-dim);font-size:13.5px;line-height:1.7;max-width:320px}.login-epic__feats{list-style:none;margin:30px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}.login-epic__feats li{display:flex;align-items:center;gap:12px}.login-epic__feat-ic{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:9px;background:var(--bg-elev);color:var(--film);border:1px solid var(--line)}.login-epic__feats b{display:block;font-size:13.5px}.login-epic__feats span{font-size:11.5px;color:var(--text-faint)}.login-epic__brand-foot{margin-top:auto;padding-top:26px;font-size:11px;color:var(--text-faint)}.login-epic__panel{padding:40px 38px;display:flex;flex-direction:column;justify-content:center}.login-epic__card{width:100%}.login-epic__card h2{margin:8px 0 4px;font-size:24px;letter-spacing:-.01em}.login-epic__sub{margin:0 0 24px;color:var(--text-dim);font-size:13px}.login-epic__card .field{margin-bottom:16px}.login-epic__row{display:flex;align-items:center;justify-content:space-between;margin:-4px 0 14px}.login-epic__remember{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text-dim);cursor:pointer}.login-epic__remember input{accent-color:var(--film);width:15px;height:15px}.login-epic__link{font-size:12.5px;color:var(--film);cursor:pointer}.login-epic__link:hover{text-decoration:underline}.login-epic__err{margin-bottom:12px;padding:9px 12px;border-radius:var(--r-sm);background:#ff3b301f;border:1px solid rgba(255,59,48,.35);color:var(--signal);font-size:12.5px}.login-epic__divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--text-faint);font-size:11px}.login-epic__divider:before,.login-epic__divider:after{content:"";flex:1;height:1px;background:var(--line)}.login-epic__foot{margin-top:18px;text-align:center;font-size:12.5px;color:var(--text-faint)}.login-epic__copy{position:absolute;bottom:16px;right:38px;font-size:10.5px;color:var(--text-faint)}@media (max-width: 760px){.login-epic__split{grid-template-columns:1fr;max-height:92vh;overflow:auto}.login-epic__brand{display:none}.login-epic__panel{padding:34px 26px}.login-epic__copy{display:none}}.agents{display:grid;grid-template-columns:280px 1fr;height:100%;overflow:hidden}.agents__side{border-right:1px solid var(--line);background:var(--bg-panel);display:flex;flex-direction:column;min-height:0}.agents__side-head{display:flex;align-items:center;gap:8px;padding:var(--sp-4) var(--sp-4);font-weight:700;border-bottom:1px solid var(--line);color:var(--text)}.agents__side-head svg{color:var(--film)}.agents__count{margin-left:auto;font-size:11px;color:var(--text-dim);background:var(--bg-elev);border-radius:999px;padding:1px 8px}.agents__list{overflow-y:auto;padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-4)}.agents__group-title{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin:4px 4px 6px}.agent-item{width:100%;display:flex;gap:10px;align-items:flex-start;text-align:left;padding:10px;border-radius:var(--r-lg);border:1px solid transparent;background:transparent;cursor:pointer;transition:all .16s var(--ease);margin-bottom:4px}.agent-item:hover{background:var(--bg-elev)}.agent-item[data-active=true]{background:color-mix(in srgb,var(--film) 14%,transparent);border-color:color-mix(in srgb,var(--film) 45%,transparent)}.agent-item__icon{width:30px;height:30px;flex:none;border-radius:9px;display:grid;place-items:center;background:var(--bg-elev);color:var(--film)}.agent-item[data-active=true] .agent-item__icon{background:color-mix(in srgb,var(--film) 22%,transparent)}.agent-item__body{display:flex;flex-direction:column;gap:2px;min-width:0}.agent-item__name{font-size:13px;font-weight:600;color:var(--text)}.agent-item__tag{font-size:11px;color:var(--text-dim);line-height:1.35}.agents__main{min-width:0;overflow-y:auto;padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-5);position:relative}.agents__head{display:flex;align-items:center;gap:12px}.agents__head-icon{width:40px;height:40px;border-radius:12px;flex:none;display:grid;place-items:center;background:var(--bg-elev);color:var(--film)}.agents__head h2{margin:0;font-size:18px}.agents__head p{margin:2px 0 0;font-size:13px;color:var(--text-dim)}.agents__badge{margin-left:auto;font-size:11px;color:var(--film);border:1px solid color-mix(in srgb,var(--film) 40%,transparent);border-radius:999px;padding:2px 10px}.agents__io{max-width:760px;width:100%;display:flex;flex-direction:column;gap:var(--sp-3)}.agents__label{font-size:13px;font-weight:600;color:var(--text)}.agents__input{width:100%;resize:vertical;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--r-lg);color:var(--text);padding:var(--sp-4);font:inherit;font-size:14px;line-height:1.6}.agents__input:focus{outline:none;border-color:var(--film);box-shadow:var(--glow-film)}.agents__actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.agents__hint{font-size:12px;color:var(--text-dim)}.agents__result{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg-panel);overflow:hidden}.agents__result-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line);font-size:13px;font-weight:600}.agents__result-btns{display:flex;align-items:center;gap:8px}.agents__output{margin:0;padding:var(--sp-4);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.7;white-space:pre-wrap;word-break:break-word;color:var(--text);max-height:420px;overflow-y:auto}.agents__toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--bg-panel);border:1px solid var(--line-strong);color:var(--text);padding:10px 18px;border-radius:999px;font-size:13px;box-shadow:var(--sh-3);cursor:pointer;z-index:50}@media (max-width: 860px){.agents{grid-template-columns:1fr;grid-template-rows:auto 1fr}.agents__side{border-right:none;border-bottom:1px solid var(--line);max-height:38vh}.agents__list{flex-direction:row;flex-wrap:nowrap;overflow-x:auto}.agents__group{flex:none;min-width:220px}}.cine-base{margin-bottom:14px}.cine-base__toggle{width:100%;display:flex;align-items:center;gap:8px;background:linear-gradient(90deg,#a855f71f,#22d3ee14);border:1px solid var(--line);border-radius:var(--r-md);padding:9px 12px;color:var(--text);cursor:pointer;font-size:13px;font-weight:600}.cine-base__chev{margin-left:auto;opacity:.6}.cine-base__panel{margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-panel);font-size:12px}.cine-base__row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.cine-base__title{color:var(--text-dim);font-weight:600}.cine-base__list{list-style:decimal inside;margin:0;padding:0;display:grid;gap:4px}.cine-base__list li{display:flex;align-items:center;gap:8px}.cine-base__list code{flex:1;font-family:var(--mono);font-size:11px;color:var(--film);background:#ffffff08;padding:3px 6px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cine-base__copy{flex:none;font-size:10px;padding:2px 6px;border:1px solid var(--line);background:transparent;color:var(--text-dim);border-radius:4px;cursor:pointer}.cine-base__copy:hover{color:var(--film);border-color:var(--film)}.cine-base__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.cine-form__field{margin-bottom:8px}.cine-form__field label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:3px}.cine-form__field label em{font-style:normal;color:var(--film);opacity:.8;margin-left:4px}.cine-form__opts{display:flex;flex-direction:column;gap:8px;margin:8px 0 4px}.cine-form__check{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-dim)}.cine-form__cons{display:flex;flex-wrap:wrap;gap:6px}.cine-chip{font-size:11px;padding:4px 9px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--text-dim);cursor:pointer;transition:all .15s var(--ease)}.cine-chip:hover{color:var(--text);border-color:var(--film)}.cine-chip[data-active=true]{background:var(--film);border-color:var(--film);color:#fff}.ex-panel{margin-top:8px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-panel)}.ex-note{font-size:12px;color:var(--text-dim);line-height:1.6;margin:0 0 10px}.ex-note b{color:var(--film)}.ex-card{border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:8px;overflow:hidden}.ex-card:last-child{margin-bottom:0}.ex-card__head{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer;background:#ffffff05}.ex-card__head:hover{background:#a855f714}.ex-card__input{font-size:13px;font-weight:600;color:var(--text)}.ex-card__chev{margin-left:auto;opacity:.6;font-size:11px}.ex-card__tags{display:flex;flex-wrap:wrap;gap:5px;padding:0 10px 8px}.ex-card__out{margin:0;padding:10px;font-family:var(--mono);font-size:11px;line-height:1.7;color:var(--film);background:#00000040;white-space:pre-wrap;word-break:break-word;border-top:1px dashed var(--line);max-height:320px;overflow:auto}.agents__fewbadge{font-size:11px;padding:3px 9px;border-radius:999px;background:#22d3ee24;border:1px solid rgba(34,211,238,.4);color:#5eead4;font-weight:600}.char-lib{display:flex;flex-direction:column;height:100%;background:var(--bg-deep);color:var(--text);overflow:hidden}.char-lib__head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}.char-lib__head h2{font-size:16px;margin:0;letter-spacing:.5px;display:flex;align-items:center;gap:7px}.char-lib__head .spacer{flex:1}.char-lib__close{background:var(--bg-panel);border:1px solid var(--line);border-radius:8px;color:var(--text-dim);width:32px;height:32px;cursor:pointer}.char-lib__close:hover{color:var(--text);border-color:var(--film)}.char-lib__divider{height:1px;background:var(--line)}.char-detail{padding:16px 18px;overflow-y:auto}.char-detail--empty{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-dim);gap:10px;min-height:220px}.char-detail__header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.char-detail__name{font-size:19px;margin:0}.char-detail__tags{display:flex;flex-wrap:wrap;gap:6px}.char-detail__desc{font-size:13px;color:var(--text-dim);line-height:1.65;margin:14px 0}.char-detail__actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.char-tag{font-size:11px;padding:3px 10px;border-radius:12px;border:1px solid var(--line);white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.char-tag__x{background:none;border:none;color:inherit;cursor:pointer;font-size:13px;line-height:1;padding:0;opacity:.6}.char-tag__x:hover{opacity:1}.char-browser{flex:1;display:flex;flex-direction:column;overflow:hidden;border-top:1px solid var(--line)}.char-browser__bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid var(--line)}.select--sm{background:var(--bg-panel);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:6px 10px;font-size:12px}.char-browser__recent{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text-dim);cursor:pointer}.char-browser__list{flex:1;overflow-x:auto;overflow-y:hidden;display:flex;gap:12px;padding:14px 18px;scroll-snap-type:x mandatory}.char-browser__empty{color:var(--text-dim);font-size:13px;padding:20px}.char-card{flex-shrink:0;width:104px;scroll-snap-align:start;background:var(--bg-panel);border:1px solid var(--line);border-radius:12px;padding:8px;cursor:pointer;display:flex;flex-direction:column;gap:7px;transition:all .15s}.char-card:hover{border-color:var(--film);transform:translateY(-3px)}.char-card--active{border-color:var(--film);box-shadow:0 0 0 2px var(--film)}.char-card__img{width:100%;aspect-ratio:3/4;border-radius:8px;overflow:hidden;background:var(--bg-deep);display:flex;align-items:center;justify-content:center}.char-card__img img{width:100%;height:100%;object-fit:cover}.char-card__avatar{color:var(--text-dim)}.char-card__name{font-size:12px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.char-toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);background:var(--film);color:#fff;padding:9px 18px;border-radius:10px;font-size:13px;z-index:50;box-shadow:0 8px 24px #0006}.char-gallery{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1.4fr 1fr;gap:8px;margin:6px 0 4px}.char-gallery__slot{border-radius:12px;overflow:hidden;background:var(--bg-panel);border:1px solid var(--line)}.char-gallery__slot img{width:100%;height:100%;object-fit:cover;display:block}.char-gallery__slot--body{grid-row:1 / span 2}.char-gallery__slot--portrait{grid-column:2;grid-row:1}.char-gallery__slot--grid{grid-column:2;grid-row:2}.char-gallery__slot--side,.char-gallery__slot--expr{display:none}.char-gallery--placeholder .char-gallery__placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--text-dim);font-size:11px}.char-gallery__grid3{width:100%;height:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:5px}.char-gallery__grid-cell{background:var(--bg-deep);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--text-dim)}.char-gallery__side-views{display:flex;height:100%}.char-gallery__side-cell{flex:1;background:var(--bg-deep);margin:2px;border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--text-dim)}.char-gallery__expr-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:5px;height:100%}.char-gallery__expr-cell{background:var(--bg-deep);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--text-dim)}@media (max-width: 720px){.char-gallery{grid-template-columns:1fr 1fr}.char-gallery__slot--body{grid-row:auto}}.char-states{margin-top:12px}.char-states__label,.char-geo__label{font-size:11px;color:var(--text-dim);letter-spacing:.04em;margin-bottom:6px;text-transform:uppercase}.char-states__tabs{display:flex;flex-wrap:wrap;gap:6px}.char-state-tab{font-size:12px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--text-dim);cursor:pointer;transition:all .15s var(--ease)}.char-state-tab:hover{color:var(--text);border-color:var(--film)}.char-state-tab[data-active=true]{background:var(--film);border-color:var(--film);color:#fff}.char-geo{margin-top:12px}.char-geo__text{margin:0;padding:10px 12px;border:1px dashed color-mix(in srgb,var(--film) 40%,transparent);border-radius:var(--r-md);background:#a855f70f;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.6;white-space:pre-wrap;color:var(--text)}.char-note{margin-top:10px;padding:8px 12px;border-radius:var(--r-md);background:#22d3ee12;border:1px solid color-mix(in srgb,var(--info) 35%,transparent);font-size:12px;color:var(--text-dim)}
