.needs-head{justify-content:space-between;align-items:center;gap:var(--s-4);row-gap:var(--s-5);margin-bottom:var(--s-8);flex-wrap:wrap;display:flex}.needs-head>div:first-child{min-width:240px}.live-pill{background:var(--white);border:1px solid var(--line);border-radius:var(--r-pill);box-shadow:var(--sh-sm);font-weight:var(--fw-semibold);font-size:var(--t-sm);align-items:center;gap:9px;padding:8px 16px;display:inline-flex}.live-pill .live{background:var(--mint);border-radius:50%;width:9px;height:9px;animation:2s infinite lp}@keyframes lp{0%{box-shadow:0 0 #00d4a880}70%{box-shadow:0 0 0 7px #00d4a800}to{box-shadow:0 0 #00d4a800}}.filters{margin-bottom:var(--s-6);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fchip{border:1.5px solid var(--line-strong);background:var(--white);border-radius:var(--r-pill);font-weight:var(--fw-semibold);font-size:var(--t-sm);color:var(--slate);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);padding:9px 16px;font-family:inherit}.fchip:hover{border-color:var(--ink);color:var(--ink)}.fchip.active{background:var(--ink);border-color:var(--ink);color:#fff}.filters .sep{background:var(--line-strong);width:1px;height:26px;margin-inline:4px}.needs-layout{gap:var(--s-6);grid-template-columns:1fr 380px;align-items:start;display:grid}.needs-feed{gap:var(--s-4);display:grid}.ncard{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-5) var(--s-6);box-shadow:var(--sh-sm);transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base)}.ncard:hover{box-shadow:var(--sh-lg);border-color:var(--line-strong);transform:translateY(-3px)}.ncard-top{justify-content:space-between;align-items:center;gap:var(--s-3);margin-bottom:var(--s-3);display:flex}.ncard h3{font-size:var(--t-h4);margin-bottom:6px}.ncard .loc{color:var(--slate);font-size:var(--t-xs);align-items:center;gap:6px;display:flex}.ncard-foot{justify-content:space-between;align-items:center;gap:var(--s-4);margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--line);display:flex}.ncard .val b{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--t-h4)}.ncard .poster{align-items:center;gap:8px;display:flex}.map-wrap{top:calc(var(--nav-h) + var(--s-6));position:sticky}.map{border-radius:var(--r-xl);border:1px solid var(--line);height:520px;box-shadow:var(--sh-sm);background:radial-gradient(120px 90px at 72% 30%, var(--mint-soft) 0 60%, transparent 62%), radial-gradient(160px 120px at 22% 72%, var(--sky-soft) 0 60%, transparent 62%), var(--whisper-sky);position:relative;overflow:hidden}.map .roads{opacity:.5;background:linear-gradient(90deg,#0000 48%,#fff 48% 52%,#0000 52%),linear-gradient(#0000 67%,#fff 67% 70%,#0000 70%),linear-gradient(#0000 31%,#fff 31% 34%,#0000 34%),linear-gradient(115deg,#0000 38%,#fff 38% 41%,#0000 41%);position:absolute;inset:0}.map .river{background:var(--sky-soft);opacity:.7;filter:blur(1px);border-radius:50%;width:110%;height:60px;position:absolute;bottom:14%;left:-5%;transform:rotate(-8deg)}.pin{cursor:pointer;position:absolute;transform:translate(-50%,-100%)}.pin .head{width:30px;height:30px;box-shadow:var(--sh-md);border:2px solid #fff;border-radius:50% 50% 50% 2px;place-items:center;display:grid;transform:rotate(45deg)}.pin .head span{color:#fff;font-size:11px;font-weight:800;transform:rotate(-45deg)}.pin:hover .tip{opacity:1;transform:translate(-50%,-8px)}.pin .tip{background:var(--ink);color:#fff;font-size:var(--t-xs);white-space:nowrap;opacity:0;pointer-events:none;transition:all var(--dur-base) var(--ease-out);border-radius:8px;padding:6px 10px;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.map-cap{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--r-pill);font-weight:var(--fw-semibold);font-size:var(--t-sm);box-shadow:var(--sh-sm);background:#ffffffe6;align-items:center;gap:8px;padding:8px 14px;display:flex;position:absolute;top:16px;left:16px}@media (max-width:1040px){.needs-layout{grid-template-columns:1fr}.map-wrap{position:static}.map{height:280px}}
