:root{--bg-app:#08080a;--bg-primary:#111113;--bg-secondary:#1c1c20;--bg-tertiary:#28282e;--bg-surface:#38383f;--border-subtle:#1c1c20;--border-default:#2e2e35;--border-strong:#46464f;--accent:#3e7ef5;--accent-hover:#6f9dff;--accent-dim:#3e7ef51f;--accent-glow:#3e7ef540;--accent-green:#3ef55d;--accent-green-dim:#3ef54d1f;--text-primary:#f0f0f2;--text-secondary:#8888a0;--text-muted:#606068;--text-dim:#3a3a42;--danger:#e03e3e;--danger-dim:#e03e3e1f;--success:#22c55e;--warning:#e8940a;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--radius-sm:3px;--radius-md:5px;--radius-lg:8px;--font-ui:"Inter", system-ui, -apple-system, sans-serif;--font-body:"Inter", system-ui, -apple-system, sans-serif;--header-h:46px;--panel-header-h:32px;--right-panel-w:420px;--track-label-w:140px;--track-h:40px;--ruler-h:26px;--shadow-panel:0 2px 8px #0006;--shadow-float:0 12px 32px #0009}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;font-family:var(--font-body);background:var(--bg-app);color:var(--text-primary);font-size:12px;line-height:1.5;overflow:hidden}#app{width:100%;height:100%}input[type=color]{appearance:none;cursor:pointer;background:0 0;border:none;width:30px;height:30px;padding:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--bg-surface)}::-webkit-scrollbar-corner{background:0 0}.editor-shell{grid-template-columns:1fr var(--right-panel-w);grid-template-rows:var(--header-h) 1fr;grid-template-areas:"header header""blockly right-col";width:100%;height:100%;display:grid;overflow:hidden}.right-column{flex-direction:column;grid-area:right-col;height:100%;min-height:0;display:flex}.right-column>.panel{flex:1;min-height:0}.right-column .stage-area{aspect-ratio:4/3;flex:none;width:100%}.stage-area{grid-area:stage}.blockly-area{grid-area:blockly}.panel{background:var(--bg-primary);border:1px solid var(--border-subtle);flex-direction:column;display:flex;overflow:hidden}.panel-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);letter-spacing:.08em;color:var(--text-secondary);-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:space-between;align-items:center;padding:.2rem;font-size:10px;font-weight:600;display:flex}.panel-body{background:var(--bg-primary);flex:1;overflow:hidden auto}.header-bar{background:var(--bg-secondary);border-bottom:2px solid var(--border-default);padding:0 var(--space-lg);justify-content:center;align-items:center;gap:var(--space-lg);-webkit-user-select:none;user-select:none;grid-area:header;display:flex;position:relative}.header-logo{left:var(--space-lg);color:var(--text-primary);letter-spacing:-.02em;align-items:center;gap:var(--space-sm);font-size:13px;font-weight:700;display:flex;position:absolute}.header-logo img{height:3rem}.header-project-name{text-align:center;flex:1}.header-project-name input{color:var(--text-secondary);font-family:var(--font-body);border-radius:var(--radius-sm);text-align:center;background:0 0;border:1px solid #0000;outline:none;padding:5px 12px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.header-project-name input:hover{color:var(--text-primary);background:#0003}.header-project-name input:focus{border-color:var(--accent);color:var(--text-primary);background:#0000004d}.transport-controls{align-items:center;gap:.3rem;display:flex}.transport-btn{width:2.2rem;height:2.2rem;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.transport-btn img{width:2rem;height:2rem}.transport-btn:hover{color:var(--text-primary);background:#ffffff14}.transport-btn.active{background:var(--accent-dim);color:var(--accent)}.transport-btn:disabled{opacity:.35;cursor:default;pointer-events:none}.stage-panel-header{padding:0 var(--space-sm);justify-content:space-between}.stage-fps-counter{font-family:var(--font-ui);font-variant-numeric:tabular-nums;letter-spacing:.04em;padding-right:var(--space-xs);font-size:11px;font-weight:600;transition:color .3s}.sprite-list{padding:var(--space-sm);flex-direction:column;gap:2px;display:flex}.sprite-card{align-items:center;gap:var(--space-md);padding:7px var(--space-sm);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:1px solid #0000;transition:background .12s,border-color .12s;display:flex;position:relative}.sprite-card:hover{background:var(--bg-secondary);border-color:var(--border-subtle)}.sprite-card.selected{background:var(--accent-dim);border-color:var(--accent-glow)}.sprite-card-icon{border-radius:var(--radius-sm);background:var(--bg-tertiary);border:1px solid var(--border-default);width:30px;height:30px;color:var(--text-primary);flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:flex}.sprite-card-info{flex:1;min-width:0}.sprite-card-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin-bottom:1px;font-size:11px;font-weight:600;overflow:hidden}.sprite-card-type{color:var(--text-muted);letter-spacing:.06em;font-size:9px;font-weight:500}.sprite-card-actions{opacity:0;gap:2px;transition:opacity .15s,transform .15s;display:flex;transform:translate(4px)}.sprite-card:hover .sprite-card-actions{opacity:1;transform:translate(0)}.sprite-action-btn{width:22px;height:22px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;font-size:13px;transition:background .12s,color .12s;display:flex}.sprite-action-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sprite-action-btn.danger:hover{background:var(--danger-dim);color:var(--danger)}.sprite-rename-input{background:var(--bg-primary);border:1px solid var(--accent);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);box-sizing:border-box;outline:none;min-width:0;padding:1px 4px;font-size:11px;font-weight:600}.add-sprite-area{padding:var(--space-sm) var(--space-md);border-top:1px solid var(--border-subtle);background:var(--bg-primary);flex-shrink:0;margin-top:auto}.add-sprite-menu{bottom:100%;left:var(--space-md);right:var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);margin-bottom:var(--space-xs);z-index:100;padding:5px;position:absolute}.add-sprite-option{align-items:center;gap:var(--space-sm);padding:7px var(--space-md);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-family:var(--font-body);text-align:left;background:0 0;border:none;width:100%;font-size:11px;font-weight:500;transition:background .12s,color .12s;display:flex}.add-sprite-option:hover{background:var(--accent-dim);color:var(--accent-hover)}.stage-area .panel-body{background-color:#000;background-image:linear-gradient(45deg,#0e0e10 25%,#0000 25%),linear-gradient(-45deg,#0e0e10 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#0e0e10 75%),linear-gradient(-45deg,#0000 75%,#0e0e10 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-repeat:repeat;background-size:16px 16px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;justify-content:center;align-items:center;display:flex;position:relative}.stage-container{position:relative}.stage-container canvas{image-rendering:auto}.blockly-area{position:relative}.blockly-area .panel-header{justify-content:space-between}.blockly-script-label{color:var(--text-muted);text-transform:none;letter-spacing:0;background:var(--bg-tertiary);border-radius:10px;padding:2px 8px;font-size:10px;font-weight:500}.properties-section{gap:var(--space-sm);padding:var(--space-md);flex-direction:column;display:flex}.properties-section+.properties-section{border-top:2px dashed var(--border-subtle)}.properties-section-title{letter-spacing:.05em;color:var(--text-primary);align-items:center;gap:var(--space-sm);font-size:13px;font-weight:600;display:flex}.properties-row{align-items:center;gap:var(--space-sm);display:flex}.properties-label{color:var(--text-secondary);letter-spacing:.05em;text-align:right;flex-shrink:0;width:50px;font-size:11px}.properties-input{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);height:26px;color:var(--text-primary);font-family:var(--font-body);padding:0 var(--space-sm);font-variant-numeric:tabular-nums;outline:none;flex:1;width:100%;font-size:11px;transition:background .12s,border-color .12s}.properties-input:hover{background:var(--bg-tertiary);border-color:var(--border-default)}.properties-input:focus{background:var(--bg-secondary);border-color:var(--accent)}.properties-input-half{width:calc(50% - (var(--space-md) / 2))}.properties-toggle{border:1px solid var(--border-default);cursor:pointer;border-radius:9px;flex-shrink:0;width:34px;height:18px;padding:2px;transition:background .2s,border-color .2s;position:relative}.properties-toggle.on{background:var(--accent);border-color:var(--accent)}.properties-toggle.off{background:var(--bg-tertiary)}.properties-toggle:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .2s cubic-bezier(.4,0,.2,1);position:absolute;top:2px;left:2px}.properties-toggle.on:after{transform:translate(16px)}.properties-toggle.off:after{transform:translate(0)}.properties-empty{height:100%;color:var(--text-dim);letter-spacing:.06em;justify-content:center;align-items:center;font-size:11px;font-weight:500;display:flex}.properties-color-swatch{border-radius:var(--radius-sm);border:1px solid var(--border-default);cursor:pointer;width:26px;height:26px;padding:0;overflow:hidden}.properties-slider{appearance:none;background:var(--bg-tertiary);border-radius:2px;outline:none;flex:1;height:3px}.properties-slider::-webkit-slider-thumb{appearance:none;background:var(--text-primary);cursor:pointer;border:none;border-radius:50%;width:12px;height:12px;transition:transform .1s,background .1s}.properties-slider::-webkit-slider-thumb:hover{background:var(--accent-hover);transform:scale(1.25)}.properties-textarea{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;min-height:72px;color:var(--text-primary);font-family:var(--font-body);padding:var(--space-sm);resize:vertical;outline:none;font-size:11px;transition:background .12s,border-color .12s}.properties-textarea:hover{background:var(--bg-tertiary);border-color:var(--border-default)}.properties-textarea:focus{background:var(--bg-secondary);border-color:var(--accent)}.properties-select{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);height:26px;color:var(--text-primary);font-family:var(--font-body);padding:0 var(--space-sm);cursor:pointer;outline:none;flex:1;width:100%;font-size:11px;transition:background .12s,border-color .12s}.properties-select:hover{background:var(--bg-tertiary);border-color:var(--border-default)}.properties-select:focus{background:var(--bg-secondary);border-color:var(--accent)}.primary-btn{border-radius:var(--radius-md);background:var(--accent);color:#fff;min-height:32px;font-family:var(--font-body);cursor:pointer;border:none;padding:0 1.2rem;font-size:12px;font-weight:600;transition:background .15s,transform .1s}.primary-btn:hover{background:var(--accent-hover)}.primary-btn:active{transform:scale(.98)}.primary-btn:disabled{opacity:.5;cursor:not-allowed}.danger-btn{border-radius:var(--radius-md);background:var(--danger-dim);min-height:32px;color:var(--danger);font-family:var(--font-body);cursor:pointer;border:none;padding:0 1.2rem;font-size:12px;font-weight:600;transition:background .15s,transform .1s}.danger-btn:hover{background:var(--danger);color:#fff}.danger-btn:active{transform:scale(.98)}.danger-btn:disabled{opacity:.5;cursor:not-allowed}.media-tabs{align-items:center;gap:var(--space-xs);padding-bottom:var(--space-xs);display:flex;overflow-x:auto}.media-tab{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-secondary);width:38px;height:32px;color:var(--text-muted);cursor:pointer;flex:0 0 38px;justify-content:center;align-items:center;transition:background .12s,border-color .12s,color .12s;display:flex;overflow:hidden}.media-tab img{object-fit:cover;width:100%;height:100%}.media-tab:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-default)}.media-tab.selected{background:var(--accent-dim);color:var(--accent-hover);border-color:var(--accent)}.media-tab.add{border-style:dashed}.media-preview{border:1px dashed var(--border-default);border-radius:var(--radius-md);background:var(--bg-secondary);height:116px;color:var(--text-muted);justify-content:center;align-items:center;display:flex;overflow:hidden}.media-preview img{object-fit:contain;width:100%;height:100%}.timeline-ruler{height:var(--ruler-h);background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);padding-left:var(--track-label-w);-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:flex-end;display:flex;position:relative;overflow:hidden}.timeline-ruler-mark{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:9px;font-weight:500;position:absolute;bottom:2px}.timeline-ruler-mark:before{content:"";background:var(--border-strong);width:1px;height:5px;position:absolute;top:-5px;left:0}.timeline-tracks{background:var(--bg-primary);flex:1;overflow:hidden auto}.timeline-track{height:var(--track-h);border-bottom:1px solid var(--border-subtle);align-items:center;transition:background .12s;display:flex;position:relative}.timeline-track:hover{background:#ffffff05}.timeline-track.selected{background:var(--accent-dim)}.timeline-track-label{width:var(--track-label-w);padding:0 var(--space-md);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;border-right:1px solid var(--border-subtle);align-items:center;gap:var(--space-sm);background:var(--bg-secondary);flex-shrink:0;height:100%;font-size:11px;font-weight:500;display:flex;overflow:hidden}.timeline-track-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.timeline-track-bar-area{flex:1;height:100%;padding:7px 0;position:relative}.timeline-track-bar{opacity:.75;border-radius:3px;min-width:36px;height:100%;transition:opacity .12s;position:relative}.timeline-track:hover .timeline-track-bar{opacity:1}.timeline-playhead{top:var(--panel-header-h);background:var(--danger);z-index:10;pointer-events:none;width:1px;position:absolute;bottom:0}.timeline-playhead:before{content:"";background:var(--danger);clip-path:polygon(0 0,100% 0,50% 100%);width:11px;height:12px;position:absolute;top:0;left:-5px}.blocklyToolboxDiv{background-color:var(--bg-secondary)!important;color:var(--text-primary)!important;border-right:1px solid var(--border-subtle)!important;padding-top:10px!important}.blocklyTreeLabel{font-family:var(--font-body)!important;text-transform:none!important;padding:7px 14px!important;font-size:11px!important;font-weight:600!important}.blocklyTreeRow{border-radius:var(--radius-sm)!important;height:auto!important;margin:3px 6px!important}.blocklyTreeRow:hover{background-color:var(--bg-tertiary)!important}.blocklyTreeSelected{background-color:var(--bg-surface)!important}.blocklyFlyoutBackground{fill:var(--bg-secondary)!important}.blocklyMainBackground{stroke:none!important}.blocklyTooltipDiv,.blocklyLogo{display:none!important}.blocklyPath{stroke-width:1px!important;stroke:#00000040!important}.blocklyEditableText>rect{fill:#00000040!important;stroke:none!important;rx:3!important;ry:3!important}.blocklyEditableText>text{fill:var(--text-primary)!important}.blocklyBlockCanvas{filter:drop-shadow(0 4px 10px #0000004d)}.modal-overlay{z-index:1000;padding:var(--space-lg);background:#000000b3;justify-content:center;align-items:center;animation:.1s ease-out modal-overlay-in;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-overlay.is-closing{pointer-events:none;animation:.12s ease-in forwards modal-overlay-out}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:80%;max-width:800px;max-height:90vh;box-shadow:var(--shadow-float);transform-origin:50%;will-change:transform, opacity;flex-direction:column;flex-shrink:0;animation:.14s cubic-bezier(.2,.9,.2,1) modal-zoom-in;display:flex;overflow-y:auto}.modal-overlay.is-closing .modal-content{animation:.12s cubic-bezier(.4,0,1,1) forwards modal-zoom-out}.btn{font-family:var(--font-ui);border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn.primary:active{transform:translateY(0)}.modal-content.stage-modal{width:95vw;max-width:none;height:90vh;max-height:none}.stage-modal-body{border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);background:#000;flex:1;justify-content:center;align-items:center;padding:0;display:flex;overflow:hidden}.stage-modal-body .stage-container{justify-content:center;align-items:center;width:100%;height:100%;display:flex}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-overlay-out{0%{opacity:1}to{opacity:0}}@keyframes modal-zoom-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes modal-zoom-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.94)}}@media (prefers-reduced-motion:reduce){.modal-overlay,.modal-content{animation:none}}.modal-header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.modal-header h2{color:var(--text-primary);letter-spacing:.05em;font-size:14px;font-weight:700}.modal-body{flex:1;padding:0;overflow-y:auto}.code-container{background:var(--bg-primary);min-height:100%;font-family:monospace;font-size:11px;line-height:1.6;display:flex}.line-numbers{padding:var(--space-lg) var(--space-md);background:var(--bg-secondary);color:var(--text-secondary);text-align:right;-webkit-user-select:none;user-select:none;border-right:1px solid var(--border-subtle);min-width:40px}.code-content{padding:var(--space-lg);white-space:pre;flex:1;margin:0;overflow-x:auto}.hljs-comment,.hljs-quote{color:var(--text-muted)}.hljs-punctuation{color:var(--text-secondary)}.hljs-number,.hljs-literal,.hljs-symbol,.hljs-bullet{color:#f78c6c}.hljs-string,.hljs-doctag,.hljs-addition{color:#c3e88d}.hljs-operator,.hljs-link{color:#89ddff}.hljs-keyword,.hljs-selector-tag,.hljs-deletion{color:#c792ea}.hljs-title,.hljs-title.class_,.hljs-built_in{color:#82aaff}.hljs-regexp,.hljs-variable,.hljs-template-variable{color:#f07178}.hljs-attr,.hljs-attribute{color:#89ddff}.close-modal-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:20px;line-height:1;transition:color 80ms,transform 80ms}.close-modal-btn:hover{color:var(--text-primary);transform:scale(1.08)}.header-btn-group{align-items:center;gap:16px;display:flex;position:absolute;left:100px}.see-js-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex}.see-js-btn:hover{color:var(--text-secondary)}.file-menu-container{position:relative}.file-tab-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex}.file-tab-btn:hover{color:var(--text-secondary)}.file-menu{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);z-index:100;box-shadow:var(--shadow-panel);min-width:120px;margin-top:4px;padding:4px;position:absolute;top:100%;left:0}.file-menu-item{width:100%;color:var(--text-primary);font-family:var(--font-body);text-align:left;cursor:pointer;border-radius:var(--radius-sm);align-items:center;gap:var(--space-sm);background:0 0;border:none;padding:6px 12px;font-size:11px;font-weight:500;transition:background .12s;display:flex}.file-menu-item:hover{background:var(--bg-tertiary)}.settings-modal{width:90%;max-width:420px}.export-modal{width:90%;max-width:360px}.transcription-modal{width:92%;max-width:440px}.transcription-modal-body{gap:var(--space-md);padding:var(--space-lg);flex-direction:column;display:flex}.transcription-note{color:var(--text-secondary);font-size:12px;line-height:1.45}.transcription-row{align-items:center;gap:var(--space-md);color:var(--text-primary);grid-template-columns:96px 1fr;font-size:13px;font-weight:500;display:grid}.transcription-row span{color:var(--text-secondary)}.transcription-row select{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-sm);width:100%;min-width:0;height:34px;color:var(--text-primary);font-family:var(--font-body);outline:none;padding:0 10px;font-size:13px}.transcription-row select:focus{border-color:var(--accent)}.transcription-row select:disabled{opacity:.5;cursor:not-allowed}.transcription-font-controls{align-items:center;gap:var(--space-sm);min-width:0;display:flex}.transcription-font-controls select{flex:1;min-width:0}.transcription-font-controls .properties-btn{white-space:nowrap;height:34px}.transcription-progress{min-height:18px;color:var(--accent-hover);font-size:12px;font-weight:600}.transcription-submit{margin-top:var(--space-sm);width:100%;height:38px}.modal-footer{margin-top:var(--space-xl);justify-content:flex-end;display:flex}.export-encoding-body{align-items:center;gap:var(--space-md);padding:var(--space-xl) var(--space-lg);text-align:center;flex-direction:column;display:flex}.export-encoding-icon{color:var(--accent);margin-bottom:var(--space-xs);justify-content:center;align-items:center;display:flex}.export-encoding-label{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--text-primary);font-size:22px;font-weight:700;line-height:1}.export-encoding-sublabel{color:var(--text-secondary);letter-spacing:.03em;font-size:11px;font-weight:500}.export-progress-container{width:100%;margin-top:var(--space-sm)}.export-progress-bar{background:var(--bg-tertiary);border-radius:2px;width:100%;height:4px;overflow:hidden}.export-progress-fill{background:var(--accent);height:100%;box-shadow:0 0 8px var(--accent-glow);border-radius:2px;transition:width .25s}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin-slow{animation:2s linear infinite spin-slow}.export-fun-fact{margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-subtle);color:var(--text-secondary);text-align:center;width:100%;font-size:11px;line-height:1.55;transition:opacity .4s}.export-fun-fact-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);justify-content:center;align-items:center;gap:4px;margin-bottom:5px;font-size:9px;font-weight:700;display:flex}.export-action-row{gap:var(--space-sm);margin-top:var(--space-sm);display:flex}.browser-compat-modal{width:90%;max-width:480px}.browser-compat-modal-body{padding:var(--space-lg);gap:var(--space-lg);flex-direction:column;display:flex}.browser-compat-warning{align-items:flex-start;gap:var(--space-md);border:1px solid var(--danger);color:var(--danger);padding:var(--space-md);border-radius:var(--radius-md);font-size:12px;font-weight:500;line-height:1.5;display:flex}.browser-compat-warning p{margin:0}.browser-compat-suggestion{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.5}.browser-compat-dismiss-btn{align-self:flex-end}.credits-modal{width:90%;max-width:460px}.credits-modal-body{padding:var(--space-lg);gap:var(--space-lg);flex-direction:column;display:flex}.credits-list{gap:var(--space-sm);flex-direction:column;display:flex}.credit-row{justify-content:space-between;align-items:flex-start;gap:var(--space-md);padding:var(--space-md);background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);text-decoration:none;transition:border-color .12s,background .12s;display:flex}.credit-row:hover{background:var(--bg-tertiary);border-color:var(--border-default)}.credit-name{color:var(--text-primary);flex-shrink:0;font-size:12px;font-weight:700}.credit-roles{color:var(--text-secondary);text-align:right;font-size:12px;line-height:1.4}.credits-thanks{padding-top:var(--space-md);border-top:1px solid var(--border-subtle);color:var(--text-primary);text-align:center;margin:0;font-size:12px;font-weight:600}.settings-modal-body{padding:var(--space-lg);gap:var(--space-lg);flex-direction:column;display:flex}.export-warning{border:1px solid var(--danger);color:var(--danger);padding:var(--space-md);border-radius:var(--radius-md);font-size:11px;font-weight:500;line-height:1.4}.settings-section{gap:var(--space-sm);flex-direction:column;display:flex}.settings-section-title{align-items:center;gap:var(--space-sm);color:var(--text-secondary);letter-spacing:.06em;padding-bottom:var(--space-xs);border-bottom:1px solid var(--border-subtle);font-size:11px;font-weight:600;display:flex}.settings-row{justify-content:space-between;align-items:center;gap:var(--space-md);min-height:28px;display:flex}.settings-label{align-items:center;gap:var(--space-xs);color:var(--text-primary);flex-shrink:0;font-size:12px;display:flex}.settings-input,.settings-select{background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);max-width:160px;color:var(--text-primary);font-family:var(--font-body);outline:none;flex:1;padding:4px 8px;font-size:12px}.settings-input:focus,.settings-select:focus{border-color:var(--accent)}.settings-color-field{gap:var(--space-sm);flex-direction:row;width:100%;display:flex;position:relative}.settings-color-field input[type=color]{margin-left:auto}.settings-toggle{cursor:pointer;border:none;border-radius:10px;flex-shrink:0;width:36px;height:20px;transition:background .15s;position:relative}.settings-toggle.off{background:var(--bg-tertiary)}.settings-toggle.on{background:var(--accent)}.settings-toggle:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px}.settings-toggle.on:after{transform:translate(16px)}.react-tabs{flex-direction:column;width:100%;height:100%;min-height:0;display:flex}.react-tabs__tab-list{flex:none;margin:0;padding:0;list-style:none;display:flex}.react-tabs__tab-panel{display:none}.react-tabs__tab-panel--selected{flex:1;min-height:0;display:flex;overflow:hidden}.blockly-container{flex:1 1 0;width:100%;min-width:0;height:100%;min-height:0;position:relative;overflow:hidden}.tab{background:var(--bg-primary);border:1px solid var(--border-subtle);color:var(--text-primary);cursor:pointer;border-bottom:none;border-top-left-radius:5px;border-top-right-radius:5px;outline:none;max-width:100px;margin-top:10px;padding:5px 13px;font-size:14px;font-weight:500;transition:background .12s,border-color .12s,color .12s,transform .15s cubic-bezier(.4,0,.2,1);transform:translateY(3px)}.tab--selected{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-hover);transform:translateY(0)}.tab--disabled{background:var(--bg-primary);border-color:var(--border-subtle);color:var(--text-muted);cursor:not-allowed}.react-tabs__tab-panel--selected>.blockly-area,.blockly-area.panel{flex-direction:column;flex:1 1 0;width:100%;min-width:0;height:100%;min-height:0;display:flex;position:relative}dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#08080a80}.blocklyDialog{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-float);min-width:300px;margin:auto;padding:0;overflow:hidden}.blocklyDialogForm{flex-direction:column;gap:0;display:flex}.blocklyDialogPrompt{padding:var(--space-lg);font-family:var(--font-body);color:var(--text-primary);font-size:13px;font-weight:500;line-height:1.5;display:block}.blocklyDialogInput{margin:0 var(--space-lg) var(--space-lg);width:calc(100% - var(--space-lg) * 2);padding:7px var(--space-sm);background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-body);box-sizing:border-box;outline:none;font-size:12px;transition:border-color .12s;display:block}.blocklyDialogInput:focus{border-color:var(--accent)}.blocklyDialogButtonRow{justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-subtle);background:var(--bg-primary);flex-direction:row;display:flex}.blocklyDialogConfirmButton,.blocklyDialogCancelButton{border-radius:var(--radius-md);min-height:32px;font-family:var(--font-body);cursor:pointer;border:none;padding:0 1.2rem;font-size:12px;font-weight:600;transition:background .15s,transform .1s}.blocklyDialogConfirmButton{background:var(--accent);color:#fff}.blocklyDialogConfirmButton:hover{background:var(--accent-hover)}.blocklyDialogConfirmButton:active{transform:scale(.98)}.blocklyDialogCancelButton{color:var(--text-secondary);border:1px solid var(--border-default);background:0 0}.blocklyDialogCancelButton:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-strong)}.blocklyDialogCancelButton:active{transform:scale(.98)}.audio-main-preview{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-default);width:100%;max-width:800px;padding:var(--space-xl);gap:var(--space-lg);flex-direction:column;display:flex}.audio-controls{align-items:center;gap:var(--space-lg);display:flex}.audio-play-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:all .15s;display:flex}.audio-play-btn:hover{background:var(--accent-hover);transform:scale(1.05)}.audio-play-btn:active{transform:scale(.95)}.audio-waveform-container{border-radius:var(--radius-md);flex:1;height:160px;transition:box-shadow .15s;overflow:hidden}.audio-editor-toolbar{align-items:center;gap:var(--space-xs);display:flex}.audio-tool-btn{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-tertiary);height:26px;color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;align-items:center;gap:5px;padding:0 8px;font-size:11px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:flex}.audio-tool-btn:hover:not(:disabled){background:var(--bg-surface);border-color:var(--border-default);color:var(--text-primary)}.audio-tool-btn:disabled{opacity:.35;cursor:not-allowed}.audio-toolbar-divider{background:var(--border-subtle);width:1px;height:16px;margin:0 var(--space-xs);flex-shrink:0}.audio-toolbar-spacer{flex:1}.audio-time-display{font-variant-numeric:tabular-nums;color:var(--text-primary);letter-spacing:.01em;padding:0 var(--space-xs);align-items:center;gap:4px;font-size:11px;font-weight:400;display:flex}.audio-time-secondary,.audio-time-total{color:var(--text-muted);font-weight:400}.contexify{opacity:0;-webkit-user-select:none;user-select:none;box-sizing:border-box;border:1px solid var(--border-default);background:var(--bg-secondary);min-width:30px;color:var(--text-primary);font-family:var(--font-body);z-index:2147483647;padding:4px;font-size:11px;font-weight:500;position:fixed}.contexify_item{cursor:pointer;position:relative}@keyframes contexify_close_immediate{0%,to{opacity:0}}@keyframes contexify_feedback_immediate{0%,to{opacity:1}}.contexify_willEnter-fade{animation:none;transform:none}.contexify_willLeave-fade{pointer-events:none;animation:1ms linear both contexify_close_immediate;transform:none;opacity:0!important}.contexify_willLeave-disabled,[class~="contexify_willLeave-'disabled'"]{pointer-events:none}.contexify_item-feedback{animation:1ms linear contexify_feedback_immediate}.tween-tab-empty{width:100%;height:100%;color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px;display:flex}.tween-tab-empty-icon{color:var(--text-muted);margin-bottom:4px}.tween-tab-empty-title{color:var(--text-primary);margin:0;font-size:15px;font-weight:600}.tween-tab-empty-desc{color:var(--text-muted);margin:0;font-size:13px}.tween-tab-container{width:100%;height:100%;min-height:0;display:flex;overflow:hidden}.tween-tab-sidebar{border-right:1px solid var(--border-subtle);background:var(--bg-secondary);flex-direction:column;flex-shrink:0;width:300px;min-height:0;display:flex;overflow:hidden}.tween-sidebar-header{border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.tween-sidebar-title{color:var(--text-primary);font-size:13px;font-weight:600}.tween-play-btn{background:var(--bg-tertiary);border:1px solid var(--border-default);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:500;transition:all .12s;display:flex}.tween-play-btn:hover{background:var(--bg-surface);color:var(--text-primary)}.tween-play-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-hover)}.spin{animation:1.8s linear infinite spin-anim}@keyframes spin-anim{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tween-config-section{flex-direction:column;flex:1;gap:10px;padding:12px;display:flex;overflow-y:auto}.tween-default-card{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;flex-direction:column;gap:7px;padding:10px 12px;transition:border-color .12s,background .12s;display:flex}.tween-default-card:hover{border-color:var(--border-strong)}.tween-default-card.active{border-color:var(--accent);background:#3e7ef50f}.tween-default-card-top{justify-content:space-between;align-items:center;display:flex}.tween-default-label{color:var(--text-primary);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:700}.tween-default-hint{color:var(--text-muted);font-size:11px}.tween-overrides-label{color:var(--text-muted);letter-spacing:.6px;padding:0 2px;font-size:10px;font-weight:700}.tween-properties-list{flex-direction:column;gap:5px;display:flex}.tween-prop-row{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;flex-direction:column;gap:7px;padding:8px 10px;transition:border-color .12s,background .12s;display:flex}.tween-prop-row:hover{border-color:var(--border-strong)}.tween-prop-row.active{border-color:var(--accent);background:#3e7ef50f}.tween-prop-row-top{justify-content:space-between;align-items:center;display:flex}.tween-prop-left{align-items:center;gap:7px;display:flex}.tween-prop-name{color:var(--text-primary);text-transform:capitalize;font-size:12px;font-weight:500}.tween-override-toggle{border:1px solid var(--border-default);cursor:pointer;background:var(--bg-primary);color:var(--text-muted);border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600;transition:all .12s}.tween-override-toggle:hover{color:var(--text-secondary);border-color:var(--border-strong)}.tween-override-toggle.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-hover)}.tween-select{background:var(--bg-primary);border:1px solid var(--border-default);width:100%;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;font-size:12px;font-family:var(--font-ui);outline:none;padding:5px 8px}.tween-select:focus{border-color:var(--accent)}.tween-tab-visualizer{background:var(--bg-primary);flex-direction:column;flex:1;gap:18px;min-width:0;padding:20px 24px;display:flex;overflow-y:auto}.visualizer-header{align-items:center;display:flex}.visualizer-title-group{align-items:center;gap:10px;display:flex}.visualizer-title{color:var(--text-primary);text-transform:capitalize;font-size:14px;font-weight:600}.mode-label{color:var(--accent-hover);border-radius:10px;padding:3px 9px;font-family:monospace;font-size:11px}.graph-container{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);max-width:340px;padding:16px}.tween-graph-svg{width:100%;height:180px;display:block}.graph-axis{stroke:var(--border-strong);stroke-width:1.5px;vector-effect:non-scaling-stroke}.graph-grid-line{stroke:var(--border-subtle);stroke-width:1px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.graph-curve{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.graph-curve-shadow{fill:none;stroke:var(--accent);stroke-width:10px;stroke-linecap:round;stroke-linejoin:round;opacity:.1;vector-effect:non-scaling-stroke}.graph-indicator-line{stroke:var(--border-strong);stroke-width:1px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.graph-indicator-dot{fill:var(--accent-hover);stroke:var(--bg-secondary);stroke-width:2px}.graph-indicator-dot-glow{fill:var(--accent);opacity:.35}.previews-section{flex-direction:column;gap:10px;max-width:340px;display:flex}.previews-label{letter-spacing:.6px;color:var(--text-muted);font-size:10px;font-weight:700}.previews-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.preview-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;gap:8px;padding:10px 8px;display:flex}.preview-title{color:var(--text-muted);text-align:center;font-size:11px;font-weight:500}.preview-stage{background:var(--bg-primary);border-radius:var(--radius-sm);border:1px solid var(--border-default);justify-content:center;align-items:center;height:72px;display:flex;position:relative;overflow:hidden}.preview-track{background:var(--border-default);height:1px;position:absolute;top:50%;left:8px;right:8px;transform:translateY(-50%)}.preview-element{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);width:22px;height:22px;box-shadow:0 0 10px var(--accent-glow);flex-shrink:0;position:relative}.preview-circle{border-radius:50%}.preview-square{border-radius:3px}.extension-item{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-md);cursor:pointer;width:22rem}.welcome-modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#08080a80}.welcome-title span{opacity:0;animation:.6s cubic-bezier(.34,1.56,.64,1) forwards char-in,3s ease-in-out .6s infinite char-float;display:inline-block;transform:translateY(20px)scale(.8)}@keyframes char-in{to{opacity:1;transform:translateY(0)scale(1)}}@keyframes char-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.welcome-modal-content{max-width:500px;padding:var(--space-xl);text-align:center;border:1px solid var(--border-strong);align-items:center}.welcome-modal-header{margin-bottom:var(--space-xl)}.welcome-subtitle-top{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-xs);font-size:14px;font-weight:500}.welcome-title{letter-spacing:-.02em;margin-bottom:var(--space-sm);font-size:64px;font-weight:900;line-height:1;font-family:Black Ops One,system-ui!important}.welcome-subtitle-bottom{color:var(--text-primary);font-size:18px;font-weight:400}.welcome-modal-body{gap:var(--space-lg);flex-direction:column;width:100%;display:flex}.welcome-settings-section{gap:var(--space-sm);text-align:left;flex-direction:column;display:flex}.welcome-settings-section label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.welcome-presets-grid{gap:var(--space-sm);grid-template-columns:repeat(4,1fr);display:grid}.welcome-name-input{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);width:100%;padding:var(--space-md);color:var(--text-primary);font-family:var(--font-body);outline:none;font-size:16px;transition:border-color .15s}.welcome-name-input:focus{border-color:var(--accent)}.welcome-preset-btn{background:var(--bg-tertiary);border:1px solid var(--border-default);color:var(--text-secondary);padding:var(--space-sm);border-radius:var(--radius-md);cursor:pointer;font-size:12px;transition:all .15s}.welcome-preset-btn:hover{border-color:var(--border-strong);color:var(--text-primary);background:var(--bg-surface)}.welcome-preset-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.welcome-start-btn{margin-top:var(--space-md);width:100%;height:44px;font-size:16px!important}.welcome-load-btn{width:100%;height:36px;color:var(--text-secondary);border:1px solid var(--border-default);background:0 0;transition:all .15s;font-size:13px!important}.welcome-load-btn:hover{border-color:var(--border-strong);color:var(--text-primary);background:var(--bg-tertiary)}.asset-tab{background:var(--bg-primary);width:100%;height:100%;display:flex;overflow:hidden}.asset-sidebar{background:var(--bg-secondary);border-right:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.asset-list{padding:var(--space-sm);gap:var(--space-xs);flex-direction:column;flex:1;display:flex;overflow-y:auto}.asset-card{width:100%;padding:var(--space-sm);background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:var(--space-xs);flex-direction:column;transition:all .15s;display:flex;position:relative}.asset-card:hover{border-color:var(--border-default);background:var(--bg-tertiary)}.asset-card.selected{background:var(--accent-dim);border-color:var(--accent)}.asset-card-preview{aspect-ratio:1;background:var(--bg-secondary);border-radius:var(--radius-sm);text-overflow:ellipsis;justify-content:center;align-items:center;width:100%;max-width:140px;display:flex;overflow:hidden}.asset-card-preview img{object-fit:contain;width:100%;max-width:140px;height:100%}.asset-card-info{text-align:center;width:100%}.asset-card-name{max-width:140px;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;cursor:default;border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;padding:2px 4px;font-size:10px;font-weight:600;transition:background .15s,border-color .15s;display:block;overflow:hidden}.asset-card-name:hover{cursor:text;background:#3e7ef50f;border-color:#3e7ef540}.asset-card-name-input{color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--accent);border-radius:var(--radius-sm);text-align:center;outline:none;width:100%;padding:2px 4px;font-family:inherit;font-size:10px;font-weight:600;line-height:1.4}.asset-sidebar-footer{gap:var(--space-sm);padding:var(--space-sm);border-top:1px solid var(--border-subtle);background:var(--bg-secondary);flex-direction:row;display:flex}.asset-editor{flex-direction:column;flex:1;min-width:0;display:flex}.asset-editor-header{padding:var(--space-lg);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.asset-editor-name-input{color:var(--text-primary);font-family:var(--font-body);border-radius:var(--radius-sm);text-align:left;cursor:text;background:#3e7ef50d;border:1px solid #3e7ef54d;outline:none;flex:1;min-width:0;padding:5px 10px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.asset-editor-name-input:hover{background:#3e7ef51a;border-color:#3e7ef580}.asset-editor-name-input:focus{border-color:var(--accent);background:#ffffff14}.asset-editor-body{padding:var(--space-xl);gap:var(--space-xl);flex-direction:column;flex:1;align-items:center;display:flex;overflow-y:auto}.asset-main-preview{aspect-ratio:16/9;background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-default);justify-content:center;align-items:center;width:100%;max-width:600px;display:flex;position:relative;overflow:hidden}.asset-main-preview img{object-fit:contain;max-width:90%;max-height:90%}.asset-properties-grid{gap:var(--space-md);flex-direction:column;width:100%;max-width:400px;display:flex}.asset-empty-state{color:var(--text-muted);justify-content:center;align-items:center;gap:var(--space-md);padding:var(--space-xl);text-align:center;flex-direction:column;flex:1;display:flex}.add-sprite-btn{width:100%;padding:7px var(--space-md);border-radius:var(--radius-md);border:1px dashed var(--border-default);color:var(--text-muted);cursor:pointer;font-family:var(--font-body);justify-content:center;align-items:center;gap:var(--space-sm);letter-spacing:.05em;background:0 0;font-size:11px;font-weight:600;transition:border-color .15s,color .15s,background .15s;display:flex}.add-sprite-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.properties-btn{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-secondary);min-height:26px;color:var(--text-primary);font-family:var(--font-body);cursor:pointer;padding:0 .8rem;font-size:11px;transition:background .12s,border-color .12s,color .12s}.properties-btn:hover{background:var(--bg-tertiary);border-color:var(--border-default)}.properties-btn.danger:hover{background:var(--danger-dim);color:var(--danger);border-color:#e03e3e3d}.properties-btn:disabled{opacity:.6;cursor:not-allowed}.media-actions{gap:var(--space-sm);flex-shrink:0;display:flex}.media-actions .properties-btn{justify-content:center;align-items:center;gap:var(--space-xs);min-width:0;display:flex}
