/* Find map (/map/) and the coin pages' "Where these were found" mini-map (29 Oct 2026). Built by scripts/map_page.py,
   driven by site_src/findmap.js; the basemap is MapLibre GL + a self-hosted Protomaps extract (lazy-loaded). Uses the v2
   tokens (site_src/v2.css) and the /coins/ filter components (site_src/coins.css, .cx-*). Free: county bubbles and the
   members panel. Members (data from the Laravel app): each find as its coin, the filters, the in-view list and cards. */
.fm [hidden],.fmc [hidden]{display:none!important}
.page.v2.findmap .pagewrap{max-width:1600px;padding-top:calc(var(--bar-h) + 10px)}
.fm-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 22px;padding:0 0 14px}
.page.v2 .fm-h1{font:400 32px/1.1 var(--serif);margin:0;white-space:nowrap}
.fm-h1 .fm-n{color:var(--v2grey)}
.fm-badge{font:600 10.5px/1 var(--caps);letter-spacing:.2em;color:#7a4a12;border:1px solid #c9a46a;padding:5px 8px;align-self:center}
.fm-lead{margin:0;font-size:16px;color:var(--v2grey)}
.fm-tools{display:none;margin-left:auto}
.fm-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
.fm.fm-member .fm-body{grid-template-columns:236px minmax(0,1fr) 330px}
.fm .fm-side{display:none}
.fm.fm-member .fm-side{display:flex}
.fm-main{min-width:0;display:flex;flex-direction:column;gap:10px}
/* the map */
.fm-mapbox{position:relative;width:100%;height:min(76vh,860px);min-height:420px;background:#c9cdd0;border:1px solid #dcdbd7;overflow:hidden}
.fm-mapbox .fm-map{position:absolute;inset:0}
.fm-map:focus-visible{outline:2px solid var(--v2ink);outline-offset:-2px}
.fm-load{position:absolute;inset:0;display:grid;place-items:center;font:italic 16px var(--serif);color:var(--v2grey);pointer-events:none}
.fm-zoom{position:absolute;right:14px;top:14px;z-index:3;display:flex;flex-direction:column;background:#fff;border:1px solid #c9c8c3}
.fm-zoom button{all:unset;box-sizing:border-box;cursor:pointer;width:44px;height:44px;display:grid;place-items:center;font:22px/1 var(--caps);color:var(--v2ink)}
.fm-zoom button+button{border-top:1px solid #e4e3df}
.fm-zoom button:focus-visible{outline:2px solid var(--v2ink);outline-offset:-3px}
.fm-note{position:absolute;left:14px;bottom:14px;z-index:3;background:rgba(255,255,255,.92);padding:8px 12px;font:14px/1.35 var(--serif);color:#555;border:1px solid #e4e3df;max-width:calc(100% - 28px)}
.fm-credit{margin:0;font:13.5px/1.45 var(--serif);color:var(--v2grey)}
.fm-credit a{color:var(--v2grey)}
.fm-mapbox .maplibregl-ctrl-attrib{font:11px/1.4 var(--caps);background:rgba(255,255,255,.8)}
.fm-mapbox .maplibregl-ctrl-attrib a{color:#555}
/* markers */
.fm-pin,.fm-bub,.fm-clu,.fm-hoard{all:unset;box-sizing:border-box;cursor:pointer;position:relative;display:block}
.fm-pin{width:26px;height:26px;border-radius:50%;transition:transform .15s ease;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}
.fm-pin:hover,.fm-pin:focus-visible{transform:scale(1.55);z-index:5}
.fm-pin.sel{transform:scale(1.55);box-shadow:0 0 0 2px #fff,0 0 0 3.5px #7a4a12;z-index:6}
.fm-pin:focus-visible,.fm-clu:focus-visible,.fm-hoard:focus-visible,.fm-bub:focus-visible{outline:2px solid var(--v2ink);outline-offset:3px}
.fm-ci{display:block;width:100%;height:100%;background-repeat:no-repeat;border-radius:50%}
.fm-clu{width:34px;height:34px;transition:transform .15s ease;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}
.fm-clu:hover,.fm-clu:focus-visible{transform:scale(1.2);z-index:5}
.fm-clu.sel{box-shadow:0 0 0 2px #fff,0 0 0 3.5px #7a4a12;border-radius:50%}
.fm-cn{position:absolute;right:-9px;bottom:-6px;min-width:20px;height:20px;padding:0 5px;box-sizing:border-box;border-radius:10px;background:var(--v2ink);color:#fff;
  font:600 11px/20px var(--caps);text-align:center;box-shadow:0 0 0 1.5px #fff}
.fm-hoard{display:flex;align-items:center;gap:0;height:30px;transition:transform .15s ease;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}
.fm-hoard .fm-ci{width:30px;height:30px;flex:none;position:relative;z-index:1}
.fm-hoard .fm-hl{margin-left:-10px;padding:0 9px 0 14px;height:22px;display:flex;align-items:center;background:#fff;border:1px solid #7a4a12;border-radius:0 11px 11px 0;
  font:600 10.5px/1 var(--caps);letter-spacing:.1em;color:#7a4a12;white-space:nowrap}
.fm-hoard:hover,.fm-hoard:focus-visible{transform:scale(1.12);z-index:5}
.fm-hoard.sel .fm-hl{background:#7a4a12;color:#fff}
.fm-bub{border-radius:50%;background:rgba(122,74,18,.82);color:#fff;display:grid;place-items:center;font:600 13px/1 var(--caps);box-shadow:0 0 0 2px rgba(255,255,255,.85)}
.fm-bub.big{font-size:15px}
.fm-bub.co{font-size:11px;background:rgba(255,255,255,.7);color:#7a4a12;border:1.5px dashed #7a4a12;box-shadow:none}
/* the card (a MapLibre popup with our own content) */
.fm-pop .maplibregl-popup-content{padding:0;border-radius:0;border:1px solid #c9c8c3;box-shadow:0 6px 24px rgba(0,0,0,.14)}
.fm-pop .maplibregl-popup-tip{display:none}
.fm-card{display:flex;gap:12px;padding:12px;width:330px;max-width:calc(100vw - 48px);box-sizing:border-box;font:15px/1.35 var(--serif);color:var(--v2ink)}
.fm-card .fm-ci{width:64px;height:64px;flex:none}
.fm-cb{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.fm-ck{font:600 10px/1.2 var(--caps);letter-spacing:.18em;text-transform:uppercase;color:var(--v2grey)}
.fm-ct{font-weight:500;font-size:17px;line-height:1.2}
.fm-cm{font-size:14px;color:var(--v2grey)}
.fm-cm a{color:var(--v2grey)}
.fm-co{font:500 10.5px/1 var(--caps);letter-spacing:.16em;text-transform:uppercase;margin-top:6px}
.fm-cx{all:unset;cursor:pointer;align-self:flex-start;font:20px/1 var(--caps);padding:0 4px;color:var(--v2ink)}
.fm-cx:focus-visible{outline:2px solid var(--v2ink)}
.fm-hlist{list-style:none;margin:6px 0 0;padding:0;max-height:220px;overflow:auto;border-top:1px solid #efeeea}
.fm-hlist li{display:flex;gap:8px;align-items:center;padding:5px 0;border-bottom:1px solid #efeeea;font-size:14.5px}
.fm-hlist .fm-ci{width:28px;height:28px;flex:none}
/* in-view list */
.fm-list{display:none;flex-direction:column;background:#fff;border:1px solid #e4e3df;max-height:min(76vh,860px);min-height:420px}
.fm.fm-member .fm-list{display:flex}
.fm-lh{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:14px 16px;border-bottom:1px solid #e4e3df}
.page.v2 .fm-lh h2{margin:0;font:600 11px/1 var(--caps);letter-spacing:.2em;text-transform:uppercase}
.fm-ls{font-size:14px;color:var(--v2grey)}
.fm-items{overflow-y:auto;margin:0;padding:0;list-style:none;flex:1}
.fm-item{all:unset;box-sizing:border-box;cursor:pointer;display:flex;gap:12px;align-items:center;width:100%;padding:9px 16px;border-bottom:1px solid #efeeea;text-align:left}
.fm-item:hover{background:#faf8f4}
.fm-item.sel{background:#f3ede3}
.fm-item:focus-visible{outline:2px solid var(--v2ink);outline-offset:-2px}
.fm-item .fm-ci{width:40px;height:40px;flex:none}
.fm-it{display:flex;flex-direction:column;gap:2px;min-width:0}
.fm-it b{font-weight:400;font-size:16px;line-height:1.2}
.fm-it small{font-size:14px;color:var(--v2grey)}
.fm-lsub{margin:0;padding:10px 16px 4px;font:600 10px/1.3 var(--caps);letter-spacing:.18em;text-transform:uppercase;color:var(--v2grey)}
.fm-more{margin:0;padding:12px 16px;font-size:14px;color:var(--v2grey)}
/* members panel (free view) */
.fm-join{display:flex;flex-direction:column;gap:18px;background:#fff;border:1px solid var(--v2ink);padding:24px}
.fm.fm-member .fm-join{display:none}
.fm-jk{font:600 10.5px/1 var(--caps);letter-spacing:.2em;color:#7a4a12}
.page.v2 .fm-join h2{margin:0;font:400 28px/1.15 var(--serif)}
.fm-join ul{margin:0;padding-left:18px;font-size:17px;line-height:1.55}
.fm-prev{display:flex;flex-direction:column;gap:10px;filter:blur(3px);opacity:.55;user-select:none}
.fm-prev span{display:flex;gap:10px;align-items:center;font-size:16px}
.fm-prev img{width:36px;height:36px}
.fm-cta{display:block;text-align:center;background:var(--v2ink);color:#fff!important;text-decoration:none;padding:16px;font:500 12px/1 var(--caps);letter-spacing:.24em;text-transform:uppercase}
.fm-cta:focus-visible{outline:2px solid var(--v2ink);outline-offset:3px}
.fm-jp{margin:0;font-size:15px;color:var(--v2grey);text-align:center}
.fm-jp a{color:var(--v2grey)}
/* county table (free alternative to the map, and the coin page summary) */
.fm-counties{margin:4px 0 0}
.fm-counties summary{cursor:pointer;font:500 10.5px/1.6 var(--caps);letter-spacing:.18em;text-transform:uppercase}
.fm-counties ul{columns:3 180px;list-style:none;padding:0;margin:10px 0 0;font-size:15.5px}
.fm-counties li{display:flex;justify-content:space-between;gap:8px;break-inside:avoid;padding:2px 12px 2px 0}
.fm-counties li span{color:var(--v2grey);font-variant-numeric:tabular-nums}
/* coin page mini-map */
.fmc{margin:26px 0 0;padding-top:18px;border-top:1px solid var(--v2line)}
.fmc h3{font:400 21px/1.2 var(--serif);margin:0 0 6px}
.fmc .fm-mapbox{height:300px;min-height:0}
.fmc .fm-zoom button{width:36px;height:36px;font-size:19px}
.fmc .fm-note{font-size:13px;padding:5px 9px;left:8px;bottom:8px}
.fmc-sum{margin:8px 0;font-size:15.5px}
.fmc-sum b{font-weight:500}
.fmc-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin:8px 0 0;font:500 10.5px/1.8 var(--caps);letter-spacing:.16em;text-transform:uppercase}
/* phones and narrow windows: map on top, filters in a drawer, list below */
@media (max-width:1180px){
  .fm.fm-member .fm-body{grid-template-columns:minmax(0,1fr) 300px}
  .fm.fm-member .fm-side{display:none}
  .fm.fm-member .fm-tools{display:flex}
  .fm.fm-member .fm-side.open{display:flex;position:fixed;z-index:60;inset:0 0 0 auto;width:min(380px,100%);max-height:none;background:var(--v2bg);
    box-shadow:-10px 0 40px rgba(0,0,0,.18);padding:0 20px calc(14px + env(safe-area-inset-bottom))}
  .fm .cx-dhead{display:flex;align-items:center;justify-content:space-between;padding:14px 0 10px;border-bottom:1px solid var(--v2line);margin-bottom:14px}
  .page.v2 .fm .cx-dh{font:400 24px/1.2 var(--serif);margin:0}
  .fm .cx-x{all:unset;cursor:pointer;font:30px/1 var(--serif);width:44px;height:44px;text-align:center}
  .fm .cx-scroll{flex:1}
  .fm .cx-done{all:unset;cursor:pointer;display:block;padding:14px 18px;background:var(--v2ink);color:#fff;font:500 10.5px/1 var(--caps);letter-spacing:.18em;text-transform:uppercase}
}
@media (max-width:800px){
  .page.v2.findmap .pagewrap{padding:calc(var(--bar-h) + 8px) 16px 40px}
  .page.v2 .fm-h1{font-size:25px}
  .fm-body,.fm.fm-member .fm-body{grid-template-columns:minmax(0,1fr)}
  .fm-mapbox{height:62vh;min-height:320px}
  .fm-list{max-height:none;min-height:0}
  .fm-items{max-height:70vh}
  .fm-card{width:280px}
  .fmc .fm-mapbox{height:260px}
}
@media (prefers-reduced-motion:reduce){.fm-pin,.fm-clu,.fm-hoard{transition:none}}
/* "Then" overlay: where each ruler's or tribe's coins are found */
.fm-then{position:absolute;left:14px;top:14px;z-index:3;display:flex;align-items:center;background:#fff;border:1px solid #c9c8c3}
.fm-then[hidden]{display:none}
.fm-thl{font:600 10px/1 var(--caps);letter-spacing:.18em;text-transform:uppercase;color:var(--v2grey);padding:0 10px}
.fm-then button{all:unset;box-sizing:border-box;cursor:pointer;height:40px;padding:0 12px;font:500 10.5px/1 var(--caps);letter-spacing:.14em;text-transform:uppercase;color:var(--v2grey);border-left:1px solid #e4e3df}
.fm-then button[aria-pressed="true"]{background:var(--v2ink);color:#fff}
.fm-then button:focus-visible{outline:2px solid var(--v2ink);outline-offset:-3px}
.fm-then-side{position:static;border:0;background:none;flex-wrap:wrap}
.fm-then-side .fm-thl{display:none}
.fm-then-side button{border:1px solid var(--v2line);margin:0 6px 6px 0}
.fm-side-then{display:none}
.fm-legend{position:absolute;left:14px;top:66px;z-index:3;max-width:260px;max-height:calc(100% - 140px);overflow:auto;background:rgba(255,255,255,.94);border:1px solid #e4e3df;padding:10px 12px}
.fm-legend[hidden]{display:none}
.fm-lgh{margin:0 0 6px;font:600 10px/1.4 var(--caps);letter-spacing:.14em;text-transform:uppercase;color:var(--v2grey)}
.fm-legend ul{list-style:none;margin:0;padding:0;font-size:14.5px;line-height:1.35}
.fm-legend li{display:flex;align-items:baseline;gap:6px;padding:2px 0}
.fm-legend i{width:12px;height:12px;flex:none;border-radius:2px;opacity:.7;align-self:center}
.fm-legend small{color:var(--v2grey);font-size:12.5px}
.fm-tip .maplibregl-popup-content{padding:6px 10px;font:14px/1.3 var(--serif)}
.fm-tip{pointer-events:none}
.fm-hoards{margin:10px 0 0}
.page.v2 .fm-h2{font:400 22px/1.2 var(--serif);margin:6px 0 6px}
.fm-hoards ul,.fmc-hoards{margin:0;padding-left:18px;font-size:15.5px;line-height:1.5}
.fmc-hoards{margin:8px 0}
@media (max-width:800px){
  .fm.fm-member .fm-then-map{display:none}
  .fm.fm-member .fm-side-then{display:block}
  .fm-legend{top:auto;bottom:60px;max-height:40%}
}
.fm.fm-then-on .fm-bub:not(.co){opacity:.35;transform:scale(.7)}
.fm-eras{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px}
.fm-eras button{all:unset;cursor:pointer;font:500 9.5px/1 var(--caps);letter-spacing:.12em;text-transform:uppercase;padding:6px 7px;border:1px solid var(--v2line);color:var(--v2grey)}
.fm-eras button[aria-pressed="true"]{background:var(--v2ink);color:#fff;border-color:var(--v2ink)}
.fm-eras button:focus-visible{outline:2px solid var(--v2ink)}
.fm-lgs{margin:0 0 8px;font-size:13px;color:var(--v2grey)}
.fm-legend li{flex-wrap:wrap}
@media (max-width:600px){.fm-then-map .fm-thl{display:none}.fm-then button{padding:0 9px;font-size:10px}.fm-bub{font-size:11px}.fm-bub.big{font-size:12.5px}}
