:root{--ground:#eef0f4;--board:#fbfbfc;--surface:#ffffff;--surface-2:#f5f6f9;--line:#d8dce4;--line-soft:#e6e9ef;--grid:#c9cfda;--ink:#191c23;--text:#20242c;--text-2:#5c6472;--text-3:#8b93a2;--accent:#2f5d8c;--on-accent:#ffffff;--card:#ffffff;--card-line:#dfe3ea;--shadow-card:0 1px 2px rgba(20,26,38,.07),0 6px 18px rgba(20,26,38,.07);--shadow-bar:0 1px 3px rgba(20,26,38,.08),0 10px 30px rgba(20,26,38,.1)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#0e1015;--board:#14171e;--surface:#1a1d25;--surface-2:#212530;--line:#2e333f;--line-soft:#262b35;--grid:#2b303b;--ink:#e8ebf1;--text:#e2e6ee;--text-2:#a3abbb;--text-3:#767f90;--accent:#7fb0e0;--on-accent:#12141a;--card:#1d212a;--card-line:#333947;--shadow-card:0 1px 2px rgba(0,0,0,.5),0 6px 18px rgba(0,0,0,.4);--shadow-bar:0 1px 3px rgba(0,0,0,.5),0 10px 30px rgba(0,0,0,.45)}}:root[data-theme=dark]{--ground:#0e1015;--board:#14171e;--surface:#1a1d25;--surface-2:#212530;--line:#2e333f;--line-soft:#262b35;--grid:#2b303b;--ink:#e8ebf1;--text:#e2e6ee;--text-2:#a3abbb;--text-3:#767f90;--accent:#7fb0e0;--on-accent:#12141a;--card:#1d212a;--card-line:#333947;--shadow-card:0 1px 2px rgba(0,0,0,.5),0 6px 18px rgba(0,0,0,.4);--shadow-bar:0 1px 3px rgba(0,0,0,.5),0 10px 30px rgba(0,0,0,.45)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;overflow:hidden;background:var(--ground);color:var(--text);font-family:IBM Plex Sans JP,Hiragino Sans,Yu Gothic UI,system-ui,sans-serif;font-size:15px;-webkit-text-size-adjust:100%;overscroll-behavior:none}.app{height:100vh;height:100dvh;min-height:420px;display:flex;flex-direction:column}.bar{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;padding:calc(8px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 8px calc(12px + env(safe-area-inset-left));background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow-bar);z-index:20}.grp{display:flex;gap:5px;align-items:center}.grp+.grp{padding-left:12px;border-left:1px solid var(--line-soft)}.glabel{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}button.btn{font:inherit;font-size:13px;line-height:1;white-space:nowrap;padding:8px 11px;border-radius:8px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);cursor:pointer;transition:background .12s,border-color .12s,color .12s}button.btn:hover{border-color:var(--accent);color:var(--accent)}button.btn[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}button.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.btn:disabled{opacity:.35;cursor:default}button.btn:disabled:hover{border-color:var(--line);color:var(--text)}#btnUndo,#btnRedo{font-size:15px;padding:7px 12px;line-height:1}.swatch{width:26px;height:26px;border-radius:7px;border:1px solid var(--line);cursor:pointer;padding:0;background:none}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--accent)}.rng{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-2)}.rng input{accent-color:var(--accent);width:84px}.rng output{font-family:IBM Plex Mono,monospace;font-size:12px;min-width:26px;color:var(--text);font-variant-numeric:tabular-nums}.spacer{flex:1 1 auto}.zoomout{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums}.stage{position:relative;flex:1 1 auto;min-height:260px;background-color:var(--board);background-image:radial-gradient(circle,var(--grid) 1.1px,transparent 1.1px);overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}#cDry{z-index:3}#cPred{z-index:4}#cWet{z-index:5}.cardLayer{position:absolute;inset:0;transform-origin:0 0;z-index:2;pointer-events:none}.cardLayer.pick{pointer-events:none}.cardLayer.pick .card{pointer-events:auto}.card{position:absolute;background:var(--card);color:var(--text);border:1px solid var(--card-line);border-radius:18px;box-shadow:var(--shadow-card);overflow:visible;display:flex;flex-direction:column}.card.sel{outline:calc(2px * var(--iz)) solid var(--accent);outline-offset:calc(2px * var(--iz))}.card .body{flex:1 1 auto;overflow:hidden;padding:34px;border-radius:16px}.card .body:focus{outline:none}.card .handle{position:absolute;right:calc(-13px * var(--iz));bottom:calc(-13px * var(--iz));width:calc(24px * var(--iz));height:calc(24px * var(--iz));background:var(--accent);border:calc(3px * var(--iz)) solid var(--card);border-radius:calc(6px * var(--iz));display:none;cursor:nwse-resize;touch-action:none}.card .handle:after,.card .edgeR:after,.card .edgeB:after{content:"";position:absolute;inset:calc(-16px * var(--iz))}.card .edgeR,.card .edgeB{position:absolute;display:none;background:var(--accent);opacity:.9;border-radius:calc(4px * var(--iz));touch-action:none}.card .edgeR{right:calc(-6px * var(--iz));top:22%;height:56%;width:calc(10px * var(--iz));cursor:ew-resize}.card .edgeB{bottom:calc(-6px * var(--iz));left:22%;width:56%;height:calc(10px * var(--iz));cursor:ns-resize}.card.sel .edgeR,.card.sel .edgeB{display:block}.card .del{position:absolute;right:calc(-11px * var(--iz));top:calc(-11px * var(--iz));width:calc(24px * var(--iz));height:calc(24px * var(--iz));border-radius:50%;background:var(--card);border:calc(1px * var(--iz)) solid var(--card-line);color:var(--text-2);display:none;align-items:center;justify-content:center;font-size:calc(13px * var(--iz));line-height:1;cursor:pointer;padding:0;touch-action:none}.card .del:after{content:"";position:absolute;inset:calc(-10px * var(--iz))}.card.sel .handle,.card.sel .del{display:flex}.c-text .body{font-size:60px;line-height:1.5;white-space:pre-wrap;word-break:break-word;overflow-y:auto}.c-text .body:empty:before{content:attr(data-ph);color:var(--text-3)}.c-todo .body{display:flex;flex-direction:column;gap:22px;overflow-y:auto}.c-todo .item{display:flex;gap:28px;align-items:flex-start}.c-todo .box{flex:0 0 auto;margin-top:10px;width:56px;height:56px;border:4px solid var(--text-3);border-radius:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--on-accent);font-size:36px;line-height:1}.c-todo .item.done .box{background:var(--accent);border-color:var(--accent)}.c-todo .item.done .txt{color:var(--text-3);text-decoration:line-through}.c-todo .txt{flex:1 1 auto;font-size:55px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.c-todo .txt:focus{outline:none}.c-todo .add{align-self:flex-start;background:none;border:0;cursor:pointer;padding:10px 0;color:var(--text-3);font:inherit;font-size:44px}.c-todo .add:hover{color:var(--accent)}.c-image{background:var(--surface-2)}.c-image .body{padding:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.c-image img{width:100%;height:100%;object-fit:contain;display:block;-webkit-user-drag:none}.empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;text-align:center;color:var(--text-3);font-size:13.5px;line-height:1.9;pointer-events:none;max-width:78vw}.empty b{color:var(--text-2);font-weight:500}.toast{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:7px 15px;font-size:12.5px;color:var(--text-2);box-shadow:var(--shadow-bar);opacity:0;transition:opacity .2s;pointer-events:none}.toast.on{opacity:1}.boardName{font:inherit;font-size:13.5px;font-weight:500;color:var(--text);background:none;border:1px solid transparent;border-radius:7px;padding:6px 9px;max-width:190px;min-width:60px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.boardName:hover{border-color:var(--line)}.boardName:focus{outline:none;border-color:var(--accent);background:var(--surface-2)}.saveState{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--text-3);white-space:nowrap;min-width:74px}.saveState.warn{color:#8a6216}:root[data-theme=dark] .saveState.warn{color:#dcb469}.sheet{position:absolute;inset:0;z-index:40;display:none;background:#10141c6b;backdrop-filter:blur(2px);align-items:flex-start;justify-content:center;padding:6vh 16px}.sheet.on{display:flex}.sheetBox{width:min(440px,100%);max-height:82vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-bar);overflow:hidden}.sheetHead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 15px;border-bottom:1px solid var(--line-soft)}.sheetHead h2{margin:0;font-size:14px;font-weight:600}.sheetList{overflow-y:auto;flex:1 1 auto}.brow{display:flex;align-items:center;gap:10px;padding:11px 15px;border-bottom:1px solid var(--line-soft);cursor:pointer}.brow:last-child{border-bottom:0}.brow:hover,.brow.cur{background:var(--surface-2)}.brow .nm{flex:1 1 auto;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brow .cur-tag{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.1em;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:1px 7px}.brow .meta{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--text-3);white-space:nowrap}.brow .rm{background:none;border:0;color:var(--text-3);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:6px}.brow .rm:hover{color:#c2453d;background:var(--surface)}.sheetFoot{display:flex;gap:8px;flex-wrap:wrap;padding:12px 15px;border-top:1px solid var(--line-soft)}.sheetNote{padding:0 15px 13px;font-size:12px;color:var(--text-3);line-height:1.7}
