:root{--bg:#0e0f12;--panel:#16181d;--panel2:#1d2027;--hair:#2a2e37;--ink:#f0f1f4;--muted:#9aa1ae;--faint:#6b7280;--accent:#5b8cff;--accent-hover:#7ba0ff;--on-accent:#0b1020;--ok:#35c48b;--ok-bg:#12291f;--bad:#ff6b5a;--bad-bg:#2b1512;--warn:#f0b429;--sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--radius:14px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:15px;line-height:1.55}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{border:1px solid var(--hair);background:var(--panel2);color:var(--ink);cursor:pointer;border-radius:10px;padding:9px 15px;font-family:inherit;font-size:14px;font-weight:500;transition:border-color .12s,background .12s,transform 60ms}button:hover:not(:disabled){border-color:var(--accent);background:#232732}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button.danger{color:var(--bad);border-color:#7a3128}button.danger:hover:not(:disabled){background:var(--bad-bg);border-color:var(--bad)}button.rec{color:#fff;background:#c0392b;border-color:#c0392b;font-weight:600}input,textarea,select{background:var(--panel2);width:100%;color:var(--ink);border:1px solid var(--hair);border-radius:10px;padding:10px 13px;font-family:inherit;font-size:14.5px}input:focus,textarea:focus,select:focus{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px;border-color:var(--accent)}.top{border-bottom:1px solid var(--hair);background:var(--panel);z-index:20;align-items:center;gap:14px;padding:13px 22px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;font-size:19px;font-weight:700}.brand span{color:var(--accent)}.by{color:var(--faint);border-left:1px solid var(--hair);padding-left:13px;font-size:11.5px}.by a{color:var(--muted)}.spacer{margin-left:auto}.wrap{max-width:1500px;margin:0 auto;padding:26px 22px 70px}.foot{border-top:1px solid var(--hair);color:var(--faint);text-align:center;padding:18px 22px;font-size:12.5px}.head h1{letter-spacing:-.02em;margin:0 0 5px;font-size:27px}.head p{color:var(--muted);margin:0 0 20px}.card{background:var(--panel);border:1px solid var(--hair);border-radius:var(--radius);margin-bottom:16px;padding:18px 20px}.hint{color:var(--faint);font-size:13px}.none{color:var(--faint);font-size:13.5px;font-style:italic}.err{background:var(--bad-bg);color:#ffb4a8;border:1px solid #7a3128;border-radius:10px;margin:12px 0;padding:10px 13px;font-size:13.5px}.ok-note{background:var(--ok-bg);color:#8ee9be;border:1px solid #1e5c42;border-radius:10px;margin:12px 0;padding:10px 13px;font-size:13.5px}.row{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.signin{justify-content:center;align-items:center;min-height:78vh;display:flex}.signin .card{text-align:center;width:min(92vw,400px)}.signin h1{letter-spacing:-.03em;margin:6px 0 4px;font-size:30px}.signin .tagline{color:var(--muted);margin-bottom:22px;font-size:14px}.divider{color:var(--faint);align-items:center;gap:11px;margin:17px 0;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:var(--hair);flex:1;height:1px}.grid{grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:15px;display:grid}.tile{background:var(--panel);border:1px solid var(--hair);border-radius:var(--radius);cursor:pointer;transition:border-color .12s,transform 80ms;overflow:hidden}.tile:hover{border-color:var(--accent);transform:translateY(-2px)}.tile .thumb{aspect-ratio:16/10;color:var(--faint);border-bottom:1px solid var(--hair);background:#000;justify-content:center;align-items:center;font-size:12px;display:flex}.tile .thumb video{object-fit:contain;background:#000;width:100%;height:100%}.tile .body{padding:12px 14px}.tile .body b{text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px;font-size:14.5px;display:block;overflow:hidden}.tile .body p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12.5px;display:-webkit-box;overflow:hidden}.badge{text-transform:uppercase;letter-spacing:.05em;background:var(--panel2);color:var(--muted);border:1px solid var(--hair);border-radius:6px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-block}.badge.working{color:#ffd28a;background:#2a2113;border-color:#6b4d1f}.badge.ready{color:#8ee9be;background:var(--ok-bg);border-color:#1e5c42}.badge.failed{color:#ffb4a8;background:var(--bad-bg);border-color:#7a3128}.badge.published{color:#cbb6ff;background:#1f1a2e;border-color:#4a3a7a}.rec-preview{aspect-ratio:16/9;border:1px solid var(--hair);object-fit:contain;background:#000;border-radius:12px;width:100%}.rec-dot{background:#ff4d3d;border-radius:50%;width:9px;height:9px;margin-right:7px;animation:1.1s infinite pulse;display:inline-block}@keyframes pulse{50%{opacity:.25}}.bar{background:var(--panel2);border-radius:3px;height:5px;margin-top:9px;overflow:hidden}.bar i{background:var(--accent);height:100%;transition:width .2s;display:block}.editor{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:18px;display:grid}.stage-dock{z-index:6;background:var(--bg);padding-bottom:10px;position:sticky;top:58px}.stage-dock .stage video{object-fit:contain;max-height:46vh;margin:0 auto}.stage-dock .zoom-layer,.stage-dock .stage{justify-content:center;display:flex}.side{scrollbar-width:thin;max-height:calc(100vh - 72px);position:sticky;top:58px;overflow-y:auto}@media (max-width:1000px){.stage-dock,.side{max-height:none;position:static}.stage-dock .stage video{max-height:none}.editor{grid-template-columns:1fr}}.stage{border:1px solid var(--hair);-webkit-user-select:none;user-select:none;background:#000;border-radius:12px;width:100%;position:relative;overflow:hidden}.stage video{width:100%;display:block}.zoom-layer{transform-origin:50%;will-change:transform;width:100%;position:relative}.stage.aiming{cursor:crosshair}.cap-layer{text-align:center;cursor:grab;touch-action:none;max-width:88%;position:absolute;transform:translate(-50%,-50%)}.cap-layer:active{cursor:grabbing}.cap-layer:hover span{outline-offset:3px;outline:1px dashed #ffffff8c}.cap-layer span{color:#fff;background:#000000a8;border-radius:6px;padding:4px 11px;font-size:clamp(13px,2.4vw,21px);line-height:1.35;display:inline-block}.drag-rect{border:2px solid var(--accent);pointer-events:none;background:#5b8cff29;border-radius:3px;position:absolute}.transport{align-items:center;gap:11px;margin-top:11px;display:flex}.tcode{font-family:var(--mono);color:var(--muted);min-width:108px;font-size:12.5px}.tl{background:var(--panel);border:1px solid var(--hair);border-radius:12px;margin-top:14px;padding:13px 15px}.tl-lane{background:var(--panel2);cursor:pointer;border-radius:7px;height:34px;margin-top:7px;position:relative;overflow:hidden}.tl-lane.cap{height:26px}.tl-label{text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin-top:12px;font-size:11px;font-weight:600}.tl-trim{border-left:3px solid var(--accent);border-right:3px solid var(--accent);background:#5b8cff24;position:absolute;top:0;bottom:0}.tl-handle{cursor:ew-resize;z-index:3;width:11px;position:absolute;top:0;bottom:0}.tl-dim{background:#00000080;position:absolute;top:0;bottom:0}.tl-zoom{color:#cfe0ff;cursor:grab;background:#2f4a8f;border:1px solid #5b8cff;border-radius:5px;justify-content:center;align-items:center;font-size:10.5px;display:flex;position:absolute;top:3px;bottom:3px;overflow:hidden}.tl-zoom.sel{background:#3d61b8;box-shadow:0 0 0 2px #5b8cff80}.tl-cap{color:#a9e8c8;white-space:nowrap;cursor:pointer;background:#2c3a33;border:1px solid #3f7a5e;border-radius:5px;padding:0 5px;font-size:10.5px;position:absolute;top:3px;bottom:3px;overflow:hidden}.tl-cap.sel{background:#37564a;box-shadow:0 0 0 2px #3f7a5e8c}.tl-play{pointer-events:none;z-index:5;background:#fff;width:2px;position:absolute;top:-3px;bottom:-3px}.side .card{padding:15px 16px}.side h3{text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin:0 0 11px;font-size:13px}.kv{color:var(--muted);margin-bottom:5px;font-size:13px}.kv b{color:var(--ink)}.tags{flex-wrap:wrap;gap:5px;margin-top:9px;display:flex}.tag{background:var(--panel2);border:1px solid var(--hair);color:var(--muted);border-radius:999px;padding:2px 9px;font-size:11px}.cap-edit{align-items:center;gap:7px;margin-bottom:7px;display:flex}.cap-edit .t{font-family:var(--mono);color:var(--faint);min-width:76px;font-size:11px}.spin{border:2px solid var(--hair);border-top-color:var(--accent);vertical-align:-3px;border-radius:50%;width:15px;height:15px;margin-right:8px;animation:.7s linear infinite sp;display:inline-block}@keyframes sp{to{transform:rotate(360deg)}}.tl-lane.strip{background-color:#000;height:62px}.tl-lane.strip .tl-trim{background:#5b8cff1a}.tl-seg{border-left:3px solid var(--accent);border-right:3px solid var(--accent);box-sizing:border-box;background:#5b8cff1a;position:absolute;top:0;bottom:0}.tl-seg.sel{box-shadow:inset 0 0 0 2px var(--accent);background:#5b8cff38}.tl-seg-n{color:#cfe0ff;text-shadow:0 1px 2px #000;pointer-events:none;font-size:10px;font-weight:700;position:absolute;top:2px;left:5px}.tl-gap{cursor:pointer;background:#7c1d16;border-left:1px solid #b4402f;border-right:1px solid #b4402f;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.tl-gap:hover{background:#98261d}.tl-gap span{color:#ffd9d3;letter-spacing:.04em;white-space:nowrap;pointer-events:none;font-size:10px;font-weight:700}.seg-list{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.seg-chip{font-family:var(--mono);background:var(--panel2);border:1px solid var(--hair);border-radius:7px;align-items:center;gap:7px;padding:3px 8px;font-size:11.5px;display:flex}.seg-chip.sel{border-color:var(--accent)}.seg-chip button{color:var(--bad);background:0 0;border:none;padding:0 4px;font-size:14px;line-height:1}.blur-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.annot-shape{border:3px solid;border-radius:4px;position:absolute;inset:0}.annot-shape.circle{border-radius:50%}.annot-arrow{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.drag-rect.blur{background:#ffcc0024;border-color:#fc0}.drag-rect.annot{background:#ff3b301f;border-color:#ff3b30}.swatch{cursor:pointer;border:2px solid #0000;border-radius:5px;width:20px;height:20px;padding:0}.swatch.sel{box-shadow:0 0 0 2px var(--accent);border-color:#fff}.ov-row{font-size:12.5px;font-family:var(--mono);border-bottom:1px solid var(--hair);align-items:center;gap:7px;padding:5px 0;display:flex}.ov-row button{padding:2px 7px;font-size:12px}.folders{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.folder-chip{align-items:center;display:inline-flex}.folder-chip button.danger{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0;padding:9px 8px}.folder-chip button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.erect{cursor:grab;touch-action:none;border:2px dashed;border-radius:3px;position:absolute}.erect:active{cursor:grabbing}.erect:hover{border-style:solid}.erect.passive{pointer-events:none;border-style:dashed}.erect-handle{border:1.5px solid #0e0f12;border-radius:2px;width:11px;height:11px;margin:-6px 0 0 -6px;position:absolute;box-shadow:0 1px 3px #0009}.erect-del{border:1px solid var(--hair);width:21px;height:21px;color:var(--bad);opacity:0;background:#1d2027;border-radius:50%;padding:0;font-size:15px;line-height:1;transition:opacity .12s;position:absolute;top:-11px;right:-11px}.erect:hover .erect-del{opacity:1}.erect-label{white-space:nowrap;pointer-events:none;background:#000000b3;border-radius:5px;margin-top:5px;padding:2px 7px;font-size:clamp(11px,1.6vw,16px);font-weight:600;position:absolute;top:100%;left:0}.ink{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.erect.sel{border-style:solid;box-shadow:0 0 0 2px #ffffffe6,0 0 10px #0009}
