*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-void);-webkit-font-smoothing:antialiased}:root{--color-void:#15171a;--color-globe-base:#0a0c10;--color-globe-dots:#4a3a28;--color-dot-port:#f0dfc0;--color-dot-sea:#7b5d3a;--color-dot-special:#d4a250;--color-arc:#6b5236;--color-rim-glow:#c89840;--color-star:#c0c6d2;--color-ring-selected:#f5e8ce;--color-text-primary:#ece0cc;--color-text-secondary:#8a7b64;--color-accent:#d0a048;--color-hairline:#26282c;--font-stack:system-ui, "PingFang SC", "Microsoft YaHei", sans-serif;--space-xs:4px;--space-sm:10px;--space-md:12px;--space-lg:24px;--space-tap-target:40px;--font-size-xs:12px;--font-size-sm:14px;--font-size-md:16px}.globe-container{background:var(--color-void);width:100vw;height:100dvh;position:relative;overflow:hidden}.globe-container canvas{touch-action:none;width:100%;height:100%;display:block}.globe-marker{width:var(--space-tap-target);height:var(--space-tap-target);cursor:pointer;opacity:0;z-index:1;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:0;left:0}.globe-marker-dot{background:var(--color-dot-port);pointer-events:none;border-radius:50%;width:10px;height:10px}.globe-marker-label{white-space:nowrap;color:var(--color-text-primary);font-family:var(--font-stack);font-size:var(--font-size-sm);background:var(--color-void);padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-hairline);pointer-events:none;margin-bottom:var(--space-xs);border-radius:4px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.globe-overlay{top:var(--space-md);right:var(--space-md);color:var(--color-text-secondary);font-family:var(--font-stack);font-size:var(--font-size-xs);z-index:2;pointer-events:none;position:absolute}.globe-error{background:var(--color-void);width:100vw;height:100dvh;color:var(--color-text-primary);font-family:var(--font-stack);font-size:var(--font-size-md);padding:var(--space-lg);text-align:center;justify-content:center;align-items:center;display:flex}
