:root{--bg: #1b1b22;--panel: #24242d;--panel-2: #2c2c37;--panel-3: #34343f;--border: #383845;--text: #e4e4ea;--muted: #9a9aab;--accent: #e86a92;--accent-2: #f5c518;--select: #2f9bff;--error: #ff6b6b;--pasteboard: #3a3a46;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:12px;color:var(--text);background:var(--bg);color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden}.boot{display:grid;place-items:center;height:100%;color:var(--muted)}.app{display:flex;flex-direction:column;height:100%}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;white-space:nowrap;flex:none;padding:5px 10px;background:var(--panel);border-bottom:1px solid var(--border)}.brand{font-weight:700;letter-spacing:.04em;color:var(--accent-2);margin-right:2px}.group{display:flex;align-items:center;gap:3px;padding-left:10px;border-left:1px solid var(--border)}.grid-size{display:flex;align-items:center;gap:3px;color:var(--muted);margin-left:4px}.grid-size input{width:44px}.zoom{min-width:52px}button{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:4px;padding:3px 8px;cursor:pointer;white-space:nowrap}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.4;cursor:default}button.on{background:#3d2a37;border-color:var(--accent)}input,select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:2px 4px}input:focus,select:focus{outline:1px solid var(--select);border-color:var(--select)}input[type=color].swatch{width:26px;height:20px;padding:0;border:1px solid var(--border);border-radius:3px;background:none;cursor:pointer;flex:none}input[type=color].swatch:disabled{opacity:.3}.banner{display:flex;gap:8px;align-items:center;padding:6px 12px;background:#4a3a1a;border-bottom:1px solid #7a5f22}.workspace{flex:1;display:grid;grid-template-columns:52px 1fr 300px;grid-template-rows:minmax(0,1fr);min-height:0;overflow:hidden}.tools{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0;background:var(--panel);border-right:1px solid var(--border)}.tools{overflow-y:auto}.tools>button{width:36px;height:28px;font-size:14px;padding:0;flex:none}.tools>button.active{background:#3d2a37;border-color:var(--accent)}.tool-sep{width:32px;border-top:1px solid var(--border);margin:6px 0}.style-swatch{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:4px}.style-label{font-size:9px;color:var(--muted);text-transform:uppercase}.paint-preview{width:30px;height:12px;border:1px solid var(--border);border-radius:2px;background-image:linear-gradient(45deg,#555 25%,transparent 25%,transparent 75%,#555 75%)}.swatch-row{display:flex;gap:2px}button.mini{padding:0 4px;font-size:10px;line-height:15px}.tool-options{gap:6px}.tool-options .field input[type=text]{width:44px}.gradient-editor{margin:6px 0 4px;padding:6px;border:1px solid var(--border);border-radius:4px;background:var(--bg)}.gradient-bar{height:14px;border-radius:3px;border:1px solid var(--border);margin-bottom:4px}.stop-row{margin-top:3px}.stop-row .field input[type=text]{width:52px}.add-stop{margin-top:5px}.stroke-grid{margin-top:8px}.props h4 .mini{text-transform:none;letter-spacing:0}.stroke-width .field-label{display:none}.stroke-width .field input[type=text]{width:40px;text-align:center}.stage-area{position:relative;min-width:0;min-height:0;display:grid;grid-template:1fr / 1fr}.stage-area.with-rulers{grid-template:20px 1fr / 20px 1fr}.ruler-corner{background:#24242d;border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer}.ruler{width:100%;height:100%;display:block}.ruler-x{border-bottom:1px solid var(--border)}.ruler-y{border-right:1px solid var(--border)}.viewport{position:relative;min-width:0;min-height:0;background:var(--pasteboard);overflow:hidden}.stage-area.with-rulers .viewport{grid-area:2 / 2}.stage-area.with-rulers .ruler-x{grid-area:1 / 2}.stage-area.with-rulers .ruler-y{grid-area:2 / 1}.viewport canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.viewport canvas:last-child{touch-action:none}.side{display:grid;grid-template-rows:minmax(0,1fr) minmax(150px,38%);background:var(--panel);border-left:1px solid var(--border);min-height:0}.side-top{overflow:auto;min-height:0}.side-bottom{overflow:auto;min-height:0;border-top:1px solid var(--border)}.panel-title{display:flex;align-items:center;gap:6px;padding:7px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--panel);z-index:1}.panel-actions{margin-left:auto;display:flex;gap:2px}.panel-actions button{padding:1px 6px;font-size:11px}.props section{padding:8px 10px;border-bottom:1px solid var(--border)}.props h4{display:flex;align-items:center;justify-content:space-between;margin:2px 0 6px;font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.props h4+.grid2{margin-bottom:8px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:5px 8px}.field{display:flex;align-items:center;gap:4px;min-width:0}.field.wide{width:100%}.field.wide input,.field.wide select{flex:1;min-width:0}.field-label{color:var(--muted);min-width:40px;font-size:11px}.field input[type=text]{width:100%;min-width:0;text-align:right}.field select{width:100%;min-width:0}.field-suffix{color:var(--muted);font-size:11px}.row{display:flex;align-items:center;gap:6px;margin-top:6px}.row .field{flex:1}.row .field-label:empty{display:none}.check{display:flex;align-items:center;gap:4px;min-width:56px}.check.small{font-size:10px;text-transform:none;letter-spacing:0;font-weight:400}.btn-row{display:flex;gap:3px;margin-top:5px}.btn-row button{flex:1;padding:3px 0}.hint{color:var(--muted);padding:0 10px;line-height:1.5}.layer-list{list-style:none;margin:0;padding:0}.layer-row{display:flex;align-items:center;gap:4px;padding:0 6px;height:22px;cursor:pointer;white-space:nowrap;user-select:none;border-top:1px solid transparent;border-bottom:1px solid #2f2f3a}.layer-row:hover{background:var(--panel-2)}.layer-row.active{background:#4b2a3a;box-shadow:inset 2px 0 0 var(--accent)}.layer-row.folder .name{font-weight:600}.layer-row.guide .name{font-style:italic;color:#7fc4ff}.layer-row.drop-above{border-top-color:var(--select)}.layer-row.drop-below{border-bottom-color:var(--select)}.layer-row.drop-into{background:#2f9bff33}.layer-row .twisty{width:12px;color:var(--muted);text-align:center}.layer-row .kind{width:14px;color:var(--muted);text-align:center}.layer-row .name{flex:1;overflow:hidden;text-overflow:ellipsis}.layer-row .rename{flex:1;min-width:0}.layer-row .sel-dot{width:7px;height:7px;background:var(--select);border-radius:1px}.layer-row .toggle{padding:0 3px;border:none;background:none;width:22px;font-size:11px;color:var(--muted)}.layer-row .toggle.off{color:#665}.layer-row .toggle.on{color:var(--accent-2)}.status{display:flex;gap:14px;align-items:center;padding:4px 10px;background:var(--panel);border-top:1px solid var(--border);color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden}.status .coords{font-variant-numeric:tabular-nums;min-width:120px}.status .msg{color:var(--text);overflow:hidden;text-overflow:ellipsis}.status .msg.error{color:var(--error)}.status .right{margin-left:auto}.timeline{height:230px;display:flex;flex-direction:column;min-height:0;background:var(--panel);border-top:1px solid var(--border)}.tl-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:4px 8px;border-bottom:1px solid var(--border)}.tl-toolbar .group.first{padding-left:0;border-left:none}.tl-toolbar button{padding:2px 7px}.frame-counter{min-width:64px;text-align:center;color:var(--muted);font-variant-numeric:tabular-nums}.onion-range{display:flex;align-items:center;gap:2px;color:var(--muted)}.onion-range input{width:38px}.layer-actions{margin-left:auto}.tl-scroll{flex:1;overflow:auto;min-height:0;position:relative}.tl-grid{display:grid;grid-template-columns:230px auto;grid-template-rows:20px auto}.tl-corner{position:sticky;top:0;left:0;z-index:3;background:#24242d;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:4px 8px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.tl-header{position:sticky;top:0;z-index:2;display:block;cursor:ew-resize;border-bottom:1px solid var(--border)}.tl-names{position:sticky;left:0;z-index:1;background:var(--panel);border-right:1px solid var(--border)}.tl-cells{display:block;cursor:pointer}.easing-editor select{width:100%;margin-bottom:6px}.easing-plot{width:100%;height:auto;background:var(--bg);border:1px solid var(--border);border-radius:4px;touch-action:none}.easing-plot .unit{fill:#ffffff08;stroke:#3a3a48;stroke-dasharray:3 3}.easing-plot .diag{stroke:#3a3a48}.easing-plot .curve{fill:none;stroke:var(--accent);stroke-width:2}.easing-plot .arm{stroke:#7fc4ff;stroke-width:1}.easing-plot .cp{fill:#fff;stroke:#2f9bff;stroke-width:1.5;cursor:grab}.bezier-values{font-family:ui-monospace,monospace;font-size:11px;color:var(--muted);margin-top:4px}.hint.flush{padding:0;margin:4px 0}.hint.warn{color:#f5c518;padding:6px 10px;margin:0;border-bottom:1px solid var(--border)}.stage-col{display:flex;flex-direction:column;min-width:0;min-height:0}.stage-col .stage-area{flex:1}.breadcrumb{display:flex;align-items:center;gap:2px;padding:3px 8px;background:var(--panel);border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden}.crumb{border:none;background:none;padding:2px 6px;color:var(--accent-2)}.crumb.current{color:var(--text);opacity:1;font-weight:600}.crumb-sep{color:var(--muted)}.crumb-hint{margin-left:auto;color:var(--muted);font-size:11px}.library ul{list-style:none;margin:0;padding:0}.lib-item{display:flex;gap:8px;align-items:center;padding:4px 8px;cursor:grab;border-bottom:1px solid #2f2f3a}.lib-item:hover{background:var(--panel-2)}.lib-item.active{background:#4b2a3a;box-shadow:inset 2px 0 0 var(--accent)}.lib-thumb{width:44px;height:44px;flex:none;border-radius:4px;border:1px solid var(--border);background:repeating-conic-gradient(#2a2a33 0% 25%,#23232b 0% 50%) 0 0 / 10px 10px}.lib-meta{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.lib-meta .name{overflow:hidden;text-overflow:ellipsis;font-weight:600}.lib-sub{display:flex;gap:6px;align-items:center}.lib-sub select{font-size:11px;padding:0 2px}.muted{color:var(--muted);font-size:11px}.modal-backdrop{position:fixed;inset:0;background:#00000073;display:grid;place-items:center;z-index:50}.modal{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:14px 16px;width:340px;display:flex;flex-direction:column;gap:10px;box-shadow:0 10px 40px #00000080}.modal h3{margin:0;font-size:14px}.kind-choice{display:flex;gap:10px}.viewport{position:relative}.text-editor{position:absolute;z-index:5;min-width:180px;max-width:420px;font:13px/1.35 var(--ui-font, system-ui),sans-serif;background:#1d1d24ee;color:#eee;border:1px solid #2f9bff;border-radius:4px;padding:4px 6px;resize:both;outline:none}.seg{display:inline-flex;gap:1px}.timeline .sound-mark{fill:#7fd1ff}.props .text-content{width:100%;box-sizing:border-box;resize:vertical;font:inherit;background:var(--field-bg, #1b1b22);color:inherit;border:1px solid #3a3a48;border-radius:3px;padding:3px 5px;margin-bottom:6px}.script-editor{display:flex;flex-direction:column;gap:6px}.script-body{display:flex;border:1px solid #3a3a48;border-radius:3px;background:#15151b}.script-gutter{margin:0;padding:6px 6px 6px 4px;min-width:22px;text-align:right;color:#5f5f72;background:#1b1b22;border-radius:3px 0 0 3px;font:12px/1.45 ui-monospace,SF Mono,Menlo,monospace;overflow:hidden;user-select:none}.script-code{flex:1;min-width:0;position:relative;display:flex}.script-code textarea,.script-hl,.script-probe{font:12px/1.45 ui-monospace,SF Mono,Menlo,monospace;tab-size:2;letter-spacing:0;font-variant-ligatures:none}.script-code textarea{position:relative;flex:1;min-width:0;border:0;outline:none;resize:vertical;padding:6px 8px;background:transparent;color:transparent;caret-color:#e6e6ee;white-space:pre;overflow:auto}.script-code textarea::placeholder{color:#5f5f72}.script-code textarea::selection{background:#7896ff59;color:transparent}.script-hl{position:absolute;inset:0;margin:0;padding:6px 8px;color:#e6e6ee;white-space:pre;overflow:hidden;pointer-events:none}.script-probe{position:absolute;visibility:hidden;white-space:pre}.t-comment{color:#6f7a8c;font-style:italic}.t-string,.t-regex{color:#9fdc8c}.t-number{color:#ffb86b}.t-keyword{color:#ff79c6}.t-api{color:#7fd1ff}.t-error{text-decoration:underline wavy #ff5c6c;text-decoration-skip-ink:none;text-underline-offset:3px}.script-gutter-error{color:#ff5c6c;font-weight:600}.script-problem{align-self:stretch;text-align:left;border:1px solid rgba(255,92,108,.4);background:#ff5c6c1a;color:#ff9aa5;font:12px/1.4 ui-monospace,SF Mono,Menlo,monospace;padding:4px 8px;border-radius:3px;cursor:pointer;white-space:pre-wrap}.script-menu{position:fixed;z-index:50;min-width:220px;max-width:360px;background:#23232d;border:1px solid #454556;border-radius:4px;box-shadow:0 6px 20px #00000073;font:12px/1.45 ui-monospace,SF Mono,Menlo,monospace;overflow:hidden}.script-menu ul{list-style:none;margin:0;padding:2px 0;max-height:176px;overflow-y:auto}.script-menu li{display:flex;gap:6px;align-items:center;padding:1px 8px;color:#e6e6ee;cursor:pointer;white-space:nowrap}.script-menu li.on{background:#3b4a7a}.script-menu-kind{width:14px;text-align:center;color:#9a9aab;flex:none}.script-menu-kind.k-function{color:#7fd1ff}.script-menu-kind.k-event{color:#ffd84d}.script-menu-kind.k-name,.script-menu-kind.k-label{color:#9fdc8c}.script-menu-detail{border-top:1px solid #3a3a48;padding:4px 8px;color:#a8a8bb;white-space:normal;font-family:system-ui,sans-serif}.script-actions{align-items:center}.script-actions .muted{flex:1}.small{font-size:11px}.modal.wide{width:min(760px,92vw)}.output-panel{flex:none;position:relative;z-index:1;border-top:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;max-height:160px;min-height:90px}.output-lines{overflow:auto;padding:4px 10px;font:12px/1.4 ui-monospace,SF Mono,Menlo,monospace}.output-line{white-space:pre-wrap}.output-line.error{color:#ff7b8a}.output-line .where{color:#9a9aab}.script-badge{font-size:10px;color:#ffd84d;margin-left:4px}.output-toggle.has-errors{color:#ff7b8a;border-color:#ff7b8a}select.menu{font-weight:500;width:auto;flex:none}.modal.export-dialog{width:min(520px,92vw)}.choice{border:1px solid var(--border);border-radius:6px;padding:6px 10px 8px;margin:0;display:flex;flex-direction:column;gap:6px}.choice legend{color:var(--muted);font-size:11px;padding:0 4px}.choice .check{align-items:flex-start}.choice .check span{display:flex;flex-direction:column}.choice small{color:var(--muted);font-size:11px}.embed{display:grid;grid-template-columns:1fr auto;gap:4px 6px;align-items:end}.embed .field-label{grid-column:1 / -1}.embed textarea{font:11px/1.4 ui-monospace,Menlo,monospace;resize:none;background:#15151b;color:#ddd;border:1px solid #3a3a48;border-radius:3px;padding:4px 6px}.modal.shortcuts{width:min(780px,94vw);max-height:86vh;overflow:auto}.shortcut-groups{columns:2 320px;column-gap:24px}.shortcut-groups section{break-inside:avoid;margin-bottom:10px}.shortcut-groups h4{margin:4px 0;font-size:11px;text-transform:uppercase;color:var(--muted)}.shortcut-groups td{padding:2px 8px 2px 0;vertical-align:top;font-size:12px}kbd{font:11px ui-monospace,Menlo,monospace;background:#2a2a34;border:1px solid #44444f;border-bottom-width:2px;border-radius:4px;padding:0 5px;white-space:nowrap}.boot.crash{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;text-align:center;padding:24px}.boot.crash h2{margin:0 0 6px}.crash-message{font-family:ui-monospace,Menlo,monospace;color:#ff9aa6;max-width:640px}.recovery dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:0;font-size:12px}.recovery dt{color:var(--muted)}.toolbar>*{flex:none}
