:root .sig--vis-map { text-align: left; }
:root .sig--vis-map .vm, :root .sig--vis-map.vm { position: absolute; inset: 0; overflow: hidden; }
:root .sig--vis-map .vm svg, :root .sig--vis-map.vm svg { display: block; }
:root .sig--vis-map .vm__map, :root .sig--vis-map.vm__map { position: absolute; inset: 0; width: 100%; height: 100%; }
:root .sig--vis-map .vm__cam, :root .sig--vis-map.vm__cam { transform-box: view-box; transform-origin: 362px 258px; transition: transform 2.8s cubic-bezier(.65, 0, .35, 1); }
:root .sig--vis-map .is-zoom .vm__cam, :root .sig--vis-map.is-zoom .vm__cam { transform: translate(-24px, -64px) scale(1.16); }
:root .sig--vis-map .vm__lbl, :root .sig--vis-map.vm__lbl { font: 500 13px var(--f-display); fill: #6d5d86; letter-spacing: .2em; }
:root .sig--vis-map .vm__pin > g, :root .sig--vis-map.vm__pin > g { transform-box: fill-box; transform-origin: 50% 100%; transform: translateY(-14px) scale(.2); opacity: 0; transition: transform .7s var(--ease-back), opacity .3s; }
:root .sig--vis-map .vm__pin.on > g, :root .sig--vis-map.vm__pin.on > g { transform: none; opacity: 1; }
:root .sig--vis-map .is-me .vm__pin > g, :root .sig--vis-map.is-me .vm__pin > g { opacity: .55; }
:root .sig--vis-map .vm__drop, :root .sig--vis-map.vm__drop { transform-box: fill-box; transform-origin: 50% 100%; opacity: 0; transform: translateY(-120px); }
:root .sig--vis-map .is-me .vm__drop, :root .sig--vis-map.is-me .vm__drop { animation: vmDrop 1s cubic-bezier(.3, 0, .2, 1) forwards; }
@keyframes vmDrop{ 0% { opacity: 0; transform: translateY(-120px); } 15% { opacity: 1; } 62% { transform: none; } 72% { transform: scale(1.12, .84); } 84% { transform: scale(.96, 1.05); } 100% { opacity: 1; transform: none; } }
:root .sig--vis-map .vm__ring, :root .sig--vis-map.vm__ring { fill: none; stroke: #c06bff; stroke-width: 2; opacity: 0; transform-box: fill-box; transform-origin: center; }
:root .sig--vis-map .is-me .vm__ring, :root .sig--vis-map.is-me .vm__ring { animation: vmRing 2.4s cubic-bezier(.16, 1, .3, 1) .8s infinite; }
:root .sig--vis-map .is-me .vm__ring--2, :root .sig--vis-map.is-me .vm__ring--2 { animation-delay: 2s; }
@keyframes vmRing{ from { opacity: .9; transform: scale(.4); } to { opacity: 0; transform: scale(4.2); } }
:root .sig--vis-map .vm__lab, :root .sig--vis-map.vm__lab { opacity: 0; transition: opacity .6s .7s; }
:root .sig--vis-map .vm__lab rect, :root .sig--vis-map.vm__lab rect { fill: #fff; }
:root .sig--vis-map .vm__lab text, :root .sig--vis-map.vm__lab text { font: 600 13px var(--f-display); fill: #3b0066; letter-spacing: -.01em; }
:root .sig--vis-map .is-me .vm__lab, :root .sig--vis-map.is-me .vm__lab { opacity: 1; }
:root .sig--vis-map .vm__you, :root .sig--vis-map.vm__you { opacity: 0; transition: opacity .6s; }
:root .sig--vis-map .is-search .vm__you, :root .sig--vis-map.is-search .vm__you { opacity: 1; }
:root .sig--vis-map .vm__route, :root .sig--vis-map.vm__route { opacity: 0; transition: opacity .4s; }
:root .sig--vis-map .is-route .vm__route, :root .sig--vis-map.is-route .vm__route { opacity: 1; }
:root .sig--vis-map .vm__rmask, :root .sig--vis-map.vm__rmask { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.9s cubic-bezier(.65, 0, .35, 1); }
:root .sig--vis-map .is-route .vm__rmask, :root .sig--vis-map.is-route .vm__rmask { stroke-dashoffset: 0; }
:root .sig--vis-map .vm__search, :root .sig--vis-map.vm__search, :root .sig--vis-map .vm__card, :root .sig--vis-map.vm__card, :root .sig--vis-map .vm__acts svg, :root .sig--vis-map.vm__acts svg { color: inherit; }
:root .sig--vis-map .vm svg path, :root .sig--vis-map.vm svg path, :root .sig--vis-map .vm svg circle, :root .sig--vis-map.vm svg circle { vector-effect: none; }
:root .sig--vis-map .vm__search, :root .sig--vis-map.vm__search { position: absolute; z-index: 2; top: 16px; left: 16px; width: min(330px, calc(100% - 32px)); height: 46px; display: flex; align-items: center; gap: 10px; padding: 0 16px; border-radius: 999px; background: #fff; color: #1d1a22; box-shadow: 0 16px 34px -14px rgba(0, 0, 0, .8); font: 500 14px/1 var(--f-body); opacity: 0; transform: translateY(-12px); transition: opacity .5s, transform .7s var(--ease-out); }
:root .sig--vis-map .vm__search svg, :root .sig--vis-map.vm__search svg { width: 18px; height: 18px; flex: none; fill: none; stroke: #6a00c9; stroke-width: 2; stroke-linecap: round; }
:root .sig--vis-map .vm__qt, :root .sig--vis-map.vm__qt { white-space: nowrap; overflow: hidden; }
:root .sig--vis-map .is-search .vm__search, :root .sig--vis-map.is-search .vm__search { opacity: 1; transform: none; }
:root .sig--vis-map .vm__card, :root .sig--vis-map.vm__card { position: absolute; z-index: 2; right: 16px; bottom: 16px; width: min(320px, calc(100% - 32px)); padding: 16px 16px 14px; border-radius: 20px; background: #fff; color: #1d1a22; box-shadow: 0 30px 60px -24px rgba(0, 0, 0, .9); opacity: 0; transform: translateY(40px) scale(.96); transform-origin: 50% 100%; transition: opacity .5s, transform .9s var(--ease-out); }
:root .sig--vis-map .is-card .vm__card, :root .sig--vis-map.is-card .vm__card { opacity: 1; transform: none; }
:root .sig--vis-map .vm__head, :root .sig--vis-map.vm__head { display: flex; gap: 12px; align-items: center; }
:root .sig--vis-map .vm__logo, :root .sig--vis-map.vm__logo { width: 40px; height: 40px; flex: none; border-radius: 12px; display: grid; place-items: center; background: linear-gradient(135deg, #a100ff, #5b00a8); color: #fff; font: 600 13px/1 var(--f-display); }
:root .sig--vis-map .vm__head b, :root .sig--vis-map.vm__head b { display: block; font: 600 17px/1.15 var(--f-display); letter-spacing: -.02em; }
:root .sig--vis-map .vm__head small, :root .sig--vis-map.vm__head small { display: block; font: 400 12.5px/1.3 var(--f-body); color: #5b5363; margin-top: 2px; }
:root .sig--vis-map .vm__stars, :root .sig--vis-map.vm__stars { display: flex; align-items: center; gap: 2px; margin-top: 12px; font: 400 12.5px/1 var(--f-body); color: #5b5363; }
:root .sig--vis-map .vm__stars svg, :root .sig--vis-map.vm__stars svg { width: 18px; height: 18px; fill: transparent; stroke: #c9b8d8; stroke-width: 1.6; stroke-linejoin: round; transition: fill .35s, stroke .35s, transform .5s var(--ease-back); }
:root .sig--vis-map .vm__stars svg.on, :root .sig--vis-map.vm__stars svg.on { fill: #a100ff; stroke: #8b00e0; transform: scale(1.15); }
:root .sig--vis-map .vm__stars span, :root .sig--vis-map.vm__stars span { margin-left: 6px; }
:root .sig--vis-map .vm__open, :root .sig--vis-map.vm__open { margin: 8px 0 0; display: flex; align-items: center; gap: 6px; font: 400 12.5px/1.3 var(--f-body); color: #5b5363; }
:root .sig--vis-map .vm__open i, :root .sig--vis-map.vm__open i { width: 7px; height: 7px; border-radius: 50%; background: #1f9d55; box-shadow: 0 0 0 3px rgba(31, 157, 85, .16); }
:root .sig--vis-map .vm__open b, :root .sig--vis-map.vm__open b { color: #17773f; font-weight: 600; }
:root .sig--vis-map .vm__acts, :root .sig--vis-map.vm__acts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-top: 14px; padding-top: 12px; border-top: 1px solid #eee8f3; }
:root .sig--vis-map .vm__a, :root .sig--vis-map.vm__a { display: grid; justify-items: center; gap: 6px; font: 500 11.5px/1 var(--f-body); color: #4a2a6a; }
:root .sig--vis-map .vm__a em, :root .sig--vis-map.vm__a em { position: relative; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: #f3ecfa; transition: background .3s, transform .3s var(--ease-back); }
:root .sig--vis-map .vm__a svg, :root .sig--vis-map.vm__a svg { width: 18px; height: 18px; fill: none; stroke: #6a00c9; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: stroke .3s; }
:root .sig--vis-map .vm__a--route em, :root .sig--vis-map.vm__a--route em { background: #a100ff; }
:root .sig--vis-map .vm__a--route svg, :root .sig--vis-map.vm__a--route svg { stroke: #fff; }
:root .sig--vis-map .vm__a.press em, :root .sig--vis-map.vm__a.press em { transform: scale(.88); }
:root .sig--vis-map .vm__a.press em::after, :root .sig--vis-map.vm__a.press em::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid #a100ff; animation: vmTap .7s ease-out forwards; }
@keyframes vmTap{ from { transform: scale(.6); opacity: 1; } to { transform: scale(1.7); opacity: 0; } }
:root .sig--vis-map .is-out .vm__card, :root .sig--vis-map.is-out .vm__card, :root .sig--vis-map .is-out .vm__search, :root .sig--vis-map.is-out .vm__search, :root .sig--vis-map .is-out .vm__pin, :root .sig--vis-map.is-out .vm__pin, :root .sig--vis-map .is-out .vm__me, :root .sig--vis-map.is-out .vm__me, :root .sig--vis-map .is-out .vm__route, :root .sig--vis-map.is-out .vm__route { opacity: 0 !important; transition: opacity .5s; }
@media (max-width: 480px){:root .sig--vis-map .vm__card, :root .sig--vis-map.vm__card { padding: 12px 12px 10px; }
:root .sig--vis-map .vm__acts, :root .sig--vis-map.vm__acts { margin-top: 10px; padding-top: 10px; }
:root .sig--vis-map .vm__a em, :root .sig--vis-map.vm__a em { width: 32px; height: 32px; }

}
:root .sig--vis-map .vm::after, :root .sig--vis-map.vm::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(120% 90% at 55% 45%, transparent 55%, rgba(12, 8, 18, .65)); }
@media (prefers-reduced-motion: reduce){:root .sig--vis-map .vm__ring, :root .sig--vis-map.vm__ring { animation: none !important; opacity: 0 !important; }
:root .sig--vis-map .is-me .vm__drop, :root .sig--vis-map.is-me .vm__drop { animation: none; opacity: 1; transform: none; }
:root .sig--vis-map .vm__cam, :root .sig--vis-map.vm__cam { transition: none; }
 }

