*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#1d1d1d;--panel:#2a2a2a;--panel-alt:#232323;--panel-header:#383838;--panel-header-active:#4a4a4a;--border:#141414;--border-soft:#3d3d3d;--text:#d6d6d6;--text-dim:#8a8a8a;--text-muted:#6a6a6a;--accent:#5b8cd6;--accent-glow:#5b8cd62e;--highlight:#c89b3a;--danger:#d04848;--track-bg:#232323;--row-even:#232323;--row-odd:#2a2a2a;--row-hover:#333}html,body,#root{height:100%;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:12px;overflow:hidden}.mono,.timecode,code{font-family:JetBrains Mono,Fira Code,SF Mono,Menlo,monospace}button{font:inherit;color:var(--text);border:1px solid var(--border);cursor:pointer;background:#3a3a3a;border-radius:2px;padding:3px 8px;font-size:11px;transition:background 80ms}button:hover:not(:disabled){background:#464646}button:active:not(:disabled){background:#555}button:disabled{opacity:.5;cursor:default}input,select{font:inherit;color:var(--text);border:1px solid var(--border-soft);background:#1f1f1f;border-radius:2px;outline:none;padding:3px 6px;font-size:11px}input[type=checkbox]{width:13px;height:13px;accent-color:var(--accent)}input:focus,select:focus{border-color:var(--accent)}h4{text-transform:uppercase;color:var(--text-dim);letter-spacing:.6px;margin-bottom:6px;font-size:10px;font-weight:600}.hint{color:var(--text-dim);font-size:11px;font-style:italic}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--panel-alt)}::-webkit-scrollbar-thumb{border:2px solid var(--panel-alt);background:#4a4a4a;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#5a5a5a}.inspector-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim,#888);border-bottom:1px solid var(--border,#2a2a2a);margin-bottom:6px;padding-bottom:3px;font-size:10px;font-weight:700}.inspector-summary-table{border-collapse:collapse;width:100%;font-size:11px}.inspector-summary-table td{vertical-align:top;padding:2px 4px}.inspector-summary-table td:first-child{width:100px;color:var(--text-dim,#888)}.inspector-param-table td{padding:1px 2px}select,input[type=text],input[type=number],input[type=search]{appearance:none;background:var(--bg,#1a1a1a);color:var(--text,#ddd);border:1px solid var(--border,#333);box-shadow:none;border-radius:2px;outline:none;padding:4px 8px;font-family:inherit;font-size:12px;line-height:1.2;transition:border-color .1s}select{cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%23999' d='M0 0l5 6 5-6z'/></svg>");background-position:right 8px center;background-repeat:no-repeat;background-size:10px 6px;padding-right:22px}select:hover,input[type=text]:hover,input[type=number]:hover,input[type=search]:hover{border-color:var(--text-dim,#888)}select:focus,input[type=text]:focus,input[type=number]:focus,input[type=search]:focus{border-color:var(--accent,#4a9eff)}select:disabled,input:disabled{opacity:.5;cursor:not-allowed}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.app{flex-direction:column;height:100vh;display:flex;position:relative;overflow:hidden}.drop-overlay{z-index:9999;border:2px dashed var(--accent);background:#4a9eff1f;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.drop-message{background:var(--panel);border:1px solid var(--accent);text-align:center;color:var(--text);border-radius:8px;padding:24px 40px;font-size:16px}.drop-hint{color:var(--text-dim);margin-top:4px;font-size:11px}.header{background:var(--panel-header);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;height:32px;padding:0 8px;font-size:11px;display:flex}.header-left{align-items:center;gap:10px;display:flex}.header-title{color:var(--text);white-space:nowrap;letter-spacing:.2px;font-size:12px;font-weight:600}.demo-title-input{width:180px;font-size:11px}.header-center{align-items:center;gap:4px;display:flex}.header-center button{padding:3px 8px;line-height:1}.timecode{color:var(--text);text-align:center;letter-spacing:.5px;min-width:96px;font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-size:12px}.header-right{align-items:center;gap:4px;display:flex}.build-btn{border-color:var(--border);background:#3a3a3a}.build-btn:hover:not(:disabled){background:#464646}.build-btn.building{color:#ffd966;background:#6b5a1a;border-color:#7a6a2a}.build-btn.ok{color:#b8ffc8;background:#1e5a2d;border-color:#2a7040}.build-btn.error{color:#ffb8b8;background:#5a1f1f;border-color:#702a2a}.audio-analyzing-badge{color:#f0d878;white-space:nowrap;background:#5a4a1e;border:1px solid #6a5a25;border-radius:3px;align-items:center;gap:4px;padding:4px 8px;font-size:12px;display:inline-flex}.build-output{border-bottom:1px solid var(--border);flex-shrink:0;max-height:120px;padding:6px 32px 6px 12px;font:11px SF Mono,Menlo,monospace;position:relative;overflow-y:auto}.build-output pre{white-space:pre-wrap;word-break:break-all;margin:0}.build-output-ok{color:#8f8;background:#1a2e1a}.build-output-error{color:#f88;background:#2e1a1a}.build-output-dismiss{color:inherit;cursor:pointer;opacity:.5;background:0 0;border:none;padding:2px 6px;font-size:14px;position:absolute;top:4px;right:4px}.build-output-dismiss:hover{opacity:1}.preview-pane.build-output-pane{flex-direction:column;flex:none;min-width:0;display:flex;overflow:hidden}.build-output-pane.build-output-ok{background:#1a2e1a}.build-output-pane.build-output-error{background:#2e1a1a}.build-output-pre{white-space:pre-wrap;word-break:break-all;color:#cfc;flex:1;margin:0;padding:6px 12px;font:11px SF Mono,Menlo,monospace;overflow-y:auto}.build-output-pane.build-output-error .build-output-pre{color:#fcc}.icon-btn,.icon-text-btn{white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.icon-btn{padding:2px 6px}.icon-text-btn{padding:4px 8px}.btn-primary{background:var(--accent,#4a9eff);border-color:var(--accent,#4a9eff);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-danger{color:#fdd;background:#5a1e1e;border-color:#7a2828}.btn-danger:hover:not(:disabled){background:#6a2828}.btn-compact{padding:1px 6px;font-size:10px}.stop-square{background:currentColor;width:9px;height:9px;display:inline-block}@keyframes uprough-spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite uprough-spin}.app-boot{background:var(--bg,#1a1a1a);color:var(--text-dim,#888);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-family:ui-monospace,monospace;font-size:13px;display:flex;position:fixed;inset:0}.app-boot-label{letter-spacing:.04em}.track-group{position:relative}.track-properties{border-bottom:1px solid var(--border);border-top:1px solid var(--border);background:#0003;flex-direction:column;padding:4px 0;font-size:11px;display:flex}.track-properties.clip-editor{flex:none;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));align-content:start;gap:0 16px;min-width:0;max-width:1100px;max-height:none;padding:10px 16px 14px;display:grid;overflow:hidden visible}.track-properties.clip-editor>.clip-editor-toolbar,.track-properties.clip-editor>.clip-editor-wide,.track-properties.clip-editor>.inspector-compat-warning{grid-column:1/-1}.track-properties.clip-editor .inspector-section{margin-bottom:20px}.track-properties.clip-editor .inspector-section h4{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin:0 0 6px;font-size:11px;font-weight:600}.track-properties.clip-editor .inspector-field select,.track-properties.clip-editor .inspector-field input[type=text]{box-sizing:border-box;width:100%;max-width:100%}.track-properties.clip-editor .inspector-field input[type=number]{width:80px}.track-properties.clip-editor .effect-row{max-width:100%}.track-properties.clip-editor .effect-row select{flex:1;min-width:0}.track-properties.clip-editor .field-hint{margin-left:8px;display:inline-block}.prop-row{min-height:22px;color:var(--text);align-items:center;gap:8px;padding:3px 12px 3px 24px;display:flex}.prop-row.prop-clip-header{color:var(--text-dim);background:#ffffff08;font-style:italic}.prop-row.prop-group-header{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;padding-top:6px;font-size:10px;font-weight:600}.prop-row.prop-sub{padding-left:40px}.prop-row.prop-empty{color:var(--text-dim);font-style:italic}.prop-name{color:var(--text-dim);flex:0 0 160px}.prop-value{color:var(--text);flex:1;font-family:JetBrains Mono,SF Mono,Menlo,monospace}.prop-input{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:3px;padding:3px 6px;font-family:inherit;font-size:11px}.prop-input.prop-num{width:80px;font-family:JetBrains Mono,SF Mono,Menlo,monospace}.prop-input.prop-bool{width:auto}.prop-input[type=range]{max-width:220px;padding:0}.prop-suffix{color:var(--text-dim);font-size:10px}.pattern-editor-panel{background:var(--panel);border-top:1px solid var(--border);flex-direction:column;min-height:0;display:flex;overflow:hidden}.pattern-editor-header{background:var(--panel-header);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:4px 8px;font-size:11px;display:flex}.pattern-editor-header>span:first-of-type{font-weight:600}.pattern-editor-order{align-items:center;gap:4px;display:flex}.pattern-editor-order select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:3px;font-family:SF Mono,Menlo,monospace;font-size:11px}.pattern-editor-meta{color:var(--text-dim)}.pattern-editor-error-inline{color:#f88}.pattern-editor-empty{text-align:center;color:var(--text-dim);padding:16px;font-size:12px}.pattern-grid-scroll{background:#1a1a2e;outline:none;flex:1;font-family:JetBrains Mono,Fira Code,SF Mono,Menlo,monospace;font-size:13px;overflow:auto}.pattern-grid-scroll:focus{outline:1px solid #558}.pattern-grid{border-collapse:collapse;width:max-content}.pattern-grid thead th{text-align:left;letter-spacing:.5px;color:#8a8aa8;text-transform:uppercase;background:#14142a;border-bottom:1px solid #224;padding:4px 6px;font-size:11px;font-weight:600;position:sticky;top:0}.pattern-grid td{white-space:pre;border-right:1px solid #224;padding:2px 6px;line-height:1.3}.pattern-grid tr{background:#1e1e34}.pattern-grid tr:nth-child(2n){background:#1a1a2e}.pattern-grid tr.pg-beat{background:#224}.pattern-grid tr.pg-row-sel{background:#2a2a50}.pattern-grid td.pg-row{color:#6a6a88;text-align:right;background:#14142a;border-right:1px solid #224;min-width:32px;font-weight:600}.pattern-grid tr.pg-row-sel td.pg-row{color:#fff;background:#1f1f44}.pattern-grid td.pg-note{color:#f0f0f2;min-width:32px}.pattern-grid td.pg-inst{color:#fbbf24;min-width:24px}.pattern-grid td.pg-fx{color:#f97316;min-width:36px}.pattern-grid td.pg-fx-sync{color:#00d4aa;font-weight:600}.pattern-grid td.pg-empty{color:#404048}.pattern-grid td.pg-cell-sel{background:#00d4aa;font-weight:600;color:#0a0a1a!important}.modal-backdrop{z-index:100;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-panel{background:var(--panel);border:1px solid var(--border);border-radius:6px;flex-direction:column;min-width:360px;max-width:560px;display:flex;overflow:hidden}.modal-header{background:var(--panel-header);border-bottom:1px solid var(--border);align-items:center;padding:8px 12px;display:flex}.modal-header h2{flex:1;margin:0;font-size:14px;font-weight:600}.modal-close{color:var(--text);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px}.modal-body{flex-direction:column;gap:10px;padding:12px;display:flex}.settings-row{align-items:center;gap:10px;font-size:12px;display:flex}.settings-row label{color:var(--text-dim);flex:0 0 130px}.settings-row select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:3px;flex:1;padding:4px 6px}.settings-summary{background:var(--bg);border:1px solid var(--border);border-radius:4px;margin-top:6px;padding:8px}.settings-summary-title{text-transform:uppercase;color:var(--text-dim);margin-bottom:6px;font-size:11px}.settings-summary table{width:100%;font-size:12px}.settings-summary table td:first-child{color:var(--text-dim);padding-right:12px}.settings-summary table td:last-child{color:var(--text);text-align:right}.settings-compat-warnings{background:#ff8c0014;border:1px solid #ff8c0066;border-radius:4px;margin-top:12px;padding:10px 12px}.settings-compat-title{color:#fa4;align-items:center;gap:6px;margin-bottom:8px;font-size:12px;font-weight:600;display:flex}.settings-compat-list{margin:0 0 8px;padding:0;font-size:12px;list-style:none}.settings-compat-list>li{padding:4px 0}.settings-compat-list>li+li{border-top:1px solid var(--border)}.settings-compat-clip{color:var(--text);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px}.settings-compat-reasons{color:var(--text-dim);margin:4px 0 0;padding-left:18px;font-size:11px;list-style:outside}.settings-compat-hint{color:var(--text-dim);font-size:11px;font-style:italic}.header-compat-badge{color:#fa4;cursor:pointer;background:#ff8c001a;border:1px solid #ff8c004d;border-radius:3px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;display:inline-flex}.header-compat-badge:hover{background:#ff8c0033}.library-item-compat{color:#fa4;cursor:help;align-items:center;margin-left:4px;display:inline-flex}.inspector-compat-warning{background:#ff8c0014;border:1px solid #ff8c0066;border-radius:3px;margin-top:8px;padding:8px 10px;font-size:11px}.inspector-compat-title{color:#fa4;align-items:center;gap:4px;margin-bottom:4px;font-weight:600;display:flex}.inspector-compat-warning ul{color:var(--text-dim);margin:0;padding-left:16px;list-style:outside}.preview-panel{border-bottom:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.preview-panel-inner{background:var(--panel);flex:1;min-height:0;display:flex}.preview-panel-collapsed{background:var(--panel-header);border-bottom:1px solid var(--border);text-transform:uppercase;height:28px;color:var(--text-dim);align-items:center;gap:6px;padding:0 8px;font-size:11px;font-weight:600;display:flex}.collapsed-indicator{color:#4aff6b;margin-left:auto;font-size:10px}.preview-pane{background:var(--panel);flex-direction:column;flex:1;display:flex}.preview-pane+.preview-pane{border-left:1px solid var(--border)}.pane-header{height:24px;color:var(--text);background:var(--panel-header);border-bottom:1px solid var(--border);letter-spacing:.2px;flex-shrink:0;align-items:center;gap:6px;padding:4px 8px;font-size:11px;font-weight:600;display:flex}.pane-header .icon-btn,.pane-header .icon-text-btn{padding:2px 6px;font-size:10px}.puae-toggle-btn{text-transform:none;margin-left:auto;padding:1px 8px;font-size:10px;font-weight:400}.puae-pane{aspect-ratio:720/568;background:var(--panel);flex-direction:column;flex:none;align-self:flex-start;min-width:200px;height:100%;display:flex;position:relative;overflow:hidden}.puae-busy-overlay{color:var(--fg);pointer-events:none;z-index:5;background:#0000009e;flex-direction:column;justify-content:center;align-items:center;gap:10px;animation:80ms ease-out uprough-fade-in;display:flex;position:absolute;inset:0}.puae-busy-overlay .puae-busy-label{letter-spacing:.02em;opacity:.92;font-size:13px}@keyframes uprough-fade-in{0%{opacity:0}to{opacity:1}}.canvas-osd{pointer-events:none;z-index:6;letter-spacing:.02em;color:#d8e0e8;text-shadow:0 1px 2px #000000a6;-webkit-user-select:none;user-select:none;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;position:absolute;inset:0}.canvas-osd .osd-pill{white-space:nowrap;background:#0000008c;border:1px solid #ffffff14;border-radius:4px;align-items:center;gap:4px;padding:3px 7px;display:flex;position:absolute}.canvas-osd .osd-tl{top:6px;left:6px}.canvas-osd .osd-tr{top:6px;right:6px}.canvas-osd .osd-bl{bottom:6px;left:6px}.canvas-osd .osd-br{bottom:6px;right:6px}.canvas-osd .osd-sep{opacity:.4;margin:0 2px}.canvas-osd .osd-mono{letter-spacing:0}.canvas-osd .osd-dim{opacity:.7}.canvas-osd .osd-warn{color:#ffe6cc;background:#8c3c00b3;border-color:#ffb45066}.canvas-osd .osd-disk-on{color:#ff4030;animation:.6s ease-in-out infinite uprough-disk-pulse}.canvas-osd .osd-disk-off{color:#5a6068}@keyframes uprough-disk-pulse{0%,to{opacity:1}50%{opacity:.45}}.canvas-osd .osd-guru-icon{color:#ffb000}.puae-osd-toggle{margin-left:auto}.puae-osd-toggle.is-active{background:#ffffff14}.puae-pane .pane-header{flex-shrink:0}.puae-canvas-mount{background:#000;flex:auto;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.puae-canvas-wrap{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.puae-canvas-host{justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}.puae-canvas-host canvas{object-fit:contain;image-rendering:pixelated;display:block;width:100%!important;height:100%!important}.debug-pane-wrap{background:var(--panel);flex-direction:column;flex:1 0 auto;display:flex;overflow:hidden}.debug-pane-wrap.pane-collapsed{flex:none}.pane-header-collapsed{flex-direction:column;justify-content:flex-start;width:100%;height:100%;padding-top:4px}.collapsed-vertical{writing-mode:vertical-rl;color:var(--text-dim);letter-spacing:.5px;white-space:nowrap;margin-top:4px;font-size:10px;transform:rotate(180deg)}.dbg-content{flex:auto;min-height:0;padding:6px 8px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1.35;overflow-y:auto}.dbg-section+.dbg-section{margin-top:10px}.dbg-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);margin-bottom:4px;font-size:10px;font-weight:600}.dbg-table{border-collapse:collapse;width:100%;font-size:11px}.dbg-table td{white-space:nowrap;padding:1px 6px 1px 0}.dbg-table td:first-child{color:var(--text-dim);width:130px}.dbg-mailbox-missing{color:var(--text-dim);font-size:11px;font-style:italic}.dbg-memview-controls{align-items:center;gap:6px;margin-bottom:4px;font-size:11px;display:flex}.dbg-memview-controls input{background:var(--bg);border:1px solid var(--border);color:var(--text);width:110px;padding:2px 4px;font-family:inherit;font-size:11px}.dbg-memview-controls button{background:var(--button-bg,#333);color:var(--text);border:1px solid var(--border);cursor:pointer;padding:2px 8px;font-size:11px}.dbg-memview-tick{color:var(--text-dim);margin-left:auto;font-size:10px}.dbg-memview-out{background:var(--bg);border:1px solid var(--border);white-space:pre;max-height:360px;margin:0;padding:4px 6px;font-family:inherit;font-size:10px;line-height:1.3;overflow:auto}.puae-canvas-overlay{color:var(--text-dim);letter-spacing:.04em;background:#000000d9;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:12px;display:flex;position:absolute;inset:0}.puae-canvas-overlay.puae-canvas-error{color:var(--danger)}.puae-canvas-spinner{border:3px solid #ffffff1f;border-top-color:#fff9;border-radius:50%;width:28px;height:28px;animation:.9s linear infinite uprough-spin}.puae-canvas-overlay-label{opacity:.85}.puae-canvas-overlay.puae-canvas-frozen{color:var(--warning,#ffb547);gap:8px}.puae-canvas-overlay.puae-canvas-frozen .puae-canvas-overlay-label{opacity:1;font-weight:600}.puae-canvas-overlay.puae-canvas-frozen .puae-canvas-overlay-sublabel{opacity:.7;color:var(--text-dim);margin-bottom:6px;font-size:11px}.overview-pane{flex:none;min-width:0;overflow:hidden}.puae-placeholder{background:var(--bg);color:var(--text-dim);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.puae-placeholder button{background:#383838;padding:6px 16px;font-size:13px}.overview-content{flex:1;padding:10px 12px;overflow-y:auto}.overview-section{margin-bottom:14px}.overview-title{color:var(--accent);margin-bottom:8px;font-size:15px;font-weight:700}.overview-heading{text-transform:uppercase;color:var(--text-dim);letter-spacing:.5px;margin-bottom:6px;font-size:10px;font-weight:600}.overview-stat{justify-content:space-between;padding:2px 0;font-size:12px;display:flex}.overview-label{color:var(--text-dim)}.overview-value{color:var(--text);font-family:SF Mono,Menlo,monospace;font-size:11px}.overview-track{background:#2a2a2a;border-radius:3px;align-items:center;gap:6px;margin:2px 0;padding:3px 6px;font-size:11px;display:flex}.overview-track-id{font-weight:600}.overview-track-layer{color:var(--accent);text-transform:uppercase;font-size:9px}.overview-track-clips{color:var(--text-dim);margin-left:auto}.overview-track-active{margin-left:4px;font-size:10px;font-weight:500}.overview-asset{align-items:center;gap:6px;padding:2px 0;font-size:11px;display:flex}.overview-asset-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.overview-asset-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.overview-asset-type{color:var(--text-dim);text-transform:uppercase;font-size:10px}.top-section{border-bottom:1px solid var(--border);flex-direction:row;flex-shrink:0;min-height:0;display:flex;overflow:hidden}.preview-wrap{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.timeline-body{flex:1;min-height:0;display:flex;overflow:hidden}.timeline-outline{background:var(--panel,#1a1a1a);border-right:1px solid var(--border,#333);-webkit-user-select:none;user-select:none;flex:0 0 240px;font-size:11px;overflow-y:auto}.outline-header{background:var(--panel-header,#222);border-bottom:1px solid var(--border,#333);letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim,#888);z-index:2;padding:4px 8px;font-size:10px;font-weight:600;position:sticky;top:0}.outline-empty{color:var(--text-dim,#888);padding:12px 8px;font-size:10px;font-style:italic}.outline-layer-toggle{border:1px solid var(--border,#2a2a2a);cursor:pointer;background:#ffffff0f;border-radius:8px;flex-shrink:0;width:26px;height:14px;margin-right:8px;padding:0;transition:background .12s,border-color .12s;position:relative}.outline-layer-toggle:hover{border-color:var(--accent,#6ab)}.outline-layer-toggle.on{background:var(--accent,#6ab);border-color:var(--accent,#6ab)}.outline-layer-toggle .outline-layer-toggle-thumb{pointer-events:none;background:#ddd;border-radius:50%;width:10px;height:10px;transition:transform .12s,background .12s;position:absolute;top:1px;left:1px;box-shadow:0 1px 2px #0006}.outline-layer-toggle.on .outline-layer-toggle-thumb{background:#fff;transform:translate(12px)}.outline-layer-delete{width:16px;height:16px;color:var(--text-dim,#888);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;flex-shrink:0;margin-left:4px;margin-right:4px;padding:0;font-family:inherit;font-size:13px;line-height:14px}.outline-layer-delete:hover{color:#fff;background:var(--danger,#d04444);border-color:var(--danger,#d04444)}.tl-effect-resize{color:#0000;cursor:ew-resize;-webkit-user-select:none;user-select:none;pointer-events:auto;background:0 0;justify-content:center;align-items:center;width:10px;font-size:11px;font-weight:700;line-height:1;transition:background .1s,color .1s;display:flex;position:absolute;top:0;bottom:0}.tl-effect-resize-left{left:0}.tl-effect-resize-right{right:0}.tl-effect-block:hover .tl-effect-resize{color:#ffffff73;background:#0000002e}.tl-effect-block:hover .tl-effect-resize-left{border-right:1px solid #00000040}.tl-effect-block:hover .tl-effect-resize-right{border-left:1px solid #00000040}.tl-effect-resize:hover{color:#fff;background:#ffffff2e}.tl-effect-zorder{pointer-events:auto;flex-direction:column;gap:0;display:none;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.tl-effect-block:hover .tl-effect-zorder{display:flex}.tl-effect-zorder-btn{color:#111;cursor:pointer;background:#ffffffd9;border:1px solid #00000059;width:14px;height:12px;padding:0;font-family:inherit;font-size:10px;line-height:10px}.tl-effect-zorder-btn:first-child{border-bottom:0;border-radius:3px 3px 0 0}.tl-effect-zorder-btn:last-child{border-radius:0 0 3px 3px}.tl-effect-zorder-btn:hover{background:var(--accent,#6ab);color:#fff}.tl-effect-block.drop-target{box-shadow:0 0 0 2px #5cf,0 0 8px #5cccff80}.tl-effect-block.drop-target.drop-danger{box-shadow:0 0 0 2px #f55,0 0 8px #ff505099}.tl-effect-block.disabled{opacity:.45;filter:grayscale(.4);background-image:repeating-linear-gradient(-45deg,#0000002e 0 4px,#ffffff0f 4px 8px);border-style:dashed!important}.tl-effect-block.disabled.selected{opacity:.7}.outline-row{cursor:default;border-bottom:1px solid #ffffff08;align-items:center;gap:4px;height:18px;padding:1px 6px;display:flex}.outline-row:hover{background:#ffffff0a}.outline-clip-row{cursor:pointer;background:#5cccff0f}.outline-effect-row{cursor:pointer;opacity:.85;padding-left:14px}.outline-param-row{cursor:pointer;padding-left:26px;font-size:10px}.outline-param-row.editing-kf{background:#5cccff1f}.outline-track-row{color:var(--text,#ddd);background:#7882c814;border-bottom:1px solid #7882c82e;align-items:center;gap:4px;padding-left:8px;font-size:11px;display:flex}.outline-track-row .outline-meta{color:var(--text-dim,#888);margin-left:auto;padding-right:8px;font-size:10px}.outline-track-row .outline-twirl-3{text-align:center;width:28px;color:var(--text-dim,#aaa);-webkit-user-select:none;user-select:none;background:#ffffff14;border-radius:3px;flex:0 0 28px;font-size:10px;font-weight:700}.tl-add-picker{min-width:0;color:var(--text-dim,#888);cursor:pointer;opacity:.65;background:#ffffff0a;border:1px solid #ffffff29;border-radius:3px;flex:1;padding:1px 4px;font-size:11px;transition:opacity 80ms,background 80ms,color 80ms}.tl-add-picker:hover,.tl-add-picker:focus{opacity:1;color:var(--text,#ddd);background:#5cccff1f;border-color:#5cccff99}.outline-twirl{text-align:center;width:20px;color:var(--text,#ddd);cursor:pointer;-webkit-user-select:none;user-select:none;flex:0 0 20px;font-size:20px;line-height:1}.outline-twirl:hover{color:#fff}.outline-twirl-2{width:20px}.outline-twirl-3{color:#5c8a5c}.outline-name{text-overflow:ellipsis;white-space:nowrap;color:#ddd;flex:1;min-width:0;overflow:hidden}.outline-stopwatch{cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;margin-right:3px;padding:0;display:inline-flex}.outline-stopwatch.off{color:#666}.outline-stopwatch.off:hover{color:#aaa}.outline-stopwatch.on{color:#5cf}.outline-stopwatch.on:hover{color:#9df}.outline-meta{opacity:.5;margin-left:4px;font-size:9px}.outline-value{color:#5cf;text-align:right;background:#0e1a0e;border:1px solid #2a4a2a;width:48px;height:16px;margin-left:auto;padding:0 4px;font-size:10px;line-height:14px}.outline-value:disabled{opacity:.4;color:#888}.outline-param-row.editing-kf .outline-value{border-color:#5cf;box-shadow:0 0 4px #5cccff66}.outline-add-kf{color:#888;cursor:pointer;background:0 0;border:1px solid #2a4a2a;width:14px;height:14px;padding:0;font-size:10px;line-height:1}.outline-add-kf:hover{color:#5cf;border-color:#5cf}.outline-kf-btn{cursor:pointer;background:0 0;border:none;flex:0 0 14px;justify-content:center;align-items:center;width:14px;height:14px;padding:0;font-size:11px;line-height:1;display:flex}.outline-kf-btn:hover,.outline-kf-btn-on-kf{color:#5cf}.outline-kf-btn-between-kfs{color:#5c8a5c}.outline-kf-btn-none{color:#444}.outline-kf-btn-disabled{color:#333;cursor:not-allowed}.bottom-section{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.library{background:var(--panel);border-right:1px solid var(--border);z-index:1;pointer-events:auto;flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.panel-header{text-transform:uppercase;color:var(--text-dim);background:var(--panel-header);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:4px;padding:6px 8px;font-size:11px;font-weight:600;display:flex}.panel-content{flex:1;padding:8px;overflow-y:auto}.library .panel-content{display:block;overflow-y:auto}.library-section{margin-bottom:12px}.library-item{cursor:grab;-webkit-user-select:none;user-select:none;background:#2a2a2a;border-left:3px solid;border-radius:2px;align-items:center;gap:6px;margin:2px 0;padding:5px 8px;display:flex}.library-item:hover{background:#333}.library-item:active{cursor:grabbing}.library-item.reorder-drop-target{box-shadow:inset 0 2px 0 0 var(--accent,#5b8cd6)}.library-item.selected{box-shadow:inset 3px 0 0 0 var(--accent,#5b8cd6);background:#5b8cd624}.library-item.selected:hover{background:#5b8cd633}.library-reorder-tail{border-radius:2px;height:6px;margin:2px 0 0;transition:background 80ms}.library-reorder-tail.reorder-drop-target{background:var(--accent,#5b8cd6)}.library-item-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}.library-item-type{color:var(--text-dim);text-transform:uppercase;font-size:10px}.library-item-remove{opacity:.3;background:0 0;border:none;padding:1px 3px;font-size:10px}.library-item-remove:hover{opacity:1;color:var(--danger)}.library-add{border-top:1px solid var(--border);flex-direction:column;gap:4px;padding-top:8px;display:flex}.library-add input,.library-add select{width:100%}.inspector{background:var(--panel);border-left:1px solid var(--border);flex-direction:column;width:100%;display:flex;overflow:hidden}.inspector-section{margin-bottom:14px}.inspector-field{margin-bottom:6px}.inspector-field label{color:var(--text-dim);margin-bottom:2px;font-size:12px;display:block}.inspector-field input[type=number]{width:80px;margin-left:4px}.inspector-field select{width:100%;margin-top:2px}.field-label{color:var(--text-dim);margin-right:4px;font-size:12px}.field-hint{color:var(--text-dim);margin-top:2px;font-size:10px;display:block}.checkbox-label{cursor:pointer;align-items:center;gap:6px;display:flex!important}.checkbox-label input[type=checkbox]{width:auto}.danger-btn{color:#f88;background:#4a1e1e;border-color:#702525}.danger-btn:hover{background:#5a2525}.timeline{background:var(--bg);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.timeline-toolbar{background:var(--panel-header);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:4px 8px;display:flex}.timeline-title{text-transform:uppercase;color:var(--text);font-size:11px;font-weight:600}.timeline-metric{color:var(--text-dim);white-space:nowrap;background:#ffffff0a;border-radius:2px;padding:1px 6px;font-size:10px}.timeline-toolbar-spacer{flex:1}.tl-marquee{background:#5b8cd61a;border:1px dashed #5b8cd6b3;border-radius:1px}.timeline-tool-btn.active{color:#cff;background:#5cccff2e;border-color:#5cccff8c}.zoom-label{color:var(--text-dim);font-size:10px}.zoom-slider{width:100px;accent-color:var(--accent)}.zoom-value{color:var(--text-dim);min-width:60px;font-family:SF Mono,Menlo,monospace;font-size:10px}.timeline-scroll{flex:1;position:relative;overflow:auto}.timeline-content{min-width:100%;min-height:100%;position:relative}.ruler-row{z-index:10;background:var(--panel-header);border-bottom:1px solid var(--border);cursor:pointer;position:relative;top:0;overflow:hidden}.ruler-mark{width:1px;position:absolute;bottom:0}.ruler-mark.major{background:var(--text-muted);height:60%}.ruler-mark.minor{background:var(--border-soft);height:30%}.ruler-label{color:var(--text-dim);white-space:nowrap;font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-size:10px;position:absolute;top:3px;left:4px}.checkpoint-marker{background:var(--accent);opacity:.5;pointer-events:none;width:1px;height:100%;position:absolute;bottom:0}.checkpoint-label{color:var(--accent);white-space:nowrap;opacity:.8;font-family:SF Mono,Menlo,monospace;font-size:8px;position:absolute;bottom:1px;left:3px}.track-row{border-bottom:1px solid var(--border);background:var(--row-odd);display:flex;position:relative}.track-row:nth-of-type(2n){background:var(--row-even)}.track-row:hover{background:var(--row-hover)}.track-label{z-index:5;background:var(--panel-header);border-right:1px solid var(--border);flex-shrink:0;align-items:center;gap:4px;padding:0 6px 0 4px;font-size:11px;display:flex;position:sticky;left:0}.track-label-content{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.track-id{color:var(--text);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:11px;font-weight:500;overflow:hidden}.track-layer-badge{color:var(--text-dim);background:var(--bg);text-transform:uppercase;letter-spacing:.5px;border:1px solid var(--border-soft);border-radius:2px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:600}.track-row.selected .track-layer-badge,.track-row .track-id-selected{color:var(--highlight)}.track-remove{opacity:.3;background:0 0;border:none;flex-shrink:0;padding:1px 4px;font-size:10px}.track-remove:hover{opacity:1;color:var(--danger);background:0 0}.track-clips{flex:1;min-height:100%;position:relative}.clip-trans-wedge{z-index:2;cursor:pointer;pointer-events:auto;border-radius:2px;position:absolute;top:0;bottom:0}.clip-trans-wedge:hover{filter:brightness(1.35)}.clip-trans-wedge-in{background:linear-gradient(90deg,#50a0ff8c,#50a0ff00);border-left:2px solid #78c8ffe6;left:0}.clip-trans-wedge-out{background:linear-gradient(270deg,#ff8c508c,#ff8c5000);border-right:2px solid #ffb478e6;right:0}.tl-lane{border-bottom:1px solid #ffffff0a}.tl-lane-effect{background:#ffffff06}.tl-lane-param{background:#ffffff04}.tl-lane-param:hover{background:#ffffff0a}.tl-lane-clip-extent{cursor:crosshair;background:#5cccff0f;border-left:1px solid #5cccff2e;border-right:1px solid #5cccff2e;position:absolute;top:0;bottom:0}.tl-lane-clip-extent:hover{background:#5cccff1a}.tl-kf-diamond{text-align:center;color:#fc4;cursor:pointer;z-index:2;-webkit-user-select:none;user-select:none;width:10px;height:10px;font-size:10px;line-height:10px;position:absolute;top:50%;transform:translateY(-50%)}.tl-kf-diamond:hover{color:#ffe080;transform:translateY(-50%)scale(1.4)}.tl-kf-diamond.selected{color:#5cf}.clip-block{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid;border-radius:2px;align-items:center;height:calc(100% - 6px);padding:0 6px;transition:filter 80ms,border-color 80ms,box-shadow 80ms;display:flex;position:absolute;top:3px;overflow:hidden}.clip-block:hover{filter:brightness(1.12)}.clip-block.selected{box-shadow:0 0 0 1px var(--highlight) inset, 0 0 0 1px #c89b3a66;border-color:var(--highlight)!important}.clip-block.dragging{opacity:.75;z-index:10;cursor:grabbing;box-shadow:0 0 6px #5b8cd680}.clip-name{color:#fff;text-shadow:0 1px 2px #0009;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:500;overflow:hidden}.clip-name.clip-name-input{min-width:60px;text-shadow:none;background:#00000073;border:1px solid #5cccffb3;border-radius:2px;outline:none;flex:auto;padding:0 4px}.clip-bpp{color:#fff;white-space:nowrap;background:#0006;border-radius:2px;flex-shrink:0;margin-left:4px;padding:1px 4px;font-size:9px;font-weight:600}.clip-bpp-over{color:#fff;background:#c33}.clip-block.over-budget{box-shadow:inset 0 0 0 1px #f55}.clip-loop{flex-shrink:0;margin-left:4px;font-size:10px}.clip-transition{flex-shrink:0;margin-left:2px;font-size:12px}.clip-resize-handle{cursor:ew-resize;background:#ffffff1f;border-left:1px solid #ffffff14;border-radius:0 4px 4px 0;width:8px;height:100%;transition:background .1s;position:absolute;top:0;right:0}.clip-resize-handle:hover{background:#4a9eff66;border-left-color:#4a9eff80;box-shadow:-2px 0 4px #4a9eff33}.track-empty-hint{color:var(--text-dim);pointer-events:none;font-size:11px;font-style:italic;position:absolute;top:50%;left:20px;transform:translateY(-50%)}.playhead-line{background:var(--danger);z-index:20;pointer-events:auto;width:2px;position:absolute;top:0;box-shadow:0 0 4px #ff444480}.playhead-line:before{content:"";position:absolute;inset:0 -4px}.timeline-empty{color:var(--text-dim);justify-content:center;align-items:center;padding:40px;display:flex}.bottom-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.pattern-editor-panel{background:var(--bg);border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;height:45%;min-height:150px;display:flex}.pattern-editor-header{background:var(--panel-header);border-bottom:1px solid var(--border);color:var(--text);flex-shrink:0;align-items:center;gap:12px;padding:2px 10px;font-size:11px;font-weight:600;display:flex}.pattern-editor-pos{color:#888;font-family:SF Mono,Menlo,monospace;font-size:10px}.pattern-editor-status{color:#f1c40f;margin-left:auto;font-size:10px}.pattern-editor-status.syncing{color:#e67e22}.pattern-editor-iframe{background:var(--bg);border:none;flex:1;width:100%}.pattern-editor-error{height:100%;color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:12px;display:flex}.pattern-editor-error code{background:var(--panel-header);border-radius:3px;padding:2px 6px;font-size:10px}.pattern-editor-error button{margin-top:8px}.sync-mappings{border-top:1px solid var(--border);margin-top:12px;padding-top:8px}.sync-mappings-header{text-transform:uppercase;color:var(--text-dim);justify-content:space-between;align-items:center;padding:0 0 6px;font-size:11px;font-weight:600;display:flex}.sync-mappings-header button{padding:1px 8px;font-size:10px}.mapping-row{background:var(--panel-header);border:1px solid var(--border);border-radius:3px;margin-bottom:6px;padding:6px}.mapping-top{align-items:center;gap:4px;margin-bottom:4px;display:flex}.mapping-param-select,.mapping-source-select{flex:1;padding:1px 2px;font-size:10px}.mapping-arrow{color:var(--text-dim);flex-shrink:0;font-size:11px}.mapping-remove{color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 3px;font-size:9px}.mapping-remove:hover{color:var(--danger)}.mapping-value-bar{background:#1a1a2a;border-radius:2px;height:10px;margin-bottom:4px;position:relative;overflow:hidden}.mapping-value-fill{background:var(--accent);border-radius:2px;height:100%;transition:width 60ms linear}.mapping-value-label{color:#fff;font-family:SF Mono,Menlo,monospace;font-size:8px;line-height:10px;position:absolute;top:0;right:3px}.mapping-controls{flex-wrap:wrap;gap:4px;display:flex}.mapping-control{flex-direction:column;flex:1;gap:1px;min-width:45px;display:flex}.mapping-control span{color:var(--text-dim);text-transform:uppercase;font-size:9px}.mapping-control input[type=range]{width:100%;height:12px;accent-color:var(--accent)}.mapping-control input[type=number]{width:100%;padding:1px 2px;font-size:10px}.mapping-control.checkbox{flex-direction:row;align-items:center;gap:3px;min-width:auto}.mapping-control.checkbox input[type=checkbox]{width:auto;margin:0}.trigger-value-input{text-transform:uppercase;width:100%;padding:1px 2px;font-family:SF Mono,Menlo,monospace;font-size:10px}.resize-handle{background:var(--border);z-index:30;flex-shrink:0;transition:background .12s,box-shadow .12s;position:relative}.resize-handle:hover,.resize-handle:active{background:var(--accent);box-shadow:0 0 6px #4a9eff66}.resize-handle-vertical{cursor:row-resize;height:5px}.resize-handle-horizontal{cursor:col-resize;width:5px}.collapse-toggle{color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:10px;line-height:1}.collapse-toggle:hover{color:var(--text)}.collapse-toggle-v{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:4px 2px;font-size:10px;line-height:1}.collapse-toggle-v:hover{color:var(--text)}.collapsed-sidebar{background:var(--panel);flex-direction:column;align-items:center;gap:4px;padding-top:4px;display:flex;overflow:hidden;width:28px!important;min-width:28px!important}.collapsed-label-v{writing-mode:vertical-rl;text-orientation:mixed;text-transform:uppercase;color:var(--text-dim);letter-spacing:1px;font-size:11px;font-weight:600}.collapsed-label{text-transform:uppercase;color:var(--text-dim);font-size:11px;font-weight:600}.library-wrap{flex-shrink:0;height:100%;display:flex;overflow:hidden}.tt-bubble{color:#eee;white-space:normal;opacity:0;background:#111;border:1px solid #444;border-radius:3px;max-width:280px;padding:4px 8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px;line-height:1.35;animation:90ms ease-out forwards tt-fade-in;box-shadow:0 2px 6px #00000080}@keyframes tt-fade-in{to{opacity:1}}.tt-bubble.tt-top{transform:translate(-50%,-100%)}.tt-bubble.tt-bottom{transform:translate(-50%)}.tt-bubble.tt-left{transform:translate(-100%,-50%)}.tt-bubble.tt-right{transform:translateY(-50%)}.tt-bubble:before{content:"";border:4px solid #0000;width:0;height:0;position:absolute}.tt-bubble.tt-top:before{border-top-color:#444;margin-left:-4px;bottom:-8px;left:50%}.tt-bubble.tt-bottom:before{border-bottom-color:#444;margin-left:-4px;top:-8px;left:50%}.tt-bubble.tt-left:before{border-left-color:#444;margin-top:-4px;top:50%;right:-8px}.tt-bubble.tt-right:before{border-right-color:#444;margin-top:-4px;top:50%;left:-8px}.docs-content{color:var(--text);max-width:760px;font-size:13px;line-height:1.65}.docs-content .docs-h2{color:var(--text);border-bottom:1px solid var(--border-soft);margin:32px 0 12px;padding-bottom:6px;scroll-margin-top:16px;font-size:17px;font-weight:600}.docs-content .docs-h2:first-child{margin-top:0}.docs-content .docs-h3{color:var(--text);margin:22px 0 8px;scroll-margin-top:16px;font-size:14px;font-weight:600}.docs-content .docs-p{color:var(--text-dim);margin:0 0 10px}.docs-content code{color:#b8d0ff;background:#ffffff0f;border:1px solid #ffffff14;border-radius:3px;padding:1px 5px;font-family:JetBrains Mono,Fira Code,Cascadia Code,ui-monospace,monospace;font-size:11.5px}.docs-content .docs-pre{border:1px solid var(--border);background:#161616;border-radius:5px;margin:10px 0 14px;position:relative;overflow-x:auto}.docs-content .docs-pre code{color:#c8d8f0;white-space:pre;background:0 0;border:none;border-radius:0;padding:14px 16px;font-size:11.5px;line-height:1.55;display:block}.docs-content .docs-lang-badge{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;pointer-events:none;font-family:ui-monospace,monospace;font-size:9px;position:absolute;top:6px;right:10px}.docs-content .docs-table{border-collapse:collapse;width:100%;margin:10px 0 14px;font-size:12px}.docs-content .docs-table th,.docs-content .docs-table td{border:1px solid var(--border-soft);text-align:left;vertical-align:top;padding:5px 10px}.docs-content .docs-table th{background:var(--panel-header);color:var(--text);font-weight:600}.docs-content .docs-table td{color:var(--text-dim)}.docs-content .docs-table tr:nth-child(2n) td{background:#ffffff05}.docs-content .docs-ul{color:var(--text-dim);margin:6px 0 10px 18px;padding:0}.docs-content .docs-ul li{margin-bottom:4px;line-height:1.5}.docs-content .docs-hr{border:none;border-top:1px solid var(--border-soft);margin:28px 0}.docs-content strong{color:var(--text);font-weight:600}
