.whatsnew{width:min(460px,94vw);max-height:min(80vh,80dvh);display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 40px #0006;overflow:hidden;text-align:left;animation:whatsnew-pop .16s ease-out}@keyframes whatsnew-pop{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}.whatsnew__head{display:flex;align-items:center;gap:.5rem;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.whatsnew__spark{color:var(--accent);flex:0 0 auto}.whatsnew__title{margin:0;font-size:1.1rem}.whatsnew__vpill{padding:.1rem .5rem;border-radius:999px;background:var(--accent);color:var(--on-accent, #fff);font-size:.72rem;font-variant-numeric:tabular-nums}.whatsnew__close{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:7px;background:transparent;color:var(--fg-muted);cursor:pointer}.whatsnew__close:hover{background:var(--bg-hover);color:var(--fg)}.whatsnew__body{overflow-y:auto;padding:.4rem 1rem .8rem}.whatsnew__entry{padding:.75rem 0;border-bottom:1px solid var(--border)}.whatsnew__entry:last-child{border-bottom:none}.whatsnew__meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem;margin-bottom:.35rem}.whatsnew__badge{padding:.08rem .45rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--fg-muted);font-size:.72rem;font-variant-numeric:tabular-nums}.whatsnew__badge.is-current{background:var(--accent);border-color:var(--accent);color:var(--on-accent, #fff)}.whatsnew__entry-title{font-weight:600;font-size:.92rem}.whatsnew__date{margin-left:auto;color:var(--fg-muted);font-size:.75rem;font-variant-numeric:tabular-nums}.whatsnew__list{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.3rem}.whatsnew__list li{font-size:.86rem;line-height:1.4;color:var(--fg)}.whatsnew__foot{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--border)}.whatsnew__update{display:inline-flex;align-items:center;gap:.4rem;margin-right:auto}.whatsnew__spin{animation:whatsnew-spin .8s linear infinite}@keyframes whatsnew-spin{to{transform:rotate(360deg)}}@media(max-width:520px){.whatsnew{width:96vw}}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:400;src:url(./dancing-script-vietnamese-400-normal-lz8MlVep.woff2) format("woff2"),url(./dancing-script-vietnamese-400-normal-D2srOv8f.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:400;src:url(./dancing-script-latin-ext-400-normal-C917Kz-3.woff2) format("woff2"),url(./dancing-script-latin-ext-400-normal-DaWfpMsu.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:400;src:url(./dancing-script-latin-400-normal--YrtvvVF.woff2) format("woff2"),url(./dancing-script-latin-400-normal-BY5FxJb0.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:700;src:url(./dancing-script-vietnamese-700-normal-DHSNEjs8.woff2) format("woff2"),url(./dancing-script-vietnamese-700-normal-BxaLPXNn.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:700;src:url(./dancing-script-latin-ext-700-normal-DuhEb1O2.woff2) format("woff2"),url(./dancing-script-latin-ext-700-normal-vV212RL9.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Dancing Script;font-style:normal;font-display:swap;font-weight:700;src:url(./dancing-script-latin-700-normal-CX8AaSVl.woff2) format("woff2"),url(./dancing-script-latin-700-normal-LI5MgW9m.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #1a1a1a;--bg-elevated: #242424;--fg: #f2f2f2;--fg-muted: #a0a0a0;--accent: #4c8dff;--border: #333;--radius: 8px;--danger: #e5484d;--success: #3ec46d;--warning: #e0a23c;--on-accent: #ffffff;--bg-hover: rgba(255, 255, 255, .08);--surface-hover: rgba(255, 255, 255, .06);--panel: rgba(30, 30, 34, .92);--bg-panel: rgba(30, 30, 30, .6);--shadow: rgba(0, 0, 0, .45);--checker-a: #3a3a3a;--checker-b: #444444;--thumb-matte: #1b1b1b;color-scheme:dark}:root[data-theme=light]{--bg: #f2f2f4;--bg-elevated: #ffffff;--fg: #1d1d1f;--fg-muted: #6e6e73;--accent: #2f74e8;--border: #d9d9de;--danger: #d23b3b;--success: #2ea85a;--warning: #c07d18;--on-accent: #ffffff;--bg-hover: rgba(0, 0, 0, .06);--surface-hover: rgba(0, 0, 0, .05);--panel: rgba(255, 255, 255, .95);--bg-panel: rgba(255, 255, 255, .72);--shadow: rgba(0, 0, 0, .18);--checker-a: #c8c8cc;--checker-b: #e2e2e6;--thumb-matte: #ececed;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}.error-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--bg);color:var(--fg);z-index:9999}.error-screen__card{width:min(32rem,100%);padding:1.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated)}.error-screen__title{margin:0 0 .5rem;font-size:1.25rem}.error-screen__body{margin:0 0 1.25rem;color:var(--fg-muted);line-height:1.5}.error-screen__actions{display:flex;flex-wrap:wrap;gap:.625rem}.error-screen__toggle{margin-top:1rem;padding:0;border:0;background:none;color:var(--accent);font:inherit;cursor:pointer}.error-screen__details{margin:.75rem 0 0;max-height:14rem;overflow:auto;padding:.75rem;border-radius:calc(var(--radius) - 2px);background:var(--bg);border:1px solid var(--border);color:var(--fg-muted);font-size:.75rem;white-space:pre-wrap;word-break:break-word}.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;line-height:1.8}.gallery__footer a{color:var(--fg-muted);text-decoration:underline}.gallery__footer a:hover{color:var(--accent)}.gallery__version{position:relative;padding:0;border:0;background:none;font:inherit;color:var(--fg-muted);text-decoration:underline dotted;cursor:pointer;touch-action:manipulation}.gallery__version:hover{color:var(--accent)}.gallery__news-dot{display:inline-block;width:6px;height:6px;margin-left:3px;border-radius:50%;background:var(--accent);vertical-align:middle}.gallery__grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;max-width:960px}.gallery__state{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem 1.5rem;color:var(--fg-muted);text-align:center}.gallery__state p{margin:0}.gallery__mascot{width:min(60vw,180px);height:auto;margin-bottom:.25rem;filter:drop-shadow(0 8px 20px rgba(0,0,0,.28))}.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;padding:10px;background:var(--thumb-matte);border-bottom:1px solid var(--border)}.doc-card__thumb img{max-width:100%;max-height:100%;object-fit:contain;border-radius:2px;background:conic-gradient(var(--checker-a) 25%,var(--checker-b) 0 50%,var(--checker-a) 0 75%,var(--checker-b) 0) 0 0 / 12px 12px;box-shadow:0 1px 5px #00000059}.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);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;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;min-width:0}.dialog__field input,.dialog__field select{width:100%;box-sizing:border-box;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:.4rem .55rem;font:inherit}.dialog__static{color:var(--fg);font-size:.9rem;padding:.4rem 0}.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}.preset-tabs{display:flex;align-items:center;gap:.25rem;margin-bottom:.15rem}.preset-tabs__tab{display:flex;align-items:center;gap:.3rem;padding:.25rem .6rem;font:inherit;font-size:.8rem;color:var(--fg-muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer}.preset-tabs__tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.preset-tabs__count{padding:0 .3rem;border-radius:999px;background:var(--border);color:var(--fg-muted);font-size:.7rem}.preset-tabs__save{margin-left:auto;padding:.2rem .5rem;font:inherit;font-size:.75rem;color:var(--fg-muted);background:var(--bg);border:1px solid var(--border);border-radius:6px;cursor:pointer}.preset-tabs__save:hover{color:var(--accent);border-color:var(--accent)}.preset-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.35rem .6rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--fg);font:inherit;cursor:pointer;text-align:left}.preset-card.is-active{border-color:var(--accent);color:var(--accent)}.preset-card__name{font-size:.82rem}.preset-card__meta{color:var(--fg-muted);font-size:.7rem;font-variant-numeric:tabular-nums}.preset-card.is-active .preset-card__meta{color:inherit;opacity:.85}.preset-card__remove{position:absolute;top:1px;right:3px;padding:0 2px;color:var(--fg-muted);font-size:.7rem;line-height:1}.preset-card__remove:hover{color:var(--accent)}.size-info{display:flex;flex-wrap:wrap;gap:.15rem 1.1rem;margin:0;color:var(--fg-muted);font-size:.78rem}.size-info__row{display:flex;gap:.35rem}.size-info dt{opacity:.75}.size-info dd{margin:0;color:var(--fg);font-variant-numeric:tabular-nums}.dialog__field--shrink{flex:0 0 auto}.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}.help__tour-btn{margin-right:auto}.dialog--export{width:min(420px,92vw)}.export__row{display:flex;align-items:center;gap:.6rem;margin-bottom:.7rem}.export__row>*:not(.export__label){min-width:0}.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:flex;flex-wrap:wrap;gap:.35rem;flex:1}.export__row:has(.export__seg){align-items:flex-start}.export__row:has(.export__seg) .export__label{padding-top:.55rem}.export__seg button{flex:0 1 auto;min-height:2.15rem;padding:.3rem .75rem;border:1px solid var(--border);border-radius:7px;background:transparent;color:var(--fg);cursor:pointer;font:inherit;font-size:.85rem;white-space:nowrap}.export__seg button.is-active{background:var(--accent);border-color: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)}.beta-tag{display:inline-block;vertical-align:.5em;padding:.16em .55em;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:linear-gradient(120deg,var(--accent),#8b5cf6,var(--accent));background-size:200% 100%;box-shadow:0 1px 6px #4c8dff73;animation:beta-tag-shimmer 6s linear infinite}@keyframes beta-tag-shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.beta-tag{animation:none}}.beta-tag--mini{margin-left:.35rem;padding:.12em .45em;font-size:.58rem;vertical-align:.6em;line-height:1.2;box-shadow:none}.route-loading{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:radial-gradient(circle at 50% 36%,#2a2350,#171526 56%,#0f0f17)}.route-loading__dragon{width:min(48vw,250px);height:auto;filter:drop-shadow(0 14px 34px rgba(0,0,0,.45));animation:route-loading-float 3.2s ease-in-out infinite}@keyframes route-loading-float{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}.route-loading__dots{display:flex;gap:9px}.route-loading__dots i{width:9px;height:9px;border-radius:50%;background:#4c8dff;display:block;animation:route-loading-dot 1s ease-in-out infinite}.route-loading__dots i:nth-child(2){background:#a855f7;animation-delay:.15s}.route-loading__dots i:nth-child(3){background:#22d3ee;animation-delay:.3s}@keyframes route-loading-dot{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(-7px);opacity:1}}@media(prefers-reduced-motion:reduce){.route-loading__dragon,.route-loading__dots i{animation:none}}.editor{display:flex;flex-direction:column;position:relative}.editor__topbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;row-gap:.2rem;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}.replays__export-primary{color:var(--accent);border-color:var(--accent)}.replays__video{display:block;max-width:min(80vw,960px);max-height:70vh;width:100%;border-radius:6px;background:#000}.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:calc(10px + var(--left-dock-w, 0px));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__seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.toolbar__seg .button--icon{border:none;border-radius:0;background:transparent}.toolbar__seg .button--icon+.button--icon{border-left:1px solid var(--border)}.toolbar__seg .button--icon.is-active{background:var(--accent);color:#fff}.toolbar__seg .button--icon.is-active svg{color:#fff}.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:2px solid var(--bg);border-radius:50%;box-shadow:0 0 0 1.5px var(--fg-muted),0 1px 2px #00000059;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 var(--shadow)}.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:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;background:var(--bg);border:1px solid var(--border);border-radius:7px}.color-picker__mode{padding:.28rem 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__wheel-tri{position:absolute;left:50%;top:50%;width:58%;height:58%;transform:translate(-50%,-50%)}.color-picker__tri{position:relative;width:100%;height:100%;cursor:crosshair;touch-action:none}.color-picker__tri-canvas{display:block;width:100%;height:100%}.color-picker__tri-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__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;overflow-x:hidden;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 var(--shadow);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 var(--shadow);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;overflow-x:hidden;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-section__note{margin:.15rem 0 0;font-size:.72rem;line-height:1.35;color:var(--fg-muted)}.brush-section--inert{opacity:.5}.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__force{display:flex;gap:.4rem;margin-bottom:.5rem}.brush-panel__force-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:34px;padding:.4rem .5rem;font:inherit;font-size:.78rem;color:var(--fg-muted);background:var(--bg);border:1px solid var(--border);border-radius:6px;cursor:pointer;touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.brush-panel__force-btn:hover{color:var(--fg);border-color:var(--fg-muted)}.brush-panel__force-btn.is-active{color:#fff;background:var(--accent, #4a8cff);border-color:var(--accent, #4a8cff)}@media(pointer:coarse){.brush-panel__force-btn{min-height:44px}}.brush-panel__color{flex:1;min-width:0;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__hint{margin:-.15rem 0 .15rem;color:var(--fg-muted);font-size:.75rem;line-height:1.35}.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 var(--shadow);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(var(--checker-a) 25%,var(--checker-b) 0 50%,var(--checker-a) 0 75%,var(--checker-b) 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}.color-picker__palette-bar{display:flex;align-items:center;gap:3px}.color-picker__palette-select{flex:1;min-width:0;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:.2rem .3rem;font:inherit;font-size:.78rem}.color-picker__palette-bar .button--icon{width:22px;height:22px;min-width:22px;padding:0}.color-picker__swatch--draggable{touch-action:none}.color-picker__swatch--draggable.is-dragging{opacity:.45;outline:2px solid var(--accent, #4a9eff);outline-offset:1px}.color-picker__palette-empty{color:var(--fg-muted);font-size:.72rem;padding:2px 0}.color-picker__ring-mate{position:absolute;width:10px;height:10px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #00000073;transform:translate(-50%,-50%);pointer-events:none}.color-picker__harmony-bar{display:flex;align-items:center;gap:3px}.color-picker__harmony-bar .button--icon{width:22px;height:22px;min-width:22px;padding:0}.color-picker__swatch--current{outline:2px solid var(--accent);outline-offset:1px;cursor:default}[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--vertical [data-tip]:hover:after,.toolbar--vertical [data-tip]:focus-visible:after{top:50%;bottom:auto;left:calc(100% + 6px);right:auto;transform:translateY(-50%)}.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__search{position:sticky;top:0;z-index:1;display:block;width:100%;box-sizing:border-box;margin:0 0 .85rem;padding:.5rem .7rem;font-size:.9rem;color:var(--fg);background:var(--bg);border:1px solid var(--border);border-radius:8px}.help__search:focus{outline:none;border-color:var(--accent)}.help__empty{margin:.5rem 0 0;color:var(--fg-muted);font-size:.9rem}.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__press-toggle{display:inline-flex;align-items:center;gap:.15rem;position:relative}.editor__press-toggle.is-active{background:var(--accent);color:#fff;border-color:var(--accent)}.editor__press-toggle.is-active svg{color:#fff}.editor__press-badge{font-size:.62rem;font-weight:700;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;min-width:5.4em;text-align:right;white-space:nowrap;flex-shrink:0}.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}.editor__zen-exit{position:fixed;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));z-index:50;display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid var(--border, rgba(128, 128, 128, .3));border-radius:8px;background:var(--bg-panel, rgba(30, 30, 30, .6));color:var(--fg-muted);opacity:.35;cursor:pointer;transition:opacity .15s ease,color .15s ease}.editor__zen-exit:hover,.editor__zen-exit:focus-visible{opacity:1;color:var(--fg)}.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:fixed;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:400;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:280px;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__header--drag{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.layer-panel--float{position:fixed;z-index:60;height:min(72vh,640px);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 32px var(--shadow);overflow:hidden}.toolbar--rail{top:52px;bottom:40px;border-radius:0;overflow-y:auto;z-index:25}.toolbar--rail-left{left:0;border-top:none;border-bottom:none;border-left:none}.toolbar--rail-right{left:auto;right:0;border-top:none;border-bottom:none;border-right:none}.editor__main{padding-left:var(--rail-left, 0px);padding-right:var(--rail-right, 0px)}.dock-drop-hint{position:fixed;top:0;bottom:0;width:56px;z-index:90;pointer-events:none;background:color-mix(in srgb,var(--accent) 16%,transparent)}.dock-drop-hint--left{left:0;border-right:2px solid var(--accent)}.dock-drop-hint--right{right:0;border-left:2px solid var(--accent)}.brush-panel__head--drag{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.brush-panel--float{position:fixed;top:auto;right:auto;z-index:60}.dock{position:relative;display:flex;flex-direction:column;min-height:0;background:var(--bg-elevated)}.dock--right{border-left:1px solid var(--border)}.dock--left{border-right:1px solid var(--border)}.dock__resize{position:absolute;top:0;bottom:0;width:8px;cursor:col-resize;z-index:5;touch-action:none}.dock--right .dock__resize{left:-4px}.dock--left .dock__resize{right:-4px}.dock__section{display:flex;flex-direction:column;min-height:110px;overflow:hidden}.dock__splitter{flex:0 0 7px;cursor:row-resize;touch-action:none;position:relative;z-index:4;background:transparent}.dock__splitter:after{content:"";position:absolute;left:0;right:0;top:3px;height:1px;background:var(--border)}.dock__section--collapsed{flex:0 0 auto;min-height:0}.dock__section-strip{display:flex;align-items:center;gap:.4rem;width:100%;padding:.4rem .6rem;font-size:.8rem;font-weight:600;color:var(--fg-muted);background:var(--bg-elevated);border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left}.dock__section-strip:hover{color:var(--fg)}.dock__section-chevron{font-size:.7rem}.dock .layer-panel{width:100%;flex:1;min-height:0;border-left:none}.brush-panel--docked{position:static;z-index:auto;width:100%;max-height:none;flex:1;min-height:0;border:none;border-radius:0;box-shadow:none}.brush-lib__header--drag{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.brush-lib--float{position:fixed;z-index:60;max-height:min(72vh,640px)}.brush-lib--docked{position:static;z-index:auto;width:100%;max-width:none;max-height:none;flex:1;min-height:0;overflow-y:auto;border:none;border-radius:0;box-shadow:none}@media(max-width:900px){.layer-panel__header--drag{cursor:default}}@media(pointer:coarse){.dock__resize{width:22px}.dock--right .dock__resize{left:-11px}.dock--left .dock__resize{right:-11px}.dock__splitter{flex:0 0 18px}.dock__splitter:after{top:8px}.dock__section-strip{padding:.7rem .6rem}.brush-panel__icon,.layer-panel__dock-btn,.brush-lib__close{min-width:34px;min-height:34px}}.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;flex-wrap:wrap;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 .button--small{flex:none}.layer-panel__multibar-count{flex:1;min-width:max-content;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(var(--checker-a) 25%,var(--checker-b) 0 50%,var(--checker-a) 0 75%,var(--checker-b) 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__adjust-add{position:relative}.layer-panel__adjust-menu{position:absolute;top:100%;right:0;z-index:30;min-width:168px;margin-top:4px;padding:4px;display:flex;flex-direction:column;background:var(--panel, var(--bg));border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 22px #00000059}.layer-panel__adjust-menu-item{text-align:left;padding:.4rem .55rem;border:0;border-radius:6px;background:transparent;color:var(--fg);font:inherit;cursor:pointer}.layer-panel__adjust-menu-item:hover{background:var(--accent);color:#fff}.layer-panel__adjust{display:flex;flex-direction:column;gap:.4rem;padding-bottom:.5rem;border-bottom:1px dashed var(--border)}.layer-panel__adjust-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted)}.layer-panel__adjust-empty{font-size:12px;color:var(--fg-muted)}.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 var(--shadow);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;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.paint-canvas--move{cursor:move}.paint-canvas--sampling{cursor:crosshair}.paint-canvas--pan{cursor:grab}.paint-canvas--panning{cursor:grabbing}.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}.brush-cursor--square{border-radius:0}.brush-lib__scope{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;padding:0 .6rem .5rem}.brush-lib__scope-btn{padding:.25rem .6rem;font:inherit;font-size:.75rem;color:var(--fg-muted);background:var(--bg);border:1px solid var(--border);border-radius:999px;cursor:pointer}.brush-lib__scope-btn.is-active{color:var(--accent);border-color:var(--accent)}.brush-lib__scope-hint{flex-basis:100%;color:var(--fg-muted);font-size:.7rem}.brush-cursor--tinted{mix-blend-mode:normal;filter:drop-shadow(0 0 1px rgba(0,0,0,.65))}.brush-cursor--dot{background:#808080e6;border-radius:50%}.brush-cursor-cross{position:absolute;z-index:36;width:13px;height:13px;transform:translate(-50%,-50%);pointer-events:none;color:#808080e6;mix-blend-mode:difference}.brush-cursor-cross:before,.brush-cursor-cross:after{content:"";position:absolute;background:currentColor}.brush-cursor-cross:before{left:50%;top:0;width:1px;height:100%;transform:translate(-50%)}.brush-cursor-cross:after{top:50%;left:0;height:1px;width:100%;transform:translateY(-50%)}.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--rich{min-height:1em;white-space:pre-wrap;overflow-wrap:break-word}.text-editor--rich:focus{outline:1px dashed var(--accent)}.text-editor-actions__fmt{width:32px;height:40px;font-size:.95rem}.text-editor-actions__color{width:36px;height:40px;padding:4px;border:none;border-radius:.4rem;background:color-mix(in srgb,var(--fg) 10%,transparent);cursor:pointer}.text-editor-actions__font{height:40px;max-width:84px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:.4rem;font:inherit;font-size:.85rem}.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:var(--fg);background:color-mix(in srgb,var(--fg) 10%,transparent);touch-action:manipulation}.text-editor-actions__btn:hover{background:color-mix(in srgb,var(--fg) 20%,transparent)}.text-editor-actions__done{background:var(--accent);color:var(--on-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)}.editor__menus{display:inline-flex;align-items:center;gap:.6rem;margin-left:auto;flex:0 0 auto}.editor__topbar--compact .editor__save-status,.editor__topbar--compact .editor__zoom{display:none}.editor__topbar--compact .editor__brushstrip{gap:.6rem}.editor__topbar--compact .editor__brushstrip input[type=range]{width:84px}.editor__more-rename{display:flex;flex-direction:column;gap:.2rem;padding:.35rem .6rem .1rem;font-size:.7rem;color:var(--fg-muted)}.editor__more-rename input{font:inherit;font-size:.85rem;color:var(--fg);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.4rem .5rem}.editor__more-status{padding:.1rem .6rem .2rem;font-size:.7rem;color:var(--fg-muted)}@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 var(--shadow)}.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}.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,.palette-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;overflow-y:auto;border-radius:14px 14px 0 0;box-shadow:0 -8px 28px var(--shadow);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;width:min(360px,86vw);box-shadow:-8px 0 24px var(--shadow);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:320px}}.wet-controls{position:absolute;left:50%;bottom:18px;transform:translate(-50%);z-index:36;display:flex;align-items:center;gap:8px}.wet-tilt-pad{position:relative;width:40px;height:40px;border:1px solid var(--border, rgba(128, 128, 128, .4));border-radius:50%;background:var(--panel-bg, rgba(30, 30, 34, .92));box-shadow:0 2px 10px #00000040;cursor:pointer;touch-action:none}.wet-tilt-pad__dot{position:absolute;width:10px;height:10px;border-radius:50%;background:#4aa3ff;transform:translate(-50%,-50%);pointer-events:none}.wet-tilt-pad__dot.is-level{background:#808080b3}.wet-dry-chip{padding:6px 14px;border:1px solid var(--border, rgba(128, 128, 128, .4));border-radius:999px;background:var(--panel-bg, rgba(30, 30, 34, .92));color:var(--text, #eee);font-size:12px;cursor:pointer;box-shadow:0 2px 10px #00000040}.wet-dry-chip:hover{filter:brightness(1.15)}.dock__insert-hint{flex:0 0 3px;margin:1px 6px;border-radius:2px;background:var(--accent, #4f8cff);box-shadow:0 0 6px color-mix(in srgb,var(--accent, #4f8cff) 60%,transparent);pointer-events:none}.toolbar__color-popover--docked{position:static;z-index:auto;width:auto;box-shadow:none;border:none;border-radius:0;overflow-y:auto}.layer-panel__value{min-width:2.6em;text-align:right;font-size:.72rem;color:var(--fg-muted);font-variant-numeric:tabular-nums}.dialog__bg-row{display:flex;align-items:center;gap:10px}.dialog__bg-row input[type=color]{width:44px;height:26px;padding:0;border:1px solid var(--border);border-radius:6px;background:var(--bg);cursor:pointer}.dialog__bg-check{display:flex;align-items:center;gap:5px;font-size:.82rem;color:var(--fg)}.docprops__dpi{display:inline-flex;align-items:center;gap:5px}.docprops__scale{display:inline-flex;align-items:center;gap:8px}.docprops__scale input{width:110px}.docprops__dpi input{width:64px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:.15rem .3rem;font:inherit;font-variant-numeric:tabular-nums}
