/* Home page: the visitor globe. A dot-matrix Earth; every country someone has visited from glows,
   with a beam of light flying to Almaty. */
.globe-sec{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:center;gap:clamp(24px,4vw,56px)}
.globe-kicker{display:block;font-size:12.5px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:rgba(242,246,252,.7);margin-bottom:12px}
.globe-text h2{font-size:clamp(28px,3.2vw,42px);font-weight:800;letter-spacing:-.015em;line-height:1.1}
.globe-you{margin-top:14px;min-height:1.5em;color:var(--mist);font-size:15.5px;line-height:1.5}
.globe-you b{color:#7FE3FF;font-weight:700}
.globe-stats{display:flex;gap:28px;margin-top:22px}
.globe-stats div{display:flex;flex-direction:column}
.globe-stats b{font-size:clamp(30px,3.4vw,44px);font-weight:800;line-height:1;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.globe-stats span{margin-top:6px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:rgba(242,246,252,.6)}
.globe-top-h{margin-top:26px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(242,246,252,.6)}
.globe-top{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:9px;max-width:400px}
.globe-top li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;font-size:14px;cursor:pointer;border-radius:8px;padding:2px 4px;margin:0 -4px;transition:background .2s}
.globe-top li:hover,.globe-top li:focus-visible{background:rgba(170,200,255,.07);outline:none}
.globe-top .r{color:rgba(242,246,252,.45);font-variant-numeric:tabular-nums;font-size:12.5px}
.globe-top .nm{position:relative;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-bottom:6px;color:#E8EEF8}
.globe-top .nm::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:var(--w,0%);border-radius:2px;background:linear-gradient(90deg,#FFB547,#FFE2A8);transition:width 1s cubic-bezier(.2,.8,.2,1)}
.globe-top li.you .nm::after{background:linear-gradient(90deg,#3FC8FF,#A8EEFF)}
.globe-top .n{font-variant-numeric:tabular-nums;color:rgba(242,246,252,.8);font-size:13px}
.globe-note{margin-top:22px;font-size:12.5px;color:rgba(159,173,196,.75);max-width:44ch;line-height:1.5}

.globe-stage{position:relative;width:100%;max-width:640px;justify-self:center;aspect-ratio:1/1}
#globe{position:absolute;inset:0;width:100%;height:100%;cursor:grab;touch-action:pan-y;-webkit-tap-highlight-color:transparent}
#globe.drag{cursor:grabbing}
.globe-tip{position:absolute;left:0;top:0;z-index:2;transform:translate(-50%,calc(-100% - 14px));pointer-events:none;white-space:nowrap;
  padding:7px 12px;border-radius:10px;background:rgba(6,11,24,.88);border:1px solid rgba(170,200,255,.2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  font-size:13px;color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.globe-tip span{color:#FFC86B;margin-left:6px;font-variant-numeric:tabular-nums}
.globe-tip[hidden]{display:none}
.globe-live{position:absolute;left:50%;bottom:4%;transform:translateX(-50%);pointer-events:none;white-space:nowrap;font-size:13px;color:#fff;
  padding:7px 14px;border-radius:999px;background:rgba(255,181,71,.14);border:1px solid rgba(255,181,71,.4);opacity:0;transition:opacity .5s,transform .5s}
.globe-live.on{opacity:1;transform:translateX(-50%) translateY(-6px)}
.globe-hint{position:absolute;right:4%;top:4%;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(242,246,252,.4);pointer-events:none;transition:opacity .6s}
.globe-stage.touched .globe-hint{opacity:0}

@media (max-width:860px){
  .globe-sec{grid-template-columns:1fr}
  .globe-stage{max-width:520px;margin:-6px auto 0}
  .globe-top{max-width:none}
  .globe-hint{display:none}
}

/* labels over the 3D globe */
.gl-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.gl-label{position:absolute;left:0;top:0;opacity:0;white-space:nowrap;font-size:12px;font-weight:600;letter-spacing:.02em;
  padding:4px 10px;border-radius:999px;background:rgba(5,10,22,.72);border:1px solid rgba(255,255,255,.14);color:#fff;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:opacity .25s;will-change:transform;--c:#FEC50C}
.gl-label::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;vertical-align:1px;background:var(--c);box-shadow:0 0 8px var(--c)}
.gl-label.you{--c:#5CC8FF;border-color:rgba(92,200,255,.45)}
.gl-label.home{--c:#FF5A50;border-color:rgba(255,90,80,.4)}
