:root{--accent-h: 245;--accent: hsl(var(--accent-h) 83% 62%);--accent-strong: hsl(var(--accent-h) 83% 55%);--accent-soft: hsl(var(--accent-h) 83% 62% / .14);--accent-ring: hsl(var(--accent-h) 83% 62% / .45);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 26px;--ease: cubic-bezier(.4, 0, .2, 1);--dur: .18s;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--topbar-h: 56px}:root,:root[data-theme=dark]{color-scheme:dark;--bg: hsl(230 25% 7%);--bg-elev: hsl(230 22% 11%);--bg-elev-2: hsl(230 20% 15%);--surface: hsl(230 24% 9% / .72);--surface-solid: hsl(230 22% 11%);--border: hsl(230 18% 100% / .09);--border-strong: hsl(230 18% 100% / .16);--text: hsl(225 30% 96%);--text-muted: hsl(225 14% 66%);--text-faint: hsl(225 12% 48%);--shadow: 0 18px 50px -12px hsl(230 60% 3% / .7);--grid-dot: hsl(230 20% 100% / .045);--scrim: hsl(230 40% 3% / .6)}:root[data-theme=light]{color-scheme:light;--bg: hsl(225 30% 96%);--bg-elev: hsl(0 0% 100%);--bg-elev-2: hsl(225 30% 98%);--surface: hsl(0 0% 100% / .72);--surface-solid: hsl(0 0% 100%);--border: hsl(230 25% 12% / .1);--border-strong: hsl(230 25% 12% / .18);--text: hsl(230 30% 14%);--text-muted: hsl(230 14% 40%);--text-faint: hsl(230 10% 58%);--shadow: 0 18px 50px -18px hsl(230 40% 40% / .35);--grid-dot: hsl(230 30% 20% / .06);--scrim: hsl(230 30% 40% / .28)}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}button{font-family:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}#app{display:grid;grid-template-rows:var(--topbar-h) 1fr;height:100vh;height:100dvh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;background:var(--surface);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-bottom:1px solid var(--border);z-index:20}.topbar__brand{display:flex;align-items:center;gap:12px;min-width:0}.topbar__logo{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,var(--accent),hsl(285 80% 62%));box-shadow:0 0 0 1px #ffffff1f inset,0 4px 14px -4px var(--accent-ring);flex:none}.topbar__titles{display:flex;flex-direction:column;min-width:0;line-height:1.15}.topbar__title{font-weight:650;font-size:.95rem;letter-spacing:-.01em}.topbar__actions{display:flex;align-items:center;gap:8px}.breadcrumbs{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--text-muted);overflow:hidden}.breadcrumbs__item{background:none;border:none;padding:2px 4px;color:var(--text-muted);font-size:inherit;border-radius:6px;white-space:nowrap;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.breadcrumbs__item:not(:disabled):hover{color:var(--text);background:var(--accent-soft)}.breadcrumbs__item:disabled{color:var(--text);font-weight:600;cursor:default}.breadcrumbs__sep{color:var(--text-faint);user-select:none}.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 8px;font-size:1rem;font-weight:600;color:var(--text);background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius-sm);transition:transform var(--dur) var(--ease),background var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.icon-btn:hover{background:var(--accent-soft);border-color:var(--border-strong)}.icon-btn:active{transform:scale(.94)}.icon-btn--wide{font-size:.72rem;letter-spacing:.02em}.icon-btn__glyph{width:18px;height:18px;display:inline-block;background:currentColor;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat}:root[data-theme=dark] [data-theme-icon]{--icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M6.3 17.7l-1.4 1.4M19.1 4.9l-1.4 1.4"/></svg>')}:root[data-theme=light] [data-theme-icon]{--icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/></svg>')}.stage{position:relative;overflow:hidden;background-color:var(--bg);background-image:radial-gradient(var(--grid-dot) 1.4px,transparent 1.4px);background-size:26px 26px;background-position:-13px -13px}.stage__canvas{position:absolute;inset:0;touch-action:none;cursor:grab}.stage__canvas:active{cursor:grabbing}.stage__canvas svg{width:100%;height:100%;display:block}.stage__empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--text-faint);pointer-events:none}.stage__empty[hidden]{display:none}.stage__canvas .node{cursor:pointer;transition:filter var(--dur) var(--ease)}.stage__canvas .node:hover{filter:brightness(1.12) drop-shadow(0 4px 12px var(--accent-ring))}.stage__canvas .node.node--submap .label:after{content:" ⤵"}.stage__canvas .node.node--modal .label:after{content:" ⓘ";opacity:.6}.zoom-controls{position:absolute;right:18px;bottom:18px;display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:8px;width:64px;background:var(--surface);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);z-index:10}.zoom-controls .icon-btn{width:100%}.zoom-controls__level{text-align:center;font-size:.7rem;font-variant-numeric:tabular-nums;color:var(--text-muted);padding:2px 0;user-select:none}.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px}.modal[hidden]{display:none}.modal__backdrop{position:absolute;inset:0;background:var(--scrim);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:fade-in var(--dur) var(--ease)}.modal__dialog{position:relative;width:min(760px,100%);max-height:min(82vh,900px);display:flex;flex-direction:column;background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow);overflow:hidden;animation:pop-in var(--dur) var(--ease)}.modal__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid var(--border);background:linear-gradient(var(--accent-soft),transparent)}.modal__title{margin:0;font-size:1.15rem;font-weight:650;letter-spacing:-.01em}.modal__body{padding:22px 26px 30px;overflow-y:auto}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.98)}}.markdown-body{line-height:1.65;font-size:.95rem;color:var(--text)}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3{line-height:1.25;letter-spacing:-.01em;margin:1.4em 0 .5em}.markdown-body h1{font-size:1.4rem}.markdown-body h2{font-size:1.15rem}.markdown-body h3{font-size:1rem}.markdown-body a{color:var(--accent);text-decoration-color:var(--accent-ring)}.markdown-body code{font-family:var(--font-mono);font-size:.85em;padding:.15em .4em;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:6px}.markdown-body pre{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;overflow-x:auto}.markdown-body pre code{padding:0;background:none;border:none}.markdown-body blockquote{margin:1em 0;padding:2px 16px;border-left:3px solid var(--accent);color:var(--text-muted)}.markdown-body table{border-collapse:collapse;width:100%;margin:1em 0;font-size:.9rem}.markdown-body th,.markdown-body td{border:1px solid var(--border);padding:8px 12px;text-align:left}.markdown-body th{background:var(--bg-elev-2);font-weight:600}.markdown-body hr{border:none;border-top:1px solid var(--border);margin:1.5em 0}.markdown-body ul,.markdown-body ol{padding-left:1.4em}.submap-link{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding:10px 16px;font-weight:600;color:var(--text);background:var(--accent-soft);border:1px solid var(--border-strong);border-radius:var(--radius-md)}
