:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#1a1a1a;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}#app{width:100%;margin:0 auto;text-align:center}button{font-family:inherit}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}}.video-player.svelte-1e8ln2p.svelte-1e8ln2p{width:100%}.video-grid.svelte-1e8ln2p.svelte-1e8ln2p{display:grid;grid-template-columns:1fr 1fr;gap:1rem;position:relative}.video-wrapper.svelte-1e8ln2p.svelte-1e8ln2p{display:flex;flex-direction:column;gap:.5rem}.video-header.svelte-1e8ln2p.svelte-1e8ln2p{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:#ffffff0d;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.video-title.svelte-1e8ln2p.svelte-1e8ln2p{font-size:.95rem;font-weight:600;color:#aaa}.fps-badge.svelte-1e8ln2p.svelte-1e8ln2p{font-size:.85rem;font-weight:600;padding:.25rem .75rem;background:#ffffff1a;border-radius:12px;color:#666;transition:all .3s ease}.fps-badge.active.svelte-1e8ln2p.svelte-1e8ln2p{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 8px #667eea4d}.video-container.svelte-1e8ln2p.svelte-1e8ln2p{position:relative;width:100%;aspect-ratio:4/3;background:#000;display:flex;align-items:center;justify-content:center;border:2px solid #333;border-radius:8px;overflow:hidden}canvas.svelte-1e8ln2p.svelte-1e8ln2p{width:100%;height:100%;object-fit:contain}.error-overlay.svelte-1e8ln2p.svelte-1e8ln2p,.start-overlay.svelte-1e8ln2p.svelte-1e8ln2p{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);grid-column:1 / -1;z-index:20}.error-overlay.svelte-1e8ln2p p.svelte-1e8ln2p{color:#ff6b6b;font-size:1.2rem;margin-bottom:1rem}.start-button.svelte-1e8ln2p.svelte-1e8ln2p{display:flex;align-items:center;gap:.5rem;padding:1rem 2rem;font-size:1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:50px;cursor:pointer;transition:transform .2s,box-shadow .2s}.start-button.svelte-1e8ln2p.svelte-1e8ln2p:hover{transform:scale(1.05);box-shadow:0 8px 24px #667eea66}.start-button.svelte-1e8ln2p .icon.svelte-1e8ln2p{font-size:1.2rem}.controls.svelte-1e8ln2p.svelte-1e8ln2p{padding:1rem;display:flex;justify-content:center;gap:1rem;background:#00000080}.control-btn.svelte-1e8ln2p.svelte-1e8ln2p{padding:.75rem 1.5rem;font-size:1rem;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;transition:all .2s}.control-btn.svelte-1e8ln2p.svelte-1e8ln2p:hover{background:#fff3;border-color:#ffffff4d}button.svelte-1e8ln2p.svelte-1e8ln2p{padding:.5rem 1rem;background:#667eea;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem}button.svelte-1e8ln2p.svelte-1e8ln2p:hover{background:#5568d3}.effect-selector.svelte-149gm58.svelte-149gm58{display:flex;flex-direction:column;gap:1rem}select.svelte-149gm58.svelte-149gm58{width:100%;padding:.75rem;font-size:1rem;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;transition:all .2s}select.svelte-149gm58.svelte-149gm58:hover{background:#ffffff26;border-color:#ffffff4d}select.svelte-149gm58 option.svelte-149gm58{background:#2d2d2d;color:#fff}.effect-info.svelte-149gm58.svelte-149gm58{min-height:3rem}.description.svelte-149gm58.svelte-149gm58{margin:0;color:#aaa;font-size:.9rem;line-height:1.5}.effect-grid.svelte-149gm58.svelte-149gm58{display:grid;grid-template-columns:1fr;gap:.5rem}.effect-card.svelte-149gm58.svelte-149gm58{padding:.75rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;transition:all .2s;text-align:left}.effect-card.svelte-149gm58.svelte-149gm58:hover{background:#ffffff1a;border-color:#667eea80;transform:translate(4px)}.effect-card.active.svelte-149gm58.svelte-149gm58{background:linear-gradient(135deg,#667eea33,#764ba233);border-color:#667eea}.effect-name.svelte-149gm58.svelte-149gm58{font-weight:600;color:#fff;margin-bottom:.25rem}.effect-desc.svelte-149gm58.svelte-149gm58{font-size:.8rem;color:#aaa}.camera-selector.svelte-cuhhxz.svelte-cuhhxz{display:flex;flex-direction:column;gap:.5rem}select.svelte-cuhhxz.svelte-cuhhxz{width:100%;padding:.75rem;font-size:1rem;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;transition:all .2s}select.svelte-cuhhxz.svelte-cuhhxz:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d}select.svelte-cuhhxz.svelte-cuhhxz:disabled{opacity:.5;cursor:not-allowed}select.svelte-cuhhxz option.svelte-cuhhxz{background:#2d2d2d;color:#fff}.refresh-btn.svelte-cuhhxz.svelte-cuhhxz{padding:.5rem 1rem;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s}.refresh-btn.svelte-cuhhxz.svelte-cuhhxz:hover:not(:disabled){background:#fff3;border-color:#ffffff4d}.refresh-btn.svelte-cuhhxz.svelte-cuhhxz:disabled{opacity:.5;cursor:not-allowed}.loading.svelte-cuhhxz.svelte-cuhhxz,.no-cameras.svelte-cuhhxz.svelte-cuhhxz{padding:1rem;text-align:center;color:#aaa;font-style:italic}.stats.svelte-17o8ne9{display:flex;flex-direction:column;gap:1rem}.stat-item.svelte-17o8ne9{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#ffffff0d;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.stat-label.svelte-17o8ne9{color:#aaa;font-size:.9rem;font-weight:500}.stat-value.svelte-17o8ne9{font-size:1.1rem;font-weight:600;color:#fff}.effect-name.svelte-17o8ne9{font-size:.95rem;text-align:right}.chain-builder.svelte-1rjn5bp.svelte-1rjn5bp{display:flex;flex-direction:column;gap:1rem}h3.svelte-1rjn5bp.svelte-1rjn5bp{margin:0;color:#fff;font-size:1.1rem}.add-stage.svelte-1rjn5bp.svelte-1rjn5bp{display:flex;gap:.5rem;align-items:center}.add-stage.svelte-1rjn5bp select.svelte-1rjn5bp{flex:1;padding:.5rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;font-size:.9rem}.add-stage.svelte-1rjn5bp button.svelte-1rjn5bp{padding:.5rem 1rem;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:600;transition:transform .2s}.add-stage.svelte-1rjn5bp button.svelte-1rjn5bp:hover:not(:disabled){transform:scale(1.05)}.add-stage.svelte-1rjn5bp button.svelte-1rjn5bp:disabled{opacity:.5;cursor:not-allowed}.stages-list.svelte-1rjn5bp.svelte-1rjn5bp{display:flex;flex-direction:column;gap:.5rem;max-height:400px;overflow-y:auto}.empty-state.svelte-1rjn5bp.svelte-1rjn5bp{padding:2rem;text-align:center;color:#888;font-style:italic}.stage-item.svelte-1rjn5bp.svelte-1rjn5bp{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;transition:all .2s}.stage-item.svelte-1rjn5bp.svelte-1rjn5bp:hover{background:#ffffff14;border-color:#fff3}.stage-item.disabled.svelte-1rjn5bp.svelte-1rjn5bp{opacity:.5}.stage-info.svelte-1rjn5bp.svelte-1rjn5bp{display:flex;gap:.75rem;align-items:center;flex:1}.stage-number.svelte-1rjn5bp.svelte-1rjn5bp{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:#ffffff1a;border-radius:50%;font-size:.8rem;font-weight:600;color:#aaa}.stage-type.svelte-1rjn5bp.svelte-1rjn5bp{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.stage-type.effect.svelte-1rjn5bp.svelte-1rjn5bp{background:#667eea4d;color:#667eea}.stage-type.encoder.svelte-1rjn5bp.svelte-1rjn5bp{background:#4ade804d;color:#4ade80}.stage-type.decoder.svelte-1rjn5bp.svelte-1rjn5bp{background:#fbbf244d;color:#fbbf24}.stage-type.filter.svelte-1rjn5bp.svelte-1rjn5bp{background:#ef44444d;color:#ef4444}.stage-name.svelte-1rjn5bp.svelte-1rjn5bp{color:#fff;font-weight:500}.stage-controls.svelte-1rjn5bp.svelte-1rjn5bp{display:flex;gap:.25rem}.stage-controls.svelte-1rjn5bp button.svelte-1rjn5bp{padding:.25rem .5rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;transition:all .2s}.stage-controls.svelte-1rjn5bp button.svelte-1rjn5bp:hover:not(:disabled){background:#fff3}.stage-controls.svelte-1rjn5bp button.svelte-1rjn5bp:disabled{opacity:.3;cursor:not-allowed}.chain-visualization.svelte-adka0z.svelte-adka0z{display:flex;flex-direction:column;gap:1rem}h3.svelte-adka0z.svelte-adka0z{margin:0;color:#fff;font-size:1.1rem}h4.svelte-adka0z.svelte-adka0z{margin:0 0 1rem;color:#fff;font-size:1rem}.empty-state.svelte-adka0z.svelte-adka0z{padding:2rem;text-align:center;color:#888;font-style:italic}.frames-grid.svelte-adka0z.svelte-adka0z{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;max-height:500px;overflow-y:auto}.frame-item.svelte-adka0z.svelte-adka0z{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;transition:all .2s}.frame-item.svelte-adka0z.svelte-adka0z:hover{background:#ffffff14;border-color:#fff3}.frame-item.selected.svelte-adka0z.svelte-adka0z{border-color:#667eea;box-shadow:0 0 12px #667eea66}.frame-header.svelte-adka0z.svelte-adka0z{display:flex;flex-direction:column;gap:.25rem}.frame-number.svelte-adka0z.svelte-adka0z{font-size:.75rem;font-weight:600;color:#aaa;text-transform:uppercase}.frame-name.svelte-adka0z.svelte-adka0z{font-size:.85rem;color:#fff;font-weight:500}.frame-canvas.svelte-adka0z.svelte-adka0z{width:100%;height:auto;aspect-ratio:4/3;background:#000;border-radius:4px}.frame-stats.svelte-adka0z.svelte-adka0z{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem}.stat-row.svelte-adka0z.svelte-adka0z{display:flex;justify-content:space-between}.stat-row.svelte-adka0z .stat-label.svelte-adka0z{color:#888}.stat-row.svelte-adka0z .stat-value.svelte-adka0z{color:#fff;font-weight:600}.detailed-stats.svelte-adka0z.svelte-adka0z{padding:1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px}.stats-grid.svelte-adka0z.svelte-adka0z{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.stat-item.svelte-adka0z.svelte-adka0z{display:flex;flex-direction:column;gap:.5rem}.stat-item.svelte-adka0z .stat-label.svelte-adka0z{font-size:.75rem;color:#888;text-transform:uppercase;font-weight:600}.stat-item.svelte-adka0z .stat-value.svelte-adka0z{font-size:1rem;color:#fff;font-weight:600}.type-badge.svelte-adka0z.svelte-adka0z{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;text-transform:uppercase;width:fit-content}.type-badge.effect.svelte-adka0z.svelte-adka0z{background:#667eea4d;color:#667eea}.type-badge.encoder.svelte-adka0z.svelte-adka0z{background:#4ade804d;color:#4ade80}.type-badge.decoder.svelte-adka0z.svelte-adka0z{background:#fbbf244d;color:#fbbf24}.type-badge.filter.svelte-adka0z.svelte-adka0z{background:#ef44444d;color:#ef4444}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:linear-gradient(135deg,#1a1a1a,#2d2d2d);color:#fff;min-height:100vh}main.svelte-gz647j.svelte-gz647j{max-width:1400px;margin:0 auto;padding:2rem}header.svelte-gz647j.svelte-gz647j{text-align:center;margin-bottom:2rem}h1.svelte-gz647j.svelte-gz647j{font-size:2.5rem;margin:0 0 .5rem;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}header.svelte-gz647j p.svelte-gz647j{color:#aaa;font-size:1.1rem}.container.svelte-gz647j.svelte-gz647j{display:grid;grid-template-columns:1fr 350px;gap:2rem;margin-bottom:2rem}@media (max-width: 1024px){.container.svelte-gz647j.svelte-gz647j{grid-template-columns:1fr}}.video-section.svelte-gz647j.svelte-gz647j{background:#000;border-radius:12px;overflow:hidden;box-shadow:0 8px 32px #0006}.controls-section.svelte-gz647j.svelte-gz647j{display:flex;flex-direction:column;gap:1.5rem}.control-group.svelte-gz647j.svelte-gz647j{background:#ffffff0d;border-radius:12px;padding:1.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.control-group.svelte-gz647j h3.svelte-gz647j{margin:0 0 1rem;font-size:1.2rem;color:#667eea}footer.svelte-gz647j.svelte-gz647j{text-align:center;padding:2rem 0;color:#888;border-top:1px solid rgba(255,255,255,.1)}footer.svelte-gz647j a.svelte-gz647j{color:#667eea;text-decoration:none}footer.svelte-gz647j a.svelte-gz647j:hover{text-decoration:underline}.mode-toggle.svelte-gz647j.svelte-gz647j{display:flex;gap:.5rem}.mode-btn.svelte-gz647j.svelte-gz647j{flex:1;padding:.75rem;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:8px;color:#aaa;cursor:pointer;font-weight:600;transition:all .2s}.mode-btn.svelte-gz647j.svelte-gz647j:hover{background:#ffffff14;border-color:#fff3}.mode-btn.active.svelte-gz647j.svelte-gz647j{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;color:#fff}.chain-section.svelte-gz647j.svelte-gz647j{background:#ffffff0d;border-radius:12px;padding:1.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);margin-bottom:2rem}
