:root{--app:#f4f3f0;--panel:#fbfbf9;--line:#e5e3de;--line-strong:#d4d1ca;--text:#1b1b1a;--muted:#6f6c65;--faint:#a19e96;--stage:#e7e5e0;--field:#fff;--hover:#efeeea;--accent:#cf4a1c;--accent-hover:#b93f15;--accent-soft:#fbeae3;--radius:7px;--ui:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--app);color:var(--text);font:13px/1.4 var(--ui);-webkit-font-smoothing:antialiased;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app{flex-direction:column;height:100%;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:12px;height:52px;padding:0 12px 0 16px;display:flex}.brand{flex:none;align-items:center;gap:10px;display:flex}.brand-mark{grid-template-columns:repeat(2,8px);place-items:center;gap:2px;display:grid}.brand-mark i{background:var(--text);border-radius:50%;width:8px;height:8px}.brand-mark b{font:400 11px/8px var(--ui);text-align:center;width:8px}.brand-name{letter-spacing:.08em;white-space:nowrap;font-size:13px;font-weight:700}.brand-name span{color:var(--accent);font-weight:500}.project-name{border-radius:var(--radius);width:180px;min-width:60px;color:var(--muted);background:0 0;border:1px solid #0000;padding:5px 8px}.project-name:hover{border-color:var(--line)}.project-name:focus{border-color:var(--line-strong);background:var(--field);color:var(--text);outline:none}.history{gap:2px;display:flex}.spacer{flex:1}.file-actions{gap:4px;display:flex}.workspace{flex:1;grid-template-columns:296px minmax(0,1fr) 280px;min-height:0;display:grid}.panel{background:var(--panel);flex-direction:column;min-height:0;display:flex}.panel.left{border-right:1px solid var(--line)}.panel.right{border-left:1px solid var(--line)}.panel-scroll{flex:1;min-height:0;padding-bottom:24px;overflow-y:auto}.center{background:var(--stage);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.stage-wrap{flex:1;min-height:0;position:relative}.tabs{border-bottom:1px solid var(--line);flex:none;grid-template-columns:repeat(4,1fr);padding:0 8px;display:grid}.tab{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:14px 0 12px;font-weight:500;position:relative}.tab:hover{color:var(--text)}.tab.is-on{color:var(--text);border-bottom-color:var(--text)}.tab-dot{background:var(--accent);border-radius:50%;width:5px;height:5px;margin-left:4px;position:absolute;top:10px}.section{border-bottom:1px solid var(--line);padding:14px 16px 16px}.section-head{justify-content:space-between;align-items:center;min-height:22px;margin-bottom:10px;display:flex}.section-head h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:11px;font-weight:600}.section-body{flex-direction:column;gap:12px;display:flex}.meta{font:500 11px var(--mono);color:var(--muted)}.meta.warn{color:var(--accent)}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field.is-disabled{opacity:.45}.field-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.field label,.field-label{color:var(--text);font-size:12px}.readout{align-items:baseline;gap:3px;display:inline-flex}.num{font-family:var(--mono);font-size:11.5px}.readout .num{text-align:right;background:0 0;border:1px solid #0000;border-radius:4px;width:52px;padding:1px 4px}.readout .num:hover{border-color:var(--line)}.readout .num:focus{border-color:var(--line-strong);background:var(--field);outline:none}.unit{font:11px var(--mono);color:var(--faint)}input[type=range]{appearance:none;background:0 0;width:100%;height:16px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--text) var(--pct), var(--line-strong) var(--pct));border-radius:3px;height:3px}input[type=range]::-moz-range-track{background:var(--line-strong);border-radius:3px;height:3px}input[type=range]::-moz-range-progress{background:var(--text);border-radius:3px;height:3px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--field);border:1.5px solid var(--text);border-radius:50%;width:14px;height:14px;margin-top:-5.5px;box-shadow:0 1px 2px #0000001f}input[type=range]::-moz-range-thumb{background:var(--field);border:1.5px solid var(--text);border-radius:50%;width:12px;height:12px}input[type=range]:focus-visible{outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=range]:disabled::-webkit-slider-thumb{border-color:var(--faint)}select,textarea,.input-wrap,.color-inputs .hex{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--field)}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236f6c65' stroke-width='1.3'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;padding:6px 26px 6px 8px}textarea{resize:vertical;min-height:64px;padding:8px 10px;font-weight:500;line-height:1.35}select:focus,textarea:focus,.input-wrap:focus-within,.color-inputs .hex:focus{border-color:var(--text);outline:none}.number-field .input-wrap{align-items:center;gap:4px;height:30px;padding:0 8px;display:flex}.number-field .input-wrap input{background:0 0;border:0;outline:none;width:100%;padding:0}.input-wrap.static{background:var(--hover);border-color:var(--line)}.two-col{grid-template-columns:1fr 1fr;gap:10px;display:grid}.seed-row{align-items:flex-end;gap:8px;display:flex}.seed-row .field{flex:1}.segmented{background:var(--hover);border-radius:var(--radius);gap:2px;padding:2px;display:flex}.segmented button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:5px;flex:1;justify-content:center;align-items:center;gap:5px;padding:5px 6px;font-size:12px;font-weight:500;display:inline-flex}.segmented button:hover{color:var(--text)}.segmented button.is-on{background:var(--field);color:var(--text);box-shadow:0 0 0 1px var(--line), 0 1px 2px #0000000f}.chips{flex-wrap:wrap;gap:4px;display:flex}.chip{border:1px solid var(--line-strong);background:var(--field);font:500 11px var(--mono);color:var(--muted);border-radius:999px;padding:3px 9px}.chip:hover{color:var(--text);border-color:var(--faint)}.chip.is-on{background:var(--text);color:var(--panel);border-color:var(--text)}.toggle{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.toggle-text{flex-direction:column;font-size:12px;display:flex}.toggle-text small{color:var(--faint);font-size:11px}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle-track{background:var(--line-strong);border-radius:16px;flex:none;width:28px;height:16px;transition:background .15s;position:relative}.toggle-track:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.toggle input:checked+.toggle-track{background:var(--text)}.toggle input:checked+.toggle-track:after{transform:translate(12px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent);outline-offset:2px}.color-field{flex-direction:row;justify-content:space-between;align-items:center}.color-inputs{align-items:center;gap:6px;display:flex}.swatch{border-radius:6px;width:26px;height:26px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #0000001f}.swatch input{opacity:0;cursor:pointer;width:calc(100% + 8px);height:calc(100% + 8px);position:absolute;inset:-4px}.color-inputs .hex{width:78px;font:11.5px var(--mono);padding:4px 7px}.btn{border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--field);white-space:nowrap;justify-content:center;align-items:center;gap:6px;height:30px;padding:0 11px;font-size:12.5px;font-weight:500;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--faint)}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--hover);color:var(--text)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn.wide{width:100%;height:36px}.export-btn{height:34px;padding:0 16px;font-weight:600}.btn-row{flex-wrap:wrap;gap:6px;display:flex}.icon-btn{border-radius:var(--radius);width:30px;height:30px;color:var(--muted);background:0 0;border:0;place-items:center;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--hover);color:var(--text)}.icon-btn.boxed{border:1px solid var(--line-strong);background:var(--field)}.text-btn{border-radius:var(--radius);height:30px;font:500 11.5px var(--mono);color:var(--muted);background:0 0;border:0;padding:0 8px}.text-btn:hover{background:var(--hover);color:var(--text)}.link-btn{color:var(--muted);background:0 0;border:0;align-self:flex-start;align-items:center;gap:5px;padding:0;font-size:12px;display:inline-flex}.link-btn:hover:not(:disabled){color:var(--text)}.badge{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:2px 7px;font-size:10.5px;font-weight:600}.badge-btn{border:1px solid var(--line-strong);background:var(--field);color:var(--text);border-radius:999px;padding:2px 9px;font-size:11.5px}.badge-btn:hover:not(:disabled){border-color:var(--text)}.note{color:var(--muted);margin:0;font-size:11.5px;line-height:1.5}.note.warn{color:var(--accent)}.note code{font:11px var(--mono)}kbd{font:10.5px var(--mono);border:1px solid var(--line-strong);background:var(--field);border-bottom-width:2px;border-radius:4px;padding:0 4px}.dropzone{border:1.5px dashed var(--line-strong);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:12px;padding:18px 14px;transition:border-color .15s,background .15s;display:flex}.dropzone.has-image{border-style:solid;border-color:var(--line);text-align:left;align-items:stretch;padding:10px}.dropzone.is-over{border-color:var(--accent);background:var(--accent-soft)}.drop-hint{flex-direction:column;gap:4px;margin:0;font-weight:500;display:flex}.drop-hint small{color:var(--muted);font-size:11.5px;font-weight:400}.image-row{align-items:center;gap:10px;min-width:0;display:flex}.thumb{object-fit:cover;background:repeating-conic-gradient(#eee 0 25%, #fff 0 50%) 0 0 / 10px 10px;border-radius:6px;flex:none;width:48px;height:48px}.image-meta{flex-direction:column;min-width:0;font-size:12px;display:flex}.image-meta strong{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.image-meta span{color:var(--muted);font-size:11.5px}.presets{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;display:grid}.preset{border:1px solid var(--line);background:var(--field);text-align:left;border-radius:9px;flex-direction:column;gap:6px;padding:5px 5px 7px;display:flex}.preset:hover{border-color:var(--text)}.preset-swatch{border-radius:5px;justify-content:center;align-items:center;gap:3px;height:40px;display:flex;box-shadow:inset 0 0 0 1px #0000000f}.preset-swatch i{border-radius:50%;width:12px;height:12px}.preset-swatch b{text-align:center;width:12px;font-size:13px;font-weight:300}.preset-name{padding:0 2px;font-size:11px;font-weight:500;line-height:1.2}.viewport{position:absolute;inset:0}.stage{touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.stage canvas{display:block}.cur-grab{cursor:grab}.cur-grab:active{cursor:grabbing}.cur-brush{cursor:crosshair}.cur-move{cursor:move}.brush-cursor{pointer-events:none;border:1px solid #0009;border-radius:50%;width:0;height:0;position:absolute;top:0;left:0;box-shadow:0 0 0 1px #ffffffb3}.image-bounds{pointer-events:none;outline:1px dashed var(--accent);outline-offset:0;position:absolute}.stage-info{font:11px var(--mono);color:var(--muted);pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fbfbf9d9;border-radius:6px;padding:5px 9px;position:absolute;bottom:12px;left:12px}.zoombar{background:var(--panel);border:1px solid var(--line);border-radius:9px;align-items:center;gap:2px;padding:3px;display:flex;position:absolute;bottom:12px;right:12px;box-shadow:0 1px 3px #0000000d}.zoombar .sep{background:var(--line);width:1px;height:18px;margin:0 3px}.zoom-val{font:500 11.5px var(--mono);text-align:center;min-width:46px}.toasts{z-index:50;pointer-events:none;flex-direction:column;gap:8px;width:min(460px,100vw - 32px);display:flex;position:fixed;top:64px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--text);color:#f4f3f0;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:8px 6px 8px 14px;font-size:12.5px;display:flex;box-shadow:0 6px 20px #0000002e}.toast.error{background:#7d1f0c}.toast .icon-btn{color:inherit;opacity:.7;width:24px;height:24px}.toast .icon-btn:hover{color:inherit;opacity:1;background:#ffffff1f}.dialog{background:var(--panel);width:min(440px,100vw - 32px);color:var(--text);border:0;border-radius:14px;padding:0;box-shadow:0 24px 60px #00000040}.dialog::backdrop{background:#14141259}.dialog form{flex-direction:column;gap:16px;padding:18px 20px 20px;display:flex}.dialog-head{justify-content:space-between;align-items:center;display:flex}.dialog-head h2{margin:0;font-size:15px;font-weight:600}.dialog-foot{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}@media (width<=1180px){.workspace{grid-template-columns:272px minmax(0,1fr) 256px}.project-name{width:120px}}@media (width<=960px){body{overflow:auto}.app{height:auto;min-height:100%}.topbar{z-index:20;flex-wrap:nowrap;position:sticky;top:0}.file-actions .lbl,.project-name{display:none}.workspace{flex-direction:column;display:flex}.center{z-index:5;border-bottom:1px solid var(--line);order:-1;height:58vh;min-height:320px;position:sticky;top:52px}.center:has(.timeline){position:relative;top:0}.panel.left,.panel.right{border:0}.panel-scroll{padding-bottom:0;overflow:visible}.tabs{z-index:4;background:var(--panel);position:sticky;top:calc(52px + 58vh)}}@media (width<=960px) and (height<=700px){.center{position:relative;top:0}.tabs{position:static}}@media (width<=520px){.topbar{gap:6px;padding:0 8px 0 12px}.brand-name{font-size:12px}.history .icon-btn{width:28px}.stage-info{display:none}.file-actions{gap:0}.file-actions .btn{padding:0 7px}.export-btn{padding:0 11px}.topbar{overflow:hidden}}@media (width<=420px){.brand-name{display:none}}.symbol-grid{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.sym{aspect-ratio:1;border:1px solid var(--line);background:var(--field);color:var(--text);border-radius:6px;place-items:center;padding:0;display:grid}.sym:hover{border-color:var(--faint)}.sym.is-on{background:var(--text);color:var(--panel);border-color:var(--text)}.glyph-field{flex-direction:row;justify-content:space-between;align-items:center}.glyph-input{text-align:center;width:64px;height:34px;font:700 18px var(--mono);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--field)}.glyph-input:focus{border-color:var(--text);outline:none}.section-head .toggle{gap:8px}.section-head .toggle-text{color:var(--muted);font-size:11.5px}.panel-note{padding:10px 16px 0}.video-toggle.is-on{background:var(--text);border-color:var(--text);color:var(--panel)}.video-thumb{color:var(--muted);background:var(--hover);place-items:center;display:grid}.timeline{background:var(--panel);border-top:1px solid var(--line);-webkit-user-select:none;user-select:none;flex:none;padding:8px 14px}.tl-row{flex-wrap:wrap;align-items:center;gap:14px;min-height:34px;display:flex}.tl-transport{align-items:center;gap:2px;display:flex}.tl-transport .play{background:var(--text);color:var(--panel);border-radius:50%}.tl-transport .play:hover:not(:disabled){background:var(--accent);color:#fff}.tl-time{font:500 12.5px var(--mono);min-width:70px;margin-left:8px}.tl-field{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.tl-field select,.tl-key select{background-position:right 7px center;padding:3px 24px 3px 7px;font-size:12px}.tl-check input{accent-color:var(--text)}.time-input{border:1px solid var(--line-strong);background:var(--field);text-align:right;border-radius:5px;width:58px;padding:3px 6px}.time-input:focus{border-color:var(--text);outline:none}.tl-key{background:var(--hover);border-radius:8px;align-items:center;gap:6px;padding:2px 4px 2px 10px;display:inline-flex}.tl-track{cursor:pointer;touch-action:none;height:46px;margin:6px 6px 0;position:relative}.tl-ruler{border-bottom:1px solid var(--line);height:18px;position:absolute;inset:0 0 auto}.tick{background:var(--line-strong);width:1px;height:4px;position:absolute;bottom:0}.tick.major{background:var(--faint);height:8px}.tick em{font:10px var(--mono);color:var(--faint);white-space:nowrap;font-style:normal;position:absolute;bottom:9px;left:3px}.tl-lane{background:var(--hover);border-radius:5px;height:22px;position:absolute;top:22px;left:0;right:0}.tl-seg{background:var(--faint);height:2px;position:absolute;top:10px}.tl-seg.hold{background:repeating-linear-gradient(90deg, var(--faint) 0 4px, transparent 4px 8px)}.tl-diamond{border:1.5px solid var(--text);background:var(--field);cursor:grab;border-radius:2px;width:12px;height:12px;margin-left:-6px;padding:0;position:absolute;top:5px;transform:rotate(45deg)}span.tl-diamond{margin:0 2px 0 0;display:inline-block;position:static;transform:rotate(45deg)scale(.8)}.tl-diamond.is-on{background:var(--accent);border-color:var(--accent)}.tl-playhead{background:var(--accent);pointer-events:none;width:2px;margin-left:-1px;position:absolute;top:0;bottom:-2px}.tl-playhead:before{content:"";border:5px solid #0000;border-top:6px solid var(--accent);position:absolute;top:-1px;left:-4px}.tl-hint{color:var(--faint);margin:4px 6px 0;font-size:11px}.progress{background:var(--hover);border-radius:6px;height:22px;position:relative;overflow:hidden}.progress span{background:var(--accent);transition:width .1s;position:absolute;inset:0 auto 0 0}.progress em{font:500 11px var(--mono);color:var(--text);mix-blend-mode:multiply;place-items:center;font-style:normal;display:grid;position:absolute;inset:0}@media (width<=960px){.center{height:auto}.stage-wrap{flex:none;height:58vh;min-height:320px}.center{position:relative;top:0}.tabs{top:52px}.tl-hint{display:none}}
