/* ===== 3D mind-space map (map3d.js); the 2D map stays as the fallback when WebGL is missing ===== */
.m3{position:absolute;inset:0;z-index:2;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
.m3.grab{cursor:grabbing}
.m3-cv{position:absolute;inset:0;width:100%;height:100%;display:block}
.m3-lbls{position:absolute;inset:0;pointer-events:none}
.m3-lbls.busy *{pointer-events:none!important}
.m3-lbls>button{position:absolute;left:0;top:0;pointer-events:auto;transform-origin:50% 50%;will-change:transform;font:inherit;cursor:pointer;border:0;white-space:nowrap;direction:rtl;
  display:flex;align-items:center;gap:8px;color:#fff;line-height:1.15;
  background:rgba(22,26,70,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  box-shadow:0 0 0 1.5px rgba(200,212,255,.45),0 8px 26px rgba(0,0,12,.5),0 0 26px rgba(140,160,255,.32);
  text-shadow:0 1px 2px rgba(0,0,20,.5);transition:background .2s,box-shadow .2s}
.m3-lbls>button:hover,.m3-lbls>button:focus-visible{background:rgba(52,58,140,.9);box-shadow:0 0 0 2.5px #fff,0 10px 30px rgba(0,0,12,.55),0 0 36px rgba(170,190,255,.6);outline:none}
.m3-st{border-radius:16px;padding:7px 14px 7px 10px;font-size:21px;font-weight:700}
.m3-st .n{display:grid;place-items:center;min-width:30px;height:30px;border-radius:50%;background:#fff;color:#2b2f6e;font-size:16px;font-weight:800;text-shadow:none}
.m3-st .sub{font-size:14px;font-weight:500;color:#cdd6ff}
.m3-st.hot{background:linear-gradient(135deg,rgba(91,95,208,.92),rgba(35,122,118,.92))}
.m3-st.dist{border-radius:999px;padding:6px 15px;font-size:19px;font-weight:800;letter-spacing:.02em}
.m3-st .ok{display:none;color:#7ff0c4;font-weight:900}
.m3-st.seen .ok{display:inline}
.m3-st.on{box-shadow:0 0 0 3px #ffe58a,0 8px 26px rgba(0,0,12,.5),0 0 34px rgba(255,220,120,.5)}
.m3-land{flex-direction:column;gap:2px!important;border-radius:20px;padding:8px 22px;font-size:25px;font-weight:800;
  background:rgba(70,58,170,.55)!important}
.m3-land .s{font-size:15px;font-weight:600;color:#dbe0ff;letter-spacing:.04em}
.m3-here{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#ffe58a;color:#3a2f00;font-size:15px;font-weight:800;padding:4px 12px;border-radius:999px;text-shadow:none;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.35)}
body:not(.fresh) .m3-here{display:none}
@media (max-width:760px){.m3-st.dist{font-size:13.5px!important;padding:4px 8px!important}.m3-st{font-size:18px;padding:6px 11px 6px 8px}.m3-st .sub{display:none}.m3-st .n{min-width:26px;height:26px;font-size:14px}.m3-land{font-size:20px;padding:6px 14px}.m3-land .s{font-size:12px}.m3-st.dist{font-size:16px;padding:5px 11px}}
/* class presentation: the stage steps aside while the camera travels the light bridge */
body.m3-transit .show{opacity:0;pointer-events:none;transition:opacity .28s ease}
body.three .show{transition:opacity .35s ease}
@media print{.m3{display:none}}
