:root,:root[data-theme=graphite][data-mode=dark]{color-scheme:dark;--bg: #1b1c1e;--chrome: #252629;--chrome-edge: #131415;--panel: #2b2c30;--panel-head: #313237;--hairline: #36383d;--rule: #4a4c52;--ink: #e8e8ea;--ink-dim: #b7b8bd;--ink-faint: #9a9ca2;--accent: #3a66db;--accent-line: #8aaaff;--on-accent: #ffffff;--danger: #c2412f;--on-danger: #ffffff;--focus: #8aaaff;--field: #1f2023;--field-edge: #4a4c53;--hover: #393b41;--selected: #2f3d66;--menu: #303135;--menu-edge: #121314;--shadow: rgb(0 0 0 / .5);--scrim: rgb(0 0 0 / .45);--pasteboard: #2b2b2b}:root[data-theme=graphite][data-mode=light]{color-scheme:light;--bg: #c9cacd;--chrome: #e4e5e8;--chrome-edge: #b4b6bb;--panel: #eeeff1;--panel-head: #e3e4e7;--hairline: #d4d6da;--rule: #b0b3b9;--ink: #1a1b1e;--ink-dim: #43464d;--ink-faint: #5e626a;--accent: #2f5bd3;--accent-line: #2a51bd;--on-accent: #ffffff;--danger: #b23a2b;--on-danger: #ffffff;--focus: #2f5bd3;--field: #ffffff;--field-edge: #b9bcc2;--hover: #dfe1e5;--selected: #d4def8;--menu: #f7f7f8;--menu-edge: #a9acb2;--shadow: rgb(20 22 28 / .22);--scrim: rgb(20 22 28 / .3);--pasteboard: #b4b4b4}:root[data-theme=darkroom][data-mode=dark]{color-scheme:dark;--bg: #1c1816;--chrome: #26201d;--chrome-edge: #120f0e;--panel: #2d2622;--panel-head: #342c27;--hairline: #3a312c;--rule: #54473f;--ink: #eee4dc;--ink-dim: #c3b5aa;--ink-faint: #a59488;--accent: #e09a3e;--accent-line: #e9a752;--on-accent: #1d1208;--danger: #c8432f;--on-danger: #ffffff;--focus: #e9a752;--field: #201b18;--field-edge: #54473f;--hover: #3d342e;--selected: #4a3520;--menu: #322a25;--menu-edge: #110d0c;--shadow: rgb(0 0 0 / .5);--scrim: rgb(0 0 0 / .45);--pasteboard: #2a2a2a}:root[data-theme=darkroom][data-mode=light]{color-scheme:light;--bg: #cfc7c0;--chrome: #e9e2db;--chrome-edge: #bfb5ac;--panel: #f2ece6;--panel-head: #e8e0d8;--hairline: #dbd1c8;--rule: #b9ada2;--ink: #241c17;--ink-dim: #4e423a;--ink-faint: #67594f;--accent: #9a5a12;--accent-line: #8a4f0e;--on-accent: #ffffff;--danger: #a83424;--on-danger: #ffffff;--focus: #8a4f0e;--field: #fffaf6;--field-edge: #c2b6ab;--hover: #e4dad1;--selected: #f1dcc0;--menu: #faf6f2;--menu-edge: #b0a397;--shadow: rgb(40 28 20 / .22);--scrim: rgb(40 28 20 / .3);--pasteboard: #b4b4b4}:root[data-theme=fjord][data-mode=dark]{color-scheme:dark;--bg: #151a1e;--chrome: #1d2429;--chrome-edge: #0e1215;--panel: #222a30;--panel-head: #283138;--hairline: #2e383f;--rule: #435159;--ink: #e3ebef;--ink-dim: #afbec6;--ink-faint: #8fa2ac;--accent: #17807a;--accent-line: #5cc8bf;--on-accent: #ffffff;--danger: #c2442f;--on-danger: #ffffff;--focus: #5cc8bf;--field: #182025;--field-edge: #435159;--hover: #2f3a41;--selected: #1d4746;--menu: #252e34;--menu-edge: #0b0f12;--shadow: rgb(0 0 0 / .5);--scrim: rgb(0 0 0 / .45);--pasteboard: #2b2b2b}:root[data-theme=fjord][data-mode=light]{color-scheme:light;--bg: #c3ccd1;--chrome: #dfe6ea;--chrome-edge: #adb9c0;--panel: #ebf0f3;--panel-head: #dfe6ea;--hairline: #cfd9de;--rule: #a8b6bd;--ink: #142026;--ink-dim: #33424a;--ink-faint: #53656e;--accent: #136f6a;--accent-line: #0f625d;--on-accent: #ffffff;--danger: #ad3727;--on-danger: #ffffff;--focus: #136f6a;--field: #ffffff;--field-edge: #b2bfc5;--hover: #d7e0e5;--selected: #cbe6e3;--menu: #f5f8f9;--menu-edge: #9fadb4;--shadow: rgb(16 28 34 / .22);--scrim: rgb(16 28 34 / .3);--pasteboard: #b4b4b4}:root{--z-overlay: 10;--z-menu: 100;--z-dialog: 200;--z-palette: 300;--ui: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, sans-serif;--mono: "Cascadia Mono", "Consolas", ui-monospace, monospace;--radius: 4px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{overscroll-behavior:none;touch-action:pan-x pan-y;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--ink);font:12.5px/1.4 var(--ui);overflow:hidden;user-select:none;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}input{font:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}kbd{font-family:var(--mono);font-size:11px}.app{display:grid;grid-template-rows:auto 1fr auto;height:100%}.main{display:grid;grid-template-columns:minmax(0,1fr) 5px var(--dock-width, 300px);min-height:0}.main.no-dock{grid-template-columns:minmax(0,1fr)}.menubar{display:flex;align-items:stretch;gap:2px;height:30px;padding-inline:6px;background:var(--chrome);border-bottom:1px solid var(--chrome-edge);position:relative;z-index:var(--z-menu)}.menubar-brand{display:flex;align-items:center;gap:7px;padding-inline:6px 12px;font-weight:600;letter-spacing:.01em}.menubar-brand svg{width:16px;height:16px}.menu-root{position:relative;display:flex}.menu-title{background:none;border:0;padding-inline:10px;border-radius:var(--radius);margin-block:3px;cursor:default}.menu-title:hover,.menu-title[aria-expanded=true]{background:var(--hover)}.menu{position:absolute;top:100%;left:0;min-width:230px;padding:4px;margin:0;list-style:none;background:var(--menu);border:1px solid var(--menu-edge);border-radius:6px;box-shadow:0 8px 24px var(--shadow)}.menu .menu{top:-5px;left:100%;margin-left:2px}.menu-item{position:relative}.menu-button{display:grid;grid-template-columns:16px 1fr auto;align-items:center;gap:6px;width:100%;padding:4px 10px 4px 6px;border:0;border-radius:var(--radius);background:none;text-align:left;white-space:nowrap;cursor:default}.menu-button:hover,.menu-button:focus-visible,.menu-item.open>.menu-button{background:var(--hover);outline:none}.menu-button:disabled{color:var(--ink-faint)}.menu-check{color:var(--accent-line);text-align:center}.menu-shortcut,.menu-arrow{color:var(--ink-faint);padding-left:18px;font-size:11.5px}.menu-separator{height:1px;margin:4px 6px;background:var(--hairline)}.center{display:flex;flex-direction:column;min-width:0;min-height:0}.center>.stage{flex:1}.stage{display:flex;min-width:0;min-height:0}.stage>.viewport{flex:1}.toolbar{display:flex;flex:none;flex-direction:column;gap:2px;width:36px;padding:4px;background:var(--chrome);border-right:1px solid var(--chrome-edge)}.tool{width:28px;height:28px;border:0;border-radius:var(--radius);background:none;color:var(--ink-dim);font-size:14px;line-height:1}.tool:hover{background:var(--hover);color:var(--ink)}.tool[aria-pressed=true]{background:var(--selected);color:var(--ink);box-shadow:inset 0 0 0 1px var(--accent-line)}.center>.tabs{flex:none}.tabs{display:flex;gap:1px;height:28px;background:var(--chrome-edge);overflow-x:auto;scrollbar-width:none}.tab{display:flex;align-items:center;gap:6px;max-width:220px;padding-inline:12px 4px;background:var(--chrome);color:var(--ink-dim);white-space:nowrap;cursor:default}.tab.active{background:var(--panel);color:var(--ink);box-shadow:inset 0 2px 0 var(--accent)}.tab-name{overflow:hidden;text-overflow:ellipsis}.tab-dirty{width:7px;height:7px;flex:none;border-radius:50%;background:var(--accent-line)}.tab-close{width:20px;height:20px;flex:none;border:0;border-radius:var(--radius);background:none;color:var(--ink-faint)}.tab-close:hover{background:var(--hover);color:var(--ink)}.viewport{position:relative;min-width:0;min-height:0;background:var(--pasteboard);overflow:hidden}.viewport canvas{display:block;width:100%;height:100%}.start{position:absolute;inset:0;display:grid;place-items:center;padding:24px;z-index:var(--z-overlay);overflow-y:auto}.start-card{width:min(460px,100%);display:flex;flex-direction:column;gap:12px;padding:22px 24px;background:var(--panel);border:1px solid var(--rule);border-radius:8px;box-shadow:0 10px 30px var(--shadow)}.start-card h2{margin:0;font-size:18px}.start-card h3{margin:6px 0 0;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}.start-actions{display:flex;flex-wrap:wrap;gap:8px}.start-actions kbd{margin-left:8px;opacity:.8}.start-hint{margin:4px 0 0;color:var(--ink-faint)}.recent-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}.recent-item{width:100%;display:flex;justify-content:space-between;gap:12px;padding:6px 8px;border:0;border-radius:var(--radius);background:none;text-align:left}.recent-item:hover{background:var(--hover)}.recent-when,.recent-none{color:var(--ink-faint)}.recent-none{margin:0}.notices{position:absolute;right:12px;bottom:12px;width:min(420px,calc(100% - 24px));display:flex;flex-direction:column;gap:8px;z-index:var(--z-overlay)}.notice{display:flex;gap:8px;align-items:flex-start;padding:8px 6px 8px 12px;border-radius:6px;background:var(--menu);border:1px solid var(--menu-edge);border-left:4px solid var(--accent-line);box-shadow:0 4px 14px var(--shadow);user-select:text}.notice.warning,.notice.error{border-left-color:var(--danger)}.notice-text{flex:1;min-width:0}.notice-details{margin:4px 0 0;padding-left:18px;color:var(--ink-dim)}.viewport-notice{position:absolute;left:12px;bottom:12px;max-width:min(520px,calc(100% - 24px));padding:8px 12px;border-radius:6px;background:var(--menu);border:1px solid var(--menu-edge);color:var(--ink);box-shadow:0 4px 14px var(--shadow);z-index:var(--z-overlay)}.dock-splitter{background:var(--chrome-edge);cursor:col-resize;border-inline:2px solid var(--bg)}.dock-splitter:hover,.dock-splitter.dragging{background:var(--accent)}.dock{display:flex;flex-direction:column;min-height:0;overflow-y:auto;background:var(--bg);gap:1px}.panel{display:flex;flex-direction:column;background:var(--panel);min-height:0}.panel-head{display:flex;align-items:center;gap:4px;height:26px;padding-inline:4px 2px;background:var(--panel-head);border-bottom:1px solid var(--hairline)}.panel-fold{flex:1;display:flex;align-items:center;gap:6px;min-width:0;height:100%;border:0;background:none;font-weight:600;text-align:left;cursor:default}.panel-fold-arrow{display:inline-block;width:10px;color:var(--ink-faint);transition:transform .12s}.panel.collapsed .panel-fold-arrow{transform:rotate(-90deg)}.panel-close{width:22px;height:22px;border:0;border-radius:var(--radius);background:none;color:var(--ink-faint);cursor:default}.panel-close:hover{background:var(--hover);color:var(--ink)}.panel-body{padding:14px 12px 16px;color:var(--ink-dim)}.panel.collapsed .panel-body{display:none}.panel-body.live{padding:0;color:var(--ink)}.panel-empty{margin:0;padding:14px 12px;color:var(--ink-dim)}.panel-tools{display:flex;gap:6px;padding:6px 8px;border-top:1px solid var(--hairline)}.layer-list{margin:0;padding:2px 0;list-style:none;max-height:360px;overflow-y:auto}.layer-row{display:flex;align-items:center;gap:2px;height:28px;padding-right:8px;cursor:default}.layer-row:hover{background:var(--hover)}.layer-row.selected{background:var(--selected)}.layer-row.hidden-layer .layer-name{color:var(--ink-faint)}.layer-eye,.layer-fold{width:22px;height:22px;flex:none;border:0;border-radius:var(--radius);background:none;color:var(--ink-dim);font-size:11px}.layer-eye:hover,.layer-fold:not(:disabled):hover{color:var(--ink);background:var(--hover)}.layer-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-kind{color:var(--ink-faint);font-size:11px;white-space:nowrap}.layer-rename{flex:1;min-width:0;padding:2px 6px;border:1px solid var(--focus);border-radius:var(--radius);background:var(--field);color:var(--ink)}.history-list{margin:0;padding:2px 0;list-style:none;max-height:260px;overflow-y:auto}.history-step{width:100%;padding:4px 12px;border:0;background:none;text-align:left}.history-step:hover{background:var(--hover)}.history-step.current{background:var(--selected)}.history-step.undone{color:var(--ink-faint)}.props-doc,.props-layer{padding:12px}.props-title{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.slider-row{display:flex;align-items:center;gap:8px}.slider-row input[type=range]{flex:1;accent-color:var(--accent)}.slider-number{width:46px;text-align:right}.unit{color:var(--ink-faint)}.check{display:flex;align-items:center;gap:8px}.check input{accent-color:var(--accent)}.statusbar{display:flex;align-items:center;gap:16px;height:24px;padding-inline:10px;background:var(--chrome);border-top:1px solid var(--chrome-edge);color:var(--ink-dim);font-size:11.5px;white-space:nowrap}.statusbar-spacer{flex:1}.status-faint{color:var(--ink-faint)}.status-engine{display:inline-flex;align-items:center;gap:6px}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--ink-faint)}.status-engine[data-engine-status=ready] .status-dot{background:var(--accent-line)}.status-engine[data-engine-status=lost] .status-dot,.status-engine[data-engine-status=unsupported] .status-dot{background:var(--danger)}.status-warn{color:var(--danger)}.scrim{position:fixed;inset:0;background:var(--scrim);display:grid;place-items:start center;padding-top:12vh;z-index:var(--z-dialog)}.dialog{width:min(560px,calc(100vw - 32px));max-height:72vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--menu-edge);border-radius:8px;box-shadow:0 18px 50px var(--shadow);user-select:text}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:10px 10px 10px 16px;background:var(--panel-head);border-bottom:1px solid var(--hairline);border-radius:8px 8px 0 0}.dialog-head h2{margin:0;font-size:14px;font-weight:600}.dialog-body{padding:14px 16px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.dialog-body p{margin:0;color:var(--ink-dim);max-width:60ch}.dialog-foot{display:flex;justify-content:flex-end;gap:8px;padding:10px 16px;border-top:1px solid var(--hairline)}.button{padding:5px 14px;border:1px solid var(--field-edge);border-radius:var(--radius);background:var(--field)}.button:hover{background:var(--hover)}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.button:disabled{opacity:.5}.button.small{padding:3px 10px}.button kbd{font-size:10.5px}.button.danger{background:var(--danger);border-color:var(--danger);color:var(--on-danger)}.form{display:flex;flex-direction:column;gap:12px}.form p{margin:0;color:var(--ink-dim)}.field{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.field label,.field>span:first-child{color:var(--ink-dim)}.field-row{display:flex;gap:10px;align-items:flex-start}.field input:not([type]),.field input[inputmode],.field select,.slider-number{padding:5px 8px;border:1px solid var(--field-edge);border-radius:var(--radius);background:var(--field);color:var(--ink);min-width:0}.field input[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);font-size:11.5px}.form-summary{font-family:var(--mono);font-size:11.5px}.dialog-foot-gap{flex:1}.anchor-grid{display:grid;grid-template-columns:repeat(3,26px);gap:3px}.anchor{width:26px;height:26px;border:1px solid var(--field-edge);border-radius:var(--radius);background:var(--field)}.anchor.on{background:var(--accent);border-color:var(--accent)}.facts{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin:0}.facts dt{color:var(--ink-faint)}.facts dd{margin:0;font-family:var(--mono);font-size:11.5px;overflow-wrap:anywhere}.shortcut-group h3{margin:0 0 4px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}.shortcut-row{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px solid var(--hairline)}.palette-scrim{z-index:var(--z-palette);padding-top:14vh}.palette{width:min(600px,calc(100vw - 32px));background:var(--menu);border:1px solid var(--menu-edge);border-radius:8px;box-shadow:0 18px 50px var(--shadow);overflow:hidden}.palette-input{width:100%;padding:11px 14px;border:0;border-bottom:1px solid var(--hairline);background:var(--field);color:var(--ink);font-size:14px;outline:none}.palette-list{max-height:46vh;overflow-y:auto;margin:0;padding:4px;list-style:none}.palette-item{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline;padding:6px 10px;border-radius:var(--radius);cursor:default}.palette-item[aria-selected=true]{background:var(--selected)}.palette-category{color:var(--ink-faint);margin-right:8px}.palette-match{color:var(--accent-line);font-weight:600}.palette-shortcut{color:var(--ink-faint);font-size:11.5px}.palette-none{padding:12px 14px;color:var(--ink-faint)}.screen{height:100%;display:grid;place-content:center;padding:24px;background:var(--bg);user-select:text}.screen-card{max-width:560px;display:flex;flex-direction:column;gap:12px;padding:24px 28px;background:var(--panel);border:1px solid var(--rule);border-radius:8px}.screen-card h1{margin:0;font-size:20px}.screen-card p{margin:0;color:var(--ink-dim)}.screen-card code{font-family:var(--mono);color:var(--ink)}.screen-actions{display:flex;gap:8px;margin-top:6px}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.colour{display:flex;flex-direction:column;gap:6px;padding:10px 12px 12px}.colour-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:4px}.swatches{position:relative;width:58px;height:52px;flex:none}.swatch{position:absolute;width:34px;height:34px;padding:0;border:1px solid var(--field-edge);border-radius:3px;box-shadow:0 0 0 1px var(--panel)}.swatch.fg{left:0;top:0;z-index:1}.swatch.bg{left:16px;top:16px}.swatch.editing{outline:2px solid var(--focus);outline-offset:1px}.swatch-swap{position:absolute;right:0;top:-3px;width:16px;height:16px;padding:0;border:0;background:none;color:var(--ink-dim);font-size:12px;line-height:1}.swatch-reset{position:absolute;left:0;bottom:-4px;width:14px;height:14px;padding:0;border:0;background:none}.swatch-reset span{position:absolute;width:8px;height:8px;border:1px solid var(--field-edge)}.swatch-reset span:first-child{left:0;top:0;background:#000;z-index:1}.swatch-reset span:last-child{left:4px;top:4px;background:#fff}.colour-models{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:2px}.colour-model{padding:2px 7px;border:1px solid transparent;border-radius:var(--radius);background:none;color:var(--ink-dim);font-size:11.5px}.colour-model[aria-selected=true]{border-color:var(--field-edge);background:var(--field);color:var(--ink)}.colour-row{display:grid;grid-template-columns:14px 1fr 44px 14px;align-items:center;gap:6px}.colour-label{color:var(--ink-dim);font-weight:600}.colour-slider{appearance:none;height:12px;border-radius:6px;border:1px solid var(--field-edge);margin:0}.colour-slider::-webkit-slider-thumb{appearance:none;width:10px;height:16px;border-radius:3px;background:var(--panel);border:2px solid var(--ink)}.colour-slider::-moz-range-thumb{width:8px;height:14px;border-radius:3px;background:var(--panel);border:2px solid var(--ink)}.colour-number,.colour-hex{width:100%;padding:3px 5px;border:1px solid var(--field-edge);border-radius:var(--radius);background:var(--field);color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}.colour-hex{grid-column:2 / 4;text-align:left;font-family:var(--mono)}.gamut-warning{margin-top:4px;padding:5px 8px;border:1px solid var(--danger);border-radius:var(--radius);background:none;color:var(--ink);text-align:left;font-size:11.5px}.field-note{color:var(--ink-faint);font-size:11.5px}.layer-thumb{width:22px;height:22px;flex:none;margin-right:6px;border:1px solid var(--field-edge);border-radius:2px}.layer-thumb.checker{background:repeating-conic-gradient(#fff 0 25%,#ccc 0 50%) 0 0 / 8px 8px}.layer-thumb{display:grid;place-items:center;overflow:hidden}.layer-thumb canvas{max-width:100%;max-height:100%}.layer-part{display:inline-flex;flex:none;margin-right:4px;border-radius:3px;outline-offset:1px}.layer-part .layer-thumb{margin-right:0}.layer-part.target{outline:2px solid var(--accent-line)}.layer-part.mask.disabled{position:relative;opacity:.55}.layer-part.mask.disabled:after{content:"";position:absolute;inset:0;background:linear-gradient(to top right,transparent calc(50% - 1px),var(--danger) calc(50% - 1px),var(--danger) calc(50% + 1px),transparent calc(50% + 1px))}.layer-clip{flex:none;width:12px;color:var(--ink-faint);font-size:12px}.layer-row{position:relative}.layer-row.drop-above:before,.layer-row.drop-below:after{content:"";position:absolute;left:0;right:0;height:2px;background:var(--accent-line);pointer-events:none}.layer-row.drop-above:before{top:-1px}.layer-row.drop-below:after{bottom:-1px}.layer-row.drop-into{box-shadow:inset 0 0 0 2px var(--accent-line)}.layer-list.drop-end{box-shadow:inset 0 -2px 0 var(--accent-line)}.center>.options-bar{flex:none}.options-bar{display:flex;align-items:center;gap:4px 14px;height:34px;padding:0 10px;overflow-x:auto;overflow-y:hidden;background:var(--chrome);border-bottom:1px solid var(--chrome-edge);white-space:nowrap;font-size:12.5px}.options-tool{font-weight:600}.options-hint{color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis}.options-field{display:inline-flex;align-items:center;gap:5px}.options-field select{max-width:170px}.options-scrub{color:var(--ink-dim);cursor:ew-resize;user-select:none}.options-number{width:44px;padding:2px 4px;border:1px solid var(--field-edge);border-radius:var(--radius);background:var(--field);color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}.options-toggle{padding:3px 8px;border:1px solid var(--field-edge);border-radius:var(--radius);background:var(--field);color:var(--ink-dim);font-size:12px}.options-toggle[aria-pressed=true]{background:var(--selected);border-color:var(--accent-line);color:var(--ink)}.swatch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(22px,1fr));gap:4px;padding:8px 10px}.swatch-chip{aspect-ratio:1;min-width:0;border:1px solid var(--field-edge);border-radius:3px;padding:0}.swatch-chip:hover,.swatch-chip:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.brush-list{margin:0;padding:4px;list-style:none;max-height:340px;overflow-y:auto}.brush-list li{position:relative}.brush-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:4px 8px;border:1px solid transparent;border-radius:var(--radius);background:none;color:var(--ink);text-align:left}.brush-item:hover{background:var(--hover)}.brush-item[aria-pressed=true]{background:var(--selected);border-color:var(--accent-line)}.brush-name{font-size:12px;color:var(--ink-dim)}.brush-preview{max-width:100%;color:var(--ink)}.brush-remove{position:absolute;top:4px;right:6px;border:0;background:none;color:var(--ink-faint)}.brush-save{display:flex;gap:6px}.brush-save input{flex:1;min-width:0}.pen-row{display:flex;align-items:center;gap:8px}.pen-row input{flex:1}.pen-try{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:stretch}.pen-curve{width:120px;height:120px}.pen-curve-box{fill:var(--field);stroke:var(--field-edge)}.pen-curve-linear{stroke:var(--rule);stroke-dasharray:3 3}.pen-curve-line{fill:none;stroke:var(--accent-line);stroke-width:2}.pen-curve-dot{fill:var(--accent)}.pen-pad{display:grid;place-items:center;border:1px dashed var(--field-edge);border-radius:var(--radius);color:var(--ink-faint);font-size:12.5px;touch-action:none}.param-controls{display:flex;flex-direction:column;gap:10px}.param-swatch{width:22px;height:22px;flex:none;border:1px solid var(--field-edge);border-radius:var(--radius)}.curve-box{width:100%;max-width:260px;aspect-ratio:1;background:var(--field);border:1px solid var(--field-edge);border-radius:var(--radius);touch-action:none;cursor:crosshair}.curve-grid line,.curve-diagonal{stroke:var(--field-edge);stroke-width:1}.curve-line{fill:none;stroke:var(--ink);stroke-width:2}.curve-point{fill:var(--field);stroke:var(--ink);stroke-width:1.5;cursor:grab}.histogram{width:100%;height:80px;background:var(--field);border:1px solid var(--field-edge);border-radius:var(--radius)}.histogram-bars{stroke:var(--ink-faint);stroke-width:1}.histogram-curve{fill:none;stroke:var(--accent);stroke-width:1.5;vector-effect:non-scaling-stroke}.levels-row{display:flex;gap:8px}.levels-field{display:flex;flex-direction:column;gap:2px;font-size:11.5px;color:var(--ink-dim);flex:1;min-width:0}.levels-field input{width:100%}.gradient-bar{height:16px;border:1px solid var(--field-edge);border-radius:var(--radius)}.gradient-stop{display:flex;align-items:center;gap:6px}.gradient-stop input{width:56px}.layer-thumb.adjust{display:grid;place-items:center;margin-right:6px;color:var(--ink-dim);font-size:14px;background:var(--field)}.layer-part.smart .layer-thumb{box-shadow:inset -6px -6px 0 -4px var(--accent-line)}.layer-fx{flex:none;padding:0 4px;margin-left:4px;border:1px solid var(--field-edge);border-radius:var(--radius);background:var(--field);color:var(--ink-dim);font-size:11px;font-style:italic}.effect-row{font-size:12px;color:var(--ink-dim)}.layer-style{display:flex;gap:16px;min-height:320px}.fx-list{margin:0;padding:0;list-style:none;flex:none;width:180px;display:flex;flex-direction:column;gap:2px}.fx-item{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:var(--radius)}.fx-item.current{background:var(--selected)}.fx-name{flex:1;text-align:left;background:none;border:none;color:var(--ink);padding:2px 0}.fx-settings{flex:1;min-width:260px;max-height:60vh;overflow-y:auto}.fx-settings h3{margin:0 0 6px;font-size:14px}.props-fx{margin:0;padding-left:18px;font-size:12px}
