.map-marker{width:40px;height:50px;cursor:pointer;animation:markerBounce .5s ease-out forwards}.map-marker.hover{transform:scale(1.1);transition:transform .2s ease}.marker-pin{position:absolute;top:0;left:50%;transform:translateX(-50%);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.25);transition:all .3s ease}.marker-pin.collected{background:linear-gradient(135deg,#10b981,#34d399)}.marker-pin.uncollected{background:linear-gradient(135deg,#3b82f6,#60a5fa)}.marker-dot{width:8px;height:8px;background:white;border-radius:50%;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.marker-stem{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:2px;height:15px;opacity:.6;clip-path:polygon(0 0,100% 0,50% 100%)}.marker-stem.collected{background:#10b981}.marker-stem.uncollected{background:#3b82f6}.marker-glow{position:absolute;top:0;left:50%;transform:translateX(-50%);width:48px;height:48px;border-radius:50%;opacity:.3;animation:pulseGlow 2s ease-out infinite}.marker-glow.collected{background:#10b981}.marker-glow.uncollected{background:#3b82f6}.maplibregl-popup{animation:fadeIn .25s ease-out;animation-fill-mode:both}.maplibregl-popup-content{padding:0!important;border-radius:12px!important;box-shadow:0 10px 40px rgba(0,0,0,.15)!important;overflow:hidden;border:none!important;background:transparent!important}.maplibregl-popup-close-button{display:none}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{border-top-color:transparent!important}.popup-content{width:300px;background:white;border-radius:12px;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;animation:popupContentScale .25s ease-out;transform-origin:bottom center}.popup-header{padding:16px;color:white;position:relative}.popup-content.collected .popup-header{background:linear-gradient(135deg,#10b981,#34d399)}.popup-content.uncollected .popup-header{background:linear-gradient(135deg,#3b82f6,#60a5fa)}.popup-badge{position:absolute;top:12px;right:12px;padding:4px 8px;border-radius:12px;font-size:11px;font-weight:600;background:rgba(255,255,255,.2);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.3)}.popup-header h3{font-size:18px;font-weight:700;padding-right:80px;margin:0 0 4px}.popup-date{display:flex;align-items:center;gap:4px;font-size:13px;opacity:.9}.popup-body{padding:16px;background:white}.popup-body p{margin:0 0 12px;color:#6b7280;font-size:14px;line-height:1.5}.popup-actions{display:flex;gap:8px}.popup-btn{flex:1;padding:10px 16px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;background:none}.popup-btn.primary{background:linear-gradient(135deg,#3b82f6,#60a5fa);color:white;box-shadow:0 4px 12px rgba(59,130,246,.3)}.popup-btn.primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(59,130,246,.4)}.popup-btn.secondary{background:#f3f4f6;color:#6b7280}.popup-btn.secondary:hover{background:#e5e7eb}.popup-btn.icon{flex:none;width:40px;padding:10px;background:#f9fafb;color:#9ca3af;display:flex;align-items:center;justify-content:center}.popup-btn.icon:hover{background:#f3f4f6;color:#6b7280}@keyframes markerBounce{0%{transform:scale(0);opacity:0}60%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popupContentScale{0%{opacity:0;transform:scale(.95) translateY(5px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes pulseGlow{0%,to{opacity:.3;transform:translateX(-50%) scale(1)}50%{opacity:.1;transform:translateX(-50%) scale(1.5)}}.maplibregl-ctrl-group{border-radius:8px!important;box-shadow:0 2px 10px rgba(0,0,0,.1)!important;border:1px solid rgba(0,0,0,.05)!important}.maplibregl-ctrl-group button{transition:all .2s ease}.maplibregl-ctrl-group button:hover{background-color:#f3f4f6}.maplibregl-ctrl-attrib{background-color:rgba(255,255,255,.9)!important;backdrop-filter:blur(4px);border-radius:4px;padding:2px 6px!important;font-size:11px!important}