{"version":3,"names":["window","__phWorldVisits","LEAF_CSS","LEAF_JS","DARK","LABELS","SAT","SAT_REF","WORLD","WORLD_FALLBACK","DAY_FALLBACK","VISITS","VISITS_FALLBACK","ICONS","visits","earthquakes","earthquake","volcanoes","volcano","storms","storm","wildfires","wildfire","fire","floods","flood","landslides","landslide","droughts","drought","disasters","disaster","conflict","weather","radar","LABELS_L","LAYERS_ON","PORTS_RE","WATCH_RE","phWvMode","test","location","pathname","onRoute","need","cb","L","map","document","querySelector","l","createElement","rel","href","setAttribute","head","appendChild","s","src","tries","iv","setInterval","clearInterval","build","w","className","innerHTML","legendHtml","keys","h","i","length","k","groups","radarLayer","tickIv","tickLines","tickIdx","lastFeed","ensureGroups","Object","forEach","layerGroup","iconMarker","lat","lon","kind","html","visit","meta","emoji","ic","divIcon","v","tier","fresh","last","Date","now","getTime","iconSize","iconAnchor","popupAnchor","marker","icon","riseOnHover","bindPopup","maxWidth","autoPanPadding","offset","phPortsHidden","indexOf","draw","el","watch","worldCopyJump","zoomControl","attributionControl","minZoom","maxZoom","setView","tileLayer","attribution","addTo","opacity","wrap","closest","phMapMountCtls","mountLocalCtls","leg","onchange","ev","t","target","getAttribute","checked","applyVisibility","wirePanels","load","m","ICO","fs","x","zin","zout","old","remove","box","btn","title","fn","b","type","addEventListener","e","preventDefault","stopPropagation","applyLocalFs","classList","contains","zoomIn","zoomOut","on","fsBtn","_phFsParent","parentNode","_phFsNext","nextSibling","body","insertBefore","toggle","documentElement","style","overflow","setTimeout","invalidateSize","key","legP","feedP","legT","feedT","onclick","hasLayer","addLayer","removeLayer","esc","String","replace","c","clearGroups","clearLayers","fetchFirst","urls","Promise","resolve","next","u","fetch","headers","Accept","cache","then","r","ok","json","j","catch","fmtTime","iso","d","isNaN","slice","toISOString","fmtShort","deviceLine","pl","bits","device","push","os","browser","lang","isp","join","renderWorld","empty","layers","places","filter","p","any","chronicle","arr","cut","status","toLowerCase","at","parse","isFinite","mag","Number","NaN","n","detail","place","mag_unit","kindMap","updated_at","id","where","city","region","country","Boolean","dev","vhtml","members","guests","phVisitExtra","first","wx","temp_c","wind_kmh","precip_mm","latest","url","zIndex","Array","isArray","concat","display","ticker","paintTick","paintFeed","loadDayFeed","rows","byId","merged","out","sort","a","localeCompare","Math","min","layerKey","toFixed","updated","day","entries","tick","textContent","totals","mount","stale","querySelectorAll","q","outlet","firstElementChild","shellFits","pend","kick","obs","tgt","bind","disconnect","MutationObserver","observe","childList","subtree"],"sources":["theme-12-inline-common-head_tag-8.js"],"sourcesContent":["\n/* PH WORLD STATE MAP v3.1\n   Shared expand/zoom chrome · feed clears top-right controls\n*/\n(function () {\n  if (window.__phWorldVisits === \"v3.5\") { return; }\n  window.__phWorldVisits = \"v3.5\";\n\n  var LEAF_CSS = \"https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.9.4/leaflet.min.css\";\n  var LEAF_JS = \"https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.9.4/leaflet.min.js\";\n  var DARK = \"https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Base/MapServer/tile/{z}/{y}/{x}\";\n  var LABELS = \"https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Reference/MapServer/tile/{z}/{y}/{x}\";\n  var SAT = \"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}\";\n  var SAT_REF = \"https://server.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer/tile/{z}/{y}/{x}\";\n  var WORLD = \"/srv/world.json\";\n  var WORLD_FALLBACK = \"https://piratehoard-worldstate.truemagus7.workers.dev/srv/world.json\";\n  var DAY_FALLBACK = \"https://piratehoard-worldstate.truemagus7.workers.dev/srv/world/day/\";\n  var VISITS = \"/srv/visits.json\";\n  var VISITS_FALLBACK = \"https://piratehoard-visits.truemagus7.workers.dev/srv/visits.json\";\n\n  var ICONS = {\n    visits: \"❤️\",\n    earthquakes: \"💥\",\n    earthquake: \"💥\",\n    volcanoes: \"🌋\",\n    volcano: \"🌋\",\n    storms: \"🌀\",\n    storm: \"🌀\",\n    wildfires: \"🔥\",\n    wildfire: \"🔥\",\n    fire: \"🔥\",\n    floods: \"🌊\",\n    flood: \"🌊\",\n    landslides: \"⛰️\",\n    landslide: \"⛰️\",\n    droughts: \"🏜️\",\n    drought: \"🏜️\",\n    disasters: \"⚠️\",\n    disaster: \"⚠️\",\n    conflict: \"⚔️\",\n    weather: \"🌡️\",\n    radar: \"📡\"\n  };\n\n  var LABELS_L = {\n    visits: \"Reader ports\",\n    earthquakes: \"Earthquakes\",\n    volcanoes: \"Volcanoes\",\n    storms: \"Storms\",\n    wildfires: \"Wildfires\",\n    floods: \"Floods\",\n    landslides: \"Landslides\",\n    droughts: \"Droughts\",\n    disasters: \"Disaster watch\",\n    conflict: \"Conflict signals\",\n    weather: \"Port weather\",\n    radar: \"Rain radar\"\n  };\n\n  var LAYERS_ON = {\n    visits: true, earthquakes: true, volcanoes: true, storms: true,\n    wildfires: true, floods: true, landslides: true, droughts: false,\n    disasters: true, conflict: true, weather: true, radar: true\n  };\n\n  /* Two rooms, one codebase. Captain's Cabin (3) holds the private Reader\n     Ports map (r305); Prophecy & End Times (280) is the disaster map.\n     phWvMode is published so every other block in this theme can ask which\n     one it is looking at. */\n  var PORTS_RE = /^\\/c\\/(?:[^\\/?#]+\\/)*3(?:\\/|$)/;\n  var WATCH_RE = /^\\/c\\/(?:[^\\/]+\\/)*280(?:\\/|$)/;\n  window.phWvMode = function () {\n    return WATCH_RE.test(location.pathname) ? \"watch\" : \"ports\";\n  };\n  function onRoute() {\n    return PORTS_RE.test(location.pathname) || WATCH_RE.test(location.pathname);\n  }\n\n  function need(cb) {\n    if (window.L && window.L.map) { cb(); return; }\n    if (!document.querySelector(\"link[data-ph-leaf]\")) {\n      var l = document.createElement(\"link\");\n      l.rel = \"stylesheet\"; l.href = LEAF_CSS; l.setAttribute(\"data-ph-leaf\", \"1\");\n      document.head.appendChild(l);\n    }\n    var s = document.querySelector(\"script[data-ph-leaf]\");\n    if (!s) {\n      s = document.createElement(\"script\");\n      s.src = LEAF_JS; s.setAttribute(\"data-ph-leaf\", \"1\");\n      document.head.appendChild(s);\n    }\n    var tries = 0;\n    var iv = setInterval(function () {\n      tries++;\n      if (window.L && window.L.map) { clearInterval(iv); cb(); }\n      else if (tries > 80) clearInterval(iv);\n    }, 100);\n  }\n\n  function build() {\n    var w = document.createElement(\"div\");\n    w.className = \"ph-wv-wrap\";\n    w.setAttribute(\"data-ph-mode\", window.phWvMode());\n    /* Ports mode bakes .ph-wv-row on first paint so the title bar does not\n       jumble while ph-reader-ports later attaches the roster overlay. */\n    w.innerHTML =\n      '<div class=\"ph-wv-bar\">' +\n        (window.phWvMode() === \"ports\"\n          ? '<button type=\"button\" class=\"ph-wv-row\" data-ph-ptopen aria-controls=\"ph-ports-roster\" aria-expanded=\"false\" aria-label=\"Ports roster\">' +\n              '<span class=\"ph-wv-title\">Reader Ports</span>' +\n              '<span class=\"ph-wv-portsline\" data-ph-portsline>counting the crew\\u2019s ports\\u2026</span>' +\n              '<i class=\"ph-pt-chev\" aria-hidden=\"true\">\\u25be</i>' +\n            \"</button>\"\n          : '<span class=\"ph-wv-title\">The World&apos;s Watch</span>' +\n            '<span class=\"ph-wv-tick\" data-ph-tick>charting the live world\\u2026</span>') +\n      \"</div>\" +\n      '<div class=\"ph-wv-map\" data-ph-wvmap></div>' +\n      (window.phWvMode() === \"ports\"\n        ? \"\"\n        : '<div class=\"ph-wv-dock\">' +\n            '<div class=\"ph-wv-panel ph-wv-panel-leg open\" data-ph-legpanel>' +\n              '<div class=\"ph-wv-panel-hd\" data-ph-legtoggle><span>Live layers</span><i class=\"ph-wv-arr\">▲</i></div>' +\n              '<div class=\"ph-wv-panel-bd\" data-ph-legend></div>' +\n            \"</div>\" +\n            (window.phWvMode() === \"watch\"\n              ? '<div class=\"ph-wv-panel ph-wv-panel-feed\" data-ph-feedpanel>' +\n                '<div class=\"ph-wv-panel-hd\" data-ph-feedtoggle><span>World&apos;s Watch feed</span><i class=\"ph-wv-arr\">▲</i></div>' +\n                '<div class=\"ph-wv-panel-bd\"><div class=\"ph-wv-feed-list\" data-ph-feed></div></div>' +\n                \"</div>\"\n              : \"\") +\n          \"</div>\") +\n      '<div class=\"ph-wv-empty\" data-ph-empty>' +\n        (window.phWvMode() === \"ports\"\n          ? \"Waiting on the ports feed.\"\n          : \"Waiting on the world feed.\") +\n      \"</div>\";\n    return w;\n  }\n\n  function legendHtml() {\n    var keys = window.phWvMode() === \"ports\"\n      ? [\"visits\"]\n      : [\"earthquakes\",\"volcanoes\",\"storms\",\"wildfires\",\"floods\",\"landslides\",\"disasters\",\"conflict\",\"weather\",\"radar\"];\n    var h = \"\";\n    for (var i = 0; i < keys.length; i++) {\n      var k = keys[i];\n      h += '<label><input type=\"checkbox\" data-ph-layer=\"' + k + '\"' +\n        (LAYERS_ON[k] ? \" checked\" : \"\") +\n        '><i class=\"ph-wv-ico\">' + (ICONS[k] || \"•\") + \"</i>\" + (LABELS_L[k] || k) + \"</label>\";\n    }\n    h += '<span class=\"ph-wv-note\">' + (window.phWvMode() === \"ports\"\n      ? 'Reader ports are anonymous, city level and counted in aggregate. No visitor is identified and nothing is stored in this page.'\n      : 'Hazards: USGS · EONET · GDACS. Conflict = open-media signals, not verified battle reports.') + '</span>';\n    return h;\n  }\n\n  var map = null, groups = {}, radarLayer = null;\n  var tickIv = null, tickLines = [], tickIdx = 0;\n  var lastFeed = [];\n\n  function ensureGroups() {\n    Object.keys(LABELS_L).forEach(function (k) {\n      if (k === \"radar\") return;\n      if (!groups[k]) groups[k] = window.L.layerGroup();\n    });\n  }\n\n  function iconMarker(lat, lon, kind, html, visit, meta) {\n    var emoji = ICONS[kind] || \"📍\";\n    var ic = window.L.divIcon({\n      /* A port's pin carries its own weight: four tiers by visit count,\n         and a pulse while an arrival is under an hour old. */\n      className: \"ph-wv-marker\" + (visit ? \" visit\" : \"\") + (function () {\n        if (!visit || !meta) { return \"\"; }\n        var v = meta.visits || 0;\n        var tier = v >= 50 ? \" pv4\" : v >= 10 ? \" pv3\" : v >= 3 ? \" pv2\" : \" pv1\";\n        var fresh = meta.last && (Date.now() - new Date(meta.last).getTime()) < 3600000;\n        return tier + (fresh ? \" fresh\" : \"\");\n      })(),\n      html: \"<span title=\\\"\" + (LABELS_L[kind] || kind) + \"\\\">\" + emoji + \"</span>\",\n      iconSize: [28, 28],\n      iconAnchor: [14, 14],\n      popupAnchor: [0, 0]\n    });\n    return window.L.marker([lat, lon], { icon: ic, riseOnHover: true })\n      .bindPopup('<div class=\"ph-wv-popup\">' + html + \"</div>\", {\n        maxWidth: 320,\n        autoPanPadding: [24, 24],\n        offset: [0, 0]\n      });\n  }\n\n  /* Captain home ports stay off the public heart map and Ports roster. */\n  function phPortsHidden(k) {\n    if (!k || typeof k !== \"string\") { return true; }\n    if (k.indexOf(\"proof\") >= 0) { return true; }\n    if (k === \"us-texas-austin\" || k === \"gb-england-london\") { return true; }\n    if (k === \"th-nakhon-ratchasima-chakkarat\") { return true; }\n    if (k.indexOf(\"th-chiang-mai-\") === 0) { return true; }\n    return false;\n  }\n\n  function draw(el) {\n    if (map) return;\n    var watch = window.phWvMode && window.phWvMode() === \"watch\";\n    map = window.L.map(el, {\n      worldCopyJump: true, zoomControl: false, attributionControl: true,\n      minZoom: 2, maxZoom: watch ? 18 : 12\n    }).setView([22, 8], 2);\n    if (watch) {\n      window.L.tileLayer(SAT, { maxZoom: 18, attribution: \"Esri, Maxar, Earthstar Geographics\" }).addTo(map);\n      window.L.tileLayer(SAT_REF, { maxZoom: 18, opacity: 0.85, attribution: \"Esri\" }).addTo(map);\n    } else {\n      window.L.tileLayer(DARK, { maxZoom: 12, attribution: \"Esri\" }).addTo(map);\n      window.L.tileLayer(LABELS, { maxZoom: 12, opacity: 0.85 }).addTo(map);\n    }\n    ensureGroups();\n    var wrap = el.closest ? el.closest(\".ph-wv-wrap\") : document.querySelector(\".ph-wv-wrap\");\n    if (wrap && typeof window.phMapMountCtls === \"function\") {\n      window.phMapMountCtls(wrap, map);\n    } else if (wrap) {\n      mountLocalCtls(wrap, map);\n    }\n\n    var leg = document.querySelector(\"[data-ph-legend]\");\n    if (leg) {\n      leg.innerHTML = legendHtml();\n      leg.onchange = function (ev) {\n        var t = ev.target;\n        if (!t || !t.getAttribute) return;\n        var k = t.getAttribute(\"data-ph-layer\");\n        if (!k) return;\n        LAYERS_ON[k] = !!t.checked;\n        applyVisibility();\n      };\n    }\n    wirePanels();\n    load();\n    setInterval(load, 60000);\n  }\n\n  function mountLocalCtls(wrap, m) {\n    var ICO = {\n      fs: '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path class=\"ph-stroke\" d=\"M4 9V4h5M15 4h5v5M4 15v5h5M20 15v5h-5\"/></svg>',\n      x: '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path class=\"ph-stroke\" d=\"M6 6l12 12M18 6L6 18\"/></svg>',\n      zin: '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path class=\"ph-stroke\" d=\"M12 5v14M5 12h14\"/></svg>',\n      zout: '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path class=\"ph-stroke\" d=\"M5 12h14\"/></svg>'\n    };\n    var old = wrap.querySelector(\"[data-ph-map-ctls]\");\n    if (old) old.remove();\n    var box = document.createElement(\"div\");\n    box.className = \"ph-map-ctls\";\n    box.setAttribute(\"data-ph-map-ctls\", \"1\");\n    function btn(html, title, fn) {\n      var b = document.createElement(\"button\");\n      b.type = \"button\"; b.className = \"ph-map-btn\"; b.innerHTML = html;\n      b.title = title; b.setAttribute(\"aria-label\", title);\n      b.addEventListener(\"click\", function (e) { e.preventDefault(); e.stopPropagation(); fn(b); });\n      box.appendChild(b);\n      return b;\n    }\n    var fs = btn(ICO.fs, \"Expand map\", function () {\n      applyLocalFs(!wrap.classList.contains(\"ph-map-fs\"), fs);\n    });\n    btn(ICO.zin, \"Zoom in\", function () { try { m.zoomIn(); } catch (e) {} });\n    btn(ICO.zout, \"Zoom out\", function () { try { m.zoomOut(); } catch (e) {} });\n    wrap.appendChild(box);\n    function applyLocalFs(on, fsBtn) {\n      if (on) {\n        if (!wrap._phFsParent) { wrap._phFsParent = wrap.parentNode; wrap._phFsNext = wrap.nextSibling; }\n        document.body.appendChild(wrap);\n      } else if (wrap._phFsParent) {\n        if (wrap._phFsNext && wrap._phFsNext.parentNode === wrap._phFsParent) wrap._phFsParent.insertBefore(wrap, wrap._phFsNext);\n        else wrap._phFsParent.appendChild(wrap);\n        wrap._phFsParent = null; wrap._phFsNext = null;\n      }\n      wrap.classList.toggle(\"ph-map-fs\", on);\n      document.documentElement.classList.toggle(\"ph-map-fs\", on);\n      document.body.classList.toggle(\"ph-map-fs\", on);\n      document.documentElement.style.overflow = on ? \"hidden\" : \"\";\n      fsBtn.innerHTML = on ? ICO.x : ICO.fs;\n      fsBtn.title = on ? \"Collapse map\" : \"Expand map\";\n      setTimeout(function () { try { m.invalidateSize(); } catch (e) {} }, 60);\n      setTimeout(function () { try { m.invalidateSize(); } catch (e) {} }, 200);\n    }\n    document.addEventListener(\"keydown\", function (e) {\n      if (e.key === \"Escape\" && wrap.classList.contains(\"ph-map-fs\")) applyLocalFs(false, fs);\n    });\n  }\n\n  function wirePanels() {\n    var legP = document.querySelector(\"[data-ph-legpanel]\");\n    var feedP = document.querySelector(\"[data-ph-feedpanel]\");\n    var legT = document.querySelector(\"[data-ph-legtoggle]\");\n    var feedT = document.querySelector(\"[data-ph-feedtoggle]\");\n    if (legT && legP) {\n      legT.onclick = function (e) {\n        e.preventDefault();\n        legP.classList.toggle(\"open\");\n      };\n    }\n    if (feedT && feedP) {\n      feedT.onclick = function (e) {\n        e.preventDefault();\n        feedP.classList.toggle(\"open\");\n      };\n    }\n  }\n\n  function applyVisibility() {\n    if (!map) return;\n    Object.keys(groups).forEach(function (k) {\n      if (LAYERS_ON[k]) {\n        if (!map.hasLayer(groups[k])) map.addLayer(groups[k]);\n      } else if (map.hasLayer(groups[k])) map.removeLayer(groups[k]);\n    });\n    if (radarLayer) {\n      if (LAYERS_ON.radar && window.phWvMode() !== \"ports\") {\n        if (!map.hasLayer(radarLayer)) map.addLayer(radarLayer);\n      } else if (map.hasLayer(radarLayer)) map.removeLayer(radarLayer);\n    }\n  }\n\n  function esc(s) {\n    return String(s == null ? \"\" : s).replace(/[&<>\"]/g, function (c) {\n      return ({ \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\", '\"': \"&quot;\" })[c];\n    });\n  }\n\n  function clearGroups() {\n    Object.keys(groups).forEach(function (k) { groups[k].clearLayers(); });\n    if (radarLayer && map && map.hasLayer(radarLayer)) map.removeLayer(radarLayer);\n    radarLayer = null;\n  }\n\n  function fetchFirst(urls) {\n    return new Promise(function (resolve) {\n      var i = 0;\n      function next() {\n        if (i >= urls.length) { resolve(null); return; }\n        var u = urls[i++];\n        fetch(u, { headers: { Accept: \"application/json\" }, cache: \"no-store\" })\n          .then(function (r) { return r.ok ? r.json() : null; })\n          .then(function (j) { if (j) resolve(j); else next(); })\n          .catch(function () { next(); });\n      }\n      next();\n    });\n  }\n\n  function fmtTime(iso) {\n    if (!iso) return \"—\";\n    var d = new Date(iso);\n    if (isNaN(d.getTime())) return String(iso).slice(0, 16).replace(\"T\", \" \");\n    return d.toISOString().replace(\"T\", \" \").slice(0, 19) + \" UTC\";\n  }\n\n  function fmtShort(iso) {\n    if (!iso) return \"—\";\n    var d = new Date(iso);\n    if (isNaN(d.getTime())) return String(iso).slice(11, 19) || String(iso).slice(0, 16);\n    return d.toISOString().slice(11, 19) + \"Z\";\n  }\n\n  function deviceLine(pl) {\n    var bits = [];\n    if (pl.device) bits.push(pl.device);\n    if (pl.os) bits.push(pl.os);\n    if (pl.browser) bits.push(pl.browser);\n    if (pl.lang) bits.push(pl.lang);\n    if (pl.isp) bits.push(pl.isp);\n    return bits.length ? bits.join(\" · \") : \"\";\n  }\n\n  function renderWorld(j) {\n    clearGroups();\n    var empty = document.querySelector(\"[data-ph-empty]\");\n    var layers = (j && j.layers) || {};\n    var places = window.phWvMode() === \"watch\" ? []\n      : ((j && j.visits && j.visits.places) || []).filter(function (p) {\n          return p && typeof p.k === \"string\" && !phPortsHidden(p.k);\n        });\n    var weather = window.phWvMode() === \"ports\" ? [] : ((j && j.weather) || []);\n    var any = places.length || weather.length;\n    var keys = window.phWvMode() === \"ports\" ? []\n      : [\"earthquakes\",\"volcanoes\",\"storms\",\"wildfires\",\"floods\",\"landslides\",\"droughts\",\"disasters\",\"conflict\"];\n    var chronicle = [];\n\n    for (var i = 0; i < keys.length; i++) {\n      var arr = layers[keys[i]] || [];\n      if (keys[i] === \"wildfires\") {\n        var cut = Date.now() - 14 * 24 * 60 * 60 * 1000;\n        arr = arr.filter(function (e) {\n          if (!e) return false;\n          if (e.status && String(e.status).toLowerCase() === \"closed\") return false;\n          if (!e.at) return true;\n          var t = Date.parse(e.at);\n          return !isFinite(t) || t >= cut;\n        });\n      }\n      if (keys[i] === \"earthquakes\") {\n        arr = arr.filter(function (e) {\n          if (!e || typeof e.lat !== \"number\" || typeof e.lon !== \"number\") return false;\n          var m = e.mag != null ? Number(e.mag) : NaN;\n          return !isFinite(m) || m >= 4.5;\n        });\n      }\n      if (arr.length) any = true;\n      for (var n = 0; n < arr.length; n++) {\n        var e = arr[n];\n        if (typeof e.lat !== \"number\" || typeof e.lon !== \"number\") continue;\n        var body = \"<b>\" + esc(ICONS[keys[i]] || \"\") + \" \" + esc(e.title || keys[i]) + \"</b><br>\" +\n          esc(e.detail || e.place || \"\") +\n          (e.mag != null ? \"<br>mag \" + esc(e.mag) + (e.mag_unit ? \" \" + esc(e.mag_unit) : \"\") : \"\") +\n          (e.at ? \"<br>\" + esc(fmtTime(e.at)) : \"\");\n        iconMarker(e.lat, e.lon, keys[i], body, false).addTo(groups[keys[i]]);\n        var kindMap = {\n          earthquakes: \"earthquake\", volcanoes: \"volcano\", storms: \"storm\",\n          wildfires: \"wildfire\", floods: \"flood\", landslides: \"landslide\",\n          droughts: \"drought\", disasters: \"disaster\", conflict: \"conflict\"\n        };\n        chronicle.push({\n          kind: kindMap[keys[i]] || keys[i],\n          title: e.title || keys[i],\n          detail: e.detail || e.place || \"\",\n          t: e.at || (j && j.updated_at),\n          lat: e.lat, lon: e.lon,\n          id: e.id || null\n        });\n      }\n    }\n\n    for (var p = 0; p < places.length; p++) {\n      var pl = places[p];\n      if (typeof pl.lat !== \"number\" || typeof pl.lon !== \"number\") continue;\n      var where = [pl.city, pl.region, pl.country].filter(Boolean).join(\", \");\n      var dev = '';\n      var vhtml = '<div class=\"ph-wv-pop\">' +\n        '<div class=\"ph-wv-pop-t\">' + esc(ICONS.visits) + \" \" + esc(where || \"Somewhere at sea\") + \"</div>\" +\n        '<div class=\"ph-wv-pop-m\">' + esc(pl.visits || 0) + \" visits · \" +\n          esc(pl.members || 0) + \" signed in, \" + esc(pl.guests || 0) + \" passing</div>\" +\n        (dev ? '<div class=\"ph-wv-pop-b\">' + esc(dev) + \"</div>\" : \"\") +\n        (pl.last ? '<div class=\"ph-wv-pop-b\">last ' + esc(fmtTime(pl.last)) + \"</div>\" : \"\") +\n        \"</div>\";\n      if (window.phVisitExtra) { vhtml += window.phVisitExtra(pl); }\n          iconMarker(pl.lat, pl.lon, \"visits\", vhtml, true, pl).addTo(groups.visits);\n      chronicle.push({\n        kind: \"visits\",\n        title: \"Reader · \" + (where || pl.k || \"port\"),\n        detail: (pl.visits || 0) + \" visits · \" + (pl.members || 0) + \" members · \" + (pl.guests || 0) + \" guests\" + (dev ? \" · \" + dev : \"\"),\n        t: pl.last || pl.first || (j && j.updated_at),\n        lat: pl.lat, lon: pl.lon\n      });\n    }\n\n    for (var w = 0; w < weather.length; w++) {\n      var wx = weather[w];\n      iconMarker(\n        wx.lat, wx.lon, \"weather\",\n        \"<b>\" + esc(ICONS.weather) + \" \" + esc(wx.city || wx.k) + \"</b><br>\" +\n          esc(wx.temp_c) + \"°C · \" + esc(wx.weather) +\n          \"<br>wind \" + esc(wx.wind_kmh) + \" · rain \" + esc(wx.precip_mm) +\n          (wx.at ? \"<br>\" + esc(fmtTime(wx.at)) : \"\"),\n        false\n      ).addTo(groups.weather);\n      chronicle.push({\n        kind: \"weather\",\n        title: (wx.city || wx.k) + \": \" + wx.temp_c + \"°C \" + wx.weather,\n        detail: \"wind \" + wx.wind_kmh + \" · precip \" + wx.precip_mm,\n        t: wx.at || (j && j.updated_at),\n        lat: wx.lat, lon: wx.lon\n      });\n    }\n\n    if (j && j.radar && j.radar.latest && j.radar.latest.url && window.phWvMode() !== \"ports\") {\n      radarLayer = window.L.tileLayer(j.radar.latest.url, { opacity: 0.45, zIndex: 300, maxZoom: 12 });\n    }\n\n    if (j && Array.isArray(j.chronicle) && j.chronicle.length) {\n      chronicle = j.chronicle.concat(chronicle);\n    }\n\n    if (empty) empty.style.display = any ? \"none\" : \"\";\n    tickLines = (j && j.ticker && j.ticker.length) ? j.ticker.slice() : [\"World feed quiet\"];\n    if (j && j.updated_at) tickLines.push(\"updated \" + fmtShort(j.updated_at));\n    tickIdx = 0;\n    paintTick();\n    if (!tickIv) tickIv = setInterval(paintTick, 4000);\n    applyVisibility();\n    paintFeed(chronicle);\n    // Merge day log for denser feed\n    loadDayFeed(j && j.updated_at);\n  }\n\n  function paintFeed(rows) {\n    var box = document.querySelector(\"[data-ph-feed]\");\n    if (!box) return;\n    var byId = {};\n    var merged = (lastFeed || []).concat(rows || []);\n    var out = [];\n    for (var i = 0; i < merged.length; i++) {\n      var r = merged[i];\n      if (!r || !r.title) continue;\n      var id = (r.id || r.kind + \"|\" + r.title + \"|\" + (r.t || \"\")).slice(0, 200);\n      if (byId[id]) continue;\n      byId[id] = 1;\n      out.push(r);\n    }\n    out.sort(function (a, b) { return String(b.t || \"\").localeCompare(String(a.t || \"\")); });\n    lastFeed = out.slice(0, 200);\n    var html = \"\";\n    for (var n = 0; n < Math.min(lastFeed.length, 80); n++) {\n      var e = lastFeed[n];\n      var kind = e.kind || \"disaster\";\n      var layerKey = kind === \"earthquake\" ? \"earthquakes\"\n        : kind === \"volcano\" ? \"volcanoes\"\n        : kind === \"storm\" ? \"storms\"\n        : kind === \"wildfire\" || kind === \"fire\" ? \"wildfires\"\n        : kind === \"flood\" ? \"floods\"\n        : kind === \"landslide\" ? \"landslides\"\n        : kind === \"visits\" ? \"visits\"\n        : kind === \"weather\" ? \"weather\"\n        : kind === \"conflict\" ? \"conflict\"\n        : \"disasters\";\n      if (LAYERS_ON[layerKey] === false) continue;\n      var where = (e.lat != null && e.lon != null)\n        ? \" · \" + Number(e.lat).toFixed(2) + \", \" + Number(e.lon).toFixed(2)\n        : \"\";\n      html += '<div class=\"ph-wv-feed-row kind-' + esc(kind) + '\">' +\n        '<i class=\"ph-wv-ico\">' + (ICONS[kind] || ICONS[layerKey] || \"•\") + \"</i>\" +\n        \"<div><div class=\\\"ph-wv-ft\\\">\" + esc(fmtTime(e.t)) + esc(where) + \"</div>\" +\n        '<div class=\"ph-wv-fh\"><b>' + esc(e.title) + \"</b>\" +\n        (e.detail ? \"<br>\" + esc(e.detail) : \"\") +\n        \"</div></div></div>\";\n    }\n    box.innerHTML = html || '<div class=\"ph-wv-note\">No events charted yet.</div>';\n  }\n\n  function loadDayFeed(updated) {\n    var day = (updated || new Date().toISOString()).slice(0, 10);\n    fetchFirst([DAY_FALLBACK + day + \".json\", \"/srv/world/day/\" + day + \".json\"]).then(function (d) {\n      if (!d || !d.entries || !d.entries.length) return;\n      paintFeed(d.entries);\n    });\n  }\n\n  function paintTick() {\n    var tick = document.querySelector(\"[data-ph-tick]\");\n    if (!tick || !tickLines.length) return;\n    tick.textContent = tickLines[tickIdx % tickLines.length];\n    tickIdx++;\n  }\n\n  function load() {\n    if (!map) return;\n    fetchFirst([WORLD, WORLD_FALLBACK]).then(function (j) {\n      if (j && (j.layers || j.visits)) {\n        renderWorld(j);\n        return;\n      }\n      return fetchFirst([VISITS, VISITS_FALLBACK]).then(function (v) {\n        renderWorld({\n          updated_at: v && v.updated_at,\n          visits: v || { places: [], totals: {} },\n          layers: {},\n          weather: [],\n          ticker: v && v.places && v.places.length\n            ? [v.places.length + \" places, \" + ((v.totals && v.totals.visits) || 0) + \" visits\"]\n            : [\"waiting on the first charted visit\"]\n        });\n      });\n    });\n  }\n\n  function mount() {\n    if (!onRoute()) {\n      var stale = document.querySelectorAll(\".ph-wv-wrap\");\n      for (var q = 0; q < stale.length; q++) stale[q].remove();\n      if (map) { try { map.remove(); } catch (e) {} }\n      map = null; groups = {}; radarLayer = null;\n      return;\n    }\n    var outlet = document.querySelector(\"#main-outlet\");\n    if (!outlet) return;\n    var w = outlet.querySelector(\".ph-wv-wrap\");\n    if (!w) {\n      w = build();\n      outlet.insertBefore(w, outlet.firstElementChild);\n    }\n    /* Deliberately no reposition here. #main-outlet is a flex column, so\n       order is CSS, not DOM position. Re-inserting on every tick fought\n       the TV player doing the same thing, and re-parenting an element\n       rebuilds it: that fight was the flicker on both. */\n    /* Is this shell the right one for this room? The ports room has no feed\n       panel by design, so testing for the feed panel alone rebuilt the wrap\n       and the map on every tick. Ask for the marker the current room's shell\n       actually carries, which also rebuilds correctly when the reader walks\n       from one room to the other. */\n    var shellFits = window.phWvMode() === \"ports\"\n      ? !!w.querySelector(\"[data-ph-portsline]\")\n      : !!w.querySelector(\"[data-ph-feedpanel]\");\n    if (w && !shellFits) {\n      w.remove();\n      w = build();\n      outlet.insertBefore(w, outlet.firstElementChild);\n      if (map) { try { map.remove(); } catch (e) {} }\n      map = null; groups = {};\n    }\n    var el = w.querySelector(\"[data-ph-wvmap]\");\n    if (el && !map) need(function () { try { draw(el); } catch (e) {} });\n    if (map) setTimeout(function () { try { map.invalidateSize(); } catch (e) {} }, 60);\n  }\n\n  var pend = 0;\n  function kick() {\n    if (pend) return;\n    pend = setTimeout(function () { pend = 0; try { mount(); } catch (e) {} }, 40);\n  }\n  var obs = null, tgt = null;\n  function bind() {\n    var h = document.querySelector(\"#main-outlet\") || document.body;\n    if (!h || h === tgt) return;\n    tgt = h;\n    if (obs) obs.disconnect();\n    obs = new MutationObserver(kick);\n    obs.observe(h, { childList: true, subtree: true });\n  }\n  try { bind(); } catch (e) {}\n  setInterval(function () { try { bind(); kick(); } catch (e) {} }, 700);\n  kick();\n})();\n"],"mappings":"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","ignoreList":[]}