.locations-runway{position:relative;height:210svh;background:#0c0e0f}.locations{height:100svh;min-height:580px;position:sticky;top:0;z-index:12;background:#fff;color:#151818;overflow:clip;isolation:isolate}.locations-heading{position:absolute;z-index:3;top:8%;left:6%;pointer-events:none}.locations-heading>p{font:10px monospace;letter-spacing:2px;color:#777d77;margin:0 0 24px}.locations-heading h2{font-size:clamp(30px,3.2vw,54px);font-weight:500;letter-spacing:-1.8px;line-height:1.05;margin:0 0 24px}.locations-heading>span{font-size:14px;color:#737872}.map-plane{position:absolute;inset:0}.map-plane>img{width:100%;height:100%;object-fit:fill;opacity:.88}.map-country{position:absolute;left:53%;top:39%;font:11px monospace;color:#b3b9b0;letter-spacing:4px}.location-pin{position:absolute;left:var(--x);top:var(--y);width:46px;height:46px;transform:translate(-50%,-50%);background:none;border:0;padding:0;cursor:pointer;color:#293028;z-index:4}.location-pin i{display:block;width:12px;height:12px;border-radius:50%;background:#f04d49;margin:auto;box-shadow:0 0 0 9px #f04d4915}.location-pin:before{content:"";position:absolute;inset:1px;border:1px solid #f04d4970;border-radius:50%;transition:transform .4s,opacity .4s;opacity:0;transform:scale(.55)}.location-pin:hover:before,.location-pin[aria-expanded=true]:before,.location-pin:focus-visible:before{opacity:1;transform:scale(1)}.location-pin span{position:absolute;left:45px;top:17px;font:10px monospace;letter-spacing:1.5px;white-space:nowrap}.location-pin:focus-visible{outline:2px solid #f04d49;outline-offset:5px;border-radius:50%}.location-connector{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.location-connector path{fill:none;stroke:#f04d49;stroke-width:1;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .5s ease}.locations.has-location .location-connector path{stroke-dashoffset:0}.location-card{position:absolute;z-index:5;right:6%;bottom:15%;width:300px;min-height:190px;padding:30px;background:#ffffffed;border:1px solid #cbd0c7;box-shadow:0 18px 55px #202b1710;animation:card-open .45s cubic-bezier(.2,.7,.2,1) both;transform-origin:top left}.location-card:before{content:"";position:absolute;left:-1px;top:-1px;width:24px;height:24px;border-left:2px solid #f04d49;border-top:2px solid #f04d49}.location-close{position:absolute;right:12px;top:9px;border:0;background:none;color:#697268;font-size:23px;cursor:pointer}.location-card-copy>*{animation:card-copy .55s both;animation-delay:.25s}.location-card-copy h3{font-size:32px;letter-spacing:-1px;margin:12px 0 14px;animation-delay:.32s}.location-index{font:9px monospace;letter-spacing:1.5px;color:#f04d49;margin:0}.location-address{font-size:14px;line-height:1.55;color:#60685f;margin:0 0 20px;animation-delay:.39s}.location-coordinate{font:9px monospace;letter-spacing:1px;color:#92998e;display:block;animation-delay:.46s}.locations-footer{position:absolute;bottom:5%;left:6%;right:6%;display:flex;justify-content:space-between;font:9px monospace;letter-spacing:1.5px;color:#858b82}.locations-heading,.locations-footer,.map-plane{will-change:transform,opacity}@keyframes card-open{from{opacity:0;clip-path:inset(0 100% 100% 0)}to{opacity:1;clip-path:inset(0)}}@keyframes card-copy{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:750px){.locations{min-height:640px}.locations-heading{top:6%;left:7%}.locations-heading h2{font-size:30px;letter-spacing:-1.3px}.locations-heading>p{font-size:8px;margin-bottom:18px}.locations-heading>span{font-size:12px}.map-plane{inset:23% -24% 16% -42%}.map-country{font-size:8px;letter-spacing:1px}.location-card{right:7%;bottom:9%;width:250px;min-height:155px;padding:22px}.location-card-copy h3{font-size:27px;margin:9px 0}.location-address{font-size:12px;margin-bottom:12px}.locations-footer{bottom:3%;font-size:7px}.location-pin span{font-size:8px;left:38px}.location-pin{width:38px;height:38px}.location-pin span{top:14px}}
@media(prefers-reduced-motion:reduce){.location-card,.location-card-copy>*{animation:none}.location-connector path,.location-pin:before{transition:none}}

.location-text-mask{display:block;overflow:clip}.location-text-rise{display:block;will-change:transform,opacity}

/* Give the map a white breathing margin without adding a scroll spacer. */
.locations{border:0;box-shadow:none}.locations-heading{top:12%}.map-plane{inset:12% 0 12%}.map-plane>img{border:0;outline:0;mask-image:linear-gradient(transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 10%,#000 90%,transparent)}.locations-footer{bottom:8%}.location-card{bottom:18%}
@media(max-width:750px){.locations-heading{top:9%}.map-plane{inset:29% -24% 20% -42%}.locations-footer{bottom:6%}.location-card{bottom:12%}}
