:root{--bg: #1a1a1a;--bg-elevated: #242424;--fg: #f2f2f2;--fg-muted: #a0a0a0;--accent: #4c8dff;--border: #333;--radius: 8px;color-scheme:dark}:root[data-theme=light]{--bg: #f2f2f4;--bg-elevated: #ffffff;--fg: #1d1d1f;--fg-muted: #6e6e73;--accent: #2f74e8;--border: #d9d9de;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--fg);touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.app-shell,.gallery,.editor{height:100%}.app-shell{overflow:hidden}.button{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);color:var(--fg);font:inherit;text-decoration:none;cursor:pointer}.button--primary{background:var(--accent);border-color:var(--accent);color:#fff}.button--ghost{background:transparent}.gallery{display:flex;flex-direction:column;align-items:center;gap:1.5rem;text-align:center;padding:3rem 2rem 2rem;overflow-y:auto}.gallery__footer{margin-top:auto;padding-top:1.5rem;color:var(--fg-muted);font-size:.78rem}.gallery__grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;max-width:960px}.doc-card{position:relative;width:200px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;text-align:left}.doc-card:hover{border-color:var(--accent)}.doc-card__thumb{height:130px;display:flex;align-items:center;justify-content:center;background:conic-gradient(#3a3a3a 25%,#444 0,#444 50%,#3a3a3a 0,#3a3a3a 75%,#444 0) 0 0 / 16px 16px}.doc-card__thumb img{max-width:100%;max-height:100%;object-fit:contain}.doc-card__empty{color:var(--fg-muted);font-size:.8rem}.doc-card__info{display:flex;flex-direction:column;padding:.45rem .6rem;gap:.1rem}.doc-card__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-card__meta{color:var(--fg-muted);font-size:.75rem}.doc-card__actions{position:absolute;top:6px;right:6px;display:flex;gap:5px}.doc-card__action{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:#0000009e;color:#fff;cursor:pointer}.doc-card__action:hover{background:#000000d1;border-color:var(--accent)}.doc-card__action--danger:hover{background:#b3261e;border-color:#b3261e}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0000008c;display:flex;align-items:center;justify-content:center}.dialog{width:min(420px,92vw);background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:1.1rem;display:flex;flex-direction:column;gap:.9rem;text-align:left}.dialog__title{margin:0;font-size:1.15rem}.dialog__field{display:flex;flex-direction:column;gap:.35rem;color:var(--fg-muted);font-size:.85rem;flex:1}.dialog__field input{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:.4rem .55rem;font:inherit}.colordrop-chip{position:fixed;z-index:300;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;border:2px solid rgba(255,255,255,.9);box-shadow:0 1px 4px #00000080;pointer-events:none}.colordrop-pill{position:fixed;z-index:300;top:14px;left:50%;transform:translate(-50%);background:#000000c7;color:#fff;border-radius:999px;padding:.35rem .8rem;font-size:.8rem;font-variant-numeric:tabular-nums;pointer-events:none}.dialog__presets{display:flex;flex-wrap:wrap;gap:.35rem}.dialog__presets .button.is-active{border-color:var(--accent);color:var(--accent)}.dialog__row{display:flex;gap:.75rem}.dialog__hint{margin:0;color:var(--fg-muted);font-size:.8rem}.dialog__actions{display:flex;justify-content:flex-end;gap:.5rem}.dialog--export{width:min(360px,92vw)}.export__row{display:flex;align-items:center;gap:.6rem;margin-bottom:.7rem}.export__label{width:4.2rem;flex-shrink:0;color:var(--fg-muted);font-size:.85rem}.export__row input[type=range]{flex:1}.export__dim{color:var(--fg-muted);font-size:.78rem;font-variant-numeric:tabular-nums;margin-left:auto}.export__seg{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden}.export__seg button{padding:.3rem .9rem;border:none;background:transparent;color:var(--fg);cursor:pointer;font:inherit}.export__seg button.is-active{background:var(--accent);color:#fff}.export__note{margin:-.2rem 0 .6rem;color:var(--fg-muted);font-size:.74rem}.docprops{margin:0;display:flex;flex-direction:column;gap:.4rem}.docprops__row{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}.docprops__label{color:var(--fg-muted)}.docprops__value{margin:0;text-align:right;font-variant-numeric:tabular-nums}.docprops__resize{margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--border)}.docprops__section-title{margin:0 0 .3rem;font-size:.9rem}.docprops__resize-row{display:flex;align-items:flex-end;gap:.8rem;margin-top:.6rem}.docprops__field{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;color:var(--fg-muted)}.docprops__field input{width:84px;padding:.35rem .45rem;font:inherit;font-variant-numeric:tabular-nums;color:var(--fg);background:var(--bg);border:1px solid var(--border);border-radius:6px}.docprops__field input:focus{outline:none;border-color:var(--accent)}.docprops__anchor{display:grid;grid-template-columns:repeat(3,18px);grid-template-rows:repeat(3,18px);gap:2px;margin-left:auto}.docprops__anchor-cell{width:18px;height:18px;padding:0;border:1px solid var(--border);border-radius:3px;background:var(--bg);cursor:pointer}.docprops__anchor-cell:hover{border-color:var(--accent)}.docprops__anchor-cell.is-active{background:var(--accent);border-color:var(--accent)}.docprops__lock{display:flex;align-items:center;gap:.3rem;font-size:.74rem;color:var(--fg-muted);white-space:nowrap}.docprops__apply{margin-left:auto;align-self:flex-end}.gallery__header{display:flex;align-items:center;justify-content:center;gap:1rem}.gallery__titles{text-align:left}.gallery__header h1{margin:0 0 .25rem;font-size:2.5rem;line-height:1.1}.gallery__header p{margin:0;color:var(--fg-muted)}.editor{display:flex;flex-direction:column;position:relative}.editor__topbar{display:flex;align-items:center;gap:.6rem;padding:.15rem .6rem;min-height:40px;background:var(--bg-elevated);border-bottom:1px solid var(--border)}.editor__topbar .button--icon{padding:.3rem}.replays__empty{color:var(--fg-muted);max-width:40ch}.replays__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;max-height:50vh;overflow-y:auto}.replays__item{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.5rem .7rem;border:1px solid var(--border);border-radius:var(--radius, 8px);background:var(--bg-elevated)}.replays__info{display:flex;flex-direction:column;min-width:0}.replays__info span{font-size:.8rem;color:var(--fg-muted)}.replays__actions{display:flex;gap:.25rem;flex-shrink:0}.replay-bar{position:absolute;left:50%;bottom:1.4rem;transform:translate(-50%);display:flex;align-items:center;gap:.6rem;padding:.4rem .7rem;border-radius:10px;background:#000000d1;color:#fff;z-index:35;box-shadow:0 4px 18px #0006}.replay-bar .button--icon{color:#fff}.replay-bar__track{width:220px;height:5px;border-radius:3px;background:#ffffff40;overflow:hidden}.replay-bar__fill{height:100%;background:var(--accent);transition:width 80ms linear}.replay-bar__time{font-size:.8rem;font-variant-numeric:tabular-nums;white-space:nowrap}.replay-bar__scrub{width:220px;accent-color:var(--accent);color-scheme:dark;cursor:pointer}.replay-bar__speed{background:#2b2b2b;color:#fff;color-scheme:dark;border:1px solid rgba(255,255,255,.25);border-radius:5px;padding:.15rem .3rem}.replay-bar__speed option{background:#2b2b2b;color:#fff}.button.record-btn{color:var(--danger, #e5484d)}.button.is-recording{animation:rec-pulse 1.3s ease-in-out infinite}@keyframes rec-pulse{50%{opacity:.45}}.editor__title{color:var(--fg-muted)}.toolbar{position:absolute;top:52px;left:10px;z-index:30;display:flex;flex-wrap:wrap;align-content:flex-start;gap:.25rem;padding:16px .375rem .375rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #00000059}.toolbar__group{display:contents}.toolbar{flex-direction:row}.toolbar--vertical{width:86px}.toolbar--horizontal{width:352px}.toolbar__right-group{flex-wrap:wrap}.toolbar .button--icon{width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center}.toolbar .button--icon svg{width:20px;height:20px;flex:0 0 auto}.toolbar--floating{top:auto}.toolbar .toolbar__control{flex-direction:column;align-items:stretch;gap:.15rem}.toolbar .toolbar__control input[type=range]{width:100%;min-width:0}.toolbar .toolbar__dock{position:absolute;top:1px;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center;z-index:1}.toolbar .toolbar__control,.toolbar__right-group{flex-basis:100%}.toolbar__handle{display:flex;align-items:center;justify-content:center;padding:.1rem;color:var(--fg-muted);cursor:grab;touch-action:none;border-radius:5px}.toolbar__handle:active{cursor:grabbing}.toolbar__dock-toggle{display:inline-flex;align-items:center;justify-content:center;padding:.1rem .15rem;background:transparent;border:none;color:var(--fg-muted);cursor:pointer;border-radius:5px}.toolbar__dock-toggle:hover{color:var(--fg)}.toolbar__right-group{margin-left:0;display:flex;gap:.3rem}.toolbar .toolbar__resize{position:absolute;top:50%;right:-6px;transform:translateY(-50%);width:12px;height:42px;cursor:ew-resize;touch-action:none;border:1px solid var(--border);border-radius:6px;background-color:var(--bg);background-image:radial-gradient(var(--fg-muted) 1.2px,transparent 1.4px);background-size:4px 4px;background-position:center}.toolbar .toolbar__resize:hover{border-color:var(--accent)}.toolbar .button{padding:.3rem .7rem;font-size:.85rem}.toolbar .button.is-active{border-color:var(--accent);color:var(--accent)}.button--icon{padding:.45rem;line-height:0}.button--bare{border:none;background:transparent;padding:.25rem}.button:disabled{opacity:.35;cursor:default}.toolbar__right{margin-left:auto}.toolbar__right-group{margin-left:auto;display:flex;align-items:center;gap:.5rem}.toolbar__color{position:relative;display:inline-flex}.toolbar__color-button{width:1.9rem;height:1.9rem;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:0}.toolbar__color-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:50;width:230px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem;box-shadow:0 8px 24px #00000073}.toolbar__color-popover--float{position:fixed;top:auto;z-index:60}.toolbar__color-title{display:flex;align-items:center;gap:.4rem;margin:-.6rem -.6rem .5rem;padding:.4rem .55rem;font-size:.78rem;font-weight:600;color:var(--fg-muted);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;background:color-mix(in srgb,var(--fg) 6%,transparent)}.toolbar__color-title:active{cursor:grabbing}.toolbar__color-grip{flex-shrink:0}.toolbar__color-redock{margin-left:auto;width:1.4rem;height:1.4rem}.color-picker{display:flex;flex-direction:column;gap:.55rem;font-size:.8rem}.color-picker__modes{display:flex;gap:2px;padding:2px;background:var(--bg);border:1px solid var(--border);border-radius:7px}.color-picker__mode{flex:1;padding:.25rem 0;border:none;border-radius:5px;background:transparent;color:var(--fg-muted);font:inherit;font-size:.74rem;cursor:pointer}.color-picker__mode.is-active{background:var(--bg-elevated);color:var(--fg)}.color-picker__wheel{position:relative;width:100%;aspect-ratio:1}.color-picker__ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;-webkit-mask:radial-gradient(circle,transparent 0 57%,#000 58% 100%);mask:radial-gradient(circle,transparent 0 57%,#000 58% 100%);touch-action:none}.color-picker__ring-cursor{position:absolute;width:14px;height:14px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px #000c;transform:translate(-50%,-50%);pointer-events:none}.color-picker__wheel-sv{position:absolute;left:50%;top:50%;width:56%;height:56%;transform:translate(-50%,-50%)}.color-picker__wheel-sv .color-picker__sv{aspect-ratio:auto;height:100%}.color-picker__sliders{display:flex;flex-direction:column;gap:.5rem}.color-picker__slider{display:grid;grid-template-columns:18px 1fr 30px;align-items:center;gap:.45rem;color:var(--fg-muted)}.color-picker__slider-val{text-align:right;font-variant-numeric:tabular-nums;color:var(--fg);font-size:.74rem}.color-picker__slider-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:14px;border-radius:7px;border:1px solid var(--border)}.color-picker__slider-input::-webkit-slider-runnable-track{background:transparent;height:14px}.color-picker__slider-input::-moz-range-track{background:transparent;height:14px}.color-picker__slider-input::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:18px;margin-top:-3px;border-radius:3px;background:#fff;border:1px solid rgba(0,0,0,.65);cursor:pointer}.color-picker__slider-input::-moz-range-thumb{width:10px;height:18px;border-radius:3px;background:#fff;border:1px solid rgba(0,0,0,.65);cursor:pointer}.toolbar__brush,.toolbar__guides{position:relative;display:inline-flex}.toolbar__guides-panel{width:220px}.toolbar__guides-head{cursor:move;touch-action:none;-webkit-user-select:none;user-select:none}.toolbar__guides-head-actions{display:flex;align-items:center;gap:2px}.toolbar__guides-panel.is-float{z-index:200}.toolbar__guides-panel.is-max{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,94vw);max-height:88vh;z-index:201}.guides-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#00000073}.brush-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:288px;max-height:min(80vh,640px);overflow-y:auto;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--border) transparent;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem;box-shadow:0 8px 24px #00000073;display:flex;flex-direction:column;gap:.6rem;font-size:.8rem}.brush-panel::-webkit-scrollbar{width:8px}.brush-panel::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.brush-panel::-webkit-scrollbar-track{background:transparent}.brush-panel__head{display:flex;align-items:center;justify-content:space-between}.brush-panel__title{font-size:.85rem;font-weight:600}.brush-panel__icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--fg-muted);cursor:pointer}.brush-panel__icon:hover{color:var(--fg);background:var(--bg-hover, rgba(127, 127, 127, .15))}.brush-editor__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0000008c}.brush-editor{position:fixed;top:0;right:0;bottom:0;left:0;z-index:201;margin:auto;width:min(1100px,94vw);height:min(820px,94vh);background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 50px #00000080;display:flex;flex-direction:column;overflow:hidden}.brush-editor__head{display:flex;align-items:center;justify-content:space-between;padding:.7rem .9rem;border-bottom:1px solid var(--border)}.brush-editor__title{font-size:1rem;font-weight:600}.brush-editor__head-actions{display:flex;gap:.4rem}.brush-editor__body{flex:1;min-height:0;display:flex}.brush-editor__stage{flex:1;min-width:0;padding:.9rem;display:flex}.brush-editor__panel{width:340px;flex-shrink:0;border-left:1px solid var(--border);padding:.7rem;overflow:hidden;display:flex;flex-direction:column;gap:.6rem;font-size:.8rem}.brush-editor__panel-head{flex-shrink:0;display:flex;flex-direction:column;gap:.6rem}.brush-editor__panel-scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.6rem}.brush-section{display:flex;flex-direction:column;gap:.5rem;padding:.55rem .6rem .65rem;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.brush-section__title{margin:0;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-muted)}.brush-panel__grain-list{display:flex;flex-direction:column;gap:.25rem}.brush-panel__grain-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.75rem;color:var(--fg-muted)}.brush-panel__icon--bare{width:22px;height:22px;border:none;background:transparent}.brush-try{position:relative;flex:1;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff}.brush-try__canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.brush-try__hint{position:absolute;left:50%;bottom:12px;transform:translate(-50%);padding:.2rem .6rem;border-radius:999px;background:#00000073;color:#fff;font-size:.72rem;pointer-events:none}.brush-try__clear{position:absolute;top:10px;right:10px;padding:.3rem .7rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated);color:var(--fg);font-size:.75rem;cursor:pointer}.brush-try__clear:hover{background:var(--bg-hover, rgba(127, 127, 127, .15))}@media(max-width:720px){.brush-editor__body{flex-direction:column}.brush-editor__panel{width:auto;border-left:none;border-top:1px solid var(--border);flex:1;min-height:0}}.brush-panel__row{display:flex;align-items:center;gap:.5rem;color:var(--fg-muted)}.brush-panel__name{width:4.2rem;flex-shrink:0}.brush-panel__color{flex:1;height:24px;padding:0;border:1px solid var(--border);border-radius:6px;background:none;cursor:pointer}.brush-panel__row input[type=range]{flex:1}.brush-panel__select{flex:1;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:5px;padding:.25rem .3rem;font:inherit;font-size:.8rem}.brush-panel__toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.4rem .55rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--fg);font:inherit;cursor:pointer}.brush-panel__toggle.is-active{border-color:var(--accent);color:var(--accent)}.brush-panel__toggle-state{margin-left:auto;color:var(--fg-muted);font-variant-numeric:tabular-nums}.brush-panel__tips{display:grid;grid-template-columns:repeat(3,1fr);gap:.3rem}.brush-panel__tip{padding:.3rem .2rem;background:var(--bg);border:1px solid var(--border);border-radius:5px;color:var(--fg-muted);font:inherit;font-size:.75rem;cursor:pointer}.brush-panel__tip.is-active{border-color:var(--accent);color:var(--accent)}.brush-preview{width:100%;height:auto;display:block;border:1px solid var(--border);border-radius:6px;background:#fff}.curve-editor-wrap{display:flex;flex-direction:column;gap:.3rem}.curve-editor__modes{display:flex;gap:.25rem;align-self:flex-end}.curve-editor__mode{font-size:.65rem;line-height:1;padding:.2rem .45rem;border:1px solid var(--border);border-radius:5px;background:transparent;color:var(--fg-muted);cursor:pointer}.curve-editor__mode:hover{color:var(--fg)}.curve-editor__mode.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.curve-editor{width:100%;height:150px;flex:none;display:block;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated);touch-action:none}.curve-editor__bg{fill:transparent}.curve-editor__grid{stroke:var(--border);stroke-width:1}.curve-editor__line{fill:none;stroke:var(--accent);stroke-width:2}.curve-editor__pt{fill:var(--bg-elevated);stroke:var(--accent);stroke-width:2;cursor:grab}.curve-editor__pt.is-drag{fill:var(--accent)}.brush-panel__library{width:100%;padding:.4rem;background:color-mix(in srgb,var(--accent) 16%,transparent);border:1px solid var(--accent);border-radius:6px;color:var(--fg);font:inherit;font-size:.8rem;cursor:pointer}.brush-panel__reset{align-self:flex-end;display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .5rem;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--fg-muted);font:inherit;font-size:.75rem;cursor:pointer}.brush-panel__reset:hover{color:var(--fg);border-color:var(--accent)}.brush-lib__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#00000073;display:flex;align-items:center;justify-content:center}.brush-lib{width:360px;max-width:calc(100vw - 2rem);max-height:calc(100vh - 4rem);overflow-y:auto;overflow-x:hidden;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 40px #00000080;padding:.8rem;display:flex;flex-direction:column;gap:.6rem}.brush-lib__header{display:flex;align-items:center;justify-content:space-between;font-weight:600}.brush-lib__close{background:none;border:none;color:var(--fg-muted);font-size:1rem;cursor:pointer}.brush-lib__search{position:sticky;top:0;z-index:1;background:var(--bg-elevated);padding-bottom:.2rem}.brush-lib__search-input{width:100%;padding:.4rem .55rem;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;font:inherit;font-size:.85rem}.brush-lib__empty{color:var(--fg-muted);font-size:.85rem;padding:.5rem .2rem}.brush-lib__section{color:var(--fg-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.brush-lib__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem}.brush-lib__item{display:flex;flex-direction:column;gap:.35rem;padding:.4rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--fg);font:inherit;font-size:.8rem;text-align:left;cursor:pointer}.brush-lib__thumb{display:block;width:100%;height:40px;object-fit:cover;border-radius:4px;background:#fff}.brush-lib__item-name{line-height:1.1}.brush-lib__item.is-active{border-color:var(--accent);color:var(--accent)}.brush-lib__custom{position:relative;display:flex}.brush-lib__custom.is-active .brush-lib__item--custom{border-color:var(--accent);color:var(--accent)}.brush-lib__item--custom{flex:1;border-radius:6px 0 0 6px}.brush-lib__del{width:2rem;background:var(--bg);border:1px solid var(--border);border-left:none;border-radius:0 6px 6px 0;color:var(--danger, #f06a6a);cursor:pointer;display:flex;align-items:center;justify-content:center}.brush-lib__save{display:flex;flex-wrap:wrap;gap:.4rem;border-top:1px solid var(--border);padding-top:.6rem}.brush-lib__save .brush-lib__name{flex-basis:100%}.brush-lib__name{flex:1;min-width:0;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:.4rem .5rem;font:inherit}.brush-lib__capture{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:.5rem .6rem;align-items:center;border-top:1px solid var(--border);padding-top:.6rem}.brush-lib__capture-preview{grid-row:1 / span 2;width:64px;height:64px;border:1px solid var(--border);border-radius:6px;background:conic-gradient(#3a3a3a 25%,#444 0,#444 50%,#3a3a3a 0,#3a3a3a 75%,#444 0) 0 0 / 12px 12px;image-rendering:auto}.brush-lib__capture-fields{display:flex;align-items:center;gap:.6rem;min-width:0}.brush-lib__capture-invert{display:inline-flex;align-items:center;gap:.3rem;color:var(--fg-muted);white-space:nowrap}.brush-lib__capture-actions{display:flex;gap:.4rem}.color-picker__sv{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:6px;cursor:crosshair;touch-action:none}.color-picker__sv-cursor{position:absolute;width:12px;height:12px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px #000c;transform:translate(-50%,-50%);pointer-events:none}.color-picker__hue{position:relative;height:14px;border-radius:7px;cursor:ew-resize;touch-action:none}.color-picker__hue-cursor{position:absolute;top:-2px;bottom:-2px;width:6px;border:2px solid #fff;border-radius:4px;box-shadow:0 0 3px #000c;transform:translate(-50%);pointer-events:none}.color-picker__row{display:flex;align-items:center;gap:.4rem}.color-picker__preview{width:1.6rem;height:1.6rem;border-radius:6px;border:1px solid var(--border)}.color-picker__hex{flex:1;min-width:0;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:.25rem .4rem;font:inherit;font-variant-numeric:tabular-nums}.color-picker__section{color:var(--fg-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.color-picker__grid{display:flex;flex-wrap:wrap;gap:5px}.color-picker__swatch-wrap{position:relative}.color-picker__swatch{width:22px;height:22px;border-radius:5px;border:1px solid var(--border);cursor:pointer;padding:0;display:block}.color-picker__swatch-remove{position:absolute;top:-5px;right:-5px;width:13px;height:13px;border-radius:50%;border:none;background:var(--bg);color:var(--fg-muted);display:none;align-items:center;justify-content:center;cursor:pointer;padding:0;line-height:0}.color-picker__swatch-wrap:hover .color-picker__swatch-remove{display:inline-flex}[data-tip]{position:relative}[data-tip]:hover:after,[data-tip]:focus-visible:after{content:attr(data-tip);position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);background:#000000e0;color:#fff;padding:.25rem .55rem;border-radius:6px;font-size:.75rem;line-height:1.3;white-space:nowrap;pointer-events:none;z-index:100}.layer-panel__detail [data-tip]:hover:after,.layer-panel__detail [data-tip]:focus-visible:after{top:auto;bottom:calc(100% + 6px)}.statusbar [data-tip]:hover:after,.statusbar [data-tip]:focus-visible:after{top:auto;bottom:calc(100% + 6px)}.statusbar__version[data-tip]:hover:after,.statusbar__version[data-tip]:focus-visible:after{left:auto;right:0;transform:none}.layer-panel [data-tip]:hover:after,.layer-panel [data-tip]:focus-visible:after,.tip-right[data-tip]:hover:after,.tip-right[data-tip]:focus-visible:after{left:auto;right:0;transform:none}.toolbar__control{display:inline-flex;align-items:center;gap:.4rem;color:var(--fg-muted);font-size:.85rem}.toolbar__control input[type=range]{width:94px}.toolbar__control input[type=color]{width:2rem;height:2rem;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:none;cursor:pointer}.toolbar__value{min-width:2.5ch;font-variant-numeric:tabular-nums}.toolbar__value--edit{width:5ch;min-width:5ch;text-align:right;border:1px solid transparent;border-radius:4px;background:transparent;color:inherit;font:inherit;font-variant-numeric:tabular-nums;padding:1px 3px;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.toolbar__value--edit::-webkit-inner-spin-button,.toolbar__value--edit::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.toolbar__value--edit:hover{border-color:var(--border)}.toolbar__value--edit:focus{outline:none;border-color:var(--accent, #4a8cff);background:var(--bg, rgba(0, 0, 0, .15))}.editor__home{display:inline-flex;align-items:center;border-radius:8px;line-height:0}.app-logo{display:block}.dialog--help{width:min(720px,94vw);max-height:86vh;overflow-y:auto}.help__columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.75rem 1.5rem}.help__license{margin:1rem 0 0;padding-top:.75rem;border-top:1px solid var(--border);font-size:.78rem;color:var(--fg-muted)}.help__license a{color:var(--accent)}.help__section h3{margin:0 0 .35rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted)}.help__section table{width:100%;border-collapse:collapse;font-size:.85rem}.help__section td{padding:.18rem .5rem .18rem 0;vertical-align:top}.help__key{white-space:nowrap;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.78rem;color:var(--accent)}.editor__name{background:transparent;color:var(--fg);border:1px solid transparent;border-radius:6px;padding:.25rem .4rem;font:inherit;width:12rem}.editor__name:hover,.editor__name:focus{border-color:var(--border);background:var(--bg);outline:none}.editor__brushstrip{display:flex;align-items:center;gap:.9rem;padding-left:.5rem;font-size:.78rem}.editor__brushstrip input[type=range]{width:110px}.editor__topbar .button.is-active{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.editor__topbar .button.editor__capture-btn{color:#d9636b}.editor__topbar .button.editor__capture-btn:hover,.editor__topbar .button.editor__capture-btn.is-recording{color:var(--danger, #e5484d)}.editor__stab-toggle{display:inline-flex;align-items:center;gap:.25rem}.editor__stab-toggle.is-active{background:var(--accent);color:#fff;border-color:var(--accent)}.editor__stab-toggle.is-active svg{color:#fff}.editor__stab-amount{font-size:.66rem;font-weight:600;font-variant-numeric:tabular-nums;line-height:1}.editor__tools{display:flex;align-items:center}.editor__tools-inner{display:flex;align-items:center;gap:.2rem}.editor__save-status{margin-left:auto;color:var(--fg-muted);font-size:.78rem}.editor__save-status[data-status=error]{color:#e74c3c}.editor--message{display:flex;align-items:center;justify-content:center;color:var(--fg-muted)}.editor--message a{color:var(--accent)}.editor__zoom{color:var(--fg-muted);font-variant-numeric:tabular-nums}.editor__main{flex:1;display:flex;min-height:0;position:relative}.brush-hud{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;pointer-events:none;z-index:20}.notice{position:absolute;left:50%;bottom:2.4rem;transform:translate(-50%);max-width:80%;padding:.4rem .8rem;border-radius:6px;background:#000000c7;color:#fff;font-size:.8rem;white-space:nowrap;pointer-events:none;z-index:30;animation:notice-in .12s ease-out}@keyframes notice-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.brush-hud__circle{border:1.5px solid rgba(255,255,255,.9);outline:1.5px solid rgba(0,0,0,.55);border-radius:50%}.brush-hud__label{background:#000000b3;color:#fff;padding:.2rem .6rem;border-radius:6px;font-size:.85rem;font-variant-numeric:tabular-nums}@media(max-width:720px){.layer-panel{position:absolute;top:0;right:0;bottom:0;z-index:30;box-shadow:-8px 0 24px #00000059}.editor__name{width:7rem}.toolbar__control input[type=range]{width:78px}.gallery{padding:1.5rem 1rem}}@media(pointer:coarse){.button--icon{padding:.6rem}.layer-row__grip{padding:.5rem .35rem}}.editor__stage{flex:1;position:relative;overflow:hidden}.layer-panel{width:232px;display:flex;flex-direction:column;background:var(--bg-elevated);border-left:1px solid var(--border);font-size:.85rem}.layer-panel__header{display:flex;align-items:center;justify-content:space-between;padding:.4rem .6rem;border-bottom:1px solid var(--border);color:var(--fg-muted)}.layer-panel__header-actions{display:flex;align-items:center;gap:.2rem}.layer-panel__list{flex:1;overflow-y:auto}.layer-row-wrap{position:relative;overflow:hidden;border-bottom:1px solid var(--border)}.layer-row{position:relative;display:flex;align-items:center;gap:.4rem;padding:.3rem .5rem;cursor:pointer;background:var(--bg-elevated);touch-action:pan-y}.layer-row:not(.layer-row--sliding){transition:transform .18s ease}.layer-row.is-active{background:color-mix(in srgb,var(--accent) 18%,var(--bg-elevated))}.layer-row-wrap.is-selected .layer-row{background:color-mix(in srgb,var(--accent) 10%,var(--bg-elevated));box-shadow:inset 3px 0 0 var(--accent)}.layer-row__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-row__grip{flex-shrink:0;cursor:grab;color:var(--fg-muted);touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.layer-panel__list.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.layer-row--dragging{opacity:.45}.layer-row--drop-above{box-shadow:inset 0 2px 0 var(--accent)}.layer-row--drop-below{box-shadow:inset 0 -2px 0 var(--accent)}.layer-row--drop-into{box-shadow:inset 0 0 0 2px var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.layer-row--group{background:color-mix(in srgb,var(--fg) 5%,var(--bg-elevated))}.layer-row__tray{position:absolute;inset:0 0 0 auto;width:140px;display:flex;align-items:stretch}.layer-row__tray-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0;border:none;font:inherit;font-size:.62rem;color:#fff;background:var(--accent);cursor:pointer}.layer-row__tray-btn--danger{background:#d2453b}.layer-row__tray-btn:active{filter:brightness(.9)}.layer-row--locked .layer-thumb{opacity:.6}.layer-row__lock-mark{color:var(--fg-muted);margin-right:.2rem}.layer-row__toggle{flex-shrink:0;color:var(--fg-muted);display:none}.layer-row:hover .layer-row__toggle,.layer-row.is-active .layer-row__toggle,.layer-row__toggle.is-on,.layer-row__toggle--always{display:inline-flex}.layer-row__toggle.is-on{color:var(--accent)}.layer-row--has-mask .layer-row__toggle:not(.layer-row__toggle--always){display:none!important}.layer-row__menu-btn{flex-shrink:0}@media(pointer:coarse){.layer-row__toggle:not(.layer-row__toggle--always){display:none}}.layer-row__check{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px;border-radius:50%;color:#fff;background:var(--accent)}.layer-panel__multibar{display:flex;align-items:center;gap:.35rem;padding:.35rem .5rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--accent) 12%,var(--bg-elevated))}.layer-panel__multibar-count{flex:1;font-size:.78rem;color:var(--fg-muted)}.button--small{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem}.button--danger{background:#d2453b;color:#fff;border-color:#d2453b}.button--danger:disabled{opacity:.5}.layer-row__folder{color:var(--fg-muted);flex-shrink:0}.layer-row__clip-mark{color:var(--accent);margin-right:.2rem}.layer-thumb{border:1px solid var(--border);border-radius:3px;background:conic-gradient(#555 25%,#777 0,#777 50%,#555 0,#555 75%,#777 0) 0 0 / 12px 12px}.layer-row__thumb-wrap{position:relative;display:inline-flex;flex-shrink:0}.layer-row__text-badge{position:absolute;right:-3px;bottom:-3px;min-width:13px;height:13px;padding:0 1px;border-radius:3px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;line-height:13px;text-align:center;box-shadow:0 0 0 1px var(--bg, #000);pointer-events:none}.layer-panel__detail{display:flex;flex-direction:column;gap:.5rem;padding:.6rem;border-top:1px solid var(--border)}.layer-panel__control{display:flex;align-items:center;gap:.5rem;color:var(--fg-muted)}.layer-panel__control input[type=range]{flex:1}.layer-panel__control select{flex:1;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:.2rem .3rem;font:inherit}.layer-row__name-input{flex:1;min-width:0;background:var(--bg);color:var(--fg);border:1px solid var(--accent);border-radius:4px;padding:.1rem .3rem;font:inherit}.layer-menu__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.layer-menu{position:fixed;display:flex;flex-direction:column;padding:.3rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 28px #0006;font-size:.85rem}.layer-menu__item{display:flex;align-items:center;gap:.55rem;width:100%;padding:.45rem .55rem;background:none;border:none;border-radius:5px;color:var(--fg);font:inherit;text-align:left;cursor:pointer}.layer-menu__item:hover{background:color-mix(in srgb,var(--accent) 22%,transparent)}.layer-menu__item--danger{color:var(--danger, #f06a6a)}.layer-menu__item--danger:hover{background:color-mix(in srgb,var(--danger, #f06a6a) 20%,transparent)}.layer-menu__sep{height:1px;margin:.3rem .2rem;background:var(--border)}@media(pointer:coarse){.layer-menu__item{padding:.65rem .6rem}}.paint-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;cursor:crosshair;touch-action:none}.paint-canvas--move{cursor:move}.paint-canvas--sampling{cursor:crosshair}.guides-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;pointer-events:none}.pen-cursor{position:fixed;z-index:9998;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#fff;box-shadow:0 0 0 1.5px #000000d9;pointer-events:none}.brush-cursor{position:absolute;z-index:35;border:1px solid rgba(128,128,128,.9);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;mix-blend-mode:difference}.text-editor{position:absolute;z-index:40;margin:0;padding:0;min-width:2ch;background:transparent;border:none;outline:1px dashed var(--accent);resize:none;overflow:hidden;white-space:pre;caret-color:var(--accent)}.text-editor-actions{position:absolute;z-index:41;display:flex;gap:.4rem;padding:.25rem;border-radius:.5rem;background:var(--panel, rgba(30, 30, 34, .92));box-shadow:0 2px 10px #00000059}.text-editor-actions__btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;border-radius:.4rem;font-size:1.1rem;line-height:1;cursor:pointer;color:#fff;background:#ffffff1f;touch-action:manipulation}.text-editor-actions__btn:hover{background:#ffffff38}.text-editor-actions__done{background:var(--accent)}.text-editor-actions__done:hover{filter:brightness(1.1)}.editor__topbar{padding-top:max(.15rem,env(safe-area-inset-top));padding-left:max(.6rem,env(safe-area-inset-left));padding-right:max(.6rem,env(safe-area-inset-right))}.statusbar{padding-bottom:env(safe-area-inset-bottom)}@media(max-width:900px){.editor__topbar{flex-wrap:wrap;row-gap:.2rem}}@media(max-width:600px){.editor__save-status,.editor__brushstrip{display:none}}.editor__more{position:relative;display:inline-flex}.editor__more-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:60;min-width:12rem;display:flex;flex-direction:column;gap:.1rem;padding:.35rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #00000073}.editor__more-menu button{display:flex;align-items:center;gap:.6rem;width:100%;padding:.55rem .6rem;border:none;border-radius:6px;background:transparent;color:var(--fg);font:inherit;text-align:left;cursor:pointer}.editor__more-menu button:hover{background:color-mix(in srgb,var(--fg) 8%,transparent)}.editor__more-menu hr{border:none;border-top:1px solid var(--border);margin:.25rem 0}.pwa-toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 5.5rem);transform:translate(-50%);z-index:9999;display:flex;align-items:center;gap:.6rem;max-width:calc(100vw - 1.5rem);padding:.5rem .6rem .5rem .9rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 28px #00000073;font-size:.85rem;animation:notice-in .14s ease-out}.pwa-toast__msg{white-space:nowrap}.pwa-toast__btn{padding:.32rem .7rem}.mobile-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:29;background:#00000059}@media(max-width:600px){.brush-panel,.toolbar__color-popover,.toolbar__guides-panel,.text-panel,.adj-panel{position:fixed!important;left:0!important;right:0!important;top:auto!important;bottom:0!important;width:100%!important;max-width:100%!important;max-height:75vh;border-radius:14px 14px 0 0;box-shadow:0 -8px 28px #00000080;padding-bottom:max(.6rem,env(safe-area-inset-bottom));z-index:60;animation:sheet-up .16s ease-out}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.editor__name{width:5rem}.editor__brushstrip .toolbar__control{min-width:0}}.toolbar--compact{position:static!important;order:3;top:auto!important;left:auto!important;bottom:auto!important;width:100%!important;max-width:100%;max-height:none;flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;border-radius:0;border:none;border-top:1px solid var(--border);box-shadow:none;gap:.2rem;padding:.3rem max(.3rem,env(safe-area-inset-right)) .3rem max(.3rem,env(safe-area-inset-left))}.toolbar--compact .button--icon{flex:0 0 auto}.toolbar--compact .toolbar__dock,.toolbar--compact .toolbar__handle,.toolbar--compact .toolbar__resize,.toolbar--compact .toolbar__dock-toggle{display:none}@media(max-width:900px){.editor__main{order:2}.statusbar{order:4}}@media(max-width:900px){.layer-panel{position:absolute;top:0;right:0;bottom:0;z-index:30;box-shadow:-8px 0 24px #0006;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);animation:drawer-in .18s ease-out}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}}@media(pointer:coarse){.editor__topbar .button--icon{padding:.5rem;min-width:40px;min-height:40px}.toolbar .button--icon{width:40px;height:40px}input[type=range]{height:1.6rem}.layer-panel{width:280px}}
