:root{--bg:#f4f2ec;--surface:#fff;--surface-2:#faf9f6;--ink:#1d1c1a;--ink-2:#1d1c1aa8;--muted:#1d1c1a6b;--faint:#1d1c1a42;--line:#1d1c1a17;--line-strong:#1d1c1a29;--hover:#1d1c1a0e;--active:#1d1c1a1a;--grid:#1d1c1a26;--link:#1d1c1a61;--accent:#2f6fd6;--accent-ink:#fff;--danger:#d23f36;--mark:#ffcf4080;--glass:#ffffffc2;--glass-edge:#ffffffb3;--glass-line:#1d1c1a12;--sticky-text:#2b2a27;--shadow-sm:0 1px 2px #14120e0f;--shadow-md:0 1px 2px #14120e0d, 0 6px 18px -6px #14120e24;--shadow-lg:0 1px 1px #14120e0a, 0 10px 30px -8px #14120e2e, 0 24px 60px -20px #14120e29;--card-shadow:0 .5px 0 #14120e0f, 0 2px 6px -2px #14120e14, 0 12px 28px -12px #14120e2e;--font-ui:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", system-ui, sans-serif;--font-serif:ui-serif, "New York", "Iowan Old Style", Georgia, serif;--font-round:ui-rounded, "SF Pro Rounded", -apple-system, system-ui, sans-serif;--ease-spring:cubic-bezier(.2, .9, .25, 1.15);--ease-out:cubic-bezier(.16, 1, .3, 1);--safe-top:max(12px, env(safe-area-inset-top));--safe-bottom:max(14px, env(safe-area-inset-bottom));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#161513;--surface:#23221f;--surface-2:#2a2926;--ink:#ecebe6;--ink-2:#ecebe6b3;--muted:#ecebe670;--faint:#ecebe642;--line:#ecebe617;--line-strong:#ecebe629;--hover:#ecebe612;--active:#ecebe621;--grid:#ecebe61f;--link:#ecebe666;--accent:#6ea1ff;--accent-ink:#0d1626;--danger:#ff6b61;--mark:#ffcf4052;--glass:#262522c7;--glass-edge:#ffffff14;--glass-line:#0006;--sticky-text:#f2f0ea;--shadow-md:0 1px 2px #0000004d, 0 6px 18px -6px #00000080;--shadow-lg:0 1px 1px #0000004d, 0 12px 32px -8px #0000008c, 0 24px 60px -20px #00000080;--card-shadow:0 0 0 .5px #ffffff0a, 0 2px 6px -2px #0006, 0 14px 30px -12px #0009}}*{box-sizing:border-box}html,body,#app{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{background:var(--bg);color:var(--ink);font:15px/1.4 var(--font-ui);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility}button{font:inherit;color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:0;margin:0;padding:0}input,textarea,select{font:inherit;color:inherit}kbd{font:500 12px var(--font-ui);color:var(--muted);margin-left:auto}mark{background:var(--mark);color:inherit;border-radius:3px;padding:0 1px}#focus-proxy{opacity:0;pointer-events:none;width:1px;height:1px;font-size:16px;position:fixed;top:0;left:0}.splash{background:var(--bg);position:fixed;inset:0}.board-screen{position:fixed;inset:0}.canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:default;position:absolute;inset:0;overflow:hidden}.canvas[data-tool=pen],.canvas[data-tool=highlighter]{cursor:crosshair}.canvas[data-tool=eraser]{cursor:cell}.canvas[data-tool=lasso]{cursor:crosshair}.world{transform-origin:0 0;width:0;height:0;position:absolute;top:0;left:0}.world.above{pointer-events:none;z-index:3}.ink-host{pointer-events:none;z-index:2;position:absolute;inset:0}.ink-layer{pointer-events:none;position:absolute;inset:0}.node{animation:node-in .28s var(--ease-spring) both;position:absolute}@keyframes node-in{0%{opacity:0;transform:scale(.94)translateY(4px)}}.node>*{transition:transform .22s var(--ease-spring), box-shadow .22s var(--ease-out), filter .22s var(--ease-out)}.node.is-lifted{z-index:1}.node.is-lifted>.card,.node.is-lifted>.sticky,.node.is-lifted>.image{transform:scale(1.025)rotate(-.4deg);box-shadow:0 2px 4px #14120e14,0 24px 48px -16px #14120e59}.node.is-lifted>.shape{filter:drop-shadow(0 16px 20px #14120e2e);transform:scale(1.03)}.node.is-dimmed{opacity:.2;filter:saturate(.3);transition:opacity .25s,filter .25s}.node.is-flashing>*{animation:flash 1.4s var(--ease-out)}@keyframes flash{0%,60%{box-shadow:0 0 0 4px var(--accent), 0 0 40px 6px color-mix(in srgb, var(--accent) 40%, transparent)}}.node-ink{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}[data-edit]{resize:none;-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;background:0 0;border:0;outline:none;width:100%;margin:0;padding:0;overflow:hidden}[data-edit]::placeholder{color:var(--faint)}.card{width:100%;min-height:inherit;background:var(--surface);box-shadow:var(--card-shadow);border-radius:16px;flex-direction:column;display:flex;position:relative;overflow:hidden}.card:before{content:"";background:var(--card-accent);height:4px;position:absolute;inset:0 0 auto}.card-head{align-items:center;gap:12px;padding:16px 12px 12px 16px;display:flex}.card-glyph{width:34px;height:34px;color:var(--card-accent);background:color-mix(in srgb, var(--card-accent) 13%, transparent);border-radius:11px;flex:none;place-items:center;display:grid}.card-titles{flex-direction:column;flex:1;min-width:0;display:flex}.card-kind{letter-spacing:.08em;text-transform:uppercase;color:var(--card-accent);font-size:10.5px;font-weight:650;line-height:1.2}.card-title{font:600 21px/1.25 var(--font-serif);letter-spacing:-.01em;color:var(--ink);text-overflow:ellipsis}.card-collapse{width:30px;height:30px;color:var(--muted);border-radius:50%;flex:none;align-self:flex-start;place-items:center;transition:background .15s;display:grid}.card-collapse:hover{background:var(--hover)}.card-body{flex-direction:column;flex:1;gap:11px;padding:2px 16px 16px;display:flex}.card.is-collapsed .card-head{padding-bottom:14px}.field{flex-direction:column;gap:2px;display:flex}.field-label{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:600}.field:not(.has-value) .field-label{color:var(--faint)}.field-input{color:var(--ink);font-size:14.5px;line-height:1.45}.field-options{flex-wrap:wrap;gap:6px;padding-top:3px;display:flex}.chip{background:var(--hover);height:28px;color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:0 11px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:inline-flex}.chip.is-on{background:var(--card-accent,var(--accent));color:#fff}.chip-count{opacity:.6;font-size:11.5px}.card-tags{flex-wrap:wrap;align-items:center;gap:6px;padding-top:2px;display:flex}.tag{height:24px;color:var(--tag-color,var(--card-accent));background:color-mix(in srgb, var(--tag-color,var(--card-accent)) 12%, transparent);border-radius:999px;align-items:center;gap:2px;padding:0 9px;font-size:12.5px;font-weight:550;display:inline-flex}.tag-remove{opacity:.7;border-radius:50%;place-items:center;width:18px;height:18px;margin-right:-5px;display:grid}.tag-input{width:72px;height:24px;color:var(--ink-2);font-size:12.5px}.field-image-frame{aspect-ratio:4/3;background:var(--hover);border-radius:12px;position:relative;overflow:hidden}.field-image-frame img{object-fit:cover;width:100%;height:100%;display:block}.field-image-remove{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000080;border-radius:50%;place-items:center;width:26px;height:26px;display:grid;position:absolute;top:8px;right:8px}.field-image-add{border:1.5px dashed var(--line-strong);width:100%;height:64px;color:var(--muted);border-radius:12px;justify-content:center;align-items:center;gap:8px;font-size:13.5px;font-weight:500;display:flex}.suggest-row{animation:suggest-in .22s var(--ease-out) both;flex-wrap:wrap;gap:5px;padding:6px 0 2px;display:flex}.suggest-title{margin-top:-4px;padding:0 16px 10px 62px}@keyframes suggest-in{0%{opacity:0;transform:translateY(-3px)}}.suggest-chip{height:28px;color:var(--ink-2);background:var(--hover);transition:background .15s, color .15s, transform .15s var(--ease-spring);border-radius:999px;align-items:center;gap:5px;padding:0 11px;font-size:13px;font-weight:500;display:inline-flex}.suggest-chip:active{transform:scale(.94)}.suggest-chip:hover{background:var(--active);color:var(--ink)}.suggest-chip.is-on{color:#fff;background:var(--card-accent,var(--accent))}.suggest-chip.is-more{color:var(--muted);box-shadow:inset 0 0 0 1px var(--line-strong);background:0 0}.suggest-chip.is-save{color:var(--card-accent,var(--accent));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--card-accent,var(--accent)) 50%, transparent);background:0 0}.suggest-chip.is-dice{color:var(--card-accent,var(--accent));background:color-mix(in srgb, var(--card-accent,var(--accent)) 12%, transparent);font-weight:600}.suggest-chip.is-tag{color:var(--tag-color);background:color-mix(in srgb, var(--tag-color) 12%, transparent)}.field-adds{flex-wrap:wrap;gap:5px;animation:.2s both fade-in;display:flex}.add-chip{height:26px;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line-strong);border-radius:999px;padding:0 10px;font-size:12.5px;font-weight:550;transition:color .15s,box-shadow .15s,background .15s}.add-chip:hover{color:var(--card-accent);box-shadow:inset 0 0 0 1px var(--card-accent);background:color-mix(in srgb, var(--card-accent) 7%, transparent)}.card-tags:empty,.card-body:empty,.canvas[data-zoom-level=far] .card-body{display:none}.canvas[data-zoom-level=far] .card{min-height:0!important}.canvas[data-zoom-level=far] .card-title{font-size:26px}.sticky{border-radius:5px 5px 14px;flex-direction:column;width:100%;height:100%;padding:18px;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 1px #14120e0d,0 12px 22px -12px #14120e52,inset 0 -18px 30px -24px #0000001f}.sticky-text{font-family:var(--font-round);text-align:center;color:var(--sticky-text);max-height:100%;margin-block:auto;font-weight:500;line-height:1.28}.sticky-text::placeholder{color:color-mix(in srgb, var(--sticky-text) 35%, transparent)}.text-node{font-weight:500;line-height:1.3;display:block}.text-node.text-s{font-weight:400;line-height:1.5}.text-node.text-l,.text-node.text-xl{font-family:var(--font-serif);letter-spacing:-.015em;font-weight:600;line-height:1.15}.shape{width:100%;height:100%;position:relative}.shape-svg{filter:drop-shadow(0 6px 10px #14120e1a);position:absolute;inset:0;overflow:visible}.shape-label{flex-direction:column;display:flex;position:absolute;inset:14% 12%;overflow:hidden}.shape-text{text-align:center;max-height:100%;margin-block:auto;font-size:17px;font-weight:550;line-height:1.3}.image{width:100%;height:100%;box-shadow:var(--card-shadow);background:var(--surface);border-radius:12px;overflow:hidden}.image img{object-fit:cover;-webkit-user-drag:none;width:100%;height:100%;display:block}.img-loading{background:linear-gradient(100deg, var(--hover) 30%, var(--active) 50%, var(--hover) 70%);background-size:300% 100%;width:100%;height:100%;min-height:60px;animation:1.4s linear infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.frame{background:color-mix(in srgb, var(--frame-accent) 5%, transparent);border:1.5px solid color-mix(in srgb, var(--frame-accent) 22%, transparent);border-radius:22px;width:100%;height:100%;position:relative}.frame-label{width:70%;margin-bottom:8px;position:absolute;bottom:100%;left:6px}.frame-title{font:650 15px var(--font-ui);letter-spacing:.01em;color:var(--frame-accent)}.links,.link-draft{pointer-events:none;width:1px;height:1px;position:absolute;top:0;left:0;overflow:visible}.link-line{fill:none;stroke:var(--link);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:stroke .15s}.link-line.is-dashed{stroke-dasharray:7 7}.link-hit{fill:none;stroke:#0000;stroke-width:calc(22px * var(--iz,1));pointer-events:stroke;cursor:pointer}.link.is-selected .link-line{stroke:var(--accent);stroke-width:2.5px}.link-label{pointer-events:all;cursor:pointer}.link-label rect{fill:var(--surface);stroke:var(--line-strong);stroke-width:1px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 2px 4px #0000000f)}.link-label text{font:550 12.5px var(--font-ui);fill:var(--ink-2)}.link.is-selected .link-label rect{stroke:var(--accent)}.link-draft path{fill:none;stroke:var(--accent);stroke-width:calc(2px * var(--iz,1));stroke-dasharray:calc(6px * var(--iz,1)) calc(5px * var(--iz,1));stroke-linecap:round}.link-draft circle{fill:var(--accent);r:calc(5px * var(--iz,1))}.sel-box{pointer-events:none;position:absolute}.sel-box:before{content:"";inset:calc(-5px * var(--iz,1));border:calc(1.75px * var(--iz,1)) solid var(--accent);border-radius:calc(12px * var(--iz,1));pointer-events:none;position:absolute}.sel-box.is-member:before{border-width:calc(1.25px * var(--iz,1));opacity:.55}.sel-box.is-group:before{inset:calc(-10px * var(--iz,1));opacity:.7;border-style:dashed}.sel-box.is-target:before{border-width:calc(3px * var(--iz,1));box-shadow:0 0 0 calc(6px * var(--iz,1)) color-mix(in srgb, var(--accent) 22%, transparent)}.handle{pointer-events:auto;position:absolute}.handle.resize{width:calc(15px * var(--iz,1));height:calc(15px * var(--iz,1));margin:calc(-7.5px * var(--iz,1));border:calc(1.75px * var(--iz,1)) solid var(--accent);box-shadow:0 calc(1px * var(--iz,1)) calc(4px * var(--iz,1)) #0003;background:#fff;border-radius:50%}.handle:after{content:"";inset:calc(-12px * var(--iz,1));position:absolute}.handle.resize.nw{left:calc(-5px * var(--iz,1));top:calc(-5px * var(--iz,1));cursor:nwse-resize}.handle.resize.ne{right:calc(-5px * var(--iz,1));top:calc(-5px * var(--iz,1));cursor:nesw-resize}.handle.resize.sw{left:calc(-5px * var(--iz,1));bottom:calc(-5px * var(--iz,1));cursor:nesw-resize}.handle.resize.se{right:calc(-5px * var(--iz,1));bottom:calc(-5px * var(--iz,1));cursor:nwse-resize}.handle.link{width:calc(22px * var(--iz,1));height:calc(22px * var(--iz,1));margin:calc(-11px * var(--iz,1));cursor:crosshair;animation:handle-in .25s var(--ease-spring) both;place-items:center;display:grid}.handle.link span{width:calc(12px * var(--iz,1));height:calc(12px * var(--iz,1));background:var(--accent);box-shadow:0 0 0 calc(3px * var(--iz,1)) color-mix(in srgb, var(--accent) 22%, transparent), 0 calc(1px * var(--iz,1)) calc(4px * var(--iz,1)) #0003;transition:transform .15s var(--ease-spring);border-radius:50%}.handle.link:hover span{transform:scale(1.3)}.handle.link.n{left:50%;top:calc(-28px * var(--iz,1))}.handle.link.s{left:50%;bottom:calc(-28px * var(--iz,1));margin-bottom:calc(-11px * var(--iz,1));margin-top:0}.handle.link.e{top:50%;right:calc(-28px * var(--iz,1));margin-right:calc(-11px * var(--iz,1));margin-left:0}.handle.link.w{top:50%;left:calc(-28px * var(--iz,1))}@keyframes handle-in{0%{opacity:0;transform:scale(.4)}}.glass{background:var(--glass);-webkit-backdrop-filter:blur(28px)saturate(1.7);backdrop-filter:blur(28px)saturate(1.7);box-shadow:inset 0 .5px 0 var(--glass-edge), 0 0 0 .5px var(--glass-line), var(--shadow-lg)}.bar,.dock,.zoom,.context-bar,.popover,.side-panel,.install,.toast,.modal{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.bar{top:var(--safe-top);z-index:10;border-radius:18px;align-items:center;gap:2px;padding:4px;display:flex;position:absolute}.bar-left{max-width:calc(100% - 290px);left:12px}.bar-right{right:12px}.bar-sep,.dock-sep{background:var(--line-strong);flex:none;width:1px;height:24px;margin:0 5px}.project-name{font:600 17px var(--font-serif);letter-spacing:-.01em;text-overflow:ellipsis;-webkit-user-select:text;user-select:text;background:0 0;border:0;border-radius:10px;outline:none;flex:auto;width:260px;min-width:60px;height:44px;padding:0 12px 0 6px}.project-name:focus{background:var(--hover)}.icon-btn{width:44px;height:44px;color:var(--ink-2);transition:background .15s, color .15s, transform .15s var(--ease-spring);border-radius:13px;flex:none;place-items:center;display:inline-grid;position:relative}.icon-btn:hover:not(:disabled){background:var(--hover);color:var(--ink)}.icon-btn:active:not(:disabled){transform:scale(.92)}.icon-btn.is-active{background:var(--active);color:var(--ink)}.icon-btn:disabled{opacity:.28;cursor:default}.icon-btn.is-danger:hover:not(:disabled){color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent)}.badge{background:var(--accent);min-width:16px;height:16px;color:var(--accent-ink);border-radius:8px;padding:0 4px;font-size:10.5px;font-weight:700;line-height:16px;position:absolute;top:6px;right:6px}.dock-wrap{left:50%;bottom:var(--safe-bottom);z-index:12;max-width:calc(100% - 24px);position:absolute;transform:translate(-50%)}.dock{scrollbar-width:none;border-radius:24px;align-items:center;gap:2px;padding:6px;display:flex;overflow-x:auto}.dock::-webkit-scrollbar{display:none}.insert-btn{color:#fff;background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 88%, #fff), var(--accent));width:46px;height:46px;box-shadow:0 6px 16px -4px color-mix(in srgb, var(--accent) 60%, transparent), inset 0 1px 0 #ffffff4d;transition:transform .3s var(--ease-spring);border-radius:50%;flex:none;place-items:center;display:grid}.insert-btn.is-open{transform:rotate(45deg)}.insert-btn:active{transform:scale(.92)}.tool-btn.is-active{color:var(--accent);background:color-mix(in srgb, var(--accent) 13%, transparent)}.dock-ink{opacity:0;max-width:0;transition:max-width .35s var(--ease-out), opacity .2s;align-items:center;gap:1px;display:flex;overflow:hidden}.dock-ink.is-open{opacity:1;max-width:560px}.swatch{border-radius:10px;flex:none;place-items:center;width:36px;height:40px;display:grid}.swatch span{width:24px;height:24px;transition:transform .2s var(--ease-spring);border-radius:50%;box-shadow:inset 0 0 0 1px #0000001f}.swatch:active span{transform:scale(.85)}.swatch.is-active span{box-shadow:inset 0 0 0 1px #0000001f, 0 0 0 2.5px var(--surface), 0 0 0 4.5px var(--accent)}.size-btn{width:36px;height:40px;color:var(--ink-2);border-radius:10px;flex:none;place-items:center;display:grid}.size-btn span{background:currentColor;border-radius:50%}.size-btn.is-active{background:var(--active);color:var(--ink)}.dock-wrap{transition:left .35s var(--ease-spring), right .35s var(--ease-spring), top .35s var(--ease-spring), bottom .35s var(--ease-spring)}.dock-wrap.is-dragging{z-index:40;transition:none}.dock-wrap.is-dragging .dock{box-shadow:inset 0 .5px 0 var(--glass-edge), 0 0 0 .5px var(--glass-line), 0 30px 60px -20px #0006;transform:scale(1.03)}.dock{transition:transform .2s var(--ease-spring)}.dock-grip{width:22px;height:44px;color:var(--faint);cursor:grab;touch-action:none;border-radius:8px;flex:none;place-items:center;display:grid}.dock-grip:hover{color:var(--muted);background:var(--hover)}.dock-wrap.is-dragging .dock-grip{cursor:grabbing}.dock-target{z-index:39;background:color-mix(in srgb, var(--accent) 12%, transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--accent) 45%, transparent);pointer-events:none;border-radius:26px;animation:.15s both fade-in;position:fixed}.dock-target-bottom{left:20%;right:20%;bottom:calc(var(--safe-bottom) - 4px);height:66px}.dock-target-left,.dock-target-right{width:66px;top:22%;bottom:22%}.dock-target-left{left:max(8px, env(safe-area-inset-left))}.dock-target-right{right:max(8px, env(safe-area-inset-right))}.dock-wrap[data-side=left],.dock-wrap[data-side=right]{max-width:none;top:50%;bottom:auto;transform:translateY(-50%)}.dock-wrap[data-side=left]{left:max(12px, env(safe-area-inset-left))}.dock-wrap[data-side=right]{left:auto;right:max(12px, env(safe-area-inset-right))}[data-side=left] .dock,[data-side=right] .dock{max-height:calc(100vh - 2 * (var(--safe-top) + 70px));flex-direction:column;overflow:hidden auto}[data-side=left] .dock-grip,[data-side=right] .dock-grip{width:44px;height:22px}[data-side=left] .dock-grip svg,[data-side=right] .dock-grip svg{transform:rotate(90deg)}[data-side=left] .dock-sep,[data-side=right] .dock-sep{width:24px;height:1px;margin:5px 0}[data-side=left] .dock-ink,[data-side=right] .dock-ink{max-width:none;max-height:0;transition:max-height .35s var(--ease-out), opacity .2s;flex-direction:column}[data-side=left] .dock-ink.is-open,[data-side=right] .dock-ink.is-open{max-height:560px}[data-side=left] .swatch,[data-side=right] .swatch,[data-side=left] .size-btn,[data-side=right] .size-btn{width:44px;height:32px}[data-side=left] .tool-btn,[data-side=right] .tool-btn{height:40px}[data-side=left] .insert-sheet,[data-side=right] .insert-sheet{--sheet-base:translateY(-50%);max-height:min(84vh,680px);top:50%;bottom:auto}[data-side=left] .insert-sheet{left:calc(100% + 12px)}[data-side=right] .insert-sheet{left:auto;right:calc(100% + 12px)}.board-screen[data-dock=right] .zoom{left:12px;right:auto}.menu-segmented{margin:2px 8px 8px}.menu-segmented button{flex:1;font-size:13px}.zoom-grid{width:40px;height:40px;color:var(--ink-2);border-radius:11px;place-items:center;transition:background .15s,color .15s;display:grid}.zoom-grid:hover{background:var(--hover)}.zoom-grid.is-on{color:var(--accent);background:color-mix(in srgb, var(--accent) 13%, transparent)}.zoom-sep{background:var(--line-strong);width:1px;height:22px;margin:0 4px}.menu-switch kbd{margin-left:auto;margin-right:10px}.switch{background:var(--active);border-radius:13px;flex:none;width:42px;height:26px;transition:background .2s;position:relative}.switch span{width:20px;height:20px;transition:transform .25s var(--ease-spring);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch.is-on{background:#34c759}.switch.is-on span{transform:translate(16px)}.zoom{right:12px;bottom:var(--safe-bottom);z-index:10;border-radius:16px;align-items:center;padding:4px;display:flex;position:absolute}.zoom-step{width:38px;height:40px;color:var(--ink-2);border-radius:11px;font-size:21px;font-weight:300}.zoom-step:hover,.zoom-value:hover{background:var(--hover)}.zoom-value{font-variant-numeric:tabular-nums;min-width:66px;height:40px;color:var(--ink-2);border-radius:11px;justify-content:center;align-items:center;gap:3px;font-size:13.5px;font-weight:550;display:inline-flex}.popover{z-index:30;animation:pop-in .22s var(--ease-out) both}@keyframes pop-in{0%{opacity:0;transform:translateY(6px)scale(.97)}}.menu{background:var(--glass);-webkit-backdrop-filter:blur(28px)saturate(1.7);backdrop-filter:blur(28px)saturate(1.7);min-width:250px;box-shadow:inset 0 .5px 0 var(--glass-edge), 0 0 0 .5px var(--glass-line), var(--shadow-lg);border-radius:18px;flex-direction:column;padding:6px;display:flex;position:fixed}.board-menu,.tag-panel{top:calc(var(--safe-top) + 62px);transform-origin:100% 0;right:12px}.tag-panel{width:300px;right:64px}.zoom-menu{transform-origin:100% 100%;position:absolute;bottom:calc(100% + 10px);right:0}.menu-title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;padding:10px 12px 6px;font-size:11px;font-weight:650;display:flex}.menu-item{text-align:left;min-height:44px;color:var(--ink);border-radius:11px;align-items:center;gap:12px;padding:0 12px;font-size:15px;display:flex}.menu-item svg{color:var(--ink-2)}.menu-item:hover:not(:disabled){background:var(--hover)}.menu-item:disabled{opacity:.35;cursor:default}.menu-item.is-danger,.menu-item.is-danger svg{color:var(--danger)}.menu-glyph{width:18px;color:var(--ink-2);text-align:center;font-size:11px;font-weight:700}.menu-sep{background:var(--line);height:1px;margin:6px 8px}.menu-busy{color:var(--muted);padding:8px 12px;font-size:13px}.link-btn{color:var(--accent);letter-spacing:0;text-transform:none;font-size:12px;font-weight:600}.bg-picker{grid-template-columns:repeat(4,1fr);gap:6px;padding:2px 6px 6px;display:grid}.bg-option{color:var(--ink-2);border-radius:12px;flex-direction:column;align-items:center;gap:5px;padding:4px 0;font-size:12px;display:flex}.bg-option span{background-color:var(--bg);width:48px;height:36px;box-shadow:inset 0 0 0 1px var(--line-strong);border-radius:9px}.bg-dots span{background-image:radial-gradient(var(--grid) 1.1px, transparent 1.3px);background-size:8px 8px}.bg-grid span{background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:8px 8px}.bg-lines span{background-image:linear-gradient(var(--grid) 1px, transparent 1px);background-size:8px 9px}.bg-option.is-on span{box-shadow:inset 0 0 0 1px var(--line-strong), 0 0 0 2px var(--surface), 0 0 0 4px var(--accent)}.bg-option.is-on{color:var(--ink);font-weight:600}.tag-cloud{flex-wrap:wrap;gap:6px;padding:4px 8px 10px;display:flex}.tag-chip{color:var(--tag-color);background:color-mix(in srgb, var(--tag-color) 12%, transparent)}.tag-cloud .tag-chip.is-on{background:var(--tag-color);color:#fff}.tag-chip.is-preset{cursor:default}.chip-x{border-radius:50%;place-items:center;width:18px;height:18px;margin-right:-6px;display:grid}.panel-hint{color:var(--muted);margin:0;padding:0 14px 10px;font-size:12.5px}.tag-panel{max-height:calc(100vh - 160px);overflow-y:auto}.te-suggest{flex-basis:100%;padding:4px 0 2px}.te-suggest-head{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:11px;font-weight:650;display:flex}.te-toggle{letter-spacing:0;text-transform:none;color:var(--ink-2);align-items:center;gap:6px;font-size:12.5px;font-weight:500;display:inline-flex}.te-suggest-chips{flex-wrap:wrap;gap:5px;display:flex}.te-chip{background:var(--hover);border-radius:999px;align-items:center;gap:4px;height:26px;padding:0 4px 0 10px;font-size:12.5px;display:inline-flex}.te-chip button{width:18px;height:18px;color:var(--muted);border-radius:50%;place-items:center;display:grid}.te-chip button:hover{background:var(--active);color:var(--ink)}.te-chip-input{width:140px;height:26px;box-shadow:inset 0 0 0 1px var(--line-strong);-webkit-user-select:text;user-select:text;background:0 0;border:0;border-radius:999px;outline:none;padding:0 10px;font-size:12.5px}.panel-empty{color:var(--muted);margin:0;padding:10px 14px 14px;font-size:14px;line-height:1.45}.insert-sheet{--sheet-base:translateX(-50%);width:min(580px,100vw - 24px);max-height:min(70vh,640px);transform:var(--sheet-base);background:var(--glass);-webkit-backdrop-filter:blur(30px)saturate(1.8);backdrop-filter:blur(30px)saturate(1.8);box-shadow:inset 0 .5px 0 var(--glass-edge), 0 0 0 .5px var(--glass-line), var(--shadow-lg);animation:sheet-in .32s var(--ease-out) both;border-radius:26px;padding:14px;position:absolute;bottom:calc(100% + 12px);left:50%;overflow-y:auto}@keyframes sheet-in{0%{opacity:0;transform:var(--sheet-base) translateY(12px) scale(.97)}}.sheet-section+.sheet-section{margin-top:14px}.sheet-title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:6px;padding:2px 4px 8px;font-size:11px;font-weight:650;display:flex}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(124px,1fr));gap:8px;display:grid}.tile{--tile-accent:var(--ink-2);background:var(--surface);box-shadow:0 0 0 .5px var(--line-strong), var(--shadow-sm);text-align:left;transition:transform .2s var(--ease-spring), box-shadow .2s;border-radius:16px;flex-direction:column;align-items:flex-start;gap:10px;padding:12px;display:flex}.tile:hover{box-shadow:0 0 0 .5px var(--line-strong), var(--shadow-md);transform:translateY(-2px)}.tile:active{transform:scale(.96)}.tile-icon{width:36px;height:36px;color:var(--tile-accent);background:color-mix(in srgb, var(--tile-accent) 13%, transparent);border-radius:11px;place-items:center;display:grid}.tile-label{font-size:13.5px;font-weight:600;line-height:1.2}.shape-row{flex-wrap:wrap;gap:6px;display:flex}.shape-tile{--shape-fill:var(--hover);width:56px;height:46px;color:var(--ink-2);background:var(--surface);box-shadow:0 0 0 .5px var(--line-strong);transition:transform .2s var(--ease-spring);border-radius:12px;place-items:center;display:grid}.shape-tile:hover{color:var(--ink);transform:translateY(-1px)}.sticky-row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.sticky-swatch{width:40px;height:40px;transition:transform .2s var(--ease-spring);border-radius:5px 5px 11px;box-shadow:0 6px 12px -6px #0000004d,0 0 0 .5px #0000000f}.sticky-swatch:hover{transform:translateY(-2px)rotate(-3deg)}.context-bar{z-index:20;animation:ctx-in .18s var(--ease-out) both;border-radius:18px;align-items:center;gap:2px;padding:5px;display:flex;position:absolute}@keyframes ctx-in{0%{opacity:0;margin-top:4px}}.color-btn{border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.color-btn span{width:26px;height:26px;box-shadow:inset 0 0 0 1px #0000001f, 0 0 0 2px var(--surface), 0 0 0 3.5px var(--line-strong);border-radius:50%}.color-dots{flex-wrap:wrap;gap:2px;max-width:340px;display:flex}.sub-pop{background:var(--glass);-webkit-backdrop-filter:blur(28px)saturate(1.7);backdrop-filter:blur(28px)saturate(1.7);box-shadow:inset 0 .5px 0 var(--glass-edge), 0 0 0 .5px var(--glass-line), var(--shadow-lg);border-radius:18px;padding:8px;animation:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.segmented{background:var(--hover);border-radius:12px;gap:2px;padding:3px;display:flex}.segmented button{min-width:36px;height:36px;color:var(--ink-2);border-radius:9px;font-size:12px;font-weight:650}.segmented button.is-on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.link-label-input{background:var(--hover);-webkit-user-select:text;user-select:text;border-radius:11px;width:200px;height:38px;padding:0 12px;font-size:14px}.arrange-pop{padding:8px 10px 10px}.arrange-title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:4px 4px 2px;font-size:10.5px;font-weight:650}.arrange-row{align-items:center;gap:2px;display:flex}.tidy-btn{height:40px;color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);white-space:nowrap;border-radius:12px;align-items:center;gap:7px;margin-left:6px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.tidy-btn:active{transform:scale(.96)}.side-panel{top:calc(var(--safe-top) + 62px);right:12px;bottom:calc(var(--safe-bottom) + 72px);z-index:25;width:min(360px,100% - 24px);animation:panel-in .3s var(--ease-out) both;border-radius:22px;flex-direction:column;display:flex;position:absolute}@keyframes panel-in{0%{opacity:0;transform:translate(16px)}}.panel-head{align-items:center;gap:4px;padding:8px 8px 6px;display:flex}.search-field{background:var(--hover);height:44px;color:var(--muted);border-radius:13px;flex:1;align-items:center;gap:8px;padding:0 12px;display:flex}.search-field input{color:var(--ink);-webkit-user-select:text;user-select:text;background:0 0;border:0;outline:none;flex:1;font-size:16px}.search-field input::-webkit-search-cancel-button{display:none}.panel-body{flex:1;padding:2px 6px 8px;overflow-y:auto}.result{text-align:left;border-radius:14px;gap:12px;width:100%;padding:10px;display:flex}.result:hover{background:var(--hover)}.result-icon{background:var(--hover);width:34px;height:34px;color:var(--ink-2);border-radius:10px;flex:none;place-items:center;display:grid}.result-text{flex-direction:column;gap:1px;min-width:0;display:flex}.result-title{font:600 15.5px var(--font-serif);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.result-kind{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:11.5px;font-weight:600}.result-snippet{color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:13px;display:-webkit-box;overflow:hidden}.modal-scrim{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a090752;place-items:center;animation:.2s both fade-in;display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.modal{background:var(--surface-2);width:min(900px,100% - 32px);height:min(700px,100% - 48px);box-shadow:0 0 0 .5px var(--line-strong), var(--shadow-lg);animation:pop-in .3s var(--ease-out) both;border-radius:26px;flex-direction:column;display:flex;overflow:hidden}.modal-head{justify-content:space-between;align-items:center;padding:14px 14px 10px 24px;display:flex}.modal-head h2{font:600 22px var(--font-serif);letter-spacing:-.01em;margin:0}.te-body{border-top:1px solid var(--line);flex:1;grid-template-columns:240px 1fr;min-height:0;display:grid}.te-list{border-right:1px solid var(--line);padding:10px;overflow-y:auto}.te-item{--tile-accent:var(--ink-2);text-align:left;border-radius:12px;align-items:center;gap:10px;width:100%;padding:6px 10px 6px 6px;font-size:14.5px;font-weight:550;display:flex}.te-item .tile-icon{border-radius:9px;width:32px;height:32px}.te-item:hover{background:var(--hover)}.te-item.is-on{background:var(--active)}.te-item-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.te-item-count{color:var(--muted);font-size:12px}.te-new{color:var(--accent)}.te-detail{flex-direction:column;gap:12px;padding:18px 22px 24px;display:flex;overflow-y:auto}.te-row{align-items:center;gap:6px;display:flex}.te-looks{flex-wrap:wrap;gap:12px}.te-name{background:var(--hover);height:46px;font:600 20px var(--font-serif);-webkit-user-select:text;user-select:text;border:0;border-radius:12px;outline:none;flex:1;padding:0 14px}.icon-picker{flex-wrap:wrap;gap:2px;display:flex}.icon-picker .icon-btn{width:38px;height:38px}.te-hint{color:var(--muted);margin:0;font-size:13px}.te-fields{flex-direction:column;gap:6px;display:flex}.te-field{background:var(--surface);box-shadow:0 0 0 .5px var(--line-strong);border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 8px 8px 12px;display:flex}.te-field-label{-webkit-user-select:text;user-select:text;background:0 0;border:0;outline:none;flex:1;min-width:140px;height:36px;font-size:15px;font-weight:550}.te-field select{background:var(--hover);border:0;border-radius:9px;height:34px;padding:0 8px;font-size:13.5px}.te-options{background:var(--hover);-webkit-user-select:text;user-select:text;border:0;border-radius:9px;outline:none;flex-basis:100%;height:34px;padding:0 10px;font-size:13.5px}.te-field-actions{display:flex}.te-field-actions .icon-btn{width:34px;height:34px}.btn-primary,.btn-secondary{height:44px;transition:transform .15s var(--ease-spring), box-shadow .15s;border-radius:13px;flex:none;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:600;display:inline-flex}.btn-primary{color:#fff;background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 88%, #fff), var(--accent));box-shadow:0 6px 16px -6px color-mix(in srgb, var(--accent) 70%, transparent), inset 0 1px 0 #ffffff40}.btn-secondary{background:var(--surface);box-shadow:0 0 0 .5px var(--line-strong), var(--shadow-sm)}.btn-secondary.te-add,.te-detail>.btn-secondary{align-self:flex-start}.btn-primary:active,.btn-secondary:active{transform:scale(.96)}.inline-btn{color:var(--accent);pointer-events:auto;font-weight:650}.install{left:50%;top:calc(var(--safe-top) + 64px);z-index:35;width:min(580px,100% - 24px);animation:pop-in .4s .4s var(--ease-out) both;border-radius:20px;align-items:center;gap:14px;padding:12px 12px 12px 16px;display:flex;position:fixed;transform:translate(-50%)}.install p{color:var(--ink-2);flex:1;margin:0;font-size:14px;line-height:1.4}.install strong{color:var(--ink)}.install-icon{width:40px;height:40px;color:var(--accent);background:color-mix(in srgb, var(--accent) 13%, transparent);border-radius:12px;flex:none;place-items:center;display:grid}.toast{left:50%;bottom:calc(var(--safe-bottom) + 80px);background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);z-index:50;pointer-events:none;animation:toast-in .3s var(--ease-spring) both;border-radius:14px;padding:11px 18px;font-size:14px;font-weight:550;position:fixed;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(10px)scale(.96)}}.empty-hint{text-align:center;pointer-events:none;color:var(--muted);z-index:1;width:min(420px,100% - 48px);animation:.6s .2s both fade-in;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.empty-hint h2{font:600 28px var(--font-serif);letter-spacing:-.015em;color:var(--ink-2);margin:0 0 18px}.empty-rows{flex-direction:column;align-items:center;gap:10px;font-size:15px;display:flex}.empty-rows span{align-items:center;gap:10px;display:inline-flex}.empty-hint p{color:var(--faint);margin:20px 0 0;font-size:13px}.home{-webkit-overflow-scrolling:touch;padding:calc(var(--safe-top) + 28px) max(24px, env(safe-area-inset-right)) 60px max(24px, env(safe-area-inset-left));background:radial-gradient(1200px 600px at 10% -10%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 60%), radial-gradient(900px 500px at 100% 0%, #e0a24a14, transparent 60%), var(--bg);position:fixed;inset:0;overflow-y:auto}.home-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;max-width:1200px;margin:0 auto 30px;display:flex}.home-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;font-size:12px;font-weight:700}.home h1{font:600 46px/1.05 var(--font-serif);letter-spacing:-.025em;margin:0}.home-actions{gap:10px;display:flex}.home-error{background:color-mix(in srgb, var(--danger) 10%, transparent);max-width:1200px;color:var(--danger);border-radius:14px;margin:0 auto 20px;padding:12px 16px}.world-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px;max-width:1200px;margin:0 auto;display:grid}.world-tile{background:var(--surface);box-shadow:0 0 0 .5px var(--line), var(--card-shadow);transition:transform .25s var(--ease-spring), box-shadow .25s;animation:node-in .4s var(--ease-spring) both;border-radius:22px;flex-direction:column;display:flex;position:relative}.world-tile:hover{box-shadow:0 0 0 .5px var(--line), var(--shadow-lg);transform:translateY(-3px)}.world-thumb{aspect-ratio:4/3;background:var(--bg);border-bottom:1px solid var(--line);border-radius:22px 22px 0 0;display:block;overflow:hidden}.world-thumb img{object-fit:cover;width:100%;height:100%;display:block}.world-thumb.has-cover{border-bottom-color:#0000;position:relative}.world-thumb .cover-backdrop{filter:blur(22px)saturate(1.2)brightness(.8);width:124%;height:124%;position:absolute;inset:-12%}.world-thumb .cover-image{object-fit:contain;filter:drop-shadow(0 6px 14px #00000059);padding:10px 0;position:relative}.world-thumb-empty{width:100%;height:100%;color:var(--faint);background-image:radial-gradient(var(--grid) 1.1px, transparent 1.3px);background-size:18px 18px;place-items:center;display:grid}.world-meta{padding:14px 52px 16px 18px}.world-name{font:600 18px var(--font-serif);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.world-rename{width:100%;font:600 18px var(--font-serif);background:var(--hover);-webkit-user-select:text;user-select:text;border:0;border-radius:8px;outline:none;margin:-2px -6px;padding:2px 6px}.world-sub{color:var(--muted);margin-top:3px;font-size:13px}.world-more{position:absolute;bottom:12px;right:8px}.world-menu{transform-origin:100% 100%;position:absolute;bottom:60px;right:8px}.world-new{min-height:260px;box-shadow:none;border:2px dashed var(--line-strong);color:var(--ink-2);font:600 17px var(--font-serif);background:0 0;justify-content:center;align-items:center;gap:12px}.world-new:hover{border-color:var(--accent);color:var(--accent);box-shadow:none}.world-new-icon{width:60px;height:60px;color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:50%;place-items:center;display:grid}.home-empty{max-width:1200px;color:var(--muted);margin:24px auto 0}@media (width<=720px){.project-name{width:150px}.zoom{bottom:calc(var(--safe-bottom) + 72px)}.te-body{grid-template-rows:auto 1fr;grid-template-columns:1fr}.te-list{border-right:0;border-bottom:1px solid var(--line);display:flex;overflow-x:auto}.te-item{flex:none;width:auto}.home h1{font-size:36px}.world-new:not(:only-child){display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.confirm-dialog{background:var(--surface-2);width:min(380px,100% - 32px);box-shadow:0 0 0 .5px var(--line-strong), var(--shadow-lg);animation:pop-in .25s var(--ease-out) both;border-radius:22px;padding:22px 22px 18px}.confirm-dialog h2{font:600 20px var(--font-serif);letter-spacing:-.01em;overflow-wrap:anywhere;margin:0 0 6px}.confirm-dialog p{color:color-mix(in srgb, var(--ink) 70%, transparent);margin:0 0 18px;font-size:15px}.confirm-actions{justify-content:flex-end;gap:10px;display:flex}.btn-primary.btn-danger{background:linear-gradient(160deg, color-mix(in srgb, var(--danger) 88%, #fff), var(--danger));box-shadow:0 6px 16px -6px color-mix(in srgb, var(--danger) 70%, transparent), inset 0 1px 0 #ffffff40}
