@import url('data:text/css,');
:root{--bg:#f4f3ef;--panel:#fcfbf8;--line:#e5e3dc;--ink:#242b29;--muted:#8b9089;--accent:#b75838;--pale:#f5e7dd;--green:#587161;--blue:#597c98;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-size:12px;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:transparent;color:inherit;border-radius:6px;padding:8px 11px;transition:background .15s}button:hover{background:#eeeae3}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:#98462b}input,select,textarea{border:1px solid var(--line);border-radius:5px;background:#fffefa;padding:8px;color:var(--ink);min-width:0}input:focus,select:focus,textarea:focus{outline:1px solid var(--accent);border-color:var(--accent)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=checkbox]{accent-color:var(--accent)}input[type=range]{padding:0;accent-color:var(--accent);cursor:pointer}small{font-size:9px;letter-spacing:1.8px;color:var(--muted)}h1{font-size:22px;font-weight:550;margin:7px 0}h2{font-size:18px;font-weight:550}p{line-height:1.8}kbd{font-size:9px;opacity:.45;margin-left:10px}.app-header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 25px;border-bottom:1px solid var(--line);background:var(--panel);gap:20px}.brand{display:flex;gap:12px;align-items:center;font-size:17px;font-weight:600;flex-shrink:0}.brand-mark{background:var(--ink);color:#f4e8d5;width:36px;height:36px;border-radius:8px;display:grid;place-items:center;font-size:21px;font-family:serif}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:4px}.version{font-size:8px;letter-spacing:1px;color:var(--accent);border:1px solid #dbb39e;border-radius:3px;padding:4px;margin-left:12px}.project-title{display:flex;align-items:center;gap:8px;font-size:12px}.live-dot{display:inline-block;width:6px;height:6px;background:#718373;border-radius:50%}#saveState{margin-left:12px;color:var(--muted);font-size:10px}.header-actions{display:flex;gap:8px}.workspace{height:calc(100dvh - 76px);display:grid;grid-template-columns:218px minmax(450px,1fr) 300px}.sidebar{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;background:#f8f7f3}.side-heading{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 10px;font-size:11px;color:#747a72}.side-heading button{border:0;padding:2px 5px}.side-heading b{font-size:9px;margin-left:5px;background:#eae9e2;padding:2px 5px;border-radius:4px;font-weight:normal}.chapter-card{margin:0 12px;padding:16px;background:#ebece5;border:1px solid #dedfd4;border-radius:7px;display:flex;flex-direction:column;gap:9px}.chapter-card strong{font-size:13px;font-weight:550}.chapter-card span{font-size:10px;color:#81867b}.sidebar-tools{display:flex;gap:5px;margin:12px 12px 0}.sidebar-tools button{font-size:10px;flex:1;padding:7px 4px}.search{margin:0 12px 10px;width:calc(100% - 24px);background:transparent;font-size:11px}.node-list{overflow:auto;flex:1;padding:0 8px}.node-item{width:100%;border:0;display:flex;align-items:center;text-align:left;gap:9px;padding:12px 9px;margin:2px 0;color:#737970;font-size:11px}.node-item.active{background:#e9e9df;color:#273d2e}.node-icon{border:1px solid #b9c9bc;border-radius:5px;width:25px;height:25px;display:grid;place-items:center;color:var(--green);background:#f3f6ed;flex-shrink:0}.node-icon.choiceNodes{background:#fbefe5;color:var(--accent);border-color:#e3c5af}.node-icon.jumpNodes{background:#eaf0f6;color:var(--blue)}.node-text{overflow:hidden;flex:1}.node-text span{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.node-text small{display:block;font-size:8px;letter-spacing:.2px;margin-top:5px}.entry-mark{color:var(--accent);font-size:9px}.sidebar-bottom{border-top:1px solid var(--line);padding:12px;font-size:9px;color:var(--muted);display:flex;gap:7px;align-items:center}.sidebar-bottom button{margin-left:auto;border-radius:50%;padding:2px 6px}.main{min-height:0;display:flex;flex-direction:column;overflow:hidden}.main-toolbar{height:53px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:0 22px;flex-shrink:0;gap:8px}.tabs{display:flex;gap:19px;height:100%}.tabs button{border:0;border-radius:0;padding:0 0;white-space:nowrap;font-size:11px;color:var(--muted);border-bottom:2px solid transparent}.tabs button.active{color:var(--ink);border-bottom-color:var(--ink)}.toolbar-actions{display:flex;align-items:center;gap:5px}.toolbar-actions button{padding:5px 6px;border:0;font-size:11px}.separator{height:16px;width:1px;background:var(--line);margin:0 4px}#issueCount{font-size:9px;color:var(--accent)}.panel{display:none;min-height:0;overflow:auto;flex:1}.panel.active{display:block}#previewPanel{padding:22px 28px 12px}.stage-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.stage-heading h1{font-size:19px}.mode-switch{display:flex;border:1px solid var(--line);padding:3px;border-radius:6px}.mode-switch button{border:0;font-size:10px;padding:7px 9px}.mode-switch button.active{background:var(--ink);color:white}.stage-area{display:flex;align-items:center;justify-content:center;background:#e8e8e1;border-radius:9px;padding:12px;background-image:radial-gradient(#d6d7ce .7px,transparent .7px);background-size:12px 12px;min-height:210px}.stage{position:relative;background:#161b19;aspect-ratio:16/9;width:100%;max-height:40vh;border-radius:6px;overflow:hidden;box-shadow:0 7px 18px #18221824}.stage video,.stage>img{width:100%;height:100%;object-fit:contain;display:block}.stage>img[hidden]{display:none}.stage-corner{position:absolute;top:12px;left:14px;font-size:8px;letter-spacing:2px;color:#ffffff70;pointer-events:none}#stageEmpty{position:absolute;inset:0;display:grid;place-items:center;color:#8d9b91}#stageEmpty[hidden]{display:none}#overlayLayer{position:absolute;inset:0;pointer-events:none}.overlay{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;padding:0;border:0;background:transparent;min-width:15px;min-height:15px;display:flex;align-items:center;justify-content:center}.overlay img{height:100%;width:100%;object-fit:contain;pointer-events:none}.overlay.editing{outline:1px dashed #f9e5a4;cursor:move;background:#ecd28c16}.overlay.selected{outline:2px solid #f6d59c}.overlay .overlay-label{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);font-size:10px;white-space:nowrap;color:#fff;background:#1c292ad9;border-radius:3px;padding:3px 7px}.overlay.text-choice{background:#fcf8ebed;border:1px solid #cbbfa7;color:#32352a;border-radius:5px;font-size:12px;box-shadow:0 2px 9px #0003}.overlay:hover{background:#fbdf9940}.resize-handle{position:absolute;right:-4px;bottom:-4px;width:9px;height:9px;background:#f6d59c;cursor:nwse-resize}.transport{display:flex;gap:13px;align-items:center;padding:14px 0;color:#83887e;font-size:10px}.transport input{flex:1;width:30px}.transport button{font-size:10px;padding:4px 7px;border:0}.transport .play-button{border:1px solid #d1d5c7;background:#e5e8dc;color:#354934;border-radius:50%;height:30px;width:30px;font-size:12px}#timeLabel{font-variant-numeric:tabular-nums;white-space:nowrap}.timeline{border:1px solid var(--line);border-radius:7px;background:#faf9f5;padding:14px;margin-top:2px}.timeline-head{display:flex;align-items:center;gap:10px;font-size:10px}.timeline-head strong{font-size:11px;font-weight:550}.timeline-head span{font-size:9px;color:var(--muted)}.timeline-head button{margin-left:auto;font-size:9px;padding:4px 6px}.track{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:9px}.track-name{width:90px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.track-bed{position:relative;flex:1;height:26px;border-left:1px solid #d9d7c9;background:repeating-linear-gradient(90deg,transparent,transparent calc(10% - 1px),#e8e6dd calc(10% - 1px),#e8e6dd 10%)}.track-bar{position:absolute;top:2px;height:22px;border:1px solid #d8b69c;background:#f0e2d2;color:#9b6542;border-radius:4px;font-size:9px;white-space:nowrap;min-width:25px;cursor:ew-resize;padding:3px 8px;overflow:hidden}.track-bar.active{background:#dfbea3;color:#653e26}.route-strip{margin-top:20px}#routeCards{display:flex;gap:10px;margin-top:10px;overflow:auto;padding-bottom:5px}.route-card{flex:1;min-width:120px;padding:13px;background:#faf9f5;border:1px solid var(--line);text-align:left;font-size:11px;display:flex;gap:10px;align-items:center}.route-card small{letter-spacing:0;font-size:9px;display:block;margin-top:4px}.main-footer{height:34px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-top:1px solid var(--line);color:var(--muted);font-size:9px;gap:5px}.main-footer span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main-footer button{padding:3px 5px;font-size:9px;border:0;white-space:nowrap}.inspector{background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}.inspector-heading{padding:20px 18px;height:54px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:12px}.inspector-heading strong{font-weight:550}#typeBadge{font-size:9px;background:#e8ece1;color:#607653;padding:3px 7px;border-radius:3px}#inspectorBody{flex:1;overflow:auto;padding:0 18px 20px}.field-section{padding:17px 0;border-bottom:1px solid var(--line)}.field-section h3{font-size:11px;font-weight:550;margin:0 0 14px;display:flex;justify-content:space-between}.field-section h3 span{color:var(--muted);font-size:9px;font-weight:normal}.field{display:flex;flex-direction:column;gap:7px;margin:11px 0;font-size:10px}.field>span{color:#82877c}.field input,.field select,.field textarea{width:100%;font-size:11px}.field textarea{resize:vertical;min-height:55px;line-height:1.6}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check-field{display:flex;justify-content:space-between;align-items:center;font-size:10px;margin:13px 0;gap:10px}.check-field input{width:14px;height:14px}.hint{font-size:10px;color:var(--muted);line-height:1.8}.node-id{font-family:monospace;font-size:9px;word-break:break-all;color:var(--muted);margin-top:9px}.connection{display:flex;align-items:center;gap:5px;margin-bottom:7px}.connection button:first-child{flex:1;text-align:left;font-size:10px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.connection button:last-child{border:0;color:#ad7b65;padding:5px}.wide{width:100%;font-size:10px}.inspector-footer{padding:12px;display:flex;gap:4px;border-top:1px solid var(--line)}.inspector-footer button{font-size:10px;padding:6px}.inspector-footer button:first-child{margin-right:auto}.graph-tools{height:50px;display:flex;align-items:center;gap:8px;padding:12px 18px;font-size:9px;color:var(--muted)}.graph-tools span:first-child{flex:1}.graph-tools button{padding:5px 8px;font-size:9px}#graphPanel.active{display:flex;flex-direction:column}#graphViewport{position:relative;flex:1;overflow:auto;background-image:radial-gradient(#cccfc3 1px,transparent 1px);background-size:20px 20px}#graphWorld{position:relative;transform-origin:0 0;width:1400px;height:900px}#graphEdges{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.edge{fill:none;stroke:#b8bfb0;stroke-width:2}.edge.selected{stroke:var(--accent);stroke-width:2.5}.graph-node{position:absolute;width:200px;min-height:92px;border:1px solid #d2d7ca;background:#fafbf5;border-radius:7px;box-shadow:0 4px 12px #28352008;padding:14px;cursor:grab;user-select:none}.graph-node.active{border:2px solid var(--accent);box-shadow:0 0 0 3px #b7583810}.graph-node.choiceNodes{background:#fcf5ed;border-color:#e1cbb6}.graph-node small{font-size:8px;letter-spacing:1px}.graph-node strong{font-size:11px;display:block;margin:10px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.graph-node .port{position:absolute;border-radius:50%;width:12px;height:12px;min-width:0;padding:0;background:#fff;border:2px solid #79917a;top:40px;cursor:crosshair}.graph-node .port.in{left:-7px}.graph-node .port.out{right:-7px}.graph-node .port:hover{background:var(--accent)}#graphHint{position:sticky;bottom:16px;margin:0 auto;padding:10px 20px;background:#293b2c;color:white;border-radius:5px;width:max-content}.asset-heading{display:flex;align-items:center;justify-content:space-between;padding:28px}.asset-heading p{font-size:11px;color:var(--muted)}#assetsPanel>.search{margin-left:28px;width:calc(100% - 56px)}#assetGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:14px;padding:10px 28px 30px}.asset-card{border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--panel)}.asset-cover{height:100px;background:#e4e6dc;display:flex;justify-content:center;align-items:center;color:#8b947f;font-size:24px;overflow:hidden}.asset-cover img{width:100%;height:100%;object-fit:contain}.asset-card .asset-info{padding:11px}.asset-card strong{font-size:10px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.asset-card small{font-size:8px;letter-spacing:0;display:block;margin:7px 0}.asset-card button{font-size:9px;padding:4px 7px;width:100%}.asset-card.missing{opacity:.5}.empty{padding:24px;color:var(--muted);font-size:11px;line-height:1.8}.ad-gate{position:absolute;inset:0;background:#17201deb;z-index:100;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;gap:16px;padding:25px;text-align:center}.ad-gate[hidden]{display:none}.ad-gate button{background:#f2eee1;color:#222}.ad-gate small{color:#adbbac}.ad-gate h2{margin:0}.ad-gate p{font-size:11px;color:#b6c0b4}.ad-gate .actions{display:flex;gap:8px}.runtime-caption{position:absolute;bottom:6%;left:8%;right:8%;color:white;text-align:center;background:#18201dba;padding:10px;border-radius:5px;pointer-events:none}dialog{border:1px solid var(--line);border-radius:12px;background:var(--panel);width:min(680px,90vw);max-height:85vh;padding:0;color:var(--ink);box-shadow:0 30px 100px #16231833}dialog::backdrop{background:#18261e50;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 24px}.dialog-head button{font-size:24px;border:0;padding:0 7px}.dialog-head h2{font-size:16px}#dialogBody{padding:22px 24px;overflow:auto;max-height:calc(85vh - 70px)}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.menu-tile{padding:20px;text-align:left;font-size:14px}.menu-tile small{display:block;letter-spacing:0;font-size:11px;margin-top:12px;line-height:1.8}.json-editor{width:100%;height:360px;font:11px/1.7 Consolas,monospace}.issue{padding:11px 12px;border:1px solid var(--line);border-left:3px solid #b58c56;border-radius:4px;margin:8px 0;font-size:11px;line-height:1.7;cursor:pointer}.issue.error{border-left-color:#c65040}.issue.success{border-left-color:#5b8560}.issue small{display:block;font-size:9px;letter-spacing:0}.log-entry{font:10px/1.8 Consolas,"Microsoft YaHei",monospace;padding:7px;border-bottom:1px solid var(--line)}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#263a2e;color:#f6f5ed;padding:12px 22px;border-radius:7px;box-shadow:0 5px 25px #0002;z-index:1000;opacity:0;pointer-events:none;transition:.2s;font-size:12px}#toast.visible{opacity:1;transform:translate(-50%,0)}.warning{background:#f9eee2;padding:12px;border-radius:5px;color:#98623a;font-size:11px;line-height:1.8}.success-text{color:#5d7958}.asset-preview{max-width:100%;max-height:45vh;display:block;margin:auto}.project-name-edit{width:100%;font-size:16px;margin-bottom:15px}@media(min-width:1550px){.workspace{grid-template-columns:240px minmax(450px,1fr) 330px}#previewPanel{padding:24px 45px}.stage{max-height:43vh}.stage-area{padding:18px}}@media(max-width:1150px){.workspace{grid-template-columns:180px minmax(380px,1fr) 260px}.app-header{padding:0 16px}.version{display:none}#saveState{display:none}.main-toolbar{padding:0 14px}.tabs{gap:12px}#previewPanel{padding:18px}.transport{gap:6px}.project-title{max-width:200px}.mode-switch button{padding:6px}.stage-heading h1{font-size:16px}}@media(max-width:900px){.workspace{grid-template-columns:150px minmax(340px,1fr) 230px;min-width:760px}.app-header{min-width:760px}.header-actions kbd{display:none}.project-title{font-size:10px}.brand{font-size:14px}.main-toolbar{padding:0 10px}.tabs{gap:9px}.toolbar-actions{gap:0}.stage-heading{gap:6px}.stage-heading h1{font-size:14px}.timeline-head span{display:none}}
.mobile-only{display:none}
@media(max-width:900px){.mobile-only{display:inline-block}.app-header{min-width:0;padding:0 12px;height:64px;gap:8px}.workspace{height:calc(100dvh - 64px);display:block;min-width:0}.main{height:100%;width:100%}.project-title{display:none}.header-actions{gap:5px}.header-actions button{font-size:10px;padding:7px}.brand{font-size:12px;gap:6px}.brand-mark{width:30px;height:30px;font-size:18px}.brand small{font-size:6px;letter-spacing:1px}.sidebar,.inspector{position:fixed;top:64px;bottom:0;z-index:60;width:280px;box-shadow:0 8px 35px #24302230;display:none}.sidebar{left:0}.inspector{right:0;width:310px}.nodes-open .sidebar,.props-open .inspector{display:flex}.stage-heading h1{font-size:17px}.stage-area{min-height:200px;padding:12px}.stage{max-height:40vh}.main-toolbar{padding:0 15px}.tabs{gap:16px}#previewPanel{padding:20px}.transport{gap:9px}.transport #timeLabel{font-size:9px}.timeline-head span{display:none}.asset-heading{padding:20px}.asset-heading h1{font-size:19px}.asset-heading p{font-size:10px}.graph-tools span:first-child{max-width:150px;line-height:1.6}.main-footer{padding:0 10px}}
@media(max-width:440px){.brand>div{display:none}.header-actions{gap:4px}.header-actions button{padding:7px 6px}.main-toolbar{padding:0 10px}.tabs{gap:10px;font-size:10px}.toolbar-actions #redoBtn{display:none}.stage-heading{align-items:flex-start}.stage-heading h1{font-size:14px}#previewPanel{padding:14px}.transport{gap:3px}.transport button{padding:4px}.mode-switch button{font-size:9px}.track-name{width:70px}}
.rule-row{display:grid;grid-template-columns:minmax(90px,1.1fr) minmax(100px,1fr) minmax(80px,1fr) 25px;gap:10px;align-items:center;border-bottom:1px solid var(--line)}.rule-row button{border:0;padding:5px;margin-top:18px}.ad-gate .actions{flex-wrap:wrap;justify-content:center}.ad-gate h2{font-size:15px;line-height:1.7}.ad-gate button{font-size:10px}
