*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0a0e17;--bg-secondary:#141925;--bg-tertiary:#1e2531;--bg-hover:#252d3d;--accent-primary:#6366f1;--accent-secondary:#8b5cf6;--accent-gradient:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%);--text-primary:#fff;--text-secondary:#a0aec0;--text-muted:#718096;--border-color:#2d3748;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.35s ease}html{font-size:16px}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;overflow-x:hidden}.screen{min-height:100vh;display:none}.screen.active{animation:.3s fadeIn;display:block}.upload-container{max-width:900px;padding:var(--spacing-lg);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;margin:0 auto;display:flex}.upload-header{text-align:center;margin-bottom:var(--spacing-xl);animation:.5s fadeInUp}.upload-header h1{background:var(--accent-gradient);-webkit-text-fill-color:transparent;margin-bottom:var(--spacing-sm);letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:clamp(1.75rem,5vw,3rem);font-weight:700}.upload-header p{color:var(--text-secondary);font-size:clamp(1rem,2.5vw,1.25rem);font-weight:300}.upload-options{gap:var(--spacing-xl);flex-wrap:wrap;justify-content:center;align-items:stretch;width:100%;animation:.5s .15s backwards fadeInUp;display:flex}.upload-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--spacing-xl);text-align:center;min-width:280px;max-width:380px;transition:all var(--transition-base);flex:1}.upload-card:hover{border-color:var(--accent-primary);transform:translateY(-4px);box-shadow:0 12px 40px #6366f126}.upload-icon{margin-bottom:var(--spacing-md);font-size:3rem}.upload-card h2{margin-bottom:var(--spacing-xs);font-size:1.25rem;font-weight:600}.upload-card p{color:var(--text-secondary);margin-bottom:var(--spacing-lg);font-size:.9rem}.hint{margin-top:var(--spacing-md)!important;font-size:.8rem!important}.url-input{width:100%;padding:var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);margin-bottom:var(--spacing-md);transition:all var(--transition-fast);font-size:.9rem}.url-input:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #6366f126}.upload-divider{color:var(--text-muted);padding:var(--spacing-md)0;align-items:center;font-size:.8rem;font-weight:600;display:flex}.btn-primary,.btn-secondary,.btn-capture,.btn-export,.btn-discard,.btn-danger,.btn-clear{padding:var(--spacing-md)var(--spacing-xl);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:none;font-family:inherit;font-size:.95rem;font-weight:600}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6366f166}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-hover)}.btn-capture{color:#fff;padding:var(--spacing-md)var(--spacing-lg);background:linear-gradient(135deg,#10b981 0%,#059669 100%);flex-grow:1;font-size:1rem}.btn-capture:hover{transform:scale(1.02);box-shadow:0 6px 20px #10b98166}.btn-export{background:var(--accent-gradient);color:#fff;width:100%;padding:var(--spacing-md);font-size:1rem}.btn-export:hover:not(:disabled){box-shadow:0 6px 20px #6366f166}.btn-export:disabled{opacity:.5;cursor:not-allowed}.btn-discard{color:var(--text-secondary);border:1px solid var(--border-color);background:0 0;width:100%}.btn-discard:hover{color:var(--danger);border-color:var(--danger);background:#ef44441a}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-clear{color:var(--text-secondary);padding:var(--spacing-sm);border-radius:var(--radius-sm);background:0 0;font-size:1.1rem}.btn-clear:hover{background:var(--bg-hover);color:var(--danger)}.editor-container{height:100vh;background:var(--bg-primary);flex-direction:column;height:100dvh;display:flex}.editor-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:var(--spacing-sm)var(--spacing-md);justify-content:space-between;align-items:center;gap:var(--spacing-sm);flex-shrink:0;display:flex}.header-left{align-items:center;gap:var(--spacing-sm);min-width:0;display:flex}.header-left h2{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:1rem;font-weight:600;overflow:hidden}.header-right{align-items:center;gap:var(--spacing-sm);display:flex}.frame-counter{background:var(--bg-tertiary);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-sm);color:var(--text-secondary);white-space:nowrap;font-size:.8rem}.editor-layout{flex:1;display:flex;overflow:hidden}.video-section{padding:var(--spacing-md);gap:var(--spacing-sm);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.video-wrapper{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:#000;flex:1;min-height:0;position:relative;overflow:hidden}.video-player{object-fit:contain;width:100%;height:100%;display:block}.video-overlay{padding:var(--spacing-md);opacity:0;transition:opacity var(--transition-base);background:linear-gradient(#0000,#000c);position:absolute;bottom:0;left:0;right:0}.video-wrapper:hover .video-overlay{opacity:1}.playback-info{gap:var(--spacing-xs);color:#fff;font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:500;display:flex}.video-controls{gap:var(--spacing-sm);flex-wrap:wrap;align-items:center;display:flex}.control-btn{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;width:44px;height:44px;transition:all var(--transition-fast);color:var(--text-primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.control-btn:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.control-btn:active{transform:scale(.95)}.control-btn .icon{font-size:1.1rem}.shortcuts-guide{gap:var(--spacing-sm);color:var(--text-muted);padding:var(--spacing-sm);background:var(--bg-secondary);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:center;align-items:center;font-size:.75rem;display:flex}.key-badge{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);border-radius:4px;padding:2px 6px;font-family:monospace;font-size:.7rem;font-weight:600}.chk-hint{opacity:.6;margin-left:4px;font-size:.75em}.timeline-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-md)}.timeline-header{margin-bottom:var(--spacing-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;font-size:.75rem;font-weight:600;display:flex}.timeline-info{align-items:center;gap:var(--spacing-sm);display:flex}.frame-number{color:var(--success);font-weight:600}.detailed-time{color:#60a5fa;font-family:Courier New,monospace}.timeline-wrapper{position:relative}.timeline-slider{appearance:none;background:var(--bg-tertiary);border-radius:var(--radius-sm);cursor:pointer;outline:none;width:100%;height:8px}.timeline-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent-primary);cursor:pointer;width:16px;height:16px;transition:all var(--transition-fast);border-radius:50%;box-shadow:0 2px 6px #6366f180}.timeline-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.timeline-slider::-moz-range-thumb{background:var(--accent-primary);cursor:pointer;border:none;border-radius:50%;width:16px;height:16px}.timeline-markers{pointer-events:none;height:8px;position:absolute;top:0;left:0;right:0}.timeline-marker{background:var(--success);border-radius:2px;width:3px;height:12px;position:absolute;top:-2px;transform:translate(-50%);box-shadow:0 0 6px #10b98180}.preview-sidebar{background:var(--bg-secondary);border-left:1px solid var(--border-color);flex-direction:column;flex-shrink:0;width:280px;display:flex}.sidebar-header{padding:var(--spacing-md);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.sidebar-header h3{font-size:.95rem;font-weight:600}.frames-preview{padding:var(--spacing-sm);flex:1;overflow-y:auto}.empty-state{text-align:center;height:100%;color:var(--text-muted);padding:var(--spacing-lg);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-icon{margin-bottom:var(--spacing-sm);opacity:.5;font-size:2.5rem}.empty-state p{margin-bottom:var(--spacing-xs);color:var(--text-secondary);font-size:.9rem;font-weight:600}.empty-state span{font-size:.75rem}.frame-item{margin-bottom:var(--spacing-sm);border-radius:var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--border-color);transition:all var(--transition-base);cursor:pointer;animation:.25s slideIn;position:relative;overflow:hidden}.frame-item:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-md)}.frame-item img{width:100%;display:block}.frame-info{padding:var(--spacing-xs)var(--spacing-sm);background:#0006;justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.frame-time{color:var(--text-secondary);font-variant-numeric:tabular-nums}.frame-delete{color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;padding:2px;font-size:1rem}.frame-delete:hover{color:var(--danger)}.sidebar-actions{padding:var(--spacing-md);border-top:1px solid var(--border-color);gap:var(--spacing-sm);flex-direction:column;display:flex}.result-container{max-width:500px;padding:var(--spacing-lg);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;margin:0 auto;display:flex}.result-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--spacing-xl);text-align:center;width:100%;animation:.4s cubic-bezier(.175,.885,.32,1.275) scaleIn}.success-icon{margin-bottom:var(--spacing-md);font-size:3rem;animation:1s infinite bounce}.result-card h2{margin-bottom:var(--spacing-xs);background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.75rem}.result-card>p{color:var(--text-secondary);font-size:.9rem}.result-stats{gap:var(--spacing-md);margin:var(--spacing-xl)0;background:var(--bg-tertiary);padding:var(--spacing-lg);border-radius:var(--radius-lg);grid-template-columns:1fr 1fr;display:grid}.stat-item{flex-direction:column;gap:2px;display:flex}.stat-value{color:var(--text-primary);font-size:1.5rem;font-weight:700}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.result-actions{gap:var(--spacing-sm);flex-direction:column;display:flex}.btn-large{padding:var(--spacing-md)var(--spacing-lg);font-size:1.1rem}.modal{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;padding:var(--spacing-md);background:#000000d9;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal.active{animation:.2s fadeIn;display:flex}.modal-content{background:var(--bg-secondary);border-radius:var(--radius-xl);padding:var(--spacing-xl);width:100%;max-width:400px;box-shadow:var(--shadow-lg);animation:.25s scaleIn}.modal-content h3{margin-bottom:var(--spacing-sm);font-size:1.25rem}.modal-content p{color:var(--text-secondary);margin-bottom:var(--spacing-lg);font-size:.9rem}.modal-actions{gap:var(--spacing-sm);display:flex}.modal-actions button{flex:1}.loading-spinner{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;justify-content:center;align-items:center;gap:var(--spacing-md);background:#000000e6;flex-direction:column;display:none;position:fixed;inset:0}.loading-spinner.active{display:flex}.spinner{border:3px solid var(--bg-tertiary);border-top:3px solid var(--accent-primary);border-radius:50%;width:48px;height:48px;animation:1s linear infinite spin}.loading-spinner p{color:var(--text-secondary);font-size:.95rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-tertiary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}@media (max-width:1024px){.editor-layout{flex-direction:column}.preview-sidebar{border-left:none;border-top:1px solid var(--border-color);width:100%;max-height:35vh}.frames-preview{gap:var(--spacing-sm);padding:var(--spacing-sm);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));display:grid}.frame-item{margin-bottom:0}}@media (max-width:640px){html{font-size:14px}.upload-options{gap:var(--spacing-lg);flex-direction:column}.upload-card{max-width:100%}.upload-divider{display:none}.editor-header{padding:var(--spacing-xs)var(--spacing-sm)}.header-left h2{max-width:120px;font-size:.9rem}.video-section{padding:var(--spacing-sm);gap:var(--spacing-sm);overflow-y:auto}.video-wrapper{aspect-ratio:16/9;flex:none}.shortcuts-guide{display:none}.video-controls{justify-content:center}.btn-capture{flex:100%;order:-1}.control-btn{width:40px;height:40px}.timeline-container{padding:var(--spacing-sm)}.timeline-header{flex-direction:column;align-items:flex-start}.preview-sidebar{max-height:30vh}.frames-preview{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.sidebar-actions{padding:var(--spacing-sm)}.result-container{padding:var(--spacing-md)}.result-card,.modal-content{padding:var(--spacing-lg)}.modal-actions{flex-direction:column}}
