@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,650;9..144,700&family=Source+Sans+3:wght@400;600;700&display=swap";:root{--ink:#2a2118;--muted:#6d6256;--panel:#fffaf3;--panel-strong:#fff7ec;--line:#d7cdc0;--accent:#c45c26;--edge:#8a7460;--node-border:#cbbba8;--font-display:"Fraunces", Georgia, serif;--font-body:"Source Sans 3", "Segoe UI", sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);font-family:var(--font-body);color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;background:#ebe4d7;font-weight:400;line-height:1.4}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;min-height:100dvh;margin:0;overflow:hidden}button,input{font:inherit}.mm-app{height:100%;min-height:100dvh;color:var(--ink);padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);grid-template-columns:220px 1fr;display:grid}.mm-app.mm-status{grid-template-columns:1fr;display:grid}.mm-main{flex-direction:column;min-width:0;min-height:0;display:flex}.mm-sidebar-backdrop{display:none}.mm-sidebar{border-right:1px solid var(--line);background:color-mix(in srgb, var(--panel) 94%, transparent);flex-direction:column;gap:.5rem;min-height:0;padding:.85rem .75rem;display:flex;overflow:auto}.mm-sidebar-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.mm-sidebar-header{font-family:var(--font-display);letter-spacing:-.02em;color:var(--accent);padding:.15rem .45rem .35rem;font-size:.95rem;font-weight:700}.mm-sidebar-close{display:none}.mm-map-list{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.mm-map-row{align-items:stretch;gap:.2rem;display:flex}.mm-map-item{text-align:left;min-width:0;color:var(--ink);font-family:var(--font-body);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex:1;min-height:44px;padding:.55rem .65rem;font-size:.875rem;font-weight:600}.mm-map-item:hover{background:var(--panel-strong);border-color:var(--line)}.mm-map-item.is-active{background:color-mix(in srgb, var(--accent) 14%, var(--panel));border-color:color-mix(in srgb, var(--accent) 45%, var(--line));color:var(--accent)}.mm-map-item-title{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.mm-map-rename,.mm-map-delete{width:40px;min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.mm-map-rename:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--panel-strong));border-color:color-mix(in srgb, var(--accent) 30%, var(--line))}.mm-map-delete:hover{color:#9b2c2c;background:color-mix(in srgb, #9b2c2c 10%, var(--panel-strong));border-color:color-mix(in srgb, #9b2c2c 30%, var(--line))}.mm-map-rename-input{box-sizing:border-box;border:1px solid var(--line);background:var(--panel-strong);width:100%;min-height:44px;color:var(--ink);font-family:var(--font-body);border-radius:8px;padding:.55rem .75rem;font-size:.95rem;font-weight:600}.mm-map-rename-input:focus{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));outline:none}.mm-map-confirm-save{border:1px solid var(--accent);background:var(--accent);color:#fffaf3;cursor:pointer;border-radius:8px;min-height:40px;padding:.45rem .9rem;font-weight:600}.mm-map-confirm-save:hover{background:color-mix(in srgb, var(--accent) 88%, #000)}.mm-map-confirm{z-index:40;background:#2a211873;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.mm-map-confirm-card{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:.65rem;width:min(100%,22rem);padding:1.15rem 1.2rem 1.05rem;display:flex;box-shadow:0 18px 40px #2a211838}.mm-map-confirm-card h2{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:0;font-size:1.15rem;font-weight:700}.mm-map-confirm-card p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.45}.mm-map-confirm-actions{justify-content:flex-end;gap:.5rem;margin-top:.35rem;display:flex}.mm-map-confirm-cancel,.mm-map-confirm-delete{border:1px solid var(--line);cursor:pointer;border-radius:8px;min-height:40px;padding:.45rem .9rem;font-weight:600}.mm-map-confirm-cancel{background:var(--panel-strong);color:var(--ink)}.mm-map-confirm-delete{color:#fffaf3;background:#9b2c2c;border-color:#9b2c2c}.mm-map-confirm-delete:hover{background:#882727}.mm-status{text-align:center;align-content:center;place-items:center;gap:.5rem;padding:2rem}.mm-status p{color:var(--muted);margin:0}.mm-toolbar{background:color-mix(in srgb, var(--panel) 92%, transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2;grid-template-columns:auto 1fr;grid-template-areas:"brand actions""hint hint";align-items:center;gap:.65rem 1rem;padding:.85rem 1.25rem .75rem;display:grid}.mm-toolbar-lead{grid-area:brand;align-items:center;gap:.55rem;min-width:0;display:flex}.mm-maps-toggle{display:none}.mm-brand{font-family:var(--font-display);letter-spacing:-.03em;color:var(--accent);white-space:nowrap;font-size:1.35rem;font-weight:700}.mm-actions{flex-wrap:wrap;grid-area:actions;justify-content:flex-end;gap:.45rem;display:flex}.mm-actions button,.mm-maps-toggle{border:1px solid var(--line);background:var(--accent);color:#fff8f1;font-family:var(--font-body);cursor:pointer;border-radius:8px;min-height:40px;padding:.45rem .8rem;font-size:.875rem;font-weight:600}.mm-actions button:disabled{opacity:.45;cursor:not-allowed}.mm-actions button.is-active,.mm-maps-toggle.is-active{background:color-mix(in srgb, var(--accent) 82%, #3a2414);box-shadow:inset 0 0 0 2px #fff8f1}.mm-actions button.mm-secondary,.mm-maps-toggle.mm-secondary{background:var(--panel-strong);color:var(--ink)}.mm-actions button:not(:disabled):hover,.mm-maps-toggle:hover{filter:brightness(1.05)}.mm-btn-short{display:none}.mm-zoom-wrap{flex:none;position:relative}.mm-zoom-trigger{justify-content:center;align-items:center;min-width:40px;padding-left:.55rem;padding-right:.55rem;display:inline-flex}.mm-zoom-icon{display:block}.mm-zoom-menu{z-index:8;border:1px solid var(--line);background:var(--panel);border-radius:10px;flex-direction:column;gap:.15rem;min-width:132px;padding:.35rem;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 28px #30241829}.mm-zoom-menu button{text-align:left;width:100%;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:7px;justify-content:flex-start;min-height:36px;padding:.45rem .55rem;font-size:.82rem;font-weight:600}.mm-zoom-menu button:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 12%, var(--panel-strong));border-color:color-mix(in srgb, var(--accent) 30%, var(--line));color:var(--accent);filter:none}.mm-zoom-menu button:disabled{opacity:.45;cursor:not-allowed}.mm-hint{color:var(--muted);grid-area:hint;margin:0;font-size:.8rem}.mm-canvas{cursor:grab;touch-action:none;overscroll-behavior:none;background-color:#0000;background-image:radial-gradient(circle at 12% 18%,#d67a3a1f,#0000 32%),radial-gradient(circle at 88% 12%,#2e6e7a24,#0000 36%),linear-gradient(#d9d0c033 1px,#0000 1px),linear-gradient(90deg,#d9d0c033 1px,#0000 1px),linear-gradient(160deg,#f7f1e8 0%,#ebe4d7 45%,#e3ecec 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,28px 28px,28px 28px,auto;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;flex:auto;min-height:0;position:relative;overflow:hidden}.mm-canvas:active,.mm-canvas.is-reparenting{cursor:grabbing}.mm-canvas.is-linking,.mm-canvas.is-moving{cursor:crosshair}.mm-canvas.is-editing-text{touch-action:auto;cursor:auto}.mm-move-banner{border-bottom:1px solid color-mix(in srgb, #2e6e7a 35%, var(--line));background:color-mix(in srgb, #2e6e7a 12%, var(--panel));color:#2e6e7a;text-align:center;z-index:2;flex:none;padding:.45rem 1rem;font-size:.88rem;font-weight:600}.mm-tab-bar{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--panel) 94%, transparent);scrollbar-width:thin;flex:none;align-items:center;gap:.35rem;padding:.4rem .75rem;display:flex;overflow-x:auto}.mm-tab-chip{border:1px solid var(--line);background:var(--panel-strong);border-radius:8px;align-items:stretch;display:inline-flex;overflow:hidden}.mm-tab-chip.is-active{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));background:color-mix(in srgb, var(--accent) 14%, var(--panel))}.mm-tab{color:var(--ink);font-family:var(--font-body);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;max-width:10rem;min-height:34px;padding:.4rem .7rem;font-size:.82rem;font-weight:600;overflow:hidden}.mm-tab-bar>.mm-tab{border:1px solid var(--line);background:var(--panel-strong);border-radius:8px}.mm-tab-bar>.mm-tab.is-active{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));background:color-mix(in srgb, var(--accent) 14%, var(--panel));color:var(--accent)}.mm-tab-chip.is-active .mm-tab{color:var(--accent)}.mm-tab-close{border:0;border-left:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;padding:0 .55rem;font-size:1rem;line-height:1}.mm-tab-close:hover{color:#9b2c2c;background:#9b2c2c1a}.mm-tab-views{flex-direction:column;flex:auto;min-height:0;display:flex}.mm-tab-view{border-bottom:1px solid var(--line);flex-direction:column;flex:1 1 0;min-height:0;display:flex;position:relative}.mm-tab-view:last-child{border-bottom:0}.mm-tab-view-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:color-mix(in srgb, var(--panel) 88%, #d7cdc0);border-bottom:1px solid var(--line);flex:none;padding:.2rem .65rem;font-size:.72rem;font-weight:700}.mm-tab-view .mm-canvas{flex:auto;min-height:0}.mm-move-place{z-index:40;background:#2a211873;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.mm-move-place-card{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:.65rem;width:min(100%,22rem);padding:1.15rem 1.2rem 1.05rem;display:flex;box-shadow:0 18px 40px #2a211838}.mm-move-place-card h2{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:0;font-size:1.15rem;font-weight:700}.mm-move-place-card p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.45}.mm-move-place-actions{flex-direction:column;gap:.45rem;margin-top:.35rem;display:flex}.mm-move-place-actions button{border:1px solid var(--line);cursor:pointer;border-radius:8px;width:100%;min-height:44px;padding:.5rem .85rem;font-weight:600}.mm-move-place-option{background:var(--accent);color:#fffaf3;justify-content:flex-start;align-items:center;gap:.65rem;display:inline-flex}.mm-move-place-option .mm-node-menu-icon{color:#fffaf3;flex:none}.mm-move-place-option:hover{background:color-mix(in srgb, var(--accent) 88%, #000)}.mm-move-place-actions .mm-move-place-cancel{background:var(--panel-strong);color:var(--ink)}.mm-move-place-actions .mm-move-place-cancel:hover{background:color-mix(in srgb, var(--panel-strong) 80%, var(--line))}.mm-world{transform-origin:0 0;will-change:transform;position:absolute;top:0;left:0}.mm-edges{pointer-events:none;position:absolute;inset:0;overflow:visible}.mm-edge{stroke:var(--edge);stroke-width:2px}.mm-edge.is-vertical{stroke:var(--accent)}.mm-edge.is-reference{stroke:#4f6f8f;stroke-width:1.75px;stroke-dasharray:5 4;opacity:.9}.mm-vmap-frame{fill:#c478480f;stroke:var(--accent);stroke-width:2px;stroke-dasharray:6 4;pointer-events:none}.mm-node{box-sizing:border-box;border:1.5px solid var(--node-border);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;z-index:1;background:linear-gradient(#fffdf9 0%,#f4ebe0 100%);border-radius:12px;justify-content:center;align-items:center;padding:.45rem .75rem;transition:border-color .12s,box-shadow .12s,transform .12s;display:flex;position:absolute;box-shadow:0 8px 18px #30241814}.mm-node.show-menu,.mm-node.is-menu-open{z-index:3}.mm-node-menu{box-sizing:border-box;border:1px solid var(--line);background:var(--panel);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;z-index:6;border-radius:10px;flex-direction:column;gap:.15rem;width:max-content;min-width:11.5rem;max-width:min(16rem,100vw - 1.5rem);max-height:min(15.5rem,100dvh - 7rem);padding:.35rem;display:flex;position:absolute;top:calc(100% + 8px);left:50%;overflow:hidden auto;transform:translate(-50%);box-shadow:0 12px 28px #30241829}.mm-node-menu button{text-align:left;width:100%;color:var(--ink);font-family:var(--font-body);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;flex:none;align-items:center;gap:.55rem;min-height:36px;padding:.45rem .55rem;font-size:.82rem;font-weight:600;display:flex}.mm-node-menu-icon{color:var(--accent);flex:none}.mm-node-menu button:hover{background:color-mix(in srgb, var(--accent) 12%, var(--panel-strong));border-color:color-mix(in srgb, var(--accent) 30%, var(--line));color:var(--accent)}.mm-node-menu button:hover .mm-node-menu-icon{color:var(--accent)}.mm-node-menu-danger,.mm-node-menu-danger .mm-node-menu-icon{color:#9b2c2c}.mm-node-menu-danger:hover{background:color-mix(in srgb, #9b2c2c 10%, var(--panel-strong));border-color:color-mix(in srgb, #9b2c2c 35%, var(--line));color:#9b2c2c}.mm-node-menu-danger:hover .mm-node-menu-icon{color:#9b2c2c}.mm-node:hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--node-border))}.mm-node.is-selected{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent), 0 10px 22px #3024181f}.mm-node.is-editing{touch-action:auto;-webkit-user-select:text;user-select:text;cursor:text;padding:0}.mm-node.is-drag-armed{z-index:5;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent), 0 12px 24px #30241829;cursor:grabbing;transform:scale(1.03)}.mm-node.is-dragging{opacity:.55;cursor:grabbing;z-index:5;transform:scale(1.03)}.mm-node.is-drop-target{border-color:#2e6e7a;box-shadow:0 0 0 3px #2e6e7a47,0 10px 22px #3024181f}.mm-node.is-drop-before,.mm-node.is-drop-after{box-shadow:0 8px 18px #30241814}.mm-drop-line{z-index:6;pointer-events:none;background:#2e6e7a;border-radius:999px;height:3px;margin-top:-1.5px;position:absolute;box-shadow:0 0 0 3px #2e6e7a38,0 0 12px #2e6e7a59}.mm-drop-line:before,.mm-drop-line:after{content:"";background:#2e6e7a;border-radius:50%;width:8px;height:8px;position:absolute;top:50%;transform:translateY(-50%)}.mm-drop-line:before{left:-2px}.mm-drop-line:after{right:-2px}.mm-node-label{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;text-align:center;width:100%;font-family:var(--font-body);color:var(--ink);font-size:.92rem;font-weight:600;line-height:1.35;display:block;overflow:hidden}.mm-node-input{width:100%;height:100%;min-height:100%;color:var(--ink);font-family:var(--font-body);text-align:center;resize:none;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;box-sizing:border-box;touch-action:auto;-webkit-user-select:text;user-select:text;caret-color:var(--accent);background:#fff;border:none;border-radius:11px;outline:none;padding:.55rem .65rem;font-size:.92rem;font-weight:600;line-height:1.35;display:block;overflow:auto}@media (width<=720px){.mm-app{grid-template-rows:1fr;grid-template-columns:1fr}.mm-main{height:100%;min-height:0}.mm-sidebar-backdrop{z-index:20;opacity:0;pointer-events:none;background:#2a211859;border:0;margin:0;padding:0;transition:opacity .16s;display:block;position:fixed;inset:0}.mm-sidebar-backdrop.is-open{opacity:1;pointer-events:auto}.mm-sidebar{z-index:30;border-right:1px solid var(--line);width:min(82vw,300px);max-height:none;padding-top:calc(.85rem + var(--safe-top));padding-bottom:calc(.85rem + var(--safe-bottom));padding-left:calc(.75rem + var(--safe-left));background:var(--panel);border-bottom:none;transition:transform .18s;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%);box-shadow:8px 0 28px #3024182e}.mm-sidebar.is-open{transform:translate(0)}.mm-sidebar-close{border:1px solid var(--line);background:var(--panel-strong);color:var(--ink);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;min-height:36px;padding:.35rem .65rem;font-size:.8rem;font-weight:600;display:inline-flex}.mm-maps-toggle{flex:none;justify-content:center;align-items:center;display:inline-flex}.mm-toolbar{grid-template-columns:1fr;grid-template-areas:"brand""actions";gap:.55rem;padding:.65rem .75rem .6rem}.mm-brand{font-size:1.15rem}.mm-actions{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start;padding-bottom:.1rem;overflow:auto hidden;-webkit-mask-image:linear-gradient(90deg,#000 92%,#0000);mask-image:linear-gradient(90deg,#000 92%,#0000)}.mm-actions::-webkit-scrollbar{display:none}.mm-actions button{flex:none;min-height:40px;padding:.4rem .7rem;font-size:.8rem}.mm-btn-long{display:none}.mm-btn-short{display:inline}.mm-hint{display:none}.mm-node-menu{min-width:12rem;max-width:min(17rem,100vw - 1.25rem);max-height:min(14rem,100dvh - 8.5rem)}.mm-node-menu button{min-height:40px;font-size:.88rem}}@media (width<=420px){.mm-brand{font-size:1.05rem}.mm-actions button{padding:.4rem .55rem}}
