@property --ai-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}:root{--ai-indigo: #4f46e5;--ai-violet: #9333ea;--ai-teal: #0d9488;--ai-ink: #4338ca;--ai-ring: conic-gradient( from var(--ai-angle), var(--ai-indigo), var(--ai-violet), var(--ai-teal), var(--ai-violet), var(--ai-indigo) )}.dark{--ai-indigo: #818cf8;--ai-violet: #c084fc;--ai-teal: #2dd4bf;--ai-ink: #c7d2fe}.map-ai[hidden],.map-ai [hidden]{display:none!important}.map-ai{position:relative;isolation:isolate;padding:.7rem .9rem .65rem;border-bottom:1px solid var(--line);background-color:var(--bg)}.map-ai__field{position:relative;display:flex;align-items:center;gap:.5rem;height:2.75rem;padding:0 .3rem 0 .8rem;border-radius:var(--r-pill);background-color:var(--surface);box-shadow:0 1px 2px #0f172a0d,0 8px 22px -14px color-mix(in srgb,var(--ai-indigo) 45%,transparent)}.map-ai__field:before,.map-ai__field:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:var(--ai-ring)}.map-ai__field:before{padding:1.5px;opacity:.55;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);transition:opacity .2s ease}.map-ai__field:after{z-index:-1;inset:-3px;filter:blur(12px);opacity:0;transition:opacity .35s ease}.map-ai__field:hover:before,.map-ai__field:focus-within:before{opacity:1}.map-ai__field:focus-within{outline:2px solid transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--ai-violet) 16%,transparent),0 8px 22px -14px color-mix(in srgb,var(--ai-indigo) 45%,transparent)}.map-ai__spark{flex:none;overflow:visible}.map-ai__spark-main{fill:var(--ai-violet);transform-origin:12px 12px}.map-ai__spark-mini{fill:var(--ai-teal);transform-origin:19.5px 3.8px}.map-ai__input{flex:1 1 auto;min-width:0;height:100%;border:0;padding:0;background:transparent;color:var(--ink);font:inherit;font-size:.92rem;font-weight:450}.map-ai__input:focus{outline:none}.map-ai__input::-moz-placeholder{color:var(--muted);opacity:1}.map-ai__input::placeholder{color:var(--muted);opacity:1}.map-ai__ask{flex:none;height:2.15rem;padding:0 .95rem;border:0;border-radius:var(--r-pill);background:linear-gradient(135deg,var(--ai-indigo),var(--ai-violet));color:#fff;font:inherit;font-size:.82rem;font-weight:650;cursor:pointer;transition:filter .15s ease,transform .15s ease}.dark .map-ai__ask{background:linear-gradient(135deg,#6366f1,#9333ea)}.map-ai__ask:hover{filter:brightness(1.08)}.map-ai__ask:active{transform:scale(.97)}.map-ai__ask:focus-visible{outline:2px solid var(--ai-violet);outline-offset:2px}.map-ai__status{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.45rem .6rem;margin-top:.5rem;padding:0 .35rem}.map-ai__status-text{flex:1 1 13rem;min-width:0;margin:0;font-size:.8rem;line-height:1.35;color:var(--muted)}.map-ai__status-text strong{font-weight:650;color:var(--ai-ink)}.map-ai__status-text.is-swapping{animation:ai-swap .45s ease both}.map-ai[data-state=error] .map-ai__status-text{color:#b91c1c}.dark .map-ai[data-state=error] .map-ai__status-text{color:#f87171}.map-ai__actions{display:flex;flex:none;gap:.4rem;margin-left:auto}.map-ai__clear,.map-ai__zoom{flex:none;height:1.75rem;padding:0 .7rem;border:1px solid var(--line);border-radius:var(--r-pill);background-color:var(--surface);color:var(--ink);font:inherit;font-size:.76rem;font-weight:650;cursor:pointer}.map-ai__clear:hover,.map-ai__zoom:hover{border-color:var(--ai-violet)}.map-ai__clear:focus-visible,.map-ai__zoom:focus-visible{outline:2px solid var(--ai-violet);outline-offset:2px}.map-ai__zoom{border-color:color-mix(in srgb,var(--ai-violet) 45%,var(--line));color:var(--ai-ink)}.map-ai[data-state=zoom] .map-ai__status-text,.map-ai[data-state=shared] .map-ai__status-text,.map-ai[data-state=notice] .map-ai__status-text{color:var(--ink)}.map-ai[data-state=zoom] .map-ai__field:before{opacity:.35}.map-ai[data-state=thinking] .map-ai__field:before{opacity:1;animation:ai-turn 2.4s linear infinite}.map-ai[data-state=thinking] .map-ai__field:after{opacity:.45;animation:ai-turn 2.4s linear infinite,ai-breathe 2.4s ease-in-out infinite}.map-ai[data-state=thinking] .map-ai__spark-main{animation:ai-twinkle 1.2s ease-in-out infinite}.map-ai[data-state=thinking] .map-ai__spark-mini{animation:ai-twinkle 1.2s ease-in-out -.6s infinite}.map-ai[data-state=thinking] .map-ai__ask{background-size:200% 100%;background-image:linear-gradient(110deg,var(--ai-indigo),var(--ai-violet) 40%,var(--ai-teal) 60%,var(--ai-indigo));animation:ai-slide 1.6s linear infinite;pointer-events:none}.map-ai[data-state=thinking] .map-ai__status-text{color:transparent;background:linear-gradient(100deg,var(--muted) 0%,var(--muted) 35%,var(--ai-violet) 47%,var(--ai-teal) 53%,var(--muted) 65%,var(--muted) 100%) 0 0 / 250% 100%;-webkit-background-clip:text;background-clip:text;animation:ai-shimmer 1.8s linear infinite}.map-ai__motes{position:absolute;inset:0 .9rem;overflow:hidden;pointer-events:none}.map-ai__mote{position:absolute;bottom:22%;left:var(--x);width:4px;height:4px;border-radius:50%;background:var(--ai-violet);box-shadow:0 0 6px var(--ai-violet);opacity:0;animation:ai-mote var(--d) ease-in var(--delay) infinite}.map-ai__mote:nth-child(2n){background:var(--ai-teal);box-shadow:0 0 6px var(--ai-teal)}.map-ai__mote:nth-child(3n){width:8px;height:8px;border-radius:0;background:var(--ai-indigo);box-shadow:none;clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}.map-cards__list.is-ai-reading .map-card{position:relative}.map-cards__list.is-ai-reading .map-card:after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(100deg,transparent 22%,color-mix(in srgb,var(--ai-violet) 26%,transparent) 42%,color-mix(in srgb,#fff 55%,transparent) 49%,color-mix(in srgb,var(--ai-teal) 32%,transparent) 54%,transparent 74%);transform:translate(-110%);animation:ai-read 1.7s cubic-bezier(.45,0,.25,1) infinite;animation-delay:calc(var(--ai-i, 0) * .11s)}.map-cards__list.is-ai-reading .map-card-item{opacity:.86;transition:opacity .3s ease}.map-card.is-ai-reveal{animation:ai-bloom .75s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--ai-i, 0) * 70ms)}.map-card__why{display:flex;align-items:flex-start;gap:.35rem;margin:.4rem 0 0;font-size:.78rem;font-weight:550;line-height:1.3;color:var(--ai-ink)}.map-card__why-spark{flex:none;margin-top:.12rem;color:var(--ai-violet)}.map-card.is-ai-reveal .map-card__why-spark{animation:ai-twinkle .9s ease-in-out 2;animation-delay:calc(var(--ai-i, 0) * 70ms + .4s)}.map-dot[data-ai=match] .map-dot__mark{animation:ai-halo 1.3s ease-out 3;animation-delay:calc(var(--ai-i, 0) * 60ms)}@keyframes ai-turn{to{--ai-angle: 360deg}}@keyframes ai-breathe{0%,to{opacity:.3}50%{opacity:.6}}@keyframes ai-twinkle{0%,to{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(.72) rotate(45deg);opacity:.7}}@keyframes ai-slide{to{background-position:-200% 0}}@keyframes ai-shimmer{0%{background-position:100% 0}to{background-position:-150% 0}}@keyframes ai-swap{0%{opacity:0;transform:translateY(3px)}}@keyframes ai-mote{0%{opacity:0;transform:translate(0) scale(var(--s))}20%{opacity:.95}to{opacity:0;transform:translate(var(--drift),-46px) scale(calc(var(--s) * .4))}}@keyframes ai-read{0%{transform:translate(-110%)}70%,to{transform:translate(110%)}}@keyframes ai-bloom{0%{opacity:0;filter:blur(6px);transform:translateY(8px) scale(.97)}55%{opacity:1;filter:blur(0);transform:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--ai-violet) 55%,transparent),0 14px 34px -12px color-mix(in srgb,var(--ai-indigo) 55%,transparent)}}@keyframes ai-halo{0%{box-shadow:0 1px 4px #0f172a47,0 0 color-mix(in srgb,var(--ai-violet) 70%,transparent)}to{box-shadow:0 1px 4px #0f172a47,0 0 0 12px color-mix(in srgb,var(--ai-teal) 0%,transparent)}}@media(max-width:768px){.map-shell .map-cards{grid-template-rows:auto auto 1fr}.map-shell .map-ai{grid-row:2;grid-column:1;padding:.15rem .75rem .5rem;border-bottom:0;background:transparent}.map-shell #map-cards-list{grid-row:3}.map-ai__input{font-size:16px}}@media(prefers-reduced-motion:reduce){.map-ai *,.map-ai *:before,.map-ai *:after,.map-card.is-ai-reveal,.map-card.is-ai-reveal .map-card__why-spark,.map-cards__list.is-ai-reading .map-card:after,.map-dot[data-ai=match] .map-dot__mark{animation:none!important}.map-cards__list.is-ai-reading .map-card:after{display:none}.map-ai[data-state=thinking] .map-ai__status-text{color:var(--ai-ink);background:none}.map-ai__motes{display:none}}
