/* Minimap overlay — bottom-right corner of .canvas-content. */ .canvas-minimap { position: absolute; bottom: 16px; right: 16px; z-index: 20; /* Frame: subtle dark surface that sits one step above the canvas bg. */ background: rgba(20, 20, 22, 0.9); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 8px; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35); backdrop-filter: blur(6px); /* Disable text selection during drag — touch-action:none on the * canvas-content already prevents browser-level pan/zoom, but we set * it here too so the minimap works inside other containers. */ user-select: none; touch-action: none; overflow: hidden; cursor: crosshair; } .canvas-minimap-world { position: absolute; inset: 0; } /* Boards are the visual anchor — render them in the brand blue with * enough opacity to dominate over the component dots. */ .canvas-minimap-board { position: absolute; background: rgba(0, 113, 227, 0.55); border: 0.5px solid rgba(0, 113, 227, 0.85); border-radius: 1px; pointer-events: none; } /* Components: small fixed-size dots, slightly transparent so a cluster * still reads as 'busy area' without becoming a solid bar. */ .canvas-minimap-component { position: absolute; width: 3px; height: 3px; background: rgba(255, 255, 255, 0.55); border-radius: 1px; pointer-events: none; } /* Viewport rectangle — white outline + slight inner fill. The * pointer-events: none lets the minimap's pointerdown handler decide * whether the click landed inside (drag) or outside (teleport) * based on the calculated rect bounds. */ .canvas-minimap-viewport { position: absolute; border: 1.5px solid rgba(255, 255, 255, 0.85); background: rgba(255, 255, 255, 0.08); border-radius: 2px; pointer-events: none; /* No transition on left/top — those values change every frame during * a pan and a transition would lag the user's drag. */ } /* Hover state on the minimap itself: subtle brightness bump so the user * knows it's interactive. */ .canvas-minimap:hover { border-color: rgba(255, 255, 255, 0.22); } @media (max-width: 720px) { /* On phones the minimap eats too much of the canvas; shrink it. */ .canvas-minimap { width: 140px !important; height: 105px !important; bottom: 12px; right: 12px; } }