{"version":3,"names":["window","__phBootyGallery","phTileMoney","s","str","String","replace","trim","test","comma","n","glue","one","numStr","sym","parseFloat","isFinite","Math","abs","round","m","ms","k","ks","range","match","a","b","_","num","VALUE_SEED","VALTTL","valKey","id","valSave","v","sessionStorage","setItem","JSON","stringify","t","Date","now","e","valLoad","getItem","o","parse","removeItem","paintValue","el","raw","tid","classList","remove","textContent","title","add","isIdentified","rv","yes","no","paintDoubloons","host","dbEl","querySelector","show","hidden","doubloonsFor","idx","fmtDb","paintActs","valued","idBtn","apBtn","known","phTip","key","setAttribute","__phBindTip","__phTipScan","POST_CAT","POLL","PAGE","LIMIT_OPTS","RARITY","c","ME","p","document","getElementById","w","getAttribute","u","currentUser","username","GEM_NOTE","DOUBLOONS","PARENT_CAT","EMOJI","FALLBACK_ORDER","CATS","CHIP_ORDER","kids","i","x","pre","wrap","site","cats","categories","length","name","slug","parent_category_id","push","err","sort","position","concat","VIDEXT","cacheByCat","building","pollCache","rarityKick","trust","vs","vc","ready","state","cat","q","limitPref","shown","topics","users","syncCatFromPath","location","pathname","here","Number","slice","eSync","saveBgLimit","localStorage","parseBgLimit","parseInt","isNaN","loadBgLimit","setBgLimit","sel","value","fillFeed","onBooty","indexOf","csrf","txt","createElement","className","avatar","avatar_template","origin","topicUrl","jget","tryN","fetch","headers","credentials","then","r","status","ra","get","wait","min","pow","floor","random","Promise","res","setTimeout","json","timeAgo","iso","dd","getTime","loadTrust","listUrl","catId","g","fetchFinds","force","resolve","j","forEach","topic_list","filter","pinned","pinned_globally","category_id","nm","RegExp","pack","catch","reviewsFrom","posts","sum","avg","mine","src","cooked","plain","im","exec","toLowerCase","gm","max","gemTitle","badgeEl","type","appendChild","phHallGate","card","closest","PHTIP","PHCUR","phTipEl","isConnected","body","phTipFill","firstChild","removeChild","d","bar","style","background","color","toLocaleString","phTipShow","target","getBoundingClientRect","offsetWidth","gh","offsetHeight","left","width","innerWidth","top","bottom","phTipHide","phTierOf","ev","__phGemTip","addEventListener","contains","to","relatedTarget","phRateGate","parentElement","rr","paintBadge","lvl","setProperty","note","Array","prototype","call","querySelectorAll","tierEl","paintTier","toUpperCase","paintIdent","votes","RVTTL","rvKey","rvSave","rvDrop","rvLoad","loadRarity","topicId","badge","onDone","attempt","apply","warm","needsBlurb","needsValue","early","post_stream","p0","data","postId","topic","finish","ok","text","__find","removeProperty","ff","parseFields","valEl","bl","bits","reckon","story","join","display","mediaFor","image_url","url","vm","out","gear","where","grab","label","re","split","line","finderOf","op","posters","description","user_id","sealFor","refreshSeals","buildScrollerCard","href","img","backgroundImage","created_at","preventDefault","openDetail","fillScroller","sc","track","innerHTML","list","animationDuration","filteredTopics","views","localeCompare","buildFeedCard","loading","alt","demo","foot","baserow","ident","db","right","acts","ur","av","ai","nw","cn","phCompactNum","last","counts","agoTxt","stats","createTextNode","reply_count","open","cursor","stopPropagation","openRate","openIdentify","openAppraise","delay","grid","moreWrap","em","deck","canMore","btn","disabled","lim2","refillAll","closeRate","parentNode","closeIdentify","closeAppraise","refreshFindHosts","cb","det","PH_REVIEW_HOURS","pollCloseIso","hours","toISOString","trimTitle","agreePollMd","question","closeIso","uploadsToMd","uploads","map","short_url","Boolean","mountEvidenceDrop","opts","hint","drop","file","accept","multiple","prev","files","paint","f","box","URL","createObjectURL","rm","splice","addList","click","dataTransfer","root","fieldBlock","kind","ph","inp","rows","placeholder","createReviewTopic","payload","category","archetype","tags","method","topic_id","post_number","topic_slug","post_url","errors","r2","j2","res2","message","linkOnFind","findId","ov","panel","h","fWhat","fWhy","evidence","actions","cancel","go","why","focus","afterUploads","upErr","tj","pollName","evidMd","cErr","link","uploadAll","fVal","cur","val","preset","pick","gw","btns","row","field","tag","iw","seg","idYes","idNo","fTitle","fBody","head","gems","Error","galleryFromCooked","items","reImg","reVid","md","closeDetail","close","hero","heroWrap","kicker","chips","dIdent","dVal","userrow","specs","rateRow","rgrid","thread","main","thumbs","it","controls","playsInline","th","tim","fields","vb","stEl","para","pe","childNodes","closeComposer","BC_CSS","bcCss","openComposer","BC_TC","BC_TN","cv","segD","segM","media","count","stage","catBadge","cover","droph","dhb","dhs","tier","tz","tiles","tile","wide","roomTile","syncBadge","options","selectedIndex","fIs","fGear","fWhere","fStory","grow","gi","gp","opacity","cta","submit","__bcu","unshift","first","addFiles","mediaMd","isV","original_filename","extension","createTopic","stub","done","hadErr","active","MAX","next","fd","FormData","append","fin","__sel","__cat","bgRemnants","build","teardown","outlet","anchorList","tb","sub","post","sch","live","view","ch","lab","eHere","want","pSlug","DiscourseURL","routeTo","eRoute","assign","search","lim","insertBefore","soft","onHome","homeScroller","old","banner","bi","children","bk","eBan","firstElementChild","eMove","have","nextElementSibling","after","tickPend","tick","schedTick","MutationObserver","observe","childList","subtree","setInterval","__phBootyNav","__phDeckNav","ORDER","cls","emoji","ecls","busy","lastSig","make","spec","ensureGroup","bz","grp","orderOk","ensure","documentElement","path","needMove","on","kick","bind","__phDeckNavObs","muts","readyState","__phBgSel","closeAll","except","ws","__phSel","attributes","menu","removeAttribute","dispatchEvent","Event","bubbles","willOpen","toggle","__phBus","onRoute","onRender","onTick","HV","clear","__phHvRow","nodeType"],"sources":["theme-11-inline-common-head_tag.js"],"sourcesContent":["\n/* --- was script id=ph-booty-js --- */\n\n(function(){\n  \"use strict\";\n  if (window.__phBootyGallery) return;\n  window.__phBootyGallery = \"v3.4\";\n/* Also inject a local phTileMoney if theme 9 helpers have not loaded yet. */\n  if (!window.phTileMoney){\n    window.phTileMoney = function(s){\n      if (!s) return s;\n      var str = String(s).replace(/\\u00a0/g, \" \").replace(/\\s+/g, \" \").trim();\n      if (!str || /^(inquire|—|-)$/i.test(str)) return str;\n      function comma(n){ return String(n).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\"); }\n      function glue(s){\n        return String(s)\n          .replace(/(\\d)([KMkm])(?![A-Za-z0-9])/g, \"$1\\u2060$2\")\n          .replace(/([^\\s\\u200B\\u2013\\u2014\\-])([\\u2013\\u2014\\-])(?=[€£$¥]?\\d)/g, \"$1\\u200B$2\");\n      }\n      function one(numStr, sym){\n        var n = parseFloat(String(numStr).replace(/,/g, \"\"));\n        if (!isFinite(n)) return (sym || \"\") + numStr;\n        sym = sym || \"\";\n        if (Math.abs(n) < 1000){\n          if (Math.abs(n - Math.round(n)) < 0.001) return sym + comma(Math.round(n));\n          return sym + String(n);\n        }\n        if (Math.abs(n) >= 1000000){\n          var m = n / 1000000;\n          var ms = (Math.abs(m - Math.round(m)) < 0.05)\n            ? String(Math.round(m))\n            : String(Math.round(m * 10) / 10).replace(/\\.0$/, \"\");\n          return sym + ms + \"\\u2060M\";\n        }\n        var k = n / 1000;\n        var ks = (Math.abs(k - Math.round(k)) < 0.05)\n          ? String(Math.round(k))\n          : String(Math.round(k * 10) / 10).replace(/\\.0$/, \"\");\n        return sym + comma(ks) + \"\\u2060K\";\n      }\n      var range = str.match(/^([€£$¥]?)\\s*([\\d,]+(?:\\.\\d+)?)\\s*[\\u2013\\u2014\\-]\\s*([€£$¥]?)\\s*([\\d,]+(?:\\.\\d+)?)(.*)$/);\n      if (range){\n        var a = range[1] || range[3] || \"\";\n        var b = range[3] || range[1] || a;\n        return glue(one(range[2], a) + \"\\u200B-\" + one(range[4], b) + (range[5] || \"\"));\n      }\n      return glue(str.replace(/([€£$¥])\\s*([\\d,]+(?:\\.\\d+)?)/g, function(_, sym, num){ return one(num, sym); }));\n    };\n  }\n\n  /* Seed appraisals so the first paint never flashes Unappraised while /t/*.json loads. */\n  var VALUE_SEED = {\n    1224: \"$0.00\",\n    1225: \"$0-$5\",\n    1226: \"$45-$150\",\n    1227: \"$250-$650\",\n    1228: \"$75,000-$250,000\",\n    1229: \"$12,000-$65,000\",\n    1230: \"$40,000-$175,000\"\n  };\n  var VALTTL = 86400000;\n  function valKey(id){ return \"phbg:val:\" + id; }\n  function valSave(id, v){\n    if (!id || !v) return;\n    try { sessionStorage.setItem(valKey(id), JSON.stringify({ t: Date.now(), v: String(v) })); } catch(e){}\n  }\n  function valLoad(id){\n    if (VALUE_SEED[id]) return VALUE_SEED[id];\n    try {\n      var s = sessionStorage.getItem(valKey(id));\n      if (!s) return null;\n      var o = JSON.parse(s);\n      if (!o || !o.v || (Date.now() - o.t) > VALTTL){ try { sessionStorage.removeItem(valKey(id)); } catch(e){} return null; }\n      return o.v;\n    } catch(e){ return null; }\n  }\n  function paintValue(el, raw, tid){\n    if (!el) return;\n    var v = (raw || \"\").trim();\n    if (v && window.phTileMoney) v = window.phTileMoney(v);\n    el.classList.remove(\"is-pending\");\n    if (v){\n      el.textContent = \"Valued at \" + v;\n      el.title = \"Appraised value: \" + v;\n      el.classList.remove(\"is-empty\");\n      el.classList.add(\"is-valued\");\n      if (tid) valSave(tid, raw || v);\n    } else {\n      el.textContent = \"Unappraised\";\n      el.title = \"No appraisal on this find yet\";\n      el.classList.add(\"is-empty\");\n      el.classList.remove(\"is-valued\");\n    }\n  }\n  function isIdentified(rv){\n    return !!(rv && rv.yes > 0 && rv.yes >= rv.no);\n  }\n  function paintDoubloons(host, rv){\n    if (!host) return;\n    var dbEl = host.querySelector(\"[data-ph-db]\");\n    if (!dbEl) return;\n    var show = isIdentified(rv) && rv && rv.n > 0;\n    if (!show){\n      dbEl.textContent = \"\";\n      dbEl.title = \"\";\n      dbEl.hidden = true;\n      dbEl.classList.add(\"is-empty\");\n      return;\n    }\n    var n = doubloonsFor(rv.idx);\n    dbEl.hidden = false;\n    dbEl.classList.remove(\"is-empty\");\n    dbEl.textContent = fmtDb(n);\n    dbEl.title = \"Preview from the crew's gem rating (not yet credited)\";\n  }\n  function paintActs(host, rv, valued){\n    if (!host) return;\n    var idBtn = host.querySelector(\".ph-bg-btn-identify\");\n    var apBtn = host.querySelector(\".ph-bg-btn-appraise\");\n    var known = isIdentified(rv);\n    if (idBtn) idBtn.hidden = !!known;\n    if (apBtn) apBtn.hidden = !!valued;\n  }\n\n  function phTip(el, key){\n    try {\n      if (!el || !key) return el;\n      el.setAttribute(\"data-ph-tip\", key);\n      if (window.__phBindTip) window.__phBindTip(el, key);\n      else if (window.__phTipScan) window.__phTipScan();\n    } catch (e) {}\n    return el;\n  }\n\n\n  var POST_CAT = 226;\n  var POLL = \"rarity\";\n  var PAGE = 40;\n  var LIMIT_OPTS = [[\"40\", \"40\"], [\"60\", \"60\"], [\"80\", \"80\"], [\"100\", \"100\"]];\n  var RARITY = [\n    { n: \"Junk\",      c: \"#9ba1a8\" },\n    { n: \"Common\",    c: \"#f5f3ee\" },\n    { n: \"Uncommon\",  c: \"#4bbf5a\" },\n    { n: \"Rare\",      c: \"#3b8dd6\" },\n    { n: \"Epic\",      c: \"#a95cd6\" },\n    { n: \"Legendary\", c: \"#ff8000\" },\n    { n: \"Mythical\", c: \"#c8102e\" }\n  ];\n  var ME = (function(){ try { var p = document.getElementById(\"data-preloaded\"); var w = p ? JSON.parse((p.getAttribute(\"data-preloaded\")||p.textContent||\"\")) : null; var u = w && w.currentUser ? JSON.parse(w.currentUser) : null; return u && u.username ? u.username : null; } catch (e) { return null; } })();\nvar GEM_NOTE = [\"Scrap the ground hands back. Pull tabs, foil, shotgun caps, wire, a bottle cap gone to lace. No age worth dating, no maker's hand, no story past the hole it came from.\",\"The everyday yield. Modern coins, buckles, buttons, a harness ring, lead that has been lead for a hundred years and will not say more. Real finds, properly dug, and the sort most hunters see most weekends.\",\"Better than a good day out. A datable coin, a clean piece of worked metal, something with an edge or a stamp that tells you who made it and roughly when. You stop the hunt to look at it properly.\",\"A proper result, the kind you carry to show people. Scarce by type, date or condition. It puts a pin in a map that was empty before and it stands up to being written about.\",\"The find of the season. Precious metal, intact form, or a thing so scarce the recorder wants a look. It goes to the top of the finder's own list and stays there a long while.\",\"The crew will talk about this one for years. A hoard, a named object, gold with provenance, something that ends up in a case with a reference number beside it. Few hunters ever lift one.\",\"A find that rewrites the record. It moves a border, redates a site, or settles an argument scholars were still having. It stops being the finder's story and becomes everyone's.\"];\n  /* Display-only preview from grade finalizer REWARDS (+ Common 0, Mythical 5000). Not a ledger write. */\n  var DOUBLOONS = [0, 0, 50, 150, 500, 2000, 5000];\n  /* Shelf follows the category order set in Discourse. Reorder the subcategories\n   on the categories page and the buttons follow, no theme edit needed. */\nvar PARENT_CAT = 7;\nvar EMOJI = { 7: \"🏆\", 226: \"😍\", 384: \"🗑️\", 16: \"🪙\", 17: \"🗝️\", 385: \"💍\", 386: \"💎\", 387: \"👑\", 388: \"🐉\", 155: \"✨\", 383: \"🃏\", 19: \"🌟\" };\nvar FALLBACK_ORDER = [226, 384, 16, 17, 385, 386, 387, 388, 155, 383, 19];\nvar CATS = {}; var CHIP_ORDER = [0];\n(function () {\n  var kids = [], i, c, x;\n  try {\n    var pre = document.getElementById(\"data-preloaded\");\n    var wrap = pre ? JSON.parse((pre.getAttribute(\"data-preloaded\")||pre.textContent||\"\")) : null;\n    var site = wrap && wrap.site ? JSON.parse(wrap.site) : null;\n    var cats = site && site.categories ? site.categories : [];\n    for (i = 0; i < cats.length; i++) {\n      c = cats[i];\n      if (c.id === PARENT_CAT) { CATS[c.id] = { n: c.name, s: c.slug, e: EMOJI[c.id] || \"🧭\" }; }\n      else if (c.parent_category_id === PARENT_CAT) { kids.push(c); }\n    }\n  } catch (err) {}\n  kids.sort(function (a, b) { return ((a.position || 0) - (b.position || 0)) || (a.id - b.id); });\n  for (i = 0; i < kids.length; i++) {\n    x = kids[i];\n    CATS[x.id] = { n: x.name, s: x.slug, e: EMOJI[x.id] || \"🧭\" };\n    CHIP_ORDER.push(x.id);\n  }\n  if (CHIP_ORDER.length === 1) { CHIP_ORDER = [0].concat(FALLBACK_ORDER); }\n})();\n  var VIDEXT = /\\.(mp4|mov|m4v|webm)(\\?|$)/i;\n  var cacheByCat = {};\n  var building = false;\n  var pollCache = {};\n  var rarityKick = 0;\n  var trust = { vs: {}, vc: {}, ready: false };\n  var state = { cat: 0, q: \"\", sort: \"new\", limitPref: 100, shown: 100, topics: [], users: {} };\n  (function syncCatFromPath(){\n    try {\n      var ms = String(location.pathname || \"\").match(/\\/(\\d+)/g);\n      if (!ms || !ms.length) return;\n      var here = Number(ms[ms.length - 1].slice(1)) || 0;\n      if (here && here !== PARENT_CAT && CATS[here]) state.cat = here;\n      else if (here === PARENT_CAT) state.cat = 0;\n    } catch (eSync) {}\n  })();\n\n  function saveBgLimit(v){ try { localStorage.setItem(\"ph_bg_tile_limit_v2\", String(v)); } catch (e) {} }\n  function parseBgLimit(v){\n    if (v === \"all\" || v === \"All\") return \"all\";\n    var n = parseInt(v, 10);\n    if (isNaN(n) || n < 40) return 40;\n    if (n > 100) n = 100;\n    return n;\n  }\n  function loadBgLimit(){\n    try {\n      var s = localStorage.getItem(\"ph_bg_tile_limit_v2\");\n      if (s == null || s === \"\") return 40;\n      return parseBgLimit(s);\n    } catch (e) { return 40; }\n  }\n  function setBgLimit(v){\n    state.limitPref = parseBgLimit(v);\n    state.shown = (state.limitPref === \"all\") ? 100 : state.limitPref;\n    saveBgLimit(state.limitPref);\n    var sel = document.querySelector(\".ph-bg-limit-sel\");\n    if (sel) sel.value = String(state.limitPref);\n    fillFeed(false);\n  }\n\n  function onBooty(){ return location.pathname.indexOf(\"/c/the-booty-gallery/\") > -1; }\n  function csrf(){ var m = document.querySelector('meta[name=\"csrf-token\"]'); return m ? m.getAttribute(\"content\") : \"\"; }\n  function el(t, c, txt){ var e = document.createElement(t); if (c) e.className = c; if (txt != null) e.textContent = txt; return e; }\n  function avatar(u, s){ return (u && u.avatar_template) ? (location.origin + u.avatar_template.replace(\"{size}\", String(s || 48))) : null; }\n  function topicUrl(t){ return \"/t/\" + t.slug + \"/\" + t.id; }\n  function jget(u, tryN){\n    tryN = tryN || 0;\n    return fetch(u, { headers: { \"X-Requested-With\": \"XMLHttpRequest\" }, credentials: \"same-origin\" }).then(function(r){\n      if ((r.status === 429 || r.status === 503) && tryN < 4){\n        var ra = parseFloat(r.headers.get(\"Retry-After\") || \"0\");\n        var wait = ra > 0 ? Math.min(ra * 1000 + 120, 9000) : Math.min(400 * Math.pow(2, tryN) + Math.floor(Math.random() * 260), 9000);\n        return new Promise(function(res){ setTimeout(res, wait); }).then(function(){ return jget(u, tryN + 1); });\n      }\n      return r.json();\n    });\n  }\n  function timeAgo(iso){\n    if (!iso) return \"\";\n    var dd = (Date.now() - new Date(iso).getTime()) / 86400000;\n    if (dd < 1) return \"today\";\n    if (dd < 2) return \"1d ago\";\n    if (dd < 30) return Math.floor(dd) + \"d ago\";\n    return Math.floor(dd / 30) + \"mo ago\";\n  }\n  function doubloonsFor(idx){\n    if (idx == null || idx < 0) return null;\n    return DOUBLOONS[idx] != null ? DOUBLOONS[idx] : 0;\n  }\n  function fmtDb(n){\n    if (n == null) return \"Unrated\";\n    if (n === 0) return \"0 doubloons\";\n    return String(n).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\") + \" doubloons\";\n  }\n\n  /* The verification system is gone at the owner's instruction: no verified\n     merchant seal, no vouched crew anchor, and nothing fetching the groups that\n     fed them. Kept as an empty function so the call sites stay harmless. */\n  function loadTrust(){ trust.vs = {}; trust.vc = {}; trust.ready = true; }\n\n  function listUrl(catId){\n    if (!catId) return \"/c/the-booty-gallery/7/l/latest.json?include_subcategories=true\";\n    if (catId === 19) return \"/c/the-booty-gallery/7/l/latest.json?include_subcategories=true\";\n    var g = CATS[catId];\n    if (!g) return \"/c/the-booty-gallery/7/l/latest.json\";\n    return \"/c/the-booty-gallery/\" + g.s + \"/\" + catId + \"/l/latest.json\";\n  }\n\n  function fetchFinds(force){\n    var key = String(state.cat || 0);\n    if (cacheByCat[key] && !force) return Promise.resolve(cacheByCat[key]);\n    return jget(listUrl(state.cat)).then(function(j){\n      var users = {};\n      (j.users || []).forEach(function(u){ users[u.id] = u; });\n      var topics = ((j.topic_list && j.topic_list.topics) || []).filter(function(t){\n        if (t.pinned || t.pinned_globally) return false;\n        if (/^about the/i.test(t.title || \"\")) return false;\n        /* Drop category-definition / shelf intro topics */\n        if (t.category_id && CATS[t.category_id]){\n          var nm = CATS[t.category_id].n;\n          if (nm && new RegExp(\"^\" + nm.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\") + \"\\\\s*:\", \"i\").test(t.title || \"\")) return false;\n        }\n        return true;\n      });\n      if (state.cat === 19){\n        topics = topics.filter(function(t){ return !!CATS[t.category_id]; });\n      } else if (state.cat){\n        topics = topics.filter(function(t){ return t.category_id === state.cat; });\n      } else {\n        topics = topics.filter(function(t){ return !!CATS[t.category_id]; });\n      }\n      var pack = { topics: topics, users: users };\n      cacheByCat[key] = pack;\n      state.topics = topics;\n      state.users = users;\n      return pack;\n    }).catch(function(){\n      var pack = { topics: [], users: {} };\n      cacheByCat[key] = pack;\n      state.topics = [];\n      state.users = {};\n      return pack;\n    });\n  }\n\n  /* ---------- SIX-GEM RATINGS ----------\n     A rating is an ordinary reply post in the find's own topic, exactly like the\n     source-contact reviews on the Bazaar. Nothing is stored outside Discourse.\n     Contract, read back from the cooked post text:\n       **Gem rating:** N / 7\n       **Identified:** yes|no                                              */\n\n  function reviewsFrom(posts){\n    var rv = { n:0, sum:0, avg:0, idx:-1, yes:0, no:0, mine:0 };\n    (posts || []).forEach(function(p, i){\n      if (i === 0) return;\n      var src = String((p && (p.cooked || p.raw)) || \"\");\n      var plain = src.replace(/<[^>]+>/g, \" \").replace(/&nbsp;/g, \" \");\n      var im = /Identified[:\\s]*(yes|no)/i.exec(plain);\n      if (im){ if (im[1].toLowerCase() === \"yes\") rv.yes++; else rv.no++; }\n      var gm = /Gem rating[:\\s]*([0-9.]+)\\s*\\/\\s*7/i.exec(plain);\n      if (!gm) return;\n      var g = Math.max(1, Math.min(7, parseFloat(gm[1]) || 0));\n      if (!g) return;\n      rv.n++; rv.sum += g; if (ME && p && p.username === ME) rv.mine = g;\n    });\n    if (rv.n){ rv.avg = rv.sum / rv.n; rv.idx = Math.max(0, Math.min(6, Math.round(rv.avg) - 1)); }\n    return rv;\n  }\n\n  function gemTitle(i){ return RARITY[i].n + \", \" + GEM_NOTE[i]; }\n\n  /* Kept under the old name so every existing call site keeps working. */\n  function badgeEl(){\n    var w = el(\"div\", \"ph-bg-gems ph-bg-gems--load\");\n    w.setAttribute(\"role\", \"group\");\n    for (var i = 0; i < 7; i++){\n      var b = el(\"button\", \"ph-bg-gm\");\n      b.type = \"button\";\n      b.setAttribute(\"data-g\", String(i + 1));\n      b.setAttribute(\"aria-label\", RARITY[i].n);\n      b.setAttribute(\"data-tier\", String(i));\n      b.appendChild(el(\"span\", \"ph-bg-gmi\"));\n      w.appendChild(b);\n    }\n    return w;\n  }\n\n  function phHallGate(w, rv){ try { if (typeof state === \"undefined\" || !state || state.cat !== 19) return; var card = w.closest ? w.closest(\".ph-bg-card\") : null; if (!card) return; if (rv && rv.idx >= 4) card.classList.remove(\"ph-bg-card--out\"); else card.classList.add(\"ph-bg-card--out\"); } catch (e) {} }\nvar PHTIP = null, PHCUR = null;\nfunction phTipEl(){ if (PHTIP && PHTIP.isConnected) return PHTIP; PHTIP = document.createElement(\"div\"); PHTIP.className = \"ph-gemtip\"; PHTIP.setAttribute(\"role\", \"tooltip\"); document.body.appendChild(PHTIP); return PHTIP; }\nfunction phTipFill(t, i){ while (t.firstChild) t.removeChild(t.firstChild); var r = RARITY[i], d = DOUBLOONS[i]; var bar = el(\"span\", \"ph-gemtip__bar\"); bar.style.background = r.c; t.appendChild(bar); var nm = el(\"span\", \"ph-gemtip__name\", r.n); nm.style.color = r.c; t.appendChild(nm); t.appendChild(el(\"span\", \"ph-gemtip__body\", GEM_NOTE[i])); t.appendChild(el(\"span\", \"ph-gemtip__foot\", d > 0 ? (d.toLocaleString() + \" doubloons\") : \"No doubloons\")); }\nfunction phTipShow(target, i){ var t = phTipEl(); phTipFill(t, i); t.classList.add(\"on\"); t.classList.remove(\"below\"); var r = target.getBoundingClientRect(); var w = t.offsetWidth, gh = t.offsetHeight; var left = r.left + (r.width / 2) - (w / 2); if (left < 10) left = 10; if (left + w > window.innerWidth - 10) left = window.innerWidth - 10 - w; var top = r.top - gh - 12; if (top < 10) { top = r.bottom + 12; t.classList.add(\"below\"); } t.style.left = Math.round(left) + \"px\"; t.style.top = Math.round(top) + \"px\"; }\nfunction phTipHide(){ if (PHTIP) PHTIP.classList.remove(\"on\"); }\nfunction phTierOf(ev){ var n = ev && ev.target && ev.target.closest ? ev.target.closest(\"[data-tier]\") : null; if (!n) return null; var i = parseInt(n.getAttribute(\"data-tier\"), 10); return (isNaN(i) || i < 0 || i > 6) ? null : { el: n, i: i }; }\nif (!window.__phGemTip) { window.__phGemTip = 1;\n  document.addEventListener(\"mouseover\", function(ev){ var g = phTierOf(ev); if (!g) return; if (PHCUR === g.el && PHTIP && PHTIP.classList.contains(\"on\")) return; PHCUR = g.el; phTipShow(g.el, g.i); }, true);\n  document.addEventListener(\"mouseout\", function(ev){ var g = phTierOf(ev); if (!g) return; var to = ev.relatedTarget; if (to && g.el.contains(to)) return; PHCUR = null; phTipHide(); }, true);\n  document.addEventListener(\"focusin\", function(ev){ var g = phTierOf(ev); if (g) phTipShow(g.el, g.i); }, true);\n  document.addEventListener(\"focusout\", phTipHide, true);\n  window.addEventListener(\"scroll\", phTipHide, true);\n}\nfunction phRateGate(w, rv){ try { var p = w.parentElement, rr = null, n = 0; while (p && n < 9 && !rr) { rr = p.querySelector(\".ph-bg-d-rate\"); p = p.parentElement; n++; } if (rr) { if (rv && rv.mine > 0) rr.classList.add(\"ph-bg-d-rate--done\"); else rr.classList.remove(\"ph-bg-d-rate--done\"); } } catch (e) {} }\nfunction paintBadge(w, rv){\n    if (!w) return;\n    phRateGate(w, rv);\n    phHallGate(w, rv);\n    w.classList.remove(\"ph-bg-gems--load\");\n    var idx = rv && rv.n ? rv.idx : -1;\n    var lvl = idx + 1;\n    w.style.setProperty(\"--r\", idx >= 0 ? RARITY[idx].c : \"rgba(255,255,255,.28)\");\n    if (idx >= 0) w.classList.add(\"ph-bg-gems--rated\"); else w.classList.remove(\"ph-bg-gems--rated\");\n    var note = idx >= 0\n      ? RARITY[idx].n + \" (\" + rv.n + \" rating\" + (rv.n === 1 ? \"\" : \"s\") + \"), pick a gem to add yours\"\n      : \"Unrated, pick a gem to be the first\";\n    Array.prototype.forEach.call(w.querySelectorAll(\".ph-bg-gm\"), function(b, i){\n      if (i < lvl) b.classList.add(\"on\"); else b.classList.remove(\"on\");\n      b.setAttribute(\"data-tier\", String(i));\n    });\n  }\n\n  function tierEl(){ var b = el(\"span\", \"ph-bg-tier\"); b.textContent = \"UNRATED\"; return b; }\n\n  function paintTier(b, rv){\n    if (!b) return;\n    var idx = rv && rv.n ? rv.idx : -1;\n    if (idx < 0){\n      b.style.setProperty(\"--r\", \"rgba(255,255,255,.55)\");\n      b.textContent = \"UNRATED\";\n      b.title = \"No gem ratings yet\";\n      b.classList.remove(\"on\");\n      return;\n    }\n    b.style.setProperty(\"--r\", RARITY[idx].c);\n    b.textContent = RARITY[idx].n.toUpperCase();\n    b.classList.add(\"on\");\n    b.title = RARITY[idx].n + \" (\" + (Math.round(rv.avg * 10) / 10) + \" of 6 gems from \" + rv.n + \" rating\" + (rv.n === 1 ? \"\" : \"s\") + \")\";\n  }\n\n  function paintIdent(host, rv){\n    if (!host) return;\n    var d = host.querySelector(\".ph-bg-ident\");\n    if (d){\n      var votes = rv ? (rv.yes + rv.no) : 0;\n      var known = !!(rv && rv.yes > 0 && rv.yes >= rv.no);\n      d.textContent = known ? \"IDENTIFIED\" : \"UNIDENTIFIED\";\n      if (known) d.classList.add(\"yes\"); else d.classList.remove(\"yes\");\n      d.title = known\n        ? \"The crew agrees the title names what this actually is (\" + rv.yes + \" of \" + votes + \")\"\n        : (votes ? \"The crew is not convinced the title names what this actually is (\" + rv.yes + \" of \" + votes + \")\" : \"Nobody has confirmed what this is yet\");\n    }\n  }\n\n  var RVTTL = 600000;\n  function rvKey(id){ return \"phbg:rv:\" + id; }\n  function rvSave(id, rv){ try { sessionStorage.setItem(rvKey(id), JSON.stringify({ t: Date.now(), rv: rv })); } catch(e){} }\n  function rvDrop(id){ try { sessionStorage.removeItem(rvKey(id)); } catch(e){} }\n  function rvLoad(id){\n    try {\n      var s = sessionStorage.getItem(rvKey(id));\n      if (!s) return null;\n      var o = JSON.parse(s);\n      if (!o || !o.rv || (Date.now() - o.t) > RVTTL){ rvDrop(id); return null; }\n      return o.rv;\n    } catch(e){ return null; }\n  }\n\n  function loadRarity(topicId, badge, host, onDone, attempt){\n    attempt = attempt || 0;\n    if (pollCache[topicId]){ apply(pollCache[topicId]); return; }\n    if (!onDone){\n      var warm = rvLoad(topicId);\n      var needsBlurb = host && host.querySelector && host.querySelector('.ph-bg-blurb') && !(host.querySelector('.ph-bg-blurb').textContent || '').trim();\n      var needsValue = host && host.querySelector && host.querySelector('.ph-bg-value') && (/^(Unappraised|Valued at|\\u2026|\\.\\.\\.)?/i.test(((host.querySelector('.ph-bg-value').textContent || '').trim())) && (host.querySelector('.ph-bg-value').classList.contains('is-empty') || host.querySelector('.ph-bg-value').classList.contains('is-pending') || !/\\d/.test(host.querySelector('.ph-bg-value').textContent || '')));\n      if (warm && !needsBlurb && !needsValue){ apply({ rv: warm }); return; }\n      if (warm) apply({ rv: warm });\n      /* Paint a known/cached appraisal before the topic JSON returns. */\n      if (host){\n        var early = valLoad(topicId);\n        paintValue(host.querySelector('.ph-bg-value'), early || \"\", topicId);\n      }\n    }\n    jget(\"/t/\" + topicId + \".json?track_visit=false&forceLoad=true\").then(function(j){\n      var posts = (j && j.post_stream && j.post_stream.posts) || [];\n      var p0 = posts[0] || null;\n      var data = { postId: p0 && p0.id, rv: reviewsFrom(posts), cooked: (p0 && p0.cooked) || \"\", topic: j, raw: (p0 && p0.raw) || \"\" };\n      function finish(){\n        if (posts.length){ pollCache[topicId] = data; rvSave(topicId, data.rv); }\n        apply(data);\n      }\n      if (data.postId && !data.raw){\n        fetch(\"/posts/\" + data.postId + \"/raw\", { credentials: \"same-origin\" })\n          .then(function(r){ return r.ok ? r.text() : \"\"; })\n          .then(function(txt){ data.raw = txt || \"\"; finish(); })\n          .catch(function(){ finish(); });\n      } else {\n        finish();\n      }\n    }).catch(function(){\n      if (attempt < 2){\n        setTimeout(function(){ loadRarity(topicId, badge, host, onDone, attempt + 1); }, 450 + attempt * 350);\n        return;\n      }\n      paintBadge(badge, null);\n      if (onDone) onDone(null);\n    });\n\n    function apply(d){\n      var rv = d && d.rv;\n      paintBadge(badge, rv);\n      if (host){\n        host.__find = d;\n        paintTier(host.querySelector(\".ph-bg-tier\"), rv);\n        paintIdent(host, rv);\n        if (rv && rv.n){\n          host.style.setProperty(\"--tier\", RARITY[rv.idx].c);\n          host.classList.add(\"ph-has-tier\");\n        } else {\n          host.style.removeProperty(\"--tier\");\n          host.classList.remove(\"ph-has-tier\");\n        }\n        paintDoubloons(host, rv);\n        var ff = parseFields((d && (d.raw || d.cooked)) || \"\");\n        var valEl = host.querySelector(\".ph-bg-value\");\n        var v = (ff.value || \"\").trim() || valLoad(topicId) || \"\";\n        if (valEl) paintValue(valEl, v, topicId);\n        paintActs(host, rv, !!v);\n        var bl = host.querySelector(\".ph-bg-blurb\");\n        if (bl){\n          var bits = [];\n          if (ff.reckon) bits.push(ff.reckon);\n          if (ff.story) bits.push(ff.story.replace(/\\s+/g, \" \").trim());\n          var txt = bits.join(\" — \").replace(/\\s+/g, \" \").trim();\n          if (txt.length > 220) txt = txt.slice(0, 217).replace(/\\s+\\S*$/, \"\") + \"...\";\n          bl.textContent = txt;\n          bl.title = txt;\n          bl.style.display = txt ? \"\" : \"none\";\n        }\n      }\n      if (onDone) onDone(d);\n    }\n  }\n\n  function mediaFor(t, cooked){\n    if (t.image_url) return { type: \"img\", url: t.image_url };\n    if (cooked){\n      var vm = cooked.match(/<video[^>]*>[\\s\\S]*?<source[^>]+src=[\"']([^\"']+)/i) || cooked.match(/href=[\"']([^\"']+\\.(?:mp4|mov|m4v|webm)[^\"']*)/i);\n      if (vm) return { type: \"vid\", url: vm[1] };\n    }\n    return { type: \"none\" };\n  }\n\n  function parseFields(text){\n    var out = { reckon: \"\", gear: \"\", where: \"\", story: \"\", value: \"\" };\n    var src = String(text || \"\")\n      .replace(/<script[\\s\\S]*?<\\/script>/gi, \"\")\n      .replace(/<style[\\s\\S]*?<\\/style>/gi, \"\")\n      .replace(/<div class=\"meta\">[\\s\\S]*?<\\/div>/gi, \"\")\n      .replace(/<span class=\"(?:filename|informations)\"[^>]*>[\\s\\S]*?<\\/span>/gi, \"\")\n      .replace(/<\\/?(p|div|br|li|h\\d)[^>]*>/gi, \"\\n\")\n      .replace(/<\\/?[^>]+>/g, \" \")\n      .replace(/&nbsp;/g, \" \")\n      .replace(/&amp;/g, \"&\")\n      .replace(/&lt;/g, \"<\")\n      .replace(/&gt;/g, \">\");\n    src = src.replace(/\\[poll[\\s\\S]*?\\[\\/poll\\]/ig, \"\").replace(/---+/g, \"\\n\");\n    function grab(label, key){\n      var re = new RegExp(\"(?:\\\\*\\\\*)?\" + label.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\") + \"(?:\\\\*\\\\*)?\\\\s*:\\\\s*([^\\\\n]+)\", \"i\");\n      var m = src.match(re);\n      if (m) out[key] = m[1].replace(/^\\*+|\\*+$/g, \"\").trim();\n    }\n    grab(\"What I reckon it is\", \"reckon\");\n    grab(\"Gear used\", \"gear\");\n    grab(\"Where & when\", \"where\");\n    grab(\"Where / when\", \"where\");\n    grab(\"Appraised value\", \"value\");\n    grab(\"Appraised Value\", \"value\");\n    grab(\"Estimated value\", \"value\");\n    var story = src\n      .replace(/(?:\\*\\*)?What I reckon it is(?:\\*\\*)?\\s*:[^\\n]*/ig, \"\")\n      .replace(/(?:\\*\\*)?Gear used(?:\\*\\*)?\\s*:[^\\n]*/ig, \"\")\n      .replace(/(?:\\*\\*)?Where\\s*[&\\/]\\s*when(?:\\*\\*)?\\s*:[^\\n]*/ig, \"\")\n      .replace(/(?:\\*\\*)?(?:Appraised|Estimated)\\s+value(?:\\*\\*)?\\s*:[^\\n]*/ig, \"\")\n      .replace(/!\\[[^\\]]*\\]\\([^)]+\\)/g, \"\")\n      .replace(/\\b[\\w.-]+\\.(?:jpg|jpeg|png|gif|webp|mp4|mov|webm)\\b/ig, \"\")\n      .replace(/\\b(?:junk|common|uncommon|rare|epic|legendary|mythical|mythic)[-_ ]?\\d{0,2}\\b/ig, \"\")\n      .replace(/^\\s*(?:junk|common|uncommon|rare|epic|legendary|mythical|mythic)(?:\\s*[-_]?\\s*\\d{1,2})?\\s*$/gim, \"\")\n      .replace(/\\b\\d{2,5}\\s*[x\\u00d7X\\uFFFD]\\s*\\d{2,5}\\b/g, \"\")\n      .replace(/\\b\\d+(?:\\.\\d+)?\\s*(?:KB|MB|bytes)\\b/ig, \"\")\n      .replace(/How rare is this find\\?/ig, \"\")\n      .replace(/^\\s*\\*?\\s*(Common|Uncommon|Rare|Epic|Legendary|Mythical|Mythic)\\s*$/gim, \"\")\n      .replace(/^\\s*Crew:\\s*rate this find[\\s\\S]*$/im, \"\")\n      .replace(/[ \\t]+\\n/g, \"\\n\")\n      .replace(/\\n{3,}/g, \"\\n\\n\")\n      .trim();\n    if (out.reckon) story = story.split(\"\\n\").filter(function(line){ return line.trim() !== out.reckon; }).join(\"\\n\");\n    if (out.gear) story = story.split(\"\\n\").filter(function(line){ return line.trim() !== out.gear; }).join(\"\\n\");\n    if (out.where) story = story.split(\"\\n\").filter(function(line){ return line.trim() !== out.where; }).join(\"\\n\");\n    out.story = story.replace(/\\n{3,}/g, \"\\n\\n\").trim().slice(0, 1600);\n    return out;\n  }\n\n  function finderOf(t, users){\n    var op = (t.posters || []).filter(function(p){ return /Original Poster/.test(p.description || \"\"); })[0] || (t.posters || [])[0];\n    return op && users[op.user_id];\n  }\n\n  function sealFor(){ /* removed with the verification system */ }\n  function refreshSeals(){\n    /* Sweep up any seal left in the page from a cached render. */\n    document.querySelectorAll('.ph-bg-vseal, .ph-bg-vouch').forEach(function(n){ n.remove(); });\n  }\n\n  /* ---------- SCROLLER ---------- */\n  function buildScrollerCard(t, users){\n    var a = el(\"a\", \"ph-sc-card\");\n    a.href = \"#\";\n    a.setAttribute(\"data-tid\", String(t.id));\n    var m = mediaFor(t);\n    var img = el(\"span\", \"ph-sc-img\");\n    if (m.type === \"img\") img.style.backgroundImage = \"url(\" + m.url + \")\";\n    else if (m.type === \"vid\"){ img.classList.add(\"is-vid\"); img.appendChild(el(\"span\", \"ph-sc-play\", \"▶\")); }\n    else img.classList.add(\"is-empty\");\n    a.appendChild(img);\n    /* Image-only cards: badge bottom-left, ago bottom-right (no title blurb). */\n    a.appendChild(el(\"span\", \"ph-sc-chip bg\", ((CATS[t.category_id] || {}).e || \"⛏️\") + \" \" + ((CATS[t.category_id] || {}).n || \"Find\")));\n    a.appendChild(el(\"span\", \"ph-sc-ago\", timeAgo(t.created_at)));\n    a.addEventListener(\"click\", function(ev){\n      ev.preventDefault();\n      openDetail(t, users);\n    });\n    return a;\n  }\n\n  function fillScroller(sc, data){\n    var track = sc.querySelector(\".ph-sc-track\");\n    if (!track) return;\n    track.innerHTML = \"\";\n    var list = (data.topics || []).slice(0, 24);\n    if (!list.length){\n      track.appendChild(el(\"div\", \"ph-sc-empty\", \"No finds yet. Be the first to hang booty.\"));\n      return;\n    }\n    /* Two copies so theme-9 ph-sc-marq (translateX -50%) loops with no empty gap. */\n    list.concat(list).forEach(function(t){ track.appendChild(buildScrollerCard(t, data.users)); });\n    track.setAttribute(\"data-n\", String(list.length));\n    track.style.animationDuration = Math.max(34, Math.round(list.length * 3.2)) + \"s\";\n  }\n\n  /* ---------- FEED CARDS ---------- */\n  function filteredTopics(){\n    var q = (state.q || \"\").toLowerCase();\n    var list = (state.topics || []).slice();\n    if (q) list = list.filter(function(t){ return (t.title || \"\").toLowerCase().indexOf(q) > -1; });\n    if (state.sort === \"views\") list.sort(function(a, b){ return (b.views || 0) - (a.views || 0); });\n    else if (state.sort === \"az\") list.sort(function(a, b){ return (a.title || \"\").localeCompare(b.title || \"\"); });\n    else if (state.sort === \"za\") list.sort(function(a, b){ return (b.title || \"\").localeCompare(a.title || \"\"); });\n    else list.sort(function(a, b){ return new Date(b.created_at) - new Date(a.created_at); });\n    return list;\n  }\n\n  function buildFeedCard(t, users){\n    var c = el(\"div\", \"ph-bg-card\");\n    c.setAttribute(\"data-tid\", String(t.id));\n    var a = el(\"button\", \"ph-bg-imglink\");\n    a.type = \"button\";\n    var im = el(\"div\", \"ph-bg-img\");\n    var m = mediaFor(t);\n    if (m.type === \"img\"){\n      var g = document.createElement(\"img\");\n      g.loading = \"lazy\";\n      g.src = m.url;\n      g.alt = t.title || \"\";\n      im.appendChild(g);\n    } else if (m.type === \"vid\"){\n      im.appendChild(el(\"span\", \"ph-bg-ph\", \"▶\"));\n      im.appendChild(el(\"span\", \"ph-bg-vbadge\", \"Video\"));\n    } else {\n      im.appendChild(el(\"span\", \"ph-bg-ph\", \"🪙\"));\n    }\n    a.appendChild(im);\n    var cat = CATS[t.category_id] || CATS[226];\n    a.appendChild(el(\"span\", \"ph-bg-badge\", ((cat && cat.e) || \"⛏️\") + \" \" + ((cat && cat.n) || \"Find\")));\n    a.appendChild(tierEl());\n    /* Demo finds: red DEMO stamp, bottom-right of the image. */\n    var demo = el(\"span\", \"ph-bg-demo\", \"DEMO\");\n    demo.title = \"Demonstration tile — not a claimed real find\";\n    a.appendChild(demo);\n    c.appendChild(a);\n\n    var body = el(\"div\", \"ph-bg-body\");\n    body.appendChild(el(\"div\", \"ph-bg-title\", t.title || \"Untitled find\"));\n    body.appendChild(el(\"div\", \"ph-bg-blurb\", \"\"));\n    var foot = el(\"div\", \"ph-bg-foot\");\n    /* Gems span full width under the foot rule (Product Reviews stars pattern). */\n    var badge = badgeEl();\n    foot.appendChild(badge);\n    var baserow = el(\"div\", \"ph-bg-baserow\");\n    var left = el(\"div\", \"ph-bg-baseleft\");\n    /* Left cell: ident → doubloons. */\n    var ident = el(\"span\", \"ph-bg-ident\", \"UNIDENTIFIED\");\n    ident.title = \"Nobody has confirmed what this is yet\";\n    left.appendChild(ident);\n    var db = el(\"span\", \"ph-bg-db\");\n    db.setAttribute(\"data-ph-db\", \"1\");\n    db.hidden = true;\n    db.classList.add(\"is-empty\");\n    left.appendChild(db);\n    baserow.appendChild(left);\n    var right = el(\"div\", \"ph-bg-baseright\");\n    /* Right cell: value / Unappraised. */\n    var valEl = el(\"div\", \"ph-bg-value is-empty\", \"Unappraised\");\n    right.appendChild(valEl);\n    baserow.appendChild(right);\n    foot.appendChild(baserow);\n    /* Identify ‖ Appraise on one shared line (left / right cells). */\n    var acts = el(\"div\", \"ph-bg-actsrow\");\n    var idBtn = el(\"button\", \"ph-bg-btn-identify\", \"Identify\");\n    idBtn.type = \"button\";\n    idBtn.title = \"Confirm whether the title names what this actually is\";\n    acts.appendChild(idBtn);\n    var apBtn = el(\"button\", \"ph-bg-btn-appraise\", \"Appraise\");\n    apBtn.type = \"button\";\n    apBtn.title = \"Set an appraised worth for this find\";\n    acts.appendChild(apBtn);\n    foot.appendChild(acts);\n\n    var ur = el(\"div\", \"ph-bg-userrow\");\n    var u = finderOf(t, users);\n    var av = avatar(u, 48);\n    if (av){ var ai = document.createElement(\"img\"); ai.loading = \"lazy\"; ai.src = av; ai.alt = \"\"; ur.appendChild(ai); }\n    var nw = el(\"span\", \"ph-bg-namewrap\");\n    nw.setAttribute(\"data-user\", (u && u.username) || \"\");\n    nw.appendChild(el(\"span\", \"ph-bg-user\", u ? u.username : \"crew\"));\n    sealFor(u && u.username, nw);\n    ur.appendChild(nw);\n\n    var cn = (window.phCompactNum || function(n){ return String(n || 0); });\n    var last = el(\"div\", \"ph-bg-lastrow\");\n    last.appendChild(ur);\n    var counts = el(\"div\", \"ph-bg-counts\");\n    var agoTxt = timeAgo(t.created_at) || \"\";\n    if (agoTxt) counts.appendChild(el(\"span\", \"ph-bg-ago\", agoTxt));\n    var stats = el(\"span\", \"ph-bg-stats\");\n    stats.appendChild(document.createTextNode(\"\\uD83D\\uDC41 \" + cn(t.views || 0) + \" \\u00b7 \\uD83D\\uDCAC \" + cn(t.reply_count || 0)));\n    counts.appendChild(stats);\n    last.appendChild(counts);\n    foot.appendChild(last);\n    body.appendChild(foot);\n    c.appendChild(body);\n\n    function open(){ openDetail(t, users); }\n    a.addEventListener(\"click\", open);\n    body.querySelector(\".ph-bg-title\").style.cursor = \"pointer\";\n    body.querySelector(\".ph-bg-title\").addEventListener(\"click\", open);\n    badge.addEventListener(\"click\", function(ev){ ev.preventDefault(); ev.stopPropagation(); var g = ev.target && ev.target.closest ? ev.target.closest(\".ph-bg-gm\") : null; openRate(t, c, badge, g ? parseInt(g.getAttribute(\"data-g\"), 10) : 0); });\n    idBtn.addEventListener(\"click\", function(ev){ ev.preventDefault(); ev.stopPropagation(); openIdentify(t, c, badge); });\n    apBtn.addEventListener(\"click\", function(ev){ ev.preventDefault(); ev.stopPropagation(); openAppraise(t, c, badge); });\n\n    /* Paint appraisal immediately from seed/cache — Unappraised when empty. */\n    var known = valLoad(t.id);\n    paintValue(valEl, known || \"\", t.id);\n    paintActs(c, null, !!known);\n\n    /* Stagger tile enrichment so Discourse rate-limits do not leave\n       half the deck stuck on empty blurbs / gem ratings. */\n    var delay = (rarityKick++ % 48) * 110;\n    setTimeout(function(){ loadRarity(t.id, badge, c); }, delay);\n    return c;\n  }\n\n  function fillFeed(force){\n    var grid = document.querySelector(\".ph-bg-grid\");\n    if (!grid) return;\n    fetchFinds(force).then(function(data){\n      var list = filteredTopics();\n      grid.innerHTML = \"\";\n      var slice = list.slice(0, state.shown);\n      slice.forEach(function(t){ grid.appendChild(buildFeedCard(t, data.users)); });\n      var moreWrap = document.querySelector(\".ph-bg-more\");\n      if (moreWrap) moreWrap.innerHTML = \"\";\n      if (!list.length){\n        var em = el(\"div\", \"ph-bg-firsthint\");\n        em.appendChild(el(\"div\", \"ph-bg-fh-t\", \"The treasure room is bare.\"));\n        em.appendChild(el(\"div\", \"ph-bg-fh-m\", \"Hit Add Booty, drop in a photo or clip, tell the tale, and the crew will rate its rarity.\"));\n        grid.appendChild(em);\n        return;\n      }\n      /* The button is no longer the fallback for a missing observer, it is\n         the way you go past the number you picked. Scroll loading went with\n         the All option that used to gate it. */\n      if (!moreWrap && list.length){\n        moreWrap = el(\"div\", \"ph-bg-more\");\n        var deck = document.querySelector(\".ph-bg-deck\");\n        if (deck) deck.appendChild(moreWrap);\n      }\n      if (moreWrap && list.length){\n        /* built here, appended after the menu, so it sits to its right */\n        var canMore = slice.length < list.length;\n        var btn = el(\"button\", \"ph-bg-more-btn\" + (canMore ? \"\" : \" is-done\"), \"Load more\");\n        btn.type = \"button\";\n        btn.disabled = !canMore;\n        btn.title = canMore ? \"Show forty more\" : \"All finds are showing\";\n        if (canMore) {\n          phTip(btn, \"bg-more\");\n          btn.addEventListener(\"click\", function(){ state.shown += PAGE; fillFeed(false); });\n        }\n        var note = el(\"div\", \"ph-bg-shownote ph-bg-scrollhint\", canMore\n          ? (\"Showing \" + slice.length + \" of \" + list.length + \" finds\")\n          : (list.length === 1 ? \"One find\" : (\"Showing all \" + list.length + \" finds\")));\n        moreWrap.appendChild(note);\n        var lim2 = el(\"select\", \"ph-bg-limit-sel\");\n        lim2.setAttribute(\"aria-label\", \"Tiles to show\");\n        lim2.title = \"Pick how many booty tiles to show\";\n        LIMIT_OPTS.forEach(function(o){\n          var op = document.createElement(\"option\");\n          op.value = o[0];\n          op.textContent = o[1];\n          lim2.appendChild(op);\n        });\n        lim2.value = String(state.limitPref);\n        phTip(lim2, \"bg-limit\");\n        lim2.addEventListener(\"change\", function(){ setBgLimit(lim2.value); });\n        moreWrap.appendChild(lim2);\n        moreWrap.appendChild(btn);\n      }\n    });\n  }\n\n  function refillAll(force){\n    fetchFinds(!!force).then(function(data){\n      var sc = document.querySelector('.ph-sc-cat[data-scope=\"bg\"]');\n      if (sc) fillScroller(sc, data);\n      fillFeed(false);\n    });\n  }\n\n  /* ---------- GEM REVIEW FORM ---------- */\n  function closeRate(){\n    var m = document.getElementById(\"phBgReview\");\n    if (m && m.parentNode) m.parentNode.removeChild(m);\n  }\n  function closeIdentify(){\n    var m = document.getElementById(\"phBgIdentify\");\n    if (m && m.parentNode) m.parentNode.removeChild(m);\n  }\n  function closeAppraise(){\n    var m = document.getElementById(\"phBgAppraise\");\n    if (m && m.parentNode) m.parentNode.removeChild(m);\n  }\n\n  function refreshFindHosts(t, badge, host){\n    delete pollCache[t.id]; rvDrop(t.id);\n    if (host && badge) loadRarity(t.id, badge, host);\n    var card = document.querySelector('.ph-bg-card[data-tid=\"' + t.id + '\"]');\n    if (card && card !== host){\n      var cb = card.querySelector(\".ph-bg-gems\");\n      if (cb) loadRarity(t.id, cb, card);\n    }\n    var det = document.querySelector(\".ph-bg-detail\");\n    if (det && det !== host){\n      var db = det.querySelector(\".ph-bg-gems\");\n      if (db) loadRarity(t.id, db, det);\n    }\n  }\n\n  /* ── Booty Identify / Appraise review loop (r339) ── */\n  var PH_REVIEW_HOURS = 72;\n  function pollCloseIso(hours){\n    return new Date(Date.now() + (hours || PH_REVIEW_HOURS) * 3600 * 1000).toISOString().replace(/\\.\\d{3}Z$/, \"Z\");\n  }\n  function trimTitle(s, n){\n    s = String(s || \"\").replace(/\\s+/g, \" \").trim();\n    if (s.length <= n) return s;\n    return s.slice(0, Math.max(0, n - 1)).replace(/\\s+\\S*$/, \"\") + \"…\";\n  }\n  function agreePollMd(name, question, closeIso){\n    return \"[poll name=\" + name + \" type=regular results=always public=true close=\" + closeIso + \"]\\n\"\n      + \"# \" + question + \"\\n\"\n      + \"* Yes — I agree\\n\"\n      + \"* No — I disagree\\n\"\n      + \"[/poll]\\n\\n\"\n      + \"If you vote **No**, reply under this review and say **why**.\\n\";\n  }\n  function uploadsToMd(uploads){\n    return (uploads || []).map(function(u){\n      var url = (u && (u.short_url || u.url)) || \"\";\n      if (!url) return \"\";\n      if (/^upload:\\/\\//i.test(url) || /\\.(png|jpe?g|gif|webp|bmp)(\\?|$)/i.test(url)) return \"![](\" + url + \")\";\n      return url;\n    }).filter(Boolean).join(\"\\n\");\n  }\n  function mountEvidenceDrop(host, opts){\n    opts = opts || {};\n    var wrap = el(\"div\", \"ph-bg-fld ph-bg-evidence\");\n    wrap.appendChild(el(\"label\", null, opts.label || \"Supporting evidence\"));\n    wrap.appendChild(el(\"p\", \"ph-bg-hint\", opts.hint || \"Drag & drop photos here — comps, close-ups, certificate scans, or anything that backs your conclusion.\"));\n    var drop = el(\"div\", \"ph-bg-drop\");\n    drop.appendChild(el(\"div\", \"ph-bg-drop-ic\", \"📎\"));\n    drop.appendChild(el(\"div\", \"ph-bg-drop-t\", \"Drag & drop images\"));\n    drop.appendChild(el(\"div\", \"ph-bg-drop-s\", \"or click to browse · JPG, PNG, WEBP, GIF\"));\n    var file = document.createElement(\"input\");\n    file.type = \"file\";\n    file.accept = \"image/jpeg,image/png,image/webp,image/gif\";\n    file.multiple = true;\n    file.className = \"ph-bg-file\";\n    drop.appendChild(file);\n    wrap.appendChild(drop);\n    var prev = el(\"div\", \"ph-bg-prev\");\n    wrap.appendChild(prev);\n    var files = [];\n    function paint(){\n      prev.innerHTML = \"\";\n      files.forEach(function(f, i){\n        var box = el(\"div\", \"ph-bg-pc\");\n        if (/^image\\//.test(f.type)){\n          var img = document.createElement(\"img\");\n          img.alt = \"\";\n          img.src = URL.createObjectURL(f);\n          box.appendChild(img);\n        } else {\n          box.appendChild(el(\"span\", null, f.name || \"file\"));\n        }\n        var rm = el(\"button\", \"ph-bg-pcx\", \"×\");\n        rm.type = \"button\";\n        rm.title = \"Remove\";\n        rm.addEventListener(\"click\", function(ev){\n          ev.preventDefault(); ev.stopPropagation();\n          files.splice(i, 1);\n          paint();\n        });\n        box.appendChild(rm);\n        prev.appendChild(box);\n      });\n    }\n    function addList(list){\n      Array.prototype.forEach.call(list || [], function(f){\n        if (!f || !/^image\\//.test(f.type)) return;\n        if (files.length >= 8) return;\n        files.push(f);\n      });\n      paint();\n    }\n    drop.addEventListener(\"click\", function(){ file.click(); });\n    file.addEventListener(\"change\", function(){ addList(file.files); file.value = \"\"; });\n    [\"dragenter\", \"dragover\"].forEach(function(ev){\n      drop.addEventListener(ev, function(e){ e.preventDefault(); e.stopPropagation(); drop.classList.add(\"drag\"); });\n    });\n    [\"dragleave\", \"drop\"].forEach(function(ev){\n      drop.addEventListener(ev, function(e){\n        e.preventDefault(); e.stopPropagation();\n        drop.classList.remove(\"drag\");\n        if (ev === \"drop\" && e.dataTransfer) addList(e.dataTransfer.files);\n      });\n    });\n    host.appendChild(wrap);\n    return { files: function(){ return files.slice(); }, root: wrap };\n  }\n  function fieldBlock(host, label, hint, kind, ph){\n    var w = el(\"div\", \"ph-bg-fld\");\n    w.appendChild(el(\"label\", null, label));\n    if (hint) w.appendChild(el(\"p\", \"ph-bg-hint\", hint));\n    var inp;\n    if (kind === \"ta\"){\n      inp = document.createElement(\"textarea\");\n      inp.rows = 5;\n    } else {\n      inp = document.createElement(\"input\");\n      inp.type = \"text\";\n    }\n    inp.className = \"ph-bg-in\";\n    if (ph) inp.placeholder = ph;\n    w.appendChild(inp);\n    host.appendChild(w);\n    return inp;\n  }\n  function createReviewTopic(payload, cb){\n    var body = {\n      title: payload.title,\n      raw: payload.raw,\n      category: payload.category || POST_CAT,\n      archetype: \"regular\"\n    };\n    if (payload.tags && payload.tags.length) body.tags = payload.tags;\n    fetch(\"/posts.json\", {\n      method: \"POST\", credentials: \"include\",\n      headers: { \"Content-Type\": \"application/json; charset=utf-8\", \"X-CSRF-Token\": csrf(), \"X-Requested-With\": \"XMLHttpRequest\" },\n      body: JSON.stringify(body)\n    }).then(function(r){ return r.json().then(function(j){ return { ok: r.ok, j: j }; }); }).then(function(res){\n      var j = res.j || {};\n      if (res.ok && (j.topic_id || j.id || j.post_number)){\n        cb(null, { topic_id: j.topic_id, topic_slug: j.topic_slug, post_url: j.post_url });\n        return;\n      }\n      var err = (j.errors && j.errors[0]) || \"post rejected\";\n      if (body.tags && /tag/i.test(String(err))){\n        delete body.tags;\n        return fetch(\"/posts.json\", {\n          method: \"POST\", credentials: \"include\",\n          headers: { \"Content-Type\": \"application/json; charset=utf-8\", \"X-CSRF-Token\": csrf(), \"X-Requested-With\": \"XMLHttpRequest\" },\n          body: JSON.stringify(body)\n        }).then(function(r2){ return r2.json().then(function(j2){ return { ok: r2.ok, j: j2 }; }); }).then(function(res2){\n          var j2 = res2.j || {};\n          if (res2.ok && (j2.topic_id || j2.id || j2.post_number)) cb(null, { topic_id: j2.topic_id, topic_slug: j2.topic_slug, post_url: j2.post_url });\n          else cb((j2.errors && j2.errors[0]) || err);\n        });\n      } else cb(err);\n    }).catch(function(e){ cb(e && e.message ? e.message : \"network error\"); });\n  }\n  function linkOnFind(findId, raw){\n    return fetch(\"/posts.json\", {\n      method: \"POST\", credentials: \"include\",\n      headers: { \"Content-Type\": \"application/json; charset=utf-8\", \"X-CSRF-Token\": csrf(), \"X-Requested-With\": \"XMLHttpRequest\" },\n      body: JSON.stringify({ raw: raw, topic_id: findId })\n    }).then(function(r){ return r.json(); }).catch(function(){ return null; });\n  }\n\n  function openIdentify(t, host, badge){\n    closeIdentify(); closeAppraise(); closeRate();\n    var ov = el(\"div\", \"ph-bg-modal ph-bg-modal--center\");\n    ov.id = \"phBgIdentify\";\n    var panel = el(\"div\", \"ph-bg-panel ph-bg-idpanel ph-bg-reviewpanel\");\n    var h = el(\"div\", \"ph-bg-p-head\");\n    h.appendChild(el(\"div\", \"ph-bg-p-title\", \"Identify this find\"));\n    var x = el(\"button\", \"ph-bg-p-x\", \"×\");\n    x.type = \"button\";\n    x.addEventListener(\"click\", closeIdentify);\n    h.appendChild(x);\n    panel.appendChild(h);\n    panel.appendChild(el(\"div\", \"ph-bg-rv-find\", t.title || \"This find\"));\n    panel.appendChild(el(\"p\", \"ph-bg-hint\", \"Propose what this object is. Your write-up opens a 72-hour crew poll — Do you agree? Winning proposals settle onto the tile; losing ones stay on the record.\"));\n\n    var fWhat = fieldBlock(panel, \"Your identification\", \"Name the object as specifically as you can — type, culture, period, material.\", \"in\", \"e.g. Late Roman bronze fibula, 3rd–4th c. CE\");\n    var fWhy = fieldBlock(panel, \"Why this is correct\", \"Lay out your reasoning: diagnostic features, parallels, measurements, wear, find context.\", \"ta\", \"What did you observe? What comps or sources support this ID?\");\n    var evidence = mountEvidenceDrop(panel, {\n      label: \"Supporting evidence\",\n      hint: \"Drag & drop photos of comparable finds from the same period, diagnostic details, or scans of credentials (ISA / ASA / CAGA / GPPA, dealer letters, PCGS·NGC slips, lab notes) that back your identification.\"\n    });\n\n    var err = el(\"div\", \"ph-bg-err\");\n    panel.appendChild(err);\n    var actions = el(\"div\", \"ph-bg-actions\");\n    var cancel = el(\"button\", \"ph-bg-cancel\", \"Cancel\");\n    cancel.type = \"button\";\n    cancel.addEventListener(\"click\", closeIdentify);\n    var go = el(\"button\", \"ph-bg-submit\", \"Identify & post for review\");\n    go.type = \"button\";\n    actions.appendChild(cancel); actions.appendChild(go);\n    panel.appendChild(actions);\n\n    go.addEventListener(\"click\", function(){\n      err.textContent = \"\";\n      var ident = (fWhat.value || \"\").trim();\n      var why = (fWhy.value || \"\").trim();\n      if (!ident){ err.textContent = \"Enter your identification of this object.\"; fWhat.focus(); return; }\n      if (why.length < 24){ err.textContent = \"Add a bit more detail on why you believe this ID is correct.\"; fWhy.focus(); return; }\n      go.disabled = true;\n      go.textContent = \"Posting…\";\n      var files = evidence.files();\n      function afterUploads(uploads, upErr){\n        if (upErr && !(uploads && uploads.length)){\n          err.textContent = \"Could not upload evidence: \" + upErr;\n          go.disabled = false; go.textContent = \"Identify & post for review\";\n          return;\n        }\n        jget(\"/t/\" + t.id + \".json?track_visit=false&forceLoad=true\").then(function(tj){\n          var cat = (tj && tj.category_id) || POST_CAT;\n          var slug = (tj && tj.slug) || \"topic\";\n          var closeIso = pollCloseIso(PH_REVIEW_HOURS);\n          var pollName = \"phid\" + String(t.id) + \"x\" + String(Date.now()).slice(-8);\n          var evidMd = uploadsToMd(uploads);\n          var raw = \"<!--PH-BOOTY-REVIEW kind=identify find=\" + t.id + \" status=awaiting closes=\" + closeIso + \"-->\\n\\n\"\n            + \"## Identity proposed for review\\n\\n\"\n            + \"**Find:** [\" + (t.title || \"This find\") + \"](/t/\" + slug + \"/\" + t.id + \")\\n\\n\"\n            + \"**Proposed identification:** \" + ident + \"\\n\\n\"\n            + \"**Why this is correct:**\\n\\n\" + why + \"\\n\\n\";\n          if (evidMd) raw += \"**Supporting evidence:**\\n\\n\" + evidMd + \"\\n\\n\";\n          raw += \"---\\n\\n\"\n            + \"Crew — does this identification look right?\\n\\n\"\n            + agreePollMd(pollName, \"Do you agree with this identification?\", closeIso)\n            + \"\\n*Poll closes automatically in 72 hours. The Appraiser settles winners onto the find; losing proposals stay archived on the record.*\\n\";\n          var title = trimTitle(\"Identity review: \" + ident + \" — \" + (t.title || \"find\"), 200);\n          createReviewTopic({ title: title, raw: raw, category: cat, tags: [\"awaiting-identify\", \"booty-review\"] }, function(cErr, res){\n            if (cErr || !res){\n              err.textContent = \"Could not open the review: \" + (cErr || \"error\");\n              go.disabled = false; go.textContent = \"Identify & post for review\";\n              return;\n            }\n            var link = \"/t/\" + (res.topic_slug || \"topic\") + \"/\" + res.topic_id;\n            linkOnFind(t.id, \"**Identity proposed for review:** \" + ident + \"\\n\\n→ [Open the 72-hour Agree poll](\" + link + \")\\n\").then(function(){\n              closeIdentify();\n              refreshFindHosts(t, badge, host);\n              try { window.location.href = link; } catch (e) {}\n            });\n          });\n        }).catch(function(e){\n          err.textContent = \"Could not read the find: \" + (e && e.message ? e.message : \"error\");\n          go.disabled = false; go.textContent = \"Identify & post for review\";\n        });\n      }\n      if (files.length) uploadAll(files, afterUploads);\n      else afterUploads([], null);\n    });\n\n    ov.appendChild(panel);\n    ov.addEventListener(\"click\", function(e){ if (e.target === ov) closeIdentify(); });\n    document.body.appendChild(ov);\n    setTimeout(function(){ try { fWhat.focus(); } catch (e) {} }, 40);\n  }\n\n  function openAppraise(t, host, badge){\n    closeAppraise(); closeIdentify(); closeRate();\n    var ov = el(\"div\", \"ph-bg-modal ph-bg-modal--center\");\n    ov.id = \"phBgAppraise\";\n    var panel = el(\"div\", \"ph-bg-panel ph-bg-appanel ph-bg-reviewpanel\");\n    var h = el(\"div\", \"ph-bg-p-head\");\n    h.appendChild(el(\"div\", \"ph-bg-p-title\", \"Appraise this find\"));\n    var x = el(\"button\", \"ph-bg-p-x\", \"×\");\n    x.type = \"button\";\n    x.addEventListener(\"click\", closeAppraise);\n    h.appendChild(x);\n    panel.appendChild(h);\n    panel.appendChild(el(\"div\", \"ph-bg-rv-find\", t.title || \"This find\"));\n    panel.appendChild(el(\"p\", \"ph-bg-hint\", \"Propose a worth — a figure or a range. It goes to a 72-hour crew poll before anything hangs as Valued at… on the tile. Multiple winning appraisals average together.\"));\n\n    var fVal = fieldBlock(panel, \"Appraised value\", \"Single figure or a range the crew can weigh.\", \"in\", \"$12,000–$45,000\");\n    var cur = valLoad(t.id) || \"\";\n    if (cur) fVal.value = cur;\n    var fWhy = fieldBlock(panel, \"Why this appraisal is correct\", \"Comps sold, melt vs collector premium, condition, rarity, market notes — whatever makes the number trustworthy.\", \"ta\", \"What comps or methods did you use? Any caveats?\");\n    var evidence = mountEvidenceDrop(panel, {\n      label: \"Supporting evidence\",\n      hint: \"Drag & drop auction comps, slab photos, melt worksheets, or credential scans (ISA CAPP / ASA / CAGA / GPPA, auction-house letters, PCGS·NGC certs, lab reports) that support this appraisal.\"\n    });\n\n    var err = el(\"div\", \"ph-bg-err\");\n    panel.appendChild(err);\n    var actions = el(\"div\", \"ph-bg-actions\");\n    var cancel = el(\"button\", \"ph-bg-cancel\", \"Cancel\");\n    cancel.type = \"button\";\n    cancel.addEventListener(\"click\", closeAppraise);\n    var go = el(\"button\", \"ph-bg-submit ph-bg-submit--appraise\", \"Save & post appraisal for review\");\n    go.type = \"button\";\n    actions.appendChild(cancel); actions.appendChild(go);\n    panel.appendChild(actions);\n\n    go.addEventListener(\"click\", function(){\n      err.textContent = \"\";\n      var val = (fVal.value || \"\").trim();\n      var why = (fWhy.value || \"\").trim();\n      if (!val){ err.textContent = \"Enter an appraised value.\"; fVal.focus(); return; }\n      if (why.length < 24){ err.textContent = \"Add a bit more detail on why this appraisal holds.\"; fWhy.focus(); return; }\n      go.disabled = true;\n      go.textContent = \"Posting…\";\n      var files = evidence.files();\n      function afterUploads(uploads, upErr){\n        if (upErr && !(uploads && uploads.length)){\n          err.textContent = \"Could not upload evidence: \" + upErr;\n          go.disabled = false; go.textContent = \"Save & post appraisal for review\";\n          return;\n        }\n        jget(\"/t/\" + t.id + \".json?track_visit=false&forceLoad=true\").then(function(tj){\n          var cat = (tj && tj.category_id) || POST_CAT;\n          var slug = (tj && tj.slug) || \"topic\";\n          var closeIso = pollCloseIso(PH_REVIEW_HOURS);\n          var pollName = \"phap\" + String(t.id) + \"x\" + String(Date.now()).slice(-8);\n          var evidMd = uploadsToMd(uploads);\n          var raw = \"<!--PH-BOOTY-REVIEW kind=appraise find=\" + t.id + \" status=awaiting closes=\" + closeIso + \"-->\\n\\n\"\n            + \"## Appraisal proposed for review\\n\\n\"\n            + \"**Find:** [\" + (t.title || \"This find\") + \"](/t/\" + slug + \"/\" + t.id + \")\\n\\n\"\n            + \"**Proposed appraisal:** \" + val + \"\\n\\n\"\n            + \"**Why this appraisal is correct:**\\n\\n\" + why + \"\\n\\n\";\n          if (evidMd) raw += \"**Supporting evidence:**\\n\\n\" + evidMd + \"\\n\\n\";\n          raw += \"---\\n\\n\"\n            + \"Crew — does this appraisal look right?\\n\\n\"\n            + agreePollMd(pollName, \"Do you agree with this appraisal?\", closeIso)\n            + \"\\n*Poll closes automatically in 72 hours. Winning appraisals average onto the find; losing ones stay archived on the record.*\\n\";\n          var title = trimTitle(\"Appraisal review: \" + val + \" — \" + (t.title || \"find\"), 200);\n          createReviewTopic({ title: title, raw: raw, category: cat, tags: [\"awaiting-appraise\", \"booty-review\"] }, function(cErr, res){\n            if (cErr || !res){\n              err.textContent = \"Could not open the review: \" + (cErr || \"error\");\n              go.disabled = false; go.textContent = \"Save & post appraisal for review\";\n              return;\n            }\n            var link = \"/t/\" + (res.topic_slug || \"topic\") + \"/\" + res.topic_id;\n            linkOnFind(t.id, \"**Appraisal proposed for review:** \" + val + \"\\n\\n→ [Open the 72-hour Agree poll](\" + link + \")\\n\").then(function(){\n              closeAppraise();\n              refreshFindHosts(t, badge, host);\n              try { window.location.href = link; } catch (e) {}\n            });\n          });\n        }).catch(function(e){\n          err.textContent = \"Could not read the find: \" + (e && e.message ? e.message : \"error\");\n          go.disabled = false; go.textContent = \"Save & post appraisal for review\";\n        });\n      }\n      if (files.length) uploadAll(files, afterUploads);\n      else afterUploads([], null);\n    });\n\n    ov.appendChild(panel);\n    ov.addEventListener(\"click\", function(e){ if (e.target === ov) closeAppraise(); });\n    document.body.appendChild(ov);\n    setTimeout(function(){ try { fVal.focus(); } catch (e) {} }, 40);\n  }\n\n  function openRate(t, host, badge, preset){\n    closeRate();\n    var pick = Math.max(0, Math.min(7, parseInt(preset, 10) || 0));\n\n    var ov = el(\"div\", \"ph-bg-modal\");\n    ov.id = \"phBgReview\";\n    var panel = el(\"div\", \"ph-bg-panel ph-bg-rvpanel\");\n\n    var h = el(\"div\", \"ph-bg-p-head\");\n    h.appendChild(el(\"div\", \"ph-bg-p-title\", \"Rate this find\"));\n    var x = el(\"button\", \"ph-bg-p-x\", \"×\");\n    x.type = \"button\";\n    x.addEventListener(\"click\", closeRate);\n    h.appendChild(x);\n    panel.appendChild(h);\n    panel.appendChild(el(\"div\", \"ph-bg-rv-find\", t.title || \"This find\"));\n\n    var gw = el(\"div\", \"ph-bg-fld\");\n    gw.appendChild(el(\"label\", null, \"How rare is it?\"));\n    gw.appendChild(el(\"p\", \"ph-bg-hint\", \"One gem is trash from the junk pouch. Seven is a find that rewrites the record. Only the rating is required, everything else is yours to add if you feel like it.\"));\n    var grid = el(\"div\", \"ph-bg-gpick\");\n    var btns = [];\n    RARITY.forEach(function(r, i){\n      var b = el(\"button\", \"ph-bg-gp\");\n      b.type = \"button\";\n      b.setAttribute(\"data-g\", String(i + 1));\n      b.style.setProperty(\"--r\", r.c);\n      var row = el(\"span\", \"ph-bg-gprow\");\n      for (var k = 0; k <= i; k++) row.appendChild(el(\"span\", \"ph-bg-gmi\"));\n      b.appendChild(row);\n      b.appendChild(el(\"span\", \"ph-bg-gpn\", r.n));\n      b.setAttribute(\"data-tier\", String(i));\n      b.addEventListener(\"click\", function(){ pick = i + 1; paint(); });\n      grid.appendChild(b);\n      btns.push(b);\n    });\n    gw.appendChild(grid);\n    panel.appendChild(gw);\n    function paint(){ btns.forEach(function(b, i){ if (i + 1 === pick) b.classList.add(\"on\"); else b.classList.remove(\"on\"); }); }\n    paint();\n\n    function field(label, ph, hint, tag){\n      var w = el(\"div\", \"ph-bg-fld\");\n      w.appendChild(el(\"label\", null, label));\n      if (hint) w.appendChild(el(\"p\", \"ph-bg-hint\", hint));\n      var i = tag === \"textarea\" ? document.createElement(\"textarea\") : document.createElement(\"input\");\n      if (tag !== \"textarea\") i.type = \"text\";\n      i.placeholder = ph || \"\";\n      i.className = \"ph-bg-in\";\n      w.appendChild(i);\n      panel.appendChild(w);\n      return i;\n    }\n\n    var iw = el(\"div\", \"ph-bg-fld\");\n    iw.appendChild(el(\"label\", null, \"Does the title name what this actually is? (optional)\"));\n    iw.appendChild(el(\"p\", \"ph-bg-hint\", \"A find counts as identified once the crew agrees the name is right.\"));\n    var seg = el(\"div\", \"ph-bg-seg\");\n    var idYes = el(\"button\", \"ph-bg-sg\", \"Identified\");\n    var idNo = el(\"button\", \"ph-bg-sg\", \"Not yet\");\n    idYes.type = \"button\"; idNo.type = \"button\";\n    var ident = -1;\n    idYes.addEventListener(\"click\", function(){ ident = 1; idYes.classList.add(\"on\"); idNo.classList.remove(\"on\"); });\n    idNo.addEventListener(\"click\", function(){ ident = 0; idNo.classList.add(\"on\"); idYes.classList.remove(\"on\"); });\n    seg.appendChild(idYes); seg.appendChild(idNo);\n    iw.appendChild(seg);\n    panel.appendChild(iw);\n\n    var fTitle = field(\"Headline (optional)\", \"A few words on your verdict\");\n    var fBody  = field(\"Your take (optional)\", \"What is it, how sure are you, what is it worth and why?\", null, \"textarea\");\n\n    var err = el(\"div\", \"ph-bg-err\");\n    panel.appendChild(err);\n    var actions = el(\"div\", \"ph-bg-actions\");\n    var cancel = el(\"button\", \"ph-bg-cancel\", \"Cancel\");\n    cancel.type = \"button\";\n    cancel.addEventListener(\"click\", closeRate);\n    var go = el(\"button\", \"ph-bg-submit\", \"Post the rating\");\n    go.type = \"button\";\n    actions.appendChild(cancel); actions.appendChild(go);\n    panel.appendChild(actions);\n\n    go.addEventListener(\"click\", function(){\n      err.textContent = \"\";\n      if (!pick){ err.textContent = \"Pick a gem rating, one to seven.\"; return; }\n      var head = (fTitle.value || \"\").trim();\n      var text = (fBody.value || \"\").trim();\n      go.disabled = true;\n      go.textContent = \"Posting…\";\n\n      var gems = \"\";\n      for (var s = 1; s <= 7; s++) gems += (pick >= s ? \"◆\" : \"◇\");\n      var raw = \"**Find review:** \" + (t.title || \"This find\") + \"\\n\\n\"\n              + \"**Gem rating:** \" + pick + \" / 7 \" + gems + \" (\" + RARITY[pick - 1].n + \")\\n\\n\"\n              + (ident >= 0 ? \"**Identified:** \" + (ident ? \"yes\" : \"no\") + \"\\n\\n\" : \"\")\n              + (head ? \"**\" + head + \"**\\n\\n\" : \"\")\n              + (text ? text + \"\\n\" : \"\");\n\n      fetch(\"/posts.json\", {\n        method: \"POST\", credentials: \"include\",\n        headers: { \"Content-Type\": \"application/json; charset=utf-8\", \"X-CSRF-Token\": csrf(), \"X-Requested-With\": \"XMLHttpRequest\" },\n        body: JSON.stringify({ raw: raw, topic_id: t.id })\n      }).then(function(r){ return r.json(); }).then(function(j){\n        if (!j || j.errors) throw new Error((j && j.errors && j.errors[0]) || \"post failed\");\n        delete pollCache[t.id]; rvDrop(t.id);\n        closeRate();\n        loadRarity(t.id, badge, host);\n        var det = document.querySelector(\".ph-bg-detail .ph-bg-gems\");\n        if (det && det !== badge) loadRarity(t.id, det, document.querySelector(\".ph-bg-detail\"));\n      }).catch(function(e){\n        err.textContent = \"Could not post that rating: \" + (e && e.message ? e.message : \"error\");\n        go.disabled = false;\n        go.textContent = \"Post the rating\";\n      });\n    });\n\n    ov.appendChild(panel);\n    ov.addEventListener(\"click\", function(e){ if (e.target === ov) closeRate(); });\n    document.body.appendChild(ov);\n    setTimeout(function(){ try { fTitle.focus(); } catch(e){} }, 40);\n  }\n\n  /* ---------- DETAIL OVERLAY ---------- */\n  function galleryFromCooked(cooked){\n    var items = [];\n    var reImg = /<img[^>]+src=[\"']([^\"']+)[\"'][^>]*>/gi;\n    var m;\n    while ((m = reImg.exec(cooked || \"\"))){\n      var src = m[1];\n      if (/avatar|emoji|poll/i.test(src)) continue;\n      items.push({ type: \"img\", url: src });\n    }\n    var reVid = /<video[\\s\\S]*?<source[^>]+src=[\"']([^\"']+)[\"'][\\s\\S]*?<\\/video>/gi;\n    while ((m = reVid.exec(cooked || \"\"))){\n      items.push({ type: \"vid\", url: m[1] });\n    }\n    if (!items.length){\n      var md = /!\\[[^\\]]*\\]\\(([^)]+)\\)/g;\n      while ((m = md.exec(cooked || \"\"))){\n        var u = m[1];\n        items.push({ type: VIDEXT.test(u) ? \"vid\" : \"img\", url: u });\n      }\n    }\n    return items;\n  }\n\n  function openDetail(t, users){\n    closeDetail();\n    closeRate();\n    var ov = el(\"div\", \"ph-bg-detail\");\n    ov.setAttribute(\"data-tid\", String(t.id));\n    var panel = el(\"div\", \"ph-bg-d-panel\");\n    var close = el(\"button\", \"ph-bg-d-x\", \"×\");\n    close.type = \"button\";\n    close.addEventListener(\"click\", closeDetail);\n    panel.appendChild(close);\n\n    var hero = el(\"div\", \"ph-bg-d-hero\");\n    hero.appendChild(el(\"div\", \"ph-bg-d-loading\", \"Loading the find…\"));\n    var heroWrap = el(\"div\", \"ph-bg-d-herowrap\");\n    heroWrap.appendChild(hero);\n    heroWrap.appendChild(tierEl());\n    panel.appendChild(heroWrap);\n\n    var kicker = el(\"div\", \"ph-bg-d-kicker\", \"The Booty Gallery\");\n    panel.appendChild(kicker);\n    panel.appendChild(el(\"h2\", \"ph-bg-d-title\", t.title || \"Untitled find\"));\n\n    var chips = el(\"div\", \"ph-bg-d-chips\");\n    var badge = badgeEl();\n    chips.appendChild(badge);\n    var dIdent = el(\"span\", \"ph-bg-ident\", \"UNIDENTIFIED\");\n    dIdent.title = \"Nobody has confirmed what this is yet\";\n    chips.appendChild(dIdent);\n    var db = el(\"span\", \"ph-bg-d-db ph-bg-db\");\n    db.setAttribute(\"data-ph-db\", \"1\");\n    db.hidden = true;\n    db.classList.add(\"is-empty\");\n    chips.appendChild(db);\n    var dVal = el(\"div\", \"ph-bg-value is-empty\", \"Unappraised\");\n    chips.appendChild(dVal);\n    panel.appendChild(chips);\n\n    var acts = el(\"div\", \"ph-bg-d-acts\");\n    var idBtn = el(\"button\", \"ph-bg-btn-identify\", \"Identify\");\n    idBtn.type = \"button\";\n    idBtn.title = \"Confirm whether the title names what this actually is\";\n    var apBtn = el(\"button\", \"ph-bg-btn-appraise\", \"Appraise\");\n    apBtn.type = \"button\";\n    apBtn.title = \"Set an appraised worth for this find\";\n    acts.appendChild(idBtn);\n    acts.appendChild(apBtn);\n    panel.appendChild(acts);\n\n    var userrow = el(\"div\", \"ph-bg-d-user\");\n    var u = finderOf(t, users || state.users);\n    var av = avatar(u, 64);\n    if (av){ var ai = document.createElement(\"img\"); ai.src = av; ai.alt = \"\"; userrow.appendChild(ai); }\n    var nw = el(\"span\", \"ph-bg-namewrap\");\n    nw.setAttribute(\"data-user\", (u && u.username) || \"\");\n    nw.appendChild(el(\"span\", \"ph-bg-user\", u ? u.username : \"crew\"));\n    sealFor(u && u.username, nw);\n    userrow.appendChild(nw);\n    userrow.appendChild(el(\"span\", \"ph-bg-d-ago\", timeAgo(t.created_at)));\n    panel.appendChild(userrow);\n\n    var specs = el(\"div\", \"ph-bg-d-specs\");\n    panel.appendChild(specs);\n    var story = el(\"div\", \"ph-bg-d-story\");\n    panel.appendChild(story);\n\n    var rateRow = el(\"div\", \"ph-bg-d-rate\");\n    rateRow.appendChild(el(\"div\", \"ph-bg-d-rh\", \"Rate this find\"));\n    var rgrid = el(\"div\", \"ph-bg-rp-grid\");\n    RARITY.forEach(function(r, i){\n      var b = el(\"button\", \"ph-bg-rp-b\");\n      b.type = \"button\";\n      b.style.setProperty(\"--r\", r.c);\n      b.setAttribute(\"data-tier\", String(i)); b.appendChild(el(\"span\", \"ph-bg-gem\"));\n      b.appendChild(el(\"span\", null, r.n));\n      b.addEventListener(\"click\", function(){ openRate(t, panel, badge, i + 1); });\n      rgrid.appendChild(b);\n    });\n    rateRow.appendChild(rgrid);\n    panel.appendChild(rateRow);\n\n    var thread = el(\"a\", \"ph-bg-d-thread\", \"Open the full thread\");\n    thread.href = topicUrl(t);\n    panel.appendChild(thread);\n\n    ov.appendChild(panel);\n    ov.addEventListener(\"click\", function(e){ if (e.target === ov) closeDetail(); });\n    document.body.appendChild(ov);\n    document.body.classList.add(\"ph-bg-detail-open\");\n\n    idBtn.addEventListener(\"click\", function(ev){ ev.preventDefault(); ev.stopPropagation(); openIdentify(t, panel, badge); });\n    apBtn.addEventListener(\"click\", function(ev){ ev.preventDefault(); ev.stopPropagation(); openAppraise(t, panel, badge); });\n\n    paintValue(dVal, valLoad(t.id) || \"\", t.id);\n    paintActs(panel, null, !!valLoad(t.id));\n\n    loadRarity(t.id, badge, panel, function(d){\n      hero.innerHTML = \"\";\n      var cooked = (d && d.cooked) || \"\";\n      var items = galleryFromCooked(cooked);\n      if (!items.length && t.image_url) items = [{ type: \"img\", url: t.image_url }];\n      if (!items.length){\n        hero.appendChild(el(\"div\", \"ph-bg-d-empty\", \"No media on this find yet.\"));\n      } else {\n        var main = el(\"div\", \"ph-bg-d-main\");\n        var thumbs = el(\"div\", \"ph-bg-d-thumbs\");\n        function show(it){\n          main.innerHTML = \"\";\n          if (it.type === \"vid\"){\n            var v = document.createElement(\"video\");\n            v.controls = true;\n            v.playsInline = true;\n            v.src = it.url;\n            main.appendChild(v);\n          } else {\n            var im = document.createElement(\"img\");\n            im.src = it.url;\n            im.alt = t.title || \"\";\n            main.appendChild(im);\n          }\n        }\n        show(items[0]);\n        items.forEach(function(it, i){\n          var th = el(\"button\", \"ph-bg-d-thumb\" + (i === 0 ? \" on\" : \"\"));\n          th.type = \"button\";\n          if (it.type === \"vid\") th.textContent = \"▶\";\n          else {\n            var tim = document.createElement(\"img\");\n            tim.src = it.url;\n            tim.alt = \"\";\n            th.appendChild(tim);\n          }\n          th.addEventListener(\"click\", function(){\n            thumbs.querySelectorAll(\".ph-bg-d-thumb\").forEach(function(x){ x.classList.remove(\"on\"); });\n            th.classList.add(\"on\");\n            show(it);\n          });\n          thumbs.appendChild(th);\n        });\n        hero.appendChild(main);\n        if (items.length > 1) hero.appendChild(thumbs);\n      }\n      var fields = parseFields((d && (d.raw || d.cooked)) || \"\");\n      specs.innerHTML = \"\";\n      [[\"What it might be\", fields.reckon], [\"Gear used\", fields.gear], [\"Where & when\", fields.where]].forEach(function(row){\n        if (!row[1]) return;\n        var box = el(\"div\", \"ph-bg-d-spec\");\n        box.appendChild(el(\"div\", \"ph-bg-d-sk\", row[0]));\n        box.appendChild(el(\"div\", \"ph-bg-d-sv\", row[1]));\n        specs.appendChild(box);\n      });\n      if (fields.value){\n        var vb = el(\"div\", \"ph-bg-d-spec\");\n        vb.appendChild(el(\"div\", \"ph-bg-d-sk\", \"Appraised value\"));\n        vb.appendChild(el(\"div\", \"ph-bg-d-sv\", fields.value));\n        specs.appendChild(vb);\n      }\n      story.innerHTML = \"\";\n      if (fields.story){\n        story.appendChild(el(\"div\", \"ph-bg-d-sh\", \"The story\"));\n        var stEl = el(\"div\", \"ph-bg-d-st\", \"\");\n        String(fields.story).split(/\\n\\n+/).forEach(function(para){\n          var p = String(para || \"\").replace(/\\s+/g, \" \").trim();\n          if (!p) return;\n          var pe = document.createElement(\"p\");\n          pe.textContent = p;\n          stEl.appendChild(pe);\n        });\n        if (!stEl.childNodes.length) stEl.textContent = fields.story;\n        story.appendChild(stEl);\n      }\n    });\n  }\n  function closeDetail(){\n    var e = document.querySelector(\".ph-bg-detail\");\n    if (e) e.remove();\n    document.body.classList.remove(\"ph-bg-detail-open\");\n  }\n  document.addEventListener(\"keydown\", function(ev){\n    if (ev.key === \"Escape\"){ closeDetail(); closeRate(); closeIdentify(); closeAppraise(); closeComposer(); }\n  });\n\n  /* ---------- COMPOSER ---------- */\n  var BC_CSS = \".ph-bc{font-family:var(--ph-f-body,Georgia,serif);color:var(--ph-t-ink,#e8e0cf)}.ph-bc-bar{display:flex;justify-content:space-between;align-items:center;margin:2px 0 8px}.ph-bc-title{color:var(--ph-t-title,#f0c75e);font-family:var(--ph-f-head,Georgia,serif);font-weight:800;letter-spacing:.5px}.ph-bc-seg{display:inline-flex;background:var(--ph-well,#121a14);border:1px solid var(--ph-line,#3a4a34);border-radius:999px;padding:3px}.ph-bc-seg button{background:transparent;border:0;color:var(--ph-t-meta,#9fb096);font:inherit;font-size:12px;font-weight:700;padding:6px 14px;border-radius:999px;cursor:pointer}.ph-bc-seg button.on{background:var(--ph-hi,#2c3a28);color:var(--ph-t-title,#f0c75e)}.ph-bc-hint{color:var(--ph-t-meta,#9fb096);font-size:12.5px;font-style:italic;margin-bottom:10px}.ph-bc-media{padding:10px 12px;background:var(--ph-stone,#121a14);border:1px solid var(--ph-line,#3a4a34);border-radius:12px;margin-bottom:12px}.ph-bc-mlbl{display:block;color:var(--ph-t-title,#f0c75e);font-weight:800;font-size:10px;letter-spacing:1px;text-transform:uppercase;margin-bottom:8px}.ph-bc-count{color:var(--ph-t-meta,#9fb096);font-size:11.5px;margin-top:8px;font-style:italic}.ph-bc-file{display:none}.ph-bc-thumbs{display:flex;gap:8px;flex-wrap:wrap}.ph-bc-th{position:relative;width:62px;height:62px;border-radius:8px;overflow:hidden;border:1px solid var(--ph-line,#3a4a34);background:var(--ph-hi,#0e140f);cursor:pointer}.ph-bc-th img{width:100%;height:100%;object-fit:cover}.ph-bc-th.on{border-color:var(--ph-metal,#c9a227);box-shadow:0 0 0 2px rgba(201,162,39,.32)}.ph-bc-thv{display:flex;align-items:center;justify-content:center;height:100%;color:var(--ph-t-title,#f0c75e);font-size:20px}.ph-bc-thx{position:absolute;right:2px;top:2px;width:18px;height:18px;line-height:15px;text-align:center;border-radius:50%;border:0;background:rgba(0,0,0,.66);color:#fff;cursor:pointer;font-size:13px;padding:0}.ph-bc-stage{display:flex;justify-content:center}.ph-bc-card{width:100%;max-width:560px;background:linear-gradient(var(--ph-stone,#121a14),var(--ph-well,#0d130e));border:1px solid var(--ph-metal,#c9a227);border-radius:16px;overflow:hidden;box-shadow:0 14px 46px rgba(0,0,0,.5);transition:max-width .2s}.ph-bc-card.mob{max-width:360px}.ph-bc-top{display:flex;justify-content:space-between;align-items:center;padding:11px 13px}.ph-bc-badge{border-radius:8px;padding:4px 10px;font-size:12px;font-weight:700}.ph-bc-badge.cat{background:var(--ph-hi,#20301c);color:var(--ph-t-title,#f0c75e);border:1px solid var(--ph-line,#3f5a34)}.ph-bc-badge.adv{background:transparent;color:var(--ph-t-meta,#9fb096);border:1px solid var(--ph-line,#3a4a34);text-transform:uppercase;letter-spacing:.6px;font-size:11px}.ph-bc-hero{position:relative;margin:0 13px;border-radius:12px;overflow:hidden;border:1px solid var(--ph-line,#3a4a34);background:repeating-linear-gradient(45deg,var(--ph-hi,#0e140f),var(--ph-hi,#0e140f) 12px,var(--ph-well,#0c120d) 12px,var(--ph-well,#0c120d) 24px);min-height:250px;display:flex;align-items:center;justify-content:center;cursor:pointer}.ph-bc-hero.drag{border-color:var(--ph-metal,#c9a227)}.ph-bc-cover{position:absolute;inset:0;background-size:cover;background-position:center}.ph-bc-droph{position:relative;text-align:center;padding:18px;pointer-events:none;z-index:1}.ph-bc-droph b{display:block;color:var(--ph-t-title,#f0c75e);font-size:15px}.ph-bc-droph span{display:block;color:var(--ph-t-meta,#9fb096);font-size:12px;margin-top:5px;max-width:300px}.ph-bc-tier{position:absolute;right:10px;top:10px;border-radius:8px;padding:5px 10px;font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase;background:rgba(0,0,0,.62);border:1px solid #6b7480;color:#9ba1a8;z-index:2}.ph-bc-titlezone{padding:15px 15px 2px;cursor:text}.ph-bc-titlezone input{width:100%;background:transparent;border:0;border-bottom:1px dashed var(--ph-line,#3a4a34);color:var(--ph-t-ink,#fff);font-family:var(--ph-f-head,Georgia,serif);font-size:22px;font-weight:800;line-height:1.3;padding:2px 0 7px;outline:none}.ph-bc-titlezone input::placeholder{color:var(--ph-t-meta,#5f6f57);opacity:.7;font-style:italic;font-weight:600;font-size:17px}.ph-bc-tagline{padding:7px 15px 4px;color:var(--ph-t-meta,#9fb096);font-size:13px}.ph-bc-tiles{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:10px 15px}.ph-bc-card.mob .ph-bc-tiles{grid-template-columns:1fr}.ph-bc-tile{background:var(--ph-hi,#0e140f);border:1px solid var(--ph-line,#3a4a34);border-radius:10px;padding:9px 11px;min-height:52px;cursor:text}.ph-bc-tile.wide{grid-column:1 / -1}.ph-bc-k{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--ph-t-title,#c9a227);font-weight:800;margin-bottom:5px}.ph-bc-in{width:100%;background:transparent;border:0;color:var(--ph-t-ink,#e8e0cf);font:inherit;font-size:14px;outline:none;padding:0}.ph-bc-in::placeholder{color:var(--ph-t-meta,#5f6f57);opacity:.7;font-style:italic}.ph-bc-story{margin:6px 15px 4px;padding:13px;background:var(--ph-hi,#0e140f);border:1px solid var(--ph-line,#3a4a34);border-radius:12px;cursor:text}textarea.ph-bc-in{min-height:96px;resize:vertical;line-height:1.5;font-size:15px}.ph-bc-gems{margin:10px 15px;padding:11px 13px;background:var(--ph-hi,#0e140f);border:1px solid var(--ph-line,#3a4a34);border-radius:12px;text-align:center}.ph-bc-gemrow{display:flex;gap:9px;justify-content:center;margin:8px 0}.ph-bc-gem{width:17px;height:17px;border-radius:4px;transform:rotate(45deg);border:1px solid var(--ph-line,#3a4a34)}.ph-bc-gemnote{color:var(--ph-t-meta,#9fb096);font-size:11.5px;font-style:italic;line-height:1.5}.ph-bc-note{margin:11px 15px 14px;padding:11px 13px;background:rgba(0,0,0,.22);border:1px solid var(--ph-line,#234a2f);border-radius:10px;color:var(--ph-t-meta,#bfe0c8);font-size:12px;line-height:1.5}.ph-bc-err{color:#ff8f7a;font-size:13px;min-height:18px;padding:6px 2px 0}.ph-bc-cta{display:flex;justify-content:flex-end;gap:10px;padding:8px 2px 2px}.ph-bc-btn{border:0;border-radius:10px;padding:10px 20px;font:inherit;font-weight:800;cursor:pointer}.ph-bc-btn.ghost{background:var(--ph-hi,#22301e);color:var(--ph-t-meta,#9fb096)}.ph-bc-btn.go{background:linear-gradient(var(--ph-gold-hi,#c9a227),#8a6d12);color:#1a1206}.ph-bc-btn[disabled]{opacity:.6;cursor:default}.ph-bg-panel.ph-bc-panel{max-width:700px;width:min(94vw,700px)}\";\n  function bcCss(){\n    if (document.getElementById(\"ph-bc-style\")) return;\n    var s = document.createElement(\"style\");\n    s.id = \"ph-bc-style\";\n    s.textContent = BC_CSS;\n    document.head.appendChild(s);\n  }\n  function openComposer(){\n    if (document.querySelector(\".ph-bg-modal\")) return;\n    bcCss();\n    var BC_TC = [\"#9ba1a8\",\"#f5f3ee\",\"#4bbf5a\",\"#3b8dd6\",\"#a95cd6\",\"#ff8000\",\"#c8102e\"];\n    var BC_TN = [\"Junk\",\"Common\",\"Uncommon\",\"Rare\",\"Epic\",\"Legendary\",\"Mythical\"];\n\n    var ov = el(\"div\", \"ph-bg-modal\");\n    var panel = el(\"div\", \"ph-bg-panel ph-bc-panel\");\n    var h = el(\"div\", \"ph-bg-p-head\");\n    h.appendChild(el(\"div\", \"ph-bg-p-title\", \"Add Booty\"));\n    var x = el(\"button\", \"ph-bg-p-x\", \"×\");\n    x.type = \"button\";\n    x.addEventListener(\"click\", closeComposer);\n    h.appendChild(x);\n    panel.appendChild(h);\n\n    var cv = el(\"div\", \"ph-bc\");\n    panel.appendChild(cv);\n\n    var bar = el(\"div\", \"ph-bc-bar\");\n    bar.appendChild(el(\"span\", \"ph-bc-title\", \"Find Canvas\"));\n    var seg = el(\"span\", \"ph-bc-seg\");\n    var segD = el(\"button\", \"on\", \"Desktop\");\n    segD.type = \"button\";\n    var segM = el(\"button\", null, \"Mobile\");\n    segM.type = \"button\";\n    seg.appendChild(segD);\n    seg.appendChild(segM);\n    bar.appendChild(seg);\n    cv.appendChild(bar);\n    cv.appendChild(el(\"div\", \"ph-bc-hint\", \"Click any part of the card below to fill it in. What you type is exactly what the crew will see hanging in the gallery.\"));\n\n    var media = el(\"div\", \"ph-bc-media\");\n    media.appendChild(el(\"span\", \"ph-bc-mlbl\", \"Photos and video\"));\n    var inp = document.createElement(\"input\");\n    inp.type = \"file\";\n    inp.accept = \"image/*,video/*\";\n    inp.multiple = true;\n    inp.className = \"ph-bc-file\";\n    media.appendChild(inp);\n    var thumbs = el(\"div\", \"ph-bc-thumbs\");\n    media.appendChild(thumbs);\n    var count = el(\"div\", \"ph-bc-count\", \"No files yet. The first photo is the one that hangs on the wall.\");\n    media.appendChild(count);\n    cv.appendChild(media);\n\n    var stage = el(\"div\", \"ph-bc-stage\");\n    var card = el(\"div\", \"ph-bc-card\");\n    stage.appendChild(card);\n    cv.appendChild(stage);\n\n    var top = el(\"div\", \"ph-bc-top\");\n    var catBadge = el(\"span\", \"ph-bc-badge cat\", \"General Booty Gallery\"); catBadge.id = \"phBcCatBadge\"; top.appendChild(catBadge);\n    top.appendChild(el(\"span\", \"ph-bc-badge adv\", \"Booty Gallery find\"));\n    card.appendChild(top);\n\n    var hero = el(\"div\", \"ph-bc-hero\");\n    var cover = el(\"div\", \"ph-bc-cover\");\n    cover.style.display = \"none\";\n    hero.appendChild(cover);\n    var droph = el(\"div\", \"ph-bc-droph\");\n    var dhb = document.createElement(\"b\");\n    dhb.textContent = \"Click to add your photos\";\n    droph.appendChild(dhb);\n    var dhs = document.createElement(\"span\");\n    dhs.textContent = \"the first one is the image the crew sees first. You can drag them straight in here.\";\n    droph.appendChild(dhs);\n    hero.appendChild(droph);\n    var tier = el(\"span\", \"ph-bc-tier\", \"Unrated\");\n    hero.appendChild(tier);\n    card.appendChild(hero);\n\n    var tz = el(\"div\", \"ph-bc-titlezone\");\n    var fTitle = document.createElement(\"input\");\n    fTitle.type = \"text\";\n    fTitle.placeholder = \"Name your find, e.g. Bronze Roman fibula\";\n    tz.appendChild(fTitle);\n    tz.addEventListener(\"click\", function(){ fTitle.focus(); });\n    card.appendChild(tz);\n\n    card.appendChild(el(\"div\", \"ph-bc-tagline\", \"Fresh from the dirt. The crew rates it with the seven gems once it is up.\"));\n\n    var tiles = el(\"div\", \"ph-bc-tiles\");\n    card.appendChild(tiles);\n    function tile(k, ph, wide){\n      var t = el(\"div\", \"ph-bc-tile\" + (wide ? \" wide\" : \"\"));\n      t.appendChild(el(\"span\", \"ph-bc-k\", k));\n      var i = document.createElement(\"input\");\n      i.type = \"text\";\n      i.className = \"ph-bc-in\";\n      i.placeholder = ph;\n      t.appendChild(i);\n      t.addEventListener(\"click\", function(){ i.focus(); });\n      tiles.appendChild(t);\n      return i;\n    }\n    function roomTile(){\n      var t = el(\"div\", \"ph-bc-tile\");\n      t.appendChild(el(\"span\", \"ph-bc-k\", \"Which room\"));\n      var s = document.createElement(\"select\");\n      s.className = \"ph-bc-in\"; s.id = \"phBcRoom\";\n      var kids = [], n, q;\n      try {\n        var pre = document.getElementById(\"data-preloaded\");\n        var wrap = pre ? JSON.parse((pre.getAttribute(\"data-preloaded\")||pre.textContent||\"\")) : null;\n        var site = wrap && wrap.site ? JSON.parse(wrap.site) : null;\n        var cats = (site && site.categories) || [];\n        for (n = 0; n < cats.length; n++){ if (cats[n].parent_category_id === 7 && cats[n].id !== 19) kids.push(cats[n]); }\n      } catch (e) {}\n      kids.sort(function(a, b){ return ((a.position || 0) - (b.position || 0)) || (a.id - b.id); });\n      for (q = 0; q < kids.length; q++){\n        var o = document.createElement(\"option\");\n        o.value = String(kids[q].id);\n        o.textContent = kids[q].name;\n        s.appendChild(o);\n      }\n      if (!kids.length){ var d = document.createElement(\"option\"); d.value = \"226\"; d.textContent = \"General Booty Gallery\"; s.appendChild(d); }\n      s.value = \"226\";\n      function syncBadge(){ var b = document.getElementById(\"phBcCatBadge\"); if (b && s.options[s.selectedIndex]) b.textContent = s.options[s.selectedIndex].textContent; }\n      s.addEventListener(\"change\", syncBadge);\n      setTimeout(syncBadge, 0);\n      t.appendChild(s);\n      tiles.appendChild(t);\n      return s;\n    }\n    roomTile();\n    var fIs = tile(\"What I reckon it is\", \"Your best guess at what it is and its age\");\n    var fGear = tile(\"Gear used\", \"Metal detector, dig site, dive spot\");\n    var fWhere = tile(\"Where and when\", \"County, beach, field, and roughly when\", true);\n\n    var story = el(\"div\", \"ph-bc-story\");\n    story.appendChild(el(\"span\", \"ph-bc-k\", \"The story\"));\n    var fStory = document.createElement(\"textarea\");\n    fStory.className = \"ph-bc-in\";\n    fStory.placeholder = \"How the find went down: the hunt, the moment, the dirt.\";\n    story.appendChild(fStory);\n    story.addEventListener(\"click\", function(){ fStory.focus(); });\n    card.appendChild(story);\n\n    var gems = el(\"div\", \"ph-bc-gems\");\n    gems.appendChild(el(\"span\", \"ph-bc-k\", \"Gem rating\"));\n    var grow = el(\"div\", \"ph-bc-gemrow\");\n    for (var gi = 0; gi < 7; gi++){\n      var gp = el(\"span\", \"ph-bc-gem\");\n      gp.style.background = BC_TC[gi];\n      gp.style.opacity = \"0.3\";\n      gp.title = BC_TN[gi];\n      grow.appendChild(gp);\n    }\n    gems.appendChild(grow);\n    gems.appendChild(el(\"div\", \"ph-bc-gemnote\", \"Junk, Common, Uncommon, Rare, Epic, Legendary, Mythical. You do not rate your own find. The crew fills these in, and the average sits on your card with its tier badge.\"));\n    card.appendChild(gems);\n\n    card.appendChild(el(\"div\", \"ph-bc-note\", \"Only the name and one photo are needed. Everything else is optional, so put down what you know and leave the rest to the crew.\"));\n\n    var err = el(\"div\", \"ph-bc-err\");\n    cv.appendChild(err);\n\n    var cta = el(\"div\", \"ph-bc-cta\");\n    var cancel = el(\"button\", \"ph-bc-btn ghost\", \"Cancel\");\n    cancel.type = \"button\";\n    cancel.addEventListener(\"click\", closeComposer);\n    var submit = el(\"button\", \"ph-bc-btn go\", \"Hang it on the wall\");\n    submit.type = \"button\";\n    cta.appendChild(cancel);\n    cta.appendChild(submit);\n    cv.appendChild(cta);\n\n    segD.addEventListener(\"click\", function(){ card.classList.remove(\"mob\"); segD.classList.add(\"on\"); segM.classList.remove(\"on\"); });\n    segM.addEventListener(\"click\", function(){ card.classList.add(\"mob\"); segM.classList.add(\"on\"); segD.classList.remove(\"on\"); });\n\n    var files = [];\n    function paint(){\n      thumbs.innerHTML = \"\";\n      files.forEach(function(f, i){\n        var th = el(\"div\", \"ph-bc-th\" + (i === 0 ? \" on\" : \"\"));\n        if (/video/.test(f.type)) th.appendChild(el(\"div\", \"ph-bc-thv\", \"▶\"));\n        else {\n          var im = document.createElement(\"img\");\n          im.src = f.__bcu;\n          th.appendChild(im);\n        }\n        var rm = el(\"button\", \"ph-bc-thx\", \"×\");\n        rm.type = \"button\";\n        rm.addEventListener(\"click\", function(e){\n          e.stopPropagation();\n          var k = files.indexOf(f);\n          if (k > -1) files.splice(k, 1);\n          paint();\n        });\n        th.appendChild(rm);\n        th.title = \"Click to make this the cover\";\n        th.addEventListener(\"click\", function(){\n          var k = files.indexOf(f);\n          if (k > 0){ files.splice(k, 1); files.unshift(f); paint(); }\n        });\n        thumbs.appendChild(th);\n      });\n      count.textContent = files.length ? (files.length + \" of 12 files. The first photo is the one that hangs on the wall.\") : \"No files yet. The first photo is the one that hangs on the wall.\";\n      var first = files[0];\n      if (first && !/video/.test(first.type)){\n        cover.style.backgroundImage = \"url(\" + first.__bcu + \")\";\n        cover.style.display = \"block\";\n        droph.style.display = \"none\";\n      } else {\n        cover.style.display = \"none\";\n        droph.style.display = \"block\";\n      }\n    }\n    function addFiles(list){\n      Array.prototype.forEach.call(list, function(f){\n        if (files.length >= 12) return;\n        try { f.__bcu = URL.createObjectURL(f); } catch(e){}\n        files.push(f);\n      });\n      paint();\n    }\n    inp.addEventListener(\"change\", function(){ addFiles(inp.files); });\n    hero.addEventListener(\"click\", function(){ inp.click(); });\n    [\"dragover\", \"dragenter\"].forEach(function(ev){ hero.addEventListener(ev, function(e){ e.preventDefault(); hero.classList.add(\"drag\"); }); });\n    [\"dragleave\", \"dragend\"].forEach(function(ev){ hero.addEventListener(ev, function(e){ e.preventDefault(); hero.classList.remove(\"drag\"); }); });\n    hero.addEventListener(\"drop\", function(e){\n      e.preventDefault();\n      hero.classList.remove(\"drag\");\n      if (e.dataTransfer && e.dataTransfer.files) addFiles(e.dataTransfer.files);\n    });\n\n    submit.addEventListener(\"click\", function(){\n      err.textContent = \"\";\n      var title = (fTitle.value || \"\").trim();\n      if (title.length < 3){ err.textContent = \"Give your find a name (at least 3 characters).\"; return; }\n      if (!files.length){ err.textContent = \"Add at least one photo or video of the find.\"; return; }\n      submit.disabled = true;\n      submit.textContent = \"Hoisting it up…\";\n      uploadAll(files, function(uploads, upErr){\n        if (upErr || !uploads.length){\n          err.textContent = \"Upload failed: \" + (upErr || \"no files\");\n          submit.disabled = false;\n          submit.textContent = \"Hang it on the wall\";\n          return;\n        }\n        var mediaMd = uploads.map(function(u){\n          var isV = VIDEXT.test(u.original_filename || \"\") || /video/.test(u.extension || \"\");\n          var nm = (u.original_filename || \"find\").replace(/[\\[\\]]/g, \"\");\n          return isV ? (\"![\" + nm + \"|video](\" + u.short_url + \")\") : (\"![\" + nm + \"](\" + u.short_url + \")\");\n        }).join(\"\\n\\n\");\n        var det = [];\n        if (fIs.value.trim()) det.push(\"**What I reckon it is:** \" + fIs.value.trim());\n        if (fGear.value.trim()) det.push(\"**Gear used:** \" + fGear.value.trim());\n        if (fWhere.value.trim()) det.push(\"**Where / when:** \" + fWhere.value.trim());\n        var raw = mediaMd + \"\\n\\n\";\n        if (det.length) raw += det.join(\"\\n\") + \"\\n\\n\";\n        if (fStory.value.trim()) raw += fStory.value.trim() + \"\\n\\n\";\n        raw += \"---\\n\\n*Crew: rate this find with the seven gems on its card in the Booty Gallery.*\\n\";\n        createTopic(title, raw, function(res, cErr){\n          if (cErr || !res){\n            err.textContent = \"Could not post: \" + (cErr || \"error\");\n            submit.disabled = false;\n            submit.textContent = \"Hang it on the wall\";\n            return;\n          }\n          closeComposer();\n          cacheByCat = {};\n          pollCache = {};\n          state.shown = (state.limitPref === \"all\") ? PAGE : state.limitPref;\n          refillAll(true);\n          if (res.topic_id){\n            var stub = { id: res.topic_id, slug: res.topic_slug || \"topic\", title: title, created_at: new Date().toISOString(), posters: [], image_url: null };\n            openDetail(stub, state.users);\n          }\n        });\n      });\n    });\n\n    ov.appendChild(panel);\n    ov.addEventListener(\"click\", function(e){ if (e.target === ov) closeComposer(); });\n    document.body.appendChild(ov);\n  }\n  function closeComposer(){ var m = document.querySelector(\".ph-bg-modal\"); if (m) m.remove(); }\n\n  function uploadAll(files, cb){\n    var out = [], done = 0, hadErr = null, i = 0, active = 0, MAX = 2;\n    function next(){\n      while (active < MAX && i < files.length){\n        var f = files[i++];\n        active++;\n        (function(f){\n          var fd = new FormData();\n          fd.append(\"type\", \"composer\");\n          fd.append(\"synchronous\", \"1\");\n          fd.append(\"file\", f);\n          fetch(\"/uploads.json\", {\n            method: \"POST\",\n            headers: { \"X-CSRF-Token\": csrf(), \"X-Requested-With\": \"XMLHttpRequest\" },\n            body: fd\n          }).then(function(r){ return r.json(); }).then(function(j){\n            if (j && j.short_url) out.push(j);\n            else hadErr = (j && j.errors && j.errors[0]) || \"upload error\";\n            fin();\n          }).catch(function(e){ hadErr = e.message; fin(); });\n        })(f);\n      }\n    }\n    function fin(){\n      active--;\n      done++;\n      if (done >= files.length) cb(out, hadErr);\n      else next();\n    }\n    next();\n  }\n\n  function createTopic(title, raw, cb){\n    var __sel = document.getElementById(\"phBcRoom\");\n    var __cat = __sel ? (parseInt(__sel.value, 10) || POST_CAT) : POST_CAT;\n    fetch(\"/posts.json\", {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\", \"X-CSRF-Token\": csrf(), \"X-Requested-With\": \"XMLHttpRequest\" },\n      body: JSON.stringify({ title: title, raw: raw, category: __cat, tags: [\"find\"], archetype: \"regular\" })\n    }).then(function(r){ return r.json(); }).then(function(j){\n      if (j && (j.id || j.post_number)) cb({ topic_id: j.topic_id, topic_slug: j.topic_slug });\n      else cb(null, (j && j.errors && j.errors[0]) || \"post rejected\");\n    }).catch(function(e){ cb(null, e.message); });\n  }\n\n  /* ---------- MOUNT ---------- */\n  function bgRemnants(){\n    return !!(document.getElementById(\"ph-bg-deck-root\")\n      || document.querySelector(\".ph-bg-wall\")\n      || document.querySelector(\".ph-bg-detail\")\n      || document.getElementById(\"phBgReview\")\n      || document.body.classList.contains(\"ph-bg-on\")\n      || document.body.classList.contains(\"ph-bg-detail-open\"));\n  }\n  function build(){\n    /* r354i — off-route must NOT teardown on every MutationObserver tick.\n       Old path called teardown() site-wide whenever TV/HUD rewrote a text\n       node, which vibrated Briny Deep and flashed the header icons. */\n    if (!onBooty()){\n      if (bgRemnants()) teardown();\n      return;\n    }\n    var outlet = document.querySelector(\"#main-outlet\");\n    if (!outlet) return;\n    if (document.getElementById(\"ph-bg-deck-root\") && document.querySelector('.ph-sc-cat[data-scope=\"bg\"]') && document.querySelector(\".ph-bg-deck\")) return;\n    teardown(true);\n    var anchorList = document.querySelector(\"#main-outlet .container.list-container\");\n    building = true;\n    state.limitPref = loadBgLimit();\n    state.shown = (state.limitPref === \"all\") ? PAGE : state.limitPref;\n\n    var root = el(\"div\");\n    root.id = \"ph-bg-deck-root\";\n\n    var head = el(\"div\", \"ph-bg-head\");\n    var tb = el(\"div\", \"ph-bg-titlebar\");\n    var row = el(\"div\", \"ph-bg-title-row\");\n    row.appendChild(el(\"span\", \"ph-bg-glyph\"));\n    row.appendChild(el(\"span\", \"ph-bg-brand\", \"The Booty Gallery\"));\n    tb.appendChild(row);\n    tb.appendChild(el(\"div\", \"ph-bg-showtitle\", \"The Treasure Room\"));\n    head.appendChild(tb);\n    var sub = el(\"div\", \"ph-bg-subline\");\n    sub.appendChild(el(\"div\", \"ph-bg-subtxt\", \"The ship's hoard thrown open. Post your finds, and the crew rates their rarity.\"));\n    var post = el(\"button\", \"ph-bg-post\", \"Add Booty\");\n    post.type = \"button\";\n    post.addEventListener(\"click\", openComposer);\n    phTip(post, \"bg-post\");\n    sub.appendChild(post);\n    head.appendChild(sub);\n    root.appendChild(head);\n\n    var sc = el(\"div\", \"ph-sc-cat ph-bg-scroller\");\n    sc.setAttribute(\"data-scope\", \"bg\");\n    var sch = el(\"div\", \"ph-sc-head\");\n    var live = el(\"span\", \"ph-sc-live\");\n    live.appendChild(el(\"i\"));\n    live.appendChild(document.createTextNode(\"FRESH FROM THE DIRT\"));\n    sch.appendChild(live);\n    sc.appendChild(sch);\n    var view = el(\"div\", \"ph-sc-view\");\n    view.appendChild(el(\"div\", \"ph-sc-track\"));\n    sc.appendChild(view);\n    root.appendChild(sc);\n\n    var deck = el(\"div\", \"ph-bg-deck\");\n    var chips = el(\"div\", \"ph-bg-chips\");\n    CHIP_ORDER.forEach(function(id){\n      var ch = el(\"span\", \"ph-bg-chip\" + (state.cat === id ? \" on\" : \"\"));\n      var lab = document.createElement(\"span\");\n      lab.textContent = id ? ((CATS[id].e || \"\") + \" \" + CATS[id].n) : \"All booty\";\n      ch.appendChild(lab);\n      phTip(ch, \"bg-chip\");\n      ch.addEventListener(\"click\", function(){\n        /* Shelf chips open the room so its atlas panel can mount.\n           All booty returns to parent [7] / Crowning Floor. Staying on the\n           parent and only filtering left every shelf on Crowning Floor. */\n        var here = 0;\n        try {\n          var ms = String(location.pathname || \"\").match(/\\/(\\d+)/g);\n          if (ms && ms.length) here = Number(ms[ms.length - 1].slice(1)) || 0;\n        } catch (eHere) {}\n        var want = id ? id : PARENT_CAT;\n        if (want && want !== here && CATS[want] && CATS[want].s) {\n          var pSlug = (CATS[PARENT_CAT] && CATS[PARENT_CAT].s) || \"the-booty-gallery\";\n          var href = want === PARENT_CAT\n            ? \"/c/\" + pSlug + \"/\" + PARENT_CAT\n            : \"/c/\" + pSlug + \"/\" + CATS[want].s + \"/\" + want;\n          try {\n            if (window.DiscourseURL && DiscourseURL.routeTo) { DiscourseURL.routeTo(href); return; }\n          } catch (eRoute) {}\n          location.assign(href);\n          return;\n        }\n        state.cat = id;\n        chips.querySelectorAll(\".ph-bg-chip\").forEach(function(x){ x.classList.remove(\"on\"); });\n        ch.classList.add(\"on\");\n        state.shown = (state.limitPref === \"all\") ? PAGE : state.limitPref;\n        refillAll(true);\n      });\n      chips.appendChild(ch);\n    });\n    deck.appendChild(chips);\n    var bar = el(\"div\", \"ph-bg-bar\");\n    var search = el(\"input\", \"ph-bg-search\");\n    search.type = \"search\";\n    search.placeholder = \"Search the finds…\";\n    search.setAttribute(\"aria-label\", \"Search the finds\");\n    phTip(search, \"bg-search\");\n    search.addEventListener(\"input\", function(){\n      state.q = search.value.trim();\n      state.shown = (state.limitPref === \"all\") ? PAGE : state.limitPref;\n      fillFeed(false);\n    });\n    bar.appendChild(search);\n    var sort = el(\"select\", \"ph-bg-sort-sel\");\n    [[\"new\", \"Newest\"], [\"views\", \"Most viewed\"], [\"az\", \"A → Z\"], [\"za\", \"Z → A\"]].forEach(function(o){\n      var op = document.createElement(\"option\");\n      op.value = o[0];\n      op.textContent = o[1];\n      sort.appendChild(op);\n    });\n    phTip(sort, \"bg-sort\");\n    sort.addEventListener(\"change\", function(){\n      state.sort = sort.value;\n      state.shown = (state.limitPref === \"all\") ? PAGE : state.limitPref;\n      fillFeed(false);\n    });\n    bar.appendChild(sort);\n    var lim = el(\"select\", \"ph-bg-limit-sel\");\n    lim.setAttribute(\"aria-label\", \"Tiles to show\");\n    lim.title = \"Pick how many booty tiles to show\";\n    LIMIT_OPTS.forEach(function(o){\n      var op = document.createElement(\"option\");\n      op.value = o[0];\n      op.textContent = o[1];\n      lim.appendChild(op);\n    });\n    lim.value = String(state.limitPref);\n    phTip(lim, \"bg-limit\");\n    lim.addEventListener(\"change\", function(){ setBgLimit(lim.value); });\n    bar.appendChild(lim);\n    deck.appendChild(bar);\n    deck.appendChild(el(\"div\", \"ph-bg-grid\"));\n    deck.appendChild(el(\"div\", \"ph-bg-more\"));\n    root.appendChild(deck);\n\n    if (anchorList && anchorList.parentNode){\n      anchorList.parentNode.insertBefore(root, anchorList);\n    } else {\n      outlet.appendChild(root);\n    }\n    document.body.classList.add(\"ph-bg-on\");\n    loadTrust();\n    refillAll(false);\n    building = false;\n  }\n\n  function teardown(soft){\n    if (!soft) document.body.classList.remove(\"ph-bg-on\");\n    closeRate();\n    closeComposer();\n    closeDetail();\n    var root = document.getElementById(\"ph-bg-deck-root\");\n    if (root && root.parentNode) root.parentNode.removeChild(root);\n    [\".ph-bg-wall\"].forEach(function(s){\n      var e = document.querySelector(s);\n      if (e && e.parentNode) e.parentNode.removeChild(e);\n    });\n  }\n\n  /* ---------- HOMEPAGE SCROLLER ----------\n     The Gallery's own scroller also runs on the front page, directly under the\n     Bazaar and Deck showcase. It reuses fetchFinds and fillScroller, so it can\n     never drift from the one on the Gallery page: same cards, same order, same\n     source. It is only the scroller, not the board. */\n  function onHome(){\n    var p = location.pathname.replace(/\\/+$/, '');\n    return p === '' || p === '/categories' || /^\\/(latest|top|hot|new|unread)$/.test(p);\n  }\n  function homeScroller(){\n    if (!onHome()){\n      var old = document.getElementById('ph-bg-home-scroller');\n      if (old && old.parentNode) { old.parentNode.removeChild(old); }\n      return;\n    }\n    var outlet = document.querySelector('#main-outlet');\n    if (!outlet) { return; }\n    var banner = null;\n    try {\n      for (var bi = 0; bi < outlet.children.length; bi++) {\n        var bk = outlet.children[bi];\n        if (bk.classList && bk.classList.contains('welcome-banner')) { banner = bk; break; }\n      }\n    } catch (eBan) {}\n    /* Banner stays at the very top of the home outlet; scroller rides under it. */\n    if (banner && outlet.firstElementChild !== banner) {\n      try { outlet.insertBefore(banner, outlet.firstElementChild); } catch (eMove) {}\n    }\n    var have = document.getElementById('ph-bg-home-scroller');\n    if (have) {\n      if (banner && banner.parentNode === outlet) {\n        if (banner.nextElementSibling !== have) { banner.after(have); }\n      }\n      return;\n    }\n    var sc = el('div', 'ph-sc-cat ph-bg-scroller');\n    sc.id = 'ph-bg-home-scroller';\n    sc.setAttribute('data-scope', 'bg-home');\n    /* No FRESH FROM THE DIRT title bar on the homepage copy — image strip only. */\n    var view = el('div', 'ph-sc-view');\n    view.appendChild(el('div', 'ph-sc-track'));\n    sc.appendChild(view);\n    if (banner && banner.parentNode === outlet) { banner.after(sc); }\n    else { outlet.insertBefore(sc, outlet.firstChild); }\n    fetchFinds(false).then(function(data){\n      if (document.body.contains(sc)) { fillScroller(sc, data); }\n    }).catch(function(){});\n  }\n\n  var tickPend = 0;\n  function tick(){\n    try { build(); } catch (e) {}\n    try { homeScroller(); } catch (e) {}\n  }\n  function schedTick(){\n    if (building || tickPend) return;\n    tickPend = setTimeout(function(){ tickPend = 0; tick(); }, 250);\n  }\n  try {\n    new MutationObserver(function(){ schedTick(); }).observe(document.body, { childList: true, subtree: true });\n  } catch (e) {}\n  setInterval(tick, 2000);\n  tick();\n  window.addEventListener(\"popstate\", function(){ cacheByCat = {}; });\n})();\n\n\n/* --- was script id=ph-booty-nav --- */\n\n(function(){\n  /* Superseded by PH-DECK-NAV r342 — no observers, no reorder (was flashing hover/titles). */\n  if (window.__phBootyNav) return;\n  window.__phBootyNav = \"v1-superseded-r342\";\n})();\n\n\n/* --- was script id=ph-deck-nav-r342 --- */\n\n(function(){\n  if (window.__phDeckNav && window.__phDeckNav !== \"r342\") return;\n  window.__phDeckNav = \"r342b\";\n  var EMOJI = \"/images/emoji/twitter/\";\n  var ORDER = [\n    { cls:\"ph-bazaar-nav\", href:\"/c/the-bazaar/14\", title:\"The Bazaar\", emoji:\"balance_scale.png\", ecls:\"ph-bz-emoji\", match:/\\/c\\/(the-bazaar|general-marketplace|used-gear|handmade|bazaar-|custom-rigs|esoterica|coins-and-ingots|marketplace)/i, body:/category-(the-bazaar|general-marketplace|used-gear|handmade-goods|bazaar-|custom-rigs|esoterica|coins-and-ingots)/ },\n    { cls:\"ph-booty-nav\", href:\"/c/the-booty-gallery/7\", title:\"The Booty Gallery\", emoji:\"trophy.png\", ecls:\"ph-bg-emoji\", match:/\\/c\\/(the-booty-gallery|general-booty|junk-fakes|common-finds|uncommon-finds|rare-finds|epic-finds|legendary-finds|mythical-finds|the-reliquary|the-grand-hoard|hall-of-legends|collectible-cards)/i, body:/category-(the-booty-gallery|general-booty|junk|common-finds|uncommon-finds|rare-finds|epic-finds|legendary-finds|mythical-finds|the-reliquary|the-grand-hoard|hall-of-legends)/ },\n    { cls:\"ph-reviews-nav\", href:\"/c/product-reviews/361\", title:\"Product Reviews\", emoji:\"ballot_box_with_check.png\", ecls:\"ph-pr-emoji\", match:/\\/c\\/(product-reviews|metal-detectors|coils-antennas|pinpointers|gear-locker)/i, body:/category-(product-reviews|metal-detectors|coils-antennas|pinpointers)/ },\n    { cls:\"ph-briny-nav\", href:\"/c/the-briny-deep/12\", title:\"The Briny Deep\", emoji:\"mermaid.png\", ecls:\"ph-bd-emoji\", match:/\\/c\\/(the-briny-deep|briny|cryptid|wreck|maritime)/i, body:/category-(the-briny-deep|briny|cryptid)/ },\n    { cls:\"ph-venture-nav\", href:\"/c/the-venture-deck/302\", title:\"The Venture Deck\", emoji:\"handshake.png\", ecls:\"ph-vn-emoji\", match:/\\/c\\/(the-venture-deck|expedition-support|product-development-support|cooperation-proposals|general-venture)/i, body:/category-(the-venture-deck|expedition-support|product-development|cooperation-proposals|general-venture)/ }\n  ];\n  var busy = false;\n  var lastSig = \"\";\n  function make(spec){\n    var a = document.createElement(\"a\");\n    a.className = spec.cls;\n    a.href = spec.href;\n    a.title = spec.title;\n    a.setAttribute(\"aria-label\", spec.title);\n    var im = document.createElement(\"img\");\n    im.className = spec.ecls;\n    im.src = EMOJI + spec.emoji + \"?v=15\";\n    im.alt = \"\";\n    a.appendChild(im);\n    return a;\n  }\n  function ensureGroup(bz){\n    var grp = document.querySelector(\".ph-pillgroup\");\n    if (!grp){\n      grp = document.createElement(\"span\");\n      grp.className = \"ph-pillgroup\";\n      if (bz.parentNode) bz.parentNode.insertBefore(grp, bz);\n      else return null;\n    }\n    return grp;\n  }\n  function orderOk(grp){\n    var kids = grp.children;\n    if (kids.length !== ORDER.length) return false;\n    for (var i = 0; i < ORDER.length; i++){\n      if (!kids[i] || !kids[i].classList || !kids[i].classList.contains(ORDER[i].cls)) return false;\n    }\n    return true;\n  }\n  function ensure(){\n    if (busy || document.documentElement.classList.contains(\"anon\")) return;\n    var bz = document.querySelector(\".ph-bazaar-nav\");\n    if (!bz) return;\n    busy = true;\n    try {\n      var grp = ensureGroup(bz);\n      if (!grp) return;\n      var path = location.pathname || \"\";\n      var body = (document.body && document.body.className) || \"\";\n      var needMove = !orderOk(grp);\n      ORDER.forEach(function(spec){\n        var a = document.querySelector(\"a.\" + spec.cls);\n        if (!a){\n          a = make(spec);\n          needMove = true;\n        } else {\n          /* Strip legacy title spans so they never flash. */\n          var txt = a.querySelector(\".ph-bz-txt, .ph-bg-txt, .ph-pr-txt, .ph-bd-txt, .ph-vn-txt\");\n          if (txt && txt.parentNode) txt.parentNode.removeChild(txt);\n        }\n        if (a.parentNode !== grp){ needMove = true; grp.appendChild(a); }\n        var on = spec.match.test(path) || spec.body.test(body);\n        if (on){ if (!a.classList.contains(\"is-on\")) a.classList.add(\"is-on\"); }\n        else if (a.classList.contains(\"is-on\")) a.classList.remove(\"is-on\");\n      });\n      if (needMove || !orderOk(grp)){\n        ORDER.forEach(function(spec){\n          var a = document.querySelector(\"a.\" + spec.cls);\n          if (a) grp.appendChild(a);\n        });\n      }\n      lastSig = path + \"|\" + ORDER.map(function(s){ return s.cls; }).join(\",\");\n    } finally {\n      busy = false;\n    }\n  }\n  var t = 0;\n  function kick(){\n    if (t) return;\n    t = setTimeout(function(){ t = 0; try { ensure(); } catch (e) {} }, 120);\n  }\n  window.addEventListener(\"load\", kick);\n  window.addEventListener(\"popstate\", kick);\n  /* Watch the header only — whole-document observers were re-firing on our own moves. */\n  function bind(){\n    var h = document.querySelector(\".d-header\") || document.body;\n    if (!h || h.__phDeckNavObs) return;\n    h.__phDeckNavObs = 1;\n    try {\n      new MutationObserver(function(muts){\n        if (busy) return;\n        for (var i = 0; i < muts.length; i++){\n          var m = muts[i];\n          if (m.target && m.target.closest && m.target.closest(\".ph-pillgroup\")) continue;\n          kick();\n          return;\n        }\n      }).observe(h, { childList:true, subtree:true });\n    } catch (e) {}\n  }\n  try { bind(); } catch (e) {}\n  setInterval(function(){\n    try {\n      bind();\n      var grp = document.querySelector(\".ph-pillgroup\");\n      if (!grp || !orderOk(grp) || !document.querySelector(\".ph-reviews-nav\") || !document.querySelector(\".ph-briny-nav\")) ensure();\n      else {\n        /* Soft active-state sync only — no DOM moves. */\n        var path = location.pathname || \"\";\n        var body = (document.body && document.body.className) || \"\";\n        ORDER.forEach(function(spec){\n          var a = document.querySelector(\"a.\" + spec.cls);\n          if (!a) return;\n          var on = spec.match.test(path) || spec.body.test(body);\n          if (on) a.classList.add(\"is-on\"); else a.classList.remove(\"is-on\");\n        });\n      }\n    } catch (e) {}\n  }, 2500);\n  if (document.readyState !== \"loading\") kick();\n  else document.addEventListener(\"DOMContentLoaded\", kick);\n})();\n\n\n/* --- was script id=anon-block-3 --- */\n\n/* PH-BG-SEL v1 (2026-07-25): converts the Booty Gallery native selects into the\n   shared .ph-sel control so the Bazaar, Booty Gallery and Venture Deck match.\n   The native select stays in the DOM as the state holder, so every existing\n   change listener in this theme keeps working untouched. */\n(function(){\n  if (window.__phBgSel) return; window.__phBgSel = 1;\n  function el(t,c){ var n=document.createElement(t); if(c) n.className=c; return n; }\n  function closeAll(except){ var ws=document.querySelectorAll(\".ph-bg-selwrap.open\");\n    for(var i=0;i<ws.length;i++){ if(ws[i]!==except) ws[i].classList.remove(\"open\"); } }\n  function label(sel){ var o=sel.options[sel.selectedIndex]; return o ? o.textContent : \"\"; }\n  function wrap(sel){\n    if (sel.__phSel) return false; sel.__phSel = 1;\n    var w = el(\"div\",\"ph-sel ph-bg-selwrap\");\n    var btn = el(\"button\",\"ph-sel-btn\"); btn.type=\"button\";\n    var i, a = sel.attributes;\n    for(i=0;i<a.length;i++){ var n=a[i].name;\n      if(n.indexOf(\"data-ph-\")===0 || n===\"aria-label\") btn.setAttribute(n,a[i].value); }\n    btn.textContent = label(sel);\n    var menu = el(\"div\",\"ph-sel-menu\"); menu.setAttribute(\"role\",\"listbox\");\n    for(i=0;i<sel.options.length;i++){ (function(op){\n      var o=el(\"div\",\"ph-sel-opt\"); o.setAttribute(\"role\",\"option\");\n      o.textContent=op.textContent; o.setAttribute(\"data-v\",op.value);\n      if(op.value===sel.value){ o.classList.add(\"on\"); o.setAttribute(\"aria-selected\",\"true\"); }\n      o.addEventListener(\"click\",function(ev){ ev.stopPropagation();\n        sel.value=op.value; btn.textContent=op.textContent;\n        var on=menu.querySelectorAll(\".ph-sel-opt.on\");\n        for(var k=0;k<on.length;k++){ on[k].classList.remove(\"on\"); on[k].removeAttribute(\"aria-selected\"); }\n        o.classList.add(\"on\"); o.setAttribute(\"aria-selected\",\"true\");\n        w.classList.remove(\"open\");\n        sel.dispatchEvent(new Event(\"change\",{bubbles:true}));\n      }); menu.appendChild(o); })(sel.options[i]); }\n    btn.addEventListener(\"click\",function(ev){ ev.stopPropagation();\n      var willOpen = !w.classList.contains(\"open\"); closeAll(w);\n      w.classList.toggle(\"open\", willOpen); });\n    sel.parentNode.insertBefore(w, sel);\n    w.appendChild(btn); w.appendChild(menu); w.appendChild(sel);\n    sel.addEventListener(\"change\",function(){ btn.textContent=label(sel); });\n    return true;\n  }\n  function ensure(){ var list=document.querySelectorAll(\".ph-bg-bar select, .ph-bg-more select\");\n    var n=0; for(var i=0;i<list.length;i++){ if(wrap(list[i])) n++; } return n; }\n  document.addEventListener(\"click\",function(){ closeAll(null); });\n  document.addEventListener(\"keydown\",function(e){ if(e.key===\"Escape\") closeAll(null); });\n  function kick(){ try{ ensure(); }catch(e){} }\n  if (window.__phBus) { window.__phBus.onRoute(kick); if (window.__phBus.onRender) window.__phBus.onRender(kick); window.__phBus.onTick(kick); }\n  else { setInterval(kick, 1000); }\n  if (document.readyState!==\"loading\") kick();\n  else document.addEventListener(\"DOMContentLoaded\", kick);\n})();\n\n\n/* --- was script id=anon-block-4 --- */\n\n/* Gem hover preview, driven in JS so the fill never depends on :has() support. */\n(function(){\n  var HV = [\"#9ba1a8\",\"#f5f3ee\",\"#4bbf5a\",\"#3b8dd6\",\"#a95cd6\",\"#ff8000\",\"#c8102e\"];\n  function clear(row){\n    if (!row) return;\n    row.classList.remove(\"ph-hvon\");\n    row.style.removeProperty(\"--hv\");\n    var g = row.children;\n    for (var i = 0; i < g.length; i++) g[i].classList.remove(\"hv\");\n  }\n  function paint(row, n){\n    row.style.setProperty(\"--hv\", HV[n - 1] || HV[0]);\n    row.classList.add(\"ph-hvon\");\n    var g = row.children;\n    for (var i = 0; i < g.length; i++){\n      if (i < n) g[i].classList.add(\"hv\"); else g[i].classList.remove(\"hv\");\n    }\n  }\n  document.addEventListener(\"mouseover\", function(e){\n    var t = e.target;\n    if (!t || !t.closest) return;\n    var row = t.closest(\".ph-bg-gems\");\n    var last = window.__phHvRow;\n    if (last && last !== row) { clear(last); window.__phHvRow = null; }\n    if (!row) return;\n    var gm = t.closest(\".ph-bg-gm\");\n    if (!gm || gm.parentElement !== row) { clear(row); window.__phHvRow = row; return; }\n    var n = parseInt(gm.getAttribute(\"data-g\"), 10);\n    if (!n) { clear(row); window.__phHvRow = row; return; }\n    paint(row, n);\n    window.__phHvRow = row;\n  }, true);\n  document.addEventListener(\"mouseout\", function(e){\n    var t = e.target;\n    if (!t || !t.closest) return;\n    var row = t.closest(\".ph-bg-gems\");\n    if (!row) return;\n    var to = e.relatedTarget;\n    if (to && to.nodeType === 1 && row.contains(to)) return;\n    clear(row);\n    if (window.__phHvRow === row) window.__phHvRow = null;\n  }, true);\n})();\n\n"],"mappings":"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","ignoreList":[]}