.geo-frame{--geo-accent:var(--accent);--geo-light:var(--fg);--geo-dark:var(--canvas);isolation:isolate;container-type:inline-size}[data-theme=light] .geo-frame{--geo-light:var(--canvas);--geo-dark:var(--fg)}.geo-grid{background-image:linear-gradient(color-mix(in srgb, var(--line) 55%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--line) 55%, transparent) 1px, transparent 1px);background-position:-1px -1px;background-size:3rem 3rem}.geo-frame>.geo-canvas{opacity:0;transition:opacity .9s;position:absolute;inset:0}.geo-frame[data-ready]>.geo-canvas{opacity:1}.geo-dot{width:14px;height:14px}.geo-dot:before{content:"";z-index:1;background:var(--geo-accent);border:2px solid color-mix(in srgb, var(--geo-light) 70%, transparent);box-shadow:0 0 20px color-mix(in srgb, var(--geo-accent) 50%, transparent);border-radius:50%;position:absolute;inset:0}.geo-wave{border:1.5px solid color-mix(in srgb, var(--geo-accent) 45%, transparent);pointer-events:none;border-radius:50%;width:14px;height:14px;animation:4s ease-out infinite geo-wave;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes geo-wave{0%{opacity:.6;width:14px;height:14px}to{opacity:0;width:120px;height:120px}}.geo-pin{cursor:pointer;touch-action:manipulation;background:0 0;border:0;width:1.5rem;height:1.5rem;padding:0}.geo-frame[data-near] .geo-pin{width:2.5rem;height:2.5rem}.geo-pin:before,.geo-pin:after{content:"";border-radius:50%;width:.85rem;height:.85rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.geo-pin:before{z-index:1;background:var(--pin);border:2px solid color-mix(in srgb, var(--geo-light) 85%, transparent);box-shadow:0 0 18px var(--pin)}.geo-pin:after{border:1.5px solid var(--pin);opacity:0;animation:3.6s ease-out infinite geo-pulse}@keyframes geo-pulse{0%{opacity:.7;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(5)}}.geo-pin[aria-pressed=true]{z-index:2}.geo-pin:focus-visible{outline:2px solid var(--geo-light);outline-offset:2px;border-radius:50%}.geo-pin-label{background:color-mix(in srgb, var(--canvas) 88%, transparent);border:1px solid var(--line);color:var(--fg);letter-spacing:.2em;text-transform:uppercase;text-align:left;white-space:nowrap;opacity:0;pointer-events:none;flex-direction:column;gap:.15rem;padding:.35rem .6rem;font-size:.625rem;font-weight:500;line-height:1.3;transition:opacity .4s;display:flex;position:absolute;top:50%;left:calc(50% + .95rem);transform:translateY(-50%)}.geo-pin-meta{letter-spacing:.06em;text-transform:none;color:var(--fg-muted);font-weight:400;display:none}.geo-pin[aria-pressed=true] .geo-pin-meta:not(:empty){display:block}.geo-frame[data-near] .geo-pin-label,.geo-pin[aria-pressed=true] .geo-pin-label,.geo-pin:hover .geo-pin-label,.geo-pin:focus-visible .geo-pin-label{opacity:1}@container (max-width:40rem){.geo-pin-label{text-align:center;align-items:center;top:calc(50% + 1rem);left:50%;transform:translate(-50%)}}.geo-frame .mapboxgl-ctrl.mapboxgl-ctrl-attrib,.geo-frame .mapboxgl-ctrl-attrib.mapboxgl-compact{background-color:color-mix(in srgb, var(--geo-dark) 70%, transparent);font-family:var(--font-sans);color:color-mix(in srgb, var(--geo-light) 80%, transparent);border-radius:0;font-size:.625rem;line-height:1.6}.geo-frame .mapboxgl-ctrl-attrib a{color:color-mix(in srgb, var(--geo-light) 80%, transparent)}.geo-frame .mapboxgl-ctrl-attrib a:hover{color:var(--geo-light)}.geo-frame .mapboxgl-ctrl-attrib-button,.geo-frame .mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{filter:invert();background-color:#0000;border-radius:0}.geo-frame .mapboxgl-ctrl-attrib-button:focus-visible{box-shadow:none;outline:2px solid var(--geo-dark);outline-offset:-2px}@media (prefers-reduced-motion:reduce){.geo-wave,.geo-pin:after{opacity:0;animation:none}.geo-frame>.geo-canvas,.geo-pin-label{transition:none}}.geo-frame .mapboxgl-ctrl-top-right .mapboxgl-ctrl-group{box-shadow:none;background:#041108d1;border:1px solid #ecdfcc47;border-radius:0;margin:12px 12px 0 0}.geo-frame .mapboxgl-ctrl-group button{width:34px;height:34px}.geo-frame .mapboxgl-ctrl-group button+button{border-top:1px solid #ecdfcc33}.geo-frame .mapboxgl-ctrl-group button:hover:not(:disabled){background:#ecdfcc1a}.geo-frame .mapboxgl-ctrl-group button:disabled .mapboxgl-ctrl-icon{opacity:.35}.geo-frame .mapboxgl-ctrl-group .mapboxgl-ctrl-icon{filter:invert()brightness(.92)}.geo-frame .mapboxgl-scroll-zoom-blocker,.geo-frame .mapboxgl-touch-pan-blocker{font-family:var(--font-sans);letter-spacing:.02em;background:#041108b3;font-size:.875rem}
