:root{--paper:#f6f8f7;--rail:#e8edeb;--ink:#17262a;--ink-2:#56676b;--line:#d2dbd8;--accent:#116a63;--accent-soft:#dcebe8;--danger:#a3342b;--stage:#7d807f;--guide:#7cfc00;--r-sm:8px;--r-md:12px;--tap:44px;--fs-xs:12px;--fs-sm:13.5px;--fs-md:15px;--fs-lg:19px;font-family:-apple-system,SF Pro Text,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:var(--fs-md);color:var(--ink);background:var(--rail);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;line-height:1.4}*{box-sizing:border-box}html,body{overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;height:100%;margin:0;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}button,label.btn{font:inherit;color:inherit;-webkit-user-select:none;user-select:none}button:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}label.btn:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}input:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}.app{height:100%;padding-left:env(safe-area-inset-left);grid-template-columns:76px 288px 1fr;grid-template-areas:"rail panel stage";display:grid}.app.panel-closed{grid-template-columns:76px 0 1fr}.app.panel-closed .panel{display:none}.rail{padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:var(--rail);border-right:1px solid var(--line);flex-direction:column;grid-area:rail;align-items:center;gap:4px;display:flex}.mark{background:var(--ink);color:#fff;border-radius:11px;place-items:center;width:40px;height:40px;margin-bottom:14px;display:grid}.mark svg{stroke-width:2.6px;width:26px;height:26px}.mark .mark-mid{stroke:var(--guide);stroke-width:1.6px}.tab{border-radius:var(--r-md);width:64px;min-height:60px;color:var(--ink-2);font-size:var(--fs-xs);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:3px;padding:7px 0 6px;font-weight:560;display:flex}.tab svg{width:24px;height:24px}.tab[aria-pressed=true]{background:var(--paper);color:var(--accent);box-shadow:inset 0 0 0 1px var(--line)}.panel{background:var(--paper);border-right:1px solid var(--line);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 18px calc(24px + env(safe-area-inset-bottom));grid-area:panel;overflow-y:auto}.panel-head{padding:18px 0 6px}.panel-head h1{font-size:var(--fs-md);letter-spacing:-.01em;margin:0;font-weight:700}.panel-head h1 span{color:var(--ink-2);font-weight:400}.panel h2{font-size:var(--fs-lg);letter-spacing:-.015em;margin:18px 0 14px;font-weight:650}.panel h3{font-size:var(--fs-sm);color:var(--ink-2);border-top:1px solid var(--line);margin:24px 0 9px;padding-top:16px;font-weight:650}.stack{flex-direction:column;gap:8px;display:flex}.row{align-items:center;gap:8px;display:flex}.grow{flex:1}.group{margin-top:14px}.label{font-size:var(--fs-sm);color:var(--ink-2);margin-bottom:7px;display:block}.note,.hint{font-size:var(--fs-sm);color:var(--ink-2);max-width:34em;margin:10px 0 0}.hint{color:var(--ink)}.btn{min-height:var(--tap);border-radius:var(--r-sm);border:1px solid var(--line);cursor:pointer;white-space:nowrap;background:#fff;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:560;display:inline-flex}.btn svg{width:20px;height:20px}.btn:active{background:var(--accent-soft)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:active{background:#0c534d}.btn.danger{color:var(--danger)}.btn.subtle{color:var(--ink-2);background:0 0;border-color:#0000;width:100%;margin-top:6px}.btn:disabled{opacity:.4;cursor:default}#btn-template{width:100%;margin-top:8px}.seg{background:var(--rail);border:1px solid var(--line);border-radius:10px;gap:3px;padding:3px;display:flex}.seg button{min-height:40px;font-size:var(--fs-sm);color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-weight:560;display:inline-flex}.seg button[aria-pressed=true]{color:var(--ink);box-shadow:0 0 0 1px var(--line), 0 1px 2px #17262a14;background:#fff}.seg.compact button{min-height:38px}.shades .sw{border:1px solid #17262a40;border-radius:50%;width:14px;height:14px}.sw-bl1{background:#f8f7f2}.sw-a1{background:#f2ebdc}.sw-a2{background:#ece1ca}.sw-a3{background:#e4d5b8}.toggles{flex-wrap:wrap;gap:6px;display:flex}.toggle{min-height:var(--tap);border:1px solid var(--line);font-size:var(--fs-sm);cursor:pointer;background:#fff;border-radius:22px;align-items:center;gap:9px;padding:0 14px 0 10px;font-weight:560;display:inline-flex}.toggle i{background:#c4cfcc;border-radius:9px;width:30px;height:18px;transition:background .15s;position:relative}.toggle i:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:2px;left:2px}.toggle[aria-pressed=true] i{background:var(--accent)}.toggle[aria-pressed=true] i:after{transform:translate(12px)}.slider{margin-top:4px;display:block}.slider span{font-size:var(--fs-sm);color:var(--ink-2);justify-content:space-between;display:flex}.slider output,.readout output,#zoom-out{font-variant-numeric:tabular-nums;color:var(--ink)}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:var(--tap);background:0 0;margin:0}input[type=range]::-webkit-slider-runnable-track{background:var(--line);border-radius:2px;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid var(--line);background:#fff;border-radius:50%;width:26px;height:26px;margin-top:-11px;box-shadow:0 1px 4px #17262a33}input[type=range]::-moz-range-track{background:var(--line);border-radius:2px;height:4px}input[type=range]::-moz-range-thumb{border:1px solid var(--line);background:#fff;border-radius:50%;width:26px;height:26px}.readout{font-size:var(--fs-sm);color:var(--ink-2);justify-content:space-between;align-items:baseline;margin:16px 0 8px;display:flex}.readout output{font-size:var(--fs-md);font-weight:600}.stage{background:var(--stage);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;grid-area:stage;min-width:0;min-height:0;position:relative;overflow:hidden}#stage{touch-action:none;cursor:crosshair;width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.stage.panning #stage{cursor:grab}.topbar{top:calc(10px + env(safe-area-inset-top));left:10px;right:calc(10px + env(safe-area-inset-right));pointer-events:none;justify-content:space-between;align-items:flex-start;gap:10px;display:flex;position:absolute}.topbar>*{pointer-events:auto}.mode{min-height:var(--tap);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-size:var(--fs-sm);background:#17262ac7;border-radius:22px;flex:0 auto;align-items:center;gap:8px;min-width:0;padding:0 14px 0 12px;display:flex}.mode b{white-space:nowrap;font-weight:650}.mode span:last-child{color:#ffffffb8;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mode-dot{background:var(--guide);border-radius:50%;flex:none;width:9px;height:9px;box-shadow:0 0 0 3px #7cfc0038}.tools{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f6f8f7f0;border-radius:14px;flex:none;gap:2px;padding:3px;display:flex;box-shadow:0 1px #17262a0f,0 0 0 1px #17262a14}.icon-btn{min-width:var(--tap);min-height:var(--tap);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0;border-radius:11px;align-items:center;gap:6px;padding:0 10px;font-weight:560;display:inline-flex}.icon-btn svg{width:21px;height:21px}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn[aria-pressed=true]{background:var(--ink);color:#fff}.icon-btn:active:not(:disabled){background:var(--accent-soft)}.empty{color:#fff;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:24px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.empty p{font-size:var(--fs-lg);max-width:22em;margin:0;font-weight:560}.empty .btn:not(.primary){background:#ffffffeb;border-color:#0000}.empty-art{width:150px;height:75px;stroke:var(--guide);stroke-width:2px;stroke-dasharray:.1 6}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom));color:#fff;font-size:var(--fs-sm);text-align:center;background:#17262ae6;border-radius:22px;max-width:min(90%,440px);padding:11px 18px;position:absolute;transform:translate(-50%)}@media (orientation:portrait),(max-width:760px){.app{grid-template:"stage"1fr"panel""rail"/1fr;padding-left:0}.app.panel-closed{grid-template-columns:1fr}.rail{padding:4px 8px calc(4px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--line);flex-direction:row;justify-content:space-around}.mark{display:none}.tab{flex:1;max-width:110px}.panel{border-right:0;border-top:1px solid var(--line);max-height:36vh;padding-bottom:16px}.panel-head{display:none}.panel h2{margin-top:14px}.icon-btn span{display:none}.icon-btn #zoom-out{display:inline}}@media (max-width:1100px) and (orientation:landscape){.icon-btn span{display:none}.icon-btn #zoom-out{display:inline}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
