*{box-sizing:border-box;margin:0;padding:0}body{color:#e2e0f0;background:#0d0d14;height:100vh;font-family:system-ui,-apple-system,sans-serif;overflow:hidden}#root{flex-direction:column;height:100vh;display:flex}.app{--bg-app:#0d0d14;--bg-header:#13131f;--bg-sidebar:#0f0f1a;--bg-card:#16162a;--bg-input:#1e1c2e;--border-main:#2a2840;--border-card:#2d2b4a;--text-1:#f0eeff;--text-2:#ccc8f0;--text-3:#9490bc;--accent:#a855f7;--accent-bg:#2d1f4e;--accent-border:#7c3aed;--accent-text:#d8a0ff;--btn-ghost-hover:#1e1c2e;--select-bg:#1e1c2e;--scrollbar:#3d3a5c;--active-tab-bg:#2d1f4e;--active-tab-border:#6d28d9;--active-tab-text:#c084fc;--pill-active-bg:#2d1f4e;--pill-active-border:#7c3aed;--pill-active-text:#c084fc;--preset-card-bg:#05050e;--preset-label-color:#7a7898;--loop-border:#1e3a2a;--layer-border:#3d2a5c;--btn-tiny-border:#5c2a2a;--btn-tiny-color:#b08080;--btn-tiny-hover-bg:#3a1a1a;--btn-tiny-hover-color:#f87171;--btn-stop-bg:#7c1d1d;--btn-stop-color:#fca5a5;--btn-stop-hover:#991b1b;--swatch-border:#fff3}.app.light{--bg-app:#f0ecff;--bg-header:#fff;--bg-sidebar:#faf8ff;--bg-card:#fff;--bg-input:#ede9ff;--border-main:#ccc5eb;--border-card:#d8d0f4;--text-1:#120d28;--text-2:#342a5a;--text-3:#5d5580;--accent:#7c3aed;--accent-bg:#ede9ff;--accent-border:#7c3aed;--accent-text:#5b21b6;--btn-ghost-hover:#ede9ff;--select-bg:#ede9ff;--scrollbar:#c0b8e4;--active-tab-bg:#ede9ff;--active-tab-border:#7c3aed;--active-tab-text:#5b21b6;--pill-active-bg:#ede9ff;--pill-active-border:#7c3aed;--pill-active-text:#5b21b6;--preset-card-bg:#f0ecff;--preset-label-color:#5d5580;--loop-border:#bbf7d0;--layer-border:#c4b5fd;--btn-tiny-border:#fca5a5;--btn-tiny-color:#9f1239;--btn-tiny-hover-bg:#fee2e2;--btn-tiny-hover-color:#b91c1c;--btn-stop-bg:#fee2e2;--btn-stop-color:#9f1239;--btn-stop-hover:#fecaca;--swatch-border:#00000026}.app{background:var(--bg-app);height:100vh;color:var(--text-1);flex-direction:column;font-size:14px;display:flex}.header{background:var(--bg-header);border-bottom:1px solid var(--border-main);flex-shrink:0;align-items:center;gap:16px;height:56px;padding:0 20px;display:flex}.logo{align-items:center;gap:8px;margin-right:8px;display:flex}.logo-icon{color:var(--accent);font-size:20px}.logo-text{color:var(--text-1);letter-spacing:.04em;font-size:17px;font-weight:700}.tabs{flex:1;gap:4px;display:flex}.tab{color:var(--text-3);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;padding:7px 15px;font-size:14px;font-weight:500;transition:all .15s}.tab:hover{color:var(--text-1);background:var(--bg-card)}.tab.active{background:var(--active-tab-bg);border-color:var(--active-tab-border);color:var(--active-tab-text);font-weight:600}.header-actions{align-items:center;gap:8px;display:flex}.btn-projects{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent-text);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.btn-projects:hover{filter:brightness(1.15)}.projects-badge{background:var(--accent);color:#fff;text-align:center;border-radius:10px;min-width:18px;padding:1px 6px;font-size:10px;font-weight:700}.save-dialog-overlay{z-index:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.save-dialog{background:var(--bg-card);border:1.5px solid var(--border-card);text-align:center;border-radius:16px;width:340px;max-width:calc(100vw - 32px);padding:28px 28px 24px;animation:.18s cubic-bezier(.34,1.26,.64,1) slideUp;box-shadow:0 24px 60px #00000080}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.save-dialog-icon{color:var(--accent-text);margin-bottom:10px;font-size:22px;display:block}.save-dialog-title{color:var(--text-1);margin-bottom:4px;font-size:17px;font-weight:700}.save-dialog-subtitle{color:var(--text-3);margin-bottom:20px;font-size:13px}.save-dialog-input{box-sizing:border-box;background:var(--bg-input);border:1.5px solid var(--border-card);width:100%;color:var(--text-1);text-align:center;border-radius:10px;outline:none;padding:10px 14px;font-size:15px;font-weight:600;transition:border-color .15s}.save-dialog-input:focus{border-color:var(--accent-border)}.save-dialog-input::placeholder{color:var(--text-3);font-weight:400}.save-dialog-actions{gap:8px;margin-top:16px;display:flex}.save-dialog-cancel{border:1.5px solid var(--border-card);background:var(--bg-input);color:var(--text-3);cursor:pointer;border-radius:10px;flex:1;padding:10px;font-size:13px;font-weight:600;transition:all .15s}.save-dialog-cancel:hover{color:var(--text-1);border-color:var(--text-3)}.save-dialog-confirm{border:1.5px solid var(--accent-border);background:var(--accent-bg);color:var(--accent-text);cursor:pointer;border-radius:10px;flex:2;padding:10px;font-size:13px;font-weight:700;transition:all .15s}.save-dialog-confirm:hover:not(:disabled){background:var(--accent-border);color:#fff}.save-dialog-confirm:disabled{opacity:.4;cursor:default}.projects-overlay{z-index:290;background:#00000073;position:fixed;inset:0}.projects-panel{background:var(--bg-sidebar);border-left:1px solid var(--border-main);z-index:300;flex-direction:column;gap:14px;width:300px;height:100vh;padding:18px 14px;transition:transform .22s;display:flex;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-6px 0 32px #00000059}.projects-panel.open{transform:translate(0)}.projects-panel-header{flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.projects-panel-title{color:var(--text-1);letter-spacing:.02em;font-size:16px;font-weight:700}.projects-panel-close{border:1px solid var(--border-card);color:var(--text-3);cursor:pointer;background:0 0;border-radius:5px;padding:4px 9px;font-size:13px;transition:all .12s}.projects-panel-close:hover{color:var(--text-1);background:var(--btn-ghost-hover)}.projects-save-btn{flex-shrink:0;width:100%;flex:unset!important}.projects-empty{color:var(--text-3);padding:4px 0;font-size:13px;line-height:1.7}.projects-empty strong{color:var(--accent-text)}.projects-list{flex-direction:column;gap:7px;display:flex}.project-card{border:1.5px solid var(--border-card);background:var(--bg-card);cursor:pointer;border-radius:9px;align-items:center;gap:10px;padding:8px 10px 8px 8px;transition:border-color .12s,background .12s,transform .1s;display:flex}.project-card:hover{border-color:var(--accent-border);background:var(--accent-bg);transform:translate(-2px)}.project-thumb{object-fit:cover;border:1px solid var(--border-card);background:#000;border-radius:6px;flex-shrink:0;width:48px;height:48px}.project-thumb-empty{background:var(--bg-app);border:1px solid var(--border-card);border-radius:6px;flex-shrink:0;width:48px;height:48px}.project-card-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.project-name{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.project-meta{color:var(--text-3);font-size:11px}.project-delete{flex-shrink:0}.theme-toggle{border:1px solid var(--border-card);color:var(--text-2);cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px;font-size:13px;transition:all .15s}.theme-toggle:hover{background:var(--btn-ghost-hover);color:var(--text-1)}.btn-record{border:1px solid var(--border-card);color:var(--text-2);cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px;font-size:13px;transition:all .15s}.btn-record:hover{background:var(--btn-ghost-hover);color:#f87171;border-color:#f87171}.btn-record.active{color:#fca5a5;background:#7c1d1d;border-color:#ef4444;animation:1.2s ease-in-out infinite rec-pulse}@keyframes rec-pulse{0%,to{opacity:1}50%{opacity:.65}}.transp-toggle{border:1px solid var(--border-card);color:var(--text-3);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:5px;padding:6px 11px;font-size:12px;font-weight:500;transition:all .15s;display:flex}.transp-toggle input{accent-color:var(--accent);cursor:pointer}.transp-toggle:hover{background:var(--btn-ghost-hover);color:var(--text-2)}.transp-toggle.active{border-color:var(--accent-border);color:var(--accent-text);background:var(--accent-bg)}.download-btn-wrap{position:relative}.btn-download-main{border:1.5px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:700;transition:all .15s}.btn-download-main:hover,.btn-download-main.active{background:#9333ea;border-color:#9333ea}.download-panel{background:var(--bg-card);border:1.5px solid var(--border-card);z-index:200;border-radius:14px;flex-direction:column;gap:12px;width:290px;padding:16px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 40px #00000080}.download-panel-title{color:var(--text-1);border-bottom:1px solid var(--border-card);padding-bottom:10px;font-size:14px;font-weight:700}.download-option-group{flex-direction:column;gap:8px;display:flex}.download-toggle-row{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.download-toggle-text{flex-direction:column;flex:1;gap:2px;display:flex}.download-toggle-label{color:var(--text-1);font-size:13px;font-weight:600}.download-toggle-desc{color:var(--text-3);font-size:11px}.download-pill-toggle{border:1.5px solid var(--border-card);background:var(--bg-input);color:var(--text-3);cursor:pointer;border-radius:20px;flex-shrink:0;padding:4px 12px;font-size:12px;font-weight:700;transition:all .15s}.download-pill-toggle.on{border-color:var(--accent-border);background:var(--accent-bg);color:var(--accent-text)}.download-steps-row{align-items:center;gap:8px;padding-left:2px;display:flex}.download-steps-label{color:var(--text-3);white-space:nowrap;font-size:11px}.download-steps-pills{flex-wrap:wrap;gap:4px;display:flex}.download-step-pill{border:1.5px solid var(--border-card);background:var(--bg-input);color:var(--text-3);cursor:pointer;border-radius:12px;padding:3px 9px;font-size:11px;font-weight:600;transition:all .12s}.download-step-pill.active{border-color:var(--accent-border);background:var(--accent-bg);color:var(--accent-text)}.download-divider{background:var(--border-card);height:1px;margin:2px 0}.download-actions{flex-direction:column;gap:6px;display:flex}.download-format-btn{border:1.5px solid var(--border-card);background:var(--bg-input);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:12px;width:100%;padding:10px 12px;transition:all .15s;display:flex}.download-format-btn:hover{border-color:var(--accent-border);background:var(--accent-bg)}.download-format-btn.recording{background:#ef44441a;border-color:#ef4444}.download-format-icon{width:22px;color:var(--text-3);flex-shrink:0;justify-content:center;align-items:center;display:flex}.download-format-btn:hover .download-format-icon{color:var(--accent-text)}.download-format-info{flex-direction:column;gap:1px;display:flex}.download-format-name{color:var(--text-1);font-size:13px;font-weight:700}.download-format-desc{color:var(--text-3);font-size:11px}.workspace{flex:1;display:flex;overflow:hidden}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border-main);box-sizing:border-box;flex-direction:column;flex-shrink:0;gap:6px;width:290px;padding:12px;display:flex;overflow:hidden auto}.sidebar,.sidebar *{min-width:0}.sidebar select{max-width:100%}.sidebar::-webkit-scrollbar{width:5px}.sidebar::-webkit-scrollbar-track{background:0 0}.sidebar::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:3px}.control-group{background:var(--bg-card);border:1px solid var(--border-card);border-radius:9px;flex-direction:column;gap:9px;padding:11px 13px;display:flex}.group-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-3);font-size:12px;font-weight:700}.layer-group{border-color:var(--layer-border)}.layer-header{justify-content:space-between;align-items:center;display:flex}.canvas-area{flex:1;justify-content:center;align-items:center;transition:background .3s;display:flex;position:relative;overflow:hidden}.main-canvas{max-width:100%;max-height:100%;display:block}.zoom-controls{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0818bf;border:1px solid #a855f740;border-radius:8px;align-items:center;gap:2px;padding:3px 4px;display:flex;position:absolute;bottom:14px;right:16px}.app.light .zoom-controls{background:#fffc;border-color:#6d28d933}.zoom-btn{width:24px;height:24px;color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;font-size:16px;font-weight:700;line-height:1;transition:background .1s,color .1s;display:flex}.zoom-btn:hover{background:var(--accent-bg);color:var(--accent-text)}.zoom-reset{color:var(--text-3);cursor:pointer;white-space:nowrap;text-align:center;background:0 0;border:none;border-radius:4px;min-width:36px;padding:2px 6px;font-size:11px;font-weight:700;transition:color .1s}.zoom-reset:hover{color:var(--accent-text)}.row{color:var(--text-2);align-items:center;gap:8px;font-size:14px;display:flex}.row label{flex:1;font-weight:500}.mt8{margin-top:4px}.slider-row{flex-direction:column;gap:4px;min-width:0;display:flex}.slider-label{color:var(--text-2);justify-content:space-between;align-items:baseline;gap:8px;min-width:0;font-size:13px;font-weight:500;display:flex}.slider-label>span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.slider-val{color:var(--accent);font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:600}input[type=range]{width:100%;height:5px;accent-color:var(--accent);cursor:pointer}input[type=color]{border:2px solid var(--border-card);cursor:pointer;background:0 0;border-radius:5px;width:36px;height:27px;padding:0}input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:16px;height:16px}select{background:var(--select-bg);color:var(--text-1);border:1px solid var(--border-card);cursor:pointer;border-radius:5px;flex:1;padding:4px 8px;font-size:13px}.palette-swatches{flex-wrap:wrap;gap:5px;margin-top:6px;display:flex}.palette-swatch{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:5px;flex-direction:row;flex-shrink:0;width:60px;height:22px;padding:0;transition:border-color .15s,transform .1s;display:flex;overflow:hidden}.palette-swatch span{flex:1;height:100%;display:block}.palette-swatch:hover{border-color:var(--text-3);transform:scale(1.06)}.palette-swatch.active{border-color:var(--accent-border);box-shadow:0 0 0 1px var(--accent-border)}.fill-row{align-items:center;gap:10px;display:flex}.bg-picker-row{align-items:center;gap:6px;display:flex}.swatch-dot{border:1px solid var(--swatch-border);border-radius:3px;flex-shrink:0;width:14px;height:14px}.bg-preset{border:1px solid var(--border-card);color:var(--text-2);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:5px 11px;font-size:13px;font-weight:500;transition:all .12s;display:flex}.bg-preset:hover{background:var(--btn-ghost-hover);color:var(--text-1)}.bg-preset.active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--text-1)}.bg-custom{border:1px solid var(--border-card);color:var(--text-2);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:5px 11px;font-size:13px;font-weight:500;transition:all .12s;display:flex;position:relative}.bg-custom:hover{background:var(--btn-ghost-hover);color:var(--text-1)}.bg-custom.active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--text-1)}.bg-custom input[type=color]{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;top:0;left:0}.button-row{flex-wrap:wrap;gap:5px;display:flex}.wrap{flex-wrap:wrap}.pill{border:1px solid var(--border-card);color:var(--text-2);cursor:pointer;background:0 0;border-radius:20px;padding:5px 11px;font-size:13px;font-weight:500;transition:all .15s}.pill:hover{color:var(--text-1);border-color:var(--accent-border)}.pill.active{background:var(--pill-active-bg);border-color:var(--pill-active-border);color:var(--pill-active-text);font-weight:600}.pill.disabled{opacity:.35;cursor:not-allowed}.pattern-grid{grid-template-columns:1fr 1fr;gap:5px;display:grid}.pattern-btn{border:1px solid var(--border-card);color:var(--text-2);cursor:pointer;text-align:center;background:0 0;border-radius:6px;padding:7px 8px;font-size:12px;font-weight:500;transition:all .15s}.pattern-btn:hover{color:var(--text-1);background:var(--btn-ghost-hover)}.pattern-btn.active{background:var(--pill-active-bg);border-color:var(--pill-active-border);color:var(--pill-active-text);font-weight:600}.btn-ghost{border:1px solid var(--border-card);color:var(--text-2);cursor:pointer;background:0 0;border-radius:7px;padding:6px 14px;font-size:13px;font-weight:500;transition:all .15s}.btn-ghost:hover{background:var(--btn-ghost-hover);color:var(--text-1)}.btn-secondary{border:1px solid var(--border-card);color:var(--text-2);cursor:pointer;background:0 0;border-radius:7px;flex:1;padding:8px;font-size:13px;font-weight:500;transition:all .15s}.btn-secondary:hover{background:var(--btn-ghost-hover);color:var(--text-1)}.btn-accent{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:7px;flex:1;padding:8px;font-size:13px;font-weight:600;transition:all .15s}.btn-accent:hover{filter:brightness(1.15)}.btn-accent:disabled{opacity:.45;cursor:not-allowed}.btn-coloring-book{border:1.5px solid var(--border-card);color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border-radius:7px;padding:6px 12px;font-size:13px;font-weight:600;transition:all .15s}.btn-coloring-book:hover{background:var(--btn-ghost-hover);color:var(--text-1)}.btn-coloring-book.active{color:#000;background:#fff;border-color:#000;font-weight:700;box-shadow:0 0 0 2px #00000026}.coloring-book-banner{background:#fff;border-radius:10px;flex-direction:column;gap:4px;display:flex;border:1.5px solid #000!important;padding:10px 12px!important}.coloring-book-badge{color:#000;font-size:13px;font-weight:700}.coloring-book-hint{color:#555;font-size:11px}.btn-color-rnd{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent-text);cursor:pointer;white-space:nowrap;border-radius:6px;flex-shrink:0;padding:3px 8px;font-size:11px;font-weight:700;transition:all .12s}.btn-color-rnd:hover{background:var(--accent);color:#fff}.btn-save-header{border:1.5px solid var(--accent-border);background:var(--accent-bg);color:var(--accent-text);cursor:pointer;white-space:nowrap;border-radius:7px;padding:6px 13px;font-size:13px;font-weight:600;transition:all .15s}.btn-save-header:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.selected-element-header{border:1.5px solid var(--accent-border);background:var(--accent-bg);border-radius:8px;align-items:center;gap:8px;margin-bottom:2px;padding:7px 10px;display:flex}.selected-element-label{color:var(--accent-text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:700;overflow:hidden}.selected-element-badge{text-transform:uppercase;letter-spacing:.05em;color:#fff;background:var(--accent);border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:10px;font-weight:700}.btn-tiny{border:1px solid var(--btn-tiny-border);color:var(--btn-tiny-color);cursor:pointer;background:0 0;border-radius:5px;padding:3px 8px;font-size:11px;font-weight:600;transition:all .12s}.btn-tiny:hover{background:var(--btn-tiny-hover-bg);color:var(--btn-tiny-hover-color)}.btn-animate-elem{color:var(--accent)!important}.btn-animate-elem.active{color:#f87171!important}.btn-stop{background:var(--btn-stop-bg);color:var(--btn-stop-color);cursor:pointer;border:none;border-radius:7px;padding:8px;font-size:13px;font-weight:600;transition:all .15s}.btn-stop:hover{background:var(--btn-stop-hover)}.loop-group{border-color:var(--loop-border)}.loop-header{align-items:baseline;gap:8px;display:flex}.loop-subhint{color:var(--text-3);text-transform:none;letter-spacing:0;font-size:10px;font-style:italic;font-weight:400}[data-tooltip]{position:relative}[data-tooltip]:hover:after{content:attr(data-tooltip);color:#e8e4ff;white-space:normal;pointer-events:none;z-index:200;background:#1a1830;border:1px solid #3d3a5c;border-radius:7px;width:max-content;max-width:220px;padding:6px 10px;font-size:12px;line-height:1.45;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0006}.app.light [data-tooltip]:hover:after{color:#1a0d3a;background:#fff;border-color:#c4b5fd;box-shadow:0 4px 16px #0000001f}.info-tip{background:var(--accent-bg);border:1px solid var(--accent-border);width:15px;height:15px;color:var(--accent-text);cursor:help;vertical-align:middle;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:4px;font-size:9px;font-style:normal;display:inline-flex;position:relative}.slider-hint{color:var(--text-3);margin-left:5px;font-size:10px;font-weight:400}.toast{background:var(--accent);color:#fff;z-index:500;pointer-events:none;border-radius:20px;padding:9px 20px;font-size:13px;font-weight:600;animation:.2s toast-in;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000059}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.welcome-banner{background:linear-gradient(90deg, var(--accent-bg), transparent);border-bottom:1px solid var(--accent-border);color:var(--text-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;padding:10px 28px 10px 20px;font-size:13px;display:flex}.welcome-banner strong{color:var(--accent-text)}.welcome-dismiss{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:20px;flex-shrink:0;padding:5px 14px;font-size:12px;font-weight:600}.welcome-dismiss:hover{opacity:.85}.preset-section{padding-bottom:2px}.preset-section-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.preset-palette{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:6px;display:grid}.preset-card{border:2px solid var(--border-card);background:var(--preset-card-bg);cursor:pointer;border-radius:9px;flex-direction:column;align-items:stretch;padding:0;transition:border-color .12s,transform .12s,box-shadow .12s;display:flex;overflow:hidden}.preset-card:hover{border-color:var(--accent-border);transform:scale(1.05)}.preset-card.active{border-color:var(--accent);box-shadow:0 0 10px #a855f773}.preset-thumb{aspect-ratio:1;border-radius:7px 7px 0 0;width:100%;display:block}.preset-thumb-placeholder{aspect-ratio:1;background:var(--bg-app);border-radius:7px 7px 0 0;width:100%}.preset-label{color:var(--preset-label-color);text-align:center;text-overflow:ellipsis;white-space:nowrap;padding:3px 4px 4px;font-size:11px;font-weight:600;transition:color .12s;overflow:hidden}.preset-card:hover .preset-label{color:var(--text-2)}.preset-card.active .preset-label{color:var(--accent-text)}.toy-preview-card{gap:6px}.toy-preview-hint{text-align:center;color:var(--text-3);padding:6px 0 2px;font-size:12px;font-weight:500}.toy-ring-row{justify-content:space-between;gap:6px;display:flex}.toy-ring-card{border:2px solid var(--border-card);cursor:pointer;background:0 0;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:8px 4px 7px;transition:all .15s;display:flex}.toy-ring-card:hover{border-color:var(--accent-border);background:var(--btn-ghost-hover)}.toy-ring-card.active{border-color:var(--accent);background:var(--accent-bg)}.toy-ring-name{color:var(--text-2);font-size:13px;font-weight:700}.toy-ring-card.active .toy-ring-name{color:var(--accent-text)}.toy-ring-desc{color:var(--text-3);font-size:10px}.toy-section-header{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.toy-sublabel{color:var(--text-3);text-transform:none;letter-spacing:0;font-size:11px;font-style:italic;font-weight:500}.toy-wheel-grid{grid-template-columns:repeat(7,1fr);align-items:center;gap:3px;display:grid}.toy-wheel-btn{border:1px solid var(--border-card);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;min-height:38px;padding:5px 2px;transition:all .15s;display:flex}.toy-wheel-btn:hover{border-color:var(--accent-border);background:var(--btn-ghost-hover)}.toy-wheel-btn.active{border-color:var(--accent)}.toy-hole-strip{flex-wrap:wrap;gap:5px;display:flex}.toy-hole-btn{border:2px solid var(--border-card);background:var(--bg-input);width:32px;height:32px;color:var(--text-2);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;transition:all .15s;display:flex}.toy-hole-btn:hover{border-color:var(--accent-border);color:var(--text-1)}.toy-hole-btn.active{border-width:2.5px;font-weight:800}.toy-draw-row{gap:5px;display:flex}.toy-draw-row .btn-accent{flex:2}.toy-clear-btn,.toy-add-btn{flex:1}.toy-full-btn{border:1px solid var(--border-card);color:var(--text-3);cursor:pointer;background:0 0;border-radius:5px;align-self:flex-start;margin-top:2px;padding:3px 8px;font-size:10px;transition:all .12s}.toy-full-btn:hover{color:var(--text-1);border-color:var(--accent-border)}.custom-preset-list{border-top:1px solid var(--border-card);margin-top:8px;padding-top:8px}.custom-preset-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:5px;font-size:10px;font-weight:700;display:block}.custom-preset-item{align-items:center;gap:6px;margin-bottom:4px;display:flex}.custom-preset-apply{text-align:left;border:1px solid var(--border-card);background:var(--bg-card);color:var(--text-2);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:6px;flex:1;padding:5px 9px;font-size:12px;transition:all .12s;overflow:hidden}.custom-preset-apply:hover{border-color:var(--accent-border);color:var(--text-1);background:var(--accent-bg)}.btn-advanced-toggle{border:1px dashed var(--border-card);width:100%;color:var(--text-3);cursor:pointer;text-align:center;background:0 0;border-radius:5px;margin-top:6px;padding:4px 8px;font-size:11px;transition:all .12s}.btn-advanced-toggle:hover{color:var(--text-2);border-color:var(--accent-border)}.toy-palette-grid{grid-template-columns:repeat(4,1fr);gap:5px;display:grid}.toy-palette-btn{background:var(--bg-card);border:1.5px solid var(--border-card);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;transition:border-color .15s,background .15s;display:flex}.toy-palette-btn:hover{border-color:var(--accent-border);background:var(--accent-bg)}.toy-palette-btn.active{border-color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 2px var(--accent-border)}.toy-palette-btn.active .toy-palette-name{color:var(--accent-text)}.toy-palette-swatches{gap:2px;display:flex}.toy-palette-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:block}.toy-palette-name{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:600}.toy-palette-btn:hover .toy-palette-name{color:var(--accent-text)}.mode-diagram-btn{border:1.5px solid var(--accent-border);background:var(--accent-bg);width:16px;height:16px;color:var(--accent-text);cursor:pointer;vertical-align:middle;border-radius:50%;justify-content:center;align-items:center;font-size:10px;font-weight:800;line-height:1;transition:background .12s,color .12s;display:inline-flex}.mode-diagram-btn:hover{background:var(--accent);color:#fff}.mode-diagram-popover{z-index:200;background:var(--bg-sidebar);border:1.5px solid var(--accent-border);border-radius:12px;margin-top:4px;padding:12px;position:absolute;top:100%;left:0;right:0;box-shadow:0 8px 32px #0006}.mode-diagram-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.mode-diagram-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);font-size:11px;font-weight:700}.mode-diagram-close{color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:13px;line-height:1}.mode-diagram-close:hover{color:var(--text-1)}.mode-diagram-pair{justify-content:center;gap:8px;display:flex}.mode-diagram-item{flex-direction:column;flex:1;align-items:center;gap:5px;display:flex}.mode-diagram-item svg{flex-shrink:0}.mode-diagram-label{color:var(--text-1);font-size:11px;font-weight:700}.mode-diagram-desc{color:var(--text-3);text-align:center;font-size:10px;line-height:1.4}.btn-add-layer-main{border:1.5px dashed var(--accent-border);width:100%;color:var(--accent-text);cursor:pointer;background:0 0;border-radius:8px;margin-bottom:4px;padding:7px 12px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s}.btn-add-layer-main:hover{background:var(--accent-bg);border-color:var(--accent)}.btn-update-element{border-style:solid;border-color:var(--accent);color:var(--accent);flex:1}.editing-element-row{gap:6px;margin-bottom:4px;display:flex}.btn-cancel-edit{border:1.5px solid var(--border);color:var(--text-2);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;padding:7px 10px;font-size:12px}.btn-cancel-edit:hover{border-color:var(--text-2);color:var(--text-1)}.canvas-layer-item.editing{border-color:var(--accent);background:var(--accent-bg)}.canvas-layer-thumb-live{background:var(--accent-bg);border:1px solid var(--accent-border);width:36px;height:36px;color:var(--accent-text);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex}.layer-panel-hint{color:var(--text-3);padding:2px 0;font-size:12px;line-height:1.5}.layer-panel-hint strong{color:var(--accent-text)}.layer-hint-text{color:var(--text-3);margin:4px 0 6px;font-size:11px;font-style:italic;line-height:1.5}.canvas-layer-list{flex-direction:column;gap:5px;display:flex}.canvas-layer-item{border:1.5px solid var(--border-card);background:var(--bg-app);cursor:pointer;border-radius:7px;align-items:center;gap:7px;padding:5px 7px;transition:border-color .12s,background .12s;display:flex}.canvas-layer-item:hover{border-color:var(--accent-border);background:var(--accent-bg)}.canvas-layer-item.selected{border-color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 1px var(--accent-border)}.working-layer{border-color:var(--accent-border);border-style:dashed;margin-bottom:4px}.working-layer.selected{border-style:solid}.working-layer-icon{border:1px solid var(--accent-border);background:var(--accent-bg);width:34px;height:34px;color:var(--accent-text);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex}.working-layer-sub{color:var(--text-3);font-size:10px}.canvas-layer-thumb{object-fit:cover;border:1px solid var(--border-card);background:#000;border-radius:5px;flex-shrink:0;width:34px;height:34px}.canvas-layer-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.layer-name-row{align-items:center;gap:5px;display:flex}.canvas-layer-name{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.layer-scale-badge{color:var(--accent-text);background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:4px;flex-shrink:0;padding:0 4px;font-size:10px;font-weight:600}.layer-color-dot{border:1px solid #fff3;border-radius:50%;flex-shrink:0;width:8px;height:8px}.layer-opacity-row{align-items:center;gap:5px;display:flex}.layer-opacity-label{color:var(--text-3);flex-shrink:0;min-width:26px;font-size:10px}.canvas-layer-opacity{height:4px;accent-color:var(--accent);cursor:pointer;flex:1}.layer-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.canvas-layer-vis{cursor:pointer;color:var(--text-3);background:0 0;border:none;flex-shrink:0;padding:2px 4px;font-size:14px;line-height:1;transition:color .12s}.canvas-layer-vis:hover{color:var(--text-1)}.toy-pen-list{flex-direction:column;gap:6px;display:flex}.toy-pen-item{color:var(--text-2);align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.toy-pen-color-swatch{cursor:pointer;border:2px solid #ffffff40;border-radius:50%;flex-shrink:0;width:20px;height:20px;transition:transform .1s,box-shadow .1s;display:block;position:relative}.toy-pen-color-swatch:hover{box-shadow:0 0 0 3px var(--accent-border);transform:scale(1.15)}.toy-pen-color-swatch input[type=color]{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;top:0;left:0}.app.light .toy-pen-color-swatch{border-color:#0003}.toy-pen-label{flex:1}.layer-blend-row{padding:2px 6px 4px}.layer-blend-select{background:var(--bg-input);width:100%;color:var(--text-1);border:1px solid var(--border-card);cursor:pointer;border-radius:4px;padding:2px 4px;font-size:11px}
