/* The interactive globe map (planet.js, markup from scripts/chrome.mjs globeMap): the Travel panel on the
   homepage and the top of /travel/. Plain scrolling passes through to the page. */
.globe-map{position:relative;height:min(72svh,680px);min-height:420px;margin:0 0 36px;background:#020306;color:#fff;overflow:hidden;isolation:isolate;container-type:size}
.globe-map #space{position:absolute;inset:0;display:block;width:100%;height:100%;outline:none;pointer-events:none}
/* pan-y: on touch screens a vertical swipe over the globe scrolls the page (also set in planet.js, after OrbitControls). */
.globe-map #orbit-input{position:absolute;left:50%;top:50%;width:min(88cqw,88cqh);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;touch-action:pan-y;cursor:grab;outline:none}
.globe-map #orbit-input:active{cursor:grabbing}
.globe-map #orbit-input:focus-visible{outline:1px solid #FECB00;outline-offset:8px}
.map-loading{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;transition:opacity .4s ease,visibility 0s linear .4s}
.map-loading img{display:block;width:56px;height:56px}
.globe-map.is-ready .map-loading{opacity:0;visibility:hidden}
.map-hint{position:absolute;left:16px;bottom:14px;z-index:2;margin:0;font-family:var(--font-label);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.6);pointer-events:none}
.map-hint-touch{display:none}
@media(hover:none) and (pointer:coarse){.map-hint-mouse{display:none}.map-hint-touch{display:inline}}
.map-controls{position:absolute;right:16px;bottom:14px;z-index:2;display:flex;gap:6px}
.map-controls button{min-width:40px;height:40px;padding:0 12px;border:1px solid rgba(255,255,255,.3);border-radius:4px;background:#020306;color:#fff;font:inherit;font-size:18px;line-height:1;cursor:pointer}
.map-controls button[data-map-key="Home"]{font-family:var(--font-label);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.map-controls button:hover{border-color:#fff}
.map-controls button:focus-visible{outline:2px solid #FECB00;outline-offset:2px}
@media(max-width:700px){.globe-map{height:min(64svh,560px);min-height:360px;margin-bottom:28px}.map-hint{left:12px;bottom:64px}.map-controls{right:12px;bottom:12px}}
/* Pins and clusters (property-pins.js). */
.map-pin{position:absolute;z-index:2;transform:translate(-50%,-70%);width:30px;height:30px;border-radius:50%;border:2px solid #fff7c9;background:#FECB00;color:#202222;font-size:24px;line-height:1;cursor:pointer;touch-action:manipulation}
.map-pin.selected{width:38px;height:38px;box-shadow:0 0 0 7px #fecb0030}
.map-pin:hover{background:#fff1b3}
#pin-label{position:absolute;z-index:3;right:5%;bottom:65px;border-radius:4px;background:#fff;color:#222;padding:12px 18px;font-size:12px;pointer-events:none}
.map-cluster{width:var(--size,38px);height:var(--size,38px);font-size:14px;font-weight:700;line-height:1;box-shadow:0 0 0 6px #fecb0040,0 0 0 12px #fecb0018;transform:translate(-50%,-50%)}
.map-cluster.selected{width:var(--size,38px);height:var(--size,38px);box-shadow:0 0 0 7px #fecb0060}
/* Shown instead of the globe when WebGL is unavailable. */
#fallback{position:absolute;inset:0;background:#020306 url('/assets/preview.webp') center/contain no-repeat;pointer-events:none}
