/* Aventra — globe stage, marker bubbles, live pill and controls */
.home-globe { display: flex; flex-direction: column; }
.globe-stage { position: relative; flex: 1 1 auto; min-height: 520px; height: 100%; width: 100%; outline: none; border-radius: var(--radius-xl); cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; overflow: visible; }
.globe-stage.is-dragging { cursor: grabbing; }
.globe-stage:focus-visible { box-shadow: 0 0 0 3px var(--accent-soft); }
.globe-stage::before { content: ''; position: absolute; left: 50%; top: 50%; width: min(78%, 620px); aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle, rgba(var(--globe-glow), 0.28) 0%, rgba(var(--globe-glow), 0.10) 45%, rgba(var(--globe-glow), 0) 70%); pointer-events: none; filter: blur(18px); }
.globe-canvas { position: absolute; inset: 0; display: block; }
.globe-overlay { position: absolute; inset: 0; pointer-events: none; overflow: visible; }
.globe-bubble { position: absolute; left: 0; top: 0; display: inline-flex; align-items: center; gap: 8px; padding: 5px 12px 5px 5px; border-radius: var(--radius-pill); background: var(--glass-bg-strong); -webkit-backdrop-filter: blur(12px) saturate(140%); backdrop-filter: blur(12px) saturate(140%); border: 1px solid var(--glass-rim); box-shadow: 0 8px 24px rgba(6, 40, 80, 0.22); color: var(--heading); pointer-events: auto; white-space: nowrap; will-change: transform, opacity; transition: box-shadow var(--dur-fast), border-color var(--dur-fast), background var(--dur-fast); cursor: pointer; }
.globe-bubble::before { content: ''; position: absolute; left: 22px; top: 50%; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px rgba(var(--globe-glow), 0.45), 0 0 12px rgba(var(--globe-glow), 0.9); z-index: -1; opacity: 0; }
.globe-bubble:hover, .globe-bubble:focus-visible { box-shadow: 0 14px 34px rgba(6, 40, 80, 0.32); border-color: var(--accent); z-index: 500 !important; }
.globe-bubble.is-hidden { display: none !important; }
.globe-bubble.is-minor .globe-bubble-photo { width: 34px; height: 34px; font-size: 18px; }
.globe-bubble.is-selected { background: var(--glass-bg-strong); border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft), 0 14px 34px rgba(6, 40, 80, 0.3); }
.globe-bubble.is-selected .globe-bubble-photo { box-shadow: 0 0 0 2px var(--accent); }
.globe-bubble-photo { width: 44px; height: 44px; border-radius: 50%; overflow: hidden; background: var(--surface-3); flex: none; display: inline-flex; align-items: center; justify-content: center; font-size: 22px; box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.7); }
.globe-bubble-photo img { width: 100%; height: 100%; object-fit: cover; }
.globe-bubble-text { display: flex; flex-direction: column; line-height: 1.15; text-align: left; }
.globe-bubble-name { font-weight: 600; font-size: 13px; }
.globe-bubble-country { font-size: 11px; color: var(--text-2); }
.globe-live { position: absolute; left: 4px; bottom: 34px; display: inline-flex; align-items: center; gap: 10px; padding: 7px 18px 7px 8px; border-radius: var(--radius-pill); color: var(--heading); text-align: left; z-index: 3; transition: opacity var(--dur-fast), transform var(--dur-fast) var(--ease); }
.globe-live:hover { transform: translateY(-1px); }
.globe-live.off { opacity: 0.7; }
.globe-live-ico { width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: var(--accent-ink); flex: none; box-shadow: 0 6px 14px -4px var(--accent); }
.globe-live-ico .ico { margin-left: 2px; }
.globe-live-t { display: block; font-weight: 700; font-size: 13.5px; }
.globe-live-s { display: block; font-size: 11.5px; color: var(--text-2); }
.globe-controls { position: absolute; right: 4px; bottom: 34px; display: flex; gap: 8px; z-index: 3; }
.globe-controls .icon-btn { width: 44px; height: 44px; background: var(--glass-bg-strong); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.globe-hint { position: absolute; left: 0; right: 0; bottom: 8px; text-align: center; pointer-events: none; z-index: 2; }
.globe-nowebgl .globe-static { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; height: 100%; min-height: 420px; text-align: center; }
.globe-static-disc { width: 60%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #7fd8ff, #0e5c9c 60%, #06304f); box-shadow: 0 30px 80px rgba(6, 40, 80, 0.4), 0 0 60px rgba(var(--globe-glow), 0.5); }
@media (max-width: 1180px) { .globe-stage { min-height: 480px; } }
@media (max-width: 760px) {
  .globe-stage { min-height: 92vw; border-radius: var(--radius-lg); }
  .globe-bubble { padding: 4px 10px 4px 4px; gap: 6px; }
  .globe-bubble-photo { width: 34px; height: 34px; }
  .globe-bubble-name { font-size: 12px; } .globe-bubble-country { font-size: 10px; }
  .globe-live { bottom: 30px; padding: 6px 14px 6px 6px; } .globe-live-ico { width: 30px; height: 30px; } .globe-live-s { display: none; }
  .globe-controls { bottom: 30px; gap: 6px; } .globe-controls .icon-btn { width: 40px; height: 40px; }
  .globe-hint { display: none; }
}
