:root{color-scheme:dark;--bg:#0d1014;--surface:#14181e;--surface-2:#1a2028;--border:#252d38;--border-strong:#364352;--text:#e8edf3;--text-dim:#9aa6b4;--accent:#e0a13f;--accent-ink:#1c1303;--ok:#58c08a;--warn:#e0b95a;--err:#e88080;--info:#7fb3e8;--radius:10px;--radius-sm:6px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font:14px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--info);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:22px;line-height:1.25;letter-spacing:-.01em;margin:0 0 var(--sp-2);font-weight:650}h2{font-size:15px;margin:0 0 var(--sp-3)}h2,h3{font-weight:600}.muted{color:var(--text-dim)}.small{font-size:12px}.shell{max-width:1080px;margin:0 auto;padding:var(--sp-5) var(--sp-4) var(--sp-6)}.shell.wide{max-width:none}.topbar{border-bottom:1px solid var(--border);background:var(--surface)}.topbar-inner{max-width:1080px;margin:0 auto;padding:var(--sp-3) var(--sp-4);display:flex;align-items:baseline;gap:var(--sp-3)}.brand{font-weight:650;letter-spacing:.02em;font-size:15px;color:var(--text)}.brand .dot{color:var(--accent)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-4);margin-bottom:var(--sp-4)}.row{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}input[type=number],input[type=text],input[type=url],select{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:8px 10px;font:inherit;min-width:0}input[type=file]{color:var(--text-dim);font:inherit}textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:8px 10px;font:inherit;width:100%;min-width:0;resize:vertical}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button{background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 14px;font:inherit;font-weight:550;cursor:pointer;transition:border-color .12s ease,background-color .12s ease}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.primary:hover:not(:disabled){filter:brightness(1.06)}button.danger{background:transparent;border-color:transparent;color:var(--err)}button.danger:hover:not(:disabled){border-color:var(--err);background:transparent}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:550;padding:2px 9px;border-radius:999px;border:1px solid var(--border-strong);color:var(--text-dim);white-space:nowrap}.chip.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,transparent)}.chip.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}.chip.err{color:var(--err);border-color:color-mix(in srgb,var(--err) 45%,transparent)}.chip.info{color:var(--info);border-color:color-mix(in srgb,var(--info) 45%,transparent)}.proj-row{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);padding:12px 16px;color:var(--text)}.proj-row:hover{background:var(--surface-2);text-decoration:none}.proj-name{font-weight:550}.asset{display:grid;grid-template-columns:148px minmax(0,1fr);grid-gap:var(--sp-4);gap:var(--sp-4)}.asset .thumb{width:148px;height:83px;object-fit:cover;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border)}.renders{margin-top:var(--sp-3)}.render-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px dashed var(--border);flex-wrap:wrap}.mini-video{width:132px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#000}.err-box{background:color-mix(in srgb,var(--err) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--err) 40%,transparent);color:#f2c9c9;padding:10px 12px;border-radius:var(--radius-sm);font-size:12px;white-space:pre-wrap;margin:6px 0;max-height:160px;overflow:auto}.editor-wrap{position:relative;max-width:100%;min-width:240px;resize:horizontal;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.edit-grid{display:grid;grid-template-columns:minmax(0,720px) 10px minmax(220px,420px) 10px minmax(320px,480px) 10px minmax(280px,380px) 10px minmax(260px,420px);justify-content:start;grid-gap:0;gap:0;align-items:start;overflow-x:auto}.edit-grid>div{min-width:0}.col-handle{align-self:stretch;min-height:240px;cursor:col-resize;border-radius:5px;touch-action:none;background:var(--border);opacity:.4}.col-handle:hover{opacity:.9;background:var(--accent)}.panel>h2:last-child{margin-bottom:0}input[type=color]{width:34px;height:28px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.rz{resize:vertical;overflow:auto;min-height:96px;max-height:70vh}@media (max-width:1024px){.edit-grid{grid-template-columns:minmax(0,1fr)!important}.col-handle{display:none}}.editor-wrap video{width:100%;display:block;border-radius:var(--radius-sm);background:#000;border:1px solid var(--border)}.box-layer{inset:0;cursor:crosshair}.box,.box-layer{position:absolute;touch-action:none}.box{border:2px solid var(--accent);border-radius:3px;background:color-mix(in srgb,var(--accent) 12%,transparent);pointer-events:auto;cursor:move}.box.sel{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 45%,transparent)}.box .num{position:absolute;top:-11px;left:-2px;font-size:11px;font-weight:650;line-height:1.5;padding:0 5px;border-radius:3px;color:#10130f}.box.draft{border-style:dashed;background:transparent;pointer-events:none;cursor:crosshair}.handle{position:absolute;width:11px;height:11px;background:var(--surface);border:2px solid var(--accent);border-radius:3px;transform:translate(-50%,-50%);touch-action:none}.handle.nw,.handle.se{cursor:nwse-resize}.handle.ne,.handle.sw{cursor:nesw-resize}.boxrow{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:8px 0;border-top:1px dashed var(--border)}.chip.toggle{cursor:pointer;background:transparent;font:inherit}.chip.on,.chip.toggle.on{color:var(--accent);border-color:var(--accent)}.boxrow.sel{background:color-mix(in srgb,var(--accent) 7%,transparent);border-radius:var(--radius-sm)}.tl-wrap{position:relative}.tl-thumbs{display:flex;gap:2px}.tl-thumbs img{flex:1 1;width:0;min-width:0;height:58px;object-fit:cover;border-radius:3px;border:1px solid var(--border);cursor:pointer;opacity:.85}.tl-thumbs img:hover{opacity:1;border-color:var(--border-strong)}.tl-bar{position:absolute;top:0;height:100%;display:flex;align-items:flex-start;padding:2px 4px;background:color-mix(in srgb,var(--accent) 16%,transparent);border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:4px;color:var(--text);font:inherit;cursor:pointer}.tl-bar .lbl{font-size:10px;font-weight:650;line-height:1}.tl-bar.sel,.tl-bar:hover{background:color-mix(in srgb,var(--accent) 32%,transparent)}.tl-play{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--text);opacity:.85;pointer-events:none}.seg-prev{position:relative;width:132px;flex:none;border-radius:4px;overflow:hidden;border:1px solid var(--border)}.seg-prev img{width:100%;display:block;cursor:pointer}.seg-prev .ov{position:absolute;border:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.cue-list{resize:vertical;overflow:auto;min-height:120px;max-height:70vh;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.cue{display:flex;gap:10px;width:100%;text-align:left;background:transparent;border:none;border-bottom:1px dashed var(--border);border-radius:0;padding:7px 10px;font:inherit;color:var(--text);cursor:pointer}.cue:last-child{border-bottom:none}.cue:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.cue .t{color:var(--text-dim);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex:none;padding-top:1px}.cue .x{flex:1 1}.cue.active{background:color-mix(in srgb,var(--accent) 12%,transparent)}.cue.sel{background:color-mix(in srgb,var(--accent) 22%,transparent)}.cue.cut{text-decoration:line-through;opacity:.55}.cue.edited .x{color:var(--accent)}.cuerew{display:flex;align-items:stretch}.cuerew .cue{flex:1 1}.cuerew:last-child .cue{border-bottom:none}.wordline{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:6px 10px;border-bottom:1px dashed var(--border)}.wordline:last-child{border-bottom:none}.wordline .t{color:var(--text-dim);font-size:11px;margin-right:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.word{background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text);font:inherit;font-size:12px;line-height:1.5;padding:1px 5px;cursor:pointer}.word:hover{border-color:var(--border-strong);background:var(--surface-2)}.word.cut{text-decoration:line-through;opacity:.5;color:var(--err)}.word.edited{border-color:var(--warn);color:var(--warn)}.word.active{background:var(--accent);color:var(--accent-ink)}.word.active,.word.sel{border-color:var(--accent)}.word.sel{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--text)}.wordinput{width:90px;padding:2px 6px;font-size:12px}.tl-cue{position:absolute;bottom:0;height:4px;background:var(--info);opacity:.55;border-radius:2px}input[type=number]{width:84px}@media (max-width:640px){.asset{grid-template-columns:1fr}.asset .thumb{width:100%;height:auto;aspect-ratio:16/9}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.slate-back{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(6,8,10,.72)}.slate-modal{display:flex;flex-direction:column;width:min(1020px,96vw);max-height:94vh;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.slate-head{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border)}.slate-head b{margin-right:auto}.slate-body{display:flex;gap:16px;padding:14px;overflow:auto}.slate-left{flex:0 0 340px;display:flex;flex-direction:column;gap:10px}.slate-box{position:relative;width:340px;background:#000;border:1px solid var(--border);border-radius:8px;overflow:hidden;touch-action:none}.slate-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.slate-el{position:absolute;cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.slate-el.sel{outline:1px dashed var(--accent)}.slate-handle{right:-7px;bottom:-7px;width:13px;height:13px;border-radius:3px;background:var(--accent);border:1px solid var(--accent-ink);cursor:nwse-resize}.slate-handle,.slate-x{position:absolute;touch-action:none}.slate-x{top:-8px;right:-8px;z-index:3;width:17px;height:17px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--err,#e5534b);color:#fff;font-size:10px;line-height:1;cursor:pointer;border:1px solid rgba(0,0,0,.35)}.slate-x:hover{filter:brightness(1.15)}.slate-frames{display:flex;flex-wrap:wrap;gap:6px}.slate-frames img{height:72px;width:auto;max-width:100%;object-fit:cover;border-radius:4px;border:2px solid transparent;cursor:pointer;opacity:.85;background:#000}.slate-frames img:hover{opacity:1}.slate-frames img.sel{border-color:var(--accent);opacity:1}.slate-right input[type=range]{width:104px}.slate-el canvas{pointer-events:none}.layer-row{display:flex;align-items:center;gap:4px;border-radius:6px;padding:1px 2px}.layer-row.sel{background:color-mix(in srgb,var(--accent) 8%,transparent)}.layer-row .chip{padding:1px 6px;font-size:11px;line-height:1.5}.layer-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-dim);font:inherit;font-size:12px;padding:2px 6px;cursor:pointer}.layer-name:hover{border-color:var(--border-strong);color:var(--text)}.layer-row.sel .layer-name{color:var(--accent)}.slate-left input[type=range]{width:104px}.slate-right{flex:1 1 auto;min-width:250px;gap:10px}.slate-group,.slate-right{display:flex;flex-direction:column}.slate-group{gap:8px;padding:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px}.slate-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.slate-num{width:68px}.slate-right select,.slate-right textarea{background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:6px 8px;font:inherit}.slate-right textarea{resize:vertical}a.chip{text-decoration:none}.crumbbar{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-dim);min-width:0}.crumbbar a{color:var(--text-dim);text-decoration:none;white-space:nowrap}.crumbbar a:hover{color:var(--accent)}.crumbbar .cnow{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spin{display:inline-block;width:9px;height:9px;border:2px solid color-mix(in srgb,currentColor 30%,transparent);border-top-color:currentcolor;border-radius:50%;animation:kspin .8s linear infinite;vertical-align:-1px}@keyframes kspin{to{transform:rotate(1turn)}}.rchip{display:inline-flex;align-items:center;border:1px solid var(--border-strong);border-radius:999px;padding:1px 3px 1px 10px;color:var(--text-dim);font-size:12px}.rchip.on{color:var(--accent);border-color:var(--accent)}.rchip-main{background:transparent;border:none;color:inherit;font:inherit;font-size:12px;cursor:pointer;padding:1px 2px;display:inline-flex;align-items:center;gap:5px}.rchip-main:hover{color:var(--text)}.rchip-x{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:10px;padding:1px 5px}.rchip-x:hover{color:var(--err)}.modal-back{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(6,8,10,.72)}.modal{width:min(560px,96vw);max-height:88vh;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 18px 50px rgba(0,0,0,.45)}.modal,.modal-head{background:var(--surface)}.modal-head{position:-webkit-sticky;position:sticky;top:0;display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border)}.modal-head .chip{margin-left:auto}.modal-body{gap:12px;padding:12px 14px}.conn-group,.modal-body{display:flex;flex-direction:column}.conn-group{gap:4px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px}.conn-row{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:13px}.conn-row input[type=checkbox]{width:auto}.conn-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conn-row button.danger{padding:2px 8px;font-size:12px}