/* Map uses the storefront's paper, ink and forest green. */
.connections-page{max-width:1000px;margin:0 auto;padding-top:46px}
.map-heading{display:grid;gap:20px;padding-bottom:28px;border-bottom:1px solid var(--line);margin-bottom:28px;align-items:start}
.map-heading h1{font-size:clamp(42px,4.5vw,64px);letter-spacing:-1.8px;margin:0;line-height:1.08}
.map-heading p{font-size:14px;line-height:1.8;margin:0;color:var(--muted)}
.map-heading .map-heading-lead{font-size:16px;line-height:1.75;max-width:550px;color:var(--ink)}
.map-search{position:relative;max-width:430px;margin-bottom:30px;z-index:2}
.map-search label{font-size:12px;margin-bottom:10px}
#map-search{width:100%;min-height:50px;padding:14px 18px;border:1px solid var(--line);border-radius:12px;font:14px Arial,sans-serif;background:var(--paper);color:var(--ink)}
#map-options{position:absolute;top:calc(100% + 8px);left:0;right:0;padding:6px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 24px #18342f12}
#map-results{max-height:280px;overflow-y:auto;overscroll-behavior:contain}
#map-results [role=option]{padding:12px;min-height:48px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px;border-radius:7px}
#map-results small{font-size:11px;text-align:right;color:var(--muted)}
#map-results [aria-selected=true]{background:#e9eddf}
#map-no-results{padding:12px;font-size:13px}
.map-panel{border:1px solid var(--line);border-radius:22px;overflow:hidden}
.map-panel-top{display:flex;justify-content:space-between;align-items:center;padding:22px 28px;border-bottom:1px solid var(--line);font-size:12px}
.map-connection-count{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.map-diagram{position:relative;height:460px;margin:0 70px;background-image:radial-gradient(#18342f12 .6px,transparent .6px);background-size:22px 22px}
.map-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.map-edge{transform-origin:50px 50px;transform-box:view-box}
.map-edge.is-active line{stroke:var(--green);stroke-opacity:.65}
.map-lines line{stroke:var(--ink);stroke-opacity:.28;stroke-width:1;vector-effect:non-scaling-stroke}
.map-lines .map-edge-accent{stroke:var(--green);stroke-opacity:1;stroke-width:2;opacity:0}
.map-node{position:absolute;transform:translate(-50%,-8px);display:flex;flex-direction:column;align-items:center;gap:9px;width:180px;text-align:center;color:var(--ink)}
.map-node-copy{display:flex;flex-direction:column;align-items:center;gap:6px;max-width:100%}
.map-dot{display:block;width:12px;height:12px;border-radius:50%;background:var(--green);flex-shrink:0}
.map-centre{width:230px;left:50%;top:50%}
.map-centre .map-dot{width:16px;height:16px}
.map-centre h2{font:normal 29px/1.12 Georgia,serif;letter-spacing:-.5px;margin:3px 0 0;overflow-wrap:anywhere;max-width:100%;background:var(--paper);padding:0 5px}
.map-category{background:var(--paper);font:11px/1.5 Arial,sans-serif;max-width:100%}
.map-peer{background:var(--paper);border:0;border-radius:8px;padding:0 8px 8px;min-height:62px}
.map-peer .map-dot{background:var(--ink)}
.map-node-name{font:normal 20px/1.2 Georgia,serif;overflow-wrap:anywhere;max-width:100%}
.connections-page .map-peer:active{transform:translate(-50%,-8px)}
.map-peer:focus-visible,#map-search:focus-visible,#map-selected:focus-visible{outline:2px solid var(--green);outline-offset:5px}
.map-profile{padding:20px 28px 26px;text-align:center}
.map-profile a{font-size:13px}
.map-note{font-size:12px;line-height:1.8;color:var(--muted);max-width:620px;margin:22px 0 0}
.map-empty{font-size:14px;line-height:1.8;padding:80px 28px;text-align:center;max-width:550px;margin:auto}
.map-missing{padding:0 20px 10px}
@media(hover:hover) and (pointer:fine){.map-peer:hover .map-node-name{text-decoration:underline;text-underline-offset:4px}#map-results [role=option]:hover{background:#e9eddf}}
@media(max-width:650px){.connections-page{padding-top:30px}.map-heading{display:block;padding-bottom:22px;margin-bottom:24px}.map-heading>.eyebrow{display:block;margin-bottom:14px}.map-heading h1{font-size:42px;letter-spacing:-1.2px;margin-bottom:20px}.map-heading p{max-width:none}.map-heading .map-heading-lead{font-size:14px}.map-search{max-width:none;margin-bottom:24px}.map-panel-top{padding:18px 20px}.map-diagram{height:510px;margin:0 30px}.map-node{width:130px}.map-centre{width:195px}.map-node-name{font-size:18px}.map-centre h2{font-size:25px}.map-profile{padding:18px 18px 24px}.map-note{font-size:11px}}
@media(max-width:380px){.map-heading h1{font-size:38px}.map-diagram{height:540px;margin:0 24px}.map-node{width:108px}.map-centre{width:178px}.map-node-name{font-size:16px}.map-centre h2{font-size:23px}.map-category{font-size:10px}.map-panel-top{padding:18px}}
.connections-page[data-motion=light] .map-diagram,.connections-page[data-motion=off] .map-diagram{background-image:none}
.map-peer .map-dot{transition:transform 150ms var(--ease-out)}
.map-profile a span[aria-hidden]{display:inline-block;transition:transform 150ms var(--ease-out)}
@media(hover:hover) and (pointer:fine){.map-peer:hover .map-dot{background:var(--green);transform:scale(1.2)}.map-profile a:hover span[aria-hidden]{transform:translateX(3px)}}
.map-peer:focus-visible .map-dot{background:var(--green);transition:none}
.connections-page .map-peer:active{transform:translate(-50%,-8px) scale(.98)}
.connections-page .map-peer:focus-visible:active{transform:translate(-50%,-8px)}
@media(max-width:650px),(pointer:coarse){.map-diagram{background-image:none}.map-peer .map-dot{transition:none}.connections-page .map-peer:active{transform:translate(-50%,-8px)}.map-peer:active .map-dot{opacity:.6}}
@media(prefers-reduced-motion:reduce){.map-diagram{background-image:none}.map-peer .map-dot,.map-profile a span[aria-hidden]{transition:none}.map-peer:hover .map-dot,.map-profile a:hover span[aria-hidden]{transform:none}.connections-page .map-peer:active{transform:translate(-50%,-8px)}}


.connections-page[data-motion=light] .map-peer .map-dot,.connections-page[data-motion=off] .map-peer .map-dot,.connections-page[data-motion=light] .map-profile a span[aria-hidden],.connections-page[data-motion=off] .map-profile a span[aria-hidden]{transition:none}
.connections-page[data-motion=light] .map-peer:hover .map-dot,.connections-page[data-motion=off] .map-peer:hover .map-dot,.connections-page[data-motion=light] .map-profile a:hover span[aria-hidden],.connections-page[data-motion=off] .map-profile a:hover span[aria-hidden]{transform:none}
