.fmap{position:relative;width:100%;height:100%;min-height:200px;overflow:hidden;background:#0d1526;isolation:isolate}.fmap__canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;font-family:var(--font-jp);background:#0d1526}.fmap--dark .leaflet-tile-pane{filter:invert(1) hue-rotate(185deg) saturate(.55) brightness(.78) contrast(1.05)}:root[data-theme=day] .fmap,:root[data-theme=day] .fmap__canvas{background:#e9f3e6}:root[data-theme=day] .fmap--dark .leaflet-tile-pane{filter:none}.fmap--sim .fmap__canvas{cursor:crosshair}.fmap__controls{position:absolute;z-index:var(--z-map-ui);display:flex;flex-direction:column;gap:8px}.fmap__controls--bl{left:12px;bottom:12px;align-items:flex-start}.fmap__controls--br{right:12px;bottom:12px;align-items:flex-end}.fmap__btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:18px;background:var(--c-surface-glass);border:1px solid var(--c-line-strong);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-family:var(--font-jp);font-size:12px;font-weight:700;color:var(--c-text);white-space:nowrap;transition:background-color .15s,color .15s,transform .1s}.fmap__btn:active{transform:scale(.97)}.fmap__btn svg{width:16px;height:16px}.fmap__btn--on{background:var(--g-primary);border-color:transparent;color:#fff;box-shadow:var(--glow-blue-sm)}.fmap__attribution{position:absolute;right:0;bottom:0;z-index:var(--z-map-ui);padding:1px 6px;background:#05070d99;font-size:9px;color:var(--c-text-3)}:root[data-theme=day] .fmap__attribution{background:#fffc}.fmap__circle{animation:fmap-circle 2.4s ease-in-out infinite}@keyframes fmap-circle{0%,to{fill-opacity:.22}50%{fill-opacity:.36}}.fmap__user{position:relative;width:24px;height:24px}.fmap__user:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:9999px;background:#6fe3ff66;animation:fmap-pulse 2s ease-out infinite}.fmap__user:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:9999px;background:var(--c-cyan);border:3px solid #fff;box-shadow:0 0 0 1px #0006,0 0 12px var(--c-cyan)}.fmap__user-arrow{position:absolute;left:50%;top:50%;width:0;height:0;margin:-26px 0 0 -7px;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:14px solid var(--c-cyan);transform-origin:7px 26px;filter:drop-shadow(0 0 4px rgba(111,227,255,.9));pointer-events:none}.fmap__user-wrap--speaking .fmap__user:before{animation-duration:.9s;background:#6fe3ffb3}@keyframes fmap-pulse{0%{transform:scale(.6);opacity:.9}to{transform:scale(2.6);opacity:0}}.fmap__spot{width:44px;height:44px}.fmap__spot-mark{position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:9999px;overflow:hidden;border:2px solid var(--c-cyan);box-shadow:0 0 14px #6fe3ffb3,0 2px 6px #00000080;background:var(--c-surface)}.fmap__spot-mark img{width:100%;height:100%;object-fit:cover}.fmap__spot--guide .fmap__spot-mark{top:8px;right:8px;bottom:8px;left:8px;border-color:var(--c-text-3);box-shadow:0 2px 6px #00000080}.fmap__spot--source .fmap__spot-mark{top:6px;right:6px;bottom:6px;left:6px;display:grid;place-items:center;background:var(--g-primary);border-color:#fff;box-shadow:0 0 14px #2f8dffcc,0 2px 6px #0006;font-family:var(--font-num);font-size:16px;font-weight:800;color:#fff}.fmap__spot--source .fmap__spot-mark:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:inherit;box-shadow:0 0 #2f8dffcc;animation:fmap-ripple 2.4s ease-out infinite;pointer-events:none}@keyframes fmap-ripple{0%{opacity:.8;box-shadow:0 0 #2f8dffcc}to{opacity:0;box-shadow:0 0 0 20px #2f8dff00}}.fmap__prize{display:grid;place-items:center;width:36px;height:36px;border-radius:9999px;background:var(--c-gold);border:2px solid #fff;box-shadow:0 0 16px #ffd166b3;font-size:18px}.fmap__prize-label{position:absolute;top:100%;left:50%;transform:translate(-50%,4px);padding:2px 8px;border-radius:8px;background:#05070dcc;border:1px solid var(--c-line-strong);font-family:var(--font-jp);font-size:10px;font-weight:700;color:#fff;white-space:nowrap}.fmap__status{position:absolute;left:12px;right:12px;top:12px;z-index:var(--z-map-ui);text-align:center;padding:6px 14px;border-radius:16px;background:var(--c-surface-glass);border:1px solid var(--c-line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-family:var(--font-jp);font-size:11px;font-weight:700;color:var(--c-text-2);pointer-events:none}.fmap__status--error{color:var(--c-red)}.fmap__flash{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-map-ui);pointer-events:none;background:radial-gradient(circle at center,#6fe3ffcc,#2f8dff00 70%);opacity:0}.fmap__flash--on{animation:fmap-flash .9s ease-out}@keyframes fmap-flash{0%{opacity:1}to{opacity:0}}.fmap .leaflet-control-container{display:none}@media(prefers-reduced-motion:reduce){.fmap__user:before,.fmap__circle,.fmap__spot--source .fmap__spot-mark:before,.fmap__flash--on{animation:none}}
