:root{color-scheme:light;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--app-title-size: clamp(2.5rem, 8vw, 4rem);--app-title-size-mobile: clamp(2rem, 12vw, 3rem);--app-left-panel-offset: 1rem;--room-label-color: #111827;--map-layer-reference-image: 0;--map-layer-background: 1;--map-layer-connections: 2;--map-layer-pseudo-rooms: 3;--map-layer-sticky-notes: 4;--map-layer-rooms: 5;--map-layer-connection-labels: 6;--map-layer-connection-reroute: 8;--map-layer-selection-box: 15;--map-layer-export-region: 16;--map-layer-dragging-node: 20;line-height:1.5;font-weight:400;color:#111827;background-color:#fff;text-rendering:optimizeLegibility;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{color-scheme:dark;--room-label-color: #f3f4f6;color:#f3f4f6;background-color:#111827}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-height:100vh}.app-shell{min-height:100vh;position:relative;isolation:isolate}.app-shell--desktop-only{display:grid;place-items:center;padding:1.5rem}.app-shell:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background-color:#fff}:root[data-theme=dark] .app-shell:before{background-color:#111827}.app-parchment-panel{position:fixed;left:var(--app-left-panel-offset);right:auto;bottom:1rem;z-index:11;display:flex;pointer-events:none}body.app-shell--resizing-side-panel-corner{cursor:ew-resize;-webkit-user-select:none;user-select:none}.app-parchment-panel__resize-handle{pointer-events:auto;position:absolute;right:-.9rem;top:50%;width:.9rem;height:4rem;padding:0;border:none;transform:translateY(-50%);border-radius:0 999px 999px 0;background:#94a3b8f2;box-shadow:inset 0 1px #ffffff59,inset -1px -1px #0f172a14,0 10px 22px #0f172a29;color:inherit;cursor:ew-resize;outline:none;touch-action:none;-webkit-user-select:none;user-select:none}.app-parchment-panel__resize-handle:hover,.app-parchment-panel__resize-handle:focus-visible{background:#64748bfa}.app-parchment-panel__frame{pointer-events:auto;display:flex;flex-direction:column;width:100%;min-width:0;height:100%;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:1rem;overflow:hidden;background:#ffffffe0;box-shadow:0 16px 36px #0f172a24;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}:root[data-theme=dark] .app-parchment-panel__frame{background:#111827e6;box-shadow:0 18px 40px #02061773}.app-parchment-panel__search{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;gap:.55rem;padding:.85rem;overflow-y:auto}.app-parchment-panel__search-label{font-size:.75rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.app-parchment-panel__search-row{display:flex;gap:.55rem}.app-parchment-panel__search-input{flex:1 1 auto;min-width:0;padding:.6rem .75rem;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:.8rem;background:#ffffffbf;color:inherit;font:inherit}.app-parchment-panel__search-button{flex:0 0 auto;padding:.6rem .85rem;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:.8rem;background:color-mix(in srgb,currentColor 10%,transparent);color:inherit;font:inherit;font-weight:700;cursor:pointer}.app-parchment-panel__device-link{padding:0;border:0;background:none;font-size:.86rem;color:inherit;font:inherit;text-align:left;cursor:pointer}.app-parchment-panel__device-link:hover,.app-parchment-panel__device-link:focus-visible{text-decoration:underline}.app-control-button[data-shortcut],.app-parchment-panel__reset-button[data-shortcut],.app-parchment-panel__device-link[data-shortcut]{position:relative}.app-control-button[data-shortcut]:before,.app-parchment-panel__reset-button[data-shortcut]:before,.app-parchment-panel__device-link[data-shortcut]:before{content:attr(aria-label);position:absolute;left:50%;top:calc(100% + 1.85rem);bottom:auto;transform:translate(-50%,-.2rem);padding:.28rem .5rem;border-radius:.5rem;background:#111827f5;color:#f9fafb;font-size:.72rem;font-weight:600;line-height:1.1;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .14s ease,transform .14s ease;z-index:60}.app-control-button[data-shortcut]:after,.app-parchment-panel__reset-button[data-shortcut]:after,.app-parchment-panel__device-link[data-shortcut]:after{content:attr(data-shortcut);position:absolute;left:50%;top:calc(100% + .45rem);bottom:auto;transform:translate(-50%,-.2rem);padding:.2rem .45rem;border-radius:.45rem;background:#111827eb;color:#f9fafb;font-size:.66rem;font-weight:700;line-height:1;letter-spacing:.01em;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .14s ease,transform .14s ease;z-index:60}.app-control-button[data-shortcut]:hover:before,.app-control-button[data-shortcut]:focus-visible:before,.app-parchment-panel__reset-button[data-shortcut]:hover:before,.app-parchment-panel__reset-button[data-shortcut]:focus-visible:before,.app-parchment-panel__device-link[data-shortcut]:hover:before,.app-parchment-panel__device-link[data-shortcut]:focus-visible:before,.app-control-button[data-shortcut]:hover:after,.app-control-button[data-shortcut]:focus-visible:after,.app-parchment-panel__reset-button[data-shortcut]:hover:after,.app-parchment-panel__reset-button[data-shortcut]:focus-visible:after,.app-parchment-panel__device-link[data-shortcut]:hover:after,.app-parchment-panel__device-link[data-shortcut]:focus-visible:after{opacity:1;transform:translate(-50%)}.app-top-bar--left .app-control-button[data-shortcut]:before,.app-controls--settings .app-control-button[data-shortcut]:before{left:calc(100% + .45rem);top:calc(50% - .7rem);bottom:auto;transform:translateY(-50%)}.app-top-bar--left .app-control-button[data-shortcut]:after,.app-controls--settings .app-control-button[data-shortcut]:after{left:calc(100% + .45rem);top:calc(50% + .7rem);bottom:auto;transform:translateY(-50%)}.app-top-bar--left .app-control-button[data-shortcut]:hover:before,.app-top-bar--left .app-control-button[data-shortcut]:focus-visible:before,.app-controls--settings .app-control-button[data-shortcut]:hover:before,.app-controls--settings .app-control-button[data-shortcut]:focus-visible:before,.app-top-bar--left .app-control-button[data-shortcut]:hover:after,.app-top-bar--left .app-control-button[data-shortcut]:focus-visible:after,.app-controls--settings .app-control-button[data-shortcut]:hover:after,.app-controls--settings .app-control-button[data-shortcut]:focus-visible:after{transform:translateY(-50%)}.app-parchment-panel__device-input{display:none}.app-parchment-panel__search-status{margin:0;font-size:.86rem}.app-parchment-panel__empty-state{display:grid;place-items:center;flex:1 1 auto;min-height:7rem;padding:1rem .75rem;text-align:center;align-content:center}.app-parchment-panel__empty-state-label{margin:0 0 .45rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.65}.app-parchment-panel__empty-state-tip{margin:0;max-width:16rem;font-size:.98rem;line-height:1.45}.app-parchment-panel__results{display:flex;flex-direction:column;flex:1 1 auto;gap:.55rem;min-height:0;overflow-y:auto}.app-parchment-panel__result{padding:.65rem .75rem;border:1px solid color-mix(in srgb,currentColor 12%,transparent);border-radius:.8rem;background:color-mix(in srgb,currentColor 5%,transparent)}.app-parchment-panel__result--playable{border-color:#2563eb6b;background:#2563eb14;box-shadow:inset 0 0 0 1px #2563eb24}.app-parchment-panel__result--nonplayable{opacity:.82}.app-parchment-panel__result-cover-button{display:block;padding:0;margin:0 0 .55rem;border:0;background:transparent;cursor:pointer}.app-parchment-panel__result-cover-button:disabled{cursor:progress}.app-parchment-panel__result-cover-static{display:block;margin:0 0 .55rem}.app-parchment-panel__result-cover{display:block;width:64px;height:64px;border-radius:.55rem;object-fit:cover;background:color-mix(in srgb,currentColor 8%,transparent)}.app-parchment-panel__result-title{margin:0;font-size:.96rem}.app-parchment-panel__result-button{padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.app-parchment-panel__result-button--playable,.app-parchment-panel__result-link--playable{color:#1d4ed8;font-weight:600}.app-parchment-panel__result-button:hover,.app-parchment-panel__result-button:focus-visible{text-decoration:underline}.app-parchment-panel__result-button:disabled{opacity:.68;cursor:progress;text-decoration:none}.app-parchment-panel__result-meta{margin:.2rem 0 0;font-size:.84rem}.app-parchment-panel__result-text{color:inherit}.app-parchment-panel__result-link{padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;text-decoration-thickness:1px;text-underline-offset:.14em}.app-parchment-panel__result-link:hover,.app-parchment-panel__result-link:focus-visible{text-decoration:underline;text-decoration-thickness:2px}.app-parchment-panel__result-link:disabled{opacity:.68;cursor:progress;text-decoration:none}.app-parchment-panel__game-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem .85rem .55rem;border-bottom:1px solid color-mix(in srgb,currentColor 12%,transparent)}.app-parchment-panel__source-link{min-width:0;color:inherit;font-size:.82rem;font-weight:700;letter-spacing:.02em;text-decoration-thickness:1px;text-underline-offset:.14em}.app-parchment-panel__source-link:hover,.app-parchment-panel__source-link:focus-visible{text-decoration-thickness:2px}.app-parchment-panel__reset-button{padding:0;border:0;background:none;color:inherit;font:inherit;font-size:.86rem;text-align:left;cursor:pointer}.app-parchment-panel__reset-button:hover,.app-parchment-panel__reset-button:focus-visible{text-decoration:underline}.app-parchment-panel__game-status{margin:0;padding:0 .85rem .75rem;font-size:.86rem}:root[data-theme=dark] .app-parchment-panel__search-input{background:#111827b8}.app-parchment-panel__iframe{flex:1 1 auto;width:100%;min-height:0;border:0;background:#fff}body.app-shell--resizing-side-panel-corner .app-parchment-panel__iframe{pointer-events:none}.app-title{position:fixed;right:1rem;bottom:1rem;z-index:7;margin:0;font-size:3rem;font-weight:700;line-height:1;letter-spacing:normal;opacity:.25;-webkit-user-select:none;user-select:none;pointer-events:none;text-align:right}.cli-help-panel{--cli-help-panel-top: calc(2.65rem + 158px) ;--cli-help-panel-bottom-gap: .75rem;--cli-help-panel-collapsed-width: 6.5rem;--cli-help-panel-collapsed-height: 3.4rem;--cli-help-panel-open-width: min(33vw, calc(100vw - 2rem) );--cli-help-panel-dev-runner-height: 7.75rem;position:fixed;top:var(--cli-help-panel-top);right:.75rem;height:var(--cli-help-panel-collapsed-height);max-height:calc(100vh - var(--cli-help-panel-top) - var(--cli-help-panel-bottom-gap));z-index:10;display:flex;flex-direction:column;width:var(--cli-help-panel-collapsed-width);min-width:var(--cli-help-panel-collapsed-width);max-width:var(--cli-help-panel-open-width);padding:.9rem .95rem 1rem;border:1px solid rgba(15,23,42,.12);border-radius:1rem;background:#ffffffc2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 10px 28px #0f172a1f;overflow:hidden;transition:width .22s ease,height .26s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}.cli-help-panel--open{width:var(--cli-help-panel-open-width);height:calc(100vh - var(--cli-help-panel-top) - var(--cli-help-panel-bottom-gap))}:root[data-theme=dark] .cli-help-panel{border-color:#94a3b838;background:#111827c2;box-shadow:0 12px 32px #02061773}.cli-help-panel__header{display:flex;align-items:center;gap:.45rem;min-width:max-content}.cli-help-panel__toggle{display:inline-flex;align-items:center;justify-content:flex-start;gap:.45rem;min-width:max-content;min-height:1.5rem;padding:.15rem .35rem .15rem .2rem;border:0;border-radius:999px;background:transparent;color:inherit;cursor:pointer;flex-shrink:0}.cli-help-panel__toggle:hover,.cli-help-panel__toggle:focus-visible{background:#94a3b82e;outline:none}.cli-help-panel__arrow{transition:transform .22s ease}.cli-help-panel__arrow--open{transform:rotate(180deg)}.cli-help-panel__title{font-size:.95rem;font-weight:700;letter-spacing:.02em;text-transform:lowercase}.cli-help-panel__body{flex:1 1 auto;display:grid;grid-template-rows:minmax(0,20vh) minmax(0,1fr) minmax(var(--cli-help-panel-dev-runner-height),var(--cli-help-panel-dev-runner-height));gap:.85rem;min-height:0;max-height:0;opacity:0;margin-top:0;overflow:hidden;transition:opacity .16s ease,max-height .26s ease,margin-top .22s ease}.cli-help-panel--open .cli-help-panel__body{max-height:100%;opacity:1;margin-top:.85rem}.cli-help-panel__section{min-height:0;overflow:auto;padding:.15rem .1rem}.cli-help-panel__section--tree{padding:.45rem .55rem;border:1px solid rgba(148,163,184,.32);border-radius:.85rem;background:#ffffffb8;box-shadow:inset 0 0 0 1px #ffffff59}.cli-help-panel__section--images{display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding-top:.5rem;padding-bottom:.5rem}:root[data-theme=dark] .cli-help-panel__section--tree{border-color:#94a3b852;background:#0f172a5c;box-shadow:inset 0 0 0 1px #94a3b814}.cli-help-panel__tree-list{flex:1 1 auto;min-height:0;overflow:auto;margin:0;padding:0;list-style:none}.cli-help-panel__tree-list--nested{margin-top:.35rem;padding-left:1.1rem}.cli-help-panel__tree-item+.cli-help-panel__tree-item{margin-top:.3rem}.cli-help-panel__tree-details{display:block}.cli-help-panel__tree-summary{display:flex;align-items:flex-start;gap:.4rem;width:100%;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none;border-radius:.55rem}.cli-help-panel__tree-summary::-webkit-details-marker{display:none}.cli-help-panel__tree-chevron{display:inline-flex;align-items:center;justify-content:center;width:.8rem;margin-top:.1rem;font-size:.75rem;opacity:.7;transition:transform .18s ease}.cli-help-panel__tree-details[open]>.cli-help-panel__tree-summary .cli-help-panel__tree-chevron{transform:rotate(90deg)}.cli-help-panel__tree-label{display:block;flex:1 1 auto;min-width:0;font-size:.88rem;line-height:1.4;border-radius:.55rem}.cli-help-panel__tree-label--leaf{padding-left:1.2rem}.cli-help-panel__tree-label--selected{background:#2563eb1f}:root[data-theme=dark] .cli-help-panel__tree-label--selected{background:#60a5fa2e}.cli-help-panel__image-link{display:block;width:100%;padding:.18rem 0;border-radius:.55rem;border:0;background:transparent;color:#2563eb;cursor:pointer;font:inherit;text-align:left;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.12em}.cli-help-panel__image-link:hover,.cli-help-panel__image-link:focus-visible,.cli-help-panel__image-link--active{color:#1d4ed8}.cli-help-panel__image-link--active{background:#2563eb14}:root[data-theme=dark] .cli-help-panel__image-link{color:#93c5fd}:root[data-theme=dark] .cli-help-panel__image-link:hover,:root[data-theme=dark] .cli-help-panel__image-link:focus-visible,:root[data-theme=dark] .cli-help-panel__image-link--active{color:#bfdbfe}:root[data-theme=dark] .cli-help-panel__image-link--active{background:#60a5fa1f}.cli-help-panel__inline-code{padding:.05rem .3rem;border-radius:.35rem;background:#94a3b829;font-size:.82em}:root[data-theme=dark] .cli-help-panel__inline-code{background:#94a3b838}.cli-help-panel__image-preview{display:flex;flex-direction:column;flex:1 1 auto;align-items:center;justify-content:center;gap:.35rem;min-height:0}.cli-help-panel__image{width:auto;max-width:100%;max-height:calc((100% - 2.4rem)/2);border-radius:.8rem;border:1px solid rgba(15,23,42,.12);background:#ffffffd1;object-fit:contain;display:block}:root[data-theme=dark] .cli-help-panel__image{border-color:#94a3b838;background:#0f172acc}.cli-help-panel__image-arrow{font-size:1.3rem;font-weight:700;opacity:.72}.cli-help-panel__image-placeholder{margin:0;flex:1 1 auto;font-size:.84rem;line-height:1.45;opacity:.68}.cli-help-panel__script-runner{height:var(--cli-help-panel-dev-runner-height);padding-top:.2rem;border-top:1px solid rgba(148,163,184,.18)}.cli-help-panel__script-runner-header{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.72}.cli-help-panel__script-runner-copy{margin:.35rem 0 0;font-size:.78rem;line-height:1.4;opacity:.82}.cli-help-panel__script-runner-actions{display:flex;gap:.45rem;margin-top:.55rem}.cli-help-panel__script-button{flex:1 1 0;padding:.45rem .55rem;border:1px solid rgba(37,99,235,.28);border-radius:.7rem;background:#2563eb14;color:#1d4ed8;font:inherit;font-size:.76rem;font-weight:600;cursor:pointer}.cli-help-panel__script-button--primary{background:#2563eb24}.cli-help-panel__script-button:disabled{cursor:default;opacity:.5}.cli-help-panel__script-status,.cli-help-panel__script-error{margin:.45rem 0 0;font-size:.76rem;line-height:1.35}.cli-help-panel__script-error{color:#b91c1c}:root[data-theme=dark] .cli-help-panel__script-runner{border-top-color:#94a3b829}:root[data-theme=dark] .cli-help-panel__script-button{border-color:#93c5fd47;background:#3b82f61f;color:#bfdbfe}:root[data-theme=dark] .cli-help-panel__script-button--primary{background:#3b82f62e}:root[data-theme=dark] .cli-help-panel__script-error{color:#fca5a5}.welcome-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:1.5rem}.welcome-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a66}.welcome-panel{position:relative;width:min(32rem,calc(100vw - 3rem));max-height:min(28rem,calc(100vh - 3rem));overflow:auto;border-radius:1rem;background:#fff;box-shadow:0 1.5rem 3rem #0f172a33;color:#111827}:root[data-theme=dark] .welcome-panel{background:#111827;color:#f3f4f6;box-shadow:0 1.5rem 3rem #00000073}.welcome-content{display:flex;flex-direction:column;gap:1rem;padding:1.4rem 1.5rem 1.2rem}.welcome-heading{margin:0;font:700 1.2rem/1.25 IBM Plex Sans,Inter,system-ui,sans-serif}.welcome-body{margin:0;font:500 .98rem/1.55 "IBM Plex Serif",Georgia,serif}.welcome-actions{display:flex;justify-content:flex-end}.welcome-confirm{border:1px solid color-mix(in srgb,currentColor 20%,transparent);border-radius:999px;background:transparent;color:inherit;font:600 .92rem/1 Inter,system-ui,sans-serif;padding:.7rem 1rem;cursor:pointer}.welcome-confirm:hover{background:color-mix(in srgb,currentColor 8%,transparent)}.welcome-confirm:focus-visible{outline:2px solid color-mix(in srgb,currentColor 55%,transparent);outline-offset:2px}.tips-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:41;display:grid;place-items:center;padding:1.5rem}.tips-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a80}.tips-panel{position:relative;width:min(36rem,calc(100vw - 3rem));max-height:min(30rem,calc(100vh - 3rem));overflow:auto;border-radius:1.1rem;background:radial-gradient(circle at top right,color-mix(in srgb,#eab308 12%,transparent),transparent 35%),linear-gradient(180deg,#fffdf6,#fff);box-shadow:0 1.5rem 3rem #0f172a3d;color:#111827}:root[data-theme=dark] .tips-panel{background:radial-gradient(circle at top right,color-mix(in srgb,#f59e0b 15%,transparent),transparent 35%),linear-gradient(180deg,#101725,#111827);color:#f3f4f6;box-shadow:0 1.5rem 3rem #00000080}.tips-content{display:flex;flex-direction:column;gap:1rem;padding:1.45rem 1.55rem 1.35rem}.tips-kicker{margin:0;color:#92400e;font:700 .74rem/1.2 IBM Plex Sans,Inter,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}:root[data-theme=dark] .tips-kicker{color:#fbbf24}.tips-heading{margin:0;font:700 1.28rem/1.2 IBM Plex Sans,Inter,system-ui,sans-serif}.tips-body{margin:0;font:500 1rem/1.65 "IBM Plex Serif",Georgia,serif}.tips-checkbox-row{display:inline-flex;align-items:center;gap:.7rem;width:fit-content;font:600 .92rem/1.4 IBM Plex Sans,Inter,system-ui,sans-serif}.tips-checkbox-row input{inline-size:1rem;block-size:1rem}.tips-actions{display:flex;justify-content:space-between;gap:.85rem}.tips-stepper-actions{display:inline-flex;justify-content:flex-end;gap:.65rem;margin-left:auto}.tips-cancel,.tips-back,.tips-next{border-radius:999px;padding:.72rem 1rem;font:600 .92rem/1 IBM Plex Sans,Inter,system-ui,sans-serif;cursor:pointer}.tips-cancel,.tips-back{border:1px solid color-mix(in srgb,currentColor 18%,transparent);background:transparent;color:inherit}.tips-next{border:none;background:#0f172a;color:#f8fafc}:root[data-theme=dark] .tips-next{background:#f8fafc;color:#111827}.tips-cancel:hover,.tips-back:hover,.tips-cancel:focus-visible{background:color-mix(in srgb,currentColor 8%,transparent)}.tips-back:focus-visible{background:color-mix(in srgb,currentColor 8%,transparent)}.tips-next:hover,.tips-next:focus-visible{opacity:.92}.tips-cancel:focus-visible,.tips-back:focus-visible,.tips-next:focus-visible{outline:2px solid color-mix(in srgb,currentColor 55%,transparent);outline-offset:2px}.app-controls{position:fixed;display:flex;flex-wrap:nowrap;gap:.5rem;z-index:12}.app-top-bar{position:fixed;top:1rem;display:flex;align-items:flex-start;gap:.5rem;z-index:12}.app-top-bar--left{left:1rem}.app-top-bar__actions{display:flex;align-items:flex-start;min-height:2.5rem}.app-controls--settings{top:4rem;left:1rem;flex-direction:column;align-items:center;max-width:3rem}.app-map-name-chip{position:static;z-index:auto;transition:max-width .18s ease}.app-control-button{display:grid;place-items:center;flex:0 0 auto;width:2.5rem;height:2.5rem;padding:0;border:1px solid currentColor;border-radius:.5rem;background:transparent;color:inherit;cursor:pointer;opacity:.6;transition:opacity .15s ease}.app-control-chip{display:flex;align-items:center;height:2.5rem;min-width:0;max-width:min(18rem,calc(100vw - 24rem));padding:0 .85rem;border:1px solid currentColor;border-radius:.5rem;background:transparent;color:inherit;font-size:.95rem;font-weight:600;line-height:1;opacity:.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-control-button--plain,.app-control-chip--plain{border-color:transparent}.app-map-name-chip{display:flex;flex-direction:column;align-items:flex-start;gap:.08rem;min-height:2.5rem;height:auto;padding-top:.2rem;padding-bottom:.2rem;font-size:1.9rem}.app-map-name-chip__map-title{display:block;line-height:1.05}.app-map-name-chip__game-title{display:block;font-size:.78rem;line-height:1.2;opacity:.72;letter-spacing:.01em}.app-control-button--active-history{opacity:1;background:color-mix(in srgb,currentColor 12%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,currentColor 18%,transparent)}.app-control-button:hover,.app-control-button:focus-visible{opacity:1}.app-control-button:disabled{cursor:default}.desktop-only-panel{width:min(28rem,calc(100vw - 3rem));display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem 1.5rem 1.75rem;border-radius:1.25rem;background:color-mix(in srgb,#ffffff 90%,transparent);box-shadow:0 24px 60px #0f172a29}:root[data-theme=dark] .desktop-only-panel{background:color-mix(in srgb,#111827 88%,transparent);box-shadow:0 16px 44px #00000061}.desktop-only-art{display:flex;justify-content:center;align-items:center;min-height:10rem;overflow:hidden}.desktop-only-art-image{width:min(16rem,100%);height:auto;display:block;transform:scaleX(-1);filter:saturate(.95) contrast(1.02)}.desktop-only-copy{display:flex;flex-direction:column;gap:.6rem}.desktop-only-eyebrow{margin:0;font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.58}.desktop-only-title{margin:0;font:700 clamp(2rem,8vw,2.8rem) / .95 "IBM Plex Serif",Georgia,serif;letter-spacing:-.03em}.desktop-only-body{margin:0;max-width:22rem;font-size:1rem;line-height:1.55;opacity:.82}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:720px){.app-title{font-size:2.5rem}}.help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:180;display:grid;place-items:center}.help-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a47}.help-panel{position:relative;z-index:1;width:min(36rem,calc(100vw - 2rem));max-height:min(80vh,42rem);display:flex;flex-direction:column;gap:1rem;padding:1.25rem;border:1px solid rgba(99,102,241,.25);border-radius:.875rem;background:#ffffffb8;color:#111827;box-shadow:6px 6px 6px #0f172a38}:root[data-theme=dark] .help-panel{background:#0f172ab8;color:#f3f4f6;border-color:#818cf847;box-shadow:6px 6px 6px #0000006b}.help-close{align-self:flex-end;width:2rem;height:2rem;margin:-.25rem -.25rem 0 0;padding:0;border:none;border-radius:.5rem;background:transparent;color:inherit;font-size:1.25rem;line-height:1;cursor:pointer}.help-close:hover,.help-close:focus-visible{background:#6366f11a}.help-content{display:flex;flex-direction:column;gap:1rem;min-height:0;overflow-y:auto;padding-right:.35rem}.help-heading{margin:0;font-size:1.35rem;font-weight:700}.help-section{display:flex;flex-direction:column;gap:.5rem}.help-section-heading{margin:0;font-size:.95rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;opacity:.8}.help-subheading{margin:.35rem 0 0;font-size:.92rem;font-weight:700;letter-spacing:.01em}.help-rule{width:100%;margin:.2rem 0;border:none;border-top:1px solid rgba(15,23,42,.12)}:root[data-theme=dark] .help-rule{border-top-color:#e2e8f024}.help-body{margin:0;font-size:.95rem;line-height:1.6}.help-list{margin:0;padding-left:1.25rem;font-size:.95rem;line-height:1.6}.help-list-item+.help-list-item{margin-top:.2rem}.help-inline-code{padding:.08rem .32rem;border-radius:.3rem;background:#0f172a14;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.9em}:root[data-theme=dark] .help-inline-code{background:#e2e8f024}.map-selection-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:stretch;justify-content:stretch;background:#fff;z-index:100}.map-selection-shell{display:grid;grid-template-columns:minmax(22rem,1fr) 1fr;width:100%;min-height:100%}.map-selection-dialog{width:min(30rem,calc(50vw - 4rem));max-height:calc(100vh - 4rem);overflow-y:auto;margin:2rem;padding:2rem 2rem 2.25rem;border-radius:1rem;background-color:#fff;color:#111827;box-shadow:0 24px 60px #0f172a2e;align-self:center;justify-self:center}:root[data-theme=dark] .map-selection-dialog{background-color:#1f2937;color:#f3f4f6;box-shadow:0 8px 30px #00000080}:root[data-theme=dark] .map-selection-backdrop{background:#fff}.map-selection-art{position:relative;min-width:0;overflow:hidden;display:flex;align-items:center;justify-content:center}.map-selection-art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(270deg,rgba(255,255,255,.12),transparent 18%);pointer-events:none}:root[data-theme=dark] .map-selection-art:after{background:linear-gradient(270deg,rgba(255,255,255,.06),transparent 18%)}.map-selection-art-image{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;object-position:center;transform:scaleX(-1);display:block;filter:saturate(.95) contrast(1.02)}.map-selection-heading{margin:0 0 1.25rem;font-size:1.5rem;font-weight:700}.map-selection-subheading{margin:0 0 .5rem;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;opacity:.55}.map-selection-section{margin-bottom:1.5rem}.map-selection-section:last-child{margin-bottom:0}.map-selection-error{margin:0 0 1rem;padding:.5rem .75rem;border-radius:.375rem;background:#fef2f2;color:#b91c1c;font-size:.875rem}:root[data-theme=dark] .map-selection-error{background:#451a1a;color:#fca5a5}.map-selection-empty{margin:0;font-size:.875rem;opacity:.55}.map-selection-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.map-selection-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.5rem .75rem;border:1px solid transparent;border-radius:.375rem;background:transparent;color:inherit;cursor:pointer;font:inherit;text-align:left;transition:background .12s ease}.map-selection-item:hover,.map-selection-item:focus-visible{background:#0000000f}:root[data-theme=dark] .map-selection-item:hover,:root[data-theme=dark] .map-selection-item:focus-visible{background:#ffffff14}.map-selection-item-name{font-weight:500}.map-selection-item-date{font-size:.75rem;opacity:.5}.map-selection-list-item{display:flex;align-items:center;gap:.25rem}.map-selection-list-item .map-selection-item{flex:1;min-width:0}.map-selection-rename-row{flex:1;min-width:0;display:flex;align-items:center;gap:.4rem}.map-selection-item-actions,.map-selection-rename-actions{display:flex;align-items:center;gap:.125rem;flex-shrink:0}.map-selection-delete-btn{display:grid;place-items:center;width:2rem;height:2rem;flex-shrink:0;padding:0;border:none;border-radius:.375rem;background:transparent;color:inherit;cursor:pointer;font-size:.85rem;opacity:0;transition:opacity .12s ease,background .12s ease}.map-selection-rename-btn{height:2rem;flex-shrink:0;padding:0 .55rem;border:none;border-radius:.375rem;background:transparent;color:inherit;cursor:pointer;font:inherit;font-size:.75rem;font-weight:600;opacity:0;transition:opacity .12s ease,background .12s ease}.map-selection-list-item:hover .map-selection-delete-btn,.map-selection-list-item:hover .map-selection-rename-btn,.map-selection-delete-btn:focus-visible{opacity:.55}.map-selection-rename-btn:focus-visible{opacity:.75}.map-selection-rename-btn:hover,.map-selection-rename-btn:focus-visible{background:#3b82f61a;color:#2563eb}:root[data-theme=dark] .map-selection-rename-btn:hover,:root[data-theme=dark] .map-selection-rename-btn:focus-visible{background:#60a5fa29;color:#93c5fd}.map-selection-delete-btn:hover{opacity:1!important;background:#dc26261a;color:#dc2626}:root[data-theme=dark] .map-selection-delete-btn:hover{background:#f8717126;color:#f87171}.map-selection-delete-confirm{display:flex;gap:.125rem;flex-shrink:0}.map-selection-delete-confirm-btn,.map-selection-delete-cancel-btn,.map-selection-rename-save-btn,.map-selection-rename-cancel-btn{display:grid;place-items:center;width:1.75rem;height:1.75rem;padding:0;border:none;border-radius:.375rem;cursor:pointer;font-size:.8rem;font-weight:600;transition:background .12s ease}.map-selection-rename-save-btn{width:auto;min-width:3.4rem;padding:0 .7rem;background:#2563eb;color:#fff}.map-selection-rename-save-btn:hover,.map-selection-rename-save-btn:focus-visible{background:#1d4ed8}.map-selection-rename-save-btn:disabled{cursor:default;opacity:.6}.map-selection-rename-cancel-btn{width:auto;min-width:4.5rem;padding:0 .7rem;background:#00000014;color:inherit}.map-selection-rename-cancel-btn:hover,.map-selection-rename-cancel-btn:focus-visible{background:#00000024}:root[data-theme=dark] .map-selection-rename-cancel-btn{background:#ffffff1a}:root[data-theme=dark] .map-selection-rename-cancel-btn:hover,:root[data-theme=dark] .map-selection-rename-cancel-btn:focus-visible{background:#ffffff2e}.map-selection-delete-confirm-btn{background:#dc2626;color:#fff}.map-selection-delete-confirm-btn:hover,.map-selection-delete-confirm-btn:focus-visible{background:#b91c1c}.map-selection-delete-cancel-btn{background:#00000014;color:inherit}.map-selection-delete-cancel-btn:hover,.map-selection-delete-cancel-btn:focus-visible{background:#00000024}:root[data-theme=dark] .map-selection-delete-cancel-btn{background:#ffffff1a}:root[data-theme=dark] .map-selection-delete-cancel-btn:hover,:root[data-theme=dark] .map-selection-delete-cancel-btn:focus-visible{background:#ffffff2e}.map-selection-create-row{display:flex;gap:.5rem}.map-selection-input{flex:1;padding:.45rem .65rem;border:1px solid rgba(0,0,0,.2);border-radius:.375rem;background:transparent;color:inherit;font:inherit;font-size:.9rem}.map-selection-input--inline{min-width:0;padding-top:.38rem;padding-bottom:.38rem}.map-selection-item-date--inline{flex-shrink:0}:root[data-theme=dark] .map-selection-input{border-color:#fff3}.map-selection-input:focus{outline:2px solid #3b82f6;outline-offset:1px}.map-selection-btn{padding:.45rem 1rem;border:none;border-radius:.375rem;background:#3b82f6;color:#fff;font:inherit;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .12s ease}.map-selection-btn:hover,.map-selection-btn:focus-visible{background:#2563eb}.map-selection-file-input{display:none}@media(max-width:900px){.map-selection-shell{grid-template-columns:1fr}.map-selection-dialog{width:min(30rem,calc(100vw - 2rem));max-height:calc(100vh - 2rem);margin:1rem;justify-self:center}.map-selection-art{display:none}}.map-canvas{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background-color:#eee}.map-canvas:focus-visible{outline:2px solid rgba(37,99,235,.65);outline-offset:-2px}.map-canvas--grid{--grid-color: rgba(0, 0, 0, .07)}.map-canvas-grid-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;background-image:linear-gradient(var(--grid-color) 1px,transparent 1px),linear-gradient(90deg,var(--grid-color) 1px,transparent 1px);background-size:40px 40px}.map-canvas-theme-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;display:block;background-repeat:repeat;pointer-events:none}.map-canvas-grid-layer--animated{transition:background-position .32s cubic-bezier(.22,1,.36,1)}.map-canvas--panning{cursor:grabbing}.map-canvas--map-mode{cursor:default}.map-canvas--draw-mode{cursor:crosshair}.map-canvas--pan-ready{cursor:grab}:root[data-theme=dark] .map-canvas--grid{--grid-color: rgba(255, 255, 255, .06)}:root[data-theme=dark] .map-canvas-grid-layer{--grid-color: rgba(255, 255, 255, .06)}:root[data-theme=dark] .map-canvas{background-color:#282828}.map-canvas-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;transition:opacity .16s ease,filter .16s ease}.map-canvas-content{position:absolute;top:0;right:0;bottom:0;left:0;will-change:transform}.map-canvas-background-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--map-layer-background);pointer-events:none}.map-canvas-reference-image-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--map-layer-reference-image);pointer-events:none}.map-canvas-reference-image{position:absolute;max-width:none;-webkit-user-select:none;user-select:none;pointer-events:auto}.map-canvas-background-chunk{position:absolute;width:256px;height:256px;image-rendering:pixelated;pointer-events:none}.map-canvas-content--animated{transition:transform .32s cubic-bezier(.22,1,.36,1)}.map-canvas-scene--editor-open{opacity:.35;filter:saturate(.85);pointer-events:none}.map-canvas-selection-box{position:absolute;border:1px solid #ef4444;background:#ef44440d;pointer-events:none;z-index:var(--map-layer-selection-box)}.map-canvas-export-region{position:absolute;border:1px solid #2563eb;background:#2563eb14;box-shadow:inset 0 0 0 1px #93c5fd66;pointer-events:none;z-index:var(--map-layer-export-region)}.map-canvas-component-bounds-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.map-canvas-component-bounds-box{position:absolute;box-sizing:border-box;border:2px solid #ef4444;border-radius:.9rem;background:#ef444417;box-shadow:0 0 0 1px color-mix(in srgb,white 45%,transparent)}.map-canvas-connection-create-menu{z-index:12;display:grid;grid-template-columns:minmax(0,1fr);gap:.9rem;min-width:13.5rem;padding:1rem;border-radius:1rem;background:#fffffff5;box-shadow:0 18px 40px #0f172a33;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.map-canvas-connection-create-menu .room-editor-primary,.map-canvas-connection-create-menu .room-editor-secondary{width:100%}.map-canvas-connection-create-icon-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;justify-items:center}.map-canvas-connection-create-icon-button{width:100%;min-height:4.5rem;display:inline-flex;align-items:center;justify-content:center;padding:.5rem;border:none;border-radius:.9rem;background:transparent;color:#334155;cursor:pointer;transition:background-color .12s ease,transform .08s ease,color .12s ease}.map-canvas-connection-create-icon-button:hover,.map-canvas-connection-create-icon-button:focus-visible{background:#2563eb1a;color:#1d4ed8;outline:none}.map-canvas-connection-create-icon-button:active{transform:translateY(1px) scale(.97);background:#2563eb29}.map-canvas-connection-create-icon{display:block;overflow:visible}:root[data-theme=dark] .map-canvas-connection-create-menu{background:#0f172af0;box-shadow:0 18px 40px #02061766}:root[data-theme=dark] .map-canvas-connection-create-icon-button{color:#cbd5e1}:root[data-theme=dark] .map-canvas-connection-create-icon-button:hover,:root[data-theme=dark] .map-canvas-connection-create-icon-button:focus-visible{background:#818cf829;color:#c7d2fe}:root[data-theme=dark] .map-canvas-connection-create-icon-button:active{background:#818cf838}.map-canvas-actions{position:fixed;left:1rem;bottom:1rem;display:flex;gap:.5rem;align-items:flex-end;z-index:12}.map-canvas-actions--top-bar{position:static;left:auto;bottom:auto;align-items:flex-start}.background-image-controls{position:relative}.background-image-panel{position:absolute;left:0;top:calc(100% + .5rem);z-index:20;width:min(24rem,calc(100vw - 2rem));display:grid;gap:.75rem;padding:.9rem;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:.85rem;background:#ffffffeb;color:inherit;box-shadow:6px 6px 14px #0f172a29;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}:root[data-theme=dark] .background-image-panel{background:#0f172aeb;box-shadow:6px 6px 18px #00000059}.background-image-panel__header{display:grid;gap:.2rem}.background-image-panel__header span{color:color-mix(in srgb,currentColor 68%,transparent);font-size:.85rem}.background-image-panel__actions,.background-image-panel__url-row{display:flex;gap:.5rem}.background-image-panel__file-input{display:none}.background-image-panel__field{display:grid;gap:.35rem;font-size:.9rem}.background-image-panel__field input{width:100%;min-width:0;padding:.55rem .65rem;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:.65rem;background:color-mix(in srgb,currentColor 3%,transparent);color:inherit;font:inherit}.background-image-panel__field input:focus-visible{outline:2px solid color-mix(in srgb,currentColor 18%,transparent);outline-offset:1px}.background-image-panel__url-row input{flex:1 1 auto}.background-image-panel__meta{margin:0;color:color-mix(in srgb,currentColor 68%,transparent);font-size:.82rem}.background-image-panel__error{margin:0;color:#b91c1c;font-size:.85rem}:root[data-theme=dark] .background-image-panel__error{color:#fca5a5}.export-png-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:190;display:grid;place-items:center}.export-png-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a47}.export-png-panel{position:relative;z-index:1;width:min(26rem,calc(100vw - 2rem));border:1px solid rgba(99,102,241,.25);border-radius:.875rem;background:#ffffffd1;color:#111827;box-shadow:6px 6px 6px #0f172a38}:root[data-theme=dark] .export-png-panel{background:#0f172ad6;color:#f3f4f6;border-color:#818cf847;box-shadow:6px 6px 6px #0000006b}.export-png-close{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;border:none;border-radius:.5rem;background:transparent;color:inherit;font-size:1.25rem;line-height:1;cursor:pointer}.export-png-close:hover,.export-png-close:focus-visible{background:#6366f11a}.export-png-content{display:grid;gap:.9rem;padding:1.25rem}.export-png-heading{margin:0;font-size:1.05rem;font-weight:700}.export-png-field{display:grid;gap:.25rem;font-size:.9rem}.export-png-field select,.export-png-field input[type=number]{width:100%;padding:.45rem .55rem;border:1px solid rgba(15,23,42,.12);border-radius:.45rem;background:transparent;color:inherit}:root[data-theme=dark] .export-png-field select,:root[data-theme=dark] .export-png-field input[type=number]{border-color:#e2e8f029}.export-png-checkbox{display:flex;align-items:center;gap:.5rem;font-size:.92rem}.export-png-help{margin:0;font-size:.85rem;opacity:.8}.export-png-region-row{display:flex;align-items:center;gap:.75rem}.export-png-summary{display:grid;gap:.2rem;padding:.7rem .8rem;border-radius:.5rem;background:#6366f114;font-size:.86rem}:root[data-theme=dark] .export-png-summary{background:#818cf81f}.export-png-error{margin:0;color:#b91c1c;font-size:.88rem}:root[data-theme=dark] .export-png-error{color:#fca5a5}.export-png-actions{display:flex;justify-content:flex-end;gap:.6rem}.export-png-secondary,.export-png-primary{padding:.5rem .85rem;border-radius:.5rem;cursor:pointer}.export-png-secondary{border:1px solid rgba(15,23,42,.12);background:transparent;color:inherit}.export-png-primary{border:none;background:#2563eb;color:#fff}.export-png-primary:disabled{opacity:.6;cursor:default}.map-drawing-toolbar{position:absolute;top:6.25rem;left:.75rem;z-index:14;display:flex;flex-direction:column;gap:.5rem;width:5.5rem;padding:.6rem;border-radius:.75rem;background:#ffffffd1;box-shadow:0 8px 20px #0f172a1f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}:root[data-theme=dark] .map-drawing-toolbar{background:#0f172ad1;box-shadow:0 8px 24px #00000047}.map-drawing-toolbar-tools{display:flex;flex-direction:column;gap:.35rem}.map-drawing-tool-button{width:100%;padding:.35rem .45rem;border:1px solid rgba(15,23,42,.12);border-radius:.45rem;background:transparent;color:inherit;cursor:pointer;font:inherit;font-size:.8rem;text-align:left}.map-drawing-tool-button--icon{display:grid;place-items:center;text-align:center;padding:.45rem}:root[data-theme=dark] .map-drawing-tool-button{border-color:#e2e8f026}.map-drawing-tool-button--active{background:#0e749024;border-color:#0e749059}.map-drawing-toolbar-field{display:flex;flex-direction:column;gap:.2rem;font-size:.72rem}.map-drawing-toolbar-field--color{position:relative}.map-drawing-toolbar-field input[type=text]{width:100%;padding:.25rem .35rem;border:1px solid rgba(15,23,42,.12);border-radius:.35rem;background:transparent;color:inherit}:root[data-theme=dark] .map-drawing-toolbar-field input[type=text]{border-color:#e2e8f026}.map-drawing-color-swatch{width:100%;height:2rem;padding:0;border:none;border-radius:.35rem;background:var(--swatch-color);cursor:pointer}.map-drawing-color-picker-popover{position:absolute;top:1.35rem;left:calc(100% + .4rem);z-index:10;display:grid;gap:.5rem;min-width:10rem;padding:.5rem;border-radius:.5rem;background:#fffffff5;box-shadow:0 10px 24px #0f172a2e}:root[data-theme=dark] .map-drawing-color-picker-popover{background:#0f172af5;box-shadow:0 10px 24px #02061761}.map-drawing-color-surface{position:relative;width:10rem;height:8rem;border-radius:.4rem;background-image:linear-gradient(to top,#000,#0000),linear-gradient(to right,rgba(255,255,255,1),var(--hue-color));cursor:crosshair}.map-drawing-color-surface-thumb{position:absolute;width:.75rem;height:.75rem;border:2px solid #ffffff;border-radius:999px;box-shadow:0 0 0 1px #0f172a73;transform:translate(-50%,-50%)}.map-drawing-color-picker-controls{display:flex;align-items:center;gap:.5rem}.map-drawing-color-picker-preview{width:1.75rem;height:1.75rem;flex:0 0 auto;border-radius:999px;border:1px solid rgba(15,23,42,.12);background:var(--swatch-color)}:root[data-theme=dark] .map-drawing-color-picker-preview{border-color:#e2e8f029}.map-drawing-color-hue-slider{flex:1 1 auto;margin:0;accent-color:#2563eb}.map-drawing-toolbar-field input[type=range]{width:100%}.map-minimap{position:absolute;top:.75rem;right:.75rem;display:flex;flex-direction:column;gap:.25rem;z-index:12;width:min(180px,calc(100vw - 2rem));padding:.4rem;border:1px solid rgba(15,23,42,.12);border-radius:.9rem;background:#ffffffb8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 10px 28px #0f172a1f;outline:none;transition:right .18s ease}.map-minimap:focus-visible{box-shadow:0 0 0 2px #3b82f68c,0 10px 28px #0f172a1f}:root[data-theme=dark] .map-minimap{border-color:#94a3b838;background:#111827b8;box-shadow:0 12px 32px #02061773}.map-minimap--disabled{opacity:.65;pointer-events:none}.map-minimap__svg{width:100%;height:auto;border-radius:.75rem;cursor:pointer}.map-minimap__frame{fill:#f1f5f9b3;stroke:#0f172a29}:root[data-theme=dark] .map-minimap__background{opacity:.95}.map-minimap__background{image-rendering:pixelated}:root[data-theme=dark] .map-minimap__frame{fill:#0f172ab8;stroke:#94a3b838}.map-minimap__connection{stroke-width:1.5;opacity:.7}.map-minimap__connection--selected{stroke-width:2.5;opacity:1}.map-minimap__sticky-note-link{stroke:#94a3b8cc;stroke-width:1.5;stroke-dasharray:3 2;opacity:.75}:root[data-theme=dark] .map-minimap__sticky-note-link{stroke:#94a3b8b3}.map-minimap__sticky-note-link--selected{stroke:#f59e0b;stroke-width:2;opacity:1}.map-minimap__room path{fill:#dbeafe;stroke:#0f172a6b;stroke-width:1.2}:root[data-theme=dark] .map-minimap__room path{fill:#334155;stroke:#e2e8f066}.map-minimap__room--selected path{fill:#fed7aa;stroke:#f59e0b;stroke-width:1.8}.map-minimap__sticky-note{fill:#fef9c3;stroke:#b4530973;stroke-width:1.2}:root[data-theme=dark] .map-minimap__sticky-note{fill:#713f12;stroke:#fde04766}.map-minimap__sticky-note--selected{fill:#fed7aa;stroke:#f59e0b;stroke-width:1.8}.map-minimap__viewport{fill:#3b82f614;stroke:#2563eb;stroke-width:2;cursor:grab}.map-minimap__viewport:active{cursor:grabbing}.map-minimap__hint{padding:0 .2rem .1rem;font-size:.72rem;font-weight:600;letter-spacing:.02em;opacity:.58;-webkit-user-select:none;user-select:none}@media(max-width:700px){.map-minimap{width:min(144px,calc(100vw - 2rem))}.cli-help-panel{--cli-help-panel-open-width: min(33vw, calc(100vw - 2rem) )}}@media(prefers-reduced-motion:reduce){.map-minimap,.cli-help-panel,.cli-help-panel__arrow,.cli-help-panel__body{transition:none}}.room-node{position:absolute;top:0;left:0;overflow:visible;box-shadow:0 1px 3px #0000001a;cursor:move;-webkit-user-select:none;user-select:none;z-index:var(--map-layer-rooms);transition:box-shadow .12s ease}.pseudo-room-node{position:absolute;top:0;left:0;overflow:visible;-webkit-user-select:none;user-select:none;z-index:var(--map-layer-pseudo-rooms)}.room-node:hover{box-shadow:0 2px 8px #6366f140}.room-node:focus-visible,.pseudo-room-node:focus-visible{outline:2px solid rgba(37,99,235,.72);outline-offset:2px}.room-node--dragging,.pseudo-room-node--dragging{opacity:.85;box-shadow:0 4px 16px #6366f159;z-index:var(--map-layer-dragging-node);cursor:grabbing;transition:none}:root[data-theme=dark] .room-node{box-shadow:0 1px 3px #0000004d}:root[data-theme=dark] .room-node:hover{box-shadow:0 2px 8px #818cf84d}.room-node-shape{fill:#fff;stroke:#6366f1;stroke-width:2}:root[data-theme=dark] .room-node-shape{fill:#1e293b;stroke:#818cf8}.room-selection-outline{fill:none;stroke:#ef4444;stroke-width:3;pointer-events:none}.room-node-name{font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:.8rem;font-weight:500;letter-spacing:.01em;white-space:nowrap;pointer-events:none}.room-node-name--low-zoom{letter-spacing:.015em}.room-node-items{box-sizing:border-box;width:132px;color:inherit;font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:.67rem;font-weight:400;letter-spacing:.005em;opacity:.78;pointer-events:auto;display:flex;justify-content:flex-end}.room-node-items__content{display:inline-flex;flex-direction:column;align-items:flex-end;gap:1px;max-height:54px;overflow:hidden;opacity:.94;transform:translateY(0);transition:max-height .16s ease,opacity .16s ease,transform .16s ease}.room-node-items--expanded .room-node-items__content{max-height:140px;opacity:1;transform:translateY(1px)}.room-node-items__line{white-space:nowrap;line-height:1.15;text-align:right}.room-node-items__toggle{margin:1px 0 0;padding:0;border:0;background:none;color:#4f46e5;font:inherit;font-weight:600;letter-spacing:.005em;cursor:pointer;text-align:right}.room-node-items__toggle:hover{text-decoration:underline}.room-node-items__toggle:focus-visible{outline:2px solid rgba(99,102,241,.5);outline-offset:2px;border-radius:3px}:root[data-theme=dark] .room-node-items__toggle{color:#a5b4fc}.sticky-note-wrapper{position:absolute;z-index:var(--map-layer-sticky-notes);overflow:visible}.sticky-note-link-handle{position:absolute;top:-10px;right:-10px;z-index:5;width:22px;height:22px;border:1px solid rgba(120,105,18,.45);border-radius:999px;background:#fffbd6f2;color:#6a5a12;font:700 15px/1 Georgia,serif;cursor:crosshair;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px #6c5d122e}.sticky-note-link-handle:hover{background:#fff7b8fa}.sticky-note-link-handle:focus{outline:2px solid rgba(99,102,241,.55);outline-offset:1px}.sticky-note{position:relative;box-sizing:border-box;padding:16px 18px 16px 16px;background:#f1e67d;color:#4c4312;border:1px solid rgba(120,105,18,.34);box-shadow:0 10px 22px #6c5d1229;overflow:hidden;clip-path:polygon(0 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%)}.sticky-note-corner{position:absolute;right:0;bottom:0;width:18px;height:18px;background:linear-gradient(135deg,rgba(196,176,54,.32) 0%,rgba(196,176,54,.32) 50%,transparent 50%,transparent 100%)}.sticky-note-text,.sticky-note-textarea{font:500 15px/20px Georgia,serif;color:inherit;white-space:pre-wrap;word-break:break-word}.sticky-note-textarea{display:block;width:100%;min-height:0;padding:0;border:0;background:transparent;resize:none;overflow:hidden;outline:none}.sticky-note-link,.sticky-note-link-preview{pointer-events:none}:root[data-theme=dark] .sticky-note-link-handle{border-color:#e2d38573;background:#413b15f5;color:#f3e9a7}:root[data-theme=dark] .sticky-note-link-handle:hover{background:#574f1cfa}.direction-handle{fill:#6366f1;stroke:#fff;stroke-width:2;cursor:crosshair;transition:fill .1s ease;pointer-events:auto}.direction-handle:hover{fill:#4f46e5}.direction-handle--vertical{fill:#0f766e}.direction-handle--vertical:hover{fill:#0d9488}:root[data-theme=dark] .direction-handle{fill:#818cf8;stroke:#1e293b}:root[data-theme=dark] .direction-handle:hover{fill:#a5b4fc}:root[data-theme=dark] .direction-handle--vertical{fill:#2dd4bf}:root[data-theme=dark] .direction-handle--vertical:hover{fill:#5eead4}.room-name-input{font-size:.8rem;font-weight:600;font-family:inherit;width:6rem;padding:.1rem .25rem;border:none;border-bottom:1px solid rgba(99,102,241,.7);border-radius:0;background:transparent;color:inherit;outline:none;text-align:center}.room-name-input:focus{border-bottom-color:#6366f1;box-shadow:none}:root[data-theme=dark] .room-name-input{border-bottom-color:#a5b4fcb8}:root[data-theme=dark] .room-name-input:focus{border-bottom-color:#818cf8;box-shadow:none}.room-editor-overlay,.connection-editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center}.room-editor-backdrop,.connection-editor-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a47}.room-editor-panel,.connection-editor-panel{position:relative;z-index:1;width:min(42rem,calc(100vw - 2rem));display:flex;flex-direction:column;gap:1rem;padding:1.25rem;border:1px solid rgba(99,102,241,.25);border-radius:.875rem;background:#fff;color:#111827;box-shadow:6px 6px 6px #0f172a38}:root[data-theme=dark] .room-editor-panel{background:#0f172a;color:#f3f4f6;border-color:#818cf847;box-shadow:6px 6px 6px #0000006b}:root[data-theme=dark] .connection-editor-panel{background:#0f172a;color:#f3f4f6;border-color:#818cf847;box-shadow:6px 6px 6px #0000006b}.room-editor-content{display:grid;grid-template-columns:minmax(12rem,14rem) minmax(0,1fr);gap:1.25rem;align-items:start}.room-editor-sidebar,.room-editor-main{display:flex;flex-direction:column;gap:1rem}.room-editor-main{min-height:100%}.room-editor-close{align-self:flex-end;width:2rem;height:2rem;margin:-.25rem -.25rem 0 0;padding:0;border:none;border-radius:.5rem;background:transparent;color:inherit;font-size:1.25rem;line-height:1;cursor:pointer}.room-editor-close:hover,.room-editor-close:focus-visible{background:#6366f11a}.connection-editor-close{align-self:flex-end;width:2rem;height:2rem;margin:-.25rem -.25rem 0 0;padding:0;border:none;border-radius:.5rem;background:transparent;color:inherit;font-size:1.25rem;line-height:1;cursor:pointer}.connection-editor-close:hover,.connection-editor-close:focus-visible{background:#6366f11a}.connection-editor-content{display:grid;grid-template-columns:minmax(12rem,14rem) minmax(0,1fr);gap:1.25rem;align-items:start}.connection-editor-sidebar,.connection-editor-main{display:flex;flex-direction:column;gap:1rem}.connection-annotation-text{fill:currentColor;font-size:.85rem;font-weight:600;pointer-events:none}.connection-endpoint-label{fill:currentColor;font-size:.75rem;font-weight:600;letter-spacing:.01em}.connection-annotation-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem .85rem;margin:0;padding:0;border:none}.connection-annotation-group .room-editor-label{grid-column:1 / -1}.connection-annotation-option{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.55rem;font-size:.95rem;min-width:0}.connection-annotation-option input[type=radio]{margin:0}.connection-annotation-option--text{grid-column:1 / -1;grid-template-columns:auto auto 1fr}.connection-annotation-text-input{min-width:0;padding-top:.55rem;padding-bottom:.55rem}.room-editor-field{display:flex;flex-direction:column;gap:.45rem}.room-editor-toggle{display:inline-flex;align-items:center;gap:.6rem;font-size:.95rem}.room-editor-toggle input[type=checkbox]{margin:0}.room-editor-items-field{min-height:0}.room-editor-items-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.room-editor-items-count{font-size:.82rem;font-weight:500;color:#6b7280}.room-editor-items-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;align-items:center}.room-editor-item-add{padding:.65rem .95rem;border:1px solid rgba(99,102,241,.24);border-radius:.5rem;background:#6366f114;color:#4338ca;font:inherit;font-weight:600;cursor:pointer}.room-editor-item-add:hover,.room-editor-item-add:focus-visible{background:#6366f124;border-color:#6366f1;outline:none}.room-editor-items-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem;max-height:14rem;overflow:auto}.room-editor-items-list-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem .8rem;border:1px solid rgba(99,102,241,.12);border-radius:.6rem;background:#f8fafccc}.room-editor-item-name{min-width:0;overflow-wrap:anywhere}.room-editor-item-remove{padding:0;border:none;background:transparent;color:#b91c1c;font:inherit;font-weight:600;cursor:pointer}.room-editor-item-remove:hover,.room-editor-item-remove:focus-visible{text-decoration:underline;outline:none}.room-shape-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem}.room-shape-option{display:grid;gap:.35rem;justify-items:center;padding:.6rem .4rem;border:1px solid rgba(99,102,241,.28);border-radius:.65rem;background:transparent;color:inherit;font:inherit;cursor:pointer}.room-shape-option:hover,.room-shape-option:focus-visible{border-color:#6366f1;background:#6366f114}.room-shape-option--selected{border-color:#6366f1;background:#6366f124}.room-shape-option-preview{overflow:visible}.room-shape-option-preview .room-node-shape{vector-effect:non-scaling-stroke}.room-editor-label{font-size:.85rem;font-weight:600;opacity:.8}.room-editor-input,.room-editor-textarea{width:100%;padding:.7rem .85rem;border:1px solid rgba(99,102,241,.28);border-radius:.5rem;background:transparent;color:inherit;font:inherit}.room-editor-name-input{max-width:100%}.room-editor-textarea{min-height:10rem;resize:vertical}.room-color-chip-group{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.45rem}.room-color-chip{display:grid;place-items:center;min-height:2.35rem;padding:.25rem;border:1px solid rgba(99,102,241,.24);border-radius:999px;background:#ffffff8c;cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.room-color-chip:hover,.room-color-chip:focus-visible{border-color:#6366f1;box-shadow:0 0 0 3px #6366f124;outline:none}.room-color-chip--selected{border-color:#4338ca;box-shadow:0 0 0 3px #4338ca33;transform:translateY(-1px)}.room-color-chip-swatch{display:block;width:100%;height:1.35rem;border-radius:999px;background:linear-gradient(135deg,var(--room-chip-light) 0%,var(--room-chip-light) 50%,var(--room-chip-dark) 50%,var(--room-chip-dark) 100%);box-shadow:inset 0 0 0 1px #0f172a29}.room-editor-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:auto;align-self:flex-end;padding-top:.5rem}.room-editor-secondary,.room-editor-primary{padding:.5rem .85rem;border-radius:.5rem;font:inherit;cursor:pointer}.room-editor-secondary{border:1px solid rgba(15,23,42,.12);background:transparent;color:inherit}.room-editor-primary{border:none;background:#2563eb;color:#fff}.room-editor-input:focus,.room-editor-textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f12e}:root[data-theme=dark] .room-editor-input,:root[data-theme=dark] .room-editor-textarea{border-color:#818cf859}:root[data-theme=dark] .room-shape-option{border-color:#818cf859}:root[data-theme=dark] .room-color-chip{border-color:#818cf859;background:#0f172a80}:root[data-theme=dark] .room-editor-items-count{color:#94a3b8}:root[data-theme=dark] .room-editor-item-add{border-color:#818cf859;background:#6366f12e;color:#c7d2fe}:root[data-theme=dark] .room-editor-item-add:hover,:root[data-theme=dark] .room-editor-item-add:focus-visible{border-color:#818cf8;background:#818cf83d}:root[data-theme=dark] .room-editor-items-list-item{border-color:#818cf829;background:#0f172a8c}:root[data-theme=dark] .room-editor-item-remove{color:#fca5a5}:root[data-theme=dark] .room-color-chip:hover,:root[data-theme=dark] .room-color-chip:focus-visible{border-color:#818cf8;box-shadow:0 0 0 3px #818cf82e}:root[data-theme=dark] .room-color-chip--selected{border-color:#a5b4fc;box-shadow:0 0 0 3px #a5b4fc3d}:root[data-theme=dark] .room-shape-option:hover,:root[data-theme=dark] .room-shape-option:focus-visible{border-color:#818cf8;background:#818cf81f}:root[data-theme=dark] .room-shape-option--selected{border-color:#818cf8;background:#818cf82e}:root[data-theme=dark] .room-editor-input:focus,:root[data-theme=dark] .room-editor-textarea:focus{border-color:#818cf8;box-shadow:0 0 0 3px #818cf838}@media(max-width:800px){.room-editor-content{grid-template-columns:1fr}}.connection-svg-overlay{position:absolute;top:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:2}.connection-label-overlay{position:absolute;top:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:6}.connection-line{stroke:#6366f1;stroke-width:2}.connection-hit-target{pointer-events:stroke}.connection-line--self{stroke:#6366f1;stroke-width:2;fill:none}.connection-preview-line{stroke:#6366f1;stroke-width:2;stroke-dasharray:6 4;opacity:.6}:root[data-theme=dark] .connection-line{stroke:#818cf8}:root[data-theme=dark] .connection-line--self{stroke:#818cf8}:root[data-theme=dark] .connection-preview-line{stroke:#818cf8}
