:root{--bg:#f4f1ea;--ink:#1d2a35;--muted:#5d6a73;--accent:#e4572e;--line:#e3ded3;--line-strong:#cfc8ba;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}.app{max-width:1200px;margin:0 auto;padding:40px 24px 32px}header h1{letter-spacing:-.02em;margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(2rem,5vw,3.2rem);font-weight:600}.lede{max-width:56ch;color:var(--muted);margin:8px 0 24px;font-size:1.05rem;line-height:1.5}.about{border-top:1px solid var(--line);max-width:68ch;margin-top:48px;padding-top:32px;line-height:1.65}.about h2{letter-spacing:-.01em;margin:28px 0 6px;font-family:Fraunces,Georgia,serif;font-size:1.35rem;font-weight:600}.about h2:first-child{margin-top:0}.about p{color:#3a4750;margin:0}.about .takeaway{border-left:3px solid var(--accent);color:var(--ink);margin-top:28px;padding-left:16px;font-family:Fraunces,Georgia,serif;font-size:1.2rem}.card{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 2px #1d2a350a,0 12px 32px -16px #1d2a352e}.map{line-height:0}.map canvas{width:100%;display:block}.map.pickable{cursor:crosshair}.bar{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding:14px 18px;display:flex}.status{flex-direction:column;gap:2px;min-width:0;display:flex}.coord{font-family:IBM Plex Mono,monospace;font-size:.95rem;font-weight:600}.hint{color:var(--muted);font-size:.9rem}.actions{flex-wrap:wrap;gap:8px;display:flex}button{font:inherit;border:1px solid var(--line-strong);color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;padding:10px 18px;font-size:.92rem;font-weight:600;transition:background .15s,transform .1s}button:hover:not(:disabled){background:#f4f1ea}button:active:not(:disabled){transform:translateY(1px)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:#c42}button:disabled{opacity:.4;cursor:not-allowed}.legend{flex-wrap:wrap;gap:8px 18px;margin:16px 0 0;padding:0;font-size:.9rem;list-style:none;display:flex}.legend li{align-items:center;gap:7px;display:flex}.swatch{border:1px solid var(--line-strong);border-radius:3px;width:14px;height:14px}footer a{color:inherit}footer{color:var(--muted);margin-top:10px;font-size:.85rem;line-height:1.6}@media (width<=640px){.app{padding:24px 16px}.actions{width:100%}.actions button{white-space:nowrap;flex:auto;padding:10px 12px}}
