@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--key:#e0453f;--bg:#14161a;--panel:#1c1f26;--line:#2b303a;--text:#e7e9ee;--muted:#9aa2b1;--accent:#5b8cff;--font-sans:"Inter Variable", Inter, sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.5 var(--font-sans);font-synthesis-weight:none;-webkit-font-smoothing:antialiased;overflow:hidden}.app{grid-template-rows:auto 1fr auto;height:100%;display:grid}.topbar{background:var(--panel);border:0 solid var(--line);border-bottom-width:1px;align-items:center;gap:12px;padding:10px 14px;display:flex}.title{letter-spacing:.2px;font-weight:600}.spacer{flex:1}.muted{color:var(--muted)}button{color:var(--text);border:1px solid var(--line);cursor:pointer;font:inherit;background:#262b35;border-radius:6px;padding:6px 12px}button:hover{border-color:var(--accent)}button[data-active=true]{background:var(--accent);border-color:var(--accent)}.scrub{accent-color:var(--accent);flex:1}.time-fields{align-items:center;gap:11px;display:flex}.time-field{align-items:center;gap:5px;font-size:12px;display:flex}.time-label{color:var(--muted)}.time-suffix{color:var(--muted);margin-left:-3px}.time-input{border:1px solid var(--line);width:54px;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;text-align:right;background:#22262e;border-radius:4px;padding:2px 5px;font-size:12px}.time-input:hover{border-color:#3a4150}.time-input:focus{border-color:var(--accent);background:#262b35;outline:none}.workspace{grid-template-rows:1fr;grid-template-columns:96px 172px 1fr 260px;min-height:0;display:grid}.shelf{grid-area:1/1}.browser{grid-area:1/2}.stage-col{grid-area:1/3}.sidebar{background:var(--panel);border-left:1px solid var(--line);flex-direction:column;grid-area:1/4;gap:14px;padding:14px;display:flex;overflow-y:auto}.sidebar-empty{font-size:13px}.sidebar-title{margin:0;font-size:15px;font-weight:600}.field{justify-content:space-between;align-items:baseline;gap:10px;font-size:13px;display:flex}.field-stack{flex-direction:column;align-items:stretch;gap:6px}.field-label{font-size:12px}.field-value{font-variant-numeric:tabular-nums}.select{color:var(--text);border:1px solid var(--line);font:inherit;cursor:pointer;background:#262b35;border-radius:6px;padding:7px 9px}.select:hover,.select:focus{border-color:var(--accent);outline:none}.number{color:var(--text);border:1px solid var(--line);width:74px;font:inherit;background:#262b35;border-radius:6px;padding:5px 7px}.hint{font-size:12px;line-height:1.4}.hint.error{color:#ff8a8a}button:disabled{opacity:.5;cursor:default}button:disabled:hover{border-color:var(--line)}.timeline{background:var(--panel);border-top:1px solid var(--line);flex-direction:column;min-height:100px;display:flex;position:relative}.transport{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:13px;padding:4px 12px;display:flex}.transport button{padding:3px 10px;font-size:12px}.small{font-size:12px}.tracks{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.ruler-row{border-bottom:1px solid var(--line);display:flex}.layer-head{border-right:1px solid var(--line);flex:0 0 190px;align-items:center;gap:6px;width:190px;padding:0 8px;display:flex}.ruler{cursor:ew-resize;touch-action:none;flex:1;height:20px;position:relative;overflow:hidden}.tick{color:var(--muted);font-variant-numeric:tabular-nums;pointer-events:none;white-space:nowrap;font-size:11px;position:absolute;top:2px;transform:translate(-50%)}.tick.first{transform:none}.tick.last{transform:translate(-100%)}.tick.first i{left:0}.tick.last i{left:100%}.tick i{background:var(--line);width:1px;height:6px;position:absolute;top:13px;left:50%}.track-scroll{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden auto}.track-row{border-bottom:1px solid #23272f;flex:0 0 26px;height:26px;display:flex}.track-row.active{background:#20252e}.layer-name{color:var(--text);font:inherit;text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;flex:1;align-items:center;gap:7px;padding:0;font-size:13px;display:flex;overflow:hidden}.layer-name:hover{color:#fff}.swatch{border-radius:2px;flex:0 0 9px;width:9px;height:9px}.swatch.character{background:#4a6ea8}.swatch.object{background:#7bd1a0}.add-key{border-radius:4px;padding:2px 6px;font-size:11px;line-height:1.3}.lane{cursor:ew-resize;touch-action:none;flex:1;position:relative}.key-span{pointer-events:none;background:#5c3336;border-radius:2px;height:4px;position:absolute;top:11px}.key{background:var(--key);cursor:ew-resize;border:1px solid #10131a;border-radius:2px;width:11px;height:11px;padding:0;position:absolute;top:7px;transform:translate(-50%)rotate(45deg)}.key:hover{background:#ff7d78}.divider{background:var(--line);width:1px;height:20px}.stage-col{flex-direction:column;min-width:0;min-height:0;display:flex}.views{background:#101216;flex:1;min-height:0;padding:8px;display:block;position:relative}.canvas-layer{pointer-events:none;inset:0;position:absolute!important}.view{border:1px solid var(--line);border-radius:6px;min-height:0;position:relative;overflow:hidden}.editor-slot{min-width:0;min-height:0;display:flex;position:absolute;inset:8px}.editor-slot>.view{flex:1}.shot-float{--shot-w:300px;width:var(--shot-w);z-index:4;background:0 0;border:1px solid #2c333f;border-radius:7px;position:absolute;top:14px;right:14px;overflow:hidden;box-shadow:0 10px 30px #00000080}.shot-float .view-wrap{aspect-ratio:16/9;min-height:0}.view-wrap{min-height:0;display:flex;position:relative}.view-wrap>.view{flex:1}.view-badge{z-index:2;border:1px solid var(--line);letter-spacing:.09em;color:var(--muted);pointer-events:auto;background:#101216c7;border-radius:5px;gap:3px;padding:3px 7px;font-size:10px;display:flex;position:absolute;top:7px;left:8px}.editor-badge{letter-spacing:.02em;color:#ffffff6b;pointer-events:none;background:0 0;border:0;padding:0;font-size:26px;font-weight:600;top:10px;left:16px}.shot-badge{color:#ff8a8a;align-items:center;gap:6px}.rec-dot{background:#ff4d4d;border-radius:50%;flex:none;width:9px;height:9px;box-shadow:0 0 0 2px #ff4d4d33}.shot-framing{pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden;container-type:size}.shot-frame-box{aspect-ratio:var(--ar);width:min(100%, calc(100cqh * var(--ar)));outline:1px solid #ffffff29;height:auto;box-shadow:0 0 0 9999px #080a0da8}.swatch.camera{background:#c8ccd4}.in-range{pointer-events:none;background:#4ac7851c;border-left:1px solid #4ac78559;border-right:1px solid #4ac78559;position:absolute;top:0;bottom:0}.out-of-range{pointer-events:none;background:#0000008c;position:absolute;top:0;bottom:0}.render{background:#2f4f86;border-color:#3f68ab;min-width:118px;padding:5px 12px;font-size:13px}.render:hover:not(:disabled){border-color:var(--accent);background:#3a5f9f}.render-result{z-index:5;border:1px solid var(--line);background:#161a21f2;border-radius:7px;align-items:center;gap:12px;padding:9px 13px;font-size:13px;display:flex;position:absolute;bottom:16px;left:16px;box-shadow:0 8px 26px #00000073}.render-result.error{color:#ff9d9d;border-color:#7a3b3b}.render-result a{color:var(--accent);font-weight:600;text-decoration:none}.render-result a:hover{text-decoration:underline}.render-result button{padding:3px 9px;font-size:12px}.render-preview{z-index:6;border:1px solid var(--accent);background:#05070a;border-radius:6px;flex-direction:column;grid-area:1/1;min-height:0;display:flex;overflow:hidden}.render-preview-bar{border-bottom:1px solid var(--line);background:#171b22;align-items:center;gap:10px;padding:6px 10px;display:flex}.render-preview-bar a{color:var(--accent);font-size:13px;font-weight:600;text-decoration:none}.render-preview-bar a:hover{text-decoration:underline}.preview-close{border-radius:4px;padding:1px 9px;font-size:16px;line-height:1.2}.render-video{object-fit:contain;background:#05070a;flex:1;width:100%;min-height:0}.face-path{cursor:pointer;align-items:center;gap:7px;font-size:12px;display:flex}.face-path input{accent-color:var(--accent);margin:0}.light-slider{width:100%;accent-color:var(--accent)}.colour{border:1px solid var(--line);cursor:pointer;background:#262b35;border-radius:5px;width:46px;height:24px;padding:1px}.camera-panel{border-top:1px solid var(--line);gap:8px;padding-top:12px}.camera-panel .field-value em.mm{color:var(--muted);vertical-align:super;margin-left:5px;font-size:11px;font-style:normal}.key.selected{border-color:var(--key);box-shadow:0 0 0 2px var(--key);z-index:2;background:#fff}.shelf{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:6px;min-height:0;padding:10px 8px;display:flex;overflow-y:auto}.shelf-title{letter-spacing:.1em;text-transform:uppercase;padding-left:2px;font-size:10px}.shelf-item{border:1px solid var(--line);cursor:grab;background:#22262e;border-radius:7px;flex-direction:column;align-items:center;gap:3px;padding:8px 4px 6px;font-size:11px;line-height:1.2;display:flex}.shelf-item:hover{border-color:var(--accent);background:#272c36}.shelf-item:active{cursor:grabbing}.shelf-hint{text-align:center;margin-top:2px;font-size:10px;line-height:1.3}.track-toggle{border-top:1px solid var(--line);gap:5px;padding-top:12px}.track-toggle button{width:100%;padding:7px 10px;font-size:13px}.track-toggle .track{background:#2f4f86;border-color:#3f68ab}.track-toggle .track:hover{background:#3a5f9f}.track-toggle .untrack:hover{color:#ffb0b0;border-color:#a05555}.timeline-resizer{cursor:ns-resize;z-index:4;touch-action:none;height:7px;position:absolute;top:-3px;left:0;right:0}.timeline-resizer:hover{background:var(--accent);opacity:.5}.transform-panel{flex-direction:column;gap:9px;display:flex}.tf-row{flex-direction:column;gap:3px;display:flex}.tf-head{align-items:center;gap:6px;height:16px;display:flex}.tf-label{color:var(--muted);flex:1;font-size:12px}.tf-fields{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.tf-field{border:1px solid var(--line);background:#262b35;border-radius:4px;align-items:center;min-width:0;display:flex;overflow:hidden}.tf-field:focus-within{border-color:var(--accent)}.tf-field:before{content:"";flex:0 0 3px;align-self:stretch;width:3px}.tf-field.ax-x:before{background:#d9534f}.tf-field.ax-y:before{background:#5cb85c}.tf-field.ax-z:before{background:#4a8fe0}.tf-axis{opacity:.75;padding:0 3px 0 4px;font-size:9px;font-weight:600}.tf-field.ax-x .tf-axis{color:#e8807c}.tf-field.ax-y .tf-axis{color:#85cf85}.tf-field.ax-z .tf-axis{color:#82b4ea}.tf-field input{width:100%;min-width:0;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;text-align:right;background:0 0;border:0;padding:4px 2px;font-size:12px}.tf-field input:focus{outline:none}.tf-field input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tf-field input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tf-suffix{color:var(--muted);padding:0 4px 0 1px;font-size:9px}.tf-reset,.tf-lock{background:0 0;border:0;border-radius:3px;flex:none;place-items:center;width:18px;height:16px;padding:0;font-size:12px;line-height:1;display:grid}.tf-lock{color:var(--muted)}.tf-lock:hover{color:var(--text);background:#2b303a}.tf-lock.on{color:#fff;background:var(--accent)}.tf-lock.on:hover{background:#6f9bff}.tf-reset{color:var(--muted)}.tf-reset:hover{color:var(--text);background:#2b303a}.splitter{z-index:3;touch-action:none;background:0 0;position:relative}.splitter:after{content:"";background:0 0;border-radius:2px;margin:auto;transition:background .12s;position:absolute;inset:0}.splitter-x{cursor:col-resize;grid-column:2}.splitter-x:after{width:2px;height:34px}.splitter-y{cursor:row-resize}.splitter-y:after{width:34px;height:2px}.splitter:hover:after,.splitter.dragging:after{background:var(--accent)}.zoom-badge{gap:1px;padding:1px 2px;left:auto;right:8px}.zoom-badge button{width:20px;height:18px;color:var(--muted);background:0 0;border:0;border-radius:3px;place-items:center;padding:0;font-size:13px;line-height:1;display:grid}.zoom-badge button:hover{color:#fff;background:#ffffff1f}.editor-readout{z-index:2;pointer-events:none;flex-direction:column;gap:2px;display:flex;position:absolute;top:58px;left:18px}.editor-selection{color:#fff;align-items:center;gap:6px;font-size:12px;display:flex}.editor-status{color:#fff;font-size:12px}.transport .render{color:#fff;background:#b23b38;border-color:#cf4b47;min-width:116px;padding:5px 16px;font-size:13px;font-weight:600}.transport .render:hover:not(:disabled){background:#c9433f;border-color:#e05c57}.transport .render:disabled{background:#6d322f;border-color:#7d3a37}.marker-layer{pointer-events:none;z-index:2;position:absolute;inset:0 0 0 190px}.marker{width:1px;margin-left:-.5px;position:absolute;top:0;bottom:0}.marker.in,.marker.out{background:#fff}.marker.play{background:#e0473f;width:2px;margin-left:-1px}.play-badge{color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;background:#e0473f;border-radius:2px;padding:0 4px;font-size:10px;font-weight:600;line-height:15px;position:absolute;top:1px;left:0;transform:translate(-50%)}.marker-grab{cursor:ew-resize;z-index:3;border:0;border-radius:2px;width:9px;height:18px;padding:0;position:absolute;top:0;transform:translate(-50%)}.marker-grab.start,.marker-grab.end{background:#fff}.marker-grab:hover{filter:brightness(1.25)}.transport-buttons{align-items:center;gap:1px;display:flex}.tp{color:#c3c9d4;background:0 0;border:0;border-radius:4px;place-items:center;width:26px;height:22px;padding:0;display:grid}.tp:hover{color:#fff;background:#2b303a}.tp.on{background:var(--accent);color:#fff}.tp-in,.tp-out{color:#8de29a}.tp-out{color:#f08a84}.tp-in:hover{color:#35c04a}.tp-out:hover{color:#e0473f}.lane-filler{cursor:ew-resize;touch-action:none;flex:1;min-height:24px;margin-left:190px}.gizmo-modes{z-index:3;gap:8px;display:flex;position:absolute;top:14px;right:328px}.gm-group{border:1px solid var(--line);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#101216d1;border-radius:7px;gap:1px;padding:2px;display:flex}.gizmo-modes button{color:#c3c9d4;background:0 0;border:0;border-radius:5px;place-items:center;width:28px;height:26px;padding:0;display:grid}.gizmo-modes button:hover:not(:disabled){color:#fff;background:#2b303a}.gizmo-modes button:disabled{opacity:.32;cursor:default}.gizmo-modes .gm-delete:hover:not(:disabled){color:#ff9d9d;background:#5b2b2b}.gizmo-modes button[data-active=true]{background:var(--accent);color:#fff}.editor-zoom{inset:auto 14px 14px auto}.name-input{width:100%;color:var(--text);font:inherit;background:0 0;border:1px solid #0000;border-radius:4px;margin:-2px -5px;padding:2px 5px;font-size:15px;font-weight:600}.name-input:hover{border-color:var(--line)}.name-input:focus{border-color:var(--accent);background:#262b35;outline:none}.render-scrim{z-index:60;cursor:progress;background:#080a0e38;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.render-toast{border:1px solid var(--line);font-variant-numeric:tabular-nums;color:var(--text);background:#14171df0;border-radius:9px;align-items:center;gap:11px;padding:14px 22px;font-size:15px;font-weight:600;display:flex;box-shadow:0 10px 34px #00000073}.render-spinner{border:2px solid #ffffff2e;border-top-color:var(--key);border-radius:50%;width:15px;height:15px;animation:.8s linear infinite render-spin}@keyframes render-spin{to{transform:rotate(360deg)}}.zoom-buttons{gap:2px;display:flex}.zoom-buttons button{color:#c3c9d4;place-items:center;width:26px;height:24px;padding:0;display:grid}.zoom-buttons button:hover:not(:disabled){color:#fff;background:#2f3540}.zoom-buttons button:disabled{opacity:.35;cursor:default}.tp-divider{background:var(--line);flex:none;width:1px;height:20px}.browser{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:6px;min-height:0;padding:10px 0 8px;display:flex}.browser>.shelf-title{padding-left:10px}.browser>.shelf-hint{padding:0 10px;font-size:11px}.browser-list{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex;overflow-y:auto}.browser-group{flex-direction:column;display:flex}.browser-heading{letter-spacing:.08em;text-transform:uppercase;padding:0 10px 3px;font-size:10px}.browser-row{width:100%;color:var(--text);text-align:left;cursor:grab;background:0 0;border:1px solid #0000;border-left:0;border-right:0;border-radius:0;align-items:center;gap:7px;padding:5px 10px;font-size:12px;display:flex}.browser-row:hover{background:#232831}.browser-row.active{color:#fff;background:#2c3444}.browser-row[data-dragging]{opacity:.4}.browser-row[data-drop=before]{border-top-color:var(--accent)}.browser-row[data-drop=after]{border-bottom-color:var(--accent)}.browser-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.browser-row.editing{cursor:default;background:#262b35}.browser-input{border:1px solid var(--accent);min-width:0;color:var(--text);font:inherit;background:#1b1f26;border-radius:3px;flex:1;padding:1px 4px;font-size:12px}.browser-input:focus{outline:none}.time-static{text-align:right;min-width:40px;color:var(--muted);font-variant-numeric:tabular-nums}.autokey{border:1px solid var(--line);color:var(--muted);background:0 0;align-items:center;gap:6px;padding:3px 9px;font-size:12px;display:flex}.autokey:hover{color:var(--text);background:#262b35}.autokey-dot{background:#4a5262;border-radius:50%;width:7px;height:7px}.autokey[data-active=true]{color:#fff;border-color:var(--key);background:#3a2326}.autokey[data-active=true] .autokey-dot{background:var(--key);box-shadow:0 0 0 2px #e0453f40}.key.ghost{border:1px solid var(--key);opacity:.75;pointer-events:none;background:0 0}
