:root{--bg:#323232;--bg2:#2B2B2B;--bg3:#3A3A3A;--pb:#252525;--gap:#1E1E1E;--line:#262626;--line2:#444;--txt:#D6D6D6;--txt2:#9C9C9C;--txt3:#6E6E6E;--blue:#518EE9;--sel:#41608E;--classic:#775E9E;--shape:#946C42;--motion:#8A7A2C;--white:#F2F2F2;--font:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Segoe UI",Roboto,"Noto Sans KR",sans-serif;--mono:"SF Mono",Menlo,ui-monospace,monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font:12px/1.4 var(--font);color:var(--txt);background:var(--gap);-webkit-font-smoothing:antialiased;overflow:hidden;user-select:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}input,select{font:inherit;color:inherit}.app{display:flex;flex-direction:column;height:100%}.head{display:flex;align-items:center;height:39px;padding:0 10px;background:var(--bg);gap:10px;flex:none;border-bottom:1px solid var(--gap)}.head .home{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px}.head .home:hover{background:var(--bg3)}.head .doctab{height:39px;display:inline-flex;align-items:center;padding:0 12px;border-bottom:2px solid var(--white);color:var(--white);font-size:12.5px}.head .sp{flex:1}.head .ic{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;color:var(--txt2)}.head .ic:hover{background:var(--bg3);color:var(--txt)}.head .ws{display:inline-flex;align-items:center;gap:4px;padding:0 8px;height:26px;border-radius:4px}.head .ws:hover{background:var(--bg3)}.menubar{display:flex;align-items:center;height:22px;padding:0 6px;background:var(--bg);gap:2px;flex:none}.menubar .mb{padding:2px 8px;border-radius:3px}.menubar .mb:hover,.menubar .mb.open{background:var(--bg3)}.menu{position:fixed;z-index:1000;min-width:230px;background:#2a2a2a;border:1px solid #444;border-radius:4px;box-shadow:0 8px 24px #00000080;padding:4px 0;color:var(--txt)}.menu .mi{display:flex;align-items:center;gap:8px;padding:4px 14px 4px 24px;white-space:nowrap;cursor:default;position:relative}.menu .mi:hover{background:#265bc1;color:#fff}.menu .mi.dis{color:var(--txt3)}.menu .mi.dis:hover{background:transparent}.menu .mi .k{margin-left:auto;color:var(--txt2);font-size:11px;padding-left:24px}.menu .mi:hover .k{color:#dfe8ff}.menu .sep{height:1px;background:#444;margin:4px 0}.menu .chk{position:absolute;left:8px}.body{flex:1;display:flex;min-height:0;background:var(--gap)}.split{display:flex;min-width:0;min-height:0}.split.v{flex-direction:column}.gutter{flex:0 0 4px;background:var(--gap)}.gutter.h.rs{cursor:col-resize}.gutter.v.rs{cursor:row-resize}.gutter.rs:hover{background:#2a4a7a}.panel{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg);position:relative;outline:1px solid transparent;outline-offset:-1px}.panel.focus,.panel.dropok{outline-color:var(--blue)}.ptabs{display:flex;align-items:flex-end;height:26px;padding:0 6px 0 10px;gap:14px;flex:none;color:var(--txt2);white-space:nowrap;overflow:hidden;background:#2e2e2e}.ptab{font-size:11.5px;height:26px;line-height:26px;position:relative;color:var(--txt2);max-width:260px;overflow:hidden;text-overflow:ellipsis}.ptab.on{color:var(--white)}.ptab.on:after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--white)}.ptabs .pmenu{margin-left:auto;color:var(--txt2);height:26px;display:inline-flex;align-items:center;cursor:pointer}.ptabs .more{color:var(--txt2)}.pbody{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}.icondock{width:39px;flex:none;display:flex;flex-direction:column;align-items:center;padding-top:8px;gap:2px;background:var(--bg)}.icondock button{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;color:var(--txt2)}.icondock button:hover,.icondock button.on{background:var(--bg3);color:var(--txt)}.icondock .sep{width:22px;height:1px;background:var(--line2);margin:4px 0}.flyout{position:absolute;right:43px;top:0;width:280px;max-height:100%;background:var(--bg);border:1px solid var(--gap);box-shadow:-6px 6px 20px #00000073;z-index:50;display:flex;flex-direction:column}.tools{width:48px;flex:none;display:flex;flex-direction:column;align-items:center;padding-top:6px;background:var(--bg);overflow:hidden}.tools .tool{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;color:var(--txt);position:relative}.tools .tool.on{background:var(--bg3);color:var(--white)}.tools .tool:hover{background:#363636}.tools .tool.sub:after{content:"";position:absolute;right:3px;bottom:3px;border:3px solid transparent;border-right-color:var(--txt2);border-bottom-color:var(--txt2)}.tools .grp{height:6px}.tools .swatches{margin-top:8px;position:relative;width:34px;height:34px}.tools .swatches .fillsw{position:absolute;left:0;top:0;width:22px;height:22px;border:1px solid #888;cursor:pointer}.tools .swatches .stsw{position:absolute;right:0;bottom:0;width:18px;height:18px;border:3px solid;cursor:pointer;background:transparent}.tools .swatches .stsw.none{border-color:#ccc;background:linear-gradient(135deg,transparent 45%,#E5484D 45%,#E5484D 55%,transparent 55%)}.tools .small{display:flex;gap:4px;margin-top:4px;color:var(--txt2)}.tools .small button{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center}.stagewrap{display:flex;flex-direction:column;height:100%;min-height:0}.scenebar{height:30px;display:flex;align-items:center;gap:8px;padding:0 10px;background:#313133;flex:none;border-bottom:1px solid var(--gap)}.scenebar .crumb{display:inline-flex;align-items:center;gap:6px}.scenebar .crumb button{color:var(--txt);padding:2px 6px;border-radius:3px}.scenebar .crumb button:hover{background:var(--bg3)}.scenebar .crumb .cur{color:var(--white)}.scenebar .crumb .sep{color:var(--txt3)}.scenebar .sp{flex:1}.scenebar .zoom{display:inline-flex;align-items:center;gap:4px;background:#1f1f1f;border:1px solid #444;border-radius:3px;padding:1px 6px;height:22px;width:84px}.scenebar .zoom input{width:48px;background:none;border:0;outline:0;color:var(--txt)}.scenebar .ic{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;color:var(--txt2);border-radius:3px}.scenebar .ic.on{color:var(--white);background:var(--bg3)}.stage{flex:1;min-height:0;position:relative;background:var(--pb);overflow:hidden}.stage canvas{position:absolute;left:0;top:0;width:100%;height:100%;display:block}.stage canvas.ui{pointer-events:none}.stage .textedit{position:absolute;background:transparent;border:1px dashed var(--blue);color:#000;font:48px sans-serif;outline:0;min-width:60px;resize:none;overflow:hidden;padding:0}.tl{display:flex;flex-direction:column;height:100%;min-height:0}.tl-bar{display:flex;align-items:center;gap:4px;height:36px;padding:0 8px;flex:none;border-bottom:1px solid var(--gap)}.tl-bar .b{width:26px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;color:#cfcfcf}.tl-bar .b.on{background:var(--bg3);color:#fff}.tl-bar .b:hover{background:#3c3c3c}.tl-bar .fps{color:var(--txt);display:inline-flex;align-items:baseline;gap:3px;margin:0 8px}.tl-bar .fps b{font-weight:400;color:var(--blue)}.tl-bar .fps i{font-style:normal;font-size:9px;color:var(--txt2)}.tl-bar .cur{color:var(--blue);min-width:34px}.tl-bar .cur i{font-style:normal;font-size:9px;color:var(--txt2)}.tl-bar .sp{flex:1}.tl-bar .gap{width:10px}.tl-bar input[type=range]{width:70px;accent-color:#CFCFCF}.tl-canvas{flex:1;min-height:0;position:relative}.tl-canvas canvas{display:block;width:100%;height:100%}.tl-scroll{height:10px;margin:2px 10px 3px 231px;background:#4b4b4b;border-radius:5px;flex:none;position:relative}.tl-scroll .thumb{position:absolute;top:0;bottom:0;background:#8a8a8a;border-radius:5px}.tl-vscroll{position:absolute;right:0;top:32px;bottom:0;width:10px;background:#00000040}.tl-vscroll .thumb{position:absolute;left:2px;right:2px;background:#6a6a6a;border-radius:3px;min-height:12px}.props{overflow:auto;height:100%;font-size:12px;color:var(--txt)}.props .segs{display:flex;gap:2px;padding:10px 14px 6px;justify-content:center}.props .segs button{width:60px;height:26px;border-radius:4px;color:var(--txt2);font-size:12px}.props .segs button.on{background:#c7c7c8;color:#222}.props .segs button:disabled{color:var(--txt3)}.props .hd{display:flex;align-items:center;gap:8px;padding:10px 14px 8px;border-bottom:1px solid var(--line)}.props .hd b{font-weight:500;color:var(--white)}.props .hd i{color:var(--txt2);font-style:italic;font-size:11px}.props .sec{border-bottom:1px solid var(--line);padding:4px 0 8px}.props .sec-h{display:flex;align-items:center;gap:8px;padding:8px 14px;color:var(--txt);cursor:default;font-weight:500}.props .sec-h .rst{margin-left:auto;color:var(--txt2);cursor:pointer}.props .row{display:flex;align-items:center;min-height:28px;padding:0 14px 0 28px;gap:10px}.props .row .lab{width:92px;color:#ccc;flex:none}.props .row .vals{display:flex;gap:12px;flex:1;align-items:center;flex-wrap:wrap}.props .num{color:var(--blue);cursor:ew-resize;white-space:nowrap;min-width:40px}.props .num input{width:64px;background:#1f1f1f;border:1px solid var(--line2);border-radius:2px;color:var(--blue);padding:1px 4px;outline:0}.props .num .u{color:var(--txt2);margin-left:3px}.props select{background:#1f1f1f;border:1px solid var(--line2);border-radius:3px;color:var(--txt);padding:3px 6px;outline:0;max-width:190px}.props input[type=text]{background:#1f1f1f;border:1px solid var(--line2);border-radius:3px;color:var(--txt);padding:3px 6px;outline:0;width:100%}.props input[type=range]{accent-color:var(--blue);width:110px}.props .sw{width:34px;height:18px;border:1px solid #888;border-radius:2px;cursor:pointer;position:relative;overflow:hidden}.props .sw input{position:absolute;inset:-6px;opacity:0;cursor:pointer}.props .empty{display:flex;align-items:center;justify-content:center;height:50%;color:var(--txt2);text-align:center;padding:0 30px;line-height:1.6}.props .btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line2);border-radius:3px;padding:4px 12px;color:var(--txt);margin:6px 14px 0}.props .btn.primary{background:#265bc1;border-color:#265bc1;color:#fff}.props .btnrow{display:flex;gap:8px;padding:4px 14px}.props label.chk{display:inline-flex;align-items:center;gap:6px;color:var(--txt)}.lib{display:flex;flex-direction:column;height:100%}.lib .preview{height:150px;background:#1f1f1f;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex:none}.lib .preview canvas{max-width:100%;max-height:100%}.lib .cnt{display:flex;align-items:center;gap:8px;padding:6px 10px;color:var(--txt2);border-bottom:1px solid var(--line)}.lib .cnt input{margin-left:auto;background:#1f1f1f;border:1px solid var(--line2);border-radius:10px;padding:2px 8px;color:var(--txt);outline:0;width:120px}.lib .cols{display:flex;padding:4px 10px;color:var(--txt2);border-bottom:1px solid var(--line);font-size:11px}.lib .cols span:first-child{flex:1}.lib .items{flex:1;overflow:auto}.lib .item{display:flex;align-items:center;gap:8px;padding:5px 10px;color:var(--txt);cursor:default}.lib .item.on{background:var(--sel);color:#fff}.lib .item:hover{background:#3a3a3a}.lib .item.on:hover{background:var(--sel)}.lib .item span.type{margin-left:auto;color:var(--txt2);font-size:11px}.lib .foot{display:flex;gap:6px;padding:6px 10px;border-top:1px solid var(--line);color:var(--txt2)}.lib .foot button{width:22px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px}.lib .foot button:hover{background:var(--bg3);color:var(--txt)}.colorp{padding:10px 12px;display:flex;flex-direction:column;gap:10px;color:var(--txt)}.colorp .mode{display:flex;gap:8px;align-items:center}.colorp .mode .sw{width:22px;height:22px;border:1px solid #888;border-radius:2px;position:relative;cursor:pointer}.colorp .mode .sw.on{outline:2px solid var(--blue)}.colorp .mode .sw.none{background:linear-gradient(135deg,#fff 45%,#e5484d 45% 55%,#fff 55%)}.colorp .sq{position:relative;width:100%;aspect-ratio:1;border-radius:3px;cursor:crosshair;background:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,hsl(var(--h),100%,50%))}.colorp .sq .dot{position:absolute;width:10px;height:10px;border:2px solid #fff;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #000}.colorp .hue{height:14px;border-radius:3px;cursor:crosshair;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red);position:relative}.colorp .hue .dot{position:absolute;top:-2px;width:6px;height:18px;border:2px solid #fff;transform:translate(-50%);box-shadow:0 0 0 1px #000}.colorp .rows{display:grid;grid-template-columns:auto 1fr auto;gap:4px 8px;align-items:center;font-size:11.5px}.colorp .rows input[type=range]{width:100%;accent-color:#ccc}.colorp .rows .v{color:var(--blue);min-width:34px;text-align:right}.colorp .hex{display:flex;align-items:center;gap:6px}.colorp .hex input{background:#1f1f1f;border:1px solid var(--line2);border-radius:3px;color:var(--txt);padding:3px 6px;width:90px;outline:0;font-family:var(--mono)}.colorp .swl{display:grid;grid-template-columns:repeat(12,1fr);gap:3px}.colorp .swl button{aspect-ratio:1;border-radius:2px;border:1px solid #444}.colorp .swl button:hover{outline:1px solid #fff}.status{height:16px;display:flex;align-items:center;padding:0 10px;color:var(--txt2);font-size:11px;background:var(--bg);flex:none;white-space:nowrap;overflow:hidden;border-top:1px solid var(--gap)}.status.err{color:#ff8080}.status .txt{flex:1;overflow:hidden;text-overflow:ellipsis}.status .right{color:var(--txt3);margin-left:12px;cursor:pointer}.home{flex:1;display:flex;background:var(--pb);color:var(--txt)}.home .side{width:240px;padding:28px 20px;display:flex;flex-direction:column;gap:12px;flex:none;background:var(--bg)}.home .side .btn{display:inline-flex;align-items:center;justify-content:center;height:34px;border-radius:17px;background:#2f6fed;color:#fff;font-size:13px;padding:0 18px;width:max-content}.home .side .lnk{color:var(--txt);padding:4px 0;font-size:13px}.home .main{flex:1;padding:36px 48px;display:flex;flex-direction:column;gap:18px;overflow:auto}.home h1{font-size:22px;font-weight:500;margin:0;color:var(--white)}.home .cards{display:flex;gap:14px;flex-wrap:wrap}.home .card{width:150px;height:110px;background:var(--bg);border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;cursor:pointer;color:var(--txt)}.home .card:hover{background:#3a3a3a}.home .card b{font-weight:500}.home .card span{color:var(--txt2);font-size:11px}.home .recent{display:grid;grid-template-columns:repeat(auto-fill,200px);gap:12px}.home .ritem{background:var(--bg);border-radius:6px;padding:12px;cursor:pointer}.home .ritem:hover{background:#3a3a3a}.home .ritem b{display:block;color:var(--white);font-weight:500}.home .ritem span{color:var(--txt2);font-size:11px}.modal-bg{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:900}.modal{width:520px;background:#2b2b2b;border-radius:8px;box-shadow:0 20px 60px #0009;color:var(--txt);overflow:hidden}.modal .mh{padding:12px 16px;font-weight:600;background:#333;color:var(--white)}.modal .mb{padding:14px 16px;display:flex;flex-direction:column;gap:12px}.modal label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--txt2)}.modal input,.modal select{height:28px;background:#1d1d1d;border:1px solid #555;border-radius:3px;padding:0 8px;color:var(--txt);outline:0}.modal .mf{display:flex;align-items:center;gap:10px;padding:12px 16px;border-top:1px solid #3a3a3a}.modal .mf .grow{flex:1}.pill{display:inline-flex;align-items:center;height:28px;padding:0 16px;border-radius:14px;background:#3b3b3b;color:var(--white)}.pill.primary{background:#2f6fed}.modal .prog{height:6px;background:#333;border-radius:3px;overflow:hidden}.modal .prog i{display:block;height:100%;background:var(--blue)}.mcpdlg{width:680px}.mcpdlg .mb{gap:14px}.mcpdlg section{display:flex;flex-direction:column;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--line)}.mcpdlg section:last-child{border-bottom:0}.mcpdlg h4{margin:0;font-size:13px;color:var(--white)}.mcpdlg .st{font-size:12px}.mcpdlg .row{display:flex;gap:6px}.mcpdlg .row input{flex:1;font-family:var(--mono);font-size:11px}.mcpdlg code{background:#1d1d1d;padding:1px 5px;border-radius:3px;font-family:var(--mono);font-size:11px}.mcpdlg .hint{font-size:11.5px;line-height:1.6;user-select:text;color:var(--txt2)}.mcpdlg label.chk{flex-direction:row;align-items:center;gap:6px;color:var(--txt)}.mcpdlg .row button{border:1px solid var(--line2);border-radius:3px;padding:0 10px;height:28px;color:var(--txt)}.hint{color:var(--txt2)}.motioned{height:190px;flex:none;display:flex;border-top:1px solid var(--gap);background:#2a2a2a}.me-side{width:230px;flex:none;border-right:1px solid var(--gap);display:flex;flex-direction:column;overflow:auto;font-size:11px}.me-h{padding:6px 10px;color:var(--white);font-weight:500;border-bottom:1px solid var(--gap)}.me-row{display:flex;align-items:center;gap:6px;padding:2px 10px;color:var(--txt);cursor:default}.me-row.on{background:#3a3a3a}.me-row .dot{width:8px;height:8px;border-radius:50%}.me-row .nm{flex:1}.me-row .v{color:var(--blue);min-width:44px;text-align:right}.me-row .k{color:var(--txt3);min-width:14px;text-align:right}.me-ease{display:flex;flex-direction:column;gap:4px;padding:6px 10px;border-top:1px solid var(--gap)}.me-ease input[type=range]{width:100%;accent-color:var(--blue)}.me-ease select{background:#1f1f1f;border:1px solid var(--line2);border-radius:3px;color:var(--txt);padding:2px 4px}.me-ease .btn{display:inline-flex;align-items:center;border:1px solid var(--line2);border-radius:3px;padding:2px 8px;width:max-content}.me-graph{flex:1;min-width:0;position:relative}.me-graph canvas{display:block;width:100%;height:100%}.fpicker .thumbs{padding:8px 14px;overflow:auto}.fpicker canvas{cursor:pointer;display:block;max-width:100%}.colorp .grad{display:flex;flex-direction:column;gap:6px}.colorp .grad .bar{position:relative;height:18px;border-radius:3px;border:1px solid #555;margin:6px 6px 0}.colorp .grad .stop{position:absolute;top:-5px;width:12px;height:28px;border:2px solid #fff;border-radius:3px;transform:translate(-50%);cursor:pointer;box-shadow:0 0 0 1px #000}.colorp .grad .stop.on{border-color:var(--blue)}.colorp .grad .grow{display:flex;align-items:center;gap:6px;font-size:11px}.colorp .grad .grow button{border:1px solid var(--line2);border-radius:3px;padding:1px 6px}.colorp .grad .grow input[type=range]{flex:1;accent-color:#ccc}.colorp .grad .grow .v{color:var(--blue)}.lib .preview{position:relative}
