<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sankoquest.wiki/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SankoSeedBot</id>
	<title>SankoQuest Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://sankoquest.wiki/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SankoSeedBot"/>
	<link rel="alternate" type="text/html" href="https://sankoquest.wiki/wiki/Special:Contributions/SankoSeedBot"/>
	<updated>2026-07-04T03:29:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=MediaWiki:Common.js&amp;diff=443</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=MediaWiki:Common.js&amp;diff=443"/>
		<updated>2026-07-03T17:51:07Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(function () {&lt;br /&gt;
  var tip;&lt;br /&gt;
&lt;br /&gt;
  function showTip(target, event) {&lt;br /&gt;
    var title = target.getAttribute(&#039;data-minetip-title&#039;);&lt;br /&gt;
    if (!title) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (!tip) {&lt;br /&gt;
      tip = document.createElement(&#039;div&#039;);&lt;br /&gt;
      tip.className = &#039;sanko-minetip&#039;;&lt;br /&gt;
      document.body.appendChild(tip);&lt;br /&gt;
    }&lt;br /&gt;
    tip.textContent = title;&lt;br /&gt;
    tip.style.display = &#039;block&#039;;&lt;br /&gt;
    moveTip(event);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function moveTip(event) {&lt;br /&gt;
    if (!tip) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    tip.style.left = event.clientX + 14 + &#039;px&#039;;&lt;br /&gt;
    tip.style.top = event.clientY + 14 + &#039;px&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function hideTip() {&lt;br /&gt;
    if (tip) {&lt;br /&gt;
      tip.style.display = &#039;none&#039;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function wikiScriptUrl(title, params) {&lt;br /&gt;
    var url = new URL(&#039;/w/index.php&#039;, window.location.origin);&lt;br /&gt;
    url.searchParams.set(&#039;title&#039;, title);&lt;br /&gt;
    Object.keys(params || {}).forEach(function (key) {&lt;br /&gt;
      if (params[key]) {&lt;br /&gt;
        url.searchParams.set(key, params[key]);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    return url.toString();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function redirectCreateAccountToPrivy() {&lt;br /&gt;
    if (!window.mw || !mw.config || mw.config.get(&#039;wgCanonicalSpecialPageName&#039;) !== &#039;CreateAccount&#039;) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var params = new URLSearchParams(window.location.search);&lt;br /&gt;
    var returnTo = params.get(&#039;returnto&#039;) || &#039;Main Page&#039;;&lt;br /&gt;
    var returnToQuery = params.get(&#039;returntoquery&#039;) || &#039;&#039;;&lt;br /&gt;
    window.location.replace(wikiScriptUrl(&#039;Special:UserLogin&#039;, {&lt;br /&gt;
      returnto: returnTo,&lt;br /&gt;
      returntoquery: returnToQuery&lt;br /&gt;
    }));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function enhanceEditForAnon() {&lt;br /&gt;
    if (!window.mw || !mw.config) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var loggedIn = mw.user &amp;amp;&amp;amp; typeof mw.user.isAnon === &#039;function&#039;&lt;br /&gt;
      ? !mw.user.isAnon()&lt;br /&gt;
      : Boolean(mw.config.get(&#039;wgUserName&#039;));&lt;br /&gt;
    if (loggedIn) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var namespace = mw.config.get(&#039;wgNamespaceNumber&#039;);&lt;br /&gt;
    if (typeof namespace === &#039;number&#039; &amp;amp;&amp;amp; namespace &amp;lt; 0) {&lt;br /&gt;
      return; // Special/virtual pages have nothing to edit.&lt;br /&gt;
    }&lt;br /&gt;
    var loginHref = wikiScriptUrl(&#039;Special:UserLogin&#039;, {&lt;br /&gt;
      returnto: mw.config.get(&#039;wgPageName&#039;),&lt;br /&gt;
      returntoquery: &#039;action=edit&#039;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // 1) Always surface a clear &amp;quot;Edit&amp;quot; tab. Logged-out users get sent through&lt;br /&gt;
    //    Privy login and returned to the page in edit mode (no anon editing).&lt;br /&gt;
    var viewSource = document.getElementById(&#039;ca-viewsource&#039;);&lt;br /&gt;
    if (viewSource) {&lt;br /&gt;
      var vsLink = viewSource.querySelector(&#039;a&#039;);&lt;br /&gt;
      if (vsLink) {&lt;br /&gt;
        vsLink.setAttribute(&#039;href&#039;, loginHref);&lt;br /&gt;
        vsLink.setAttribute(&#039;title&#039;, &#039;Log in to edit this page&#039;);&lt;br /&gt;
        var vsLabel = vsLink.querySelector(&#039;span&#039;) || vsLink;&lt;br /&gt;
        vsLabel.textContent = &#039;Edit&#039;;&lt;br /&gt;
      }&lt;br /&gt;
    } else if (!document.getElementById(&#039;ca-edit&#039;) &amp;amp;&amp;amp; mw.util &amp;amp;&amp;amp; mw.util.addPortletLink) {&lt;br /&gt;
      mw.util.addPortletLink(&#039;p-views&#039;, loginHref, &#039;Edit&#039;, &#039;ca-edit&#039;, &#039;Log in to edit this page&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 2) On the edit / view-source page itself, add an explicit login call to action.&lt;br /&gt;
    var action = mw.config.get(&#039;wgAction&#039;);&lt;br /&gt;
    if ((action === &#039;edit&#039; || action === &#039;submit&#039;) &amp;amp;&amp;amp; !document.getElementById(&#039;sanko-edit-login-cta&#039;)) {&lt;br /&gt;
      var content = document.getElementById(&#039;mw-content-text&#039;);&lt;br /&gt;
      if (content) {&lt;br /&gt;
        var cta = document.createElement(&#039;div&#039;);&lt;br /&gt;
        cta.id = &#039;sanko-edit-login-cta&#039;;&lt;br /&gt;
        cta.className = &#039;sanko-edit-login-cta&#039;;&lt;br /&gt;
&lt;br /&gt;
        var copy = document.createElement(&#039;div&#039;);&lt;br /&gt;
        var heading = document.createElement(&#039;strong&#039;);&lt;br /&gt;
        heading.textContent = &#039;Log in to edit this page&#039;;&lt;br /&gt;
        var detail = document.createElement(&#039;p&#039;);&lt;br /&gt;
        detail.className = &#039;sanko-muted&#039;;&lt;br /&gt;
        detail.textContent = &amp;quot;Editing the wiki needs a free account. Sign in with Privy and you&#039;ll come straight back here to edit.&amp;quot;;&lt;br /&gt;
        copy.appendChild(heading);&lt;br /&gt;
        copy.appendChild(detail);&lt;br /&gt;
&lt;br /&gt;
        var loginLink = document.createElement(&#039;a&#039;);&lt;br /&gt;
        loginLink.className = &#039;sanko-button&#039;;&lt;br /&gt;
        loginLink.setAttribute(&#039;href&#039;, loginHref);&lt;br /&gt;
        loginLink.textContent = &#039;Log in with Privy&#039;;&lt;br /&gt;
&lt;br /&gt;
        cta.appendChild(copy);&lt;br /&gt;
        cta.appendChild(loginLink);&lt;br /&gt;
        content.insertBefore(cta, content.firstChild);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 3) Section-level [edit] links. MediaWiki omits these for users without edit&lt;br /&gt;
    //    rights and no config restores them (even Extension:Unregistered Edit Links&lt;br /&gt;
    //    skips sections), so add native-styled links next to each heading on the&lt;br /&gt;
    //    article view — each routes through login and back to that section&#039;s editor.&lt;br /&gt;
    if (action === &#039;view&#039;) {&lt;br /&gt;
      var sectionRoot = document.getElementById(&#039;mw-content-text&#039;);&lt;br /&gt;
      var headlines = sectionRoot ? sectionRoot.querySelectorAll(&#039;.mw-headline&#039;) : [];&lt;br /&gt;
      Array.prototype.forEach.call(headlines, function (headline, index) {&lt;br /&gt;
        var heading = headline.parentNode;&lt;br /&gt;
        if (!heading || heading.querySelector(&#039;.mw-editsection&#039;)) {&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
        var sectionHref = wikiScriptUrl(&#039;Special:UserLogin&#039;, {&lt;br /&gt;
          returnto: mw.config.get(&#039;wgPageName&#039;),&lt;br /&gt;
          returntoquery: &#039;action=edit&amp;amp;section=&#039; + (index + 1)&lt;br /&gt;
        });&lt;br /&gt;
        var wrap = document.createElement(&#039;span&#039;);&lt;br /&gt;
        wrap.className = &#039;mw-editsection&#039;;&lt;br /&gt;
        var open = document.createElement(&#039;span&#039;);&lt;br /&gt;
        open.className = &#039;mw-editsection-bracket&#039;;&lt;br /&gt;
        open.textContent = &#039;[&#039;;&lt;br /&gt;
        var sectionLink = document.createElement(&#039;a&#039;);&lt;br /&gt;
        sectionLink.setAttribute(&#039;href&#039;, sectionHref);&lt;br /&gt;
        sectionLink.setAttribute(&#039;title&#039;, &#039;Log in to edit this section&#039;);&lt;br /&gt;
        sectionLink.textContent = &#039;edit&#039;;&lt;br /&gt;
        var close = document.createElement(&#039;span&#039;);&lt;br /&gt;
        close.className = &#039;mw-editsection-bracket&#039;;&lt;br /&gt;
        close.textContent = &#039;]&#039;;&lt;br /&gt;
        wrap.appendChild(open);&lt;br /&gt;
        wrap.appendChild(sectionLink);&lt;br /&gt;
        wrap.appendChild(close);&lt;br /&gt;
        heading.appendChild(wrap);&lt;br /&gt;
      });&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function polishLoginChrome() {&lt;br /&gt;
    var loginButton = document.getElementById(&#039;mw-input-pluggableauthlogin0&#039;);&lt;br /&gt;
    if (loginButton) {&lt;br /&gt;
      loginButton.textContent = &#039;Log in with Privy&#039;;&lt;br /&gt;
      loginButton.value = &#039;Log in with Privy&#039;;&lt;br /&gt;
    }&lt;br /&gt;
    document.querySelectorAll(&#039;#pt-createaccount, #pt-createaccount-2, #mw-createaccount-cta&#039;).forEach(function (node) {&lt;br /&gt;
      node.remove();&lt;br /&gt;
    });&lt;br /&gt;
    // Header nav: keep it short as a compact &amp;quot;Log in&amp;quot; button. The full &amp;quot;Log in with Privy&amp;quot;&lt;br /&gt;
    // wording still shows on the login page CTA itself (loginButton above).&lt;br /&gt;
    document.querySelectorAll(&#039;#pt-login a span:last-child, #pt-login-2 a span:last-child&#039;).forEach(function (node) {&lt;br /&gt;
      node.textContent = &#039;Log in&#039;;&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var itemThumbsPromise;&lt;br /&gt;
&lt;br /&gt;
  function loadItemThumbnails() {&lt;br /&gt;
    if (!itemThumbsPromise) {&lt;br /&gt;
      itemThumbsPromise = fetch(&#039;/w/sanko-assets/sanko/item-thumbnails.json&#039;, {&lt;br /&gt;
        headers: { Accept: &#039;application/json&#039; }&lt;br /&gt;
      })&lt;br /&gt;
        .then(function (response) { return response.ok ? response.json() : {}; })&lt;br /&gt;
        .catch(function () { return {}; });&lt;br /&gt;
    }&lt;br /&gt;
    return itemThumbsPromise;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function itemThumbnailFor(title, thumbnails) {&lt;br /&gt;
    var normalized = String(title || &#039;&#039;).replace(/_/g, &#039; &#039;).trim();&lt;br /&gt;
    return thumbnails[normalized] || &#039;&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function imageUrl(relativePath) {&lt;br /&gt;
    return &#039;/w/sanko-assets/&#039; + String(relativePath || &#039;&#039;).replace(/^\/+/, &#039;&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderModelImages() {&lt;br /&gt;
    document.querySelectorAll(&#039;.sanko-model-render[data-sanko-render-image], .sanko-row-render[data-sanko-render-image]&#039;).forEach(function (container) {&lt;br /&gt;
      if (container.querySelector(&#039;img&#039;)) {&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      var relativePath = container.getAttribute(&#039;data-sanko-render-image&#039;);&lt;br /&gt;
      if (!relativePath) {&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      var img = document.createElement(&#039;img&#039;);&lt;br /&gt;
      img.src = imageUrl(relativePath);&lt;br /&gt;
      img.alt = container.getAttribute(&#039;data-sanko-render-alt&#039;) || &#039;&#039;;&lt;br /&gt;
      img.loading = &#039;lazy&#039;;&lt;br /&gt;
      container.appendChild(img);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function addSearchThumb(container, title, href, thumbnails) {&lt;br /&gt;
    if (!container || container.querySelector(&#039;.sanko-search-thumb&#039;)) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var relativePath = itemThumbnailFor(title, thumbnails);&lt;br /&gt;
    if (!relativePath) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var link = document.createElement(href ? &#039;a&#039; : &#039;span&#039;);&lt;br /&gt;
    link.className = &#039;sanko-search-thumb&#039;;&lt;br /&gt;
    if (href) {&lt;br /&gt;
      link.href = href;&lt;br /&gt;
    }&lt;br /&gt;
    var img = document.createElement(&#039;img&#039;);&lt;br /&gt;
    img.src = imageUrl(relativePath);&lt;br /&gt;
    img.alt = &#039;&#039;;&lt;br /&gt;
    img.loading = &#039;lazy&#039;;&lt;br /&gt;
    img.onerror = function () {&lt;br /&gt;
      link.remove();&lt;br /&gt;
      if (!container.querySelector(&#039;.sanko-search-thumb&#039;)) {&lt;br /&gt;
        container.classList.remove(&#039;sanko-search-with-thumb&#039;);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    link.appendChild(img);&lt;br /&gt;
    container.insertBefore(link, container.firstChild);&lt;br /&gt;
    container.classList.add(&#039;sanko-search-with-thumb&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function enhanceSearchResults(thumbnails) {&lt;br /&gt;
    document.querySelectorAll(&#039;.mw-search-results .mw-search-result&#039;).forEach(function (result) {&lt;br /&gt;
      var heading = result.querySelector(&#039;.mw-search-result-heading a&#039;);&lt;br /&gt;
      if (!heading) {&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      addSearchThumb(result, heading.textContent, heading.href, thumbnails);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function suggestionTitle(node) {&lt;br /&gt;
    var label = node.querySelector(&#039;.cdx-menu-item__text__label, .cdx-menu-item__content, .cdx-typeahead-search__search-footer__text&#039;);&lt;br /&gt;
    return (label || node).textContent || &#039;&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function enhanceSearchSuggestions(thumbnails) {&lt;br /&gt;
    document.querySelectorAll(&#039;.cdx-typeahead-search__menu .cdx-menu-item, .cdx-menu__listbox .cdx-menu-item&#039;).forEach(function (item) {&lt;br /&gt;
      if (item.querySelector(&#039;.sanko-search-thumb&#039;)) {&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      addSearchThumb(item, suggestionTitle(item), null, thumbnails);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function enhanceSearchChrome() {&lt;br /&gt;
    if (!document.querySelector(&#039;.mw-search-results, .cdx-typeahead-search, #p-search&#039;)) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    loadItemThumbnails().then(function (thumbnails) {&lt;br /&gt;
      enhanceSearchResults(thumbnails);&lt;br /&gt;
      enhanceSearchSuggestions(thumbnails);&lt;br /&gt;
      var observer = new MutationObserver(function () {&lt;br /&gt;
        enhanceSearchSuggestions(thumbnails);&lt;br /&gt;
      });&lt;br /&gt;
      var searchRoot = document.querySelector(&#039;.cdx-typeahead-search, #p-search&#039;) || document.body;&lt;br /&gt;
      observer.observe(searchRoot, { childList: true, subtree: true });&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  document.addEventListener(&#039;mouseover&#039;, function (event) {&lt;br /&gt;
    var target = event.target.closest(&#039;[data-minetip-title]&#039;);&lt;br /&gt;
    if (target) {&lt;br /&gt;
      showTip(target, event);&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  document.addEventListener(&#039;mousemove&#039;, moveTip);&lt;br /&gt;
  document.addEventListener(&#039;mouseout&#039;, function (event) {&lt;br /&gt;
    if (event.target.closest(&#039;[data-minetip-title]&#039;)) {&lt;br /&gt;
      hideTip();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  // Bounties are a wiki/Cargo feature (see Template:BountyPrompt + SankoQuest:Open bounties):&lt;br /&gt;
  // pages are tagged in wikitext and listed via Cargo. Nothing bounty-related renders from here.&lt;br /&gt;
&lt;br /&gt;
  function engineBase() {&lt;br /&gt;
    return (window.sankoEngineApiBase || &#039;https://api.sankoquest.wiki&#039;).replace(/\/$/, &#039;&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function currentSubject() {&lt;br /&gt;
    if (window.sankoEngineSubject) {&lt;br /&gt;
      return window.sankoEngineSubject;&lt;br /&gt;
    }&lt;br /&gt;
    if (window.sankoFixtureSubject) {&lt;br /&gt;
      return window.sankoFixtureSubject;&lt;br /&gt;
    }&lt;br /&gt;
    if (window.mw &amp;amp;&amp;amp; mw.config &amp;amp;&amp;amp; mw.config.get(&#039;wgUserName&#039;)) {&lt;br /&gt;
      return &#039;did:privy:&#039; + String(mw.config.get(&#039;wgUserName&#039;)).toLowerCase().replace(/[^a-z0-9]+/g, &#039;-&#039;);&lt;br /&gt;
    }&lt;br /&gt;
    return &#039;&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function jsonFetch(url, options) {&lt;br /&gt;
    var requestOptions = options || {};&lt;br /&gt;
    if (!requestOptions.credentials &amp;amp;&amp;amp; /^https?:\/\//.test(String(url))) {&lt;br /&gt;
      requestOptions.credentials = &#039;include&#039;;&lt;br /&gt;
    }&lt;br /&gt;
    return fetch(url, requestOptions).then(function (response) {&lt;br /&gt;
      if (!response.ok) {&lt;br /&gt;
        return response.json().catch(function () {&lt;br /&gt;
          return {};&lt;br /&gt;
        }).then(function (body) {&lt;br /&gt;
          var error = new Error(&#039;Sanko engine request failed: &#039; + response.status);&lt;br /&gt;
          error.status = response.status;&lt;br /&gt;
          error.code = body &amp;amp;&amp;amp; body.error;&lt;br /&gt;
          throw error;&lt;br /&gt;
        });&lt;br /&gt;
      }&lt;br /&gt;
      return response.json();&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function authHeaders(subject, includeJson) {&lt;br /&gt;
    var headers = includeJson ? { &#039;content-type&#039;: &#039;application/json&#039; } : {};&lt;br /&gt;
    if (window.sankoPrivyIdentityToken) {&lt;br /&gt;
      headers.authorization = &#039;Bearer &#039; + window.sankoPrivyIdentityToken;&lt;br /&gt;
    } else if (window.sankoWikiAuthToken) {&lt;br /&gt;
      headers.authorization = &#039;Bearer &#039; + window.sankoWikiAuthToken;&lt;br /&gt;
    } else if (window.sankoEnableFixtureAuth === true &amp;amp;&amp;amp; subject) {&lt;br /&gt;
      headers[&#039;x-sanko-sub&#039;] = subject;&lt;br /&gt;
    }&lt;br /&gt;
    return headers;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function hasWriteAuth(subject) {&lt;br /&gt;
    return Boolean(&lt;br /&gt;
      window.sankoPrivyIdentityToken ||&lt;br /&gt;
      window.sankoWikiAuthToken ||&lt;br /&gt;
      (window.sankoEngineSubject &amp;amp;&amp;amp; subject) ||&lt;br /&gt;
      (window.sankoEnableFixtureAuth === true &amp;amp;&amp;amp; subject)&lt;br /&gt;
    );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function pill(text) {&lt;br /&gt;
    return &#039;&amp;lt;span class=&amp;quot;sanko-pill&amp;quot;&amp;gt;&#039; + escapeHtml(text) + &#039;&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function escapeHtml(value) {&lt;br /&gt;
    return String(value == null ? &#039;&#039; : value).replace(/[&amp;amp;&amp;lt;&amp;gt;&amp;quot;&#039;]/g, function (char) {&lt;br /&gt;
      return {&lt;br /&gt;
        &#039;&amp;amp;&#039;: &#039;&amp;amp;amp;&#039;,&lt;br /&gt;
        &#039;&amp;lt;&#039;: &#039;&amp;amp;lt;&#039;,&lt;br /&gt;
        &#039;&amp;gt;&#039;: &#039;&amp;amp;gt;&#039;,&lt;br /&gt;
        &#039;&amp;quot;&#039;: &#039;&amp;amp;quot;&#039;,&lt;br /&gt;
        &amp;quot;&#039;&amp;quot;: &#039;&amp;amp;#39;&#039;&lt;br /&gt;
      }[char];&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var CHAR_CONTRACT = &#039;0xAA2F665a011d404d71e8f49d4d09f7006C49aC5c&#039;;&lt;br /&gt;
&lt;br /&gt;
  function charChips(tokenIds) {&lt;br /&gt;
    return (tokenIds || []).map(function (tokenId) {&lt;br /&gt;
      var id = String(tokenId).replace(/[^0-9]/g, &#039;&#039;);&lt;br /&gt;
      if (!id) {&lt;br /&gt;
        return &#039;&#039;;&lt;br /&gt;
      }&lt;br /&gt;
      var href = &#039;https://arbiscan.io/token/&#039; + CHAR_CONTRACT + &#039;?a=&#039; + id;&lt;br /&gt;
      return &#039;&amp;lt;a class=&amp;quot;sanko-pill sanko-char-chip&amp;quot; href=&amp;quot;&#039; + href +&lt;br /&gt;
        &#039;&amp;quot; target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener noreferrer&amp;quot;&amp;gt;CHAR #&#039; + escapeHtml(id) + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
    }).join(&#039;&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderAccount(root, profile) {&lt;br /&gt;
    var account = profile.account || {};&lt;br /&gt;
    var stats = profile.stats || {};&lt;br /&gt;
    var name = account.charName || account.displayName || account.handle || &#039;Unlinked adventurer&#039;;&lt;br /&gt;
    var linked = account.linkedSankoAddress &amp;amp;&amp;amp; account.charTokenIds &amp;amp;&amp;amp; account.charTokenIds.length;&lt;br /&gt;
    var titles = stats.titles &amp;amp;&amp;amp; stats.titles.length ? stats.titles.join(&#039;, &#039;) : &#039;New Chronicler&#039;;&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    var targetSubject =&lt;br /&gt;
      root.getAttribute(&#039;data-tip-target-subject&#039;) ||&lt;br /&gt;
      window.sankoTipTargetSubject ||&lt;br /&gt;
      account.subject ||&lt;br /&gt;
      subject;&lt;br /&gt;
    var actions = [];&lt;br /&gt;
    // Tipping stays hidden until the GOLD transfer path is live (window.sankoTipsEnabled,&lt;br /&gt;
    // injected server-side from MW_SANKO_TIPS_ENABLED). The engine also 404s /v1/tips while off.&lt;br /&gt;
    if (window.sankoTipsEnabled === true &amp;amp;&amp;amp; targetSubject &amp;amp;&amp;amp; targetSubject !== subject &amp;amp;&amp;amp; hasWriteAuth(subject)) {&lt;br /&gt;
      actions.push(&lt;br /&gt;
        &#039;&amp;lt;button class=&amp;quot;sanko-button&amp;quot; type=&amp;quot;button&amp;quot; data-sanko-tip-subject=&amp;quot;&#039; +&lt;br /&gt;
        escapeHtml(targetSubject) + &#039;&amp;quot;&amp;gt;Tip 25 GOLD&amp;lt;/button&amp;gt;&#039;&lt;br /&gt;
      );&lt;br /&gt;
    }&lt;br /&gt;
    actions.push(&lt;br /&gt;
      linked ? &#039;&amp;lt;button class=&amp;quot;sanko-button&amp;quot; type=&amp;quot;button&amp;quot; disabled&amp;gt;Linked&amp;lt;/button&amp;gt;&#039; :&lt;br /&gt;
        &#039;&amp;lt;button class=&amp;quot;sanko-button&amp;quot; type=&amp;quot;button&amp;quot; data-sanko-link-char&amp;gt;Link Sanko Character&amp;lt;/button&amp;gt;&#039;&lt;br /&gt;
    );&lt;br /&gt;
    root.innerHTML = [&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-account-card&amp;quot;&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-kicker&amp;quot;&amp;gt;Adventurer\&#039;s Log&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-account-title&amp;quot;&amp;gt;&#039; + escapeHtml(name) + &#039;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-muted&amp;quot;&amp;gt;&#039; + (linked ? &#039;CHAR linked&#039; : &#039;No Sanko Character linked yet&#039;) + &#039;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-account-meta&amp;quot;&amp;gt;&#039;,&lt;br /&gt;
      pill(&#039;Renown &#039; + (stats.renown || 0)),&lt;br /&gt;
      pill(titles),&lt;br /&gt;
      linked ? charChips(account.charTokenIds) : pill(&#039;Link a CHAR to unlock badges&#039;),&lt;br /&gt;
      &#039;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-account-actions&amp;quot;&amp;gt;&#039; + actions.join(&#039;&#039;) + &#039;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
    ].join(&#039;&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function loadAccount() {&lt;br /&gt;
    var root = document.querySelector(&#039;.sanko-account-panel[data-live=&amp;quot;true&amp;quot;]&#039;);&lt;br /&gt;
    if (!root || !window.fetch) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    if (!subject) {&lt;br /&gt;
      root.innerHTML = &#039;&amp;lt;div class=&amp;quot;sanko-account-card sanko-muted&amp;quot;&amp;gt;Log in to view your Adventurer\&#039;s Log.&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var base = engineBase();&lt;br /&gt;
    jsonFetch(base + &#039;/v1/profiles/&#039; + encodeURIComponent(subject))&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        if (!hasWriteAuth(subject)) {&lt;br /&gt;
          throw new Error(&#039;Sanko write auth unavailable.&#039;);&lt;br /&gt;
        }&lt;br /&gt;
        return jsonFetch(base + &#039;/v1/me&#039;, { headers: authHeaders(subject, false) }).then(function () {&lt;br /&gt;
          return jsonFetch(base + &#039;/v1/profiles/&#039; + encodeURIComponent(subject));&lt;br /&gt;
        });&lt;br /&gt;
      })&lt;br /&gt;
      .then(function (profile) {&lt;br /&gt;
        renderAccount(root, profile);&lt;br /&gt;
      })&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        root.innerHTML = &#039;&amp;lt;div class=&amp;quot;sanko-account-card sanko-muted&amp;quot;&amp;gt;Adventurer profile is unavailable.&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function sha256Hex(text) {&lt;br /&gt;
    if (!window.crypto || !window.crypto.subtle || !window.TextEncoder) {&lt;br /&gt;
      return Promise.reject(new Error(&#039;Web Crypto is unavailable.&#039;));&lt;br /&gt;
    }&lt;br /&gt;
    return window.crypto.subtle.digest(&#039;SHA-256&#039;, new TextEncoder().encode(text)).then(function (buffer) {&lt;br /&gt;
      return Array.prototype.map.call(new Uint8Array(buffer), function (byte) {&lt;br /&gt;
        return byte.toString(16).padStart(2, &#039;0&#039;);&lt;br /&gt;
      }).join(&#039;&#039;);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function linkFixtureChar(button) {&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    var base = engineBase();&lt;br /&gt;
    var address = window.sankoFixtureCharAddress || &#039;0x2222222222222222222222222222222222222222&#039;;&lt;br /&gt;
    if (!subject || !button || window.sankoEnableFixtureCharLink !== true) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    button.disabled = true;&lt;br /&gt;
    button.textContent = &#039;Linking...&#039;;&lt;br /&gt;
    jsonFetch(base + &#039;/v1/char-link/nonce&#039;, {&lt;br /&gt;
      method: &#039;POST&#039;,&lt;br /&gt;
      headers: authHeaders(subject, true),&lt;br /&gt;
      body: JSON.stringify({ domain: &#039;sankoquest.wiki&#039;, linkedSankoAddress: address })&lt;br /&gt;
    })&lt;br /&gt;
      .then(function (nonce) {&lt;br /&gt;
        return sha256Hex(nonce.message + &#039;:&#039; + address.toLowerCase()).then(function (hash) {&lt;br /&gt;
          return jsonFetch(base + &#039;/v1/char-link/verify&#039;, {&lt;br /&gt;
            method: &#039;POST&#039;,&lt;br /&gt;
            headers: authHeaders(subject, true),&lt;br /&gt;
            body: JSON.stringify({&lt;br /&gt;
              nonce: nonce.nonce,&lt;br /&gt;
              linkedSankoAddress: address,&lt;br /&gt;
              charTokenIds: [384, 7],&lt;br /&gt;
              charName: &#039;Wiki-local Chronicler&#039;,&lt;br /&gt;
              signature: &#039;fixture:&#039; + hash&lt;br /&gt;
            })&lt;br /&gt;
          });&lt;br /&gt;
        });&lt;br /&gt;
      })&lt;br /&gt;
      .then(loadAccount)&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        button.disabled = false;&lt;br /&gt;
        button.textContent = &#039;Link failed&#039;;&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function signPersonalMessage(address, message) {&lt;br /&gt;
    return window.ethereum.request({ method: &#039;personal_sign&#039;, params: [message, address] })&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        return window.ethereum.request({ method: &#039;personal_sign&#039;, params: [address, message] });&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function linkWalletChar(button) {&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    var base = engineBase();&lt;br /&gt;
    if (!subject || !button) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (!hasWriteAuth(subject)) {&lt;br /&gt;
      button.textContent = &#039;Sign in with Privy first&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (!window.ethereum || !window.ethereum.request) {&lt;br /&gt;
      button.textContent = &#039;Wallet unavailable&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    button.disabled = true;&lt;br /&gt;
    button.textContent = &#039;Waiting for wallet...&#039;;&lt;br /&gt;
    window.ethereum.request({ method: &#039;eth_requestAccounts&#039; })&lt;br /&gt;
      .then(function (accounts) {&lt;br /&gt;
        var address = String(accounts &amp;amp;&amp;amp; accounts[0] ? accounts[0] : &#039;&#039;).toLowerCase();&lt;br /&gt;
        if (!/^0x[0-9a-f]{40}$/.test(address)) {&lt;br /&gt;
          throw new Error(&#039;No EVM wallet address returned.&#039;);&lt;br /&gt;
        }&lt;br /&gt;
        return jsonFetch(base + &#039;/v1/char-link/nonce&#039;, {&lt;br /&gt;
          method: &#039;POST&#039;,&lt;br /&gt;
          headers: authHeaders(subject, true),&lt;br /&gt;
          body: JSON.stringify({ domain: location.hostname || &#039;sankoquest.wiki&#039;, linkedSankoAddress: address })&lt;br /&gt;
        }).then(function (nonce) {&lt;br /&gt;
          return signPersonalMessage(address, nonce.message).then(function (signature) {&lt;br /&gt;
            return jsonFetch(base + &#039;/v1/char-link/verify&#039;, {&lt;br /&gt;
              method: &#039;POST&#039;,&lt;br /&gt;
              headers: authHeaders(subject, true),&lt;br /&gt;
              body: JSON.stringify({&lt;br /&gt;
                nonce: nonce.nonce,&lt;br /&gt;
                linkedSankoAddress: address,&lt;br /&gt;
                signature: signature&lt;br /&gt;
              })&lt;br /&gt;
            });&lt;br /&gt;
          });&lt;br /&gt;
        });&lt;br /&gt;
      })&lt;br /&gt;
      .then(loadAccount)&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        button.disabled = false;&lt;br /&gt;
        button.textContent = &#039;Link failed&#039;;&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function linkFromIdentity(button) {&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    var base = engineBase();&lt;br /&gt;
    if (!subject || !button) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (!hasWriteAuth(subject)) {&lt;br /&gt;
      button.textContent = &#039;Sign in with Privy first&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    button.disabled = true;&lt;br /&gt;
    button.textContent = &#039;Linking...&#039;;&lt;br /&gt;
    return jsonFetch(base + &#039;/v1/char-link/from-identity&#039;, {&lt;br /&gt;
      method: &#039;POST&#039;,&lt;br /&gt;
      headers: authHeaders(subject, true)&lt;br /&gt;
    })&lt;br /&gt;
      .then(loadAccount)&lt;br /&gt;
      .catch(function (error) {&lt;br /&gt;
        var code = error &amp;amp;&amp;amp; error.code;&lt;br /&gt;
        var walletCapable = window.ethereum &amp;amp;&amp;amp; window.ethereum.request;&lt;br /&gt;
        // CHAR lives in a wallet Privy doesn&#039;t know about — prove control of it&lt;br /&gt;
        // with a signature, if the browser has an injected wallet to sign with.&lt;br /&gt;
        if ((code === &#039;char_not_found&#039; || code === &#039;wallet_not_in_identity&#039;) &amp;amp;&amp;amp; walletCapable) {&lt;br /&gt;
          return linkWalletChar(button);&lt;br /&gt;
        }&lt;br /&gt;
        button.disabled = false;&lt;br /&gt;
        if (code === &#039;char_not_found&#039;) {&lt;br /&gt;
          button.textContent = &#039;No CHAR in your wallet&#039;;&lt;br /&gt;
        } else if (code === &#039;wallet_not_in_identity&#039;) {&lt;br /&gt;
          button.textContent = &#039;Connect a wallet in Privy&#039;;&lt;br /&gt;
        } else {&lt;br /&gt;
          button.textContent = &#039;Link failed&#039;;&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function linkSankoChar(button) {&lt;br /&gt;
    if (window.sankoEnableFixtureCharLink === true) {&lt;br /&gt;
      return linkFixtureChar(button);&lt;br /&gt;
    }&lt;br /&gt;
    return linkFromIdentity(button);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function tipAdventurer(button) {&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    var targetSubject = button &amp;amp;&amp;amp; button.getAttribute(&#039;data-sanko-tip-subject&#039;);&lt;br /&gt;
    if (!targetSubject || !subject || !hasWriteAuth(subject)) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    button.disabled = true;&lt;br /&gt;
    button.textContent = &#039;Tipping...&#039;;&lt;br /&gt;
    jsonFetch(engineBase() + &#039;/v1/tips&#039;, {&lt;br /&gt;
      method: &#039;POST&#039;,&lt;br /&gt;
      headers: authHeaders(subject, true),&lt;br /&gt;
      body: JSON.stringify({&lt;br /&gt;
        toSubject: targetSubject,&lt;br /&gt;
        amount: 25,&lt;br /&gt;
        token: &#039;GOLD&#039;&lt;br /&gt;
      })&lt;br /&gt;
    })&lt;br /&gt;
      .then(function () {&lt;br /&gt;
        button.textContent = &#039;Tipped&#039;;&lt;br /&gt;
      })&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        button.disabled = false;&lt;br /&gt;
        button.textContent = &#039;Tip failed&#039;;&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // The Keel sponsor header badge is injected by a baked static script (sanko-assets/sponsor.js,&lt;br /&gt;
  // inlined via LocalSettings.php), not from here — so it ships to prod on a release without a&lt;br /&gt;
  // manual page re-seed. See wiki/assets/sponsor.js and wiki/assets/sponsor.css.&lt;br /&gt;
&lt;br /&gt;
  document.addEventListener(&#039;click&#039;, function (event) {&lt;br /&gt;
    var button = event.target.closest(&#039;[data-sanko-link-char]&#039;);&lt;br /&gt;
    if (button) {&lt;br /&gt;
      linkSankoChar(button);&lt;br /&gt;
    }&lt;br /&gt;
    var tipButton = event.target.closest(&#039;[data-sanko-tip-subject]&#039;);&lt;br /&gt;
    if (tipButton) {&lt;br /&gt;
      tipAdventurer(tipButton);&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
    document.addEventListener(&#039;DOMContentLoaded&#039;, function () {&lt;br /&gt;
      redirectCreateAccountToPrivy();&lt;br /&gt;
      polishLoginChrome();&lt;br /&gt;
      enhanceEditForAnon();&lt;br /&gt;
      renderModelImages();&lt;br /&gt;
      enhanceSearchChrome();&lt;br /&gt;
      loadAccount();&lt;br /&gt;
    });&lt;br /&gt;
  } else {&lt;br /&gt;
    redirectCreateAccountToPrivy();&lt;br /&gt;
    polishLoginChrome();&lt;br /&gt;
    enhanceEditForAnon();&lt;br /&gt;
    renderModelImages();&lt;br /&gt;
    enhanceSearchChrome();&lt;br /&gt;
    loadAccount();&lt;br /&gt;
  }&lt;br /&gt;
}());&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=MediaWiki:Common.css&amp;diff=442</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=MediaWiki:Common.css&amp;diff=442"/>
		<updated>2026-07-03T17:51:07Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:root {&lt;br /&gt;
  --sanko-void: #120804;&lt;br /&gt;
  --sanko-void-2: #1e1608;&lt;br /&gt;
  --sanko-ink: #2a1200;&lt;br /&gt;
  --sanko-ink-soft: #5a3810;&lt;br /&gt;
  --sanko-paper: #f5e6c8;&lt;br /&gt;
  --sanko-paper-2: #e6d0a2;&lt;br /&gt;
  --sanko-paper-3: #c9b897;&lt;br /&gt;
  --sanko-border: #6d5a3d;&lt;br /&gt;
  --sanko-border-dark: #3a2e12;&lt;br /&gt;
  --sanko-menu: #2b2111;&lt;br /&gt;
  --sanko-menu-2: #171006;&lt;br /&gt;
  --sanko-menu-border: rgba(243, 211, 106, 0.34);&lt;br /&gt;
  --sanko-gold: #d6a83c;&lt;br /&gt;
  --sanko-gold-2: #f3d36a;&lt;br /&gt;
  --sanko-leaf: #4c7f52;&lt;br /&gt;
  --sanko-water: #3972c9;&lt;br /&gt;
  --sanko-water-soft: #c7f0fa;&lt;br /&gt;
  --sanko-danger: #9d2f25;&lt;br /&gt;
  --sanko-shadow: rgba(18, 8, 4, 0.42);&lt;br /&gt;
  --sanko-backdrop: url(&#039;https://sanko-pets-assets.s3.us-east-2.amazonaws.com/quest/meta1.webp&#039;);&lt;br /&gt;
  --sanko-logo: url(&#039;https://sigma.sankoquest.com/apple-icon.png&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html,&lt;br /&gt;
body.skin-vector,&lt;br /&gt;
body.skin-minerva,&lt;br /&gt;
body.skin-citizen {&lt;br /&gt;
  background:&lt;br /&gt;
    radial-gradient(circle at 14% 7%, rgba(243, 211, 106, 0.2) 0 1px, transparent 2px 100%),&lt;br /&gt;
    radial-gradient(circle at 77% 18%, rgba(199, 240, 250, 0.22) 0 1px, transparent 2px 100%),&lt;br /&gt;
    radial-gradient(circle at 47% 38%, rgba(243, 211, 106, 0.12) 0 1px, transparent 2px 100%),&lt;br /&gt;
    linear-gradient(180deg, rgba(18, 8, 4, 0.56), rgba(18, 8, 4, 0.78) 360px, rgba(28, 14, 6, 0.88)),&lt;br /&gt;
    var(--sanko-backdrop),&lt;br /&gt;
    repeating-linear-gradient(90deg, rgba(245, 230, 200, 0.04) 0 1px, transparent 1px 16px),&lt;br /&gt;
    var(--sanko-void);&lt;br /&gt;
  background-attachment: fixed, fixed, fixed, fixed, fixed, fixed, fixed;&lt;br /&gt;
  background-position: 0 0, 0 0, 0 0, center top, center top, 0 0, 0 0;&lt;br /&gt;
  background-repeat: repeat, repeat, repeat, no-repeat, no-repeat, repeat, repeat;&lt;br /&gt;
  background-size: 240px 180px, 300px 220px, 420px 320px, auto, min(1700px, 140vw) auto, auto, auto;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body,&lt;br /&gt;
.mw-body,&lt;br /&gt;
.vector-body,&lt;br /&gt;
.parsoid-body {&lt;br /&gt;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, sans-serif;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-page-container,&lt;br /&gt;
body.skin-vector .vector-header-container {&lt;br /&gt;
  background: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-page-container {&lt;br /&gt;
  max-width: 1500px;&lt;br /&gt;
  margin: 0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Vector&#039;s &amp;quot;limited width&amp;quot; caps the article column far narrower than the header,&lt;br /&gt;
   leaving a big empty gutter on the right. Let the content fill the container so it&lt;br /&gt;
   lines up with the header content width. */&lt;br /&gt;
body.skin-vector-2022 .mw-content-container {&lt;br /&gt;
  max-width: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-header-container {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(30, 22, 8, 0.94), rgba(18, 8, 4, 0.96)),&lt;br /&gt;
    var(--sanko-void) !important;&lt;br /&gt;
  border-bottom: 2px solid var(--sanko-border-dark);&lt;br /&gt;
  box-shadow: 0 8px 24px rgba(18, 8, 4, 0.34);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-header-container .vector-header,&lt;br /&gt;
body.skin-vector .mw-header {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(30, 22, 8, 0.94), rgba(18, 8, 4, 0.96)),&lt;br /&gt;
    var(--sanko-void) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-header-container a,&lt;br /&gt;
body.skin-vector .vector-header-container .vector-dropdown-label-text,&lt;br /&gt;
body.skin-vector .mw-logo-wordmark {&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Vector icons are mask-images colored via background-color; the header/sticky bars are&lt;br /&gt;
   dark, so force every icon in them light (fixes the near-invisible logged-in user + star). */&lt;br /&gt;
body.skin-vector .vector-header-container .vector-icon,&lt;br /&gt;
body.skin-vector .vector-sticky-header .vector-icon,&lt;br /&gt;
body.skin-vector .vector-header-container .mw-ui-icon-element .vector-icon {&lt;br /&gt;
  background-color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-header-container .vector-header-start,&lt;br /&gt;
body.skin-vector .vector-header-container .vector-header-end {&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-dropdown .vector-dropdown-label,&lt;br /&gt;
body.skin-vector .vector-user-menu .vector-dropdown-label,&lt;br /&gt;
body.skin-vector .vector-page-tools-dropdown .vector-dropdown-label {&lt;br /&gt;
  min-width: 36px;&lt;br /&gt;
  min-height: 36px;&lt;br /&gt;
  border: 1px solid rgba(243, 211, 106, 0.45);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  background: rgba(18, 8, 4, 0.7);&lt;br /&gt;
  box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.1), 0 3px 10px rgba(0, 0, 0, 0.22);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-dropdown .vector-dropdown-label:hover,&lt;br /&gt;
body.skin-vector .vector-user-menu .vector-dropdown-label:hover,&lt;br /&gt;
body.skin-vector .vector-page-tools-dropdown .vector-dropdown-label:hover {&lt;br /&gt;
  border-color: var(--sanko-gold-2);&lt;br /&gt;
  background: rgba(61, 47, 26, 0.92);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-logo {&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-logo-icon {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-logo:before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  flex: 0 0 auto;&lt;br /&gt;
  width: 40px;&lt;br /&gt;
  height: 40px;&lt;br /&gt;
  background-color: rgba(18, 8, 4, 0.84);&lt;br /&gt;
  background-image: var(--sanko-logo);&lt;br /&gt;
  background-position: center;&lt;br /&gt;
  background-repeat: no-repeat;&lt;br /&gt;
  background-size: 34px 34px;&lt;br /&gt;
  border: 1px solid rgba(243, 211, 106, 0.5);&lt;br /&gt;
  border-radius: 7px;&lt;br /&gt;
  box-shadow:&lt;br /&gt;
    inset 1px 1px 0 rgba(255, 255, 255, 0.16),&lt;br /&gt;
    inset -1px -1px 0 rgba(0, 0, 0, 0.48),&lt;br /&gt;
    0 4px 14px rgba(0, 0, 0, 0.24);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-logo-wordmark {&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  letter-spacing: 0;&lt;br /&gt;
  text-shadow: 0 1px 0 #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-text-input__input,&lt;br /&gt;
body.skin-vector .searchButton {&lt;br /&gt;
  background-color: rgba(255, 247, 224, 0.94);&lt;br /&gt;
  border-color: var(--sanko-border);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-column-end,&lt;br /&gt;
body.skin-vector .vector-appearance-landmark,&lt;br /&gt;
body.skin-vector #p-dock-bottom {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #ca-talk {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-toc,&lt;br /&gt;
body.skin-vector .sidebar-toc,&lt;br /&gt;
body.skin-vector #vector-toc {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(43, 33, 17, 0.99), rgba(23, 16, 6, 0.99)),&lt;br /&gt;
    var(--sanko-menu-2) !important;&lt;br /&gt;
  border: 1px solid var(--sanko-menu-border);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.36);&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-dropdown-content,&lt;br /&gt;
body.skin-vector .vector-pinnable-element,&lt;br /&gt;
body.skin-vector #vector-main-menu,&lt;br /&gt;
body.skin-vector .vector-main-menu {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(61, 47, 26, 0.98), rgba(30, 22, 8, 0.98)),&lt;br /&gt;
    var(--sanko-void) !important;&lt;br /&gt;
  border: 1px solid rgba(243, 211, 106, 0.34);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.46);&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-dropdown-content {&lt;br /&gt;
  z-index: 1000;&lt;br /&gt;
  padding: 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-dropdown .vector-dropdown-content,&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-dropdown-content,&lt;br /&gt;
body.skin-vector #vector-page-tools-pinned-container,&lt;br /&gt;
body.skin-vector #p-tb,&lt;br /&gt;
body.skin-vector #p-cactions {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  min-width: 230px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(61, 47, 26, 0.99), rgba(30, 22, 8, 0.99)),&lt;br /&gt;
    var(--sanko-void) !important;&lt;br /&gt;
  border: 1px solid rgba(243, 211, 106, 0.38);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  opacity: 1 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-dropdown .vector-dropdown-content {&lt;br /&gt;
  right: 0;&lt;br /&gt;
  padding: 8px;&lt;br /&gt;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.52);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu,&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content,&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content-list {&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-heading {&lt;br /&gt;
  display: block;&lt;br /&gt;
  margin: 8px 0 4px;&lt;br /&gt;
  padding: 5px 8px;&lt;br /&gt;
  border-top: 1px solid rgba(243, 211, 106, 0.2);&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  font-size: 0.86rem;&lt;br /&gt;
  line-height: 1.2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content-list {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content-list li {&lt;br /&gt;
  margin: 1px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content-list a,&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content-list span {&lt;br /&gt;
  display: block;&lt;br /&gt;
  padding: 5px 8px;&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  line-height: 1.25;&lt;br /&gt;
  opacity: 1 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-menu-heading,&lt;br /&gt;
body.skin-vector .vector-pinnable-header-label {&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-pinnable-header {&lt;br /&gt;
  min-height: 30px;&lt;br /&gt;
  padding: 4px 6px;&lt;br /&gt;
  border-bottom: 1px solid rgba(243, 211, 106, 0.18);&lt;br /&gt;
  background: rgba(18, 8, 4, 0.42);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-pinnable-header-toggle-button {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-menu-content-list a,&lt;br /&gt;
body.skin-vector .vector-dropdown-content a,&lt;br /&gt;
body.skin-vector .vector-page-tools a {&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-menu-content-list a:hover,&lt;br /&gt;
body.skin-vector .vector-dropdown-content a:hover,&lt;br /&gt;
body.skin-vector .vector-page-tools a:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.14);&lt;br /&gt;
  color: #fff7d5 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-menu-content-list .selected a,&lt;br /&gt;
body.skin-vector .vector-dropdown-content .selected a {&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-titlebar,&lt;br /&gt;
body.skin-vector .vector-sticky-header,&lt;br /&gt;
body.skin-vector .vector-header-container .vector-header-start,&lt;br /&gt;
body.skin-vector .vector-header-container .vector-header-end {&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Sticky header on scroll: match the dark/gold theme and fade in instead of snapping. */&lt;br /&gt;
body.skin-vector .vector-sticky-header {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(30, 22, 8, 0.98), rgba(18, 8, 4, 0.99)),&lt;br /&gt;
    var(--sanko-void) !important;&lt;br /&gt;
  border-bottom: 2px solid var(--sanko-border-dark);&lt;br /&gt;
  box-shadow: 0 10px 26px rgba(18, 8, 4, 0.4);&lt;br /&gt;
  transition: opacity 0.25s ease, transform 0.25s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-sticky-header a,&lt;br /&gt;
body.skin-vector .vector-sticky-header .vector-sticky-header-context-bar-primary,&lt;br /&gt;
body.skin-vector .vector-sticky-header .mw-page-title-main,&lt;br /&gt;
body.skin-vector .vector-sticky-header .mw-page-title-main *,&lt;br /&gt;
body.skin-vector .vector-sticky-header h1 {&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Sticky-header search should read like the main search field. */&lt;br /&gt;
body.skin-vector .vector-sticky-header .cdx-text-input__input,&lt;br /&gt;
body.skin-vector .vector-sticky-header .vector-search-box-input {&lt;br /&gt;
  background: rgba(255, 247, 224, 0.96);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #pt-createaccount,&lt;br /&gt;
body.skin-vector #pt-createaccount-2,&lt;br /&gt;
body.skin-vector #mw-createaccount-cta,&lt;br /&gt;
body.skin-vector .mw-userlogin-help {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu,&lt;br /&gt;
body.skin-vector #vector-page-tools,&lt;br /&gt;
body.skin-vector #vector-toc,&lt;br /&gt;
body.skin-vector .sidebar-toc,&lt;br /&gt;
body.skin-vector .vector-dropdown-content #vector-main-menu,&lt;br /&gt;
body.skin-vector .vector-dropdown-content #vector-page-tools,&lt;br /&gt;
body.skin-vector .vector-dropdown-content #vector-toc {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(43, 33, 17, 0.99), rgba(23, 16, 6, 0.99)),&lt;br /&gt;
    var(--sanko-menu-2) !important;&lt;br /&gt;
  border: 1px solid var(--sanko-menu-border);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.46);&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  opacity: 1 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .vector-menu,&lt;br /&gt;
body.skin-vector #vector-main-menu .vector-menu-content,&lt;br /&gt;
body.skin-vector #vector-main-menu .vector-menu-content-list,&lt;br /&gt;
body.skin-vector #vector-page-tools .vector-menu,&lt;br /&gt;
body.skin-vector #vector-page-tools .vector-menu-content,&lt;br /&gt;
body.skin-vector #vector-page-tools .vector-menu-content-list,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-contents,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-list,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-list-item {&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  border: 0;&lt;br /&gt;
  box-shadow: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-column-start,&lt;br /&gt;
body.skin-vector .vector-column-start .vector-pinned-container,&lt;br /&gt;
body.skin-vector .vector-column-start .vector-unpinned-container,&lt;br /&gt;
body.skin-vector .vector-sticky-pinned-container,&lt;br /&gt;
body.skin-vector #mw-panel,&lt;br /&gt;
body.skin-vector #mw-panel-toc,&lt;br /&gt;
body.skin-vector #vector-main-menu-pinned-container,&lt;br /&gt;
body.skin-vector #vector-main-menu-unpinned-container,&lt;br /&gt;
body.skin-vector #vector-toc-pinned-container,&lt;br /&gt;
body.skin-vector #vector-toc-unpinned-container,&lt;br /&gt;
body.skin-vector #vector-page-tools-pinned-container,&lt;br /&gt;
body.skin-vector #vector-page-tools-unpinned-container,&lt;br /&gt;
body.skin-vector .vector-menu-portal,&lt;br /&gt;
body.skin-vector .vector-dropdown-content &amp;gt; .vector-menu-portal {&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  border: 0 !important;&lt;br /&gt;
  box-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html.vector-toc-available body.skin-vector .vector-column-start {&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  border-radius: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-sticky-pinned-container {&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  border-radius: 0;&lt;br /&gt;
  height: auto !important;&lt;br /&gt;
  max-height: none !important;&lt;br /&gt;
  min-height: 0 !important;&lt;br /&gt;
  overflow: visible !important;&lt;br /&gt;
  scrollbar-width: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-sticky-pinned-container::-webkit-scrollbar {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
  width: 0 !important;&lt;br /&gt;
  height: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-action,&lt;br /&gt;
body.skin-vector .vector-main-menu-action-content:has(a[href*=&amp;quot;Special:Preferences&amp;quot;][href*=&amp;quot;useskin=vector&amp;quot;]) {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-dropdown .vector-dropdown-content,&lt;br /&gt;
body.skin-vector .vector-page-tools-dropdown .vector-dropdown-content {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(43, 33, 17, 0.99), rgba(23, 16, 6, 0.99)),&lt;br /&gt;
    var(--sanko-menu-2) !important;&lt;br /&gt;
  border: 1px solid var(--sanko-menu-border) !important;&lt;br /&gt;
  border-radius: 8px !important;&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  opacity: 1 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-dropdown .vector-dropdown-content {&lt;br /&gt;
  min-width: 230px;&lt;br /&gt;
  padding: 8px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-dropdown .vector-dropdown-content #vector-main-menu {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  min-width: 210px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .vector-menu {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  padding: 6px 8px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .vector-menu-heading,&lt;br /&gt;
body.skin-vector #vector-page-tools .vector-menu-heading,&lt;br /&gt;
body.skin-vector #vector-toc .vector-pinnable-header-label,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-heading {&lt;br /&gt;
  margin: 9px 4px 5px;&lt;br /&gt;
  padding: 0 0 5px;&lt;br /&gt;
  border-bottom: 1px solid rgba(243, 211, 106, 0.22);&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  font-size: 0.74rem;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  letter-spacing: 0;&lt;br /&gt;
  line-height: 1.2;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-list-item {&lt;br /&gt;
  margin: 1px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item a,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item a,&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item span,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item span,&lt;br /&gt;
body.skin-vector #vector-toc a,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-text {&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item a,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item a,&lt;br /&gt;
body.skin-vector #vector-toc a {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-height: 30px;&lt;br /&gt;
  padding: 6px 9px;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  line-height: 1.25;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item a:hover,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item a:hover,&lt;br /&gt;
body.skin-vector #vector-toc a:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.14);&lt;br /&gt;
  color: #fff7d5 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item.active a,&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item.selected a,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item.active a,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item.selected a,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-list-item-active &amp;gt; a {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.2);&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-pinnable-header {&lt;br /&gt;
  border-radius: 7px 7px 0 0;&lt;br /&gt;
  background: rgba(18, 8, 4, 0.64) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-toc .vector-pinnable-header {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  display: flex;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin: 0 0 7px;&lt;br /&gt;
  padding: 10px 12px 9px;&lt;br /&gt;
  border-bottom: 1px solid rgba(243, 211, 106, 0.24);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-toc .vector-pinnable-header-label,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-heading {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-toc:before,&lt;br /&gt;
body.skin-vector .vector-toc:after,&lt;br /&gt;
body.skin-vector .sidebar-toc:before,&lt;br /&gt;
body.skin-vector .sidebar-toc:after,&lt;br /&gt;
body.skin-vector #vector-toc:before,&lt;br /&gt;
body.skin-vector #vector-toc:after,&lt;br /&gt;
body.skin-vector .vector-toc-contents:before,&lt;br /&gt;
body.skin-vector .vector-toc-contents:after,&lt;br /&gt;
body.skin-vector .vector-column-start:before,&lt;br /&gt;
body.skin-vector .vector-column-start:after,&lt;br /&gt;
body.skin-vector .vector-sticky-pinned-container:before,&lt;br /&gt;
body.skin-vector .vector-sticky-pinned-container:after,&lt;br /&gt;
body.skin-vector #mw-panel-toc:before,&lt;br /&gt;
body.skin-vector #mw-panel-toc:after,&lt;br /&gt;
body.skin-vector #vector-toc-pinned-container:before,&lt;br /&gt;
body.skin-vector #vector-toc-pinned-container:after,&lt;br /&gt;
body.skin-vector #vector-toc-unpinned-container:before,&lt;br /&gt;
body.skin-vector #vector-toc-unpinned-container:after {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
  content: none !important;&lt;br /&gt;
  background: none !important;&lt;br /&gt;
  border: 0 !important;&lt;br /&gt;
  box-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-toolbar {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  margin-bottom: 0;&lt;br /&gt;
  padding-top: 4px;&lt;br /&gt;
  border-bottom: 1px solid rgba(109, 90, 61, 0.42);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-menu-tabs .mw-list-item a,&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-dropdown-label {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  height: 34px;&lt;br /&gt;
  min-height: 0;&lt;br /&gt;
  padding: 0 14px;&lt;br /&gt;
  margin-bottom: -1px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.72) !important;&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.42);&lt;br /&gt;
  border-bottom: 0;&lt;br /&gt;
  border-radius: 7px 7px 0 0;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Vector reserves a tall (34px) label span for optional icons; collapse it so the&lt;br /&gt;
   text is the tab&#039;s real height and centers instead of riding high with dead space. */&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-menu-tabs .mw-list-item a &amp;gt; span,&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-dropdown-label &amp;gt; span {&lt;br /&gt;
  min-height: 0;&lt;br /&gt;
  height: auto;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-menu-tabs .selected a {&lt;br /&gt;
  background: #3d2f1a !important;&lt;br /&gt;
  border-color: #1d1508;&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-dropdown-label:hover,&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-menu-tabs .mw-list-item a:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.22) !important;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search {&lt;br /&gt;
  min-width: min(420px, 42vw);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #searchform.cdx-search-input {&lt;br /&gt;
  align-items: stretch;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.18);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search .cdx-text-input__input,&lt;br /&gt;
body.skin-vector #p-search .cdx-search-input__end-button {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  height: 40px;&lt;br /&gt;
  min-height: 36px;&lt;br /&gt;
  border-color: rgba(243, 211, 106, 0.42);&lt;br /&gt;
  box-shadow: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search .cdx-text-input,&lt;br /&gt;
body.skin-vector #p-search .cdx-search-input__input-wrapper {&lt;br /&gt;
  height: 40px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search .cdx-text-input__input {&lt;br /&gt;
  background: rgba(255, 247, 224, 0.96);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  border-radius: 5px 0 0 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search .cdx-text-input__input:focus {&lt;br /&gt;
  border-color: var(--sanko-gold-2);&lt;br /&gt;
  outline: 2px solid rgba(243, 211, 106, 0.35);&lt;br /&gt;
  outline-offset: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search .cdx-search-input__end-button {&lt;br /&gt;
  background: linear-gradient(180deg, var(--sanko-gold-2), var(--sanko-gold)) !important;&lt;br /&gt;
  border: 1px solid rgba(58, 46, 18, 0.72);&lt;br /&gt;
  border-left: 0;&lt;br /&gt;
  border-radius: 0 5px 5px 0;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu,&lt;br /&gt;
body.skin-vector .cdx-typeahead-search__menu,&lt;br /&gt;
body.skin-vector .cdx-menu__listbox {&lt;br /&gt;
  background: var(--sanko-paper) !important;&lt;br /&gt;
  border: 1px solid var(--sanko-border) !important;&lt;br /&gt;
  border-radius: 6px !important;&lt;br /&gt;
  box-shadow: 0 18px 42px rgba(18, 8, 4, 0.36) !important;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item,&lt;br /&gt;
body.skin-vector .cdx-menu-item__text,&lt;br /&gt;
body.skin-vector .cdx-menu-item__description,&lt;br /&gt;
body.skin-vector .cdx-typeahead-search__search-footer {&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item__content {&lt;br /&gt;
  min-height: 34px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item__text {&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-typeahead-search__search-footer {&lt;br /&gt;
  border-top: 1px solid rgba(109, 90, 61, 0.34);&lt;br /&gt;
  background: rgba(243, 211, 106, 0.14);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item--highlighted,&lt;br /&gt;
body.skin-vector .cdx-menu-item:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.24) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Key these off the presence of our injected sprite child, NOT the&lt;br /&gt;
   .sanko-search-with-thumb class: Codex rewrites the menu item&#039;s class attribute&lt;br /&gt;
   on hover (to add --highlighted), which strips a JS-added class and broke the&lt;br /&gt;
   layout on hover. Vue preserves our sprite &amp;lt;span&amp;gt;, so :has() survives re-renders. */&lt;br /&gt;
body.skin-vector .cdx-menu-item:has(&amp;gt; .sanko-search-thumb) {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-height: 46px;&lt;br /&gt;
  gap: 9px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item:has(&amp;gt; .sanko-search-thumb) .cdx-menu-item__thumbnail,&lt;br /&gt;
body.skin-vector .cdx-menu-item:has(&amp;gt; .sanko-search-thumb) .cdx-thumbnail {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item:has(&amp;gt; .sanko-search-thumb) .cdx-menu-item__content {&lt;br /&gt;
  flex: 1 1 auto;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item:has(&amp;gt; .sanko-search-thumb) .cdx-menu-item__text,&lt;br /&gt;
body.skin-vector .cdx-menu-item:has(&amp;gt; .sanko-search-thumb) .cdx-menu-item__description {&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  text-overflow: ellipsis;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item .sanko-search-thumb {&lt;br /&gt;
  flex: 0 0 auto;&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 34px;&lt;br /&gt;
  height: 34px;&lt;br /&gt;
  margin-left: 2px;&lt;br /&gt;
  background: #1b140a;&lt;br /&gt;
  border: 1px solid rgba(243, 211, 106, 0.24);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item .sanko-search-thumb img {&lt;br /&gt;
  display: block;&lt;br /&gt;
  width: 27px;&lt;br /&gt;
  height: 27px;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
  image-rendering: pixelated;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .search-toggle {&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper,&lt;br /&gt;
body.skin-vector .searchresults,&lt;br /&gt;
body.skin-vector #userloginForm form {&lt;br /&gt;
  max-width: 920px;&lt;br /&gt;
  margin: 12px auto 20px;&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.82);&lt;br /&gt;
  border: 2px solid var(--sanko-border);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.16);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper {&lt;br /&gt;
  background: rgba(255, 247, 224, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper #searchText {&lt;br /&gt;
  min-height: 34px;&lt;br /&gt;
  border: 1px solid var(--sanko-border);&lt;br /&gt;
  border-radius: 5px 0 0 5px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper .cdx-button,&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper .oo-ui-buttonElement-button,&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper input[type=&amp;quot;submit&amp;quot;] {&lt;br /&gt;
  border-color: rgba(58, 46, 18, 0.72) !important;&lt;br /&gt;
  border-radius: 5px !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #userloginForm form {&lt;br /&gt;
  max-width: 480px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #mw-input-pluggableauthlogin0,&lt;br /&gt;
body.skin-vector .mw-htmlform-submit,&lt;br /&gt;
body.skin-vector .oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled &amp;gt; .oo-ui-buttonElement-button {&lt;br /&gt;
  background: linear-gradient(180deg, var(--sanko-gold-2), var(--sanko-gold)) !important;&lt;br /&gt;
  border: 2px solid #2d2010 !important;&lt;br /&gt;
  border-radius: 5px !important;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
  font-weight: 900 !important;&lt;br /&gt;
  text-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-profile-tabs ul {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
  margin: 12px 0;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-profile-tabs li {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-profile-tabs li a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  padding: 7px 10px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.76);&lt;br /&gt;
  border: 1px solid var(--sanko-border);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-profile-tabs li a:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.24);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-profile-tabs li.current a {&lt;br /&gt;
  background: #3d2f1a;&lt;br /&gt;
  border-color: #1d1508;&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #mw-searchoptions {&lt;br /&gt;
  margin: 12px 0 0;&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.42);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  background: rgba(255, 251, 235, 0.58);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-results {&lt;br /&gt;
  padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-result {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
  margin: 9px 0;&lt;br /&gt;
  padding: 11px 12px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.68);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.36);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-result.sanko-search-with-thumb {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  min-height: 58px;&lt;br /&gt;
  padding-left: 62px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-result .sanko-search-thumb {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  top: 12px;&lt;br /&gt;
  left: 12px;&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 40px;&lt;br /&gt;
  height: 40px;&lt;br /&gt;
  background: #1b140a;&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.58);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.12), 0 4px 10px rgba(42, 18, 0, 0.14);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-result .sanko-search-thumb img {&lt;br /&gt;
  display: block;&lt;br /&gt;
  width: 32px;&lt;br /&gt;
  height: 32px;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
  image-rendering: pixelated;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-result-heading a {&lt;br /&gt;
  color: #114f7c;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .searchmatch {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.45);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-message {&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body,&lt;br /&gt;
.vector-body,&lt;br /&gt;
.parsoid-body,&lt;br /&gt;
.mw-parser-output {&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(255, 251, 235, 0.99), rgba(242, 226, 188, 0.99)),&lt;br /&gt;
    var(--sanko-paper);&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  max-width: none;&lt;br /&gt;
  margin: 24px auto 0;&lt;br /&gt;
  padding: 22px 30px 38px !important;&lt;br /&gt;
  border: 2px solid var(--sanko-border-dark);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  box-shadow:&lt;br /&gt;
    0 22px 70px rgba(18, 8, 4, 0.62),&lt;br /&gt;
    inset 0 0 0 3px rgba(255, 255, 255, 0.3);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-page-title-main,&lt;br /&gt;
.firstHeading {&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  text-shadow: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-body-header {&lt;br /&gt;
  background: transparent;&lt;br /&gt;
  border-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .firstHeading {&lt;br /&gt;
  margin: 0 0 14px;&lt;br /&gt;
  line-height: 1.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.page-Main_Page.skin-vector .firstHeading {&lt;br /&gt;
  margin-bottom: 6px;&lt;br /&gt;
  font-size: 1.85rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output h2,&lt;br /&gt;
.mw-parser-output h3,&lt;br /&gt;
.mw-parser-output h4 {&lt;br /&gt;
  clear: none;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  /* Match the serif of h1/h2 so h3/h4 don&#039;t fall back to the sans body font. */&lt;br /&gt;
  font-family: &amp;quot;Linux Libertine&amp;quot;, &amp;quot;Hoefler Text&amp;quot;, Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output h2 {&lt;br /&gt;
  margin: 24px 0 8px;&lt;br /&gt;
  padding-bottom: 4px;&lt;br /&gt;
  border-bottom: 2px solid rgba(109, 90, 61, 0.4);&lt;br /&gt;
  font-size: 1.35rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output h3 {&lt;br /&gt;
  margin: 18px 0 6px;&lt;br /&gt;
  padding-bottom: 3px;&lt;br /&gt;
  border-bottom: 1px solid rgba(109, 90, 61, 0.26);&lt;br /&gt;
  font-size: 1.08rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output h4 {&lt;br /&gt;
  margin: 14px 0 5px;&lt;br /&gt;
  font-size: 0.98rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a {&lt;br /&gt;
  color: #125a93;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a:visited {&lt;br /&gt;
  color: #6b4aa0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a.new,&lt;br /&gt;
a.new:visited {&lt;br /&gt;
  color: #9f4b22;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
code {&lt;br /&gt;
  padding: 1px 4px;&lt;br /&gt;
  background: rgba(42, 18, 0, 0.08);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.32);&lt;br /&gt;
  border-radius: 3px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable,&lt;br /&gt;
.cargoTable,&lt;br /&gt;
.sanko-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin: 12px 0 18px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.78);&lt;br /&gt;
  border: 1px solid var(--sanko-border);&lt;br /&gt;
  border-collapse: collapse;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable th,&lt;br /&gt;
.cargoTable th,&lt;br /&gt;
.sanko-table th {&lt;br /&gt;
  background: #3d2f1a;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable th,&lt;br /&gt;
.wikitable td,&lt;br /&gt;
.cargoTable th,&lt;br /&gt;
.cargoTable td,&lt;br /&gt;
.sanko-table th,&lt;br /&gt;
.sanko-table td {&lt;br /&gt;
  padding: 7px 9px;&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.34);&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-main {&lt;br /&gt;
  max-width: 1180px;&lt;br /&gt;
  margin: 0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-front {&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-game-tabs {&lt;br /&gt;
  margin: 8px 0 16px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-game-tabs &amp;gt; p {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(5, minmax(0, 1fr));&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
  margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-game-tabs a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  padding: 10px 12px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(255, 247, 224, 0.92), rgba(209, 196, 169, 0.92));&lt;br /&gt;
  border: 2px solid var(--sanko-border);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.3), inset -2px -2px 0 rgba(42, 18, 0, 0.2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-game-tabs a:first-child {&lt;br /&gt;
  background: linear-gradient(180deg, #4c7f52, #2d5d34);&lt;br /&gt;
  border-color: #1d3c22;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, 0.75fr);&lt;br /&gt;
  gap: 14px;&lt;br /&gt;
  margin: 10px 0 16px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-card,&lt;br /&gt;
.sanko-card,&lt;br /&gt;
.sanko-infobox,&lt;br /&gt;
.sanko-recipe,&lt;br /&gt;
.sanko-bounty-prompt,&lt;br /&gt;
.sanko-account-card,&lt;br /&gt;
.sanko-feature-panel,&lt;br /&gt;
.sanko-link-panel,&lt;br /&gt;
.sanko-item-summary {&lt;br /&gt;
  border: 2px solid var(--sanko-border-dark);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  box-shadow:&lt;br /&gt;
    0 8px 18px rgba(42, 18, 0, 0.16),&lt;br /&gt;
    inset 0 0 0 2px rgba(255, 255, 255, 0.18);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-card {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  min-height: 210px;&lt;br /&gt;
  padding: 22px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(135deg, rgba(245, 230, 200, 0.96), rgba(214, 177, 103, 0.88)),&lt;br /&gt;
    var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-primary {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(0, 1fr) auto;&lt;br /&gt;
  align-items: end;&lt;br /&gt;
  gap: 18px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(90deg, rgba(18, 8, 4, 0.92), rgba(42, 18, 0, 0.68) 48%, rgba(18, 8, 4, 0.3)),&lt;br /&gt;
    var(--sanko-backdrop);&lt;br /&gt;
  background-position: center;&lt;br /&gt;
  background-size: cover;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-primary:before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  inset: 0;&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
  background:&lt;br /&gt;
    radial-gradient(circle at 22% 18%, rgba(243, 211, 106, 0.7) 0 1px, transparent 2px 100%),&lt;br /&gt;
    radial-gradient(circle at 84% 22%, rgba(199, 240, 250, 0.55) 0 1px, transparent 2px 100%),&lt;br /&gt;
    linear-gradient(90deg, transparent, rgba(57, 114, 201, 0.08)),&lt;br /&gt;
    repeating-linear-gradient(0deg, rgba(255, 247, 224, 0.08) 0 1px, transparent 1px 18px);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-content,&lt;br /&gt;
.sanko-hero-party {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  z-index: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-party {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(3, 56px);&lt;br /&gt;
  gap: 8px;&lt;br /&gt;
  align-content: center;&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  background: rgba(30, 22, 8, 0.92);&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.12), inset -2px -2px 0 rgba(0, 0, 0, 0.45);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-party .sanko-sprite {&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-party &amp;gt; p {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-kicker,&lt;br /&gt;
.sanko-muted {&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  font-size: 0.9rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-kicker {&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-primary .sanko-kicker {&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.8);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-title {&lt;br /&gt;
  margin: 8px 0;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-size: 2.15rem;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  line-height: 1.06;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-primary .sanko-title,&lt;br /&gt;
.sanko-hero-primary p {&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.82);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-card .sanko-section-title {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-stats {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(4, minmax(0, 1fr));&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  margin: 12px 0 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-stat {&lt;br /&gt;
  min-height: 72px;&lt;br /&gt;
  padding: 11px 12px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.12), inset -2px -2px 0 rgba(0, 0, 0, 0.45);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-stat strong {&lt;br /&gt;
  display: block;&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  font-size: 1.35rem;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-section-title {&lt;br /&gt;
  margin: 20px 0 10px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-size: 1.25rem;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card-grid,&lt;br /&gt;
.sanko-hub-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  /* Wider columns so cards are fewer-per-row and roomy: icons render at full size&lt;br /&gt;
     and descriptions sit on ~2 lines instead of cramming into 3 on a wide viewport. */&lt;br /&gt;
  grid-template-columns: repeat(auto-fit, minmax(232px, 1fr));&lt;br /&gt;
  gap: 12px;&lt;br /&gt;
  margin: 12px 0 22px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card-grid &amp;gt; p,&lt;br /&gt;
.sanko-hub-grid &amp;gt; p {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card-grid a,&lt;br /&gt;
.sanko-hub-grid a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 12px;&lt;br /&gt;
  min-height: 78px;&lt;br /&gt;
  padding: 12px 15px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.82);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Fixed, non-shrinking icon slot so the sprite always renders at full size and&lt;br /&gt;
   never gets squeezed by long descriptions. */&lt;br /&gt;
.sanko-card &amp;gt; .sanko-sprite,&lt;br /&gt;
.sanko-card &amp;gt; .sanko-sprite-link {&lt;br /&gt;
  flex: 0 0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a:hover .sanko-card,&lt;br /&gt;
.sanko-card:hover {&lt;br /&gt;
  border-color: var(--sanko-water);&lt;br /&gt;
  transform: translateY(-1px);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card strong {&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card small {&lt;br /&gt;
  display: block;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  line-height: 1.25;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-feature-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);&lt;br /&gt;
  gap: 14px;&lt;br /&gt;
  margin: 10px 0 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-feature-panel,&lt;br /&gt;
.sanko-link-panel {&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.78);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-feature-panel .sanko-section-title,&lt;br /&gt;
.sanko-link-panel .sanko-section-title {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));&lt;br /&gt;
  gap: 12px;&lt;br /&gt;
  margin: 12px 0 20px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-grid &amp;gt; p {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-grid a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-card {&lt;br /&gt;
  display: block;&lt;br /&gt;
  min-height: 96px;&lt;br /&gt;
  padding: 14px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(255, 247, 224, 0.92), rgba(236, 217, 176, 0.92));&lt;br /&gt;
  border: 2px solid var(--sanko-border-dark);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
  box-shadow: 0 8px 18px rgba(42, 18, 0, 0.16), inset 0 0 0 2px rgba(255, 255, 255, 0.18);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-card strong {&lt;br /&gt;
  display: block;&lt;br /&gt;
  margin-bottom: 6px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-card small {&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a:hover .sanko-action-card,&lt;br /&gt;
.sanko-action-card:hover {&lt;br /&gt;
  border-color: var(--sanko-leaf);&lt;br /&gt;
  transform: translateY(-1px);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-link-panel ul {&lt;br /&gt;
  margin: 8px 0 0;&lt;br /&gt;
  padding-left: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-link-panel li {&lt;br /&gt;
  margin: 4px 0;&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-open-bounties {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  margin: 14px 0 24px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-bounty-card {&lt;br /&gt;
  min-height: 70px;&lt;br /&gt;
  padding: 14px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.1), inset -2px -2px 0 rgba(0, 0, 0, 0.45);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-bounty-title {&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-bounty-claim {&lt;br /&gt;
  margin-top: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-bounty-card .sanko-pill {&lt;br /&gt;
  background: rgba(255, 247, 224, 0.12);&lt;br /&gt;
  border-color: rgba(243, 211, 106, 0.42);&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-account-panel {&lt;br /&gt;
  margin: 10px 0 22px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-account-card {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(0, 1fr) auto;&lt;br /&gt;
  gap: 14px;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  padding: 14px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.82);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-account-title {&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-size: 1.15rem;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-account-meta {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
  margin-top: 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-account-actions {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 8px;&lt;br /&gt;
  justify-content: flex-end;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-button {&lt;br /&gt;
  min-height: 36px;&lt;br /&gt;
  padding: 7px 12px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  cursor: pointer;&lt;br /&gt;
  font: inherit;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.16), inset -1px -1px 0 rgba(0, 0, 0, 0.42);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-button:hover {&lt;br /&gt;
  background: #3d2f1a;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-button:disabled {&lt;br /&gt;
  color: var(--sanko-paper-3);&lt;br /&gt;
  cursor: wait;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  float: right;&lt;br /&gt;
  width: 296px;&lt;br /&gt;
  margin: 0 0 18px 22px;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  background: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-side {&lt;br /&gt;
  display: flow-root;&lt;br /&gt;
  margin: 0 0 14px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ h2,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ h3,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .mw-heading {&lt;br /&gt;
  display: flow-root;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-page-skeleton,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-auto-section,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-missing-data,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-bounty-prompt,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-requirement-list,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-row {&lt;br /&gt;
  display: flow-root;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-catalog-summary {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(180px, 0.35fr) minmax(0, 1fr);&lt;br /&gt;
  gap: 14px;&lt;br /&gt;
  align-items: stretch;&lt;br /&gt;
  margin: 12px 0 20px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-catalog-count {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-direction: column;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  min-height: 120px;&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.12), inset -2px -2px 0 rgba(0, 0, 0, 0.45);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-catalog-count strong {&lt;br /&gt;
  display: block;&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  font-size: 2.2rem;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-title {&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  text-shadow: 0 1px 0 #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-icon {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(18, 8, 4, 0.92), rgba(45, 32, 16, 0.94)),&lt;br /&gt;
    #2d2010;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-icon-frame {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 116px;&lt;br /&gt;
  height: 116px;&lt;br /&gt;
  background: #1b140a;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.1), inset -2px -2px 0 rgba(0, 0, 0, 0.52);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-icon-frame .sanko-sprite-missing {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-model-render {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: 14px;&lt;br /&gt;
  background:&lt;br /&gt;
    radial-gradient(circle at 50% 42%, rgba(243, 211, 106, 0.12), transparent 58%),&lt;br /&gt;
    linear-gradient(180deg, rgba(18, 8, 4, 0.94), rgba(45, 32, 16, 0.96)),&lt;br /&gt;
    #2d2010;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-model-render img {&lt;br /&gt;
  display: block;&lt;br /&gt;
  width: min(220px, 100%);&lt;br /&gt;
  height: auto;&lt;br /&gt;
  aspect-ratio: 1 / 1;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
  filter: drop-shadow(0 12px 18px rgba(0, 0, 0, 0.42));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-examine {&lt;br /&gt;
  padding: 10px 14px 14px;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-table th,&lt;br /&gt;
.sanko-infobox-table td {&lt;br /&gt;
  padding: 7px 10px;&lt;br /&gt;
  border-top: 1px solid rgba(109, 90, 61, 0.34);&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-table th {&lt;br /&gt;
  width: 42%;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  text-align: left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-summary {&lt;br /&gt;
  max-width: none;&lt;br /&gt;
  margin: 8px 0 18px;&lt;br /&gt;
  padding: 13px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.78);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-flow {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-clear,&lt;br /&gt;
.sanko-item-clear {&lt;br /&gt;
  clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-summary-title {&lt;br /&gt;
  margin: 2px 0 8px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-size: 1.35rem;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-summary-grid,&lt;br /&gt;
.sanko-recipe-meta {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sprite,&lt;br /&gt;
.sanko-inventory-slot {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  image-rendering: pixelated;&lt;br /&gt;
  vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sprite {&lt;br /&gt;
  width: 32px;&lt;br /&gt;
  height: 32px;&lt;br /&gt;
  background-image: url(&#039;/w/sanko-assets/Sanko_item_atlas.svg&#039;);&lt;br /&gt;
  background-repeat: no-repeat;&lt;br /&gt;
  background-size: 128px 1056px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sprite-link a {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sprite-missing {&lt;br /&gt;
  background: rgba(45, 32, 16, 0.55);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.5);&lt;br /&gt;
  color: var(--sanko-paper-3);&lt;br /&gt;
  line-height: 30px;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  clear: both;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  max-width: 620px;&lt;br /&gt;
  margin: 14px 0;&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.84);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-pill,&lt;br /&gt;
.sanko-tag {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-height: 22px;&lt;br /&gt;
  padding: 3px 8px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  border: 1px solid #000;&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  font-size: 0.82rem;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-body {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(132px, 1fr) 36px minmax(0, 180px);&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  margin-top: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-inputs {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(3, 44px);&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-inventory-slot {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  width: 44px;&lt;br /&gt;
  height: 44px;&lt;br /&gt;
  padding: 5px;&lt;br /&gt;
  background: #17110a;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  box-shadow: inset 2px 2px 0 #3d2f1a, inset -2px -2px 0 #050301;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Icon frames center their sprite on both axes; line-height:0 removes the inline&lt;br /&gt;
   line-box gap that otherwise pushes inline-block sprites a few px high. */&lt;br /&gt;
.sanko-inventory-slot,&lt;br /&gt;
.sanko-item-icon-frame,&lt;br /&gt;
.sanko-row-image {&lt;br /&gt;
  line-height: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-inventory-slot .sanko-sprite,&lt;br /&gt;
.sanko-item-icon-frame .sanko-sprite,&lt;br /&gt;
.sanko-row-image .sanko-sprite {&lt;br /&gt;
  vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-inventory-qty {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  right: 3px;&lt;br /&gt;
  bottom: 1px;&lt;br /&gt;
  color: #fff6cf;&lt;br /&gt;
  font-size: 11px;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  text-shadow: 1px 1px #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-arrow {&lt;br /&gt;
  color: var(--sanko-water);&lt;br /&gt;
  font-size: 28px;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-output {&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  max-width: 180px;&lt;br /&gt;
  justify-self: end;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-spell-output {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  padding: 8px 9px;&lt;br /&gt;
  background: #17110a;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  box-shadow: inset 2px 2px 0 #3d2f1a, inset -2px -2px 0 #050301;&lt;br /&gt;
  color: #fff6cf;&lt;br /&gt;
  font-size: 0.9rem;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  line-height: 1.12;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 520px) {&lt;br /&gt;
  .sanko-recipe-body {&lt;br /&gt;
    grid-template-columns: minmax(0, 1fr);&lt;br /&gt;
    justify-items: start;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-recipe-output {&lt;br /&gt;
    max-width: none;&lt;br /&gt;
    justify-self: stretch;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-bounty-prompt {&lt;br /&gt;
  margin: 14px 0;&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.78);&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-task-lanes {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));&lt;br /&gt;
  gap: 12px;&lt;br /&gt;
  margin: 12px 0 22px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-task-lane {&lt;br /&gt;
  padding: 13px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.78);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.42);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-task-lane h3 {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-task-card-head {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
  margin-bottom: 7px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-inline-fact {&lt;br /&gt;
  margin: 7px 0;&lt;br /&gt;
  padding: 8px 10px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.72);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.36);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-status-badge {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 5px;&lt;br /&gt;
  min-height: 0;&lt;br /&gt;
  padding: 2px 9px;&lt;br /&gt;
  background: rgba(109, 90, 61, 0.1);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.3);&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  font-size: 0.72rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
  line-height: 1.5;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-status-badge::before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  width: 6px;&lt;br /&gt;
  height: 6px;&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: currentColor;&lt;br /&gt;
  opacity: 0.85;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-status-verified {&lt;br /&gt;
  background: rgba(76, 127, 82, 0.16);&lt;br /&gt;
  border-color: rgba(76, 127, 82, 0.5);&lt;br /&gt;
  color: #3c6b42;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-status-unverified {&lt;br /&gt;
  background: rgba(214, 168, 60, 0.18);&lt;br /&gt;
  border-color: rgba(214, 168, 60, 0.55);&lt;br /&gt;
  color: #8a6a1c;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-edit-login-cta {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: space-between;&lt;br /&gt;
  gap: 12px;&lt;br /&gt;
  margin: 0 0 16px;&lt;br /&gt;
  padding: 14px 16px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.7);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.4);&lt;br /&gt;
  border-left: 3px solid var(--sanko-gold);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-edit-login-cta strong {&lt;br /&gt;
  font-size: 1.02rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-edit-login-cta p {&lt;br /&gt;
  margin: 3px 0 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-edit-login-cta .sanko-button {&lt;br /&gt;
  flex: 0 0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-missing-data {&lt;br /&gt;
  margin: 10px 0;&lt;br /&gt;
  padding: 9px 12px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.5);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.36);&lt;br /&gt;
  border-left: 3px solid var(--sanko-gold);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-missing-data strong,&lt;br /&gt;
.sanko-missing-data span {&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-missing-actions {&lt;br /&gt;
  display: flex !important;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
  margin-top: 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-missing-actions a {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-height: 24px;&lt;br /&gt;
  padding: 3px 7px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.62);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.48);&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
  font-size: 0.82rem;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  line-height: 1.2;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-missing-actions a:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.22);&lt;br /&gt;
  border-color: var(--sanko-leaf);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: 40px minmax(0, 1fr);&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  margin: 7px 0;&lt;br /&gt;
  padding: 8px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.74);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.36);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-image {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 40px;&lt;br /&gt;
  height: 40px;&lt;br /&gt;
  background: #17110a;&lt;br /&gt;
  border: 1px solid #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-render img {&lt;br /&gt;
  display: block;&lt;br /&gt;
  width: 34px;&lt;br /&gt;
  height: 34px;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-render {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 34px;&lt;br /&gt;
  height: 34px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-placeholder {&lt;br /&gt;
  color: var(--sanko-paper-2);&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Title + meta flow on one line and wrap only when they must, so short catalog&lt;br /&gt;
   rows stay single-line instead of always stacking. */&lt;br /&gt;
.sanko-row-body {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  align-items: baseline;&lt;br /&gt;
  gap: 3px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-title {&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  line-height: 1.3;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-meta {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 6px 8px;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  font-size: 0.84rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* MediaWiki wraps the meta spans in a &amp;lt;p&amp;gt;; unwrap it for layout so the flex gap&lt;br /&gt;
   and separators apply to the spans directly. */&lt;br /&gt;
.sanko-row-meta &amp;gt; p {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Separate adjacent text metas (Qty · Station · Skill · Level) so they don&#039;t read&lt;br /&gt;
   as one run-on line; the status pill is excluded so it keeps its own spacing. */&lt;br /&gt;
.sanko-row-meta span:not(.sanko-status-badge) + span:not(.sanko-status-badge)::before {&lt;br /&gt;
  content: &amp;quot;·&amp;quot;;&lt;br /&gt;
  margin-right: 8px;&lt;br /&gt;
  color: rgba(90, 56, 16, 0.5);&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* RuneScape-style recipe usage/product tables (Used In / Created By). */&lt;br /&gt;
.sanko-recipe-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin: 12px 0 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-table th {&lt;br /&gt;
  font-size: 0.82rem;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-table td {&lt;br /&gt;
  vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-rt-primary {&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-rt-icon {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  vertical-align: middle;&lt;br /&gt;
  margin-right: 7px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Many products (spells, etc.) have no item sprite; drop the &amp;quot;?&amp;quot; placeholder&lt;br /&gt;
   entirely rather than showing a broken icon. */&lt;br /&gt;
.sanko-recipe-table .sanko-rt-icon:has(.sanko-sprite-missing) {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-rt-num {&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Materials cell in the &amp;quot;Created By&amp;quot; table: a wrapping list of qty + icon + item. */&lt;br /&gt;
.sanko-rt-materials {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 5px 12px;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-rt-mat {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 4px;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-rt-mat-qty {&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-source-list {&lt;br /&gt;
  margin: 8px 0 16px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-requirement-list,&lt;br /&gt;
.sanko-family-nav,&lt;br /&gt;
.sanko-page-skeleton {&lt;br /&gt;
  margin: 12px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-family-nav {&lt;br /&gt;
  padding: 9px 11px;&lt;br /&gt;
  background: rgba(45, 32, 16, 0.92);&lt;br /&gt;
  border: 1px solid #000;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-family-nav a {&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-family-nav-label {&lt;br /&gt;
  margin-right: 8px;&lt;br /&gt;
  color: var(--sanko-paper-2);&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-page-lead {&lt;br /&gt;
  max-width: 76ch;&lt;br /&gt;
  margin: 8px 0 18px;&lt;br /&gt;
  font-size: 1.02rem;&lt;br /&gt;
  line-height: 1.55;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-minetip {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  z-index: 10000;&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
  padding: 6px 8px;&lt;br /&gt;
  background: #100f18;&lt;br /&gt;
  border: 1px solid #6f62b8;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
  font-size: 13px;&lt;br /&gt;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-footer li,&lt;br /&gt;
body.skin-vector .mw-footer a {&lt;br /&gt;
  color: var(--sanko-paper-3);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-page-columns {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.5fr);&lt;br /&gt;
  gap: 14px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-breadcrumbs {&lt;br /&gt;
  margin: 0 0 10px;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  font-size: 0.88rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Tighten the header→content transition: the empty subtitle and blank paragraphs&lt;br /&gt;
   MediaWiki inserts above/below the breadcrumb were creating large dead bands. */&lt;br /&gt;
body.skin-vector .mw-body-content {&lt;br /&gt;
  margin-top: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #contentSub:empty,&lt;br /&gt;
body.skin-vector #siteSub:empty,&lt;br /&gt;
body.skin-vector #contentSub2:empty {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-parser-output p:empty,&lt;br /&gt;
body.skin-vector .mw-parser-output p:has(&amp;gt; br:only-child) {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-parser-output &amp;gt; .sanko-breadcrumbs:first-child {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 820px) {&lt;br /&gt;
  .mw-body {&lt;br /&gt;
    margin: 12px 8px 0;&lt;br /&gt;
    padding: 0 12px 24px !important;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-hero,&lt;br /&gt;
  .sanko-feature-grid,&lt;br /&gt;
  .sanko-page-columns,&lt;br /&gt;
  .sanko-stats,&lt;br /&gt;
  .sanko-catalog-summary {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-game-tabs &amp;gt; p {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-hero-primary {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-hero-party {&lt;br /&gt;
    grid-template-columns: repeat(6, 44px);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-account-card {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-infobox {&lt;br /&gt;
    float: none;&lt;br /&gt;
    width: auto;&lt;br /&gt;
    margin: 0 0 16px;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* Wide data tables scroll within their own box instead of overflowing the page. */&lt;br /&gt;
  .mw-parser-output .wikitable,&lt;br /&gt;
  .mw-parser-output .cargoTable,&lt;br /&gt;
  .mw-parser-output .sanko-table {&lt;br /&gt;
    display: block;&lt;br /&gt;
    max-width: 100%;&lt;br /&gt;
    overflow-x: auto;&lt;br /&gt;
    -webkit-overflow-scrolling: touch;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* Search must not force horizontal scroll on small screens. */&lt;br /&gt;
  body.skin-vector #p-search {&lt;br /&gt;
    min-width: 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Main_Page&amp;diff=441</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Main_Page&amp;diff=441"/>
		<updated>2026-07-03T17:51:03Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;sanko-main sanko-front&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-hero&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-hero-card sanko-hero-primary&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-hero-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-kicker&amp;quot;&amp;gt;The SankoQuest Wiki&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-title&amp;quot;&amp;gt;Welcome to the SankoQuest Wiki&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The community-built guide to SankoQuest — every item, skill, monster, shop, and quest, with the drops, recipes, and routes to go with them. Anyone can help: play the game, confirm something, and add it.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-hero-party&amp;quot;&amp;gt;&lt;br /&gt;
{{ItemSprite|Bronze Pickaxe|size=48}}&lt;br /&gt;
{{ItemSprite|Bronze Short Sword|size=48}}&lt;br /&gt;
{{ItemSprite|Bronze Bar|size=48}}&lt;br /&gt;
{{ItemSprite|Air Shard|size=48}}&lt;br /&gt;
{{ItemSprite|Water Shard|size=48}}&lt;br /&gt;
{{ItemSprite|Coins|size=48}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-hero-card&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-section-title&amp;quot;&amp;gt;Getting Started&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;New to the game?&amp;lt;/strong&amp;gt; [https://sigma.sankoquest.com Play SankoQuest], then open the [[New Player Guide]] and browse [[Items]], the [[Bestiary]], and [[Shops]].&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Want to help?&amp;lt;/strong&amp;gt; See [[SankoQuest:How to help|How to help]] — add one thing you&#039;ve confirmed in-game and every page gets better.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;sanko-muted&amp;quot;&amp;gt;Follow the game: [https://x.com/SankoGameCorp @SankoGameCorp] · [https://docs.sanko.xyz Docs]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-stats&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-stat&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;{{#cargo_query:tables=Items|fields=COUNT(*)|no html|default=0}}&amp;lt;/strong&amp;gt; catalog items&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-stat&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;{{#cargo_query:tables=ResourceNodes|fields=COUNT(*)|no html|default=0}}&amp;lt;/strong&amp;gt; resource nodes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-stat&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;{{#cargo_query:tables=Shops|fields=COUNT(*)|no html|default=0}}&amp;lt;/strong&amp;gt; shops&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-stat&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;{{NUMBEROFARTICLES}}&amp;lt;/strong&amp;gt; guide pages&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-game-tabs&amp;quot;&amp;gt;&lt;br /&gt;
[[Main Page|SankoQuest]]&lt;br /&gt;
[[Items|Items]]&lt;br /&gt;
[[Locations|Locations]]&lt;br /&gt;
[[Shops|Shops]]&lt;br /&gt;
[[New Player Guide|New Player Guide]]&lt;br /&gt;
[[Updates|Updates]]&lt;br /&gt;
[[SankoQuest:How to help|How to help]]&lt;br /&gt;
[[SankoQuest:Open bounties|Open bounties]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-section-title&amp;quot;&amp;gt;Game Guide&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-card-grid&amp;quot;&amp;gt;&lt;br /&gt;
[[Items|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Bronze Bar|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Items&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Item pages, sources, uses, and stats&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Shards|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Spirit Shard|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Shards&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Elemental crafting materials&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Equipment|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Bronze Short Sword|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Equipment&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Weapons, armor, tools, and slots&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Smithing|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Bronze Pickaxe|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Smithing&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Bars, tools, armor, and furnaces&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Mining|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Copper Ore|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Mining&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Ores, rocks, and pickaxes&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Combat|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Bronze Short Sword|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Combat&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Weapons, armor, mobs, and drops&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Magic|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Air Shard|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Magic&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Spellbook and shard costs&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Woodcutting|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Log|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Woodcutting&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Logs, axes, and trees&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Fletching|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Bow|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Fletching&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Bows, arrows, and shafts&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Fishing|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Fishing Rod|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Fishing&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Fish, rods, nets, and spots&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Cooking|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Cooked Brown Trout|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Cooking&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Raw food, cooked food, and fires&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Herblore|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Stamina Potion|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Herblore&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Vials, herbs, and potions&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Bestiary|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Bones|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Bestiary&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Mobs, levels, and drop tables&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[NPCs|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Tin of Beer|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;NPCs&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Characters, services, dialogue, and quests&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Shops|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Coins|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Shops&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Stock, prices, currency, and keepers&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Locations|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Warp Shard|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Locations&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Towns, facilities, routes, and maps&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Resource Nodes|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Copper Ore|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Resource Nodes&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Rocks, trees, fish spots, and facilities&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Quests|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Warp Shard|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Quests&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Requirements, rewards, and steps&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Market|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Coins|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Market&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Trade notes and future price views&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Calculators|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Crafting Knife|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Calculators&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Planned skilling and profit tools&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Updates|&amp;lt;span class=&amp;quot;sanko-card&amp;quot;&amp;gt;{{ItemSprite|Warp Shard|size=44}} &amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Updates&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Changes, affected pages, and evidence&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-feature-grid&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-feature-panel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-section-title&amp;quot;&amp;gt;Spell Example&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Recipe&lt;br /&gt;
|recipe_id=frontpage_air_missile&lt;br /&gt;
|recipe_kind=Spell&lt;br /&gt;
|output=Air Missile&lt;br /&gt;
|output_qty=1&lt;br /&gt;
|input1=Air Shard&lt;br /&gt;
|input1_qty=1&lt;br /&gt;
|input2=Spirit Shard&lt;br /&gt;
|input2_qty=1&lt;br /&gt;
|station=Spellbook&lt;br /&gt;
|skill=Magic&lt;br /&gt;
|level_req=1&lt;br /&gt;
|element=air&lt;br /&gt;
|base_max_hit=2&lt;br /&gt;
|source=SankoQuest game data&lt;br /&gt;
|verification_status=Needs gameplay verification&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-link-panel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-section-title&amp;quot;&amp;gt;Contributor Pattern&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start with one confirmed fact: where to get it, what it makes, who drops it, or what it unlocks.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use existing item, recipe, shop, drop, NPC, and location sections so pages stay consistent.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Link exact page names for items, skills, mobs, shops, and locations.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Leave unknown facts open for review instead of guessing.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-section-title&amp;quot;&amp;gt;Open Bounties&amp;lt;/div&amp;gt;&lt;br /&gt;
{{#cargo_query:&lt;br /&gt;
tables=Bounties&lt;br /&gt;
|fields=title=Bounty,family=Family,CONCAT(&#039;[[&#039;,page,&#039;]]&#039;)=Target&lt;br /&gt;
|order by=family ASC, title ASC&lt;br /&gt;
|limit=6&lt;br /&gt;
|format=table&lt;br /&gt;
|default=No open bounties right now.&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;p&amp;gt;[[SankoQuest:Open bounties|See everything the wiki needs]] — pages missing a fact you might know. Pick one, add it, done.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-section-title&amp;quot;&amp;gt;Help Build the Wiki&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-action-grid&amp;quot;&amp;gt;&lt;br /&gt;
[[SankoQuest:How to help|&amp;lt;span class=&amp;quot;sanko-action-card&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Start contributing&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;New to editing? A two-minute walkthrough of how to add your first fact.&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[Items|&amp;lt;span class=&amp;quot;sanko-action-card&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Fill item pages&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Every item has a page. Add where it comes from and what it makes.&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[New Player Guide|&amp;lt;span class=&amp;quot;sanko-action-card&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Write starter guidance&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Know the early game? Turn what worked for you into a clear guide.&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
[[SankoQuest:Open bounties|&amp;lt;span class=&amp;quot;sanko-action-card&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;See what&#039;s needed&amp;lt;/strong&amp;gt;&amp;lt;small&amp;gt;Pages missing a confirmed detail — pick one and fill it in.&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-section-title&amp;quot;&amp;gt;Adventurer&#039;s Log&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-account-panel&amp;quot; data-live=&amp;quot;true&amp;quot; data-tip-target-subject=&amp;quot;did:privy:sanko-guide-steward&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-account-card sanko-muted&amp;quot;&amp;gt;Loading Adventurer profile...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-feature-grid&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-link-panel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-section-title&amp;quot;&amp;gt;Popular Pages&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[Air Shard]] · [[Bronze Pickaxe]] · [[Bronze Bar]] · [[Copper Ore]] · [[Smithing]] · [[Items]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-link-panel&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sanko-section-title&amp;quot;&amp;gt;Help Wanted&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;[[SankoQuest:Open bounties|Pages that need a fact]] confirmed, an image added, or a guide written. Good first edits live here.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=MediaWiki:Common.js&amp;diff=440</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=MediaWiki:Common.js&amp;diff=440"/>
		<updated>2026-07-02T20:42:11Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(function () {&lt;br /&gt;
  var tip;&lt;br /&gt;
&lt;br /&gt;
  function showTip(target, event) {&lt;br /&gt;
    var title = target.getAttribute(&#039;data-minetip-title&#039;);&lt;br /&gt;
    if (!title) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (!tip) {&lt;br /&gt;
      tip = document.createElement(&#039;div&#039;);&lt;br /&gt;
      tip.className = &#039;sanko-minetip&#039;;&lt;br /&gt;
      document.body.appendChild(tip);&lt;br /&gt;
    }&lt;br /&gt;
    tip.textContent = title;&lt;br /&gt;
    tip.style.display = &#039;block&#039;;&lt;br /&gt;
    moveTip(event);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function moveTip(event) {&lt;br /&gt;
    if (!tip) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    tip.style.left = event.clientX + 14 + &#039;px&#039;;&lt;br /&gt;
    tip.style.top = event.clientY + 14 + &#039;px&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function hideTip() {&lt;br /&gt;
    if (tip) {&lt;br /&gt;
      tip.style.display = &#039;none&#039;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function wikiScriptUrl(title, params) {&lt;br /&gt;
    var url = new URL(&#039;/w/index.php&#039;, window.location.origin);&lt;br /&gt;
    url.searchParams.set(&#039;title&#039;, title);&lt;br /&gt;
    Object.keys(params || {}).forEach(function (key) {&lt;br /&gt;
      if (params[key]) {&lt;br /&gt;
        url.searchParams.set(key, params[key]);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    return url.toString();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function redirectCreateAccountToPrivy() {&lt;br /&gt;
    if (!window.mw || !mw.config || mw.config.get(&#039;wgCanonicalSpecialPageName&#039;) !== &#039;CreateAccount&#039;) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var params = new URLSearchParams(window.location.search);&lt;br /&gt;
    var returnTo = params.get(&#039;returnto&#039;) || &#039;Main Page&#039;;&lt;br /&gt;
    var returnToQuery = params.get(&#039;returntoquery&#039;) || &#039;&#039;;&lt;br /&gt;
    window.location.replace(wikiScriptUrl(&#039;Special:UserLogin&#039;, {&lt;br /&gt;
      returnto: returnTo,&lt;br /&gt;
      returntoquery: returnToQuery&lt;br /&gt;
    }));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function enhanceEditForAnon() {&lt;br /&gt;
    if (!window.mw || !mw.config) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var loggedIn = mw.user &amp;amp;&amp;amp; typeof mw.user.isAnon === &#039;function&#039;&lt;br /&gt;
      ? !mw.user.isAnon()&lt;br /&gt;
      : Boolean(mw.config.get(&#039;wgUserName&#039;));&lt;br /&gt;
    if (loggedIn) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var namespace = mw.config.get(&#039;wgNamespaceNumber&#039;);&lt;br /&gt;
    if (typeof namespace === &#039;number&#039; &amp;amp;&amp;amp; namespace &amp;lt; 0) {&lt;br /&gt;
      return; // Special/virtual pages have nothing to edit.&lt;br /&gt;
    }&lt;br /&gt;
    var loginHref = wikiScriptUrl(&#039;Special:UserLogin&#039;, {&lt;br /&gt;
      returnto: mw.config.get(&#039;wgPageName&#039;),&lt;br /&gt;
      returntoquery: &#039;action=edit&#039;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // 1) Always surface a clear &amp;quot;Edit&amp;quot; tab. Logged-out users get sent through&lt;br /&gt;
    //    Privy login and returned to the page in edit mode (no anon editing).&lt;br /&gt;
    var viewSource = document.getElementById(&#039;ca-viewsource&#039;);&lt;br /&gt;
    if (viewSource) {&lt;br /&gt;
      var vsLink = viewSource.querySelector(&#039;a&#039;);&lt;br /&gt;
      if (vsLink) {&lt;br /&gt;
        vsLink.setAttribute(&#039;href&#039;, loginHref);&lt;br /&gt;
        vsLink.setAttribute(&#039;title&#039;, &#039;Log in to edit this page&#039;);&lt;br /&gt;
        var vsLabel = vsLink.querySelector(&#039;span&#039;) || vsLink;&lt;br /&gt;
        vsLabel.textContent = &#039;Edit&#039;;&lt;br /&gt;
      }&lt;br /&gt;
    } else if (!document.getElementById(&#039;ca-edit&#039;) &amp;amp;&amp;amp; mw.util &amp;amp;&amp;amp; mw.util.addPortletLink) {&lt;br /&gt;
      mw.util.addPortletLink(&#039;p-views&#039;, loginHref, &#039;Edit&#039;, &#039;ca-edit&#039;, &#039;Log in to edit this page&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 2) On the edit / view-source page itself, add an explicit login call to action.&lt;br /&gt;
    var action = mw.config.get(&#039;wgAction&#039;);&lt;br /&gt;
    if ((action === &#039;edit&#039; || action === &#039;submit&#039;) &amp;amp;&amp;amp; !document.getElementById(&#039;sanko-edit-login-cta&#039;)) {&lt;br /&gt;
      var content = document.getElementById(&#039;mw-content-text&#039;);&lt;br /&gt;
      if (content) {&lt;br /&gt;
        var cta = document.createElement(&#039;div&#039;);&lt;br /&gt;
        cta.id = &#039;sanko-edit-login-cta&#039;;&lt;br /&gt;
        cta.className = &#039;sanko-edit-login-cta&#039;;&lt;br /&gt;
&lt;br /&gt;
        var copy = document.createElement(&#039;div&#039;);&lt;br /&gt;
        var heading = document.createElement(&#039;strong&#039;);&lt;br /&gt;
        heading.textContent = &#039;Log in to edit this page&#039;;&lt;br /&gt;
        var detail = document.createElement(&#039;p&#039;);&lt;br /&gt;
        detail.className = &#039;sanko-muted&#039;;&lt;br /&gt;
        detail.textContent = &amp;quot;Editing the wiki needs a free account. Sign in with Privy and you&#039;ll come straight back here to edit.&amp;quot;;&lt;br /&gt;
        copy.appendChild(heading);&lt;br /&gt;
        copy.appendChild(detail);&lt;br /&gt;
&lt;br /&gt;
        var loginLink = document.createElement(&#039;a&#039;);&lt;br /&gt;
        loginLink.className = &#039;sanko-button&#039;;&lt;br /&gt;
        loginLink.setAttribute(&#039;href&#039;, loginHref);&lt;br /&gt;
        loginLink.textContent = &#039;Log in with Privy&#039;;&lt;br /&gt;
&lt;br /&gt;
        cta.appendChild(copy);&lt;br /&gt;
        cta.appendChild(loginLink);&lt;br /&gt;
        content.insertBefore(cta, content.firstChild);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 3) Section-level [edit] links. MediaWiki omits these for users without edit&lt;br /&gt;
    //    rights and no config restores them (even Extension:Unregistered Edit Links&lt;br /&gt;
    //    skips sections), so add native-styled links next to each heading on the&lt;br /&gt;
    //    article view — each routes through login and back to that section&#039;s editor.&lt;br /&gt;
    if (action === &#039;view&#039;) {&lt;br /&gt;
      var sectionRoot = document.getElementById(&#039;mw-content-text&#039;);&lt;br /&gt;
      var headlines = sectionRoot ? sectionRoot.querySelectorAll(&#039;.mw-headline&#039;) : [];&lt;br /&gt;
      Array.prototype.forEach.call(headlines, function (headline, index) {&lt;br /&gt;
        var heading = headline.parentNode;&lt;br /&gt;
        if (!heading || heading.querySelector(&#039;.mw-editsection&#039;)) {&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
        var sectionHref = wikiScriptUrl(&#039;Special:UserLogin&#039;, {&lt;br /&gt;
          returnto: mw.config.get(&#039;wgPageName&#039;),&lt;br /&gt;
          returntoquery: &#039;action=edit&amp;amp;section=&#039; + (index + 1)&lt;br /&gt;
        });&lt;br /&gt;
        var wrap = document.createElement(&#039;span&#039;);&lt;br /&gt;
        wrap.className = &#039;mw-editsection&#039;;&lt;br /&gt;
        var open = document.createElement(&#039;span&#039;);&lt;br /&gt;
        open.className = &#039;mw-editsection-bracket&#039;;&lt;br /&gt;
        open.textContent = &#039;[&#039;;&lt;br /&gt;
        var sectionLink = document.createElement(&#039;a&#039;);&lt;br /&gt;
        sectionLink.setAttribute(&#039;href&#039;, sectionHref);&lt;br /&gt;
        sectionLink.setAttribute(&#039;title&#039;, &#039;Log in to edit this section&#039;);&lt;br /&gt;
        sectionLink.textContent = &#039;edit&#039;;&lt;br /&gt;
        var close = document.createElement(&#039;span&#039;);&lt;br /&gt;
        close.className = &#039;mw-editsection-bracket&#039;;&lt;br /&gt;
        close.textContent = &#039;]&#039;;&lt;br /&gt;
        wrap.appendChild(open);&lt;br /&gt;
        wrap.appendChild(sectionLink);&lt;br /&gt;
        wrap.appendChild(close);&lt;br /&gt;
        heading.appendChild(wrap);&lt;br /&gt;
      });&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function polishLoginChrome() {&lt;br /&gt;
    var loginButton = document.getElementById(&#039;mw-input-pluggableauthlogin0&#039;);&lt;br /&gt;
    if (loginButton) {&lt;br /&gt;
      loginButton.textContent = &#039;Log in with Privy&#039;;&lt;br /&gt;
      loginButton.value = &#039;Log in with Privy&#039;;&lt;br /&gt;
    }&lt;br /&gt;
    document.querySelectorAll(&#039;#pt-createaccount, #pt-createaccount-2, #mw-createaccount-cta&#039;).forEach(function (node) {&lt;br /&gt;
      node.remove();&lt;br /&gt;
    });&lt;br /&gt;
    // Header nav: keep it short as a compact &amp;quot;Log in&amp;quot; button. The full &amp;quot;Log in with Privy&amp;quot;&lt;br /&gt;
    // wording still shows on the login page CTA itself (loginButton above).&lt;br /&gt;
    document.querySelectorAll(&#039;#pt-login a span:last-child, #pt-login-2 a span:last-child&#039;).forEach(function (node) {&lt;br /&gt;
      node.textContent = &#039;Log in&#039;;&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var itemThumbsPromise;&lt;br /&gt;
&lt;br /&gt;
  function loadItemThumbnails() {&lt;br /&gt;
    if (!itemThumbsPromise) {&lt;br /&gt;
      itemThumbsPromise = fetch(&#039;/w/sanko-assets/sanko/item-thumbnails.json&#039;, {&lt;br /&gt;
        headers: { Accept: &#039;application/json&#039; }&lt;br /&gt;
      })&lt;br /&gt;
        .then(function (response) { return response.ok ? response.json() : {}; })&lt;br /&gt;
        .catch(function () { return {}; });&lt;br /&gt;
    }&lt;br /&gt;
    return itemThumbsPromise;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function itemThumbnailFor(title, thumbnails) {&lt;br /&gt;
    var normalized = String(title || &#039;&#039;).replace(/_/g, &#039; &#039;).trim();&lt;br /&gt;
    return thumbnails[normalized] || &#039;&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function imageUrl(relativePath) {&lt;br /&gt;
    return &#039;/w/sanko-assets/&#039; + String(relativePath || &#039;&#039;).replace(/^\/+/, &#039;&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderModelImages() {&lt;br /&gt;
    document.querySelectorAll(&#039;.sanko-model-render[data-sanko-render-image], .sanko-row-render[data-sanko-render-image]&#039;).forEach(function (container) {&lt;br /&gt;
      if (container.querySelector(&#039;img&#039;)) {&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      var relativePath = container.getAttribute(&#039;data-sanko-render-image&#039;);&lt;br /&gt;
      if (!relativePath) {&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      var img = document.createElement(&#039;img&#039;);&lt;br /&gt;
      img.src = imageUrl(relativePath);&lt;br /&gt;
      img.alt = container.getAttribute(&#039;data-sanko-render-alt&#039;) || &#039;&#039;;&lt;br /&gt;
      img.loading = &#039;lazy&#039;;&lt;br /&gt;
      container.appendChild(img);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function addSearchThumb(container, title, href, thumbnails) {&lt;br /&gt;
    if (!container || container.querySelector(&#039;.sanko-search-thumb&#039;)) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var relativePath = itemThumbnailFor(title, thumbnails);&lt;br /&gt;
    if (!relativePath) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var link = document.createElement(href ? &#039;a&#039; : &#039;span&#039;);&lt;br /&gt;
    link.className = &#039;sanko-search-thumb&#039;;&lt;br /&gt;
    if (href) {&lt;br /&gt;
      link.href = href;&lt;br /&gt;
    }&lt;br /&gt;
    var img = document.createElement(&#039;img&#039;);&lt;br /&gt;
    img.src = imageUrl(relativePath);&lt;br /&gt;
    img.alt = &#039;&#039;;&lt;br /&gt;
    img.loading = &#039;lazy&#039;;&lt;br /&gt;
    img.onerror = function () {&lt;br /&gt;
      link.remove();&lt;br /&gt;
      if (!container.querySelector(&#039;.sanko-search-thumb&#039;)) {&lt;br /&gt;
        container.classList.remove(&#039;sanko-search-with-thumb&#039;);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    link.appendChild(img);&lt;br /&gt;
    container.insertBefore(link, container.firstChild);&lt;br /&gt;
    container.classList.add(&#039;sanko-search-with-thumb&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function enhanceSearchResults(thumbnails) {&lt;br /&gt;
    document.querySelectorAll(&#039;.mw-search-results .mw-search-result&#039;).forEach(function (result) {&lt;br /&gt;
      var heading = result.querySelector(&#039;.mw-search-result-heading a&#039;);&lt;br /&gt;
      if (!heading) {&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      addSearchThumb(result, heading.textContent, heading.href, thumbnails);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function suggestionTitle(node) {&lt;br /&gt;
    var label = node.querySelector(&#039;.cdx-menu-item__text__label, .cdx-menu-item__content, .cdx-typeahead-search__search-footer__text&#039;);&lt;br /&gt;
    return (label || node).textContent || &#039;&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function enhanceSearchSuggestions(thumbnails) {&lt;br /&gt;
    document.querySelectorAll(&#039;.cdx-typeahead-search__menu .cdx-menu-item, .cdx-menu__listbox .cdx-menu-item&#039;).forEach(function (item) {&lt;br /&gt;
      if (item.querySelector(&#039;.sanko-search-thumb&#039;)) {&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      addSearchThumb(item, suggestionTitle(item), null, thumbnails);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function enhanceSearchChrome() {&lt;br /&gt;
    if (!document.querySelector(&#039;.mw-search-results, .cdx-typeahead-search, #p-search&#039;)) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    loadItemThumbnails().then(function (thumbnails) {&lt;br /&gt;
      enhanceSearchResults(thumbnails);&lt;br /&gt;
      enhanceSearchSuggestions(thumbnails);&lt;br /&gt;
      var observer = new MutationObserver(function () {&lt;br /&gt;
        enhanceSearchSuggestions(thumbnails);&lt;br /&gt;
      });&lt;br /&gt;
      var searchRoot = document.querySelector(&#039;.cdx-typeahead-search, #p-search&#039;) || document.body;&lt;br /&gt;
      observer.observe(searchRoot, { childList: true, subtree: true });&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  document.addEventListener(&#039;mouseover&#039;, function (event) {&lt;br /&gt;
    var target = event.target.closest(&#039;[data-minetip-title]&#039;);&lt;br /&gt;
    if (target) {&lt;br /&gt;
      showTip(target, event);&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  document.addEventListener(&#039;mousemove&#039;, moveTip);&lt;br /&gt;
  document.addEventListener(&#039;mouseout&#039;, function (event) {&lt;br /&gt;
    if (event.target.closest(&#039;[data-minetip-title]&#039;)) {&lt;br /&gt;
      hideTip();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  // Bounties are a wiki/Cargo feature (see Template:BountyPrompt + SankoQuest:Open bounties):&lt;br /&gt;
  // pages are tagged in wikitext and listed via Cargo. Nothing bounty-related renders from here.&lt;br /&gt;
&lt;br /&gt;
  function engineBase() {&lt;br /&gt;
    return (window.sankoEngineApiBase || &#039;https://api.sankoquest.wiki&#039;).replace(/\/$/, &#039;&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function currentSubject() {&lt;br /&gt;
    if (window.sankoEngineSubject) {&lt;br /&gt;
      return window.sankoEngineSubject;&lt;br /&gt;
    }&lt;br /&gt;
    if (window.sankoFixtureSubject) {&lt;br /&gt;
      return window.sankoFixtureSubject;&lt;br /&gt;
    }&lt;br /&gt;
    if (window.mw &amp;amp;&amp;amp; mw.config &amp;amp;&amp;amp; mw.config.get(&#039;wgUserName&#039;)) {&lt;br /&gt;
      return &#039;did:privy:&#039; + String(mw.config.get(&#039;wgUserName&#039;)).toLowerCase().replace(/[^a-z0-9]+/g, &#039;-&#039;);&lt;br /&gt;
    }&lt;br /&gt;
    return &#039;&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function jsonFetch(url, options) {&lt;br /&gt;
    return fetch(url, options || {}).then(function (response) {&lt;br /&gt;
      if (!response.ok) {&lt;br /&gt;
        return response.json().catch(function () {&lt;br /&gt;
          return {};&lt;br /&gt;
        }).then(function (body) {&lt;br /&gt;
          var error = new Error(&#039;Sanko engine request failed: &#039; + response.status);&lt;br /&gt;
          error.status = response.status;&lt;br /&gt;
          error.code = body &amp;amp;&amp;amp; body.error;&lt;br /&gt;
          throw error;&lt;br /&gt;
        });&lt;br /&gt;
      }&lt;br /&gt;
      return response.json();&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function authHeaders(subject, includeJson) {&lt;br /&gt;
    var headers = includeJson ? { &#039;content-type&#039;: &#039;application/json&#039; } : {};&lt;br /&gt;
    if (window.sankoPrivyIdentityToken) {&lt;br /&gt;
      headers.authorization = &#039;Bearer &#039; + window.sankoPrivyIdentityToken;&lt;br /&gt;
    } else if (window.sankoWikiAuthToken) {&lt;br /&gt;
      headers.authorization = &#039;Bearer &#039; + window.sankoWikiAuthToken;&lt;br /&gt;
    } else if (window.sankoEnableFixtureAuth === true &amp;amp;&amp;amp; subject) {&lt;br /&gt;
      headers[&#039;x-sanko-sub&#039;] = subject;&lt;br /&gt;
    }&lt;br /&gt;
    return headers;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function hasWriteAuth(subject) {&lt;br /&gt;
    return Boolean(&lt;br /&gt;
      window.sankoPrivyIdentityToken ||&lt;br /&gt;
      window.sankoWikiAuthToken ||&lt;br /&gt;
      (window.sankoEnableFixtureAuth === true &amp;amp;&amp;amp; subject)&lt;br /&gt;
    );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function pill(text) {&lt;br /&gt;
    return &#039;&amp;lt;span class=&amp;quot;sanko-pill&amp;quot;&amp;gt;&#039; + escapeHtml(text) + &#039;&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function escapeHtml(value) {&lt;br /&gt;
    return String(value == null ? &#039;&#039; : value).replace(/[&amp;amp;&amp;lt;&amp;gt;&amp;quot;&#039;]/g, function (char) {&lt;br /&gt;
      return {&lt;br /&gt;
        &#039;&amp;amp;&#039;: &#039;&amp;amp;amp;&#039;,&lt;br /&gt;
        &#039;&amp;lt;&#039;: &#039;&amp;amp;lt;&#039;,&lt;br /&gt;
        &#039;&amp;gt;&#039;: &#039;&amp;amp;gt;&#039;,&lt;br /&gt;
        &#039;&amp;quot;&#039;: &#039;&amp;amp;quot;&#039;,&lt;br /&gt;
        &amp;quot;&#039;&amp;quot;: &#039;&amp;amp;#39;&#039;&lt;br /&gt;
      }[char];&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var CHAR_CONTRACT = &#039;0xAA2F665a011d404d71e8f49d4d09f7006C49aC5c&#039;;&lt;br /&gt;
&lt;br /&gt;
  function charChips(tokenIds) {&lt;br /&gt;
    return (tokenIds || []).map(function (tokenId) {&lt;br /&gt;
      var id = String(tokenId).replace(/[^0-9]/g, &#039;&#039;);&lt;br /&gt;
      if (!id) {&lt;br /&gt;
        return &#039;&#039;;&lt;br /&gt;
      }&lt;br /&gt;
      var href = &#039;https://arbiscan.io/token/&#039; + CHAR_CONTRACT + &#039;?a=&#039; + id;&lt;br /&gt;
      return &#039;&amp;lt;a class=&amp;quot;sanko-pill sanko-char-chip&amp;quot; href=&amp;quot;&#039; + href +&lt;br /&gt;
        &#039;&amp;quot; target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener noreferrer&amp;quot;&amp;gt;CHAR #&#039; + escapeHtml(id) + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
    }).join(&#039;&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderAccount(root, profile) {&lt;br /&gt;
    var account = profile.account || {};&lt;br /&gt;
    var stats = profile.stats || {};&lt;br /&gt;
    var name = account.charName || account.displayName || account.handle || &#039;Unlinked adventurer&#039;;&lt;br /&gt;
    var linked = account.linkedSankoAddress &amp;amp;&amp;amp; account.charTokenIds &amp;amp;&amp;amp; account.charTokenIds.length;&lt;br /&gt;
    var titles = stats.titles &amp;amp;&amp;amp; stats.titles.length ? stats.titles.join(&#039;, &#039;) : &#039;New Chronicler&#039;;&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    var targetSubject =&lt;br /&gt;
      root.getAttribute(&#039;data-tip-target-subject&#039;) ||&lt;br /&gt;
      window.sankoTipTargetSubject ||&lt;br /&gt;
      account.subject ||&lt;br /&gt;
      subject;&lt;br /&gt;
    var actions = [];&lt;br /&gt;
    // Tipping stays hidden until the GOLD transfer path is live (window.sankoTipsEnabled,&lt;br /&gt;
    // injected server-side from MW_SANKO_TIPS_ENABLED). The engine also 404s /v1/tips while off.&lt;br /&gt;
    if (window.sankoTipsEnabled === true &amp;amp;&amp;amp; targetSubject &amp;amp;&amp;amp; targetSubject !== subject &amp;amp;&amp;amp; hasWriteAuth(subject)) {&lt;br /&gt;
      actions.push(&lt;br /&gt;
        &#039;&amp;lt;button class=&amp;quot;sanko-button&amp;quot; type=&amp;quot;button&amp;quot; data-sanko-tip-subject=&amp;quot;&#039; +&lt;br /&gt;
        escapeHtml(targetSubject) + &#039;&amp;quot;&amp;gt;Tip 25 GOLD&amp;lt;/button&amp;gt;&#039;&lt;br /&gt;
      );&lt;br /&gt;
    }&lt;br /&gt;
    actions.push(&lt;br /&gt;
      linked ? &#039;&amp;lt;button class=&amp;quot;sanko-button&amp;quot; type=&amp;quot;button&amp;quot; disabled&amp;gt;Linked&amp;lt;/button&amp;gt;&#039; :&lt;br /&gt;
        &#039;&amp;lt;button class=&amp;quot;sanko-button&amp;quot; type=&amp;quot;button&amp;quot; data-sanko-link-char&amp;gt;Link Sanko Character&amp;lt;/button&amp;gt;&#039;&lt;br /&gt;
    );&lt;br /&gt;
    root.innerHTML = [&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-account-card&amp;quot;&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-kicker&amp;quot;&amp;gt;Adventurer\&#039;s Log&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-account-title&amp;quot;&amp;gt;&#039; + escapeHtml(name) + &#039;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-muted&amp;quot;&amp;gt;&#039; + (linked ? &#039;CHAR linked&#039; : &#039;No Sanko Character linked yet&#039;) + &#039;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-account-meta&amp;quot;&amp;gt;&#039;,&lt;br /&gt;
      pill(&#039;Renown &#039; + (stats.renown || 0)),&lt;br /&gt;
      pill(titles),&lt;br /&gt;
      linked ? charChips(account.charTokenIds) : pill(&#039;Link a CHAR to unlock badges&#039;),&lt;br /&gt;
      &#039;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-account-actions&amp;quot;&amp;gt;&#039; + actions.join(&#039;&#039;) + &#039;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
    ].join(&#039;&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function loadAccount() {&lt;br /&gt;
    var root = document.querySelector(&#039;.sanko-account-panel[data-live=&amp;quot;true&amp;quot;]&#039;);&lt;br /&gt;
    if (!root || !window.fetch) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    if (!subject) {&lt;br /&gt;
      root.innerHTML = &#039;&amp;lt;div class=&amp;quot;sanko-account-card sanko-muted&amp;quot;&amp;gt;Log in to view your Adventurer\&#039;s Log.&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var base = engineBase();&lt;br /&gt;
    jsonFetch(base + &#039;/v1/profiles/&#039; + encodeURIComponent(subject))&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        if (!hasWriteAuth(subject)) {&lt;br /&gt;
          throw new Error(&#039;Sanko write auth unavailable.&#039;);&lt;br /&gt;
        }&lt;br /&gt;
        return jsonFetch(base + &#039;/v1/me&#039;, { headers: authHeaders(subject, false) }).then(function () {&lt;br /&gt;
          return jsonFetch(base + &#039;/v1/profiles/&#039; + encodeURIComponent(subject));&lt;br /&gt;
        });&lt;br /&gt;
      })&lt;br /&gt;
      .then(function (profile) {&lt;br /&gt;
        renderAccount(root, profile);&lt;br /&gt;
      })&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        root.innerHTML = &#039;&amp;lt;div class=&amp;quot;sanko-account-card sanko-muted&amp;quot;&amp;gt;Adventurer profile is unavailable.&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function sha256Hex(text) {&lt;br /&gt;
    if (!window.crypto || !window.crypto.subtle || !window.TextEncoder) {&lt;br /&gt;
      return Promise.reject(new Error(&#039;Web Crypto is unavailable.&#039;));&lt;br /&gt;
    }&lt;br /&gt;
    return window.crypto.subtle.digest(&#039;SHA-256&#039;, new TextEncoder().encode(text)).then(function (buffer) {&lt;br /&gt;
      return Array.prototype.map.call(new Uint8Array(buffer), function (byte) {&lt;br /&gt;
        return byte.toString(16).padStart(2, &#039;0&#039;);&lt;br /&gt;
      }).join(&#039;&#039;);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function linkFixtureChar(button) {&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    var base = engineBase();&lt;br /&gt;
    var address = window.sankoFixtureCharAddress || &#039;0x2222222222222222222222222222222222222222&#039;;&lt;br /&gt;
    if (!subject || !button || window.sankoEnableFixtureCharLink !== true) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    button.disabled = true;&lt;br /&gt;
    button.textContent = &#039;Linking...&#039;;&lt;br /&gt;
    jsonFetch(base + &#039;/v1/char-link/nonce&#039;, {&lt;br /&gt;
      method: &#039;POST&#039;,&lt;br /&gt;
      headers: authHeaders(subject, true),&lt;br /&gt;
      body: JSON.stringify({ domain: &#039;sankoquest.wiki&#039;, linkedSankoAddress: address })&lt;br /&gt;
    })&lt;br /&gt;
      .then(function (nonce) {&lt;br /&gt;
        return sha256Hex(nonce.message + &#039;:&#039; + address.toLowerCase()).then(function (hash) {&lt;br /&gt;
          return jsonFetch(base + &#039;/v1/char-link/verify&#039;, {&lt;br /&gt;
            method: &#039;POST&#039;,&lt;br /&gt;
            headers: authHeaders(subject, true),&lt;br /&gt;
            body: JSON.stringify({&lt;br /&gt;
              nonce: nonce.nonce,&lt;br /&gt;
              linkedSankoAddress: address,&lt;br /&gt;
              charTokenIds: [384, 7],&lt;br /&gt;
              charName: &#039;Wiki-local Chronicler&#039;,&lt;br /&gt;
              signature: &#039;fixture:&#039; + hash&lt;br /&gt;
            })&lt;br /&gt;
          });&lt;br /&gt;
        });&lt;br /&gt;
      })&lt;br /&gt;
      .then(loadAccount)&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        button.disabled = false;&lt;br /&gt;
        button.textContent = &#039;Link failed&#039;;&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function signPersonalMessage(address, message) {&lt;br /&gt;
    return window.ethereum.request({ method: &#039;personal_sign&#039;, params: [message, address] })&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        return window.ethereum.request({ method: &#039;personal_sign&#039;, params: [address, message] });&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function linkWalletChar(button) {&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    var base = engineBase();&lt;br /&gt;
    if (!subject || !button) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (!hasWriteAuth(subject)) {&lt;br /&gt;
      button.textContent = &#039;Sign in with Privy first&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (!window.ethereum || !window.ethereum.request) {&lt;br /&gt;
      button.textContent = &#039;Wallet unavailable&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    button.disabled = true;&lt;br /&gt;
    button.textContent = &#039;Waiting for wallet...&#039;;&lt;br /&gt;
    window.ethereum.request({ method: &#039;eth_requestAccounts&#039; })&lt;br /&gt;
      .then(function (accounts) {&lt;br /&gt;
        var address = String(accounts &amp;amp;&amp;amp; accounts[0] ? accounts[0] : &#039;&#039;).toLowerCase();&lt;br /&gt;
        if (!/^0x[0-9a-f]{40}$/.test(address)) {&lt;br /&gt;
          throw new Error(&#039;No EVM wallet address returned.&#039;);&lt;br /&gt;
        }&lt;br /&gt;
        return jsonFetch(base + &#039;/v1/char-link/nonce&#039;, {&lt;br /&gt;
          method: &#039;POST&#039;,&lt;br /&gt;
          headers: authHeaders(subject, true),&lt;br /&gt;
          body: JSON.stringify({ domain: location.hostname || &#039;sankoquest.wiki&#039;, linkedSankoAddress: address })&lt;br /&gt;
        }).then(function (nonce) {&lt;br /&gt;
          return signPersonalMessage(address, nonce.message).then(function (signature) {&lt;br /&gt;
            return jsonFetch(base + &#039;/v1/char-link/verify&#039;, {&lt;br /&gt;
              method: &#039;POST&#039;,&lt;br /&gt;
              headers: authHeaders(subject, true),&lt;br /&gt;
              body: JSON.stringify({&lt;br /&gt;
                nonce: nonce.nonce,&lt;br /&gt;
                linkedSankoAddress: address,&lt;br /&gt;
                signature: signature&lt;br /&gt;
              })&lt;br /&gt;
            });&lt;br /&gt;
          });&lt;br /&gt;
        });&lt;br /&gt;
      })&lt;br /&gt;
      .then(loadAccount)&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        button.disabled = false;&lt;br /&gt;
        button.textContent = &#039;Link failed&#039;;&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function linkFromIdentity(button) {&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    var base = engineBase();&lt;br /&gt;
    if (!subject || !button) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (!hasWriteAuth(subject)) {&lt;br /&gt;
      button.textContent = &#039;Sign in with Privy first&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    button.disabled = true;&lt;br /&gt;
    button.textContent = &#039;Linking...&#039;;&lt;br /&gt;
    return jsonFetch(base + &#039;/v1/char-link/from-identity&#039;, {&lt;br /&gt;
      method: &#039;POST&#039;,&lt;br /&gt;
      headers: authHeaders(subject, true)&lt;br /&gt;
    })&lt;br /&gt;
      .then(loadAccount)&lt;br /&gt;
      .catch(function (error) {&lt;br /&gt;
        var code = error &amp;amp;&amp;amp; error.code;&lt;br /&gt;
        var walletCapable = window.ethereum &amp;amp;&amp;amp; window.ethereum.request;&lt;br /&gt;
        // CHAR lives in a wallet Privy doesn&#039;t know about — prove control of it&lt;br /&gt;
        // with a signature, if the browser has an injected wallet to sign with.&lt;br /&gt;
        if ((code === &#039;char_not_found&#039; || code === &#039;wallet_not_in_identity&#039;) &amp;amp;&amp;amp; walletCapable) {&lt;br /&gt;
          return linkWalletChar(button);&lt;br /&gt;
        }&lt;br /&gt;
        button.disabled = false;&lt;br /&gt;
        if (code === &#039;char_not_found&#039;) {&lt;br /&gt;
          button.textContent = &#039;No CHAR in your wallet&#039;;&lt;br /&gt;
        } else if (code === &#039;wallet_not_in_identity&#039;) {&lt;br /&gt;
          button.textContent = &#039;Connect a wallet in Privy&#039;;&lt;br /&gt;
        } else {&lt;br /&gt;
          button.textContent = &#039;Link failed&#039;;&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function linkSankoChar(button) {&lt;br /&gt;
    if (window.sankoEnableFixtureCharLink === true) {&lt;br /&gt;
      return linkFixtureChar(button);&lt;br /&gt;
    }&lt;br /&gt;
    return linkFromIdentity(button);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function tipAdventurer(button) {&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    var targetSubject = button &amp;amp;&amp;amp; button.getAttribute(&#039;data-sanko-tip-subject&#039;);&lt;br /&gt;
    if (!targetSubject || !subject || !hasWriteAuth(subject)) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    button.disabled = true;&lt;br /&gt;
    button.textContent = &#039;Tipping...&#039;;&lt;br /&gt;
    jsonFetch(engineBase() + &#039;/v1/tips&#039;, {&lt;br /&gt;
      method: &#039;POST&#039;,&lt;br /&gt;
      headers: authHeaders(subject, true),&lt;br /&gt;
      body: JSON.stringify({&lt;br /&gt;
        toSubject: targetSubject,&lt;br /&gt;
        amount: 25,&lt;br /&gt;
        token: &#039;GOLD&#039;&lt;br /&gt;
      })&lt;br /&gt;
    })&lt;br /&gt;
      .then(function () {&lt;br /&gt;
        button.textContent = &#039;Tipped&#039;;&lt;br /&gt;
      })&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        button.disabled = false;&lt;br /&gt;
        button.textContent = &#039;Tip failed&#039;;&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Keel &amp;quot;sail&amp;quot; mark — kept in sync with the server-rendered footer copy in LocalSettings.php.&lt;br /&gt;
  // currentColor lets it inherit the theme so it reads light/gold on the dark header.&lt;br /&gt;
  var SPONSOR_MARK =&lt;br /&gt;
    &#039;&amp;lt;svg class=&amp;quot;sanko-sponsor-mark&amp;quot; viewBox=&amp;quot;0 0 40 40&amp;quot; aria-hidden=&amp;quot;true&amp;quot; focusable=&amp;quot;false&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
    &#039;&amp;lt;path d=&amp;quot;M20 33 L20 2 L33 25 Z&amp;quot; fill=&amp;quot;currentColor&amp;quot; opacity=&amp;quot;0.55&amp;quot;/&amp;gt;&#039; +&lt;br /&gt;
    &#039;&amp;lt;path d=&amp;quot;M18 9 L8 27 L18 27 Z&amp;quot; fill=&amp;quot;currentColor&amp;quot; opacity=&amp;quot;0.32&amp;quot;/&amp;gt;&#039; +&lt;br /&gt;
    &#039;&amp;lt;path d=&amp;quot;M5 33 C10 33 16 37 22 37 C28 37 33 33 38 33&amp;quot; fill=&amp;quot;none&amp;quot; stroke=&amp;quot;currentColor&amp;quot; stroke-width=&amp;quot;2.2&amp;quot; stroke-linecap=&amp;quot;round&amp;quot; opacity=&amp;quot;0.75&amp;quot;/&amp;gt;&#039; +&lt;br /&gt;
    &#039;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
  // Vector 2022 has no server-side header slot, so the sponsor badge is placed here, into&lt;br /&gt;
  // .vector-header-end. window.sankoSponsor is injected server-side (LocalSettings.php) and&lt;br /&gt;
  // gated by MW_SANKO_SPONSOR_ENABLED, so this no-ops when the sponsor is turned off.&lt;br /&gt;
  function renderSponsorBadge() {&lt;br /&gt;
    var cfg = window.sankoSponsor;&lt;br /&gt;
    if (!cfg || !cfg.url || document.getElementById(&#039;sanko-sponsor-header&#039;)) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var headerEnd = document.querySelector(&#039;.vector-header-end&#039;);&lt;br /&gt;
    if (!headerEnd) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var link = document.createElement(&#039;a&#039;);&lt;br /&gt;
    link.id = &#039;sanko-sponsor-header&#039;;&lt;br /&gt;
    link.className = &#039;sanko-sponsor sanko-sponsor-header&#039;;&lt;br /&gt;
    link.href = cfg.url.replace(/\/$/, &#039;&#039;) +&lt;br /&gt;
      &#039;?utm_source=sankoquest.wiki&amp;amp;utm_medium=wiki-header&amp;amp;utm_campaign=sanko-sponsor&#039;;&lt;br /&gt;
    link.target = &#039;_blank&#039;;&lt;br /&gt;
    link.rel = &#039;noopener&#039;;&lt;br /&gt;
    link.title = (cfg.label ? cfg.label + &#039; &#039; : &#039;&#039;) + &#039;keel — &#039; + (cfg.tagline || &#039;&#039;);&lt;br /&gt;
    var labelHtml = cfg.label&lt;br /&gt;
      ? &#039;&amp;lt;span class=&amp;quot;sanko-sponsor-label&amp;quot;&amp;gt;&#039; + escapeHtml(cfg.label) + &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
      : &#039;&#039;;&lt;br /&gt;
    link.innerHTML = labelHtml + SPONSOR_MARK +&lt;br /&gt;
      &#039;&amp;lt;span class=&amp;quot;sanko-sponsor-word&amp;quot;&amp;gt;keel&amp;lt;/span&amp;gt;&#039; +&lt;br /&gt;
      &#039;&amp;lt;span class=&amp;quot;sanko-sponsor-tagline&amp;quot;&amp;gt;&#039; + escapeHtml(cfg.tagline || &#039;&#039;) + &#039;&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
    // Sit past the search box but immediately to the left of the login controls. Find the&lt;br /&gt;
    // login/user-links element, walk up to whichever node is a direct child of header-end, and&lt;br /&gt;
    // insert before it; fall back to the far right if the login chrome isn&#039;t present.&lt;br /&gt;
    var loginEl = headerEnd.querySelector(&#039;.vector-user-links, #pt-login-2, #pt-login, .vector-user-menu&#039;);&lt;br /&gt;
    var anchor = loginEl;&lt;br /&gt;
    while (anchor &amp;amp;&amp;amp; anchor.parentNode !== headerEnd) {&lt;br /&gt;
      anchor = anchor.parentNode;&lt;br /&gt;
    }&lt;br /&gt;
    if (anchor &amp;amp;&amp;amp; anchor.parentNode === headerEnd) {&lt;br /&gt;
      headerEnd.insertBefore(link, anchor);&lt;br /&gt;
    } else {&lt;br /&gt;
      headerEnd.appendChild(link);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  document.addEventListener(&#039;click&#039;, function (event) {&lt;br /&gt;
    var button = event.target.closest(&#039;[data-sanko-link-char]&#039;);&lt;br /&gt;
    if (button) {&lt;br /&gt;
      linkSankoChar(button);&lt;br /&gt;
    }&lt;br /&gt;
    var tipButton = event.target.closest(&#039;[data-sanko-tip-subject]&#039;);&lt;br /&gt;
    if (tipButton) {&lt;br /&gt;
      tipAdventurer(tipButton);&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
    document.addEventListener(&#039;DOMContentLoaded&#039;, function () {&lt;br /&gt;
      redirectCreateAccountToPrivy();&lt;br /&gt;
      polishLoginChrome();&lt;br /&gt;
      enhanceEditForAnon();&lt;br /&gt;
      renderModelImages();&lt;br /&gt;
      enhanceSearchChrome();&lt;br /&gt;
      renderSponsorBadge();&lt;br /&gt;
      loadAccount();&lt;br /&gt;
    });&lt;br /&gt;
  } else {&lt;br /&gt;
    redirectCreateAccountToPrivy();&lt;br /&gt;
    polishLoginChrome();&lt;br /&gt;
    enhanceEditForAnon();&lt;br /&gt;
    renderModelImages();&lt;br /&gt;
    enhanceSearchChrome();&lt;br /&gt;
    renderSponsorBadge();&lt;br /&gt;
    loadAccount();&lt;br /&gt;
  }&lt;br /&gt;
}());&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=MediaWiki:Common.css&amp;diff=439</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=MediaWiki:Common.css&amp;diff=439"/>
		<updated>2026-07-02T20:42:10Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:root {&lt;br /&gt;
  --sanko-void: #120804;&lt;br /&gt;
  --sanko-void-2: #1e1608;&lt;br /&gt;
  --sanko-ink: #2a1200;&lt;br /&gt;
  --sanko-ink-soft: #5a3810;&lt;br /&gt;
  --sanko-paper: #f5e6c8;&lt;br /&gt;
  --sanko-paper-2: #e6d0a2;&lt;br /&gt;
  --sanko-paper-3: #c9b897;&lt;br /&gt;
  --sanko-border: #6d5a3d;&lt;br /&gt;
  --sanko-border-dark: #3a2e12;&lt;br /&gt;
  --sanko-menu: #2b2111;&lt;br /&gt;
  --sanko-menu-2: #171006;&lt;br /&gt;
  --sanko-menu-border: rgba(243, 211, 106, 0.34);&lt;br /&gt;
  --sanko-gold: #d6a83c;&lt;br /&gt;
  --sanko-gold-2: #f3d36a;&lt;br /&gt;
  --sanko-leaf: #4c7f52;&lt;br /&gt;
  --sanko-water: #3972c9;&lt;br /&gt;
  --sanko-water-soft: #c7f0fa;&lt;br /&gt;
  --sanko-danger: #9d2f25;&lt;br /&gt;
  --sanko-shadow: rgba(18, 8, 4, 0.42);&lt;br /&gt;
  --sanko-backdrop: url(&#039;https://sanko-pets-assets.s3.us-east-2.amazonaws.com/quest/meta1.webp&#039;);&lt;br /&gt;
  --sanko-logo: url(&#039;https://sigma.sankoquest.com/apple-icon.png&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html,&lt;br /&gt;
body.skin-vector,&lt;br /&gt;
body.skin-minerva,&lt;br /&gt;
body.skin-citizen {&lt;br /&gt;
  background:&lt;br /&gt;
    radial-gradient(circle at 14% 7%, rgba(243, 211, 106, 0.2) 0 1px, transparent 2px 100%),&lt;br /&gt;
    radial-gradient(circle at 77% 18%, rgba(199, 240, 250, 0.22) 0 1px, transparent 2px 100%),&lt;br /&gt;
    radial-gradient(circle at 47% 38%, rgba(243, 211, 106, 0.12) 0 1px, transparent 2px 100%),&lt;br /&gt;
    linear-gradient(180deg, rgba(18, 8, 4, 0.56), rgba(18, 8, 4, 0.78) 360px, rgba(28, 14, 6, 0.88)),&lt;br /&gt;
    var(--sanko-backdrop),&lt;br /&gt;
    repeating-linear-gradient(90deg, rgba(245, 230, 200, 0.04) 0 1px, transparent 1px 16px),&lt;br /&gt;
    var(--sanko-void);&lt;br /&gt;
  background-attachment: fixed, fixed, fixed, fixed, fixed, fixed, fixed;&lt;br /&gt;
  background-position: 0 0, 0 0, 0 0, center top, center top, 0 0, 0 0;&lt;br /&gt;
  background-repeat: repeat, repeat, repeat, no-repeat, no-repeat, repeat, repeat;&lt;br /&gt;
  background-size: 240px 180px, 300px 220px, 420px 320px, auto, min(1700px, 140vw) auto, auto, auto;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body,&lt;br /&gt;
.mw-body,&lt;br /&gt;
.vector-body,&lt;br /&gt;
.parsoid-body {&lt;br /&gt;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, sans-serif;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-page-container,&lt;br /&gt;
body.skin-vector .vector-header-container {&lt;br /&gt;
  background: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-page-container {&lt;br /&gt;
  max-width: 1500px;&lt;br /&gt;
  margin: 0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Vector&#039;s &amp;quot;limited width&amp;quot; caps the article column far narrower than the header,&lt;br /&gt;
   leaving a big empty gutter on the right. Let the content fill the container so it&lt;br /&gt;
   lines up with the header content width. */&lt;br /&gt;
body.skin-vector-2022 .mw-content-container {&lt;br /&gt;
  max-width: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-header-container {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(30, 22, 8, 0.94), rgba(18, 8, 4, 0.96)),&lt;br /&gt;
    var(--sanko-void) !important;&lt;br /&gt;
  border-bottom: 2px solid var(--sanko-border-dark);&lt;br /&gt;
  box-shadow: 0 8px 24px rgba(18, 8, 4, 0.34);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-header-container .vector-header,&lt;br /&gt;
body.skin-vector .mw-header {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(30, 22, 8, 0.94), rgba(18, 8, 4, 0.96)),&lt;br /&gt;
    var(--sanko-void) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-header-container a,&lt;br /&gt;
body.skin-vector .vector-header-container .vector-dropdown-label-text,&lt;br /&gt;
body.skin-vector .mw-logo-wordmark {&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Vector icons are mask-images colored via background-color; the header/sticky bars are&lt;br /&gt;
   dark, so force every icon in them light (fixes the near-invisible logged-in user + star). */&lt;br /&gt;
body.skin-vector .vector-header-container .vector-icon,&lt;br /&gt;
body.skin-vector .vector-sticky-header .vector-icon,&lt;br /&gt;
body.skin-vector .vector-header-container .mw-ui-icon-element .vector-icon {&lt;br /&gt;
  background-color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-header-container .vector-header-start,&lt;br /&gt;
body.skin-vector .vector-header-container .vector-header-end {&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-dropdown .vector-dropdown-label,&lt;br /&gt;
body.skin-vector .vector-user-menu .vector-dropdown-label,&lt;br /&gt;
body.skin-vector .vector-page-tools-dropdown .vector-dropdown-label {&lt;br /&gt;
  min-width: 36px;&lt;br /&gt;
  min-height: 36px;&lt;br /&gt;
  border: 1px solid rgba(243, 211, 106, 0.45);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  background: rgba(18, 8, 4, 0.7);&lt;br /&gt;
  box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.1), 0 3px 10px rgba(0, 0, 0, 0.22);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-dropdown .vector-dropdown-label:hover,&lt;br /&gt;
body.skin-vector .vector-user-menu .vector-dropdown-label:hover,&lt;br /&gt;
body.skin-vector .vector-page-tools-dropdown .vector-dropdown-label:hover {&lt;br /&gt;
  border-color: var(--sanko-gold-2);&lt;br /&gt;
  background: rgba(61, 47, 26, 0.92);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-logo {&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-logo-icon {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-logo:before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  flex: 0 0 auto;&lt;br /&gt;
  width: 40px;&lt;br /&gt;
  height: 40px;&lt;br /&gt;
  background-color: rgba(18, 8, 4, 0.84);&lt;br /&gt;
  background-image: var(--sanko-logo);&lt;br /&gt;
  background-position: center;&lt;br /&gt;
  background-repeat: no-repeat;&lt;br /&gt;
  background-size: 34px 34px;&lt;br /&gt;
  border: 1px solid rgba(243, 211, 106, 0.5);&lt;br /&gt;
  border-radius: 7px;&lt;br /&gt;
  box-shadow:&lt;br /&gt;
    inset 1px 1px 0 rgba(255, 255, 255, 0.16),&lt;br /&gt;
    inset -1px -1px 0 rgba(0, 0, 0, 0.48),&lt;br /&gt;
    0 4px 14px rgba(0, 0, 0, 0.24);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-logo-wordmark {&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  letter-spacing: 0;&lt;br /&gt;
  text-shadow: 0 1px 0 #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-text-input__input,&lt;br /&gt;
body.skin-vector .searchButton {&lt;br /&gt;
  background-color: rgba(255, 247, 224, 0.94);&lt;br /&gt;
  border-color: var(--sanko-border);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-column-end,&lt;br /&gt;
body.skin-vector .vector-appearance-landmark,&lt;br /&gt;
body.skin-vector #p-dock-bottom {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #ca-talk {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-toc,&lt;br /&gt;
body.skin-vector .sidebar-toc,&lt;br /&gt;
body.skin-vector #vector-toc {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(43, 33, 17, 0.99), rgba(23, 16, 6, 0.99)),&lt;br /&gt;
    var(--sanko-menu-2) !important;&lt;br /&gt;
  border: 1px solid var(--sanko-menu-border);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.36);&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-dropdown-content,&lt;br /&gt;
body.skin-vector .vector-pinnable-element,&lt;br /&gt;
body.skin-vector #vector-main-menu,&lt;br /&gt;
body.skin-vector .vector-main-menu {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(61, 47, 26, 0.98), rgba(30, 22, 8, 0.98)),&lt;br /&gt;
    var(--sanko-void) !important;&lt;br /&gt;
  border: 1px solid rgba(243, 211, 106, 0.34);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.46);&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-dropdown-content {&lt;br /&gt;
  z-index: 1000;&lt;br /&gt;
  padding: 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-dropdown .vector-dropdown-content,&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-dropdown-content,&lt;br /&gt;
body.skin-vector #vector-page-tools-pinned-container,&lt;br /&gt;
body.skin-vector #p-tb,&lt;br /&gt;
body.skin-vector #p-cactions {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  min-width: 230px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(61, 47, 26, 0.99), rgba(30, 22, 8, 0.99)),&lt;br /&gt;
    var(--sanko-void) !important;&lt;br /&gt;
  border: 1px solid rgba(243, 211, 106, 0.38);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  opacity: 1 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-dropdown .vector-dropdown-content {&lt;br /&gt;
  right: 0;&lt;br /&gt;
  padding: 8px;&lt;br /&gt;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.52);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu,&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content,&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content-list {&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-heading {&lt;br /&gt;
  display: block;&lt;br /&gt;
  margin: 8px 0 4px;&lt;br /&gt;
  padding: 5px 8px;&lt;br /&gt;
  border-top: 1px solid rgba(243, 211, 106, 0.2);&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  font-size: 0.86rem;&lt;br /&gt;
  line-height: 1.2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content-list {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content-list li {&lt;br /&gt;
  margin: 1px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content-list a,&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content-list span {&lt;br /&gt;
  display: block;&lt;br /&gt;
  padding: 5px 8px;&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  line-height: 1.25;&lt;br /&gt;
  opacity: 1 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-menu-heading,&lt;br /&gt;
body.skin-vector .vector-pinnable-header-label {&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-pinnable-header {&lt;br /&gt;
  min-height: 30px;&lt;br /&gt;
  padding: 4px 6px;&lt;br /&gt;
  border-bottom: 1px solid rgba(243, 211, 106, 0.18);&lt;br /&gt;
  background: rgba(18, 8, 4, 0.42);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-pinnable-header-toggle-button {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-menu-content-list a,&lt;br /&gt;
body.skin-vector .vector-dropdown-content a,&lt;br /&gt;
body.skin-vector .vector-page-tools a {&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-menu-content-list a:hover,&lt;br /&gt;
body.skin-vector .vector-dropdown-content a:hover,&lt;br /&gt;
body.skin-vector .vector-page-tools a:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.14);&lt;br /&gt;
  color: #fff7d5 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-menu-content-list .selected a,&lt;br /&gt;
body.skin-vector .vector-dropdown-content .selected a {&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-titlebar,&lt;br /&gt;
body.skin-vector .vector-sticky-header,&lt;br /&gt;
body.skin-vector .vector-header-container .vector-header-start,&lt;br /&gt;
body.skin-vector .vector-header-container .vector-header-end {&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Sticky header on scroll: match the dark/gold theme and fade in instead of snapping. */&lt;br /&gt;
body.skin-vector .vector-sticky-header {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(30, 22, 8, 0.98), rgba(18, 8, 4, 0.99)),&lt;br /&gt;
    var(--sanko-void) !important;&lt;br /&gt;
  border-bottom: 2px solid var(--sanko-border-dark);&lt;br /&gt;
  box-shadow: 0 10px 26px rgba(18, 8, 4, 0.4);&lt;br /&gt;
  transition: opacity 0.25s ease, transform 0.25s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-sticky-header a,&lt;br /&gt;
body.skin-vector .vector-sticky-header .vector-sticky-header-context-bar-primary,&lt;br /&gt;
body.skin-vector .vector-sticky-header .mw-page-title-main,&lt;br /&gt;
body.skin-vector .vector-sticky-header .mw-page-title-main *,&lt;br /&gt;
body.skin-vector .vector-sticky-header h1 {&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Sticky-header search should read like the main search field. */&lt;br /&gt;
body.skin-vector .vector-sticky-header .cdx-text-input__input,&lt;br /&gt;
body.skin-vector .vector-sticky-header .vector-search-box-input {&lt;br /&gt;
  background: rgba(255, 247, 224, 0.96);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #pt-createaccount,&lt;br /&gt;
body.skin-vector #pt-createaccount-2,&lt;br /&gt;
body.skin-vector #mw-createaccount-cta,&lt;br /&gt;
body.skin-vector .mw-userlogin-help {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu,&lt;br /&gt;
body.skin-vector #vector-page-tools,&lt;br /&gt;
body.skin-vector #vector-toc,&lt;br /&gt;
body.skin-vector .sidebar-toc,&lt;br /&gt;
body.skin-vector .vector-dropdown-content #vector-main-menu,&lt;br /&gt;
body.skin-vector .vector-dropdown-content #vector-page-tools,&lt;br /&gt;
body.skin-vector .vector-dropdown-content #vector-toc {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(43, 33, 17, 0.99), rgba(23, 16, 6, 0.99)),&lt;br /&gt;
    var(--sanko-menu-2) !important;&lt;br /&gt;
  border: 1px solid var(--sanko-menu-border);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.46);&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  opacity: 1 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .vector-menu,&lt;br /&gt;
body.skin-vector #vector-main-menu .vector-menu-content,&lt;br /&gt;
body.skin-vector #vector-main-menu .vector-menu-content-list,&lt;br /&gt;
body.skin-vector #vector-page-tools .vector-menu,&lt;br /&gt;
body.skin-vector #vector-page-tools .vector-menu-content,&lt;br /&gt;
body.skin-vector #vector-page-tools .vector-menu-content-list,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-contents,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-list,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-list-item {&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  border: 0;&lt;br /&gt;
  box-shadow: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-column-start,&lt;br /&gt;
body.skin-vector .vector-column-start .vector-pinned-container,&lt;br /&gt;
body.skin-vector .vector-column-start .vector-unpinned-container,&lt;br /&gt;
body.skin-vector .vector-sticky-pinned-container,&lt;br /&gt;
body.skin-vector #mw-panel,&lt;br /&gt;
body.skin-vector #mw-panel-toc,&lt;br /&gt;
body.skin-vector #vector-main-menu-pinned-container,&lt;br /&gt;
body.skin-vector #vector-main-menu-unpinned-container,&lt;br /&gt;
body.skin-vector #vector-toc-pinned-container,&lt;br /&gt;
body.skin-vector #vector-toc-unpinned-container,&lt;br /&gt;
body.skin-vector #vector-page-tools-pinned-container,&lt;br /&gt;
body.skin-vector #vector-page-tools-unpinned-container,&lt;br /&gt;
body.skin-vector .vector-menu-portal,&lt;br /&gt;
body.skin-vector .vector-dropdown-content &amp;gt; .vector-menu-portal {&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  border: 0 !important;&lt;br /&gt;
  box-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html.vector-toc-available body.skin-vector .vector-column-start {&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  border-radius: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-sticky-pinned-container {&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  border-radius: 0;&lt;br /&gt;
  height: auto !important;&lt;br /&gt;
  max-height: none !important;&lt;br /&gt;
  min-height: 0 !important;&lt;br /&gt;
  overflow: visible !important;&lt;br /&gt;
  scrollbar-width: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-sticky-pinned-container::-webkit-scrollbar {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
  width: 0 !important;&lt;br /&gt;
  height: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-action,&lt;br /&gt;
body.skin-vector .vector-main-menu-action-content:has(a[href*=&amp;quot;Special:Preferences&amp;quot;][href*=&amp;quot;useskin=vector&amp;quot;]) {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-dropdown .vector-dropdown-content,&lt;br /&gt;
body.skin-vector .vector-page-tools-dropdown .vector-dropdown-content {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(43, 33, 17, 0.99), rgba(23, 16, 6, 0.99)),&lt;br /&gt;
    var(--sanko-menu-2) !important;&lt;br /&gt;
  border: 1px solid var(--sanko-menu-border) !important;&lt;br /&gt;
  border-radius: 8px !important;&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  opacity: 1 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-dropdown .vector-dropdown-content {&lt;br /&gt;
  min-width: 230px;&lt;br /&gt;
  padding: 8px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-dropdown .vector-dropdown-content #vector-main-menu {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  min-width: 210px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .vector-menu {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  padding: 6px 8px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .vector-menu-heading,&lt;br /&gt;
body.skin-vector #vector-page-tools .vector-menu-heading,&lt;br /&gt;
body.skin-vector #vector-toc .vector-pinnable-header-label,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-heading {&lt;br /&gt;
  margin: 9px 4px 5px;&lt;br /&gt;
  padding: 0 0 5px;&lt;br /&gt;
  border-bottom: 1px solid rgba(243, 211, 106, 0.22);&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  font-size: 0.74rem;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  letter-spacing: 0;&lt;br /&gt;
  line-height: 1.2;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-list-item {&lt;br /&gt;
  margin: 1px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item a,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item a,&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item span,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item span,&lt;br /&gt;
body.skin-vector #vector-toc a,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-text {&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item a,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item a,&lt;br /&gt;
body.skin-vector #vector-toc a {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-height: 30px;&lt;br /&gt;
  padding: 6px 9px;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  line-height: 1.25;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item a:hover,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item a:hover,&lt;br /&gt;
body.skin-vector #vector-toc a:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.14);&lt;br /&gt;
  color: #fff7d5 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item.active a,&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item.selected a,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item.active a,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item.selected a,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-list-item-active &amp;gt; a {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.2);&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-pinnable-header {&lt;br /&gt;
  border-radius: 7px 7px 0 0;&lt;br /&gt;
  background: rgba(18, 8, 4, 0.64) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-toc .vector-pinnable-header {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  display: flex;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin: 0 0 7px;&lt;br /&gt;
  padding: 10px 12px 9px;&lt;br /&gt;
  border-bottom: 1px solid rgba(243, 211, 106, 0.24);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-toc .vector-pinnable-header-label,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-heading {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-toc:before,&lt;br /&gt;
body.skin-vector .vector-toc:after,&lt;br /&gt;
body.skin-vector .sidebar-toc:before,&lt;br /&gt;
body.skin-vector .sidebar-toc:after,&lt;br /&gt;
body.skin-vector #vector-toc:before,&lt;br /&gt;
body.skin-vector #vector-toc:after,&lt;br /&gt;
body.skin-vector .vector-toc-contents:before,&lt;br /&gt;
body.skin-vector .vector-toc-contents:after,&lt;br /&gt;
body.skin-vector .vector-column-start:before,&lt;br /&gt;
body.skin-vector .vector-column-start:after,&lt;br /&gt;
body.skin-vector .vector-sticky-pinned-container:before,&lt;br /&gt;
body.skin-vector .vector-sticky-pinned-container:after,&lt;br /&gt;
body.skin-vector #mw-panel-toc:before,&lt;br /&gt;
body.skin-vector #mw-panel-toc:after,&lt;br /&gt;
body.skin-vector #vector-toc-pinned-container:before,&lt;br /&gt;
body.skin-vector #vector-toc-pinned-container:after,&lt;br /&gt;
body.skin-vector #vector-toc-unpinned-container:before,&lt;br /&gt;
body.skin-vector #vector-toc-unpinned-container:after {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
  content: none !important;&lt;br /&gt;
  background: none !important;&lt;br /&gt;
  border: 0 !important;&lt;br /&gt;
  box-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-toolbar {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  margin-bottom: 0;&lt;br /&gt;
  padding-top: 4px;&lt;br /&gt;
  border-bottom: 1px solid rgba(109, 90, 61, 0.42);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-menu-tabs .mw-list-item a,&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-dropdown-label {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  height: 34px;&lt;br /&gt;
  min-height: 0;&lt;br /&gt;
  padding: 0 14px;&lt;br /&gt;
  margin-bottom: -1px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.72) !important;&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.42);&lt;br /&gt;
  border-bottom: 0;&lt;br /&gt;
  border-radius: 7px 7px 0 0;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Vector reserves a tall (34px) label span for optional icons; collapse it so the&lt;br /&gt;
   text is the tab&#039;s real height and centers instead of riding high with dead space. */&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-menu-tabs .mw-list-item a &amp;gt; span,&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-dropdown-label &amp;gt; span {&lt;br /&gt;
  min-height: 0;&lt;br /&gt;
  height: auto;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-menu-tabs .selected a {&lt;br /&gt;
  background: #3d2f1a !important;&lt;br /&gt;
  border-color: #1d1508;&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-dropdown-label:hover,&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-menu-tabs .mw-list-item a:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.22) !important;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search {&lt;br /&gt;
  min-width: min(420px, 42vw);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #searchform.cdx-search-input {&lt;br /&gt;
  align-items: stretch;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.18);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search .cdx-text-input__input,&lt;br /&gt;
body.skin-vector #p-search .cdx-search-input__end-button {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  height: 40px;&lt;br /&gt;
  min-height: 36px;&lt;br /&gt;
  border-color: rgba(243, 211, 106, 0.42);&lt;br /&gt;
  box-shadow: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search .cdx-text-input,&lt;br /&gt;
body.skin-vector #p-search .cdx-search-input__input-wrapper {&lt;br /&gt;
  height: 40px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search .cdx-text-input__input {&lt;br /&gt;
  background: rgba(255, 247, 224, 0.96);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  border-radius: 5px 0 0 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search .cdx-text-input__input:focus {&lt;br /&gt;
  border-color: var(--sanko-gold-2);&lt;br /&gt;
  outline: 2px solid rgba(243, 211, 106, 0.35);&lt;br /&gt;
  outline-offset: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search .cdx-search-input__end-button {&lt;br /&gt;
  background: linear-gradient(180deg, var(--sanko-gold-2), var(--sanko-gold)) !important;&lt;br /&gt;
  border: 1px solid rgba(58, 46, 18, 0.72);&lt;br /&gt;
  border-left: 0;&lt;br /&gt;
  border-radius: 0 5px 5px 0;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu,&lt;br /&gt;
body.skin-vector .cdx-typeahead-search__menu,&lt;br /&gt;
body.skin-vector .cdx-menu__listbox {&lt;br /&gt;
  background: var(--sanko-paper) !important;&lt;br /&gt;
  border: 1px solid var(--sanko-border) !important;&lt;br /&gt;
  border-radius: 6px !important;&lt;br /&gt;
  box-shadow: 0 18px 42px rgba(18, 8, 4, 0.36) !important;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item,&lt;br /&gt;
body.skin-vector .cdx-menu-item__text,&lt;br /&gt;
body.skin-vector .cdx-menu-item__description,&lt;br /&gt;
body.skin-vector .cdx-typeahead-search__search-footer {&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item__content {&lt;br /&gt;
  min-height: 34px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item__text {&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-typeahead-search__search-footer {&lt;br /&gt;
  border-top: 1px solid rgba(109, 90, 61, 0.34);&lt;br /&gt;
  background: rgba(243, 211, 106, 0.14);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item--highlighted,&lt;br /&gt;
body.skin-vector .cdx-menu-item:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.24) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Key these off the presence of our injected sprite child, NOT the&lt;br /&gt;
   .sanko-search-with-thumb class: Codex rewrites the menu item&#039;s class attribute&lt;br /&gt;
   on hover (to add --highlighted), which strips a JS-added class and broke the&lt;br /&gt;
   layout on hover. Vue preserves our sprite &amp;lt;span&amp;gt;, so :has() survives re-renders. */&lt;br /&gt;
body.skin-vector .cdx-menu-item:has(&amp;gt; .sanko-search-thumb) {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-height: 46px;&lt;br /&gt;
  gap: 9px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item:has(&amp;gt; .sanko-search-thumb) .cdx-menu-item__thumbnail,&lt;br /&gt;
body.skin-vector .cdx-menu-item:has(&amp;gt; .sanko-search-thumb) .cdx-thumbnail {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item:has(&amp;gt; .sanko-search-thumb) .cdx-menu-item__content {&lt;br /&gt;
  flex: 1 1 auto;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item:has(&amp;gt; .sanko-search-thumb) .cdx-menu-item__text,&lt;br /&gt;
body.skin-vector .cdx-menu-item:has(&amp;gt; .sanko-search-thumb) .cdx-menu-item__description {&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  text-overflow: ellipsis;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item .sanko-search-thumb {&lt;br /&gt;
  flex: 0 0 auto;&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 34px;&lt;br /&gt;
  height: 34px;&lt;br /&gt;
  margin-left: 2px;&lt;br /&gt;
  background: #1b140a;&lt;br /&gt;
  border: 1px solid rgba(243, 211, 106, 0.24);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item .sanko-search-thumb img {&lt;br /&gt;
  display: block;&lt;br /&gt;
  width: 27px;&lt;br /&gt;
  height: 27px;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
  image-rendering: pixelated;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .search-toggle {&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper,&lt;br /&gt;
body.skin-vector .searchresults,&lt;br /&gt;
body.skin-vector #userloginForm form {&lt;br /&gt;
  max-width: 920px;&lt;br /&gt;
  margin: 12px auto 20px;&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.82);&lt;br /&gt;
  border: 2px solid var(--sanko-border);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.16);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper {&lt;br /&gt;
  background: rgba(255, 247, 224, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper #searchText {&lt;br /&gt;
  min-height: 34px;&lt;br /&gt;
  border: 1px solid var(--sanko-border);&lt;br /&gt;
  border-radius: 5px 0 0 5px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper .cdx-button,&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper .oo-ui-buttonElement-button,&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper input[type=&amp;quot;submit&amp;quot;] {&lt;br /&gt;
  border-color: rgba(58, 46, 18, 0.72) !important;&lt;br /&gt;
  border-radius: 5px !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #userloginForm form {&lt;br /&gt;
  max-width: 480px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #mw-input-pluggableauthlogin0,&lt;br /&gt;
body.skin-vector .mw-htmlform-submit,&lt;br /&gt;
body.skin-vector .oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled &amp;gt; .oo-ui-buttonElement-button {&lt;br /&gt;
  background: linear-gradient(180deg, var(--sanko-gold-2), var(--sanko-gold)) !important;&lt;br /&gt;
  border: 2px solid #2d2010 !important;&lt;br /&gt;
  border-radius: 5px !important;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
  font-weight: 900 !important;&lt;br /&gt;
  text-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-profile-tabs ul {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
  margin: 12px 0;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-profile-tabs li {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-profile-tabs li a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  padding: 7px 10px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.76);&lt;br /&gt;
  border: 1px solid var(--sanko-border);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-profile-tabs li a:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.24);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-profile-tabs li.current a {&lt;br /&gt;
  background: #3d2f1a;&lt;br /&gt;
  border-color: #1d1508;&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #mw-searchoptions {&lt;br /&gt;
  margin: 12px 0 0;&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.42);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  background: rgba(255, 251, 235, 0.58);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-results {&lt;br /&gt;
  padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-result {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
  margin: 9px 0;&lt;br /&gt;
  padding: 11px 12px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.68);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.36);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-result.sanko-search-with-thumb {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  min-height: 58px;&lt;br /&gt;
  padding-left: 62px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-result .sanko-search-thumb {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  top: 12px;&lt;br /&gt;
  left: 12px;&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 40px;&lt;br /&gt;
  height: 40px;&lt;br /&gt;
  background: #1b140a;&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.58);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.12), 0 4px 10px rgba(42, 18, 0, 0.14);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-result .sanko-search-thumb img {&lt;br /&gt;
  display: block;&lt;br /&gt;
  width: 32px;&lt;br /&gt;
  height: 32px;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
  image-rendering: pixelated;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-result-heading a {&lt;br /&gt;
  color: #114f7c;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .searchmatch {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.45);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-message {&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body,&lt;br /&gt;
.vector-body,&lt;br /&gt;
.parsoid-body,&lt;br /&gt;
.mw-parser-output {&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(255, 251, 235, 0.99), rgba(242, 226, 188, 0.99)),&lt;br /&gt;
    var(--sanko-paper);&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  max-width: none;&lt;br /&gt;
  margin: 24px auto 0;&lt;br /&gt;
  padding: 22px 30px 38px !important;&lt;br /&gt;
  border: 2px solid var(--sanko-border-dark);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  box-shadow:&lt;br /&gt;
    0 22px 70px rgba(18, 8, 4, 0.62),&lt;br /&gt;
    inset 0 0 0 3px rgba(255, 255, 255, 0.3);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-page-title-main,&lt;br /&gt;
.firstHeading {&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  text-shadow: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-body-header {&lt;br /&gt;
  background: transparent;&lt;br /&gt;
  border-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .firstHeading {&lt;br /&gt;
  margin: 0 0 14px;&lt;br /&gt;
  line-height: 1.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.page-Main_Page.skin-vector .firstHeading {&lt;br /&gt;
  margin-bottom: 6px;&lt;br /&gt;
  font-size: 1.85rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output h2,&lt;br /&gt;
.mw-parser-output h3,&lt;br /&gt;
.mw-parser-output h4 {&lt;br /&gt;
  clear: none;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  /* Match the serif of h1/h2 so h3/h4 don&#039;t fall back to the sans body font. */&lt;br /&gt;
  font-family: &amp;quot;Linux Libertine&amp;quot;, &amp;quot;Hoefler Text&amp;quot;, Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output h2 {&lt;br /&gt;
  margin: 24px 0 8px;&lt;br /&gt;
  padding-bottom: 4px;&lt;br /&gt;
  border-bottom: 2px solid rgba(109, 90, 61, 0.4);&lt;br /&gt;
  font-size: 1.35rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output h3 {&lt;br /&gt;
  margin: 18px 0 6px;&lt;br /&gt;
  padding-bottom: 3px;&lt;br /&gt;
  border-bottom: 1px solid rgba(109, 90, 61, 0.26);&lt;br /&gt;
  font-size: 1.08rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output h4 {&lt;br /&gt;
  margin: 14px 0 5px;&lt;br /&gt;
  font-size: 0.98rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a {&lt;br /&gt;
  color: #125a93;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a:visited {&lt;br /&gt;
  color: #6b4aa0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a.new,&lt;br /&gt;
a.new:visited {&lt;br /&gt;
  color: #9f4b22;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
code {&lt;br /&gt;
  padding: 1px 4px;&lt;br /&gt;
  background: rgba(42, 18, 0, 0.08);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.32);&lt;br /&gt;
  border-radius: 3px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable,&lt;br /&gt;
.cargoTable,&lt;br /&gt;
.sanko-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin: 12px 0 18px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.78);&lt;br /&gt;
  border: 1px solid var(--sanko-border);&lt;br /&gt;
  border-collapse: collapse;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable th,&lt;br /&gt;
.cargoTable th,&lt;br /&gt;
.sanko-table th {&lt;br /&gt;
  background: #3d2f1a;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable th,&lt;br /&gt;
.wikitable td,&lt;br /&gt;
.cargoTable th,&lt;br /&gt;
.cargoTable td,&lt;br /&gt;
.sanko-table th,&lt;br /&gt;
.sanko-table td {&lt;br /&gt;
  padding: 7px 9px;&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.34);&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-main {&lt;br /&gt;
  max-width: 1180px;&lt;br /&gt;
  margin: 0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-front {&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-game-tabs {&lt;br /&gt;
  margin: 8px 0 16px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-game-tabs &amp;gt; p {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(5, minmax(0, 1fr));&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
  margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-game-tabs a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  padding: 10px 12px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(255, 247, 224, 0.92), rgba(209, 196, 169, 0.92));&lt;br /&gt;
  border: 2px solid var(--sanko-border);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.3), inset -2px -2px 0 rgba(42, 18, 0, 0.2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-game-tabs a:first-child {&lt;br /&gt;
  background: linear-gradient(180deg, #4c7f52, #2d5d34);&lt;br /&gt;
  border-color: #1d3c22;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, 0.75fr);&lt;br /&gt;
  gap: 14px;&lt;br /&gt;
  margin: 10px 0 16px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-card,&lt;br /&gt;
.sanko-card,&lt;br /&gt;
.sanko-infobox,&lt;br /&gt;
.sanko-recipe,&lt;br /&gt;
.sanko-bounty-prompt,&lt;br /&gt;
.sanko-account-card,&lt;br /&gt;
.sanko-feature-panel,&lt;br /&gt;
.sanko-link-panel,&lt;br /&gt;
.sanko-item-summary {&lt;br /&gt;
  border: 2px solid var(--sanko-border-dark);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  box-shadow:&lt;br /&gt;
    0 8px 18px rgba(42, 18, 0, 0.16),&lt;br /&gt;
    inset 0 0 0 2px rgba(255, 255, 255, 0.18);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-card {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  min-height: 210px;&lt;br /&gt;
  padding: 22px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(135deg, rgba(245, 230, 200, 0.96), rgba(214, 177, 103, 0.88)),&lt;br /&gt;
    var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-primary {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(0, 1fr) auto;&lt;br /&gt;
  align-items: end;&lt;br /&gt;
  gap: 18px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(90deg, rgba(18, 8, 4, 0.92), rgba(42, 18, 0, 0.68) 48%, rgba(18, 8, 4, 0.3)),&lt;br /&gt;
    var(--sanko-backdrop);&lt;br /&gt;
  background-position: center;&lt;br /&gt;
  background-size: cover;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-primary:before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  inset: 0;&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
  background:&lt;br /&gt;
    radial-gradient(circle at 22% 18%, rgba(243, 211, 106, 0.7) 0 1px, transparent 2px 100%),&lt;br /&gt;
    radial-gradient(circle at 84% 22%, rgba(199, 240, 250, 0.55) 0 1px, transparent 2px 100%),&lt;br /&gt;
    linear-gradient(90deg, transparent, rgba(57, 114, 201, 0.08)),&lt;br /&gt;
    repeating-linear-gradient(0deg, rgba(255, 247, 224, 0.08) 0 1px, transparent 1px 18px);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-content,&lt;br /&gt;
.sanko-hero-party {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  z-index: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-party {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(3, 56px);&lt;br /&gt;
  gap: 8px;&lt;br /&gt;
  align-content: center;&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  background: rgba(30, 22, 8, 0.92);&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.12), inset -2px -2px 0 rgba(0, 0, 0, 0.45);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-party .sanko-sprite {&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-party &amp;gt; p {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-kicker,&lt;br /&gt;
.sanko-muted {&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  font-size: 0.9rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-kicker {&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-primary .sanko-kicker {&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.8);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-title {&lt;br /&gt;
  margin: 8px 0;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-size: 2.15rem;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  line-height: 1.06;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-primary .sanko-title,&lt;br /&gt;
.sanko-hero-primary p {&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.82);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-card .sanko-section-title {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-stats {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(4, minmax(0, 1fr));&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  margin: 12px 0 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-stat {&lt;br /&gt;
  min-height: 72px;&lt;br /&gt;
  padding: 11px 12px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.12), inset -2px -2px 0 rgba(0, 0, 0, 0.45);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-stat strong {&lt;br /&gt;
  display: block;&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  font-size: 1.35rem;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-section-title {&lt;br /&gt;
  margin: 20px 0 10px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-size: 1.25rem;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card-grid,&lt;br /&gt;
.sanko-hub-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(auto-fit, minmax(158px, 1fr));&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  margin: 12px 0 22px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card-grid &amp;gt; p,&lt;br /&gt;
.sanko-hub-grid &amp;gt; p {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card-grid a,&lt;br /&gt;
.sanko-hub-grid a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  min-height: 62px;&lt;br /&gt;
  padding: 11px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.82);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a:hover .sanko-card,&lt;br /&gt;
.sanko-card:hover {&lt;br /&gt;
  border-color: var(--sanko-water);&lt;br /&gt;
  transform: translateY(-1px);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card strong {&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card small {&lt;br /&gt;
  display: block;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  line-height: 1.25;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-feature-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);&lt;br /&gt;
  gap: 14px;&lt;br /&gt;
  margin: 10px 0 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-feature-panel,&lt;br /&gt;
.sanko-link-panel {&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.78);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-feature-panel .sanko-section-title,&lt;br /&gt;
.sanko-link-panel .sanko-section-title {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));&lt;br /&gt;
  gap: 12px;&lt;br /&gt;
  margin: 12px 0 20px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-grid &amp;gt; p {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-grid a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-card {&lt;br /&gt;
  display: block;&lt;br /&gt;
  min-height: 96px;&lt;br /&gt;
  padding: 14px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(255, 247, 224, 0.92), rgba(236, 217, 176, 0.92));&lt;br /&gt;
  border: 2px solid var(--sanko-border-dark);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
  box-shadow: 0 8px 18px rgba(42, 18, 0, 0.16), inset 0 0 0 2px rgba(255, 255, 255, 0.18);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-card strong {&lt;br /&gt;
  display: block;&lt;br /&gt;
  margin-bottom: 6px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-card small {&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a:hover .sanko-action-card,&lt;br /&gt;
.sanko-action-card:hover {&lt;br /&gt;
  border-color: var(--sanko-leaf);&lt;br /&gt;
  transform: translateY(-1px);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-link-panel ul {&lt;br /&gt;
  margin: 8px 0 0;&lt;br /&gt;
  padding-left: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-link-panel li {&lt;br /&gt;
  margin: 4px 0;&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-open-bounties {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  margin: 14px 0 24px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-bounty-card {&lt;br /&gt;
  min-height: 70px;&lt;br /&gt;
  padding: 14px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.1), inset -2px -2px 0 rgba(0, 0, 0, 0.45);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-bounty-title {&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-bounty-claim {&lt;br /&gt;
  margin-top: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-bounty-card .sanko-pill {&lt;br /&gt;
  background: rgba(255, 247, 224, 0.12);&lt;br /&gt;
  border-color: rgba(243, 211, 106, 0.42);&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-account-panel {&lt;br /&gt;
  margin: 10px 0 22px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-account-card {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(0, 1fr) auto;&lt;br /&gt;
  gap: 14px;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  padding: 14px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.82);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-account-title {&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-size: 1.15rem;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-account-meta {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
  margin-top: 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-account-actions {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 8px;&lt;br /&gt;
  justify-content: flex-end;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-button {&lt;br /&gt;
  min-height: 36px;&lt;br /&gt;
  padding: 7px 12px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  cursor: pointer;&lt;br /&gt;
  font: inherit;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.16), inset -1px -1px 0 rgba(0, 0, 0, 0.42);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-button:hover {&lt;br /&gt;
  background: #3d2f1a;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-button:disabled {&lt;br /&gt;
  color: var(--sanko-paper-3);&lt;br /&gt;
  cursor: wait;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  float: right;&lt;br /&gt;
  width: 296px;&lt;br /&gt;
  margin: 0 0 18px 22px;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  background: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-side {&lt;br /&gt;
  display: flow-root;&lt;br /&gt;
  margin: 0 0 14px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ h2,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ h3,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .mw-heading {&lt;br /&gt;
  display: flow-root;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-page-skeleton,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-auto-section,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-missing-data,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-bounty-prompt,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-requirement-list,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-row {&lt;br /&gt;
  display: flow-root;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-catalog-summary {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(180px, 0.35fr) minmax(0, 1fr);&lt;br /&gt;
  gap: 14px;&lt;br /&gt;
  align-items: stretch;&lt;br /&gt;
  margin: 12px 0 20px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-catalog-count {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-direction: column;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  min-height: 120px;&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.12), inset -2px -2px 0 rgba(0, 0, 0, 0.45);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-catalog-count strong {&lt;br /&gt;
  display: block;&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  font-size: 2.2rem;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-title {&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  text-shadow: 0 1px 0 #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-icon {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(18, 8, 4, 0.92), rgba(45, 32, 16, 0.94)),&lt;br /&gt;
    #2d2010;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-icon-frame {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 116px;&lt;br /&gt;
  height: 116px;&lt;br /&gt;
  background: #1b140a;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.1), inset -2px -2px 0 rgba(0, 0, 0, 0.52);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-icon-frame .sanko-sprite-missing {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-model-render {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: 14px;&lt;br /&gt;
  background:&lt;br /&gt;
    radial-gradient(circle at 50% 42%, rgba(243, 211, 106, 0.12), transparent 58%),&lt;br /&gt;
    linear-gradient(180deg, rgba(18, 8, 4, 0.94), rgba(45, 32, 16, 0.96)),&lt;br /&gt;
    #2d2010;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-model-render img {&lt;br /&gt;
  display: block;&lt;br /&gt;
  width: min(220px, 100%);&lt;br /&gt;
  height: auto;&lt;br /&gt;
  aspect-ratio: 1 / 1;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
  filter: drop-shadow(0 12px 18px rgba(0, 0, 0, 0.42));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-examine {&lt;br /&gt;
  padding: 10px 14px 14px;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-table th,&lt;br /&gt;
.sanko-infobox-table td {&lt;br /&gt;
  padding: 7px 10px;&lt;br /&gt;
  border-top: 1px solid rgba(109, 90, 61, 0.34);&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-table th {&lt;br /&gt;
  width: 42%;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  text-align: left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-summary {&lt;br /&gt;
  max-width: none;&lt;br /&gt;
  margin: 8px 0 18px;&lt;br /&gt;
  padding: 13px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.78);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-flow {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-clear,&lt;br /&gt;
.sanko-item-clear {&lt;br /&gt;
  clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-summary-title {&lt;br /&gt;
  margin: 2px 0 8px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-size: 1.35rem;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-summary-grid,&lt;br /&gt;
.sanko-recipe-meta {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sprite,&lt;br /&gt;
.sanko-inventory-slot {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  image-rendering: pixelated;&lt;br /&gt;
  vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sprite {&lt;br /&gt;
  width: 32px;&lt;br /&gt;
  height: 32px;&lt;br /&gt;
  background-image: url(&#039;/w/sanko-assets/Sanko_item_atlas.svg&#039;);&lt;br /&gt;
  background-repeat: no-repeat;&lt;br /&gt;
  background-size: 128px 1056px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sprite-link a {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sprite-missing {&lt;br /&gt;
  background: rgba(45, 32, 16, 0.55);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.5);&lt;br /&gt;
  color: var(--sanko-paper-3);&lt;br /&gt;
  line-height: 30px;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  clear: both;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  max-width: 620px;&lt;br /&gt;
  margin: 14px 0;&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.84);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-pill,&lt;br /&gt;
.sanko-tag {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-height: 22px;&lt;br /&gt;
  padding: 3px 8px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  border: 1px solid #000;&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  font-size: 0.82rem;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-body {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(132px, 1fr) 36px minmax(0, 180px);&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  margin-top: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-inputs {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(3, 44px);&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-inventory-slot {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  width: 44px;&lt;br /&gt;
  height: 44px;&lt;br /&gt;
  padding: 5px;&lt;br /&gt;
  background: #17110a;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  box-shadow: inset 2px 2px 0 #3d2f1a, inset -2px -2px 0 #050301;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Icon frames center their sprite on both axes; line-height:0 removes the inline&lt;br /&gt;
   line-box gap that otherwise pushes inline-block sprites a few px high. */&lt;br /&gt;
.sanko-inventory-slot,&lt;br /&gt;
.sanko-item-icon-frame,&lt;br /&gt;
.sanko-row-image {&lt;br /&gt;
  line-height: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-inventory-slot .sanko-sprite,&lt;br /&gt;
.sanko-item-icon-frame .sanko-sprite,&lt;br /&gt;
.sanko-row-image .sanko-sprite {&lt;br /&gt;
  vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-inventory-qty {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  right: 3px;&lt;br /&gt;
  bottom: 1px;&lt;br /&gt;
  color: #fff6cf;&lt;br /&gt;
  font-size: 11px;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  text-shadow: 1px 1px #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-arrow {&lt;br /&gt;
  color: var(--sanko-water);&lt;br /&gt;
  font-size: 28px;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-output {&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  max-width: 180px;&lt;br /&gt;
  justify-self: end;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-spell-output {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  padding: 8px 9px;&lt;br /&gt;
  background: #17110a;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  box-shadow: inset 2px 2px 0 #3d2f1a, inset -2px -2px 0 #050301;&lt;br /&gt;
  color: #fff6cf;&lt;br /&gt;
  font-size: 0.9rem;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  line-height: 1.12;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 520px) {&lt;br /&gt;
  .sanko-recipe-body {&lt;br /&gt;
    grid-template-columns: minmax(0, 1fr);&lt;br /&gt;
    justify-items: start;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-recipe-output {&lt;br /&gt;
    max-width: none;&lt;br /&gt;
    justify-self: stretch;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-bounty-prompt {&lt;br /&gt;
  margin: 14px 0;&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.78);&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-task-lanes {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));&lt;br /&gt;
  gap: 12px;&lt;br /&gt;
  margin: 12px 0 22px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-task-lane {&lt;br /&gt;
  padding: 13px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.78);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.42);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-task-lane h3 {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-task-card-head {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
  margin-bottom: 7px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-inline-fact {&lt;br /&gt;
  margin: 7px 0;&lt;br /&gt;
  padding: 8px 10px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.72);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.36);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-status-badge {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 5px;&lt;br /&gt;
  min-height: 0;&lt;br /&gt;
  padding: 2px 9px;&lt;br /&gt;
  background: rgba(109, 90, 61, 0.1);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.3);&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  font-size: 0.72rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
  line-height: 1.5;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-status-badge::before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  width: 6px;&lt;br /&gt;
  height: 6px;&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: currentColor;&lt;br /&gt;
  opacity: 0.85;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-status-verified {&lt;br /&gt;
  background: rgba(76, 127, 82, 0.16);&lt;br /&gt;
  border-color: rgba(76, 127, 82, 0.5);&lt;br /&gt;
  color: #3c6b42;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-status-unverified {&lt;br /&gt;
  background: rgba(214, 168, 60, 0.18);&lt;br /&gt;
  border-color: rgba(214, 168, 60, 0.55);&lt;br /&gt;
  color: #8a6a1c;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-edit-login-cta {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: space-between;&lt;br /&gt;
  gap: 12px;&lt;br /&gt;
  margin: 0 0 16px;&lt;br /&gt;
  padding: 14px 16px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.7);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.4);&lt;br /&gt;
  border-left: 3px solid var(--sanko-gold);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-edit-login-cta strong {&lt;br /&gt;
  font-size: 1.02rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-edit-login-cta p {&lt;br /&gt;
  margin: 3px 0 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-edit-login-cta .sanko-button {&lt;br /&gt;
  flex: 0 0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-missing-data {&lt;br /&gt;
  margin: 10px 0;&lt;br /&gt;
  padding: 9px 12px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.5);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.36);&lt;br /&gt;
  border-left: 3px solid var(--sanko-gold);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-missing-data strong,&lt;br /&gt;
.sanko-missing-data span {&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-missing-actions {&lt;br /&gt;
  display: flex !important;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
  margin-top: 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-missing-actions a {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-height: 24px;&lt;br /&gt;
  padding: 3px 7px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.62);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.48);&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
  font-size: 0.82rem;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  line-height: 1.2;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-missing-actions a:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.22);&lt;br /&gt;
  border-color: var(--sanko-leaf);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: 40px minmax(0, 1fr);&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  margin: 7px 0;&lt;br /&gt;
  padding: 8px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.74);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.36);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-image {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 40px;&lt;br /&gt;
  height: 40px;&lt;br /&gt;
  background: #17110a;&lt;br /&gt;
  border: 1px solid #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-render img {&lt;br /&gt;
  display: block;&lt;br /&gt;
  width: 34px;&lt;br /&gt;
  height: 34px;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-render {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 34px;&lt;br /&gt;
  height: 34px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-placeholder {&lt;br /&gt;
  color: var(--sanko-paper-2);&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Title + meta flow on one line and wrap only when they must, so short catalog&lt;br /&gt;
   rows stay single-line instead of always stacking. */&lt;br /&gt;
.sanko-row-body {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  align-items: baseline;&lt;br /&gt;
  gap: 3px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-title {&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  line-height: 1.3;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-meta {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 6px 8px;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  font-size: 0.84rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* MediaWiki wraps the meta spans in a &amp;lt;p&amp;gt;; unwrap it for layout so the flex gap&lt;br /&gt;
   and separators apply to the spans directly. */&lt;br /&gt;
.sanko-row-meta &amp;gt; p {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Separate adjacent text metas (Qty · Station · Skill · Level) so they don&#039;t read&lt;br /&gt;
   as one run-on line; the status pill is excluded so it keeps its own spacing. */&lt;br /&gt;
.sanko-row-meta span:not(.sanko-status-badge) + span:not(.sanko-status-badge)::before {&lt;br /&gt;
  content: &amp;quot;·&amp;quot;;&lt;br /&gt;
  margin-right: 8px;&lt;br /&gt;
  color: rgba(90, 56, 16, 0.5);&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* RuneScape-style recipe usage/product tables (Used In / Created By). */&lt;br /&gt;
.sanko-recipe-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin: 12px 0 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-table th {&lt;br /&gt;
  font-size: 0.82rem;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-table td {&lt;br /&gt;
  vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-rt-primary {&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-rt-icon {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  vertical-align: middle;&lt;br /&gt;
  margin-right: 7px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Many products (spells, etc.) have no item sprite; drop the &amp;quot;?&amp;quot; placeholder&lt;br /&gt;
   entirely rather than showing a broken icon. */&lt;br /&gt;
.sanko-recipe-table .sanko-rt-icon:has(.sanko-sprite-missing) {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-rt-num {&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Materials cell in the &amp;quot;Created By&amp;quot; table: a wrapping list of qty + icon + item. */&lt;br /&gt;
.sanko-rt-materials {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 5px 12px;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-rt-mat {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 4px;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-rt-mat-qty {&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-source-list {&lt;br /&gt;
  margin: 8px 0 16px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-requirement-list,&lt;br /&gt;
.sanko-family-nav,&lt;br /&gt;
.sanko-page-skeleton {&lt;br /&gt;
  margin: 12px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-family-nav {&lt;br /&gt;
  padding: 9px 11px;&lt;br /&gt;
  background: rgba(45, 32, 16, 0.92);&lt;br /&gt;
  border: 1px solid #000;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-family-nav a {&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-family-nav-label {&lt;br /&gt;
  margin-right: 8px;&lt;br /&gt;
  color: var(--sanko-paper-2);&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-page-lead {&lt;br /&gt;
  max-width: 76ch;&lt;br /&gt;
  margin: 8px 0 18px;&lt;br /&gt;
  font-size: 1.02rem;&lt;br /&gt;
  line-height: 1.55;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-minetip {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  z-index: 10000;&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
  padding: 6px 8px;&lt;br /&gt;
  background: #100f18;&lt;br /&gt;
  border: 1px solid #6f62b8;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
  font-size: 13px;&lt;br /&gt;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-footer li,&lt;br /&gt;
body.skin-vector .mw-footer a {&lt;br /&gt;
  color: var(--sanko-paper-3);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-page-columns {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.5fr);&lt;br /&gt;
  gap: 14px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-breadcrumbs {&lt;br /&gt;
  margin: 0 0 10px;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  font-size: 0.88rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Tighten the header→content transition: the empty subtitle and blank paragraphs&lt;br /&gt;
   MediaWiki inserts above/below the breadcrumb were creating large dead bands. */&lt;br /&gt;
body.skin-vector .mw-body-content {&lt;br /&gt;
  margin-top: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #contentSub:empty,&lt;br /&gt;
body.skin-vector #siteSub:empty,&lt;br /&gt;
body.skin-vector #contentSub2:empty {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-parser-output p:empty,&lt;br /&gt;
body.skin-vector .mw-parser-output p:has(&amp;gt; br:only-child) {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-parser-output &amp;gt; .sanko-breadcrumbs:first-child {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 820px) {&lt;br /&gt;
  .mw-body {&lt;br /&gt;
    margin: 12px 8px 0;&lt;br /&gt;
    padding: 0 12px 24px !important;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-hero,&lt;br /&gt;
  .sanko-feature-grid,&lt;br /&gt;
  .sanko-page-columns,&lt;br /&gt;
  .sanko-stats,&lt;br /&gt;
  .sanko-catalog-summary {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-game-tabs &amp;gt; p {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-hero-primary {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-hero-party {&lt;br /&gt;
    grid-template-columns: repeat(6, 44px);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-account-card {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-infobox {&lt;br /&gt;
    float: none;&lt;br /&gt;
    width: auto;&lt;br /&gt;
    margin: 0 0 16px;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* Wide data tables scroll within their own box instead of overflowing the page. */&lt;br /&gt;
  .mw-parser-output .wikitable,&lt;br /&gt;
  .mw-parser-output .cargoTable,&lt;br /&gt;
  .mw-parser-output .sanko-table {&lt;br /&gt;
    display: block;&lt;br /&gt;
    max-width: 100%;&lt;br /&gt;
    overflow-x: auto;&lt;br /&gt;
    -webkit-overflow-scrolling: touch;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* Search must not force horizontal scroll on small screens. */&lt;br /&gt;
  body.skin-vector #p-search {&lt;br /&gt;
    min-width: 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Keel sponsor — light, theme-inherited badge (header) + dofollow credit (footer).&lt;br /&gt;
   The mark is an inline SVG drawn with currentColor, so it recolors with the link. */&lt;br /&gt;
.sanko-sponsor {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 7px;&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sponsor:hover {&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sponsor-mark {&lt;br /&gt;
  width: 20px;&lt;br /&gt;
  height: 20px;&lt;br /&gt;
  flex: none;&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sponsor:hover .sanko-sponsor-mark {&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sponsor-label {&lt;br /&gt;
  color: var(--sanko-paper-3);&lt;br /&gt;
  font-size: 0.62rem;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  letter-spacing: 0.08em;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
  opacity: 0.72;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Keep the &amp;quot;Sponsored by&amp;quot; label muted even on hover — only the brand lifts to gold. */&lt;br /&gt;
.sanko-sponsor:hover .sanko-sponsor-label {&lt;br /&gt;
  color: var(--sanko-paper-3);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sponsor-word {&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  letter-spacing: 0.02em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sponsor-tagline {&lt;br /&gt;
  color: var(--sanko-paper-3);&lt;br /&gt;
  font-weight: 600;&lt;br /&gt;
  font-size: 0.85em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Header badge: compact pill in the top-right; the tagline appears only when there&#039;s room. */&lt;br /&gt;
body.skin-vector .vector-header-end .sanko-sponsor-header {&lt;br /&gt;
  padding: 4px 10px;&lt;br /&gt;
  border: 1px solid var(--sanko-menu-border);&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  background: rgba(30, 22, 8, 0.55);&lt;br /&gt;
  font-size: 0.86rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sponsor-header .sanko-sponsor-tagline {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (min-width: 1200px) {&lt;br /&gt;
  .sanko-sponsor-header .sanko-sponsor-tagline {&lt;br /&gt;
    display: inline;&lt;br /&gt;
    margin-left: 2px;&lt;br /&gt;
    padding-left: 6px;&lt;br /&gt;
    border-left: 1px solid var(--sanko-menu-border);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Footer credit: mark + wordmark + full tagline on one tasteful line. */&lt;br /&gt;
body.skin-vector .mw-footer .sanko-sponsor-footer {&lt;br /&gt;
  gap: 8px;&lt;br /&gt;
  color: var(--sanko-paper-3) !important;&lt;br /&gt;
  font-size: 0.9rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-footer .sanko-sponsor-footer:hover {&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sponsor-footer .sanko-sponsor-tagline {&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 520px) {&lt;br /&gt;
  .sanko-sponsor-footer .sanko-sponsor-tagline {&lt;br /&gt;
    display: none;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Trim the header search a little so the sponsor badge + Log in button have room on the right. */&lt;br /&gt;
body.skin-vector .vector-header-end .vector-search-box {&lt;br /&gt;
  max-width: 20rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Compact &amp;quot;Log in&amp;quot; pill in the header, matching the sponsor badge chrome. */&lt;br /&gt;
body.skin-vector .vector-header-end #pt-login a,&lt;br /&gt;
body.skin-vector .vector-header-end #pt-login-2 a {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-height: 32px;&lt;br /&gt;
  padding: 4px 14px;&lt;br /&gt;
  border: 1px solid var(--sanko-menu-border);&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  background: rgba(30, 22, 8, 0.55);&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-header-end #pt-login a:hover,&lt;br /&gt;
body.skin-vector .vector-header-end #pt-login-2 a:hover {&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  background: rgba(30, 22, 8, 0.85);&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=MediaWiki:Common.js&amp;diff=438</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=MediaWiki:Common.js&amp;diff=438"/>
		<updated>2026-07-02T19:35:52Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(function () {&lt;br /&gt;
  var tip;&lt;br /&gt;
&lt;br /&gt;
  function showTip(target, event) {&lt;br /&gt;
    var title = target.getAttribute(&#039;data-minetip-title&#039;);&lt;br /&gt;
    if (!title) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (!tip) {&lt;br /&gt;
      tip = document.createElement(&#039;div&#039;);&lt;br /&gt;
      tip.className = &#039;sanko-minetip&#039;;&lt;br /&gt;
      document.body.appendChild(tip);&lt;br /&gt;
    }&lt;br /&gt;
    tip.textContent = title;&lt;br /&gt;
    tip.style.display = &#039;block&#039;;&lt;br /&gt;
    moveTip(event);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function moveTip(event) {&lt;br /&gt;
    if (!tip) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    tip.style.left = event.clientX + 14 + &#039;px&#039;;&lt;br /&gt;
    tip.style.top = event.clientY + 14 + &#039;px&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function hideTip() {&lt;br /&gt;
    if (tip) {&lt;br /&gt;
      tip.style.display = &#039;none&#039;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function wikiScriptUrl(title, params) {&lt;br /&gt;
    var url = new URL(&#039;/w/index.php&#039;, window.location.origin);&lt;br /&gt;
    url.searchParams.set(&#039;title&#039;, title);&lt;br /&gt;
    Object.keys(params || {}).forEach(function (key) {&lt;br /&gt;
      if (params[key]) {&lt;br /&gt;
        url.searchParams.set(key, params[key]);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    return url.toString();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function redirectCreateAccountToPrivy() {&lt;br /&gt;
    if (!window.mw || !mw.config || mw.config.get(&#039;wgCanonicalSpecialPageName&#039;) !== &#039;CreateAccount&#039;) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var params = new URLSearchParams(window.location.search);&lt;br /&gt;
    var returnTo = params.get(&#039;returnto&#039;) || &#039;Main Page&#039;;&lt;br /&gt;
    var returnToQuery = params.get(&#039;returntoquery&#039;) || &#039;&#039;;&lt;br /&gt;
    window.location.replace(wikiScriptUrl(&#039;Special:UserLogin&#039;, {&lt;br /&gt;
      returnto: returnTo,&lt;br /&gt;
      returntoquery: returnToQuery&lt;br /&gt;
    }));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function enhanceEditForAnon() {&lt;br /&gt;
    if (!window.mw || !mw.config) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var loggedIn = mw.user &amp;amp;&amp;amp; typeof mw.user.isAnon === &#039;function&#039;&lt;br /&gt;
      ? !mw.user.isAnon()&lt;br /&gt;
      : Boolean(mw.config.get(&#039;wgUserName&#039;));&lt;br /&gt;
    if (loggedIn) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var namespace = mw.config.get(&#039;wgNamespaceNumber&#039;);&lt;br /&gt;
    if (typeof namespace === &#039;number&#039; &amp;amp;&amp;amp; namespace &amp;lt; 0) {&lt;br /&gt;
      return; // Special/virtual pages have nothing to edit.&lt;br /&gt;
    }&lt;br /&gt;
    var loginHref = wikiScriptUrl(&#039;Special:UserLogin&#039;, {&lt;br /&gt;
      returnto: mw.config.get(&#039;wgPageName&#039;),&lt;br /&gt;
      returntoquery: &#039;action=edit&#039;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // 1) Always surface a clear &amp;quot;Edit&amp;quot; tab. Logged-out users get sent through&lt;br /&gt;
    //    Privy login and returned to the page in edit mode (no anon editing).&lt;br /&gt;
    var viewSource = document.getElementById(&#039;ca-viewsource&#039;);&lt;br /&gt;
    if (viewSource) {&lt;br /&gt;
      var vsLink = viewSource.querySelector(&#039;a&#039;);&lt;br /&gt;
      if (vsLink) {&lt;br /&gt;
        vsLink.setAttribute(&#039;href&#039;, loginHref);&lt;br /&gt;
        vsLink.setAttribute(&#039;title&#039;, &#039;Log in to edit this page&#039;);&lt;br /&gt;
        var vsLabel = vsLink.querySelector(&#039;span&#039;) || vsLink;&lt;br /&gt;
        vsLabel.textContent = &#039;Edit&#039;;&lt;br /&gt;
      }&lt;br /&gt;
    } else if (!document.getElementById(&#039;ca-edit&#039;) &amp;amp;&amp;amp; mw.util &amp;amp;&amp;amp; mw.util.addPortletLink) {&lt;br /&gt;
      mw.util.addPortletLink(&#039;p-views&#039;, loginHref, &#039;Edit&#039;, &#039;ca-edit&#039;, &#039;Log in to edit this page&#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 2) On the edit / view-source page itself, add an explicit login call to action.&lt;br /&gt;
    var action = mw.config.get(&#039;wgAction&#039;);&lt;br /&gt;
    if ((action === &#039;edit&#039; || action === &#039;submit&#039;) &amp;amp;&amp;amp; !document.getElementById(&#039;sanko-edit-login-cta&#039;)) {&lt;br /&gt;
      var content = document.getElementById(&#039;mw-content-text&#039;);&lt;br /&gt;
      if (content) {&lt;br /&gt;
        var cta = document.createElement(&#039;div&#039;);&lt;br /&gt;
        cta.id = &#039;sanko-edit-login-cta&#039;;&lt;br /&gt;
        cta.className = &#039;sanko-edit-login-cta&#039;;&lt;br /&gt;
&lt;br /&gt;
        var copy = document.createElement(&#039;div&#039;);&lt;br /&gt;
        var heading = document.createElement(&#039;strong&#039;);&lt;br /&gt;
        heading.textContent = &#039;Log in to edit this page&#039;;&lt;br /&gt;
        var detail = document.createElement(&#039;p&#039;);&lt;br /&gt;
        detail.className = &#039;sanko-muted&#039;;&lt;br /&gt;
        detail.textContent = &amp;quot;Editing the wiki needs a free account. Sign in with Privy and you&#039;ll come straight back here to edit.&amp;quot;;&lt;br /&gt;
        copy.appendChild(heading);&lt;br /&gt;
        copy.appendChild(detail);&lt;br /&gt;
&lt;br /&gt;
        var loginLink = document.createElement(&#039;a&#039;);&lt;br /&gt;
        loginLink.className = &#039;sanko-button&#039;;&lt;br /&gt;
        loginLink.setAttribute(&#039;href&#039;, loginHref);&lt;br /&gt;
        loginLink.textContent = &#039;Log in with Privy&#039;;&lt;br /&gt;
&lt;br /&gt;
        cta.appendChild(copy);&lt;br /&gt;
        cta.appendChild(loginLink);&lt;br /&gt;
        content.insertBefore(cta, content.firstChild);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 3) Section-level [edit] links. MediaWiki omits these for users without edit&lt;br /&gt;
    //    rights and no config restores them (even Extension:Unregistered Edit Links&lt;br /&gt;
    //    skips sections), so add native-styled links next to each heading on the&lt;br /&gt;
    //    article view — each routes through login and back to that section&#039;s editor.&lt;br /&gt;
    if (action === &#039;view&#039;) {&lt;br /&gt;
      var sectionRoot = document.getElementById(&#039;mw-content-text&#039;);&lt;br /&gt;
      var headlines = sectionRoot ? sectionRoot.querySelectorAll(&#039;.mw-headline&#039;) : [];&lt;br /&gt;
      Array.prototype.forEach.call(headlines, function (headline, index) {&lt;br /&gt;
        var heading = headline.parentNode;&lt;br /&gt;
        if (!heading || heading.querySelector(&#039;.mw-editsection&#039;)) {&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
        var sectionHref = wikiScriptUrl(&#039;Special:UserLogin&#039;, {&lt;br /&gt;
          returnto: mw.config.get(&#039;wgPageName&#039;),&lt;br /&gt;
          returntoquery: &#039;action=edit&amp;amp;section=&#039; + (index + 1)&lt;br /&gt;
        });&lt;br /&gt;
        var wrap = document.createElement(&#039;span&#039;);&lt;br /&gt;
        wrap.className = &#039;mw-editsection&#039;;&lt;br /&gt;
        var open = document.createElement(&#039;span&#039;);&lt;br /&gt;
        open.className = &#039;mw-editsection-bracket&#039;;&lt;br /&gt;
        open.textContent = &#039;[&#039;;&lt;br /&gt;
        var sectionLink = document.createElement(&#039;a&#039;);&lt;br /&gt;
        sectionLink.setAttribute(&#039;href&#039;, sectionHref);&lt;br /&gt;
        sectionLink.setAttribute(&#039;title&#039;, &#039;Log in to edit this section&#039;);&lt;br /&gt;
        sectionLink.textContent = &#039;edit&#039;;&lt;br /&gt;
        var close = document.createElement(&#039;span&#039;);&lt;br /&gt;
        close.className = &#039;mw-editsection-bracket&#039;;&lt;br /&gt;
        close.textContent = &#039;]&#039;;&lt;br /&gt;
        wrap.appendChild(open);&lt;br /&gt;
        wrap.appendChild(sectionLink);&lt;br /&gt;
        wrap.appendChild(close);&lt;br /&gt;
        heading.appendChild(wrap);&lt;br /&gt;
      });&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function polishLoginChrome() {&lt;br /&gt;
    var loginButton = document.getElementById(&#039;mw-input-pluggableauthlogin0&#039;);&lt;br /&gt;
    if (loginButton) {&lt;br /&gt;
      loginButton.textContent = &#039;Log in with Privy&#039;;&lt;br /&gt;
      loginButton.value = &#039;Log in with Privy&#039;;&lt;br /&gt;
    }&lt;br /&gt;
    document.querySelectorAll(&#039;#pt-createaccount, #pt-createaccount-2, #mw-createaccount-cta&#039;).forEach(function (node) {&lt;br /&gt;
      node.remove();&lt;br /&gt;
    });&lt;br /&gt;
    document.querySelectorAll(&#039;#pt-login a span:last-child, #pt-login-2 a span:last-child&#039;).forEach(function (node) {&lt;br /&gt;
      node.textContent = &#039;Log in with Privy&#039;;&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var itemThumbsPromise;&lt;br /&gt;
&lt;br /&gt;
  function loadItemThumbnails() {&lt;br /&gt;
    if (!itemThumbsPromise) {&lt;br /&gt;
      itemThumbsPromise = fetch(&#039;/w/sanko-assets/sanko/item-thumbnails.json&#039;, {&lt;br /&gt;
        headers: { Accept: &#039;application/json&#039; }&lt;br /&gt;
      })&lt;br /&gt;
        .then(function (response) { return response.ok ? response.json() : {}; })&lt;br /&gt;
        .catch(function () { return {}; });&lt;br /&gt;
    }&lt;br /&gt;
    return itemThumbsPromise;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function itemThumbnailFor(title, thumbnails) {&lt;br /&gt;
    var normalized = String(title || &#039;&#039;).replace(/_/g, &#039; &#039;).trim();&lt;br /&gt;
    return thumbnails[normalized] || &#039;&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function imageUrl(relativePath) {&lt;br /&gt;
    return &#039;/w/sanko-assets/&#039; + String(relativePath || &#039;&#039;).replace(/^\/+/, &#039;&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderModelImages() {&lt;br /&gt;
    document.querySelectorAll(&#039;.sanko-model-render[data-sanko-render-image], .sanko-row-render[data-sanko-render-image]&#039;).forEach(function (container) {&lt;br /&gt;
      if (container.querySelector(&#039;img&#039;)) {&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      var relativePath = container.getAttribute(&#039;data-sanko-render-image&#039;);&lt;br /&gt;
      if (!relativePath) {&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      var img = document.createElement(&#039;img&#039;);&lt;br /&gt;
      img.src = imageUrl(relativePath);&lt;br /&gt;
      img.alt = container.getAttribute(&#039;data-sanko-render-alt&#039;) || &#039;&#039;;&lt;br /&gt;
      img.loading = &#039;lazy&#039;;&lt;br /&gt;
      container.appendChild(img);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function addSearchThumb(container, title, href, thumbnails) {&lt;br /&gt;
    if (!container || container.querySelector(&#039;.sanko-search-thumb&#039;)) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var relativePath = itemThumbnailFor(title, thumbnails);&lt;br /&gt;
    if (!relativePath) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var link = document.createElement(href ? &#039;a&#039; : &#039;span&#039;);&lt;br /&gt;
    link.className = &#039;sanko-search-thumb&#039;;&lt;br /&gt;
    if (href) {&lt;br /&gt;
      link.href = href;&lt;br /&gt;
    }&lt;br /&gt;
    var img = document.createElement(&#039;img&#039;);&lt;br /&gt;
    img.src = imageUrl(relativePath);&lt;br /&gt;
    img.alt = &#039;&#039;;&lt;br /&gt;
    img.loading = &#039;lazy&#039;;&lt;br /&gt;
    img.onerror = function () {&lt;br /&gt;
      link.remove();&lt;br /&gt;
      if (!container.querySelector(&#039;.sanko-search-thumb&#039;)) {&lt;br /&gt;
        container.classList.remove(&#039;sanko-search-with-thumb&#039;);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    link.appendChild(img);&lt;br /&gt;
    container.insertBefore(link, container.firstChild);&lt;br /&gt;
    container.classList.add(&#039;sanko-search-with-thumb&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function enhanceSearchResults(thumbnails) {&lt;br /&gt;
    document.querySelectorAll(&#039;.mw-search-results .mw-search-result&#039;).forEach(function (result) {&lt;br /&gt;
      var heading = result.querySelector(&#039;.mw-search-result-heading a&#039;);&lt;br /&gt;
      if (!heading) {&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      addSearchThumb(result, heading.textContent, heading.href, thumbnails);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function suggestionTitle(node) {&lt;br /&gt;
    var label = node.querySelector(&#039;.cdx-menu-item__text__label, .cdx-menu-item__content, .cdx-typeahead-search__search-footer__text&#039;);&lt;br /&gt;
    return (label || node).textContent || &#039;&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function enhanceSearchSuggestions(thumbnails) {&lt;br /&gt;
    document.querySelectorAll(&#039;.cdx-typeahead-search__menu .cdx-menu-item, .cdx-menu__listbox .cdx-menu-item&#039;).forEach(function (item) {&lt;br /&gt;
      if (item.querySelector(&#039;.sanko-search-thumb&#039;)) {&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      addSearchThumb(item, suggestionTitle(item), null, thumbnails);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function enhanceSearchChrome() {&lt;br /&gt;
    if (!document.querySelector(&#039;.mw-search-results, .cdx-typeahead-search, #p-search&#039;)) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    loadItemThumbnails().then(function (thumbnails) {&lt;br /&gt;
      enhanceSearchResults(thumbnails);&lt;br /&gt;
      enhanceSearchSuggestions(thumbnails);&lt;br /&gt;
      var observer = new MutationObserver(function () {&lt;br /&gt;
        enhanceSearchSuggestions(thumbnails);&lt;br /&gt;
      });&lt;br /&gt;
      var searchRoot = document.querySelector(&#039;.cdx-typeahead-search, #p-search&#039;) || document.body;&lt;br /&gt;
      observer.observe(searchRoot, { childList: true, subtree: true });&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  document.addEventListener(&#039;mouseover&#039;, function (event) {&lt;br /&gt;
    var target = event.target.closest(&#039;[data-minetip-title]&#039;);&lt;br /&gt;
    if (target) {&lt;br /&gt;
      showTip(target, event);&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  document.addEventListener(&#039;mousemove&#039;, moveTip);&lt;br /&gt;
  document.addEventListener(&#039;mouseout&#039;, function (event) {&lt;br /&gt;
    if (event.target.closest(&#039;[data-minetip-title]&#039;)) {&lt;br /&gt;
      hideTip();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  // Bounties are a wiki/Cargo feature (see Template:BountyPrompt + SankoQuest:Open bounties):&lt;br /&gt;
  // pages are tagged in wikitext and listed via Cargo. Nothing bounty-related renders from here.&lt;br /&gt;
&lt;br /&gt;
  function engineBase() {&lt;br /&gt;
    return (window.sankoEngineApiBase || &#039;https://api.sankoquest.wiki&#039;).replace(/\/$/, &#039;&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function currentSubject() {&lt;br /&gt;
    if (window.sankoEngineSubject) {&lt;br /&gt;
      return window.sankoEngineSubject;&lt;br /&gt;
    }&lt;br /&gt;
    if (window.sankoFixtureSubject) {&lt;br /&gt;
      return window.sankoFixtureSubject;&lt;br /&gt;
    }&lt;br /&gt;
    if (window.mw &amp;amp;&amp;amp; mw.config &amp;amp;&amp;amp; mw.config.get(&#039;wgUserName&#039;)) {&lt;br /&gt;
      return &#039;did:privy:&#039; + String(mw.config.get(&#039;wgUserName&#039;)).toLowerCase().replace(/[^a-z0-9]+/g, &#039;-&#039;);&lt;br /&gt;
    }&lt;br /&gt;
    return &#039;&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function jsonFetch(url, options) {&lt;br /&gt;
    return fetch(url, options || {}).then(function (response) {&lt;br /&gt;
      if (!response.ok) {&lt;br /&gt;
        return response.json().catch(function () {&lt;br /&gt;
          return {};&lt;br /&gt;
        }).then(function (body) {&lt;br /&gt;
          var error = new Error(&#039;Sanko engine request failed: &#039; + response.status);&lt;br /&gt;
          error.status = response.status;&lt;br /&gt;
          error.code = body &amp;amp;&amp;amp; body.error;&lt;br /&gt;
          throw error;&lt;br /&gt;
        });&lt;br /&gt;
      }&lt;br /&gt;
      return response.json();&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function authHeaders(subject, includeJson) {&lt;br /&gt;
    var headers = includeJson ? { &#039;content-type&#039;: &#039;application/json&#039; } : {};&lt;br /&gt;
    if (window.sankoPrivyIdentityToken) {&lt;br /&gt;
      headers.authorization = &#039;Bearer &#039; + window.sankoPrivyIdentityToken;&lt;br /&gt;
    } else if (window.sankoWikiAuthToken) {&lt;br /&gt;
      headers.authorization = &#039;Bearer &#039; + window.sankoWikiAuthToken;&lt;br /&gt;
    } else if (window.sankoEnableFixtureAuth === true &amp;amp;&amp;amp; subject) {&lt;br /&gt;
      headers[&#039;x-sanko-sub&#039;] = subject;&lt;br /&gt;
    }&lt;br /&gt;
    return headers;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function hasWriteAuth(subject) {&lt;br /&gt;
    return Boolean(&lt;br /&gt;
      window.sankoPrivyIdentityToken ||&lt;br /&gt;
      window.sankoWikiAuthToken ||&lt;br /&gt;
      (window.sankoEnableFixtureAuth === true &amp;amp;&amp;amp; subject)&lt;br /&gt;
    );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function pill(text) {&lt;br /&gt;
    return &#039;&amp;lt;span class=&amp;quot;sanko-pill&amp;quot;&amp;gt;&#039; + escapeHtml(text) + &#039;&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function escapeHtml(value) {&lt;br /&gt;
    return String(value == null ? &#039;&#039; : value).replace(/[&amp;amp;&amp;lt;&amp;gt;&amp;quot;&#039;]/g, function (char) {&lt;br /&gt;
      return {&lt;br /&gt;
        &#039;&amp;amp;&#039;: &#039;&amp;amp;amp;&#039;,&lt;br /&gt;
        &#039;&amp;lt;&#039;: &#039;&amp;amp;lt;&#039;,&lt;br /&gt;
        &#039;&amp;gt;&#039;: &#039;&amp;amp;gt;&#039;,&lt;br /&gt;
        &#039;&amp;quot;&#039;: &#039;&amp;amp;quot;&#039;,&lt;br /&gt;
        &amp;quot;&#039;&amp;quot;: &#039;&amp;amp;#39;&#039;&lt;br /&gt;
      }[char];&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var CHAR_CONTRACT = &#039;0xAA2F665a011d404d71e8f49d4d09f7006C49aC5c&#039;;&lt;br /&gt;
&lt;br /&gt;
  function charChips(tokenIds) {&lt;br /&gt;
    return (tokenIds || []).map(function (tokenId) {&lt;br /&gt;
      var id = String(tokenId).replace(/[^0-9]/g, &#039;&#039;);&lt;br /&gt;
      if (!id) {&lt;br /&gt;
        return &#039;&#039;;&lt;br /&gt;
      }&lt;br /&gt;
      var href = &#039;https://arbiscan.io/token/&#039; + CHAR_CONTRACT + &#039;?a=&#039; + id;&lt;br /&gt;
      return &#039;&amp;lt;a class=&amp;quot;sanko-pill sanko-char-chip&amp;quot; href=&amp;quot;&#039; + href +&lt;br /&gt;
        &#039;&amp;quot; target=&amp;quot;_blank&amp;quot; rel=&amp;quot;noopener noreferrer&amp;quot;&amp;gt;CHAR #&#039; + escapeHtml(id) + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
    }).join(&#039;&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function renderAccount(root, profile) {&lt;br /&gt;
    var account = profile.account || {};&lt;br /&gt;
    var stats = profile.stats || {};&lt;br /&gt;
    var name = account.charName || account.displayName || account.handle || &#039;Unlinked adventurer&#039;;&lt;br /&gt;
    var linked = account.linkedSankoAddress &amp;amp;&amp;amp; account.charTokenIds &amp;amp;&amp;amp; account.charTokenIds.length;&lt;br /&gt;
    var titles = stats.titles &amp;amp;&amp;amp; stats.titles.length ? stats.titles.join(&#039;, &#039;) : &#039;New Chronicler&#039;;&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    var targetSubject =&lt;br /&gt;
      root.getAttribute(&#039;data-tip-target-subject&#039;) ||&lt;br /&gt;
      window.sankoTipTargetSubject ||&lt;br /&gt;
      account.subject ||&lt;br /&gt;
      subject;&lt;br /&gt;
    var actions = [];&lt;br /&gt;
    // Tipping stays hidden until the GOLD transfer path is live (window.sankoTipsEnabled,&lt;br /&gt;
    // injected server-side from MW_SANKO_TIPS_ENABLED). The engine also 404s /v1/tips while off.&lt;br /&gt;
    if (window.sankoTipsEnabled === true &amp;amp;&amp;amp; targetSubject &amp;amp;&amp;amp; targetSubject !== subject &amp;amp;&amp;amp; hasWriteAuth(subject)) {&lt;br /&gt;
      actions.push(&lt;br /&gt;
        &#039;&amp;lt;button class=&amp;quot;sanko-button&amp;quot; type=&amp;quot;button&amp;quot; data-sanko-tip-subject=&amp;quot;&#039; +&lt;br /&gt;
        escapeHtml(targetSubject) + &#039;&amp;quot;&amp;gt;Tip 25 GOLD&amp;lt;/button&amp;gt;&#039;&lt;br /&gt;
      );&lt;br /&gt;
    }&lt;br /&gt;
    actions.push(&lt;br /&gt;
      linked ? &#039;&amp;lt;button class=&amp;quot;sanko-button&amp;quot; type=&amp;quot;button&amp;quot; disabled&amp;gt;Linked&amp;lt;/button&amp;gt;&#039; :&lt;br /&gt;
        &#039;&amp;lt;button class=&amp;quot;sanko-button&amp;quot; type=&amp;quot;button&amp;quot; data-sanko-link-char&amp;gt;Link Sanko Character&amp;lt;/button&amp;gt;&#039;&lt;br /&gt;
    );&lt;br /&gt;
    root.innerHTML = [&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-account-card&amp;quot;&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-kicker&amp;quot;&amp;gt;Adventurer\&#039;s Log&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-account-title&amp;quot;&amp;gt;&#039; + escapeHtml(name) + &#039;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-muted&amp;quot;&amp;gt;&#039; + (linked ? &#039;CHAR linked&#039; : &#039;No Sanko Character linked yet&#039;) + &#039;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-account-meta&amp;quot;&amp;gt;&#039;,&lt;br /&gt;
      pill(&#039;Renown &#039; + (stats.renown || 0)),&lt;br /&gt;
      pill(titles),&lt;br /&gt;
      linked ? charChips(account.charTokenIds) : pill(&#039;Link a CHAR to unlock badges&#039;),&lt;br /&gt;
      &#039;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;div class=&amp;quot;sanko-account-actions&amp;quot;&amp;gt;&#039; + actions.join(&#039;&#039;) + &#039;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
      &#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
    ].join(&#039;&#039;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function loadAccount() {&lt;br /&gt;
    var root = document.querySelector(&#039;.sanko-account-panel[data-live=&amp;quot;true&amp;quot;]&#039;);&lt;br /&gt;
    if (!root || !window.fetch) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    if (!subject) {&lt;br /&gt;
      root.innerHTML = &#039;&amp;lt;div class=&amp;quot;sanko-account-card sanko-muted&amp;quot;&amp;gt;Log in to view your Adventurer\&#039;s Log.&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var base = engineBase();&lt;br /&gt;
    jsonFetch(base + &#039;/v1/profiles/&#039; + encodeURIComponent(subject))&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        if (!hasWriteAuth(subject)) {&lt;br /&gt;
          throw new Error(&#039;Sanko write auth unavailable.&#039;);&lt;br /&gt;
        }&lt;br /&gt;
        return jsonFetch(base + &#039;/v1/me&#039;, { headers: authHeaders(subject, false) }).then(function () {&lt;br /&gt;
          return jsonFetch(base + &#039;/v1/profiles/&#039; + encodeURIComponent(subject));&lt;br /&gt;
        });&lt;br /&gt;
      })&lt;br /&gt;
      .then(function (profile) {&lt;br /&gt;
        renderAccount(root, profile);&lt;br /&gt;
      })&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        root.innerHTML = &#039;&amp;lt;div class=&amp;quot;sanko-account-card sanko-muted&amp;quot;&amp;gt;Adventurer profile is unavailable.&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function sha256Hex(text) {&lt;br /&gt;
    if (!window.crypto || !window.crypto.subtle || !window.TextEncoder) {&lt;br /&gt;
      return Promise.reject(new Error(&#039;Web Crypto is unavailable.&#039;));&lt;br /&gt;
    }&lt;br /&gt;
    return window.crypto.subtle.digest(&#039;SHA-256&#039;, new TextEncoder().encode(text)).then(function (buffer) {&lt;br /&gt;
      return Array.prototype.map.call(new Uint8Array(buffer), function (byte) {&lt;br /&gt;
        return byte.toString(16).padStart(2, &#039;0&#039;);&lt;br /&gt;
      }).join(&#039;&#039;);&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function linkFixtureChar(button) {&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    var base = engineBase();&lt;br /&gt;
    var address = window.sankoFixtureCharAddress || &#039;0x2222222222222222222222222222222222222222&#039;;&lt;br /&gt;
    if (!subject || !button || window.sankoEnableFixtureCharLink !== true) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    button.disabled = true;&lt;br /&gt;
    button.textContent = &#039;Linking...&#039;;&lt;br /&gt;
    jsonFetch(base + &#039;/v1/char-link/nonce&#039;, {&lt;br /&gt;
      method: &#039;POST&#039;,&lt;br /&gt;
      headers: authHeaders(subject, true),&lt;br /&gt;
      body: JSON.stringify({ domain: &#039;sankoquest.wiki&#039;, linkedSankoAddress: address })&lt;br /&gt;
    })&lt;br /&gt;
      .then(function (nonce) {&lt;br /&gt;
        return sha256Hex(nonce.message + &#039;:&#039; + address.toLowerCase()).then(function (hash) {&lt;br /&gt;
          return jsonFetch(base + &#039;/v1/char-link/verify&#039;, {&lt;br /&gt;
            method: &#039;POST&#039;,&lt;br /&gt;
            headers: authHeaders(subject, true),&lt;br /&gt;
            body: JSON.stringify({&lt;br /&gt;
              nonce: nonce.nonce,&lt;br /&gt;
              linkedSankoAddress: address,&lt;br /&gt;
              charTokenIds: [384, 7],&lt;br /&gt;
              charName: &#039;Wiki-local Chronicler&#039;,&lt;br /&gt;
              signature: &#039;fixture:&#039; + hash&lt;br /&gt;
            })&lt;br /&gt;
          });&lt;br /&gt;
        });&lt;br /&gt;
      })&lt;br /&gt;
      .then(loadAccount)&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        button.disabled = false;&lt;br /&gt;
        button.textContent = &#039;Link failed&#039;;&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function signPersonalMessage(address, message) {&lt;br /&gt;
    return window.ethereum.request({ method: &#039;personal_sign&#039;, params: [message, address] })&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        return window.ethereum.request({ method: &#039;personal_sign&#039;, params: [address, message] });&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function linkWalletChar(button) {&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    var base = engineBase();&lt;br /&gt;
    if (!subject || !button) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (!hasWriteAuth(subject)) {&lt;br /&gt;
      button.textContent = &#039;Sign in with Privy first&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (!window.ethereum || !window.ethereum.request) {&lt;br /&gt;
      button.textContent = &#039;Wallet unavailable&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    button.disabled = true;&lt;br /&gt;
    button.textContent = &#039;Waiting for wallet...&#039;;&lt;br /&gt;
    window.ethereum.request({ method: &#039;eth_requestAccounts&#039; })&lt;br /&gt;
      .then(function (accounts) {&lt;br /&gt;
        var address = String(accounts &amp;amp;&amp;amp; accounts[0] ? accounts[0] : &#039;&#039;).toLowerCase();&lt;br /&gt;
        if (!/^0x[0-9a-f]{40}$/.test(address)) {&lt;br /&gt;
          throw new Error(&#039;No EVM wallet address returned.&#039;);&lt;br /&gt;
        }&lt;br /&gt;
        return jsonFetch(base + &#039;/v1/char-link/nonce&#039;, {&lt;br /&gt;
          method: &#039;POST&#039;,&lt;br /&gt;
          headers: authHeaders(subject, true),&lt;br /&gt;
          body: JSON.stringify({ domain: location.hostname || &#039;sankoquest.wiki&#039;, linkedSankoAddress: address })&lt;br /&gt;
        }).then(function (nonce) {&lt;br /&gt;
          return signPersonalMessage(address, nonce.message).then(function (signature) {&lt;br /&gt;
            return jsonFetch(base + &#039;/v1/char-link/verify&#039;, {&lt;br /&gt;
              method: &#039;POST&#039;,&lt;br /&gt;
              headers: authHeaders(subject, true),&lt;br /&gt;
              body: JSON.stringify({&lt;br /&gt;
                nonce: nonce.nonce,&lt;br /&gt;
                linkedSankoAddress: address,&lt;br /&gt;
                signature: signature&lt;br /&gt;
              })&lt;br /&gt;
            });&lt;br /&gt;
          });&lt;br /&gt;
        });&lt;br /&gt;
      })&lt;br /&gt;
      .then(loadAccount)&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        button.disabled = false;&lt;br /&gt;
        button.textContent = &#039;Link failed&#039;;&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function linkFromIdentity(button) {&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    var base = engineBase();&lt;br /&gt;
    if (!subject || !button) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (!hasWriteAuth(subject)) {&lt;br /&gt;
      button.textContent = &#039;Sign in with Privy first&#039;;&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    button.disabled = true;&lt;br /&gt;
    button.textContent = &#039;Linking...&#039;;&lt;br /&gt;
    return jsonFetch(base + &#039;/v1/char-link/from-identity&#039;, {&lt;br /&gt;
      method: &#039;POST&#039;,&lt;br /&gt;
      headers: authHeaders(subject, true)&lt;br /&gt;
    })&lt;br /&gt;
      .then(loadAccount)&lt;br /&gt;
      .catch(function (error) {&lt;br /&gt;
        var code = error &amp;amp;&amp;amp; error.code;&lt;br /&gt;
        var walletCapable = window.ethereum &amp;amp;&amp;amp; window.ethereum.request;&lt;br /&gt;
        // CHAR lives in a wallet Privy doesn&#039;t know about — prove control of it&lt;br /&gt;
        // with a signature, if the browser has an injected wallet to sign with.&lt;br /&gt;
        if ((code === &#039;char_not_found&#039; || code === &#039;wallet_not_in_identity&#039;) &amp;amp;&amp;amp; walletCapable) {&lt;br /&gt;
          return linkWalletChar(button);&lt;br /&gt;
        }&lt;br /&gt;
        button.disabled = false;&lt;br /&gt;
        if (code === &#039;char_not_found&#039;) {&lt;br /&gt;
          button.textContent = &#039;No CHAR in your wallet&#039;;&lt;br /&gt;
        } else if (code === &#039;wallet_not_in_identity&#039;) {&lt;br /&gt;
          button.textContent = &#039;Connect a wallet in Privy&#039;;&lt;br /&gt;
        } else {&lt;br /&gt;
          button.textContent = &#039;Link failed&#039;;&lt;br /&gt;
        }&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function linkSankoChar(button) {&lt;br /&gt;
    if (window.sankoEnableFixtureCharLink === true) {&lt;br /&gt;
      return linkFixtureChar(button);&lt;br /&gt;
    }&lt;br /&gt;
    return linkFromIdentity(button);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function tipAdventurer(button) {&lt;br /&gt;
    var subject = currentSubject();&lt;br /&gt;
    var targetSubject = button &amp;amp;&amp;amp; button.getAttribute(&#039;data-sanko-tip-subject&#039;);&lt;br /&gt;
    if (!targetSubject || !subject || !hasWriteAuth(subject)) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    button.disabled = true;&lt;br /&gt;
    button.textContent = &#039;Tipping...&#039;;&lt;br /&gt;
    jsonFetch(engineBase() + &#039;/v1/tips&#039;, {&lt;br /&gt;
      method: &#039;POST&#039;,&lt;br /&gt;
      headers: authHeaders(subject, true),&lt;br /&gt;
      body: JSON.stringify({&lt;br /&gt;
        toSubject: targetSubject,&lt;br /&gt;
        amount: 25,&lt;br /&gt;
        token: &#039;GOLD&#039;&lt;br /&gt;
      })&lt;br /&gt;
    })&lt;br /&gt;
      .then(function () {&lt;br /&gt;
        button.textContent = &#039;Tipped&#039;;&lt;br /&gt;
      })&lt;br /&gt;
      .catch(function () {&lt;br /&gt;
        button.disabled = false;&lt;br /&gt;
        button.textContent = &#039;Tip failed&#039;;&lt;br /&gt;
      });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Keel &amp;quot;sail&amp;quot; mark — kept in sync with the server-rendered footer copy in LocalSettings.php.&lt;br /&gt;
  // currentColor lets it inherit the theme so it reads light/gold on the dark header.&lt;br /&gt;
  var SPONSOR_MARK =&lt;br /&gt;
    &#039;&amp;lt;svg class=&amp;quot;sanko-sponsor-mark&amp;quot; viewBox=&amp;quot;0 0 40 40&amp;quot; aria-hidden=&amp;quot;true&amp;quot; focusable=&amp;quot;false&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
    &#039;&amp;lt;path d=&amp;quot;M20 33 L20 2 L33 25 Z&amp;quot; fill=&amp;quot;currentColor&amp;quot; opacity=&amp;quot;0.55&amp;quot;/&amp;gt;&#039; +&lt;br /&gt;
    &#039;&amp;lt;path d=&amp;quot;M18 9 L8 27 L18 27 Z&amp;quot; fill=&amp;quot;currentColor&amp;quot; opacity=&amp;quot;0.32&amp;quot;/&amp;gt;&#039; +&lt;br /&gt;
    &#039;&amp;lt;path d=&amp;quot;M5 33 C10 33 16 37 22 37 C28 37 33 33 38 33&amp;quot; fill=&amp;quot;none&amp;quot; stroke=&amp;quot;currentColor&amp;quot; stroke-width=&amp;quot;2.2&amp;quot; stroke-linecap=&amp;quot;round&amp;quot; opacity=&amp;quot;0.75&amp;quot;/&amp;gt;&#039; +&lt;br /&gt;
    &#039;&amp;lt;/svg&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
  // Vector 2022 has no server-side header slot, so the sponsor badge is placed here, into&lt;br /&gt;
  // .vector-header-end. window.sankoSponsor is injected server-side (LocalSettings.php) and&lt;br /&gt;
  // gated by MW_SANKO_SPONSOR_ENABLED, so this no-ops when the sponsor is turned off.&lt;br /&gt;
  function renderSponsorBadge() {&lt;br /&gt;
    var cfg = window.sankoSponsor;&lt;br /&gt;
    if (!cfg || !cfg.url || document.getElementById(&#039;sanko-sponsor-header&#039;)) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var headerEnd = document.querySelector(&#039;.vector-header-end&#039;);&lt;br /&gt;
    if (!headerEnd) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    var link = document.createElement(&#039;a&#039;);&lt;br /&gt;
    link.id = &#039;sanko-sponsor-header&#039;;&lt;br /&gt;
    link.className = &#039;sanko-sponsor sanko-sponsor-header&#039;;&lt;br /&gt;
    link.href = cfg.url.replace(/\/$/, &#039;&#039;) +&lt;br /&gt;
      &#039;?utm_source=sankoquest.wiki&amp;amp;utm_medium=wiki-header&amp;amp;utm_campaign=sanko-sponsor&#039;;&lt;br /&gt;
    link.target = &#039;_blank&#039;;&lt;br /&gt;
    link.rel = &#039;noopener&#039;;&lt;br /&gt;
    link.title = &#039;keel — &#039; + (cfg.tagline || &#039;&#039;);&lt;br /&gt;
    link.innerHTML = SPONSOR_MARK +&lt;br /&gt;
      &#039;&amp;lt;span class=&amp;quot;sanko-sponsor-word&amp;quot;&amp;gt;keel&amp;lt;/span&amp;gt;&#039; +&lt;br /&gt;
      &#039;&amp;lt;span class=&amp;quot;sanko-sponsor-tagline&amp;quot;&amp;gt;&#039; + escapeHtml(cfg.tagline || &#039;&#039;) + &#039;&amp;lt;/span&amp;gt;&#039;;&lt;br /&gt;
    headerEnd.insertBefore(link, headerEnd.firstChild);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  document.addEventListener(&#039;click&#039;, function (event) {&lt;br /&gt;
    var button = event.target.closest(&#039;[data-sanko-link-char]&#039;);&lt;br /&gt;
    if (button) {&lt;br /&gt;
      linkSankoChar(button);&lt;br /&gt;
    }&lt;br /&gt;
    var tipButton = event.target.closest(&#039;[data-sanko-tip-subject]&#039;);&lt;br /&gt;
    if (tipButton) {&lt;br /&gt;
      tipAdventurer(tipButton);&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  if (document.readyState === &#039;loading&#039;) {&lt;br /&gt;
    document.addEventListener(&#039;DOMContentLoaded&#039;, function () {&lt;br /&gt;
      redirectCreateAccountToPrivy();&lt;br /&gt;
      polishLoginChrome();&lt;br /&gt;
      enhanceEditForAnon();&lt;br /&gt;
      renderModelImages();&lt;br /&gt;
      enhanceSearchChrome();&lt;br /&gt;
      renderSponsorBadge();&lt;br /&gt;
      loadAccount();&lt;br /&gt;
    });&lt;br /&gt;
  } else {&lt;br /&gt;
    redirectCreateAccountToPrivy();&lt;br /&gt;
    polishLoginChrome();&lt;br /&gt;
    enhanceEditForAnon();&lt;br /&gt;
    renderModelImages();&lt;br /&gt;
    enhanceSearchChrome();&lt;br /&gt;
    renderSponsorBadge();&lt;br /&gt;
    loadAccount();&lt;br /&gt;
  }&lt;br /&gt;
}());&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=MediaWiki:Common.css&amp;diff=437</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=MediaWiki:Common.css&amp;diff=437"/>
		<updated>2026-07-02T19:35:51Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:root {&lt;br /&gt;
  --sanko-void: #120804;&lt;br /&gt;
  --sanko-void-2: #1e1608;&lt;br /&gt;
  --sanko-ink: #2a1200;&lt;br /&gt;
  --sanko-ink-soft: #5a3810;&lt;br /&gt;
  --sanko-paper: #f5e6c8;&lt;br /&gt;
  --sanko-paper-2: #e6d0a2;&lt;br /&gt;
  --sanko-paper-3: #c9b897;&lt;br /&gt;
  --sanko-border: #6d5a3d;&lt;br /&gt;
  --sanko-border-dark: #3a2e12;&lt;br /&gt;
  --sanko-menu: #2b2111;&lt;br /&gt;
  --sanko-menu-2: #171006;&lt;br /&gt;
  --sanko-menu-border: rgba(243, 211, 106, 0.34);&lt;br /&gt;
  --sanko-gold: #d6a83c;&lt;br /&gt;
  --sanko-gold-2: #f3d36a;&lt;br /&gt;
  --sanko-leaf: #4c7f52;&lt;br /&gt;
  --sanko-water: #3972c9;&lt;br /&gt;
  --sanko-water-soft: #c7f0fa;&lt;br /&gt;
  --sanko-danger: #9d2f25;&lt;br /&gt;
  --sanko-shadow: rgba(18, 8, 4, 0.42);&lt;br /&gt;
  --sanko-backdrop: url(&#039;https://sanko-pets-assets.s3.us-east-2.amazonaws.com/quest/meta1.webp&#039;);&lt;br /&gt;
  --sanko-logo: url(&#039;https://sigma.sankoquest.com/apple-icon.png&#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html,&lt;br /&gt;
body.skin-vector,&lt;br /&gt;
body.skin-minerva,&lt;br /&gt;
body.skin-citizen {&lt;br /&gt;
  background:&lt;br /&gt;
    radial-gradient(circle at 14% 7%, rgba(243, 211, 106, 0.2) 0 1px, transparent 2px 100%),&lt;br /&gt;
    radial-gradient(circle at 77% 18%, rgba(199, 240, 250, 0.22) 0 1px, transparent 2px 100%),&lt;br /&gt;
    radial-gradient(circle at 47% 38%, rgba(243, 211, 106, 0.12) 0 1px, transparent 2px 100%),&lt;br /&gt;
    linear-gradient(180deg, rgba(18, 8, 4, 0.56), rgba(18, 8, 4, 0.78) 360px, rgba(28, 14, 6, 0.88)),&lt;br /&gt;
    var(--sanko-backdrop),&lt;br /&gt;
    repeating-linear-gradient(90deg, rgba(245, 230, 200, 0.04) 0 1px, transparent 1px 16px),&lt;br /&gt;
    var(--sanko-void);&lt;br /&gt;
  background-attachment: fixed, fixed, fixed, fixed, fixed, fixed, fixed;&lt;br /&gt;
  background-position: 0 0, 0 0, 0 0, center top, center top, 0 0, 0 0;&lt;br /&gt;
  background-repeat: repeat, repeat, repeat, no-repeat, no-repeat, repeat, repeat;&lt;br /&gt;
  background-size: 240px 180px, 300px 220px, 420px 320px, auto, min(1700px, 140vw) auto, auto, auto;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body,&lt;br /&gt;
.mw-body,&lt;br /&gt;
.vector-body,&lt;br /&gt;
.parsoid-body {&lt;br /&gt;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, sans-serif;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-page-container,&lt;br /&gt;
body.skin-vector .vector-header-container {&lt;br /&gt;
  background: transparent;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-page-container {&lt;br /&gt;
  max-width: 1500px;&lt;br /&gt;
  margin: 0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Vector&#039;s &amp;quot;limited width&amp;quot; caps the article column far narrower than the header,&lt;br /&gt;
   leaving a big empty gutter on the right. Let the content fill the container so it&lt;br /&gt;
   lines up with the header content width. */&lt;br /&gt;
body.skin-vector-2022 .mw-content-container {&lt;br /&gt;
  max-width: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-header-container {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(30, 22, 8, 0.94), rgba(18, 8, 4, 0.96)),&lt;br /&gt;
    var(--sanko-void) !important;&lt;br /&gt;
  border-bottom: 2px solid var(--sanko-border-dark);&lt;br /&gt;
  box-shadow: 0 8px 24px rgba(18, 8, 4, 0.34);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-header-container .vector-header,&lt;br /&gt;
body.skin-vector .mw-header {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(30, 22, 8, 0.94), rgba(18, 8, 4, 0.96)),&lt;br /&gt;
    var(--sanko-void) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-header-container a,&lt;br /&gt;
body.skin-vector .vector-header-container .vector-dropdown-label-text,&lt;br /&gt;
body.skin-vector .mw-logo-wordmark {&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Vector icons are mask-images colored via background-color; the header/sticky bars are&lt;br /&gt;
   dark, so force every icon in them light (fixes the near-invisible logged-in user + star). */&lt;br /&gt;
body.skin-vector .vector-header-container .vector-icon,&lt;br /&gt;
body.skin-vector .vector-sticky-header .vector-icon,&lt;br /&gt;
body.skin-vector .vector-header-container .mw-ui-icon-element .vector-icon {&lt;br /&gt;
  background-color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-header-container .vector-header-start,&lt;br /&gt;
body.skin-vector .vector-header-container .vector-header-end {&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-dropdown .vector-dropdown-label,&lt;br /&gt;
body.skin-vector .vector-user-menu .vector-dropdown-label,&lt;br /&gt;
body.skin-vector .vector-page-tools-dropdown .vector-dropdown-label {&lt;br /&gt;
  min-width: 36px;&lt;br /&gt;
  min-height: 36px;&lt;br /&gt;
  border: 1px solid rgba(243, 211, 106, 0.45);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  background: rgba(18, 8, 4, 0.7);&lt;br /&gt;
  box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.1), 0 3px 10px rgba(0, 0, 0, 0.22);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-dropdown .vector-dropdown-label:hover,&lt;br /&gt;
body.skin-vector .vector-user-menu .vector-dropdown-label:hover,&lt;br /&gt;
body.skin-vector .vector-page-tools-dropdown .vector-dropdown-label:hover {&lt;br /&gt;
  border-color: var(--sanko-gold-2);&lt;br /&gt;
  background: rgba(61, 47, 26, 0.92);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-logo {&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-logo-icon {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-logo:before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  flex: 0 0 auto;&lt;br /&gt;
  width: 40px;&lt;br /&gt;
  height: 40px;&lt;br /&gt;
  background-color: rgba(18, 8, 4, 0.84);&lt;br /&gt;
  background-image: var(--sanko-logo);&lt;br /&gt;
  background-position: center;&lt;br /&gt;
  background-repeat: no-repeat;&lt;br /&gt;
  background-size: 34px 34px;&lt;br /&gt;
  border: 1px solid rgba(243, 211, 106, 0.5);&lt;br /&gt;
  border-radius: 7px;&lt;br /&gt;
  box-shadow:&lt;br /&gt;
    inset 1px 1px 0 rgba(255, 255, 255, 0.16),&lt;br /&gt;
    inset -1px -1px 0 rgba(0, 0, 0, 0.48),&lt;br /&gt;
    0 4px 14px rgba(0, 0, 0, 0.24);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-logo-wordmark {&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  letter-spacing: 0;&lt;br /&gt;
  text-shadow: 0 1px 0 #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-text-input__input,&lt;br /&gt;
body.skin-vector .searchButton {&lt;br /&gt;
  background-color: rgba(255, 247, 224, 0.94);&lt;br /&gt;
  border-color: var(--sanko-border);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-column-end,&lt;br /&gt;
body.skin-vector .vector-appearance-landmark,&lt;br /&gt;
body.skin-vector #p-dock-bottom {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #ca-talk {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-toc,&lt;br /&gt;
body.skin-vector .sidebar-toc,&lt;br /&gt;
body.skin-vector #vector-toc {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(43, 33, 17, 0.99), rgba(23, 16, 6, 0.99)),&lt;br /&gt;
    var(--sanko-menu-2) !important;&lt;br /&gt;
  border: 1px solid var(--sanko-menu-border);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.36);&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-dropdown-content,&lt;br /&gt;
body.skin-vector .vector-pinnable-element,&lt;br /&gt;
body.skin-vector #vector-main-menu,&lt;br /&gt;
body.skin-vector .vector-main-menu {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(61, 47, 26, 0.98), rgba(30, 22, 8, 0.98)),&lt;br /&gt;
    var(--sanko-void) !important;&lt;br /&gt;
  border: 1px solid rgba(243, 211, 106, 0.34);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.46);&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-dropdown-content {&lt;br /&gt;
  z-index: 1000;&lt;br /&gt;
  padding: 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-dropdown .vector-dropdown-content,&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-dropdown-content,&lt;br /&gt;
body.skin-vector #vector-page-tools-pinned-container,&lt;br /&gt;
body.skin-vector #p-tb,&lt;br /&gt;
body.skin-vector #p-cactions {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  min-width: 230px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(61, 47, 26, 0.99), rgba(30, 22, 8, 0.99)),&lt;br /&gt;
    var(--sanko-void) !important;&lt;br /&gt;
  border: 1px solid rgba(243, 211, 106, 0.38);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  opacity: 1 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-dropdown .vector-dropdown-content {&lt;br /&gt;
  right: 0;&lt;br /&gt;
  padding: 8px;&lt;br /&gt;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.52);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu,&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content,&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content-list {&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-heading {&lt;br /&gt;
  display: block;&lt;br /&gt;
  margin: 8px 0 4px;&lt;br /&gt;
  padding: 5px 8px;&lt;br /&gt;
  border-top: 1px solid rgba(243, 211, 106, 0.2);&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  font-size: 0.86rem;&lt;br /&gt;
  line-height: 1.2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content-list {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content-list li {&lt;br /&gt;
  margin: 1px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content-list a,&lt;br /&gt;
body.skin-vector .vector-page-tools-landmark .vector-menu-content-list span {&lt;br /&gt;
  display: block;&lt;br /&gt;
  padding: 5px 8px;&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  line-height: 1.25;&lt;br /&gt;
  opacity: 1 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-menu-heading,&lt;br /&gt;
body.skin-vector .vector-pinnable-header-label {&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-pinnable-header {&lt;br /&gt;
  min-height: 30px;&lt;br /&gt;
  padding: 4px 6px;&lt;br /&gt;
  border-bottom: 1px solid rgba(243, 211, 106, 0.18);&lt;br /&gt;
  background: rgba(18, 8, 4, 0.42);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-pinnable-header-toggle-button {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-menu-content-list a,&lt;br /&gt;
body.skin-vector .vector-dropdown-content a,&lt;br /&gt;
body.skin-vector .vector-page-tools a {&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-menu-content-list a:hover,&lt;br /&gt;
body.skin-vector .vector-dropdown-content a:hover,&lt;br /&gt;
body.skin-vector .vector-page-tools a:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.14);&lt;br /&gt;
  color: #fff7d5 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-menu-content-list .selected a,&lt;br /&gt;
body.skin-vector .vector-dropdown-content .selected a {&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-titlebar,&lt;br /&gt;
body.skin-vector .vector-sticky-header,&lt;br /&gt;
body.skin-vector .vector-header-container .vector-header-start,&lt;br /&gt;
body.skin-vector .vector-header-container .vector-header-end {&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Sticky header on scroll: match the dark/gold theme and fade in instead of snapping. */&lt;br /&gt;
body.skin-vector .vector-sticky-header {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(30, 22, 8, 0.98), rgba(18, 8, 4, 0.99)),&lt;br /&gt;
    var(--sanko-void) !important;&lt;br /&gt;
  border-bottom: 2px solid var(--sanko-border-dark);&lt;br /&gt;
  box-shadow: 0 10px 26px rgba(18, 8, 4, 0.4);&lt;br /&gt;
  transition: opacity 0.25s ease, transform 0.25s ease;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-sticky-header a,&lt;br /&gt;
body.skin-vector .vector-sticky-header .vector-sticky-header-context-bar-primary,&lt;br /&gt;
body.skin-vector .vector-sticky-header .mw-page-title-main,&lt;br /&gt;
body.skin-vector .vector-sticky-header .mw-page-title-main *,&lt;br /&gt;
body.skin-vector .vector-sticky-header h1 {&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Sticky-header search should read like the main search field. */&lt;br /&gt;
body.skin-vector .vector-sticky-header .cdx-text-input__input,&lt;br /&gt;
body.skin-vector .vector-sticky-header .vector-search-box-input {&lt;br /&gt;
  background: rgba(255, 247, 224, 0.96);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #pt-createaccount,&lt;br /&gt;
body.skin-vector #pt-createaccount-2,&lt;br /&gt;
body.skin-vector #mw-createaccount-cta,&lt;br /&gt;
body.skin-vector .mw-userlogin-help {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu,&lt;br /&gt;
body.skin-vector #vector-page-tools,&lt;br /&gt;
body.skin-vector #vector-toc,&lt;br /&gt;
body.skin-vector .sidebar-toc,&lt;br /&gt;
body.skin-vector .vector-dropdown-content #vector-main-menu,&lt;br /&gt;
body.skin-vector .vector-dropdown-content #vector-page-tools,&lt;br /&gt;
body.skin-vector .vector-dropdown-content #vector-toc {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(43, 33, 17, 0.99), rgba(23, 16, 6, 0.99)),&lt;br /&gt;
    var(--sanko-menu-2) !important;&lt;br /&gt;
  border: 1px solid var(--sanko-menu-border);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.46);&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  opacity: 1 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .vector-menu,&lt;br /&gt;
body.skin-vector #vector-main-menu .vector-menu-content,&lt;br /&gt;
body.skin-vector #vector-main-menu .vector-menu-content-list,&lt;br /&gt;
body.skin-vector #vector-page-tools .vector-menu,&lt;br /&gt;
body.skin-vector #vector-page-tools .vector-menu-content,&lt;br /&gt;
body.skin-vector #vector-page-tools .vector-menu-content-list,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-contents,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-list,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-list-item {&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  border: 0;&lt;br /&gt;
  box-shadow: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-column-start,&lt;br /&gt;
body.skin-vector .vector-column-start .vector-pinned-container,&lt;br /&gt;
body.skin-vector .vector-column-start .vector-unpinned-container,&lt;br /&gt;
body.skin-vector .vector-sticky-pinned-container,&lt;br /&gt;
body.skin-vector #mw-panel,&lt;br /&gt;
body.skin-vector #mw-panel-toc,&lt;br /&gt;
body.skin-vector #vector-main-menu-pinned-container,&lt;br /&gt;
body.skin-vector #vector-main-menu-unpinned-container,&lt;br /&gt;
body.skin-vector #vector-toc-pinned-container,&lt;br /&gt;
body.skin-vector #vector-toc-unpinned-container,&lt;br /&gt;
body.skin-vector #vector-page-tools-pinned-container,&lt;br /&gt;
body.skin-vector #vector-page-tools-unpinned-container,&lt;br /&gt;
body.skin-vector .vector-menu-portal,&lt;br /&gt;
body.skin-vector .vector-dropdown-content &amp;gt; .vector-menu-portal {&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  border: 0 !important;&lt;br /&gt;
  box-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html.vector-toc-available body.skin-vector .vector-column-start {&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  border-radius: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-sticky-pinned-container {&lt;br /&gt;
  background: transparent !important;&lt;br /&gt;
  border-radius: 0;&lt;br /&gt;
  height: auto !important;&lt;br /&gt;
  max-height: none !important;&lt;br /&gt;
  min-height: 0 !important;&lt;br /&gt;
  overflow: visible !important;&lt;br /&gt;
  scrollbar-width: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-sticky-pinned-container::-webkit-scrollbar {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
  width: 0 !important;&lt;br /&gt;
  height: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-action,&lt;br /&gt;
body.skin-vector .vector-main-menu-action-content:has(a[href*=&amp;quot;Special:Preferences&amp;quot;][href*=&amp;quot;useskin=vector&amp;quot;]) {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-dropdown .vector-dropdown-content,&lt;br /&gt;
body.skin-vector .vector-page-tools-dropdown .vector-dropdown-content {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(43, 33, 17, 0.99), rgba(23, 16, 6, 0.99)),&lt;br /&gt;
    var(--sanko-menu-2) !important;&lt;br /&gt;
  border: 1px solid var(--sanko-menu-border) !important;&lt;br /&gt;
  border-radius: 8px !important;&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  opacity: 1 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-dropdown .vector-dropdown-content {&lt;br /&gt;
  min-width: 230px;&lt;br /&gt;
  padding: 8px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-main-menu-dropdown .vector-dropdown-content #vector-main-menu {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  min-width: 210px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .vector-menu {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  padding: 6px 8px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .vector-menu-heading,&lt;br /&gt;
body.skin-vector #vector-page-tools .vector-menu-heading,&lt;br /&gt;
body.skin-vector #vector-toc .vector-pinnable-header-label,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-heading {&lt;br /&gt;
  margin: 9px 4px 5px;&lt;br /&gt;
  padding: 0 0 5px;&lt;br /&gt;
  border-bottom: 1px solid rgba(243, 211, 106, 0.22);&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  font-size: 0.74rem;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  letter-spacing: 0;&lt;br /&gt;
  line-height: 1.2;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-list-item {&lt;br /&gt;
  margin: 1px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item a,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item a,&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item span,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item span,&lt;br /&gt;
body.skin-vector #vector-toc a,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-text {&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item a,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item a,&lt;br /&gt;
body.skin-vector #vector-toc a {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-height: 30px;&lt;br /&gt;
  padding: 6px 9px;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  line-height: 1.25;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item a:hover,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item a:hover,&lt;br /&gt;
body.skin-vector #vector-toc a:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.14);&lt;br /&gt;
  color: #fff7d5 !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item.active a,&lt;br /&gt;
body.skin-vector #vector-main-menu .mw-list-item.selected a,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item.active a,&lt;br /&gt;
body.skin-vector #vector-page-tools .mw-list-item.selected a,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-list-item-active &amp;gt; a {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.2);&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-pinnable-header {&lt;br /&gt;
  border-radius: 7px 7px 0 0;&lt;br /&gt;
  background: rgba(18, 8, 4, 0.64) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-toc .vector-pinnable-header {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  display: flex;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin: 0 0 7px;&lt;br /&gt;
  padding: 10px 12px 9px;&lt;br /&gt;
  border-bottom: 1px solid rgba(243, 211, 106, 0.24);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #vector-toc .vector-pinnable-header-label,&lt;br /&gt;
body.skin-vector #vector-toc .vector-toc-heading {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  border-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-toc:before,&lt;br /&gt;
body.skin-vector .vector-toc:after,&lt;br /&gt;
body.skin-vector .sidebar-toc:before,&lt;br /&gt;
body.skin-vector .sidebar-toc:after,&lt;br /&gt;
body.skin-vector #vector-toc:before,&lt;br /&gt;
body.skin-vector #vector-toc:after,&lt;br /&gt;
body.skin-vector .vector-toc-contents:before,&lt;br /&gt;
body.skin-vector .vector-toc-contents:after,&lt;br /&gt;
body.skin-vector .vector-column-start:before,&lt;br /&gt;
body.skin-vector .vector-column-start:after,&lt;br /&gt;
body.skin-vector .vector-sticky-pinned-container:before,&lt;br /&gt;
body.skin-vector .vector-sticky-pinned-container:after,&lt;br /&gt;
body.skin-vector #mw-panel-toc:before,&lt;br /&gt;
body.skin-vector #mw-panel-toc:after,&lt;br /&gt;
body.skin-vector #vector-toc-pinned-container:before,&lt;br /&gt;
body.skin-vector #vector-toc-pinned-container:after,&lt;br /&gt;
body.skin-vector #vector-toc-unpinned-container:before,&lt;br /&gt;
body.skin-vector #vector-toc-unpinned-container:after {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
  content: none !important;&lt;br /&gt;
  background: none !important;&lt;br /&gt;
  border: 0 !important;&lt;br /&gt;
  box-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-toolbar {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
  margin-bottom: 0;&lt;br /&gt;
  padding-top: 4px;&lt;br /&gt;
  border-bottom: 1px solid rgba(109, 90, 61, 0.42);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-menu-tabs .mw-list-item a,&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-dropdown-label {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  height: 34px;&lt;br /&gt;
  min-height: 0;&lt;br /&gt;
  padding: 0 14px;&lt;br /&gt;
  margin-bottom: -1px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.72) !important;&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.42);&lt;br /&gt;
  border-bottom: 0;&lt;br /&gt;
  border-radius: 7px 7px 0 0;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Vector reserves a tall (34px) label span for optional icons; collapse it so the&lt;br /&gt;
   text is the tab&#039;s real height and centers instead of riding high with dead space. */&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-menu-tabs .mw-list-item a &amp;gt; span,&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-dropdown-label &amp;gt; span {&lt;br /&gt;
  min-height: 0;&lt;br /&gt;
  height: auto;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-menu-tabs .selected a {&lt;br /&gt;
  background: #3d2f1a !important;&lt;br /&gt;
  border-color: #1d1508;&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-dropdown-label:hover,&lt;br /&gt;
body.skin-vector .vector-page-toolbar .vector-menu-tabs .mw-list-item a:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.22) !important;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search {&lt;br /&gt;
  min-width: min(420px, 42vw);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #searchform.cdx-search-input {&lt;br /&gt;
  align-items: stretch;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.18);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search .cdx-text-input__input,&lt;br /&gt;
body.skin-vector #p-search .cdx-search-input__end-button {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  height: 40px;&lt;br /&gt;
  min-height: 36px;&lt;br /&gt;
  border-color: rgba(243, 211, 106, 0.42);&lt;br /&gt;
  box-shadow: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search .cdx-text-input,&lt;br /&gt;
body.skin-vector #p-search .cdx-search-input__input-wrapper {&lt;br /&gt;
  height: 40px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search .cdx-text-input__input {&lt;br /&gt;
  background: rgba(255, 247, 224, 0.96);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  border-radius: 5px 0 0 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search .cdx-text-input__input:focus {&lt;br /&gt;
  border-color: var(--sanko-gold-2);&lt;br /&gt;
  outline: 2px solid rgba(243, 211, 106, 0.35);&lt;br /&gt;
  outline-offset: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #p-search .cdx-search-input__end-button {&lt;br /&gt;
  background: linear-gradient(180deg, var(--sanko-gold-2), var(--sanko-gold)) !important;&lt;br /&gt;
  border: 1px solid rgba(58, 46, 18, 0.72);&lt;br /&gt;
  border-left: 0;&lt;br /&gt;
  border-radius: 0 5px 5px 0;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu,&lt;br /&gt;
body.skin-vector .cdx-typeahead-search__menu,&lt;br /&gt;
body.skin-vector .cdx-menu__listbox {&lt;br /&gt;
  background: var(--sanko-paper) !important;&lt;br /&gt;
  border: 1px solid var(--sanko-border) !important;&lt;br /&gt;
  border-radius: 6px !important;&lt;br /&gt;
  box-shadow: 0 18px 42px rgba(18, 8, 4, 0.36) !important;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item,&lt;br /&gt;
body.skin-vector .cdx-menu-item__text,&lt;br /&gt;
body.skin-vector .cdx-menu-item__description,&lt;br /&gt;
body.skin-vector .cdx-typeahead-search__search-footer {&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item__content {&lt;br /&gt;
  min-height: 34px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item__text {&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-typeahead-search__search-footer {&lt;br /&gt;
  border-top: 1px solid rgba(109, 90, 61, 0.34);&lt;br /&gt;
  background: rgba(243, 211, 106, 0.14);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item--highlighted,&lt;br /&gt;
body.skin-vector .cdx-menu-item:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.24) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item.sanko-search-with-thumb {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-height: 46px;&lt;br /&gt;
  gap: 9px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item.sanko-search-with-thumb .cdx-menu-item__thumbnail,&lt;br /&gt;
body.skin-vector .cdx-menu-item.sanko-search-with-thumb .cdx-thumbnail {&lt;br /&gt;
  display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item.sanko-search-with-thumb .cdx-menu-item__content {&lt;br /&gt;
  flex: 1 1 auto;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item.sanko-search-with-thumb .cdx-menu-item__text,&lt;br /&gt;
body.skin-vector .cdx-menu-item.sanko-search-with-thumb .cdx-menu-item__description {&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  text-overflow: ellipsis;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item .sanko-search-thumb {&lt;br /&gt;
  flex: 0 0 auto;&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 34px;&lt;br /&gt;
  height: 34px;&lt;br /&gt;
  margin-left: 2px;&lt;br /&gt;
  background: #1b140a;&lt;br /&gt;
  border: 1px solid rgba(243, 211, 106, 0.24);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-menu-item .sanko-search-thumb img {&lt;br /&gt;
  display: block;&lt;br /&gt;
  width: 27px;&lt;br /&gt;
  height: 27px;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
  image-rendering: pixelated;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .search-toggle {&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper,&lt;br /&gt;
body.skin-vector .searchresults,&lt;br /&gt;
body.skin-vector #userloginForm form {&lt;br /&gt;
  max-width: 920px;&lt;br /&gt;
  margin: 12px auto 20px;&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.82);&lt;br /&gt;
  border: 2px solid var(--sanko-border);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.16);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper {&lt;br /&gt;
  background: rgba(255, 247, 224, 0.9);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper #searchText {&lt;br /&gt;
  min-height: 34px;&lt;br /&gt;
  border: 1px solid var(--sanko-border);&lt;br /&gt;
  border-radius: 5px 0 0 5px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper .cdx-button,&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper .oo-ui-buttonElement-button,&lt;br /&gt;
body.skin-vector .mw-search-form-wrapper input[type=&amp;quot;submit&amp;quot;] {&lt;br /&gt;
  border-color: rgba(58, 46, 18, 0.72) !important;&lt;br /&gt;
  border-radius: 5px !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #userloginForm form {&lt;br /&gt;
  max-width: 480px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #mw-input-pluggableauthlogin0,&lt;br /&gt;
body.skin-vector .mw-htmlform-submit,&lt;br /&gt;
body.skin-vector .oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled &amp;gt; .oo-ui-buttonElement-button {&lt;br /&gt;
  background: linear-gradient(180deg, var(--sanko-gold-2), var(--sanko-gold)) !important;&lt;br /&gt;
  border: 2px solid #2d2010 !important;&lt;br /&gt;
  border-radius: 5px !important;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
  font-weight: 900 !important;&lt;br /&gt;
  text-shadow: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-profile-tabs ul {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
  margin: 12px 0;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-profile-tabs li {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-profile-tabs li a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  padding: 7px 10px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.76);&lt;br /&gt;
  border: 1px solid var(--sanko-border);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-profile-tabs li a:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.24);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-profile-tabs li.current a {&lt;br /&gt;
  background: #3d2f1a;&lt;br /&gt;
  border-color: #1d1508;&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #mw-searchoptions {&lt;br /&gt;
  margin: 12px 0 0;&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.42);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  background: rgba(255, 251, 235, 0.58);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-results {&lt;br /&gt;
  padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-result {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
  margin: 9px 0;&lt;br /&gt;
  padding: 11px 12px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.68);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.36);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-result.sanko-search-with-thumb {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  min-height: 58px;&lt;br /&gt;
  padding-left: 62px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-result .sanko-search-thumb {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  top: 12px;&lt;br /&gt;
  left: 12px;&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 40px;&lt;br /&gt;
  height: 40px;&lt;br /&gt;
  background: #1b140a;&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.58);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.12), 0 4px 10px rgba(42, 18, 0, 0.14);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-result .sanko-search-thumb img {&lt;br /&gt;
  display: block;&lt;br /&gt;
  width: 32px;&lt;br /&gt;
  height: 32px;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
  image-rendering: pixelated;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-search-result-heading a {&lt;br /&gt;
  color: #114f7c;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .searchmatch {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.45);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .cdx-message {&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body,&lt;br /&gt;
.vector-body,&lt;br /&gt;
.parsoid-body,&lt;br /&gt;
.mw-parser-output {&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-body {&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(255, 251, 235, 0.99), rgba(242, 226, 188, 0.99)),&lt;br /&gt;
    var(--sanko-paper);&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  max-width: none;&lt;br /&gt;
  margin: 24px auto 0;&lt;br /&gt;
  padding: 22px 30px 38px !important;&lt;br /&gt;
  border: 2px solid var(--sanko-border-dark);&lt;br /&gt;
  border-radius: 8px;&lt;br /&gt;
  box-shadow:&lt;br /&gt;
    0 22px 70px rgba(18, 8, 4, 0.62),&lt;br /&gt;
    inset 0 0 0 3px rgba(255, 255, 255, 0.3);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-page-title-main,&lt;br /&gt;
.firstHeading {&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  text-shadow: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-body-header {&lt;br /&gt;
  background: transparent;&lt;br /&gt;
  border-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .firstHeading {&lt;br /&gt;
  margin: 0 0 14px;&lt;br /&gt;
  line-height: 1.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.page-Main_Page.skin-vector .firstHeading {&lt;br /&gt;
  margin-bottom: 6px;&lt;br /&gt;
  font-size: 1.85rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output h2,&lt;br /&gt;
.mw-parser-output h3,&lt;br /&gt;
.mw-parser-output h4 {&lt;br /&gt;
  clear: none;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  /* Match the serif of h1/h2 so h3/h4 don&#039;t fall back to the sans body font. */&lt;br /&gt;
  font-family: &amp;quot;Linux Libertine&amp;quot;, &amp;quot;Hoefler Text&amp;quot;, Georgia, &amp;quot;Times New Roman&amp;quot;, serif;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output h2 {&lt;br /&gt;
  margin: 24px 0 8px;&lt;br /&gt;
  padding-bottom: 4px;&lt;br /&gt;
  border-bottom: 2px solid rgba(109, 90, 61, 0.4);&lt;br /&gt;
  font-size: 1.35rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output h3 {&lt;br /&gt;
  margin: 18px 0 6px;&lt;br /&gt;
  padding-bottom: 3px;&lt;br /&gt;
  border-bottom: 1px solid rgba(109, 90, 61, 0.26);&lt;br /&gt;
  font-size: 1.08rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output h4 {&lt;br /&gt;
  margin: 14px 0 5px;&lt;br /&gt;
  font-size: 0.98rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a {&lt;br /&gt;
  color: #125a93;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a:visited {&lt;br /&gt;
  color: #6b4aa0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a.new,&lt;br /&gt;
a.new:visited {&lt;br /&gt;
  color: #9f4b22;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
code {&lt;br /&gt;
  padding: 1px 4px;&lt;br /&gt;
  background: rgba(42, 18, 0, 0.08);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.32);&lt;br /&gt;
  border-radius: 3px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable,&lt;br /&gt;
.cargoTable,&lt;br /&gt;
.sanko-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin: 12px 0 18px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.78);&lt;br /&gt;
  border: 1px solid var(--sanko-border);&lt;br /&gt;
  border-collapse: collapse;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable th,&lt;br /&gt;
.cargoTable th,&lt;br /&gt;
.sanko-table th {&lt;br /&gt;
  background: #3d2f1a;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable th,&lt;br /&gt;
.wikitable td,&lt;br /&gt;
.cargoTable th,&lt;br /&gt;
.cargoTable td,&lt;br /&gt;
.sanko-table th,&lt;br /&gt;
.sanko-table td {&lt;br /&gt;
  padding: 7px 9px;&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.34);&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-main {&lt;br /&gt;
  max-width: 1180px;&lt;br /&gt;
  margin: 0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-front {&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-game-tabs {&lt;br /&gt;
  margin: 8px 0 16px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-game-tabs &amp;gt; p {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(5, minmax(0, 1fr));&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
  margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-game-tabs a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  padding: 10px 12px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(255, 247, 224, 0.92), rgba(209, 196, 169, 0.92));&lt;br /&gt;
  border: 2px solid var(--sanko-border);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.3), inset -2px -2px 0 rgba(42, 18, 0, 0.2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-game-tabs a:first-child {&lt;br /&gt;
  background: linear-gradient(180deg, #4c7f52, #2d5d34);&lt;br /&gt;
  border-color: #1d3c22;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, 0.75fr);&lt;br /&gt;
  gap: 14px;&lt;br /&gt;
  margin: 10px 0 16px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-card,&lt;br /&gt;
.sanko-card,&lt;br /&gt;
.sanko-infobox,&lt;br /&gt;
.sanko-recipe,&lt;br /&gt;
.sanko-bounty-prompt,&lt;br /&gt;
.sanko-account-card,&lt;br /&gt;
.sanko-feature-panel,&lt;br /&gt;
.sanko-link-panel,&lt;br /&gt;
.sanko-item-summary {&lt;br /&gt;
  border: 2px solid var(--sanko-border-dark);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  box-shadow:&lt;br /&gt;
    0 8px 18px rgba(42, 18, 0, 0.16),&lt;br /&gt;
    inset 0 0 0 2px rgba(255, 255, 255, 0.18);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-card {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  min-height: 210px;&lt;br /&gt;
  padding: 22px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(135deg, rgba(245, 230, 200, 0.96), rgba(214, 177, 103, 0.88)),&lt;br /&gt;
    var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-primary {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(0, 1fr) auto;&lt;br /&gt;
  align-items: end;&lt;br /&gt;
  gap: 18px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(90deg, rgba(18, 8, 4, 0.92), rgba(42, 18, 0, 0.68) 48%, rgba(18, 8, 4, 0.3)),&lt;br /&gt;
    var(--sanko-backdrop);&lt;br /&gt;
  background-position: center;&lt;br /&gt;
  background-size: cover;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-primary:before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  inset: 0;&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
  background:&lt;br /&gt;
    radial-gradient(circle at 22% 18%, rgba(243, 211, 106, 0.7) 0 1px, transparent 2px 100%),&lt;br /&gt;
    radial-gradient(circle at 84% 22%, rgba(199, 240, 250, 0.55) 0 1px, transparent 2px 100%),&lt;br /&gt;
    linear-gradient(90deg, transparent, rgba(57, 114, 201, 0.08)),&lt;br /&gt;
    repeating-linear-gradient(0deg, rgba(255, 247, 224, 0.08) 0 1px, transparent 1px 18px);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-content,&lt;br /&gt;
.sanko-hero-party {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  z-index: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-party {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(3, 56px);&lt;br /&gt;
  gap: 8px;&lt;br /&gt;
  align-content: center;&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  background: rgba(30, 22, 8, 0.92);&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.12), inset -2px -2px 0 rgba(0, 0, 0, 0.45);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-party .sanko-sprite {&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-party &amp;gt; p {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-kicker,&lt;br /&gt;
.sanko-muted {&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  font-size: 0.9rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-kicker {&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  text-transform: uppercase;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-primary .sanko-kicker {&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.8);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-title {&lt;br /&gt;
  margin: 8px 0;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-size: 2.15rem;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  line-height: 1.06;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-primary .sanko-title,&lt;br /&gt;
.sanko-hero-primary p {&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.82);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-hero-card .sanko-section-title {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-stats {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(4, minmax(0, 1fr));&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  margin: 12px 0 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-stat {&lt;br /&gt;
  min-height: 72px;&lt;br /&gt;
  padding: 11px 12px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.12), inset -2px -2px 0 rgba(0, 0, 0, 0.45);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-stat strong {&lt;br /&gt;
  display: block;&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  font-size: 1.35rem;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-section-title {&lt;br /&gt;
  margin: 20px 0 10px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-size: 1.25rem;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card-grid,&lt;br /&gt;
.sanko-hub-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(auto-fit, minmax(158px, 1fr));&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  margin: 12px 0 22px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card-grid &amp;gt; p,&lt;br /&gt;
.sanko-hub-grid &amp;gt; p {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card-grid a,&lt;br /&gt;
.sanko-hub-grid a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  min-height: 62px;&lt;br /&gt;
  padding: 11px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.82);&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a:hover .sanko-card,&lt;br /&gt;
.sanko-card:hover {&lt;br /&gt;
  border-color: var(--sanko-water);&lt;br /&gt;
  transform: translateY(-1px);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card strong {&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-card small {&lt;br /&gt;
  display: block;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  line-height: 1.25;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-feature-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);&lt;br /&gt;
  gap: 14px;&lt;br /&gt;
  margin: 10px 0 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-feature-panel,&lt;br /&gt;
.sanko-link-panel {&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.78);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-feature-panel .sanko-section-title,&lt;br /&gt;
.sanko-link-panel .sanko-section-title {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-grid {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));&lt;br /&gt;
  gap: 12px;&lt;br /&gt;
  margin: 12px 0 20px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-grid &amp;gt; p {&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-grid a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-card {&lt;br /&gt;
  display: block;&lt;br /&gt;
  min-height: 96px;&lt;br /&gt;
  padding: 14px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(255, 247, 224, 0.92), rgba(236, 217, 176, 0.92));&lt;br /&gt;
  border: 2px solid var(--sanko-border-dark);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
  box-shadow: 0 8px 18px rgba(42, 18, 0, 0.16), inset 0 0 0 2px rgba(255, 255, 255, 0.18);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-card strong {&lt;br /&gt;
  display: block;&lt;br /&gt;
  margin-bottom: 6px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-size: 1.05rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-action-card small {&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a:hover .sanko-action-card,&lt;br /&gt;
.sanko-action-card:hover {&lt;br /&gt;
  border-color: var(--sanko-leaf);&lt;br /&gt;
  transform: translateY(-1px);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-link-panel ul {&lt;br /&gt;
  margin: 8px 0 0;&lt;br /&gt;
  padding-left: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-link-panel li {&lt;br /&gt;
  margin: 4px 0;&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-open-bounties {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  margin: 14px 0 24px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-bounty-card {&lt;br /&gt;
  min-height: 70px;&lt;br /&gt;
  padding: 14px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.1), inset -2px -2px 0 rgba(0, 0, 0, 0.45);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-bounty-title {&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-bounty-claim {&lt;br /&gt;
  margin-top: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-bounty-card .sanko-pill {&lt;br /&gt;
  background: rgba(255, 247, 224, 0.12);&lt;br /&gt;
  border-color: rgba(243, 211, 106, 0.42);&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-account-panel {&lt;br /&gt;
  margin: 10px 0 22px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-account-card {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(0, 1fr) auto;&lt;br /&gt;
  gap: 14px;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  padding: 14px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.82);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-account-title {&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-size: 1.15rem;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-account-meta {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
  margin-top: 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-account-actions {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 8px;&lt;br /&gt;
  justify-content: flex-end;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-button {&lt;br /&gt;
  min-height: 36px;&lt;br /&gt;
  padding: 7px 12px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  cursor: pointer;&lt;br /&gt;
  font: inherit;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.16), inset -1px -1px 0 rgba(0, 0, 0, 0.42);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-button:hover {&lt;br /&gt;
  background: #3d2f1a;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-button:disabled {&lt;br /&gt;
  color: var(--sanko-paper-3);&lt;br /&gt;
  cursor: wait;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  float: right;&lt;br /&gt;
  width: 296px;&lt;br /&gt;
  margin: 0 0 18px 22px;&lt;br /&gt;
  overflow: hidden;&lt;br /&gt;
  background: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-side {&lt;br /&gt;
  display: flow-root;&lt;br /&gt;
  margin: 0 0 14px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ h2,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ h3,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .mw-heading {&lt;br /&gt;
  display: flow-root;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-page-skeleton,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-auto-section,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-missing-data,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-bounty-prompt,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-requirement-list,&lt;br /&gt;
.mw-parser-output .sanko-infobox ~ .sanko-row {&lt;br /&gt;
  display: flow-root;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-catalog-summary {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(180px, 0.35fr) minmax(0, 1fr);&lt;br /&gt;
  gap: 14px;&lt;br /&gt;
  align-items: stretch;&lt;br /&gt;
  margin: 12px 0 20px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-catalog-count {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-direction: column;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  min-height: 120px;&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.12), inset -2px -2px 0 rgba(0, 0, 0, 0.45);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-catalog-count strong {&lt;br /&gt;
  display: block;&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  font-size: 2.2rem;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-title {&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  text-shadow: 0 1px 0 #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-icon {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: 16px;&lt;br /&gt;
  background:&lt;br /&gt;
    linear-gradient(180deg, rgba(18, 8, 4, 0.92), rgba(45, 32, 16, 0.94)),&lt;br /&gt;
    #2d2010;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-icon-frame {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 116px;&lt;br /&gt;
  height: 116px;&lt;br /&gt;
  background: #1b140a;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.1), inset -2px -2px 0 rgba(0, 0, 0, 0.52);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-icon-frame .sanko-sprite-missing {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  line-height: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-model-render {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  padding: 14px;&lt;br /&gt;
  background:&lt;br /&gt;
    radial-gradient(circle at 50% 42%, rgba(243, 211, 106, 0.12), transparent 58%),&lt;br /&gt;
    linear-gradient(180deg, rgba(18, 8, 4, 0.94), rgba(45, 32, 16, 0.96)),&lt;br /&gt;
    #2d2010;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-model-render img {&lt;br /&gt;
  display: block;&lt;br /&gt;
  width: min(220px, 100%);&lt;br /&gt;
  height: auto;&lt;br /&gt;
  aspect-ratio: 1 / 1;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
  filter: drop-shadow(0 12px 18px rgba(0, 0, 0, 0.42));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-examine {&lt;br /&gt;
  padding: 10px 14px 14px;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-table th,&lt;br /&gt;
.sanko-infobox-table td {&lt;br /&gt;
  padding: 7px 10px;&lt;br /&gt;
  border-top: 1px solid rgba(109, 90, 61, 0.34);&lt;br /&gt;
  line-height: 1.35;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
  vertical-align: top;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-table th {&lt;br /&gt;
  width: 42%;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  text-align: left;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-summary {&lt;br /&gt;
  max-width: none;&lt;br /&gt;
  margin: 8px 0 18px;&lt;br /&gt;
  padding: 13px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.78);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-flow {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-infobox-clear,&lt;br /&gt;
.sanko-item-clear {&lt;br /&gt;
  clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-summary-title {&lt;br /&gt;
  margin: 2px 0 8px;&lt;br /&gt;
  color: var(--sanko-ink);&lt;br /&gt;
  font-size: 1.35rem;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-item-summary-grid,&lt;br /&gt;
.sanko-recipe-meta {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sprite,&lt;br /&gt;
.sanko-inventory-slot {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  image-rendering: pixelated;&lt;br /&gt;
  vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sprite {&lt;br /&gt;
  width: 32px;&lt;br /&gt;
  height: 32px;&lt;br /&gt;
  background-image: url(&#039;/w/sanko-assets/Sanko_item_atlas.svg&#039;);&lt;br /&gt;
  background-repeat: no-repeat;&lt;br /&gt;
  background-size: 128px 1056px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sprite-link a {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sprite-missing {&lt;br /&gt;
  background: rgba(45, 32, 16, 0.55);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.5);&lt;br /&gt;
  color: var(--sanko-paper-3);&lt;br /&gt;
  line-height: 30px;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  clear: both;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  max-width: 620px;&lt;br /&gt;
  margin: 14px 0;&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.84);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-pill,&lt;br /&gt;
.sanko-tag {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-height: 22px;&lt;br /&gt;
  padding: 3px 8px;&lt;br /&gt;
  background: #2d2010;&lt;br /&gt;
  border: 1px solid #000;&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
  font-size: 0.82rem;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-body {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(132px, 1fr) 36px minmax(0, 180px);&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  margin-top: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-inputs {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(3, 44px);&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-inventory-slot {&lt;br /&gt;
  position: relative;&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  width: 44px;&lt;br /&gt;
  height: 44px;&lt;br /&gt;
  padding: 5px;&lt;br /&gt;
  background: #17110a;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  box-shadow: inset 2px 2px 0 #3d2f1a, inset -2px -2px 0 #050301;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Icon frames center their sprite on both axes; line-height:0 removes the inline&lt;br /&gt;
   line-box gap that otherwise pushes inline-block sprites a few px high. */&lt;br /&gt;
.sanko-inventory-slot,&lt;br /&gt;
.sanko-item-icon-frame,&lt;br /&gt;
.sanko-row-image {&lt;br /&gt;
  line-height: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-inventory-slot .sanko-sprite,&lt;br /&gt;
.sanko-item-icon-frame .sanko-sprite,&lt;br /&gt;
.sanko-row-image .sanko-sprite {&lt;br /&gt;
  vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-inventory-qty {&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  right: 3px;&lt;br /&gt;
  bottom: 1px;&lt;br /&gt;
  color: #fff6cf;&lt;br /&gt;
  font-size: 11px;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  text-shadow: 1px 1px #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-arrow {&lt;br /&gt;
  color: var(--sanko-water);&lt;br /&gt;
  font-size: 28px;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-output {&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  max-width: 180px;&lt;br /&gt;
  justify-self: end;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-spell-output {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  min-width: 0;&lt;br /&gt;
  padding: 8px 9px;&lt;br /&gt;
  background: #17110a;&lt;br /&gt;
  border: 2px solid #000;&lt;br /&gt;
  box-shadow: inset 2px 2px 0 #3d2f1a, inset -2px -2px 0 #050301;&lt;br /&gt;
  color: #fff6cf;&lt;br /&gt;
  font-size: 0.9rem;&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  line-height: 1.12;&lt;br /&gt;
  overflow-wrap: anywhere;&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 520px) {&lt;br /&gt;
  .sanko-recipe-body {&lt;br /&gt;
    grid-template-columns: minmax(0, 1fr);&lt;br /&gt;
    justify-items: start;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-recipe-output {&lt;br /&gt;
    max-width: none;&lt;br /&gt;
    justify-self: stretch;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-bounty-prompt {&lt;br /&gt;
  margin: 14px 0;&lt;br /&gt;
  padding: 12px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.78);&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-task-lanes {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));&lt;br /&gt;
  gap: 12px;&lt;br /&gt;
  margin: 12px 0 22px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-task-lane {&lt;br /&gt;
  padding: 13px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.78);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.42);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-task-lane h3 {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-task-card-head {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
  margin-bottom: 7px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-inline-fact {&lt;br /&gt;
  margin: 7px 0;&lt;br /&gt;
  padding: 8px 10px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.72);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.36);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-status-badge {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 5px;&lt;br /&gt;
  min-height: 0;&lt;br /&gt;
  padding: 2px 9px;&lt;br /&gt;
  background: rgba(109, 90, 61, 0.1);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.3);&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  font-size: 0.72rem;&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
  line-height: 1.5;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-status-badge::before {&lt;br /&gt;
  content: &amp;quot;&amp;quot;;&lt;br /&gt;
  width: 6px;&lt;br /&gt;
  height: 6px;&lt;br /&gt;
  border-radius: 50%;&lt;br /&gt;
  background: currentColor;&lt;br /&gt;
  opacity: 0.85;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-status-verified {&lt;br /&gt;
  background: rgba(76, 127, 82, 0.16);&lt;br /&gt;
  border-color: rgba(76, 127, 82, 0.5);&lt;br /&gt;
  color: #3c6b42;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-status-unverified {&lt;br /&gt;
  background: rgba(214, 168, 60, 0.18);&lt;br /&gt;
  border-color: rgba(214, 168, 60, 0.55);&lt;br /&gt;
  color: #8a6a1c;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-edit-login-cta {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: space-between;&lt;br /&gt;
  gap: 12px;&lt;br /&gt;
  margin: 0 0 16px;&lt;br /&gt;
  padding: 14px 16px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.7);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.4);&lt;br /&gt;
  border-left: 3px solid var(--sanko-gold);&lt;br /&gt;
  border-radius: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-edit-login-cta strong {&lt;br /&gt;
  font-size: 1.02rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-edit-login-cta p {&lt;br /&gt;
  margin: 3px 0 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-edit-login-cta .sanko-button {&lt;br /&gt;
  flex: 0 0 auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-missing-data {&lt;br /&gt;
  margin: 10px 0;&lt;br /&gt;
  padding: 9px 12px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.5);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.36);&lt;br /&gt;
  border-left: 3px solid var(--sanko-gold);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-missing-data strong,&lt;br /&gt;
.sanko-missing-data span {&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-missing-actions {&lt;br /&gt;
  display: flex !important;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 6px;&lt;br /&gt;
  margin-top: 8px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-missing-actions a {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  min-height: 24px;&lt;br /&gt;
  padding: 3px 7px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.62);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.48);&lt;br /&gt;
  border-radius: 4px;&lt;br /&gt;
  color: var(--sanko-ink) !important;&lt;br /&gt;
  font-size: 0.82rem;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  line-height: 1.2;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-missing-actions a:hover {&lt;br /&gt;
  background: rgba(243, 211, 106, 0.22);&lt;br /&gt;
  border-color: var(--sanko-leaf);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: 40px minmax(0, 1fr);&lt;br /&gt;
  gap: 10px;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  margin: 7px 0;&lt;br /&gt;
  padding: 8px;&lt;br /&gt;
  background: rgba(255, 247, 224, 0.74);&lt;br /&gt;
  border: 1px solid rgba(109, 90, 61, 0.36);&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-image {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 40px;&lt;br /&gt;
  height: 40px;&lt;br /&gt;
  background: #17110a;&lt;br /&gt;
  border: 1px solid #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-render img {&lt;br /&gt;
  display: block;&lt;br /&gt;
  width: 34px;&lt;br /&gt;
  height: 34px;&lt;br /&gt;
  object-fit: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-render {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  width: 34px;&lt;br /&gt;
  height: 34px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-placeholder {&lt;br /&gt;
  color: var(--sanko-paper-2);&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Title + meta flow on one line and wrap only when they must, so short catalog&lt;br /&gt;
   rows stay single-line instead of always stacking. */&lt;br /&gt;
.sanko-row-body {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  align-items: baseline;&lt;br /&gt;
  gap: 3px 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-title {&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  line-height: 1.3;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-row-meta {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 6px 8px;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  font-size: 0.84rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* MediaWiki wraps the meta spans in a &amp;lt;p&amp;gt;; unwrap it for layout so the flex gap&lt;br /&gt;
   and separators apply to the spans directly. */&lt;br /&gt;
.sanko-row-meta &amp;gt; p {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  display: contents;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Separate adjacent text metas (Qty · Station · Skill · Level) so they don&#039;t read&lt;br /&gt;
   as one run-on line; the status pill is excluded so it keeps its own spacing. */&lt;br /&gt;
.sanko-row-meta span:not(.sanko-status-badge) + span:not(.sanko-status-badge)::before {&lt;br /&gt;
  content: &amp;quot;·&amp;quot;;&lt;br /&gt;
  margin-right: 8px;&lt;br /&gt;
  color: rgba(90, 56, 16, 0.5);&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* RuneScape-style recipe usage/product tables (Used In / Created By). */&lt;br /&gt;
.sanko-recipe-table {&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  margin: 12px 0 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-table th {&lt;br /&gt;
  font-size: 0.82rem;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-recipe-table td {&lt;br /&gt;
  vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-rt-primary {&lt;br /&gt;
  font-weight: 700;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-rt-icon {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  vertical-align: middle;&lt;br /&gt;
  margin-right: 7px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Many products (spells, etc.) have no item sprite; drop the &amp;quot;?&amp;quot; placeholder&lt;br /&gt;
   entirely rather than showing a broken icon. */&lt;br /&gt;
.sanko-recipe-table .sanko-rt-icon:has(.sanko-sprite-missing) {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-rt-num {&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Materials cell in the &amp;quot;Created By&amp;quot; table: a wrapping list of qty + icon + item. */&lt;br /&gt;
.sanko-rt-materials {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-wrap: wrap;&lt;br /&gt;
  gap: 5px 12px;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-rt-mat {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 4px;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-rt-mat-qty {&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-source-list {&lt;br /&gt;
  margin: 8px 0 16px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-requirement-list,&lt;br /&gt;
.sanko-family-nav,&lt;br /&gt;
.sanko-page-skeleton {&lt;br /&gt;
  margin: 12px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-family-nav {&lt;br /&gt;
  padding: 9px 11px;&lt;br /&gt;
  background: rgba(45, 32, 16, 0.92);&lt;br /&gt;
  border: 1px solid #000;&lt;br /&gt;
  border-radius: 5px;&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-family-nav a {&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-family-nav-label {&lt;br /&gt;
  margin-right: 8px;&lt;br /&gt;
  color: var(--sanko-paper-2);&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-page-lead {&lt;br /&gt;
  max-width: 76ch;&lt;br /&gt;
  margin: 8px 0 18px;&lt;br /&gt;
  font-size: 1.02rem;&lt;br /&gt;
  line-height: 1.55;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-minetip {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  z-index: 10000;&lt;br /&gt;
  pointer-events: none;&lt;br /&gt;
  padding: 6px 8px;&lt;br /&gt;
  background: #100f18;&lt;br /&gt;
  border: 1px solid #6f62b8;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
  font-size: 13px;&lt;br /&gt;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-footer li,&lt;br /&gt;
body.skin-vector .mw-footer a {&lt;br /&gt;
  color: var(--sanko-paper-3);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-page-columns {&lt;br /&gt;
  display: grid;&lt;br /&gt;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.5fr);&lt;br /&gt;
  gap: 14px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-breadcrumbs {&lt;br /&gt;
  margin: 0 0 10px;&lt;br /&gt;
  color: var(--sanko-ink-soft);&lt;br /&gt;
  font-size: 0.88rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Tighten the header→content transition: the empty subtitle and blank paragraphs&lt;br /&gt;
   MediaWiki inserts above/below the breadcrumb were creating large dead bands. */&lt;br /&gt;
body.skin-vector .mw-body-content {&lt;br /&gt;
  margin-top: 10px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector #contentSub:empty,&lt;br /&gt;
body.skin-vector #siteSub:empty,&lt;br /&gt;
body.skin-vector #contentSub2:empty {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-parser-output p:empty,&lt;br /&gt;
body.skin-vector .mw-parser-output p:has(&amp;gt; br:only-child) {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-parser-output &amp;gt; .sanko-breadcrumbs:first-child {&lt;br /&gt;
  margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 820px) {&lt;br /&gt;
  .mw-body {&lt;br /&gt;
    margin: 12px 8px 0;&lt;br /&gt;
    padding: 0 12px 24px !important;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-hero,&lt;br /&gt;
  .sanko-feature-grid,&lt;br /&gt;
  .sanko-page-columns,&lt;br /&gt;
  .sanko-stats,&lt;br /&gt;
  .sanko-catalog-summary {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-game-tabs &amp;gt; p {&lt;br /&gt;
    grid-template-columns: repeat(2, minmax(0, 1fr));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-hero-primary {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-hero-party {&lt;br /&gt;
    grid-template-columns: repeat(6, 44px);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-account-card {&lt;br /&gt;
    grid-template-columns: 1fr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  .sanko-infobox {&lt;br /&gt;
    float: none;&lt;br /&gt;
    width: auto;&lt;br /&gt;
    margin: 0 0 16px;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* Wide data tables scroll within their own box instead of overflowing the page. */&lt;br /&gt;
  .mw-parser-output .wikitable,&lt;br /&gt;
  .mw-parser-output .cargoTable,&lt;br /&gt;
  .mw-parser-output .sanko-table {&lt;br /&gt;
    display: block;&lt;br /&gt;
    max-width: 100%;&lt;br /&gt;
    overflow-x: auto;&lt;br /&gt;
    -webkit-overflow-scrolling: touch;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* Search must not force horizontal scroll on small screens. */&lt;br /&gt;
  body.skin-vector #p-search {&lt;br /&gt;
    min-width: 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Keel sponsor — light, theme-inherited badge (header) + dofollow credit (footer).&lt;br /&gt;
   The mark is an inline SVG drawn with currentColor, so it recolors with the link. */&lt;br /&gt;
.sanko-sponsor {&lt;br /&gt;
  display: inline-flex;&lt;br /&gt;
  align-items: center;&lt;br /&gt;
  gap: 7px;&lt;br /&gt;
  color: var(--sanko-paper) !important;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
  font-weight: 800;&lt;br /&gt;
  white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sponsor:hover {&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sponsor-mark {&lt;br /&gt;
  width: 20px;&lt;br /&gt;
  height: 20px;&lt;br /&gt;
  flex: none;&lt;br /&gt;
  color: var(--sanko-gold-2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sponsor:hover .sanko-sponsor-mark {&lt;br /&gt;
  color: var(--sanko-paper);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sponsor-word {&lt;br /&gt;
  font-weight: 900;&lt;br /&gt;
  letter-spacing: 0.02em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sponsor-tagline {&lt;br /&gt;
  color: var(--sanko-paper-3);&lt;br /&gt;
  font-weight: 600;&lt;br /&gt;
  font-size: 0.85em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Header badge: compact pill in the top-right; the tagline appears only when there&#039;s room. */&lt;br /&gt;
body.skin-vector .vector-header-end .sanko-sponsor-header {&lt;br /&gt;
  padding: 4px 10px;&lt;br /&gt;
  border: 1px solid var(--sanko-menu-border);&lt;br /&gt;
  border-radius: 999px;&lt;br /&gt;
  background: rgba(30, 22, 8, 0.55);&lt;br /&gt;
  font-size: 0.86rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sponsor-header .sanko-sponsor-tagline {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (min-width: 1200px) {&lt;br /&gt;
  .sanko-sponsor-header .sanko-sponsor-tagline {&lt;br /&gt;
    display: inline;&lt;br /&gt;
    margin-left: 2px;&lt;br /&gt;
    padding-left: 6px;&lt;br /&gt;
    border-left: 1px solid var(--sanko-menu-border);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Footer credit: mark + wordmark + full tagline on one tasteful line. */&lt;br /&gt;
body.skin-vector .mw-footer .sanko-sponsor-footer {&lt;br /&gt;
  gap: 8px;&lt;br /&gt;
  color: var(--sanko-paper-3) !important;&lt;br /&gt;
  font-size: 0.9rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-vector .mw-footer .sanko-sponsor-footer:hover {&lt;br /&gt;
  color: var(--sanko-gold-2) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.sanko-sponsor-footer .sanko-sponsor-tagline {&lt;br /&gt;
  font-weight: 500;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 520px) {&lt;br /&gt;
  .sanko-sponsor-footer .sanko-sponsor-tagline {&lt;br /&gt;
    display: none;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Wooden_Shield&amp;diff=436</id>
		<title>Wooden Shield</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Wooden_Shield&amp;diff=436"/>
		<updated>2026-07-02T19:28:40Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Wooden Shield&lt;br /&gt;
|item_id=11&lt;br /&gt;
|icon=Wooden Shield&lt;br /&gt;
|examine=A bad shield&lt;br /&gt;
|category=equipment-offhand&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Offhand equipment&lt;br /&gt;
|slot=offhand&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Wooden Shield&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-offhand&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Wizard_Skirt&amp;diff=435</id>
		<title>Wizard Skirt</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Wizard_Skirt&amp;diff=435"/>
		<updated>2026-07-02T19:28:39Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Wizard Skirt&lt;br /&gt;
|item_id=79&lt;br /&gt;
|icon=Wizard Skirt&lt;br /&gt;
|examine=A blue skirt worn by wizards&lt;br /&gt;
|category=equipment-legs&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Legs equipment&lt;br /&gt;
|slot=legs&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Wizard Skirt&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-legs&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Wizard_Robe&amp;diff=434</id>
		<title>Wizard Robe</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Wizard_Robe&amp;diff=434"/>
		<updated>2026-07-02T19:28:38Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Wizard Robe&lt;br /&gt;
|item_id=78&lt;br /&gt;
|icon=Wizard Robe&lt;br /&gt;
|examine=A blue robe worn by wizards&lt;br /&gt;
|category=equipment-chest&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Chest equipment&lt;br /&gt;
|slot=chest&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Wizard Robe&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-chest&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Wizard_Hat&amp;diff=433</id>
		<title>Wizard Hat</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Wizard_Hat&amp;diff=433"/>
		<updated>2026-07-02T19:28:37Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Wizard Hat&lt;br /&gt;
|item_id=95&lt;br /&gt;
|icon=Wizard Hat&lt;br /&gt;
|examine=A blue hat worn by wizards&lt;br /&gt;
|category=equipment-head&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Head equipment&lt;br /&gt;
|slot=head&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Wizard Hat&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-head&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Winged_Boots&amp;diff=432</id>
		<title>Winged Boots</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Winged_Boots&amp;diff=432"/>
		<updated>2026-07-02T19:28:36Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Winged Boots&lt;br /&gt;
|item_id=87&lt;br /&gt;
|icon=Winged Boots&lt;br /&gt;
|examine=Winged Boots&lt;br /&gt;
|category=equipment-feet&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Feet equipment&lt;br /&gt;
|slot=feet&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Winged Boots&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-feet&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Water_Shard&amp;diff=431</id>
		<title>Water Shard</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Water_Shard&amp;diff=431"/>
		<updated>2026-07-02T19:28:35Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Water Shard&lt;br /&gt;
|item_id=208&lt;br /&gt;
|icon=Water Shard&lt;br /&gt;
|examine=A shard infused with water, crafted from raw fish&lt;br /&gt;
|category=shard&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Shards&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=1&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Water Shard&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; shard&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Warp_Shard&amp;diff=430</id>
		<title>Warp Shard</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Warp_Shard&amp;diff=430"/>
		<updated>2026-07-02T19:28:35Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Warp Shard&lt;br /&gt;
|item_id=213&lt;br /&gt;
|icon=Warp Shard&lt;br /&gt;
|examine=A shimmering shard forged from air, water, and spirit&lt;br /&gt;
|category=shard&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Shards&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=1&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Warp Shard&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; shard&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Void_Shard&amp;diff=429</id>
		<title>Void Shard</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Void_Shard&amp;diff=429"/>
		<updated>2026-07-02T19:28:34Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Void Shard&lt;br /&gt;
|item_id=212&lt;br /&gt;
|icon=Void Shard&lt;br /&gt;
|examine=A volatile shard forged from fire, earth, and spirit&lt;br /&gt;
|category=shard&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Shards&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=1&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Void Shard&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; shard&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Unstrung_Oak_Bow&amp;diff=428</id>
		<title>Unstrung Oak Bow</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Unstrung_Oak_Bow&amp;diff=428"/>
		<updated>2026-07-02T19:28:33Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Unstrung Oak Bow&lt;br /&gt;
|item_id=312&lt;br /&gt;
|icon=Unstrung Oak Bow&lt;br /&gt;
|examine=An oak bow without a string&lt;br /&gt;
|category=resource&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Resources&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Unstrung Oak Bow&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; resource&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Unstrung_Glacial_Bow&amp;diff=427</id>
		<title>Unstrung Glacial Bow</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Unstrung_Glacial_Bow&amp;diff=427"/>
		<updated>2026-07-02T19:28:32Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Unstrung Glacial Bow&lt;br /&gt;
|item_id=314&lt;br /&gt;
|icon=Unstrung Glacial Bow&lt;br /&gt;
|examine=A glacial bow without a string&lt;br /&gt;
|category=resource&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Resources&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Unstrung Glacial Bow&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; resource&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Unstrung_Cherry_Bow&amp;diff=426</id>
		<title>Unstrung Cherry Bow</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Unstrung_Cherry_Bow&amp;diff=426"/>
		<updated>2026-07-02T19:28:31Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Unstrung Cherry Bow&lt;br /&gt;
|item_id=313&lt;br /&gt;
|icon=Unstrung Cherry Bow&lt;br /&gt;
|examine=A cherry bow without a string&lt;br /&gt;
|category=resource&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Resources&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Unstrung Cherry Bow&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; resource&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Unstrung_Bow&amp;diff=425</id>
		<title>Unstrung Bow</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Unstrung_Bow&amp;diff=425"/>
		<updated>2026-07-02T19:28:30Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Unstrung Bow&lt;br /&gt;
|item_id=311&lt;br /&gt;
|icon=Unstrung Bow&lt;br /&gt;
|examine=A carved bow without a string&lt;br /&gt;
|category=resource&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Resources&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Unstrung Bow&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; resource&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Uggs_Boots&amp;diff=424</id>
		<title>Uggs Boots</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Uggs_Boots&amp;diff=424"/>
		<updated>2026-07-02T19:28:29Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Uggs Boots&lt;br /&gt;
|item_id=84&lt;br /&gt;
|icon=Uggs Boots&lt;br /&gt;
|examine=Uggs Boots&lt;br /&gt;
|category=equipment-feet&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Feet equipment&lt;br /&gt;
|slot=feet&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Uggs Boots&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-feet&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Tin_of_Beer&amp;diff=423</id>
		<title>Tin of Beer</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Tin_of_Beer&amp;diff=423"/>
		<updated>2026-07-02T19:28:28Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Tin of Beer&lt;br /&gt;
|item_id=101&lt;br /&gt;
|icon=Tin of Beer&lt;br /&gt;
|examine=A tin of beer&lt;br /&gt;
|category=food&lt;br /&gt;
|subtype=consumable&lt;br /&gt;
|family=Consumables&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Tin of Beer&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; food&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Tin_Ore&amp;diff=422</id>
		<title>Tin Ore</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Tin_Ore&amp;diff=422"/>
		<updated>2026-07-02T19:28:27Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Tin Ore&lt;br /&gt;
|item_id=54&lt;br /&gt;
|icon=Tin Ore&lt;br /&gt;
|examine=A chunk of tin ore&lt;br /&gt;
|category=resource&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Smithing resources&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Tin Ore&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; resource&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Super_Stamina_Potion&amp;diff=421</id>
		<title>Super Stamina Potion</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Super_Stamina_Potion&amp;diff=421"/>
		<updated>2026-07-02T19:28:26Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Super Stamina Potion&lt;br /&gt;
|item_id=206&lt;br /&gt;
|icon=Super Stamina Potion&lt;br /&gt;
|examine=A powerful potion that greatly restores stamina&lt;br /&gt;
|category=food&lt;br /&gt;
|subtype=consumable&lt;br /&gt;
|family=Consumables&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Super Stamina Potion&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; food&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Steel_Short_Sword&amp;diff=420</id>
		<title>Steel Short Sword</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Steel_Short_Sword&amp;diff=420"/>
		<updated>2026-07-02T19:28:25Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Steel Short Sword&lt;br /&gt;
|item_id=14&lt;br /&gt;
|icon=Steel Short Sword&lt;br /&gt;
|examine=A sword&lt;br /&gt;
|category=equipment-mainhand&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Mainhand equipment&lt;br /&gt;
|slot=mainhand&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Steel Short Sword&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-mainhand&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Steel_Shield&amp;diff=419</id>
		<title>Steel Shield</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Steel_Shield&amp;diff=419"/>
		<updated>2026-07-02T19:28:24Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Steel Shield&lt;br /&gt;
|item_id=35&lt;br /&gt;
|icon=Steel Shield&lt;br /&gt;
|examine=A steel shield&lt;br /&gt;
|category=equipment-offhand&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Offhand equipment&lt;br /&gt;
|slot=offhand&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Steel Shield&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-offhand&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Steel_Pickaxe&amp;diff=418</id>
		<title>Steel Pickaxe</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Steel_Pickaxe&amp;diff=418"/>
		<updated>2026-07-02T19:28:23Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Steel Pickaxe&lt;br /&gt;
|item_id=17&lt;br /&gt;
|icon=Steel Pickaxe&lt;br /&gt;
|examine=A steel pickaxe&lt;br /&gt;
|category=equipment-mainhand&lt;br /&gt;
|subtype=tool&lt;br /&gt;
|family=Tools&lt;br /&gt;
|slot=mainhand&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Steel Pickaxe&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-mainhand&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Steel_Leggings&amp;diff=417</id>
		<title>Steel Leggings</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Steel_Leggings&amp;diff=417"/>
		<updated>2026-07-02T19:28:22Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Steel Leggings&lt;br /&gt;
|item_id=76&lt;br /&gt;
|icon=Steel Leggings&lt;br /&gt;
|examine=Steel Leggings&lt;br /&gt;
|category=equipment-legs&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Legs equipment&lt;br /&gt;
|slot=legs&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Steel Leggings&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-legs&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Steel_Kiteshield&amp;diff=416</id>
		<title>Steel Kiteshield</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Steel_Kiteshield&amp;diff=416"/>
		<updated>2026-07-02T19:28:21Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Steel Kiteshield&lt;br /&gt;
|item_id=32&lt;br /&gt;
|icon=Steel Kiteshield&lt;br /&gt;
|examine=A steel kiteshield&lt;br /&gt;
|category=equipment-offhand&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Offhand equipment&lt;br /&gt;
|slot=offhand&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Steel Kiteshield&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-offhand&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Steel_Katana&amp;diff=415</id>
		<title>Steel Katana</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Steel_Katana&amp;diff=415"/>
		<updated>2026-07-02T19:28:20Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Steel Katana&lt;br /&gt;
|item_id=41&lt;br /&gt;
|icon=Steel Katana&lt;br /&gt;
|examine=A steel katana&lt;br /&gt;
|category=equipment-mainhand&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Mainhand equipment&lt;br /&gt;
|slot=mainhand&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Steel Katana&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-mainhand&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Steel_Helmet&amp;diff=414</id>
		<title>Steel Helmet</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Steel_Helmet&amp;diff=414"/>
		<updated>2026-07-02T19:28:19Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Steel Helmet&lt;br /&gt;
|item_id=73&lt;br /&gt;
|icon=Steel Helmet&lt;br /&gt;
|examine=A steel helmet&lt;br /&gt;
|category=equipment-head&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Head equipment&lt;br /&gt;
|slot=head&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Steel Helmet&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-head&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Steel_Gauntlets&amp;diff=413</id>
		<title>Steel Gauntlets</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Steel_Gauntlets&amp;diff=413"/>
		<updated>2026-07-02T19:28:18Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Steel Gauntlets&lt;br /&gt;
|item_id=75&lt;br /&gt;
|icon=Steel Gauntlets&lt;br /&gt;
|examine=Steel Gauntlets&lt;br /&gt;
|category=equipment-hands&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Hands equipment&lt;br /&gt;
|slot=hands&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Steel Gauntlets&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-hands&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Steel_Chestplate&amp;diff=412</id>
		<title>Steel Chestplate</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Steel_Chestplate&amp;diff=412"/>
		<updated>2026-07-02T19:28:17Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Steel Chestplate&lt;br /&gt;
|item_id=74&lt;br /&gt;
|icon=Steel Chestplate&lt;br /&gt;
|examine=A steel chestplate&lt;br /&gt;
|category=equipment-chest&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Chest equipment&lt;br /&gt;
|slot=chest&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Steel Chestplate&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-chest&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Steel_Boots&amp;diff=411</id>
		<title>Steel Boots</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Steel_Boots&amp;diff=411"/>
		<updated>2026-07-02T19:28:16Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Steel Boots&lt;br /&gt;
|item_id=77&lt;br /&gt;
|icon=Steel Boots&lt;br /&gt;
|examine=Steel Boots&lt;br /&gt;
|category=equipment-feet&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Feet equipment&lt;br /&gt;
|slot=feet&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Steel Boots&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-feet&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Steel_Bar&amp;diff=410</id>
		<title>Steel Bar</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Steel_Bar&amp;diff=410"/>
		<updated>2026-07-02T19:28:15Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Steel Bar&lt;br /&gt;
|item_id=57&lt;br /&gt;
|icon=Steel Bar&lt;br /&gt;
|examine=A bar of steel&lt;br /&gt;
|category=resource&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Smithing resources&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Steel Bar&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; resource&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Steel_Axe&amp;diff=409</id>
		<title>Steel Axe</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Steel_Axe&amp;diff=409"/>
		<updated>2026-07-02T19:24:58Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Steel Axe&lt;br /&gt;
|item_id=6&lt;br /&gt;
|icon=Steel Axe&lt;br /&gt;
|examine=A steel axe&lt;br /&gt;
|category=equipment-mainhand&lt;br /&gt;
|subtype=tool&lt;br /&gt;
|family=Tools&lt;br /&gt;
|slot=mainhand&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Steel Axe&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-mainhand&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Steel_Arrowhead&amp;diff=408</id>
		<title>Steel Arrowhead</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Steel_Arrowhead&amp;diff=408"/>
		<updated>2026-07-02T19:24:57Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Steel Arrowhead&lt;br /&gt;
|item_id=309&lt;br /&gt;
|icon=Steel Arrowhead&lt;br /&gt;
|examine=A steel arrowhead&lt;br /&gt;
|category=resource&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Smithing resources&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=1&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Steel Arrowhead&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; resource&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Steel_Arrow&amp;diff=407</id>
		<title>Steel Arrow</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Steel_Arrow&amp;diff=407"/>
		<updated>2026-07-02T19:24:56Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Steel Arrow&lt;br /&gt;
|item_id=44&lt;br /&gt;
|icon=Steel Arrow&lt;br /&gt;
|examine=A steel arrow&lt;br /&gt;
|category=equipment-projectile&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Projectile equipment&lt;br /&gt;
|slot=projectile&lt;br /&gt;
|stackable=1&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Steel Arrow&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-projectile&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Steel_2hd_Sword&amp;diff=406</id>
		<title>Steel 2hd Sword</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Steel_2hd_Sword&amp;diff=406"/>
		<updated>2026-07-02T19:24:55Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Steel 2hd Sword&lt;br /&gt;
|item_id=38&lt;br /&gt;
|icon=Steel 2hd Sword&lt;br /&gt;
|examine=A steel two-handed sword&lt;br /&gt;
|category=equipment-twohand&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Twohand equipment&lt;br /&gt;
|slot=twohand&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Steel 2hd Sword&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-twohand&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Stamina_Potion&amp;diff=405</id>
		<title>Stamina Potion</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Stamina_Potion&amp;diff=405"/>
		<updated>2026-07-02T19:24:54Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Stamina Potion&lt;br /&gt;
|item_id=205&lt;br /&gt;
|icon=Stamina Potion&lt;br /&gt;
|examine=A potion that restores stamina&lt;br /&gt;
|category=food&lt;br /&gt;
|subtype=consumable&lt;br /&gt;
|family=Consumables&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Stamina Potion&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; food&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Staff&amp;diff=404</id>
		<title>Staff</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Staff&amp;diff=404"/>
		<updated>2026-07-02T19:24:53Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Staff&lt;br /&gt;
|item_id=49&lt;br /&gt;
|icon=Staff&lt;br /&gt;
|examine=A wooden staff&lt;br /&gt;
|category=equipment-twohand&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Twohand equipment&lt;br /&gt;
|slot=twohand&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Staff&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-twohand&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Spirit_Shard&amp;diff=403</id>
		<title>Spirit Shard</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Spirit_Shard&amp;diff=403"/>
		<updated>2026-07-02T19:24:52Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Spirit Shard&lt;br /&gt;
|item_id=211&lt;br /&gt;
|icon=Spirit Shard&lt;br /&gt;
|examine=A shard of spiritual essence, crafted from bones&lt;br /&gt;
|category=shard&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Shards&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=1&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Spirit Shard&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; shard&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Small_Bones&amp;diff=402</id>
		<title>Small Bones</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Small_Bones&amp;diff=402"/>
		<updated>2026-07-02T19:24:51Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Small Bones&lt;br /&gt;
|item_id=28&lt;br /&gt;
|icon=Small Bones&lt;br /&gt;
|examine=The remains of a creature&lt;br /&gt;
|category=resource&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Resources&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Small Bones&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; resource&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Shape_Wizard_Hat&amp;diff=401</id>
		<title>Shape Wizard Hat</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Shape_Wizard_Hat&amp;diff=401"/>
		<updated>2026-07-02T19:24:50Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Shape Wizard Hat&lt;br /&gt;
|item_id=96&lt;br /&gt;
|icon=Shape Wizard Hat&lt;br /&gt;
|examine=A hat worn by shapeshifters&lt;br /&gt;
|category=equipment-head&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Head equipment&lt;br /&gt;
|slot=head&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Shape Wizard Hat&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-head&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Shape_Skirt&amp;diff=400</id>
		<title>Shape Skirt</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Shape_Skirt&amp;diff=400"/>
		<updated>2026-07-02T19:24:48Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Shape Skirt&lt;br /&gt;
|item_id=81&lt;br /&gt;
|icon=Shape Skirt&lt;br /&gt;
|examine=A skirt worn by shapeshifters&lt;br /&gt;
|category=equipment-legs&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Legs equipment&lt;br /&gt;
|slot=legs&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Shape Skirt&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-legs&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Shape_Robe&amp;diff=399</id>
		<title>Shape Robe</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Shape_Robe&amp;diff=399"/>
		<updated>2026-07-02T19:24:46Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Shape Robe&lt;br /&gt;
|item_id=80&lt;br /&gt;
|icon=Shape Robe&lt;br /&gt;
|examine=A robe worn by shapeshifters&lt;br /&gt;
|category=equipment-chest&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Chest equipment&lt;br /&gt;
|slot=chest&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Shape Robe&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-chest&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Raw_Crawdad&amp;diff=398</id>
		<title>Raw Crawdad</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Raw_Crawdad&amp;diff=398"/>
		<updated>2026-07-02T19:24:45Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Raw Crawdad&lt;br /&gt;
|item_id=21&lt;br /&gt;
|icon=Raw Crawdad&lt;br /&gt;
|examine=A raw crawdaddy&lt;br /&gt;
|category=resource&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Fishing resources&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Raw Crawdad&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; resource&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Raw_Catfish&amp;diff=397</id>
		<title>Raw Catfish</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Raw_Catfish&amp;diff=397"/>
		<updated>2026-07-02T19:24:43Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Raw Catfish&lt;br /&gt;
|item_id=59&lt;br /&gt;
|icon=Raw Catfish&lt;br /&gt;
|examine=A raw catfish&lt;br /&gt;
|category=resource&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Fishing resources&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Raw Catfish&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; resource&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Raw_Bubba_Bass&amp;diff=396</id>
		<title>Raw Bubba Bass</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Raw_Bubba_Bass&amp;diff=396"/>
		<updated>2026-07-02T19:24:42Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Raw Bubba Bass&lt;br /&gt;
|item_id=61&lt;br /&gt;
|icon=Raw Bubba Bass&lt;br /&gt;
|examine=A raw bubba bass&lt;br /&gt;
|category=resource&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Fishing resources&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Raw Bubba Bass&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; resource&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Raw_Brown_Trout&amp;diff=395</id>
		<title>Raw Brown Trout</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Raw_Brown_Trout&amp;diff=395"/>
		<updated>2026-07-02T19:24:41Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Raw Brown Trout&lt;br /&gt;
|item_id=19&lt;br /&gt;
|icon=Raw Brown Trout&lt;br /&gt;
|examine=A raw brown trout&lt;br /&gt;
|category=resource&lt;br /&gt;
|subtype=resource&lt;br /&gt;
|family=Fishing resources&lt;br /&gt;
|slot=&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Raw Brown Trout&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; resource&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
	<entry>
		<id>https://sankoquest.wiki/w/index.php?title=Ranger_Leggings&amp;diff=394</id>
		<title>Ranger Leggings</title>
		<link rel="alternate" type="text/html" href="https://sankoquest.wiki/w/index.php?title=Ranger_Leggings&amp;diff=394"/>
		<updated>2026-07-02T19:24:40Z</updated>

		<summary type="html">&lt;p&gt;SankoSeedBot: Seed Sanko wiki page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- SANKO-BOT:BEGIN item --&amp;gt;&lt;br /&gt;
{{Item&lt;br /&gt;
|name=Ranger Leggings&lt;br /&gt;
|item_id=93&lt;br /&gt;
|icon=Ranger Leggings&lt;br /&gt;
|examine=Leggings worn by rangers&lt;br /&gt;
|category=equipment-legs&lt;br /&gt;
|subtype=equipment&lt;br /&gt;
|family=Legs equipment&lt;br /&gt;
|slot=legs&lt;br /&gt;
|stackable=0&lt;br /&gt;
|tradeable=&lt;br /&gt;
|equipable=1&lt;br /&gt;
|rarity=&lt;br /&gt;
|value=&lt;br /&gt;
|weight=&lt;br /&gt;
|level_req=&lt;br /&gt;
|token_id=&lt;br /&gt;
|contract=&lt;br /&gt;
|source=SankoQuest public item API&lt;br /&gt;
|verification_status=unverified&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END item --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:BEGIN starter --&amp;gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
&#039;&#039;&#039;Ranger Leggings&#039;&#039;&#039; is a SankoQuest item. Add practical uses, requirements, routes, comparisons, and links to related pages once they are verified.&lt;br /&gt;
* &#039;&#039;&#039;Category:&#039;&#039;&#039; equipment-legs&lt;br /&gt;
&lt;br /&gt;
== Gameplay Notes ==&lt;br /&gt;
{{MissingData|field=practical uses, requirements, routes, and comparisons|page={{PAGENAME}}|evidence=gameplay screenshot, official data, or reviewed wiki evidence}}&lt;br /&gt;
&lt;br /&gt;
== Sources Needed ==&lt;br /&gt;
{{MissingData|field=acquisition sources, shop stock, drops, resource nodes, recipes, and screenshots|page={{PAGENAME}}|evidence=shop screen, drop evidence, node output, recipe screen, or official data}}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Cite gameplay, official data, or on-chain evidence for facts that affect play.&lt;br /&gt;
&amp;lt;!-- SANKO-BOT:END starter --&amp;gt;&lt;/div&gt;</summary>
		<author><name>SankoSeedBot</name></author>
	</entry>
</feed>