*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#1a1a1a;color:#fff}#root{height:100vh;overflow:hidden}button,input{font-family:inherit}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-body{flex:1;display:flex;overflow:hidden}.app-center{flex:1;display:flex;flex-direction:column;overflow:hidden}.comparison-view{flex:1;display:flex;gap:0;overflow:hidden}.comparison-pane{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.comparison-label{position:absolute;top:10px;left:10px;z-index:10;padding:4px 12px;background:#1a1a1ae6;border:1px solid #3a3a3a;border-radius:4px;color:#e0e0e0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;pointer-events:none}.comparison-divider{width:2px;background:#3a3a3a;flex-shrink:0}.toolbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#2c2c2c;border-bottom:1px solid #404040;color:#fff}.toolbar-title{font-size:1.25rem;font-weight:600;margin:0}.toolbar-actions{display:flex;gap:.5rem}.toolbar-actions button{padding:.5rem 1rem;background:#404040;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem}.toolbar-actions button:hover{background:#505050}.toolbar-actions button:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#2c2c2c;border:1px solid #404040;border-radius:8px;padding:2rem;max-width:500px;width:90%;color:#fff}.modal-content h3{margin:0 0 1rem;font-size:1.5rem}.modal-content p{margin:.5rem 0;color:#ccc;line-height:1.5}.modal-note{font-size:.875rem;color:#888;font-style:italic;margin-top:1rem}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:2rem}.modal-actions button{padding:.625rem 1.25rem;background:#404040;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem}.modal-actions button:hover{background:#505050}.modal-actions button.danger{background:#dc3545}.modal-actions button.danger:hover{background:#c82333}.file-import{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}.file-import button{padding:.5rem 1rem;font-size:.875rem;background-color:#4a9eff;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s}.file-import button:hover:not(:disabled){background-color:#3a8eef}.file-import button:disabled{background-color:#ccc;cursor:not-allowed}.message{padding:.5rem 1rem;border-radius:4px;font-size:.875rem}.message.success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.message.error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.message.loading{background-color:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}.export-dialog-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.export-dialog{background:#2c2c2c;border:1px solid #404040;border-radius:8px;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;color:#fff;box-shadow:0 4px 20px #00000080}.export-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #404040}.export-dialog-header h2{margin:0;font-size:1.25rem;font-weight:600}.export-dialog-close{background:none;border:none;color:#999;font-size:2rem;line-height:1;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;transition:color .2s}.export-dialog-close:hover{color:#fff}.export-dialog-validation{padding:1rem 1.25rem;border-bottom:1px solid #404040}.export-dialog-validation.warning{background:#4a3800;border-bottom-color:#664d00}.export-dialog-validation.error{background:#4a0000;border-bottom-color:#600}.export-dialog-validation strong{display:block;margin-bottom:.5rem;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.export-dialog-validation pre{margin:0;font-size:.875rem;white-space:pre-wrap;word-wrap:break-word;font-family:Monaco,Menlo,Courier New,monospace}.export-dialog-body{padding:1.25rem;overflow-y:auto;flex:1}.export-dialog-field{margin-bottom:1rem}.export-dialog-field:last-child{margin-bottom:0}.export-dialog-field label{display:block;margin-bottom:.5rem;font-size:.875rem;font-weight:500;color:#ccc}.export-dialog-field input{width:100%;padding:.5rem .75rem;background:#1a1a1a;border:1px solid #404040;border-radius:4px;color:#fff;font-size:.875rem;font-family:inherit}.export-dialog-field input:focus{outline:none;border-color:#06c}.export-dialog-field textarea{width:100%;height:300px;padding:.75rem;background:#1a1a1a;border:1px solid #404040;border-radius:4px;color:#fff;font-size:.75rem;font-family:Monaco,Menlo,Courier New,monospace;resize:vertical;line-height:1.4}.export-dialog-field textarea:focus{outline:none;border-color:#06c}.export-dialog-footer{display:flex;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid #404040;justify-content:flex-end}.export-dialog-footer button{padding:.5rem 1.25rem;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;transition:background .2s}.export-dialog-footer button.secondary{background:#404040;color:#fff}.export-dialog-footer button.secondary:hover{background:#505050}.export-dialog-footer button.primary{background:#06c;color:#fff}.export-dialog-footer button.primary:hover{background:#0052a3}.export-dialog-footer button:disabled{background:#333;color:#666;cursor:not-allowed}.canvas-container{flex:1;position:relative;display:flex;align-items:center;justify-content:center;background:#1a1a1a;padding:2rem;overflow:auto}.canvas-wrapper{position:relative;display:inline-block}.canvas{display:block;background:#fff;border:1px solid #404040;box-shadow:0 4px 12px #00000080}.canvas-info{position:absolute;bottom:-1.5rem;left:50%;transform:translate(-50%);color:#999;font-size:.75rem;white-space:nowrap}.canvas-controls{position:absolute;top:1rem;right:1rem;display:flex;align-items:center;gap:.5rem;background:#2a2a2a;padding:.5rem;border-radius:4px;box-shadow:0 2px 8px #0000004d;z-index:10}.canvas-controls button{padding:.4rem .8rem;background:#404040;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;min-width:32px}.canvas-controls button:hover{background:#505050}.canvas-zoom-level{color:#999;font-size:.875rem;font-family:Courier New,monospace;min-width:50px;text-align:center}.preview-panel{flex:1;display:flex;flex-direction:column;background:#1a1a1a;overflow:hidden}.preview-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#2a2a2a;border-bottom:1px solid #3a3a3a}.preview-header h3{margin:0;font-size:14px;font-weight:600;color:#e0e0e0}.preview-controls{display:flex;align-items:center;gap:12px}.preview-controls label{display:flex;align-items:center;gap:6px;font-size:12px;color:#b0b0b0;cursor:pointer}.preview-controls input[type=checkbox]{cursor:pointer}.preview-controls select{padding:4px 8px;font-size:12px;background:#1a1a1a;border:1px solid #3a3a3a;border-radius:4px;color:#e0e0e0;cursor:pointer}.preview-controls select:hover{border-color:#4a4a4a}.btn-refresh,.btn-back{padding:6px 12px;font-size:12px;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:4px;color:#e0e0e0;cursor:pointer;transition:all .2s}.btn-refresh:hover,.btn-back:hover{background:#3a3a3a;border-color:#4a4a4a}.btn-refresh:disabled{opacity:.5;cursor:not-allowed}.btn-fullscreen{background:#2a2a2a;border-color:#3a3a3a}.btn-fullscreen:hover{background:#3a3a3a;border-color:#4a4a4a}.btn-back{background:#1a7fd4;border-color:#1a7fd4}.btn-back:hover{background:#2090e4;border-color:#2090e4}.preview-error{padding:12px 16px;background:#4a1a1a;border-bottom:1px solid #6a2a2a;color:#ff6b6b;font-size:13px}.preview-error strong{color:#ff8787}.preview-warnings{padding:12px 16px;background:#4a3a1a;border-bottom:1px solid #6a5a2a;color:#ffb84d;font-size:12px}.preview-warnings strong{color:#ffc966;display:block;margin-bottom:6px}.preview-warnings ul{margin:0;padding-left:20px;list-style:disc}.preview-warnings li{margin-bottom:4px}.preview-container{flex:1;display:flex;align-items:center;justify-content:center;overflow:auto;padding:20px}.preview-animation{border:1px solid #3a3a3a;border-radius:4px;background:#2a2a2a;box-shadow:0 4px 12px #0000004d}.preview-empty{flex:1;display:flex;align-items:center;justify-content:center;color:#666;font-size:14px}.preview-info{padding:8px 16px;background:#2a2a2a;border-top:1px solid #3a3a3a;font-size:11px;color:#888;display:flex;justify-content:space-between;align-items:center}.preview-loading{color:#1a7fd4;font-weight:500}.preview-panel.fullscreen{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999;background:#000}.preview-panel.fullscreen .preview-container{width:100%;height:100%;padding:0}.preview-panel.fullscreen .preview-animation{max-width:100vw;max-height:100vh}.fullscreen-hint{position:absolute;bottom:20px;left:50%;transform:translate(-50%);padding:8px 16px;background:#000c;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#e0e0e0;font-size:12px;pointer-events:none;animation:fadeInOut 3s ease-in-out infinite}@keyframes fadeInOut{0%,to{opacity:0}50%{opacity:1}}.timeline{background:#252525;border-top:1px solid #404040;padding:1rem;display:flex;flex-direction:column;gap:.5rem}.timeline-controls{display:flex;align-items:center;gap:1rem}.timeline-controls button{padding:.5rem 1rem;background:#404040;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;min-width:3rem}.timeline-controls button:hover{background:#505050}.timeline-controls button.active{background:#4a9eff;color:#fff}.timeline-time,.timeline-frame{color:#999;font-size:.875rem;font-family:Courier New,monospace}.timeline-fps{color:#999;font-size:.875rem;font-family:Courier New,monospace;margin-left:auto}.timeline-scrubber{flex:1}.timeline-slider{width:100%;height:4px;background:#404040;outline:none;border-radius:2px}.timeline-slider::-webkit-slider-thumb{appearance:none;width:14px;height:14px;background:#2196f3;cursor:pointer;border-radius:50%}.timeline-slider::-moz-range-thumb{width:14px;height:14px;background:#2196f3;cursor:pointer;border-radius:50%;border:none}.timeline-tracks{margin-top:1rem;border-top:1px solid #404040;padding-top:1rem;max-height:400px;overflow-y:auto}.timeline-tracks-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding:.5rem;background:#2a2a2a;border-radius:4px}.timeline-tracks-header span:first-child{color:#fff;font-weight:600;font-size:.875rem}.timeline-tracks-hint{color:#888;font-size:.75rem}.timeline-layer-group{margin-bottom:1rem}.timeline-layer-header{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#303030;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s}.timeline-layer-header:hover{background:#383838}.timeline-layer-collapse{color:#888;font-size:.75rem;width:1rem;text-align:center}.timeline-layer-name{color:#fff;font-weight:500;font-size:.875rem}.timeline-layer-props-count{color:#888;font-size:.75rem;margin-left:auto}.timeline-track{display:flex;align-items:center;margin:.5rem 0 .5rem 1.5rem}.timeline-track-label{width:120px;color:#aaa;font-size:.75rem;padding-right:1rem;flex-shrink:0}.timeline-track-content{position:relative;flex:1;height:32px;background:#1a1a1a;border-radius:4px;cursor:crosshair;overflow-x:auto;overflow-y:visible;padding-bottom:8px}.timeline-track-content:hover{background:#202020}.timeline-track-content-inner{position:relative;height:100%}.timeline-track-content::-webkit-scrollbar{height:8px}.timeline-track-content::-webkit-scrollbar-track{background:#1a1a1a;border-radius:4px}.timeline-track-content::-webkit-scrollbar-thumb{background:#404040;border-radius:4px}.timeline-track-content::-webkit-scrollbar-thumb:hover{background:#505050}.timeline-track-grid{position:absolute;inset:0;pointer-events:none}.timeline-track-grid-line{position:absolute;top:0;bottom:0;width:1px;background:#303030}.timeline-keyframe{position:absolute;top:50%;transform:translate(-50%,-50%) rotate(45deg);width:10px;height:10px;background:#2196f3;cursor:pointer;transition:all .2s;z-index:10}.timeline-keyframe:hover{transform:translate(-50%,-50%) rotate(45deg) scale(1.3);box-shadow:0 0 8px currentColor}.timeline-track-playhead{position:absolute;top:0;bottom:0;width:2px;background:#f44336;pointer-events:none;z-index:5}.timeline-track-playhead:before{content:"";position:absolute;top:-4px;left:-3px;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #f44336}.timeline-context-menu{background:#2a2a2a;border:1px solid #404040;border-radius:4px;box-shadow:0 4px 12px #00000080;min-width:160px;overflow:hidden}.timeline-context-menu-header{padding:8px 12px;background:#333;color:#ccc;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #404040}.timeline-context-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:transparent;border:none;color:#ccc;font-size:.875rem;text-align:left;cursor:pointer;transition:background .2s}.timeline-context-menu button:hover{background:#353535;color:#fff}.timeline-context-menu-swatch{width:12px;height:12px;border-radius:2px;border:1px solid #555}.timeline-zoom-controls{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#2a2a2a;border-top:1px solid #404040}.timeline-zoom-controls button{padding:.4rem .8rem;background:#404040;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;min-width:32px}.timeline-zoom-controls button:hover{background:#505050}.timeline-zoom-level{color:#999;font-size:.875rem;font-family:Courier New,monospace;min-width:50px;text-align:center}.bezier-editor{display:flex;flex-direction:column;gap:1rem;padding:.75rem;background:#1a1a1a;border:1px solid #404040;border-radius:4px}.bezier-canvas{background:#222;border-radius:4px;display:block;-webkit-user-select:none;user-select:none}.bezier-inputs{display:flex;flex-direction:column;gap:.5rem}.bezier-input-group{display:flex;flex-direction:column;gap:.25rem}.bezier-input-group label{color:#999;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.bezier-input-row{display:flex;align-items:center;gap:.5rem}.bezier-input-row span{color:#999;font-size:.875rem;min-width:16px}.bezier-input-row input[type=number]{flex:1;padding:.4rem .5rem;background:#2a2a2a;border:1px solid #404040;border-radius:4px;color:#fff;font-size:.875rem;min-width:0}.bezier-input-row input[type=number]:focus{outline:none;border-color:#4a9eff}.bezier-input-row input[type=number]::-webkit-inner-spin-button,.bezier-input-row input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bezier-input-row input[type=number]{-moz-appearance:textfield}.properties-panel{width:280px;background:#252525;border-left:1px solid #404040;display:flex;flex-direction:column;overflow-y:auto}.panel-title{font-size:1rem;font-weight:600;padding:1rem;margin:0;border-bottom:1px solid #404040;color:#fff}.properties-content{padding:1rem}.property-group{display:flex;flex-direction:column;gap:1rem}.property-group label{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem;color:#ccc}.property-group input{padding:.5rem;background:#1a1a1a;border:1px solid #404040;border-radius:4px;color:#fff;font-size:.875rem}.property-group input:focus{outline:none;border-color:#2196f3}.panel-empty{color:#666;font-size:.875rem;text-align:center;padding:2rem 1rem}.property-editor{background:#2a2a2a;padding:1rem;height:100%;overflow-y:auto}.property-editor-header{margin-bottom:1rem;border-bottom:1px solid #404040;padding-bottom:.5rem}.property-editor-header h3{margin:0 0 .5rem;color:#fff;font-size:1rem}.property-editor-layer-name{color:#999;font-size:.875rem}.property-editor-empty{color:#666;text-align:center;padding:2rem;font-style:italic}.property-editor-section{margin-bottom:1.5rem}.property-editor-section h4{margin:0 0 .75rem;color:#ccc;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.property-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.property-row label{flex:0 0 80px;color:#999;font-size:.875rem}.property-row input[type=number]{flex:1 1 auto;min-width:0;max-width:120px;padding:.4rem .5rem;background:#1a1a1a;border:1px solid #404040;border-radius:4px;color:#fff;font-size:.875rem}.property-row input[type=number]:focus{outline:none;border-color:#4a9eff}.property-row button{flex:0 0 32px;height:32px;padding:0;background:#404040;border:none;border-radius:4px;color:#999;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center}.property-row button:hover{background:#505050;color:#fff}.property-row button.has-keyframe{background:#4a9eff;color:#fff}.property-row button.has-keyframe:hover{background:#5aafff}.project-settings-panel{padding:1rem;color:#fff}.project-settings-title{font-size:1.25rem;font-weight:600;margin:0 0 1.5rem;color:#fff}.section-subtitle{font-size:.9rem;font-weight:600;margin:0 0 .75rem;color:#aaa;text-transform:uppercase;letter-spacing:.5px}.project-settings-section{margin-bottom:1.5rem}.project-setting-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.project-setting-row label{font-size:.875rem;color:#ccc;flex:1}.project-setting-row input[type=text],.project-setting-row input[type=number]{width:120px;padding:.5rem;background:#303030;border:1px solid #404040;border-radius:4px;color:#fff;font-size:.875rem}.project-setting-row input[type=text]:focus,.project-setting-row input[type=number]:focus{outline:none;border-color:#4a9eff}.project-setting-row input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#4a9eff}.project-setting-row input[type=text]::placeholder{color:#666}.color-picker-container{position:relative;display:inline-block}.color-picker-trigger{display:flex;align-items:center;gap:8px;padding:4px 8px;background:#1a1a1a;border:1px solid #404040;border-radius:4px;cursor:pointer;transition:all .2s ease}.color-picker-trigger:hover{border-color:#4a9eff;background:#252525}.color-preview{width:24px;height:24px;border:1px solid #404040;border-radius:3px;display:block}.color-value{font-size:12px;color:#888;min-width:60px;text-align:left}.color-picker-dropdown{position:absolute;top:calc(100% + 4px);left:0;background:#2a2a2a;border:1px solid #404040;border-radius:4px;padding:12px;min-width:220px;box-shadow:0 4px 12px #00000080;z-index:1000}.color-picker-section{margin-bottom:12px}.color-picker-section:last-child{margin-bottom:0}.color-picker-section label{display:block;font-size:12px;color:#999;margin-bottom:6px}.color-picker-section input[type=color]{width:100%;height:36px;border:1px solid #404040;border-radius:4px;cursor:pointer;background:#1a1a1a}.color-picker-section input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.color-picker-section input[type=color]::-webkit-color-swatch{border:none;border-radius:2px}.color-picker-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(32px,1fr));gap:6px}.color-picker-swatch{width:32px;height:32px;border:2px solid #404040;border-radius:4px;cursor:pointer;transition:all .2s ease;padding:0}.color-picker-swatch:hover{transform:scale(1.1);border-color:#4a9eff;box-shadow:0 2px 8px #4a9eff4d}.color-picker-swatch:active{transform:scale(.95)}.color-picker-none-btn{width:100%;padding:8px;background:#404040;border:none;border-radius:4px;color:#ccc;font-size:12px;cursor:pointer;transition:all .2s ease}.color-picker-none-btn:hover{background:#505050;color:#fff}.layers-panel{width:280px;background:#252525;border-right:1px solid #404040;display:flex;flex-direction:column;overflow-y:auto}.layers-content{padding:1rem;flex:1}.layers-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.layer-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#303030;border-radius:4px;cursor:pointer;transition:background .2s}.layer-item:hover{background:#383838}.layer-item.selected{background:#4a9eff}.layer-info{display:flex;flex-direction:column;gap:.25rem;flex:1;position:relative}.layer-expand-btn{position:absolute;left:-1.25rem;top:0;background:none;border:none;cursor:pointer;font-size:.75rem;padding:.125rem .25rem;color:#aaa;transition:color .2s}.layer-expand-btn:hover{color:#fff}.layer-name{font-size:.875rem;font-weight:500;color:#fff;cursor:text}.layer-name-input{font-size:.875rem;font-weight:500;color:#fff;background:#202020;border:1px solid #4a9eff;border-radius:3px;padding:2px 4px;outline:none;width:100%}.layer-type{font-size:.75rem;color:#aaa;text-transform:uppercase}.layer-controls{display:flex;gap:.5rem}.layer-control-btn{background:none;border:none;cursor:pointer;font-size:1rem;padding:.25rem;opacity:.7;transition:opacity .2s}.layer-control-btn:hover{opacity:1}.layer-item.child{margin-left:1.5rem;border-left:2px solid #505050}
