#sfm{--bg:transparent;--water:#e3f1ee;--land:#f7f4ee;--coast:#d8d2c4;--ink:#0b2a2e;--muted:#4a6b6e;--line:#d8d2c4;
  --teal:#0a7f74;--teal-d:#0b2a2e;--pop:#0fb5a5;--sti:#24465c;--sdq:#d2865f;
  --display:"Libre Caslon Text",Georgia,serif;--body:"Jost",system-ui,-apple-system,sans-serif;
  color-scheme:light;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.5;padding:0;max-width:none;margin:0;box-sizing:border-box}
#sfm *{box-sizing:border-box}
#sfm .hd{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid #0b2a2e}
#sfm .eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin:0}
#sfm h2{font-family:var(--display);font-weight:800;letter-spacing:-0.02em;font-size:clamp(34px,4.6vw,56px);line-height:.98;margin:16px 0 0;color:var(--ink);text-wrap:balance}
#sfm .count{font-size:13px;color:var(--muted)}
#sfm .count b{font-family:var(--display);font-weight:700;font-size:34px;color:var(--teal);margin-right:6px;font-variant-numeric:tabular-nums}
#sfm .chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
#sfm .chip{font:500 13px var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 16px;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
#sfm .chip i{width:10px;height:10px;border-radius:50%;background:var(--c,var(--ink));display:inline-block}
#sfm .chip:hover{border-color:var(--teal)}
#sfm .chip[aria-pressed="true"]{background:var(--teal);color:#fff;border-color:var(--teal)}
#sfm .chip[aria-pressed="true"] i{box-shadow:0 0 0 2px #fff}
#sfm .chip:focus-visible,#sfm button:focus-visible,#sfm li:focus-visible,#sfm a:focus-visible,#sfm .dest:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
#sfm .grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px}
@media (max-width:820px){#sfm .grid{grid-template-columns:1fr}}
#sfm .map{position:relative;background:var(--water);border:1px solid var(--line);border-radius:0 120px 0 0;overflow:hidden;min-width:0;touch-action:none}
#sfm svg{display:block;width:100%;height:auto;cursor:grab}
#sfm svg:active{cursor:grabbing}
#sfm .land{fill:var(--land);stroke:var(--coast);stroke-width:.7;vector-effect:non-scaling-stroke}
#sfm .grat{fill:none;stroke:var(--teal);stroke-opacity:.08;stroke-width:.5;vector-effect:non-scaling-stroke}
#sfm .arc{fill:none;stroke-width:1.5;stroke-opacity:.6;vector-effect:non-scaling-stroke}
#sfm .arc.dim{stroke-opacity:.07}
#sfm .arc.hot{stroke-opacity:1;stroke-width:3}
#sfm .dest{fill:#fff;stroke:var(--ink);cursor:pointer;vector-effect:non-scaling-stroke}
#sfm .dest.dim{opacity:.18}
#sfm .dest.sel{fill:var(--teal);stroke:#fff}
#sfm .hit{fill:transparent;cursor:pointer}
#sfm .hub{stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
#sfm .lbl{font-family:var(--body);font-weight:500;fill:var(--muted);pointer-events:none}
#sfm .hublbl{font-family:var(--body);font-weight:600;letter-spacing:.04em;fill:var(--ink);pointer-events:none;paint-order:stroke;stroke:var(--water);stroke-width:3px}
#sfm .card{position:absolute;left:12px;top:12px;width:min(300px,calc(100% - 70px));background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:0 8px 28px rgba(29,43,42,.12);z-index:3}
#sfm .card[hidden]{display:none}
#sfm .card h3{font-family:var(--display);font-weight:700;font-size:26px;margin:0;line-height:1.05;color:var(--ink);padding-right:24px}
#sfm .card .cc{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:2px}
#sfm .card ul{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
#sfm .card li{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start}
#sfm .card li b{font-size:11px;font-weight:600;letter-spacing:.08em;color:#fff;background:var(--c);border-radius:4px;padding:2px 6px}
#sfm .card li span{font-size:14px}
#sfm .card li em{display:block;font-style:normal;font-size:12px;color:var(--muted)}
#sfm .tag{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--sdq);border:1px solid var(--sdq);border-radius:4px;padding:0 5px;margin-left:6px}
#sfm .x{position:absolute;right:8px;top:8px;width:30px;height:30px;border:0;background:transparent;font-size:20px;color:var(--muted);cursor:pointer;border-radius:6px}
#sfm .cta{display:inline-block;margin-top:14px;background:var(--teal);color:#fff;text-decoration:none;font-size:13px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:10px 16px;border-radius:999px}
#sfm .cta:hover{background:var(--teal-d)}
#sfm .zoom{position:absolute;right:12px;bottom:12px;display:grid;gap:6px;z-index:2}
#sfm .zoom button{width:36px;height:36px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink);font:500 18px var(--body);cursor:pointer;line-height:1}
#sfm .zoom button.r{font-size:10px;letter-spacing:.08em}
#sfm .legend{position:absolute;left:10px;bottom:10px;display:flex;flex-wrap:wrap;gap:6px 14px;background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:8px;padding:7px 11px;font-size:12px;color:var(--muted)}
#sfm .legend span{display:inline-flex;align-items:center;gap:6px}
#sfm .legend i{width:16px;height:3px;border-radius:2px;background:var(--c)}
#sfm .side{min-width:0;display:flex;flex-direction:column;gap:10px}
#sfm .search{width:100%;font:15px var(--body);color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 16px}
#sfm .search:focus{outline:none;border-color:var(--teal)}
#sfm .list{list-style:none;margin:0;padding:0 4px 0 0;overflow-y:auto;max-height:540px}
@media (max-width:820px){#sfm .list{max-height:340px}}
#sfm .list h4{font-family:var(--body);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin:16px 0 4px}
#sfm .list h4:first-child{margin-top:0}
#sfm .list li{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:8px 8px;border-bottom:1px solid var(--line);cursor:pointer;border-radius:6px}
#sfm .list li:hover{background:var(--water)}
#sfm .list li.sel{background:var(--teal);color:#fff}
#sfm .list li.sel small{color:#e6f6f5}
#sfm .list li span{min-width:0}
#sfm .list li small{color:var(--muted);font-size:11px;letter-spacing:.06em;margin-left:6px}
#sfm .dots{display:flex;gap:4px}
#sfm .dots i{width:9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 0 1.5px #fff}
#sfm .note{font-size:12px;color:var(--muted);margin:14px 0 0}
@media (max-width:820px){#sfm .map{border-radius:0 48px 0 0}#sfm .legend{position:static;border:0;border-top:1px solid var(--line);border-radius:0;background:#f7f4ee;padding:10px 12px}#sfm .zoom{bottom:auto;top:56px;right:10px}}
