:root{--fg:#ffffffdb;--fg-dim:#fff9;--font:"Inter", "SF Pro Display", "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;color:var(--fg);font-family:var(--font);-webkit-font-smoothing:antialiased;background:#000;overflow:hidden}#ground{touch-action:none;background:#000;position:fixed;inset:0}#ground>div:active{cursor:grabbing}#ground canvas{display:block;width:100%!important;height:100%!important}#back-earth{z-index:40;pointer-events:auto;letter-spacing:.12em;color:#cde;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0e121ab3;border:1px solid #2a3a50;border-radius:8px;padding:8px 16px;font:12px/1 system-ui,sans-serif;position:absolute;top:28px;right:44px}#back-earth:hover{background:#2563eb99}#back-earth[hidden]{display:none}#site-status{letter-spacing:.14em;color:var(--fg-dim);white-space:nowrap;background:#0e121a99;border:1px solid #22314a;border-radius:8px;padding:6px 14px;font-size:11px;position:absolute;bottom:72px;left:50%;transform:translate(-50%)}#site-status[hidden]{display:none}#credit{letter-spacing:.06em;color:var(--fg-dim);opacity:.55;pointer-events:none;font-size:10px;position:absolute;bottom:56px;right:44px}#credit[hidden]{display:none}#loader{z-index:10;background:#000;justify-content:center;align-items:center;transition:opacity 1.2s;display:flex;position:fixed;inset:0}#loader.hidden{opacity:0;pointer-events:none}.loader-inner{flex-direction:column;align-items:center;gap:18px;display:flex}.loader-title{letter-spacing:.6em;color:var(--fg-dim);padding-left:.6em;font-size:13px}.loader-bar{background:#ffffff1f;width:180px;height:1px;overflow:hidden}#loader-fill{background:#fff;width:0%;height:100%;transition:width .3s}#loader-text{color:var(--fg-dim);letter-spacing:.1em;font-size:11px}#ui{pointer-events:none;opacity:0;transition:opacity 1.6s .4s;position:fixed;inset:0}#ui.visible{opacity:1}#ui *{text-shadow:0 0 3px #000,0 0 12px #000000e6,0 2px 24px #000c}.title{pointer-events:auto;position:absolute;top:40px;left:44px}.title h1{letter-spacing:.32em;color:#fff;font-size:20px;font-weight:600}.title p{letter-spacing:.12em;color:var(--fg-dim);margin-top:8px;font-size:11px}#stats{flex-direction:column;gap:10px;margin-top:26px;display:flex}.stat{color:var(--fg-dim);font:inherit;text-align:left;cursor:pointer;letter-spacing:.16em;background:0 0;border:0;grid-template-columns:56px auto;align-items:baseline;gap:14px;padding:0;font-size:11px;transition:color .2s;display:grid}.stat:hover{color:#fff}.stat-num{letter-spacing:.04em;color:var(--fg);font-variant-numeric:tabular-nums;font-size:22px;font-weight:300}.stat-label:after{content:"";background:linear-gradient(90deg,#7cc4ff,#0000);width:22px;height:1px;margin-top:4px;display:block}.altitude{letter-spacing:.14em;color:var(--fg-dim);font-variant-numeric:tabular-nums;text-align:right;font-size:11px;position:absolute;bottom:36px;right:44px}#labels{position:absolute;inset:0;overflow:hidden}.marker-card{white-space:nowrap;letter-spacing:.08em;color:var(--fg);opacity:0;cursor:pointer;background:var(--fill,#080e1ad9);background:var(--fill,linear-gradient(#080e1ad9, #080e1ad9)) padding-box, var(--border,linear-gradient(135deg, var(--c), transparent)) border-box;border:1px solid #0000;border-radius:3px;align-items:center;gap:8px;padding:5px 12px;font-size:11px;transition:opacity .18s,box-shadow .2s;display:flex;position:absolute;top:0;left:0;box-shadow:0 2px 14px #00000073}.marker-card:before{content:"";background:var(--c);width:5px;height:5px;box-shadow:0 0 8px var(--c);border-radius:50%;flex:none}.marker-card.is-hover,.marker-card.is-selected{color:#fff;box-shadow:0 0 0 1px var(--c), 0 2px 18px #00000080, 0 0 22px color-mix(in srgb, var(--c) 45%, transparent)}.marker-card.is-hq .marker-name{color:var(--c);letter-spacing:.14em}.marker-cluster .marker-name{color:var(--c)}.marker-name{font-weight:500}.marker-meta{color:var(--fg-dim);letter-spacing:.06em;font-size:10px}.marker-leader{transform-origin:0;background:linear-gradient(90deg, var(--c), color-mix(in srgb, var(--c) 35%, transparent));opacity:0;pointer-events:none;height:1px;position:absolute;top:0;left:0}.marker-dot{background:var(--c);width:6px;height:6px;box-shadow:0 0 8px var(--c), 0 0 2px #fff;border-radius:50%;flex:none}#rim{transition:opacity .5s;position:absolute;inset:0;overflow:hidden}#rim.hidden{opacity:0;pointer-events:none}.rim-item{white-space:nowrap;cursor:pointer;opacity:0;transform-origin:50% 100%;color:var(--fg);flex-direction:column;align-items:center;gap:3px;padding-bottom:6px;transition:color .2s;display:flex;position:absolute;top:0;left:0}.rim-item:hover,.rim-item.is-front,.rim-item.is-selected{color:#fff}.rim-name{letter-spacing:.1em;font-size:13px;font-weight:500}.rim-country{letter-spacing:.08em;opacity:.7;font-size:10px}.rim-dot{background:var(--c);width:6px;height:6px;box-shadow:0 0 10px var(--c), 0 0 3px #fff;border-radius:50%;margin-top:4px}.rim-item.is-selected .rim-dot,.rim-item.is-front .rim-dot{width:9px;height:9px;box-shadow:0 0 16px var(--c), 0 0 4px #fff}#right-col{pointer-events:none;flex-direction:column;gap:12px;width:270px;display:flex;position:absolute;top:40px;bottom:80px;right:44px}#detail{pointer-events:auto;background:var(--fill,linear-gradient(180deg, #0a101ce6, #060a12d1));box-shadow:0 0 0 1px color-mix(in srgb, var(--c) 35%, transparent), 0 8px 30px #00000080;border:1px solid #ffffff1a;border-radius:6px;flex:none;padding:14px 16px 16px;animation:.35s detail-in}#detail[hidden]{display:none}@keyframes detail-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}.detail-head{letter-spacing:.12em;color:var(--fg-dim);align-items:center;gap:10px;font-size:10px;display:flex}.detail-type{color:var(--c);border:1px solid color-mix(in srgb, var(--c) 60%, transparent);border-radius:2px;padding:2px 6px}.detail-close{color:var(--fg-dim);cursor:pointer;background:0 0;border:0;margin-left:auto;font-size:18px;line-height:1}.detail-close:hover{color:#fff}.detail-name{letter-spacing:.1em;color:#fff;margin-top:12px;font-size:17px;font-weight:600}.detail-full{color:var(--fg-dim);margin-top:6px;font-size:11px;line-height:1.6}.detail-img{background:#ffffff0a;border-radius:4px;height:120px;margin-top:12px;position:relative;overflow:hidden}.detail-img img{object-fit:cover;filter:saturate(.9)brightness(.95);width:100%;height:100%;display:block}.detail-img span{letter-spacing:.08em;color:#ffffffbf;font-size:9px;position:absolute;bottom:6px;left:8px}.detail-loc,.detail-desc{color:var(--fg-dim);margin-top:10px;font-size:11px;line-height:1.6}.detail-loc:before{content:"◎ ";color:var(--c)}.detail-actions{gap:8px;margin-top:14px;display:flex}.detail-btn{font:inherit;letter-spacing:.08em;color:var(--fg);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff29;border-radius:3px;flex:1;padding:8px 10px;font-size:13px;line-height:1.5;transition:background .2s,border-color .2s}.detail-btn:hover{border-color:var(--c);background:#ffffff1f}#ui .detail-btn.is-primary{color:#0b1220;background:var(--c);border-color:var(--c);text-shadow:none;font-weight:600}#projects{pointer-events:auto;background:linear-gradient(#0a101cd1,#060a12b8);border:1px solid #ffffff14;border-radius:6px;flex-direction:column;flex:auto;min-height:0;transition:opacity .5s,transform .5s;display:flex}#projects.hidden,#ui:not(.in-space) #detail{opacity:0;pointer-events:none;transform:translate(16px)}.projects-head{border-bottom:1px solid #ffffff12;padding:14px 18px 10px}.projects-title{letter-spacing:.22em;color:var(--fg);font-size:12px;font-weight:500}.projects-count{letter-spacing:.1em;color:var(--fg-dim);margin-top:6px;font-size:10px}.projects-list{scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;padding:6px 0;list-style:none;overflow-y:auto}.projects-item{letter-spacing:.06em;color:var(--fg-dim);cursor:pointer;grid-template-columns:6px 1fr auto;align-items:center;gap:10px;padding:8px 18px;font-size:11px;transition:background .2s,color .2s;display:grid}.projects-item:hover,.projects-item.is-hover,.projects-item.is-selected{color:var(--fg);background:#ffffff0f}.projects-item.is-selected{box-shadow:inset 2px 0 0 var(--c)}.projects-item-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.projects-item-meta{opacity:.6;font-size:10px}@media (max-width:900px){#right-col{display:none}}@media (max-width:640px){.title{top:24px;left:24px}.altitude{bottom:22px;right:24px}}
