:root{--bg:#FAFAF7;--ink:#111;--lime:#C6F432;--lav:#E9E3FF;--line:#EAEAEA;--mute:#8a8a85}
*{-webkit-tap-highlight-color:transparent}
body{margin:0;background:#ecebe4;font-family:'Bricolage Grotesque',sans-serif;color:var(--ink)}
.mono{font-family:'JetBrains Mono',monospace}
.phone{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative;
 background-image:radial-gradient(circle at 1px 1px,#e4e4dc 1px,transparent 0);background-size:22px 22px;padding-bottom:96px}
.card{background:#fff;border:1px solid var(--line);border-radius:20px}
.pill{border-radius:999px}
.btn{transition:transform .12s}
.btn:active{transform:scale(.94)}
.lime{background:var(--lime)}
.lav{background:var(--lav)}
.chip{border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13px;white-space:nowrap;background:#fff}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 0 rgba(198,244,50,.8);animation:pulse 1.4s infinite;display:inline-block}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(198,244,50,0)}100%{box-shadow:0 0 0 0 rgba(198,244,50,0)}}
.rise{animation:rise .4s both}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.sheet{position:fixed;inset:0;background:rgba(17,17,17,.4);z-index:1000;display:flex;align-items:flex-end;justify-content:center}
.sheet>div{width:100%;max-width:480px;background:var(--bg);border-radius:24px 24px 0 0;max-height:92vh;overflow:auto;animation:up .25s}
@keyframes up{from{transform:translateY(100%)}}
.noscroll::-webkit-scrollbar{display:none}
input,textarea,select{border:1px solid var(--line);border-radius:14px;padding:10px 12px;width:100%;background:#fff;outline:none;font-family:inherit}
input:focus,textarea:focus{border-color:var(--ink)}
.confetti{position:fixed;top:-10px;width:8px;height:14px;z-index:2000;animation:fall linear forwards}
@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}
.leaflet-container{font-family:inherit}
.emk{font-size:22px;background:#fff;border:2px solid #111;border-radius:50%;width:38px;height:38px;display:flex;align-items:center;justify-content:center}
.emk.pin{width:50px;height:50px;font-size:28px;background:var(--lav)}