:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--background:var(--lightningcss-light,#f2f2f4)var(--lightningcss-dark,#121214);--surface:var(--lightningcss-light,#ffffffd9)var(--lightningcss-dark,#242428d9);--border:var(--lightningcss-light,#0000001a)var(--lightningcss-dark,#ffffff1f);--text:var(--lightningcss-light,#1c1c1e)var(--lightningcss-dark,#f2f2f4);--secondary:var(--lightningcss-light,#6e6e73)var(--lightningcss-dark,#a1a1a6);--accent:var(--lightningcss-light,#0a66ff)var(--lightningcss-dark,#4c8dff);--mac-light:#fff;--mac-dark:#1e1e1e;color:var(--text);background:var(--background);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}button{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app{position:fixed;inset:0}.toolbar{z-index:2;border:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 12px;display:flex;position:absolute;top:12px;left:12px;right:12px;box-shadow:0 4px 24px #00000014}.toolbar h1{margin:0;font-size:15px;font-weight:600}.commit{color:var(--secondary);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.chips,.zoom{align-items:center;gap:4px;display:flex}.chip,.zoom button{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:999px;padding:3px 10px}.chip{color:var(--secondary)}.chip.on{color:#fff;border-color:var(--accent);background:var(--accent)}.zoom{margin-left:auto}.zoom span{text-align:center;font-variant-numeric:tabular-nums;min-width:44px;color:var(--secondary)}.count{color:var(--secondary)}.canvas{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.canvas.dragging{cursor:grabbing}.canvas-content{transform-origin:0 0;position:absolute;top:0;left:0}.label{white-space:nowrap;position:absolute}.label.app{font-size:112px;font-weight:700;line-height:1}.label.screen{color:var(--secondary);font-size:56px;font-weight:600;line-height:1}.tile{cursor:pointer;box-shadow:0 0 0 1px var(--border), 0 8px 24px #0000001f;background:0 0;border:none;border-radius:10px;padding:0;position:absolute;overflow:hidden}.tile img,.detail-image img{display:block}.tile img{width:100%;height:100%}.tile:hover,.tile:focus-visible{outline:4px solid var(--accent);outline-offset:4px}.macos.light{background:var(--mac-light)}.macos.dark{background:var(--mac-dark)}.ios.tile{border-radius:28px}.detail{z-index:3;border:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:12px;flex-direction:column;gap:12px;width:min(560px,100% - 24px);padding:16px;display:flex;position:absolute;top:72px;bottom:12px;right:12px;overflow:auto;box-shadow:0 8px 40px #00000029}.detail header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.detail h2{margin:0;font-size:17px}.detail header p{color:var(--secondary);margin:4px 0 0}.close{cursor:pointer;color:var(--secondary);background:0 0;border:none;font-size:22px;line-height:1}.detail-image{max-width:100%;box-shadow:0 0 0 1px var(--border);border-radius:10px;align-self:center;overflow:hidden}.detail-image img{max-width:100%;height:auto}.detail dl{grid-template-columns:auto 1fr;gap:4px 12px;margin:0;display:grid}.detail dt{color:var(--secondary)}.detail dd{overflow-wrap:anywhere;margin:0}.empty{text-align:center;color:var(--secondary);pointer-events:none;margin:0;position:absolute;top:50%;left:0;right:0}.message{max-width:560px;color:var(--secondary);margin:120px auto;padding:0 24px}.message h1{color:var(--text)}.label.caption{color:var(--secondary);font-size:28px;font-weight:600}.segmented{border:1px solid var(--border);border-radius:8px;padding:2px;display:flex}.segmented button{color:var(--secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 12px}.segmented button.on{color:var(--text);background:var(--lightningcss-light,#00000014)var(--lightningcss-dark,#ffffff24)}.edges{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.edges polyline{fill:none;stroke:var(--secondary);stroke-width:6px;stroke-linejoin:round}.edges marker path{fill:var(--secondary)}.edge-label{border:2px solid var(--border);background:var(--background);text-align:center;border-radius:16px;max-width:280px;padding:6px 14px;font-size:26px;font-weight:600;line-height:1.2;position:absolute;transform:translate(-50%,-50%)}.node{position:absolute}.node.raised{z-index:1}.node-header{white-space:nowrap;flex-direction:column;justify-content:flex-end;gap:6px;padding-bottom:16px;display:flex}.node-title{text-overflow:ellipsis;font-size:44px;font-weight:700;overflow:hidden}.node-state{color:var(--secondary);align-items:center;gap:12px;font-size:28px;display:flex}.node-state-name{text-overflow:ellipsis;overflow:hidden}.node-count{font-variant-numeric:tabular-nums}.node-state button{border:2px solid var(--border);cursor:pointer;background:0 0;border-radius:12px;min-width:44px;padding:0 10px;font-size:28px;line-height:1.3}.node.stacked .tile{box-shadow:0 0 0 1px var(--border), 14px 14px 0 -2px var(--lightningcss-light,#dcdce0)var(--lightningcss-dark,#2a2a2e), 28px 28px 0 -4px var(--lightningcss-light,#c8c8cc)var(--lightningcss-dark,#222226)}.placeholder{border:4px dashed var(--border);color:var(--secondary);text-align:center;border-radius:10px;justify-content:center;align-items:center;padding:24px;font-size:28px;display:flex;position:absolute;left:0;right:0}
