code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px white;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{text-shadow:none;background:#b3d4fc}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#905}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#690}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#9a6e3a;background:#ffffff80}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.function,.token.class-name{color:#dd4a68}.token.regex,.token.important,.token.variable{color:#e90}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}:root{--bg: #f7f6ef;--grid-minor: rgba(120, 128, 150, .05);--grid-major: rgba(120, 128, 150, .1);--grid-col-ink: rgba(70, 70, 63, .38);--grid-col-a: rgba(232, 144, 32, .42);--grid-col-b: rgba(64, 124, 210, .38);--grid-col-c: rgba(214, 72, 84, .36);--panel: #ffffff;--panel-border: rgba(26, 26, 23, .07);--text: #46463f;--accent: #2d6cdf;--accent-soft: rgba(45, 108, 223, .1);--chip: #ffffff;--glass: rgba(255, 255, 255, .82);--hint: #aeac9f;--muted: #9b9a8d;--hand-font: "Handlee", "Comic Sans MS", cursive;--ui-font: "Hanken Grotesk", system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, Menlo, monospace}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden;font-family:var(--ui-font);-webkit-font-smoothing:antialiased;color:var(--text);background:var(--bg)}.app{position:relative;height:100%}.canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none;display:block}.grid-bg{fill:var(--bg)}.grid-minor{stroke:var(--grid-minor);stroke-width:1}.grid-major{stroke:var(--grid-major);stroke-width:1.5}.grid-dot-minor,.grid-dot-major{fill:var(--grid-major)}.grid-col-ink{stroke:var(--grid-col-ink);stroke-width:1.5}.grid-col-a{stroke:var(--grid-col-a);stroke-width:1}.grid-col-b{stroke:var(--grid-col-b);stroke-width:1}.grid-col-c{stroke:var(--grid-col-c);stroke-width:1}[data-mode=dark] .ink-layer{filter:invert(1) hue-rotate(180deg)}.axes-overlay{pointer-events:none}.axis-line{stroke:var(--text);stroke-width:1.4;opacity:.55}.axis-tick{stroke:var(--text);stroke-width:1.2;opacity:.5}.axis-label{fill:var(--muted);font:500 10px var(--mono);-webkit-user-select:none;user-select:none}.obj{cursor:pointer}.hit{stroke:transparent;stroke-width:14px;fill:none;pointer-events:stroke}.ink{pointer-events:none}.fillpat{display:block;width:20px;height:14px;border-radius:3px;color:var(--text)}.fill-obj{cursor:pointer;fill-opacity:.45;pointer-events:all}.fill-obj.patterned{fill-opacity:1}.text-obj{cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--hand-font)}.dim-label,.line-label{-webkit-user-select:none;user-select:none;font-family:var(--hand-font)}.text-editor.line-label-editor{text-align:center;animation:label-fade .14s ease}@keyframes label-fade{0%{opacity:0}}.code-obj{cursor:pointer}.code-obj pre{margin:0;background:#ffffffb3;border-radius:4px;overflow:visible;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.text-editor{position:absolute;z-index:58;margin:0;border:none;outline:1.5px dashed var(--accent);outline-offset:0;border-radius:6px;background:transparent;color:var(--text);font-family:var(--hand-font);white-space:pre;caret-color:var(--accent);resize:none;overflow:hidden}.sel-layer{pointer-events:none}.sel-outline{fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.sel-gap{fill:none;stroke:var(--bg);stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.sel-outline-text{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.5;pointer-events:none}.sel-handle{fill:#fff;stroke:var(--accent);stroke-width:1.5}.hover-ring{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-opacity:.4;pointer-events:none}.marquee{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1;stroke-dasharray:4 4;pointer-events:none}.group-ring{fill:none;stroke:var(--accent);stroke-width:1;stroke-dasharray:5 4;stroke-opacity:.55;pointer-events:none;animation:help-fade .15s ease}.group-ring.entered{stroke-opacity:.3;stroke-dasharray:3 5}.peer-sel-ring{fill:none;stroke-width:1.5;stroke-opacity:.75;pointer-events:none;animation:help-fade .18s ease}.peer-sel-label{position:absolute;transform:translate(-1px,calc(-100% - 3px));font:600 10px var(--ui-font);color:#fff;padding:2px 7px;border-radius:6px;white-space:nowrap;max-width:12ch;overflow:hidden;text-overflow:ellipsis;pointer-events:none;animation:help-fade .18s ease}.align-guides{animation:help-fade .14s ease;pointer-events:none}.align-guide{stroke:#e0417e;stroke-width:1}.htarget{cursor:grab}.htarget.resize{cursor:nwse-resize}.handle-hit{fill:transparent;stroke:none}.handle{fill:#fff;stroke:var(--accent);stroke-width:1.5}.htarget:hover .handle{fill:var(--accent)}.ctrl-handle{fill:var(--accent);stroke:#fff;stroke-width:1.5}.htarget:hover .ctrl-handle{fill:var(--accent-strong, var(--accent))}.dim-division-handle{fill:var(--panel);stroke:var(--accent);stroke-width:1.6}.htarget:hover .dim-division-handle{fill:var(--accent-soft)}.curve-tangent{stroke:var(--accent);stroke-width:1;stroke-dasharray:3 3;opacity:.5;pointer-events:none}.xform-stem{stroke:var(--accent);stroke-width:1.5}.xform-scale{fill:#fff;stroke:var(--accent);stroke-width:1.5}.htarget:hover .xform-scale{fill:var(--accent)}.xform-rotate{fill:#fff;stroke:var(--accent);stroke-width:1.5}.htarget:hover .xform-rotate{fill:var(--accent)}.frame{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-dasharray:6 4;pointer-events:none}.frame-hit{fill:none;stroke:transparent;stroke-width:14;pointer-events:stroke;cursor:move}@media (pointer: coarse){.frame-hit{stroke-width:30}}.frame-handle{fill:#fff;stroke:var(--accent);stroke-width:1.5}.htarget:hover .frame-handle{fill:var(--accent)}.frame-label{fill:var(--accent);font:600 11px var(--mono);pointer-events:none;-webkit-user-select:none;user-select:none}.dims{position:absolute;z-index:56;font:500 11px var(--mono);color:#fff;background:var(--accent);padding:2px 7px;border-radius:6px;pointer-events:none;box-shadow:0 2px 8px #2d6cdf4d;white-space:nowrap}.rotate-readout{transform:translate(-50%,-50%);animation:ctxpop .14s ease;transition:box-shadow .14s ease,background .14s ease}.rotate-readout.snapped{background:var(--accent-strong, var(--accent));box-shadow:0 0 0 2px #fff,0 2px 10px #2d6cdf80}.peer-cursors{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:54;overflow:hidden}.peer-cursor{position:absolute;left:0;top:0;will-change:transform;transition:opacity .3s ease;animation:help-fade .18s ease}.peer-cursor.idle,.peer-cursor.leaving{opacity:0}.peer-cursor svg{display:block;overflow:visible;filter:drop-shadow(0 1px 2px rgba(26,26,23,.25))}.peer-cursor-label{position:absolute;left:12px;top:16px;font:600 10px var(--ui-font);color:#fff;padding:2px 7px;border-radius:6px;white-space:nowrap;max-width:12ch;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 8px #1a1a172e}.ctxbar{position:absolute;z-index:55;max-width:calc(100vw - 16px)}.ctxbar-pill{display:flex;gap:3px;align-items:center;flex-wrap:wrap;justify-content:center;background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;padding:5px;box-shadow:0 8px 26px #1a1a1724,0 1px 2px #1a1a170f;animation:ctxpop .14s ease}@keyframes ctxpop{0%{opacity:0;transform:translateY(4px) scale(.97)}to{opacity:1;transform:none}}.ctx-div{width:1px;height:22px;background:var(--panel-border);margin:0 3px}.ctx-type{height:30px;padding:0 6px 0 5px;border:none;border-radius:8px;background:transparent;color:var(--text);display:flex;align-items:center;gap:3px;cursor:pointer}.ctx-type:hover{background:var(--chip)}.ctx-type-n{font:600 11px var(--mono);color:var(--muted)}.ctx-colors{display:flex;gap:5px;align-items:center;padding:0 3px}.ctx-swatch{width:18px;height:18px;padding:0;border-radius:50%;cursor:pointer;border:1.5px solid rgba(127,127,127,.25);transition:transform .1s}.ctx-swatch:hover{transform:scale(1.15)}.ctx-swatch.active{box-shadow:0 0 0 2px var(--panel),0 0 0 3.5px var(--accent)}.ctx-wbtn,.ctx-arrow,.ctx-corner,.ctx-flip{width:30px;height:30px;border:none;border-radius:8px;background:transparent;color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer}.ctx-wbtn:hover,.ctx-arrow:hover,.ctx-corner:hover,.ctx-flip:hover{background:var(--chip)}.ctx-wbtn.active{background:var(--accent-soft)}.ctx-arrow.active,.ctx-corner.active{background:var(--accent-soft);color:var(--accent)}.ctx-wbar{display:block;width:15px;background:var(--text);border-radius:2px}.ctx-corners{display:flex;align-items:center}.ctx-fill{width:30px;height:30px;border:none;border-radius:8px;background:transparent;color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer}.ctx-fill:hover{background:var(--chip)}.ctx-fill.active{background:var(--accent-soft);color:var(--accent)}.ctx-trash{width:30px;height:30px;border:none;border-radius:8px;background:transparent;color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer}.ctx-trash:hover{background:#c0392b24;color:#c0392b}.ctx-edit{height:30px;padding:0 10px;border:none;border-radius:8px;background:transparent;color:var(--text);display:flex;align-items:center;gap:6px;cursor:pointer;font:600 13px var(--ui-font)}.ctx-edit:hover{background:var(--chip)}.ctx-layer-wrap{position:relative}.ctx-layer.active{background:var(--chip)}.ctx-layer-lbl{max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctx-layer-pop{position:absolute;left:0;top:calc(100% + 9px);z-index:5;min-width:150px;padding:4px;display:flex;flex-direction:column;gap:1px;background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;box-shadow:0 8px 26px #1a1a1724,0 1px 2px #1a1a170f;animation:pop-in-down .14s ease}.ctx-layer-pop.up{top:auto;bottom:calc(100% + 9px);animation-name:pop-in}.ctx-layer-row{display:flex;align-items:center;gap:6px;width:100%;height:30px;padding:0 8px 0 5px;border:none;border-radius:7px;background:transparent;color:var(--text);font:500 13px var(--ui-font);cursor:pointer;text-align:left}.ctx-layer-row:hover:not(:disabled){background:var(--chip)}.ctx-layer-row:disabled{cursor:default}.ctx-layer-row:disabled:not(.cur){color:var(--muted)}.ctx-layer-mark{width:13px;text-align:center;color:var(--accent);font:600 12px var(--ui-font)}.ctx-layer-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctx-layer-state{display:flex;align-items:center;color:var(--muted)}.ctx-font{width:28px;height:30px;border:none;border-radius:8px;background:transparent;color:var(--text);cursor:pointer;font:600 12px var(--ui-font)}.ctx-font.lg{font-size:15px}.ctx-font:hover{background:var(--chip)}.ctx-fval{font:500 12px var(--mono);color:var(--muted);min-width:26px;text-align:center}.ctx-measure{display:flex;align-items:center;gap:3px;padding:0 4px 0 6px;height:30px;border-radius:8px;cursor:text}.ctx-measure-pre{font:500 12px var(--mono);color:var(--muted)}.ctx-measure-input{width:4.5ch;min-width:4.5ch;max-width:8ch;height:24px;padding:0 2px;border:1px solid var(--panel-border);border-radius:6px;background:var(--bg);color:var(--text);font:600 12px var(--mono);text-align:right;transition:border-color .14s,box-shadow .14s}.ctx-measure-input:hover{border-color:var(--muted)}.ctx-measure-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.ctx-measure-unit{font:500 11px var(--mono);color:var(--muted)}.snap{pointer-events:none}.snap-vertex{fill:var(--accent);stroke:#fff;stroke-width:1.5}.snap-on{fill:none;stroke:var(--accent);stroke-width:2}.snap-grid{fill:none;stroke:var(--muted);stroke-width:1.5}.snap-mid{fill:var(--accent);stroke:#fff;stroke-width:1}.snap-center,.snap-center line,.snap-center circle{stroke:var(--accent);stroke-width:1.5;fill:none}.bind-glow{pointer-events:none;fill:none;stroke:var(--accent);stroke-width:7;stroke-linecap:round;opacity:.35;animation:glow-in .16s ease}@keyframes glow-in{0%{opacity:0}}.handle.bound{fill:var(--accent)}.angle-guide{pointer-events:none;stroke:var(--accent);stroke-width:1;stroke-dasharray:2 5;opacity:.55}.mirror-axis{pointer-events:none;stroke:var(--accent);stroke-width:1;stroke-dasharray:7 5;opacity:.4}.mirror-center{pointer-events:none;fill:var(--accent);opacity:.55}.mirror-hit{fill:none;stroke:transparent;stroke-width:14;pointer-events:stroke}.mirror-center-hit{fill:transparent;pointer-events:all;cursor:move}.mirror-preview{opacity:.45}.ghost-layer{pointer-events:none}.ghost{fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:5 4;opacity:.45}.ghost-fill{stroke:none;opacity:.18}.ghost-text{fill:var(--accent);stroke:none;opacity:.5}.ghost-hint rect{fill:var(--accent);opacity:.9}.ghost-hint text{fill:#fff;font:600 10px var(--mono)}.iconp.on{color:var(--accent)}.pred-ind{font:600 12px var(--mono)}.toolbar{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:45;display:flex;flex-direction:column;align-items:center}.toolbar.style-menu-open{z-index:57}.bar{display:flex;align-items:center;gap:2px;background:var(--panel);border:1px solid var(--panel-border);border-radius:15px;padding:5px;box-shadow:0 8px 30px #1a1a1717,0 1px 2px #1a1a170f}.tbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:transparent;color:#46463f;transition:transform .12s ease,background .12s;position:relative}.slot-icon{display:flex;animation:slot-swap .16s ease}@keyframes slot-swap{0%{transform:scale(.55);opacity:0}}.slot-more{position:absolute;right:4px;bottom:4px;width:0;height:0;border-left:4px solid transparent;border-bottom:4px solid currentColor;opacity:.45}[data-mode=dark] .tbtn{color:var(--text)}.tbtn:hover{transform:translateY(-1px);background:#7f7f7f1a}.tbtn.active{background:var(--accent-soft);color:var(--accent)}.tbtn:disabled{opacity:.35;cursor:default;transform:none}.bar-div{width:1px;height:22px;background:var(--panel-border);margin:0 3px}.chip-btn{width:auto;padding:0 8px;gap:3px}.chip{width:18px;height:18px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #1a1a171f;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.chip-core{width:8px;height:8px;border-radius:50%;transition:background .15s ease}@media (max-width: 700px){.toolbar{left:8px;right:8px;transform:none}.bar{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.bar::-webkit-scrollbar{display:none}.bar>*{flex:0 0 auto}.tbtn{width:34px;height:34px}}.labbar{position:absolute;left:calc(100% + 10px);top:0;display:flex;align-items:center;gap:2px;background:var(--panel);border:1px dashed var(--panel-border);border-radius:15px;padding:5px;box-shadow:0 8px 30px #1a1a1717,0 1px 2px #1a1a170f}@media (max-width: 700px){.labbar{display:none}}.lab-pop{top:calc(100% + 8px);left:0;width:320px}.aisk{display:flex;flex-direction:column;gap:6px}.aisk-row{display:flex;gap:6px}.aisk-input{flex:1;min-width:0;padding:7px 10px;border:1px solid var(--panel-border);border-radius:9px;background:var(--bg);color:var(--text);font:400 12.5px var(--ui-font);transition:border-color .15s ease,box-shadow .15s ease}.aisk-input::placeholder{color:var(--muted)}.aisk-input:focus{outline:none;border-color:var(--accent)}.aisk-go{padding:7px 14px;border:1px solid var(--panel-border);border-radius:9px;background:var(--panel);color:var(--text);cursor:pointer;font:500 12.5px var(--ui-font);transition:border-color .15s ease,opacity .15s ease}.aisk-go:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.aisk-go:disabled{opacity:.55;cursor:default}.aisk-note{font:400 10px var(--mono);color:var(--muted);letter-spacing:.02em;transition:color .15s ease}.aisk-note.err{color:#c0392b}.pop{position:absolute;background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;padding:13px;box-shadow:0 12px 36px #1a1a1729;animation:pop-in .14s ease}@keyframes pop-in{0%{transform:translateY(4px);opacity:0}}.style-pop{top:calc(100% + 8px);left:50%;transform:translate(-50%);width:214px}.sb-callout{position:absolute;top:calc(100% + 7px);transform:translate(-50%);transform-origin:top center;display:flex;flex-direction:column;align-items:center;transition:left .14s ease,opacity .13s ease;animation:sb-grow .16s cubic-bezier(.2,.8,.3,1);z-index:1;pointer-events:none}.sb-callout.closing{opacity:0}@keyframes sb-grow{0%{transform:translate(-50%) translateY(-3px) scaleY(.55) scaleX(.85);opacity:0}to{transform:translate(-50%) translateY(0) scale(1);opacity:1}}.stylebook-pop{position:relative;z-index:1;pointer-events:auto;background:var(--panel);border:1px solid var(--panel-border);border-radius:13px;padding:8px;box-shadow:0 12px 30px #1a1a1729}.stylebook-pop:before{content:"";position:absolute;top:-5px;left:50%;width:9px;height:9px;margin-left:-5px;background:var(--panel);border-left:1px solid var(--panel-border);border-top:1px solid var(--panel-border);border-top-left-radius:2px;transform:rotate(45deg)}.sb-row{display:flex;flex-wrap:wrap;gap:6px;max-width:150px;justify-content:center}.sb-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:3px;border-radius:8px;cursor:pointer;border:1px solid var(--panel-border);background:var(--bg);display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s,transform .12s ease}.sb-chip:hover{background:var(--accent-soft);transform:translateY(-1px)}.sb-chip.active{background:var(--accent-soft);border-color:var(--accent)}.sb-hint{margin-top:5px;text-align:center;font:600 10px var(--mono);letter-spacing:.1em;color:var(--hint)}.sb-mark{display:block;width:38px;height:20px}.sb-fill{width:38px;height:20px;border-radius:4px;border:1px solid var(--panel-border)}.sb-text{width:38px;height:20px;display:flex;align-items:baseline;justify-content:center;gap:3px}.sb-text-a{font-family:var(--ui-font);font-weight:700;line-height:20px}.sb-text-px{font:600 9px var(--mono);color:var(--hint)}.pop-h{font:600 10px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.row{display:flex;gap:7px;margin-bottom:13px}.row:last-child{margin-bottom:0}.swatch{width:21px;height:21px;border-radius:50%;padding:0;cursor:ns-resize;touch-action:none;border:1.5px solid rgba(26,26,23,.1);transition:transform .1s}.swatch:hover{transform:scale(1.12)}.recent-row{flex-wrap:wrap;gap:6px}.recent-sw{width:18px;height:18px;flex:0 0 auto;padding:0;border-radius:50%;border:1.5px solid rgba(26,26,23,.1);cursor:pointer;transition:transform .1s}.recent-sw:hover{transform:scale(1.14)}.recent-sw.active,.swatch.active{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--accent)}.swatch:disabled{opacity:.3;cursor:default}.swatch-wrap{position:relative;display:inline-flex}.pop-hint{font-weight:400;letter-spacing:.04em;text-transform:none;opacity:.6;margin-left:4px}.shade-ribbon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:16px;height:140px;border-radius:8px;border:1.5px solid #fff;box-shadow:0 4px 14px #00000047,0 0 0 1px #1a1a172e;pointer-events:none;z-index:60}.shade-mark{position:absolute;left:-2px;right:-2px;height:2px;margin-top:-1px;background:#fff;border-radius:2px;box-shadow:0 0 0 1px #1a1a1780}.shade-base-tick{position:absolute;left:50%;top:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:#ffffff8c;box-shadow:0 0 0 1px #1a1a1759}.shade-val{position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:7px;white-space:nowrap;font:600 10px var(--mono);color:#fff;letter-spacing:.02em;background:#1a1a17d1;padding:1px 5px;border-radius:4px;box-shadow:0 1px 4px #00000040}.shade-val.base{opacity:.72;font-weight:500}.seg{flex:1;height:30px;border-radius:8px;border:1px solid var(--panel-border);background:var(--bg);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text);font:600 12px var(--mono)}.seg:hover{background:var(--accent-soft)}.seg.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.seg:disabled{opacity:.4;cursor:default}.seg.wide{flex:0 0 46px}.vis-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;height:30px;background:transparent;cursor:pointer;margin:0}.vis-range::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:var(--panel-border)}.vis-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;margin-top:-5px;border-radius:50%;background:var(--accent);border:2px solid var(--panel);box-shadow:0 1px 3px #00000040;transition:transform .14s ease}.vis-range:active::-webkit-slider-thumb{transform:scale(1.15)}.vis-range::-moz-range-track{height:4px;border-radius:2px;background:var(--panel-border)}.vis-range::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--panel);box-shadow:0 1px 3px #00000040;transition:transform .14s ease}.vis-range:active::-moz-range-thumb{transform:scale(1.15)}.wbar{display:block;width:18px;background:currentColor;border-radius:2px}.dashline{display:block;width:20px;height:0}.sel{flex:1;font:500 12px var(--ui-font);padding:0 6px;height:30px;border:1px solid var(--panel-border);border-radius:8px;background:var(--panel);color:var(--text);cursor:pointer}.sel:disabled{opacity:.4;cursor:default}.util{position:fixed;right:16px;bottom:16px;z-index:40;display:flex;gap:6px;align-items:center}.tiltp{max-width:200px;transition:max-width .2s ease,opacity .18s ease,padding .2s ease,margin .2s ease,border-color .2s ease;overflow:hidden}.tiltp.zeroed{max-width:0;opacity:0;padding-left:0;padding-right:0;margin-left:-7px;border-color:transparent;pointer-events:none}@media (max-width: 700px){.util{left:8px;right:8px;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.util::-webkit-scrollbar{display:none}.util>*{flex:0 0 auto}.util>:first-child{margin-left:auto}}.util-pill{display:flex;align-items:center;gap:1px;background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--panel-border);border-radius:11px;padding:3px;box-shadow:0 2px 10px #1a1a170d}.ubtn{width:28px;height:28px;border:none;background:transparent;border-radius:7px;cursor:pointer;color:var(--muted);font-size:16px;line-height:1}.ubtn:hover{background:#7f7f7f1f}.ubtn:disabled{opacity:.3;cursor:default;background:transparent}.undop .ubtn{display:flex;align-items:center;justify-content:center}.zoom{font:500 12px var(--mono);color:var(--muted);min-width:42px;text-align:center}.tilt-read{font:500 12px var(--mono);color:var(--muted);text-align:center;border:none;background:transparent;cursor:pointer;padding:0 4px;min-width:40px;border-radius:7px;transition:background .15s ease,color .15s ease}.tilt-read:hover{background:#7f7f7f1f;color:var(--text)}.tilt-read.on{color:var(--accent)}.iconp{height:34px;padding:0 10px;gap:5px;cursor:pointer;color:var(--muted)}.iconp:hover{color:var(--text)}.grid-lvl{font:600 12px var(--mono)}.util-rel{position:relative}.ebtn{height:34px;padding:0 13px;gap:6px;cursor:pointer;font:600 13px var(--ui-font);color:var(--text)}.export-pop,.share-pop{right:0;bottom:calc(100% + 8px);width:196px;padding:5px;border-radius:11px}.export-pop .pop-h,.share-pop .pop-h{margin:9px 6px 3px}.share-pop .share-cta{justify-content:center;gap:7px;color:#fff;font-weight:600;background:var(--accent);padding:9px 10px;box-shadow:0 4px 12px #2d6cdf40;transition:transform .1s ease,box-shadow .14s ease,background .14s ease}.share-pop .share-cta:hover{background:var(--accent);transform:translateY(-1px);box-shadow:0 7px 18px #2d6cdf61}.share-pop .share-cta:active{transform:translateY(0)}.share-pop .share-cta svg{flex:0 0 auto}.share-hint,.snap-hint,.import-hint{font:500 10.5px var(--mono);color:var(--muted);text-align:center;line-height:1.35;margin:5px 6px 2px;transition:color .14s ease}.share-hint.ok,.snap-hint.ok{color:var(--accent)}.share-hint.err,.snap-hint.err,.import-hint.err{color:#c0392b}.graph-pop{right:0;bottom:calc(100% + 8px);width:198px}.graph-pop .pop-h{margin-top:6px}.graph-row{display:flex;align-items:center;gap:6px}.graph-eq{font:600 12px var(--mono);color:var(--muted)}.graph-expr{flex:1;min-width:0;height:30px;box-sizing:border-box;font:500 12px var(--mono);padding:0 8px;border:1px solid var(--panel-border);border-radius:8px;background:var(--panel);color:var(--text)}.graph-expr.invalid{border-color:#c0392b}.graph-add{justify-content:center;background:var(--accent-soft);color:var(--accent);margin-top:7px;font-weight:600}.graph-add:disabled{opacity:.4;cursor:default}.graph-presets{display:flex;flex-wrap:wrap;gap:5px}.graph-presets .seg{flex:0 0 auto;padding:0 8px;height:26px;font-size:11px}.mirror-pop{right:0;bottom:calc(100% + 8px);width:190px}.mirror-pop .row .seg{height:28px;padding:0 4px;font-size:11px}.mirror-note{font:500 11px var(--mono);color:var(--muted);margin-top:8px;text-align:center}.settings-pop{right:0;bottom:calc(100% + 8px);width:210px}.settings-pop .pop-h{margin-top:9px}.settings-pop .opt-grid+.pop-h,.settings-pop .row+.pop-h{margin-top:11px}.settings-pop .sel{width:100%;margin-bottom:4px}.settings-pop .row{margin-bottom:4px}.opt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.opt-grid .seg,.settings-pop .row .seg{height:28px;padding:0 4px;font-size:11px}.scale-num{width:100%;height:30px;box-sizing:border-box;margin-bottom:4px;font:500 12px var(--ui-font);padding:0 8px;border:1px solid var(--panel-border);border-radius:8px;background:var(--panel);color:var(--text)}.scale-note{font:500 11px var(--mono);color:var(--muted);margin-top:8px;text-align:center}.calib-row{display:flex;align-items:center;gap:6px}.calib-row .scale-num{flex:1;min-width:0;margin-bottom:0}.calib-unit{font:500 11px var(--mono);color:var(--muted);flex:0 0 auto}.calib-set{flex:0 0 auto;font:600 12px var(--ui-font);color:var(--accent);background:var(--accent-soft);border:none;border-radius:8px;height:30px;padding:0 12px;cursor:pointer}.calib-set:hover{filter:brightness(.97)}.calib-set:disabled{opacity:.45;cursor:default}.scale-body-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .18s ease}.scale-body-wrap.open{grid-template-rows:1fr}.scale-body-wrap>.scale-body{min-height:0;overflow:hidden}.sec-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .18s ease}.sec-wrap.open{grid-template-rows:1fr}.sec-wrap>.sec-body{min-height:0;overflow:hidden}.drawer-pop{position:fixed;left:auto;right:8px;bottom:62px;top:auto;z-index:46;width:234px;max-height:calc(100vh - 140px);max-height:calc(100dvh - 140px);overflow-y:auto;padding:6px;border-radius:12px}.drawer-pop .pitem{padding:10px}.pitem-l{display:flex;align-items:center;gap:9px}.pitem-more{color:var(--muted);font:600 14px var(--mono);line-height:1}.drawer-pop .pitem.on{color:var(--accent)}.pitem-q{width:13px;text-align:center;font:600 13px var(--mono)}.drawer-back{color:var(--muted);font-weight:600;justify-content:flex-start;gap:8px}.drawer-back .bk{font:600 16px var(--mono);line-height:1}.drawer-pop .drawer-body{width:auto;padding:2px 7px 7px}.drawer-pop .export-pop.drawer-body,.drawer-pop .share-pop.drawer-body{padding:0}.util-top{bottom:auto;top:16px}@keyframes pop-in-down{0%{transform:translateY(-4px);opacity:0}}.util-top .pop{animation-name:pop-in-down}.util-top .export-pop,.util-top .share-pop{bottom:auto;top:calc(100% + 8px)}@media (max-width: 900px){.util-top{top:auto;bottom:58px}.util-top .pop{animation-name:pop-in}.util-top .export-pop,.util-top .share-pop{top:auto;bottom:calc(100% + 8px)}}.util-left{right:auto;left:16px;top:16px;bottom:auto}.util-left .pop{animation-name:pop-in-down}.layers-pop{top:calc(100% + 8px);left:0;width:264px}.lyr-row{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:2px;border-radius:8px;animation:pop-in .16s ease;transition:background .16s ease}.lyr-row.active{background:var(--accent-soft)}.lyr-row.off .lyr-name{opacity:.45}.lyr-name{flex:1;min-width:0;display:flex;align-items:center;gap:8px;border:none;background:transparent;cursor:pointer;text-align:left;padding:4px 6px 4px 8px;border-radius:6px;font:500 13px var(--ui-font);color:var(--text)}.lyr-lbl{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lyr-thumb{width:36px;height:27px;flex:none;box-sizing:border-box;display:flex;align-items:center;justify-content:center;border:1px solid var(--panel-border);border-radius:5px;background:#fff;padding:2px;overflow:hidden}.lyr-thumb img{max-width:100%;max-height:100%;display:block}.lyr-thumb.blank{border-style:dashed;background:transparent;opacity:.5}.lyr-dot{width:7px;height:7px;border-radius:50%;border:1.5px solid var(--muted);flex:none;transition:background .14s ease,border-color .14s ease}.lyr-row.active .lyr-dot{background:var(--accent);border-color:var(--accent)}.lyr-row.active .lyr-name{color:var(--accent)}.lyr-acts{display:flex;align-items:center;gap:1px;flex:none}.lyr-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font:500 12px var(--mono);transition:color .14s ease,background .14s ease}.lyr-btn:hover{background:var(--accent-soft);color:var(--text)}.lyr-btn:disabled{opacity:.3;cursor:default;background:transparent}.lyr-btn.on{color:var(--accent)}.lyr-row.iso{background:var(--accent-soft)}.lyr-eye.iso,.lyr-eye.iso:hover{color:#fff;background:var(--accent)}.lyr-del{font-size:14px}.lyr-del:hover{background:#c0392b1a;color:#c0392b}.lyr-add{margin-top:4px;color:var(--muted);font-weight:600}.lyr-add:hover{color:var(--text)}.drawer-pop .lyr-name{padding:9px 6px 9px 8px}.drawer-pop .lyr-btn{width:30px;height:30px}.lyr-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.lyr-pin.on{color:var(--accent)}.layers-side{position:fixed;left:16px;top:66px;z-index:39;width:264px;max-height:calc(100vh - 82px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;padding:13px;box-shadow:0 12px 36px #1a1a1729;animation:pop-in-down .14s ease}.layers-side-body{min-height:0;overflow-y:auto}.pitem{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border:none;background:transparent;border-radius:7px;cursor:pointer;font:500 13px var(--ui-font);color:var(--text);gap:8px}.pitem:hover{background:var(--accent-soft)}.pitem .ext{font:400 11px var(--mono);color:var(--muted)}.pitem.check{justify-content:flex-start;gap:6px}.pitem.lead{justify-content:flex-start}.pitem.danger{color:#c0392b}.pitem.danger:hover{background:#c0392b1a}.pop-sep{height:1px;background:var(--panel-border);margin:4px 6px}.hint{position:fixed;left:50%;bottom:16px;transform:translate(-50%);z-index:10;font:400 11px var(--mono);letter-spacing:.01em;color:var(--hint);white-space:nowrap;max-width:90vw;text-align:center;pointer-events:none;opacity:0;transition:opacity .5s ease}.hint.show{opacity:1}.mode-hint{position:fixed;left:50%;top:74px;transform:translate(-50%,-4px);z-index:44;font:400 11px var(--mono);letter-spacing:.01em;color:var(--hint);white-space:nowrap;max-width:92vw;text-align:center;pointer-events:none;opacity:0;transition:opacity .15s ease,transform .15s ease}.mode-hint.show{opacity:1;transform:translate(-50%)}.hint.touch{bottom:72px;white-space:normal;max-width:92vw;text-align:center;line-height:1.4}@media (max-width: 900px){.hint,.hint.touch{bottom:104px}}@media (max-width: 700px){.hint,.hint.touch{bottom:66px}}.recovery-toast{position:fixed;left:50%;top:14px;transform:translate(-50%,-8px);z-index:60;font:500 12.5px var(--ui-font);color:var(--text);background:var(--panel);border:1px solid var(--panel-border);border-radius:999px;padding:9px 18px;box-shadow:0 8px 26px #1a1a1724,0 1px 2px #1a1a170f;max-width:92vw;text-align:center;pointer-events:none;opacity:0;transition:opacity .2s ease,transform .2s ease}.recovery-toast.show{opacity:1;transform:translate(-50%)}.backpill{position:fixed;left:50%;bottom:44px;transform:translate(-50%);z-index:41;display:flex;align-items:center;gap:7px;height:34px;padding:0 14px;border:1px solid var(--panel-border);border-radius:999px;background:var(--panel);color:var(--accent);font:600 12.5px var(--ui-font);cursor:pointer;box-shadow:0 4px 16px #1a1a171f,0 1px 2px #1a1a170f;transition:opacity .18s ease,transform .18s ease,box-shadow .14s ease}.backpill:hover{box-shadow:0 7px 20px #1a1a1729,0 1px 2px #1a1a170f}.backpill.is-hidden{opacity:0;transform:translate(-50%) translateY(10px);pointer-events:none}.backpill-arrow{transform-box:fill-box;transform-origin:center;transition:transform .1s linear}@media (max-width: 700px){.backpill{bottom:76px}}.zero{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;pointer-events:none;opacity:1;visibility:visible;transition:opacity .45s ease,visibility 0s linear}.zero.is-hidden{opacity:0;visibility:hidden;transition:opacity .45s ease,visibility 0s linear .45s}.zero.is-hidden .zero-egs{pointer-events:none}.zero{--zhalo: 0 0 2px var(--bg), 0 0 5px var(--bg), 0 0 5px var(--bg)}.zero-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-54%);display:flex;flex-direction:column;align-items:center;text-align:center}.zfig{display:block;overflow:visible}.zfig path,.zfig line,.zcall-arrow path{stroke-linecap:round;stroke-linejoin:round}.zfig-ink{fill:none;stroke:var(--text);stroke-width:1.6;opacity:.7}.zfig-accent{fill:none;stroke:var(--accent);stroke-width:2}.zfig-ray{fill:none;stroke:var(--accent);stroke-width:1.2;stroke-dasharray:4 4;opacity:.5}.zfig-dim{fill:none;stroke:var(--muted);stroke-width:1;opacity:.85}.zfig-len{font:400 12px var(--mono);fill:var(--text);text-shadow:var(--zhalo)}.zfig-ang{font:400 12px var(--mono);fill:var(--accent);text-shadow:var(--zhalo)}.zero-mark{margin-top:12px;font:400 42px var(--hand-font);color:var(--text);letter-spacing:.01em;text-shadow:var(--zhalo)}.zero-tag{margin-top:8px;max-width:360px;font:400 13px var(--ui-font);color:var(--text);opacity:.8;line-height:1.5;text-shadow:var(--zhalo)}.zero-egs{margin-top:22px;pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:8px}.zero-egs-label{font:400 15px var(--hand-font);color:var(--text);opacity:.75;text-shadow:var(--zhalo)}.zero-egs-row{display:flex;gap:8px}.zeg{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 12px;border:1px solid var(--panel-border);border-radius:9px;background:var(--panel);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.zeg:hover{border-color:var(--accent);box-shadow:0 2px 10px #0000001a;transform:translateY(-1px)}.zeg:active{transform:translateY(0)}.zeg-title{font:500 12.5px var(--ui-font);color:var(--text)}.zeg-sub{font:400 10px var(--mono);color:var(--muted);letter-spacing:.02em}.zcall{position:absolute;display:flex;flex-direction:column;align-items:center;gap:4px}.zcall-label{display:flex;flex-direction:column;gap:2px}.zcall-title{font:400 17px var(--hand-font);color:var(--text);text-shadow:var(--zhalo)}.zcall-sub{font:400 10px var(--mono);color:var(--muted);letter-spacing:.03em;text-shadow:var(--zhalo)}.zcall-arrow{display:block;overflow:visible}.zc-tools{top:82px;left:50%;transform:translate(-50%);flex-direction:column-reverse}.zc-util{right:88px;bottom:64px;align-items:flex-start}.zc-util .zcall-label{align-items:flex-start}.zc-share{right:96px;top:70px;flex-direction:column-reverse;align-items:flex-end}.zc-share .zcall-label{align-items:flex-end}@media (max-width: 900px){.zc-share{display:none}.zc-util{bottom:104px}}@media (max-width: 700px){.zc-util{bottom:66px}}@media (max-width: 640px){.zcall{display:none}.zero-mark{font-size:32px}.zfig{width:260px;height:auto}}[data-theme=neon] .bar,[data-theme=neon] .ctxbar-pill,[data-theme=neon] .pop{box-shadow:0 0 0 1px var(--panel-border),0 0 18px #ff3df02e}[data-theme=neon] .tbtn.active{text-shadow:0 0 8px var(--accent)}[data-theme=neon] .sel-outline,[data-theme=neon] .sel-outline-text,[data-theme=neon] .handle,[data-theme=neon] .ctrl-handle,[data-theme=neon] .marquee{filter:drop-shadow(0 0 3px var(--accent))}[data-theme=neon] .text-editor{text-shadow:0 0 6px var(--accent-soft)}.sharep{height:34px;padding:0 12px;gap:6px;cursor:pointer;font:600 13px var(--ui-font);color:var(--text)}.sharep:hover{color:var(--text)}.sharep.live{background:var(--accent-soft);color:var(--accent)}.sharep.live svg{stroke:var(--accent)}.share-dot{width:7px;height:7px;border-radius:50%;background:currentColor;animation:share-blink 1.6s ease-in-out infinite}@keyframes share-blink{0%,to{opacity:1}50%{opacity:.3}}@media (prefers-reduced-motion: reduce){.share-dot{animation:none}}.share-live{font:700 13px var(--mono);min-width:12px;text-align:center}.fbp{height:34px;padding:0 12px;gap:6px;cursor:pointer;font:600 13px var(--ui-font);color:var(--text)}.fb-lbl{font:600 13px var(--ui-font)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14141261;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--panel);color:var(--text);border:1px solid var(--panel-border);border-radius:14px;box-shadow:0 12px 40px #00000040;width:min(440px,calc(100vw - 32px));padding:18px 20px 20px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-head h2{font-size:16px;font-weight:700;margin:0}.modal-x{border:none;background:none;color:var(--muted);font-size:22px;line-height:1;cursor:pointer;padding:0 4px}.modal-x:hover{color:var(--text)}.field{display:block;margin-bottom:14px}.field-l{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:6px}.field-i{width:100%;box-sizing:border-box;padding:8px 10px;font-size:13px;background:var(--bg);color:var(--text);border:1px solid var(--panel-border);border-radius:8px}.field-i:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.copy-row{display:flex;gap:8px}.copy-row .field-i{font-family:ui-monospace,monospace;font-size:12px}.modal-note{font-size:12px;line-height:1.5;color:var(--muted);margin:4px 0 16px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.btn{padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;background:var(--bg);color:var(--text);border:1px solid var(--panel-border);border-radius:8px}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);color:#fff;border-color:transparent}.btn.primary:disabled{opacity:.6;cursor:default}.btn.danger{color:#c0392b;border-color:#c0392b66}.btn.danger:hover{background:#c0392b14}.padp{height:34px;padding:0 12px;gap:6px;cursor:pointer;font:600 13px var(--ui-font);color:var(--muted)}.padp:hover{color:var(--text)}.pad-name-lbl{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pad-modal{width:min(680px,calc(100vw - 32px))}.pad-warn{color:#c0392b;margin-top:0}.pad-head{gap:14px}.pad-search{flex:1;min-width:0;height:30px;padding:0 12px;border:1px solid var(--panel-border);border-radius:999px;background:var(--bg);color:var(--text);font:500 12.5px var(--ui-font);transition:border-color .14s,box-shadow .14s}.pad-search::placeholder{color:var(--hint)}.pad-search:hover{border-color:var(--muted)}.pad-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.pad-empty{margin:2px 0 12px;animation:pop-in .14s ease}.pad-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;max-height:min(56vh,460px);overflow-y:auto;padding:2px 2px 4px;margin-bottom:12px}.pad-new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:132px;cursor:pointer;border:1.5px dashed var(--panel-border);border-radius:10px;background:var(--bg);color:var(--muted);transition:border-color .15s ease,color .15s ease,background .15s ease;animation:pop-in .14s ease}.pad-new:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.pad-new-plus{font-size:26px;line-height:1;font-weight:300}.pad-new-lbl{font-size:12px;font-weight:600}.pad-card{display:flex;flex-direction:column;cursor:pointer;border:1px solid var(--panel-border);border-radius:10px;background:var(--panel);overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease,transform .1s ease;animation:pop-in .14s ease}.pad-card:hover{border-color:var(--accent);transform:translateY(-1px)}.pad-card.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);cursor:default}.pad-card.active:hover{transform:none}.pad-thumb{position:relative;height:90px;background:#fff;border-bottom:1px solid var(--panel-border);display:flex;align-items:center;justify-content:center}.pad-thumb img{max-width:100%;max-height:100%;object-fit:contain;display:block}.pad-thumb-empty{font:500 11px var(--mono);color:var(--muted);opacity:.6;letter-spacing:.06em}.pad-current{position:absolute;top:5px;right:5px;font:600 9px var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--accent);background:var(--accent-soft);padding:2px 5px;border-radius:5px}.pad-title{border:1px solid transparent;background:transparent;color:var(--text);font:600 12.5px var(--ui-font);padding:6px 8px 2px;width:100%;box-sizing:border-box;border-radius:6px}.pad-title:hover{background:var(--accent-soft)}.pad-title:focus{outline:none;background:var(--bg);border-color:var(--accent)}.pad-meta{display:flex;align-items:center;justify-content:space-between;padding:0 8px 7px;gap:6px}.pad-time{font:500 10.5px var(--mono);color:var(--muted)}.pad-ai{display:inline-block;margin-right:4px;color:var(--accent);animation:pop-in .14s ease}.pad-ai-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0 0;padding:8px 10px;border:1px dashed var(--panel-border);border-radius:8px;font:500 11.5px var(--ui-font);color:var(--muted);animation:pop-in .14s ease}.pad-ai-row .pad-act{flex:none}.pad-backup-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0 0;padding:8px 10px;border:1px dashed var(--panel-border);border-radius:8px;font:500 11.5px var(--ui-font);color:var(--muted);animation:pop-in .14s ease}.pad-backup-btns{display:flex;gap:4px;flex:none}.pad-actions{display:flex;gap:4px;opacity:0;transition:opacity .12s ease}.pad-card:hover .pad-actions,.pad-card.active .pad-actions{opacity:1}.pad-act{border:1px solid var(--panel-border);background:var(--bg);color:var(--muted);font:600 10px var(--mono);padding:2px 5px;border-radius:5px;cursor:pointer}.pad-act:hover{border-color:var(--accent);color:var(--accent)}.pad-act.danger{color:#c0392b;border-color:#c0392b66}.pad-foot{margin:0}.sheet-fx{position:fixed;top:0;right:0;bottom:0;left:0;z-index:44;pointer-events:none;background:var(--bg);animation:sheet-fade .24s ease forwards}@keyframes sheet-fade{0%{opacity:.6}to{opacity:0}}@media (prefers-reduced-motion: reduce){.sheet-fx{display:none}}.peer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.peer{display:flex;align-items:center;gap:8px;font-size:13px}.peer-dot{width:9px;height:9px;border-radius:50%;flex:none}.peer-you{color:var(--muted)}.peer-name-i{font:inherit;color:inherit;background:transparent;border:none;border-radius:6px;padding:2px 4px;margin:-2px 0 -2px -4px;width:16ch;min-width:0;transition:background .15s ease}.peer-name-i:hover{background:var(--bg)}.peer-name-i:focus{outline:2px solid var(--accent-soft);background:var(--bg)}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.live{background:#2e7d32}.status-dot.connecting{background:#f9a825}.status-dot.offline{background:#c0392b}@keyframes replay-draw{to{stroke-dashoffset:0}}@keyframes replay-appear{0%{opacity:0}to{opacity:1}}.replaying .obj .ink:not(text):not(polygon){stroke-dasharray:1;stroke-dashoffset:1;animation:replay-draw var(--rdur, .5s) ease var(--rd, 0s) forwards}.replaying .obj polygon.ink,.replaying .obj text.ink,.replaying .text-obj,.replaying .code-obj,.replaying .fill-obj,.replaying .img-obj{animation:replay-appear .3s ease both;animation-delay:calc(var(--rd, 0s) + var(--rdur, .5s) * .55)}.help-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#14182047;display:flex;align-items:center;justify-content:center;animation:help-fade .16s ease}@keyframes help-fade{0%{opacity:0}}.help-panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;box-shadow:0 18px 60px #1a1a1738,0 2px 8px #1a1a1714;padding:16px 20px 18px;max-width:720px;width:calc(100vw - 48px);max-height:calc(100vh - 96px);overflow-y:auto;animation:help-pop .18s ease}@keyframes help-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.help-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.help-title{font:400 22px var(--hand-font);color:var(--text)}.help-close{border:none;background:none;cursor:pointer;font:400 20px var(--ui-font);color:var(--muted);line-height:1;padding:2px 8px;border-radius:7px;transition:background .14s ease,color .14s ease}.help-close:hover{background:var(--accent-soft);color:var(--text)}.help-cols{display:grid;grid-template-columns:1fr 1fr;gap:4px 28px}@media (max-width: 640px){.help-cols{grid-template-columns:1fr}}.help-group{break-inside:avoid;margin-bottom:10px}.help-group-title{font:600 10.5px var(--ui-font);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:6px 0}.help-row{display:flex;align-items:baseline;gap:10px;padding:2.5px 0}.help-keys{display:inline-flex;gap:3px;flex:0 0 118px;justify-content:flex-end}.help-desc{font:400 12.5px var(--ui-font);color:var(--text)}.helpp{cursor:pointer;justify-content:center;min-width:30px;min-height:30px;font:600 13px var(--mono);color:var(--muted);transition:color .14s ease,border-color .14s ease}.helpp:hover,.helpp[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.kbd{font:500 10.5px var(--mono);color:var(--text);background:var(--accent-soft);border:1px solid var(--panel-border);border-radius:5px;padding:1.5px 5px;white-space:nowrap}.help-tour{display:block;width:100%;margin-top:12px;padding:8px 10px;border:1px dashed var(--panel-border);border-radius:9px;background:none;cursor:pointer;font:500 12px var(--ui-font);color:var(--accent);text-align:center;transition:border-color .15s ease,background .15s ease}.help-tour:hover{border-color:var(--accent);background:var(--accent-soft)}.tour-card{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:50;width:340px;max-width:calc(100vw - 32px);background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;box-shadow:0 10px 32px #1a1a1729,0 1px 3px #1a1a1714;padding:12px 14px 10px;animation:help-pop .18s ease}.tour-body{animation:pop-in .18s ease;min-height:44px}.tour-title{display:flex;align-items:center;gap:7px;font:400 17px var(--hand-font);color:var(--text)}.tour-check{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--accent);color:var(--panel);font:700 11px var(--ui-font);animation:pop-in .18s ease}.tour-text{margin-top:3px;font:400 12px var(--ui-font);color:var(--muted);line-height:1.45}.tour-foot{display:flex;align-items:center;justify-content:space-between;margin-top:9px}.tour-dots{display:inline-flex;gap:5px}.tour-dot{width:6px;height:6px;border-radius:50%;background:var(--panel-border);transition:background .2s ease,transform .2s ease}.tour-dot.now{background:var(--accent);transform:scale(1.25);animation:tour-now 1.4s ease infinite}.tour-dot.filled{background:var(--accent)}@keyframes tour-now{50%{opacity:.45}}.tour-btn{border:1px solid var(--panel-border);border-radius:999px;background:none;cursor:pointer;font:500 11px var(--ui-font);color:var(--muted);padding:4px 11px;transition:color .15s ease,border-color .15s ease,background .15s ease}.tour-btn:hover{color:var(--text);border-color:var(--accent)}.tour-btn.primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}.tour-btn.primary:hover{color:var(--panel);filter:brightness(1.08)}.tour-close{position:absolute;top:6px;right:8px;border:none;background:none;cursor:pointer;font:400 16px var(--ui-font);color:var(--muted);line-height:1;padding:2px 6px;border-radius:6px;transition:background .14s ease,color .14s ease}.tour-close:hover{background:var(--accent-soft);color:var(--text)}@media (max-width: 900px){.tour-card,.tour-card.touch{bottom:108px}}@media (max-width: 700px){.tour-card,.tour-card.touch{bottom:70px}}.tour-ring{position:fixed;z-index:50;border:2px solid var(--accent);border-radius:12px;pointer-events:none;animation:tour-pulse 1.6s ease infinite;transition:left .25s ease,top .25s ease,width .25s ease,height .25s ease}@keyframes tour-pulse{0%,to{box-shadow:0 0 0 0 var(--accent-soft);opacity:1}50%{box-shadow:0 0 0 6px var(--accent-soft);opacity:.65}}.ztour{border:none;background:none;cursor:pointer;font:400 14px var(--hand-font);color:var(--accent);text-shadow:var(--zhalo);text-decoration:underline dashed;text-underline-offset:4px;padding:2px 6px;transition:opacity .15s ease;opacity:.85}.ztour:hover{opacity:1}.konami{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;pointer-events:none;overflow:hidden}.konami-cell{position:absolute;top:-6vh;border:1.5px solid var(--muted);border-radius:2px;background:transparent;opacity:0;animation:konami-fall var(--kd, 2.4s) cubic-bezier(.4,.1,.7,1) var(--kdelay, 0s) forwards}.konami-cell.accent{border-color:var(--accent);background:var(--accent-soft)}@keyframes konami-fall{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:1}85%{opacity:1}to{transform:translateY(112vh) rotate(var(--krot, 360deg));opacity:0}}.konami-toast{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);font:400 30px var(--hand-font);color:var(--accent);text-shadow:0 2px 10px var(--glass);white-space:nowrap;animation:konami-toast 3.4s ease forwards}@keyframes konami-toast{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}12%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}20%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-52%) scale(1)}}@media (prefers-reduced-motion: reduce){.konami-cell{display:none}}.dev-btns{position:fixed;left:16px;bottom:16px;z-index:40;display:flex;gap:6px}.dev-btn{font:500 11px var(--mono);letter-spacing:.04em;color:var(--muted);background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--panel-border);border-radius:11px;padding:6px 10px;box-shadow:0 2px 10px #1a1a170d;cursor:pointer;transition:color .14s ease,border-color .14s ease}.dev-btn:hover{color:var(--accent);border-color:var(--accent)}.dev-view{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;overflow:auto;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease}.dev-view.show{opacity:1;visibility:visible;pointer-events:auto}.dev-og{display:grid;place-items:center;padding:24px;background:#141412c7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dev-og-inner{width:min(480px,100%);display:grid;gap:14px}.dev-og-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 12px 40px #00000059}.dev-og-img{display:block;width:100%;aspect-ratio:1200 / 630;object-fit:cover;background:#eee}.dev-og-body{padding:12px 14px 14px;display:grid;gap:3px}.dev-og-site{font:500 11px var(--mono);color:#666}.dev-og-title{font:600 15px var(--ui-font);color:#15c;line-height:1.3}.dev-og-desc{font:400 12.5px var(--ui-font);color:#444;line-height:1.45}.dev-og-domain{font:400 11px var(--mono);color:#999;margin-top:4px}.dev-og-tags{margin:0;display:grid;gap:4px}.dev-og-tags>div{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:baseline}.dev-og-tags dt{font:600 10px var(--mono);color:#ffffff8c;letter-spacing:.04em}.dev-og-tags dd{margin:0;font:400 11px var(--mono);color:#ffffffe6;word-break:break-word}.dev-og-note{font:400 10.5px var(--mono);color:#ffffff80;line-height:1.4}.devfeat{position:fixed;left:16px;bottom:52px;z-index:41}.devfeat-btn{position:relative}.devfeat-panel{position:absolute;left:0;bottom:calc(100% + 8px);width:min(340px,78vw);max-height:min(64vh,520px);overflow-y:auto;background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;box-shadow:0 10px 34px #1a1a1729;padding:12px 13px;display:grid;gap:10px;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(6px);transition:opacity .16s ease,visibility .16s ease,transform .16s ease}.devfeat-panel.show{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.devfeat-h{font:600 12px var(--ui-font);color:var(--text)}.devfeat-h2{font:600 10px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--hint);margin-top:2px}.devfeat-empty{margin:0;font:400 12px var(--ui-font);color:var(--muted);line-height:1.45}.devfeat-current{border:1px solid var(--accent-soft);background:var(--accent-soft);border-radius:9px;padding:9px 10px;display:grid;gap:5px}.devfeat-current-h{display:flex;align-items:baseline;gap:8px;justify-content:space-between}.devfeat-tag{font:600 9px var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--accent)}.devfeat-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.devfeat-item{border:1px solid var(--panel-border);border-radius:9px;padding:9px 10px;display:grid;gap:5px}.devfeat-item.cur{border-color:var(--accent)}.devfeat-item-h{display:flex;align-items:baseline;gap:8px;justify-content:space-between}.devfeat-name{font:600 12px var(--mono);color:var(--text);word-break:break-word}.devfeat-summary{margin:0;font:400 12px var(--ui-font);color:var(--text);line-height:1.45}.devfeat-review{display:grid;gap:2px}.devfeat-review-k{font:600 9px var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--hint)}.devfeat-review p{margin:0;font:400 11.5px var(--ui-font);color:var(--muted);line-height:1.45}.devfeat-link{font:500 11px var(--mono);color:var(--accent);text-decoration:none;word-break:break-all}.devfeat-link:hover{text-decoration:underline}.devfeat-link.off{color:var(--hint)}.devfeat-badge{font:600 9px var(--mono);letter-spacing:.04em;text-transform:uppercase;padding:2px 6px;border-radius:999px;white-space:nowrap;border:1px solid var(--panel-border);color:var(--muted)}.devfeat-badge.review{color:#b26a00;border-color:#e8b877;background:#fbf1df}.devfeat-badge.ok{color:#1f7a4d;border-color:#8fd0af;background:#e7f6ee}.devfeat-badge.dev{color:var(--accent);border-color:var(--accent-soft)}.devfeat-badge.off{color:var(--hint)}
