{"id":840,"date":"2026-10-02T01:27:55","date_gmt":"2026-10-02T01:27:55","guid":{"rendered":"https:\/\/qubicportal.org\/?page_id=840"},"modified":"2026-10-02T02:36:05","modified_gmt":"2026-10-02T02:36:05","slug":"elementor-840","status":"publish","type":"page","link":"https:\/\/qubicportal.org\/","title":{"rendered":""},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"840\" class=\"elementor elementor-840\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b039530 e-flex e-con-boxed no no e-con e-parent\" data-id=\"b039530\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c0a7509 elementor-widget elementor-widget-html\" data-id=\"c0a7509\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- qubicportal directory: paste this whole block into an Elementor \"HTML\" widget -->\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Urbanist:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\n<style>\n\/* qubicportal directory: every rule is scoped to .qpd so it cannot affect the rest of the site *\/\n.qpd{--bg:#Fff;--surface:#f3f3f3;--surface-2:#F0EADC;--ink:#302A36;--ink-2:#6E686B;--line:#D9D3C8;--accent:#23FFFF;--accent-ink:#302A36;--focus:#6763FF;--official:#5F5AE1;--brand-purple:#6763FF;--brand-neon:#23FFFF;--c-learn:#605CE7;--c-get:#5363CD;--c-use:#466AB4;--c-part:#38729A;--c-follow:#2B7980;\n  --display:\"Gilroy\",\"Urbanist\",\"Avenir Next\",\"Segoe UI\",system-ui,sans-serif;\n  --body:\"Gilroy\",\"Urbanist\",\"Avenir Next\",\"Segoe UI\",system-ui,-apple-system,sans-serif;\n  --qpd-offset:90px; \/* height of a sticky site header, if any *\/\n  background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16.5px;font-weight:500;line-height:1.5;-webkit-font-smoothing:antialiased;padding-top:8px}\n@media (prefers-color-scheme:dark){.qpd[data-theme=\"auto\"]:not([data-theme-mode]){--bg:#26222B;--surface:#302A36;--surface-2:#3C3641;--ink:#FEF8E8;--ink-2:#C0BAB3;--line:#49434B;--accent:#23FFFF;--accent-ink:#302A36;--focus:#23FFFF;--official:#9C97F7;--c-learn:#9490F8;--c-get:#78ACFA;--c-use:#5CC8FC;--c-part:#3FE3FD;--c-follow:#23FFFF;}}\n.qpd[data-theme=\"dark\"]{--bg:#26222B;--surface:#302A36;--surface-2:#3C3641;--ink:#FEF8E8;--ink-2:#C0BAB3;--line:#49434B;--accent:#23FFFF;--accent-ink:#302A36;--focus:#23FFFF;--official:#9C97F7;--c-learn:#9490F8;--c-get:#78ACFA;--c-use:#5CC8FC;--c-part:#3FE3FD;--c-follow:#23FFFF;}\n.qpd,.qpd *,.qpd *::before,.qpd *::after{box-sizing:border-box}\n@media (prefers-reduced-motion:reduce){.qpd *{transition:none!important;animation:none!important}}\n.qpd a,.qpd a:hover,.qpd a:focus,.qpd a:visited{color:inherit;text-decoration:none}\n.qpd :focus-visible{outline:2.5px solid var(--focus);outline-offset:2px;border-radius:6px}\n.qpd img{max-width:100%;height:auto}\n.qpd.qpd :is(h1,h2,h3,h4){color:inherit;font-family:var(--display);text-transform:none;padding:0}\n.qpd.qpd button{text-transform:none;letter-spacing:normal;line-height:1.2;min-height:0;box-shadow:none;text-shadow:none}\n.qpd :is(section,header,nav,aside,details,figure){margin:0}\n.qpd p{text-transform:none}\n.qpd [id^=\"qpd-\"]{scroll-margin-top:calc(var(--qpd-offset) + 16px)}\n.qpd .qpd-wrap{max-width:1240px;margin:0 auto;padding:0 20px}\n.qpd .hero{padding:44px 0 28px}\n.qpd .hero h1{font-family:var(--display);font-weight:800;font-size:clamp(34px,5.6vw,64px);line-height:1.02;letter-spacing:-.03em;margin:0 0 14px;max-width:16ch}\n.qpd .hero p{color:var(--ink-2);font-size:18px;margin:0 0 32px;max-width:58ch}\n.qpd .journey{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative}\n.qpd .journey::before{content:\"\";position:absolute;left:0;right:0;top:0;height:45px;background:linear-gradient(90deg,var(--c-learn),var(--c-get),var(--c-use),var(--c-part),var(--c-follow));border-radius:23px}\n.qpd .stage{position:relative;text-decoration:none;padding:0 12px 0 0;display:block}\n.qpd .stage .dot{width:45px;height:45px;border-radius:50%;background:var(--surface);border:3px solid var(--sc);display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:17px;color:var(--sc);position:relative;transition:transform .2s}\n.qpd .stage:hover .dot{transform:scale(1.08)}\n.qpd .stage b{display:block;font-family:var(--display);font-size:20px;letter-spacing:-.01em;margin-top:12px}\n.qpd .stage small{display:block;color:var(--ink-2);font-size:14px;line-height:1.4;margin-top:2px}\n@media (max-width:760px){\n.qpd .journey{grid-template-columns:1fr;gap:14px}\n.qpd .journey::before{left:0;right:auto;top:0;bottom:0;width:45px;height:auto;background:linear-gradient(180deg,var(--c-learn),var(--c-get),var(--c-use),var(--c-part),var(--c-follow))}\n.qpd .stage{display:grid;grid-template-columns:45px 1fr;column-gap:14px;align-items:center}\n.qpd .stage b{margin:0;grid-column:2}\n.qpd .stage small{grid-column:2;margin:0}\n.qpd .stage .dot{grid-row:span 2}\n}\n.qpd .filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:18px 0;border-top:1px solid var(--line)}\n.qpd .seg{display:inline-flex;background:var(--surface-2);border-radius:20px;padding:3px}\n.qpd .seg button{border:0;background:transparent;color:var(--ink-2);font:700 14px var(--body);padding:7px 14px;border-radius:17px;cursor:pointer}\n.qpd .seg button[aria-pressed=\"true\"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(48,42,54,.16)}\n.qpd .count{color:var(--ink-2);font-size:14px;margin-left:auto}\n.qpd .layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:40px;padding-bottom:64px}\n.qpd .side{position:sticky;top:calc(var(--qpd-offset) + 20px);align-self:start;max-height:calc(100vh - var(--qpd-offset) - 40px);overflow:auto;padding-bottom:20px }\n.qpd .side h3{font-family:var(--display);font-size:14px;font-weight:700;color:var(--ink-2);margin:20px 0 6px;display:flex;align-items:center;gap:8px}\n.qpd .side h3:first-child{margin-top:4px}\n.qpd .side h3 i{width:9px;height:9px;border-radius:50%;background:var(--sc)}\n.qpd .side a{display:flex;justify-content:space-between;text-decoration:none;padding:6px 10px;border-radius:8px;font-size:15px;color:var(--ink)}\n.qpd .side a span{color:var(--ink-2);font-size:13px}\n.qpd .side a:hover{background:var(--surface-2)}\n.qpd .side a.on{background:var(--surface);box-shadow:inset 3px 0 0 var(--sc)}\n.qpd .chips{display:none}\n@media (max-width:960px){\n.qpd .layout{grid-template-columns:minmax(0,1fr);gap:0}\n.qpd .side{display:none}\n.qpd .chips{display:flex;gap:8px;overflow-x:auto;position:sticky;top:var(--qpd-offset);z-index:15;background:var(--bg);padding:10px 20px;margin:0 -20px;border-bottom:1px solid var(--line);scrollbar-width:none}\n.qpd .chips::-webkit-scrollbar{display:none}\n.qpd .chips a{flex-shrink:0;text-decoration:none;font-size:14px;font-weight:700;padding:7px 13px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}\n.qpd .chips a.on{border-color:var(--sc);color:var(--sc)}\n}\n.qpd .stagehead{display:flex;align-items:baseline;gap:12px;margin:36px 0 4px;color:var(--sc)}\n.qpd .stagehead:first-child{margin-top:6px}\n.qpd .stagehead h2{font-family:var(--display);font-size:15px;font-weight:700;margin:0}\n.qpd .stagehead::after{content:\"\";flex:1;height:2px;background:var(--sc);opacity:.35;align-self:center}\n.qpd section.cat{padding:14px 0 18px}\n.qpd section.cat > header{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:14px}\n.qpd section.cat h3{font-family:var(--display);font-size:clamp(24px,3vw,30px);font-weight:700;letter-spacing:-.02em;margin:0}\n.qpd section.cat header p{margin:0;color:var(--ink-2);font-size:15px;flex-basis:100%;max-width:64ch}\n.qpd .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}\n.qpd h4.sub{font-family:var(--display);font-size:16px;font-weight:700;margin:18px 0 10px;color:var(--ink-2)}\n.qpd h4.sub:first-of-type{margin-top:4px}\n.qpd .card{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:start;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;text-decoration:none;transition:border-color .15s,transform .15s}\n.qpd .card:hover{border-color:var(--sc);transform:translateY(-1px)}\n.qpd .mono{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:16px;letter-spacing:-.02em;color:var(--sc);background:color-mix(in srgb,var(--sc) 14%,var(--surface))}\n.qpd .card .nm{font-weight:700;letter-spacing:-.005em;font-size:16px;line-height:1.25;display:flex;align-items:center;gap:6px}\n.qpd .card .ds{color:var(--ink-2);font-size:14px;line-height:1.4;margin-top:3px}\n.qpd .card .dm{color:var(--ink-2);font-size:12.5px;margin-top:6px;opacity:.85;word-break:break-all}\n.qpd .off{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;font-weight:700;color:var(--official);background:color-mix(in srgb,var(--official) 12%,transparent);padding:2px 7px;border-radius:9px;white-space:nowrap}\n.qpd .off svg{width:11px;height:11px}\n.qpd .feat{grid-column:1\/-1}\n.qpd .feat.card{grid-template-columns:52px 1fr}\n.qpd .feat .mono{width:52px;height:52px;font-size:19px}\n.qpd .series{grid-column:1\/-1;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}\n.qpd .series summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:14px}\n.qpd .series summary::-webkit-details-marker{display:none}\n.qpd .series .chev{width:20px;height:20px;color:var(--ink-2);transition:transform .2s}\n.qpd .series[open] .chev{transform:rotate(180deg)}\n.qpd .series ol{margin:0;padding:4px 14px 14px 14px;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px;counter-reset:ep}\n.qpd .series li a{display:flex;gap:10px;align-items:baseline;text-decoration:none;padding:8px 10px;border-radius:8px;background:var(--surface-2);font-size:14.5px}\n.qpd .series li a:hover{outline:1.5px solid var(--sc)}\n.qpd .series li a b{font-family:var(--display);color:var(--sc);min-width:22px}\n.qpd .people{display:flex;flex-wrap:wrap;gap:8px}\n.qpd .person{display:inline-flex;align-items:center;gap:8px;text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:5px 14px 5px 5px;font-size:14.5px}\n.qpd .person:hover{border-color:var(--sc)}\n.qpd .person .av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font:800 12px var(--display);color:var(--sc);background:color-mix(in srgb,var(--sc) 14%,var(--surface))}\n.qpd .person em{font-style:normal;color:var(--ink-2);font-size:13px}\n.qpd .empty{padding:60px 20px;text-align:center;color:var(--ink-2)}\n.qpd .empty b{display:block;font-family:var(--display);font-size:22px;color:var(--ink);margin-bottom:6px}\n.qpd .empty button{margin-top:14px;border:0;background:var(--accent);color:var(--accent-ink);font:700 15px var(--body);padding:10px 18px;border-radius:20px;cursor:pointer}\n.qpd .hidden{display:none!important}\n.qpd .mapsec{padding:8px 20px 56px}\n.qpd .mapsec > header{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:14px}\n.qpd .mapsec h2{font-family:var(--display);font-size:clamp(26px,3.4vw,36px);font-weight:800;letter-spacing:-.02em;margin:0}\n.qpd .mapsec header p{margin:0;color:var(--ink-2);flex-basis:100%;max-width:64ch}\n.qpd .mapbox{position:relative;height:clamp(460px,72vh,760px);background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;transition:height .35s ease;\n  background-image:radial-gradient(color-mix(in srgb,var(--ink-2) 22%,transparent) 1px,transparent 1.2px);background-size:22px 22px}\n.qpd .mapbox.tree{padding-top:52px}\n.qpd .mapbox svg{width:100%;height:100%;display:block}\n.qpd .mapbar{position:absolute;left:14px;top:12px;right:14px;display:flex;gap:10px;align-items:center;z-index:2}\n.qpd .mapbar button{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:700 14px var(--body);padding:8px 14px;border-radius:18px;cursor:pointer;flex-shrink:0}\n.qpd .mapbar .crumb{font-family:var(--display);font-weight:700;font-size:16px;color:var(--sc,var(--ink));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.qpd .maphint{position:absolute;right:16px;bottom:12px;font-size:13px;color:var(--ink-2);pointer-events:none}\n.qpd .mapbox.tree .maphint{display:none}\n.qpd .mm-edge{fill:none;stroke:var(--sc);stroke-width:2;opacity:.5;transition:opacity .3s}\n.qpd .mm-node{transition:opacity .3s}\n.qpd .mm-node circle{fill:var(--surface);stroke:var(--sc);stroke-width:2.5;transition:stroke-width .15s}\n.qpd .mm-node circle.solid{fill:var(--sc);stroke:none}\n.qpd .mm-node text{fill:var(--ink);font-family:var(--display);font-weight:700;pointer-events:none}\n.qpd .mm-node .inner{fill:var(--sc);stroke:none}\n.qpd .mm-node .tint{fill:var(--sc)}\n.qpd .mm-cat{cursor:pointer}\n.qpd .mm-cat .hit{fill:transparent;stroke:none}\n.qpd .mm-cat:hover circle:not(.hit),.qpd .mm-cat:focus-visible circle{stroke-width:5}\n.qpd .mm-cat:focus{outline:none}\n.qpd .mm-cat:focus-visible .lbl{text-decoration:underline}\n.qpd .mm-cat.hidelbl .lbl{opacity:0}\n.qpd .dim{opacity:.12!important}\n.qpd .gone{opacity:0!important;pointer-events:none}\n.qpd .mm-leaves{opacity:0;pointer-events:none;transition:opacity .35s}\n.qpd .mm-leaves.on{opacity:1;pointer-events:auto}\n.qpd .mm-leaf circle{fill:var(--sc);stroke:var(--surface);stroke-width:2}\n.qpd .mm-leaf text{fill:var(--ink);font-family:var(--body);font-weight:600}\n.qpd .mm-leaf:hover text,.qpd .mm-leaf:focus-visible text{fill:var(--sc);text-decoration:underline}\n.qpd .mm-leaf:focus{outline:none}\n.qpd .mm-leaf-edge{fill:none;stroke:var(--sc);stroke-width:1.6;opacity:.55}\n@media (max-width:600px){\n.qpd .maphint{display:none}\n}\n.qpd .mono,.qpd .person .av{position:relative;overflow:hidden}\n.qpd .mono img.lg,.qpd .av img.lg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:var(--surface)}\n.qpd .mono img.lg{padding:2px}\n\/* wide logos: own row, full logo visible, title moves below *\/\n.qpd .card.wide{grid-template-columns:minmax(0,1fr);row-gap:10px}\n.qpd .card.wide .mono,.qpd .series summary.wide .mono{width:min(100%,calc(56px * var(--ar)));height:auto;aspect-ratio:var(--ar);font-size:0;border-radius:10px;justify-self:start;background:var(--surface)}\n.qpd .card.wide .mono img.lg,.qpd .series summary.wide .mono img.lg{padding:0}\n.qpd .feat.card.wide .mono{width:min(100%,calc(64px * var(--ar)))}\n.qpd .series summary.wide{grid-template-columns:minmax(0,1fr) auto;row-gap:10px}\n.qpd .series summary.wide .mono{grid-column:1\/-1}\n.qpd .mono:has(img.lg){box-shadow:inset 0 0 0 1px var(--line)}\n\n\/* search now lives in the filter row *\/\n.qpd .search{flex:1 1 260px;max-width:420px;position:relative;margin:0}\n.qpd .search .ic{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--ink-2);pointer-events:none}\n.qpd .search input[type=\"search\"]{width:100%;height:42px;margin:0;border-radius:21px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:15px;padding:0 44px 0 42px;box-shadow:none;-webkit-appearance:none;appearance:none}\n.qpd .search input[type=\"search\"]:focus{outline:none;border-color:var(--focus)}\n.qpd .search kbd{position:absolute;right:12px;top:50%;transform:translateY(-50%);font:12px\/1 var(--body);color:var(--ink-2);border:1px solid var(--line);border-radius:5px;padding:4px 6px;background:var(--surface-2)}\n@media (max-width:760px){.qpd .search{max-width:none;flex-basis:100%}.qpd .search kbd{display:none}}\n.qpd .seg button:hover{background:transparent;color:var(--ink)}\n.qpd .seg button[aria-pressed=\"true\"]:hover{background:var(--surface)}\n.qpd .empty button:hover{background:var(--accent);color:var(--accent-ink)}\n.qpd .mapbar button:hover{background:var(--surface-2);color:var(--ink)}\n\/* submit block (replaces the old footer) *\/\n.qpd .submitwrap{padding:0 20px 56px}\n.qpd .submit{max-width:1200px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px 24px;display:flex;gap:18px;align-items:center;flex-wrap:wrap}\n.qpd .submit b{font-family:var(--display);font-size:20px;color:var(--ink);display:block}\n.qpd .submit span{color:var(--ink-2)}\n.qpd .submit a{margin-left:auto;background:var(--accent);color:var(--accent-ink);font-weight:700;padding:10px 18px;border-radius:20px}\n.qpd .submit a:hover{color:var(--accent-ink)}\n\n.qpd .layout > *{min-width:0}\n.qpd .chips{max-width:100vw}\n@media (max-width:420px){.qpd .grid{grid-template-columns:minmax(0,1fr)}.qpd .series ol{grid-template-columns:minmax(0,1fr)}}\n.qpd .person{max-width:100%;min-width:0}\n.qpd .person em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n\n<\/style>\n<div class=\"qpd\" data-theme=\"auto\">\n  <div class=\"qpd-wrap\">\n    <div class=\"hero\">\n      <h1>Everything on Qubic, in one place.<\/h1>\n      <p>A curated directory of wallets, exchanges, mining pools, games, research and the people behind the network. Pick where you are in the journey, or search.<\/p>\n      <nav class=\"journey\" id=\"qpd-journey\" aria-label=\"Directory stages\"><\/nav>\n    <\/div>\n\n    <div class=\"filters\">\n      <label class=\"search\">\n        <svg class=\"ic\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"7\"\/><path d=\"m20 20-3.5-3.5\"\/><\/svg>\n        <input id=\"qpd-q\" type=\"search\" placeholder=\"Search wallets, pools, games\u2026\" aria-label=\"Search the directory\" autocomplete=\"off\">\n        <kbd>\/<\/kbd>\n      <\/label>\n      <div class=\"seg\" role=\"group\" aria-label=\"Filter by source\">\n        <button type=\"button\" data-src=\"all\" aria-pressed=\"true\">All<\/button>\n        <button type=\"button\" data-src=\"official\" aria-pressed=\"false\">Official<\/button>\n        <button type=\"button\" data-src=\"community\" aria-pressed=\"false\">Community<\/button>\n      <\/div>\n      <span class=\"count\" id=\"qpd-count\" aria-live=\"polite\"><\/span>\n    <\/div>\n\n    <div class=\"layout\">\n      <aside class=\"side\" id=\"qpd-side\" aria-label=\"Categories\"><\/aside>\n      <div>\n        <nav class=\"chips\" id=\"qpd-chips\" aria-label=\"Categories\"><\/nav>\n        <div id=\"qpd-dir\"><\/div>\n        <div class=\"empty hidden\" id=\"qpd-empty\">\n          <b>Nothing matches that search<\/b>\n          Try a shorter word, or switch the filter back to All.\n          <br><button type=\"button\" id=\"qpd-reset\">Clear search and filters<\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <section class=\"qpd-wrap mapsec\" id=\"qpd-map\">\n    <header>\n      <h2>Ecosystem map<\/h2>\n      <p>The whole directory at a glance. Select a category to open its links; select empty space or press Esc to zoom back out.<\/p>\n    <\/header>\n    <div class=\"mapbox\" id=\"qpd-mapbox\">\n      <div class=\"mapbar\"><button type=\"button\" id=\"qpd-mmBack\" class=\"hidden\">Show whole map<\/button><span class=\"crumb\" id=\"qpd-mmCrumb\"><\/span><\/div>\n      <svg id=\"qpd-mm\" role=\"group\" aria-label=\"Ecosystem mind map\"><\/svg>\n      <span class=\"maphint\" id=\"qpd-mmHint\">Select a category to explore<\/span>\n    <\/div>\n  <\/section>\n\n  <div class=\"submitwrap\">\n    <div class=\"submit\">\n      <div><b>Building on Qubic?<\/b><span>Get your project listed in the directory.<\/span><\/div>\n      <a href=\"https:\/\/qubicportal.org\/?page_id=30\">Contact the qubicportal team<\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\nconst root=document.querySelector('.qpd');\nif(!root||root.dataset.ready)return;root.dataset.ready='1';\n\n\/* ---- Follow the host site's light\/dark theme ----\n   data-theme=\"auto\" (default): match the site. \"light\" \/ \"dark\": lock it. *\/\n(function themeSync(){\n  const wanted=(root.getAttribute(\"data-theme\")||\"auto\").toLowerCase();\n  if(wanted===\"light\"||wanted===\"dark\")return;\n  root.setAttribute(\"data-theme-mode\",\"auto\");\n  const DARK_CLASS=\/(^|[\\s_-])(dark|dark-?mode|dark-?theme|theme-?dark|is-?dark|night-?mode)($|[\\s_-])|wp-dark-mode-active|darkmode--activated|darklup.*-enabled\/i;\n  const LIGHT_CLASS=\/(^|[\\s_-])(light|light-?mode|light-?theme|theme-?light|is-?light)($|[\\s_-])\/i;\n  const ATTRS=[\"data-theme\",\"data-bs-theme\",\"data-color-scheme\",\"data-color-mode\",\"data-mode\",\"data-scheme\"];\n  const fromMarkers=el=>{\n    if(!el)return null;\n    for(const a of ATTRS){const v=(el.getAttribute(a)||\"\").toLowerCase();if(v.includes(\"dark\"))return \"dark\";if(v.includes(\"light\"))return \"light\";}\n    const c=typeof el.className===\"string\"?el.className:\"\";\n    if(DARK_CLASS.test(c))return \"dark\";\n    if(LIGHT_CLASS.test(c))return \"light\";\n    const cs=(el.style&&el.style.colorScheme)||\"\";if(cs===\"dark\"||cs===\"light\")return cs;\n    return null;\n  };\n  const lum=rgb=>{const m=rgb.match(\/[\\d.]+\/g);if(!m||m.length<3)return null;if(m.length>3&&parseFloat(m[3])===0)return null;\n    const f=v=>{v\/=255;return v<=.03928?v\/12.92:Math.pow((v+.055)\/1.055,2.4)};return .2126*f(+m[0])+.7152*f(+m[1])+.0722*f(+m[2])};\n  const fromBackground=()=>{for(let el=root.parentElement;el;el=el.parentElement){const L=lum(getComputedStyle(el).backgroundColor);if(L!==null)return L<.18?\"dark\":\"light\"}return null};\n  const mq=window.matchMedia?matchMedia(\"(prefers-color-scheme: dark)\"):null;\n  function detect(){\n    const t=fromMarkers(document.documentElement)||fromMarkers(document.body)||fromBackground()||(mq&&mq.matches?\"dark\":\"light\");\n    if(root.getAttribute(\"data-theme\")!==t)root.setAttribute(\"data-theme\",t);\n  }\n  detect();\n  const mo=new MutationObserver(detect);\n  const opts={attributes:true,attributeFilter:[\"class\",\"style\"].concat(ATTRS)};\n  mo.observe(document.documentElement,opts);if(document.body)mo.observe(document.body,opts);\n  if(mq&&mq.addEventListener)mq.addEventListener(\"change\",detect);\n  \/\/ toggles that swap stylesheets instead of attributes: re-check after any click\n  document.addEventListener(\"click\",()=>setTimeout(detect,60),true);\n  window.addEventListener(\"load\",detect);\n})();\n\nconst STAGES=[\n {id:\"learn\",name:\"Learn\",blurb:\"What Qubic is and how it works\",color:\"--c-learn\"},\n {id:\"get\",name:\"Get QUBIC\",blurb:\"Wallets, bridges and exchanges\",color:\"--c-get\"},\n {id:\"use\",name:\"Use it\",blurb:\"DeFi, games and community tokens\",color:\"--c-use\"},\n {id:\"part\",name:\"Participate\",blurb:\"Mine, vote and build\",color:\"--c-part\"},\n {id:\"follow\",name:\"Follow\",blurb:\"Research and people to watch\",color:\"--c-follow\"}\n];\nconst CATS=[\n {id:\"basics\",stage:\"learn\",name:\"Start here\",desc:\"Official sources to understand the network before you do anything else.\"},\n {id:\"wallets\",stage:\"get\",name:\"Wallets & bridges\",desc:\"Hold QUBIC and move assets between Qubic and other chains.\"},\n {id:\"trade\",stage:\"get\",name:\"Trade & swap\",desc:\"Exchanges, swaps and market data for QUBIC and Qubic tokens.\"},\n {id:\"defi\",stage:\"use\",name:\"Earn & launch\",desc:\"Lock tokens for rewards, back new projects and trade digital assets.\"},\n {id:\"games\",stage:\"use\",name:\"Games & lotteries\",desc:\"Play, draw and bet with on-chain settlement.\"},\n {id:\"tokens\",stage:\"use\",name:\"Community tokens\",desc:\"Meme and community tokens launched on Qubic. Higher risk; do your own research.\"},\n {id:\"mining\",stage:\"part\",name:\"Mining\",desc:\"Guides to get started, pools to join and dashboards to track output.\",groups:[\"Guide\",\"Pool\",\"Stats\"]},\n {id:\"network\",stage:\"part\",name:\"Explore & govern\",desc:\"Inspect the chain, vote on proposals and track smart contract shares.\"},\n {id:\"build\",stage:\"part\",name:\"Build\",desc:\"Libraries and node software for developers.\"},\n {id:\"science\",stage:\"follow\",name:\"AI research\",desc:\"Aigarth and Neuraxon: Qubic's work toward artificial general intelligence.\"},\n {id:\"people\",stage:\"follow\",name:\"People to follow\",desc:\"Official channels, researchers and community voices.\",people:true}\n];\n\/\/ o = official Qubic property; k = sub-group; feat = featured (wide) card\nconst L=[\n {c:\"basics\",n:\"qubic.org\",u:\"https:\/\/qubic.org\",d:\"The official home of the Qubic network.\",o:1,feat:1},\n {c:\"basics\",n:\"Qubic Academy\",u:\"https:\/\/qubic.org\/academy\",d:\"Structured lessons on how Qubic works.\",o:1},\n {c:\"basics\",n:\"Whitepaper\",u:\"https:\/\/whitepaper.qubic.org\/\",d:\"The technical design of the network.\",o:1},\n {c:\"basics\",n:\"Qubic Blog\",u:\"https:\/\/qubic.org\/blog-grid\",d:\"Announcements, deep dives and updates.\",o:1},\n {c:\"basics\",n:\"Qubic AMAs\",u:\"https:\/\/www.youtube.com\/@_qubic_\",d:\"Recorded AMAs and videos on YouTube.\",o:1},\n {c:\"basics\",n:\"Events\",u:\"https:\/\/qubic.org\/events\",d:\"Upcoming and past Qubic events.\",o:1},\n {c:\"basics\",n:\"Brand kit\",u:\"https:\/\/qubic.org\/brand-kit\",d:\"Logos and brand assets for creators.\",o:1},\n\n {c:\"wallets\",n:\"Qubic Wallet\",u:\"https:\/\/wallet.qubic.org\/public\",d:\"The official web wallet.\",o:1},\n {c:\"wallets\",n:\"HashWallet\",u:\"https:\/\/qubic.org\/ecosystem\/hashwallet\",d:\"Third-party wallet with Qubic support.\"},\n {c:\"wallets\",n:\"Qubic Bridge\",u:\"http:\/\/qubicbridge.com\",d:\"Move assets between Qubic and other chains.\"},\n {c:\"wallets\",n:\"Vottun Bridge\",u:\"https:\/\/qubic.org\/ecosystem\/vottun-bridge\",d:\"Cross-chain bridge built by Vottun.\"},\n\n {c:\"trade\",n:\"Portal DEX\",u:\"https:\/\/app.qubicportal.org\/\",d:\"qubicportal's decentralized exchange.\",feat:1},\n {c:\"trade\",n:\"qswap\",u:\"https:\/\/swap.qubicportal.org\/swap\",d:\"Quick token swaps from qubicportal.\"},\n {c:\"trade\",n:\"Qubic Trade\",u:\"https:\/\/qubic.org\/ecosystem\/qubictrade\",d:\"Trading interface for Qubic assets.\"},\n {c:\"trade\",n:\"QXBoard\",u:\"https:\/\/qubic.org\/ecosystem\/qxboard\",d:\"Order book view for the QX exchange.\"},\n {c:\"trade\",n:\"QuHub\",u:\"https:\/\/quhub.app\",d:\"Community trading hub.\"},\n {c:\"trade\",n:\"Qubic Swap\",u:\"https:\/\/qubicswap.com\",d:\"Swap Qubic tokens.\"},\n {c:\"trade\",n:\"CoinGecko\",u:\"https:\/\/www.coingecko.com\/en\/coins\/qubic\",d:\"QUBIC price, volume and exchange listings.\"},\n\n {c:\"defi\",n:\"QEarn\",u:\"https:\/\/www.qearn.org\/\",d:\"Lock QUBIC to earn rewards.\"},\n {c:\"defi\",n:\"qbond\",u:\"https:\/\/www.qbond.org\/\",d:\"Bond and staking products on Qubic.\"},\n {c:\"defi\",n:\"Qubic Capital\",u:\"https:\/\/qubic.org\/ecosystem\/qubic-capital\",d:\"Ecosystem investment initiative.\"},\n {c:\"defi\",n:\"Nostromo\",u:\"https:\/\/nostromopad.com\/\",d:\"Launchpad for new Qubic projects.\"},\n {c:\"defi\",n:\"Qubic ICO Portal\",u:\"https:\/\/qubicico.com\/\",d:\"Token sales for Qubic projects.\"},\n {c:\"defi\",n:\"Qubic Bay\",u:\"https:\/\/qubicbay.io\",d:\"Marketplace for Qubic digital assets.\"},\n\n {c:\"games\",n:\"My Last Match\",u:\"https:\/\/mylastmatch.net\",d:\"Multiplayer game built on Qubic.\",feat:1},\n {c:\"games\",n:\"QDraws\",u:\"https:\/\/qubic.org\/ecosystem\/qdraw\",d:\"On-chain prize draws.\"},\n {c:\"games\",n:\"Random Lottery\",u:\"https:\/\/qubicrl.org\",d:\"Lottery using Qubic's on-chain randomness.\"},\n {c:\"games\",n:\"QRaffle\",u:\"https:\/\/qubic.org\/ecosystem\/qraffle\",d:\"Community raffles.\"},\n {c:\"games\",n:\"Quottery\",u:\"https:\/\/quottery.org\/\",d:\"Bet on outcomes with on-chain settlement.\"},\n {c:\"games\",n:\"QZN Arcade\",u:\"https:\/\/qzn.app\",d:\"Arcade games on Qubic.\"},\n\n {c:\"tokens\",n:\"Wolf Pack\",u:\"https:\/\/mlmwp.com\",d:\"Token from the My Last Match community.\"},\n {c:\"tokens\",n:\"qDoge\",u:\"https:\/\/www.qdogeonqubic.com\/\",d:\"Doge-themed community token.\"},\n {c:\"tokens\",n:\"Garth\",u:\"https:\/\/garthonqubic.com\",d:\"Community token inspired by Aigarth.\"},\n {c:\"tokens\",n:\"QXMR\",u:\"https:\/\/qubic.org\/ecosystem\/qxmr\",d:\"Monero-mining themed token.\"},\n {c:\"tokens\",n:\"Matilda\",u:\"https:\/\/qubic.org\/ecosystem\/matilda\",d:\"Community token.\"},\n {c:\"tokens\",n:\"Coded\",u:\"https:\/\/www.codedonqubic.com\/\",d:\"Community token and project.\"},\n {c:\"tokens\",n:\"CFB\",u:\"https:\/\/qubic.org\/ecosystem\/cfb\",d:\"Token named after Qubic's founder.\"},\n\n {c:\"mining\",k:\"Guide\",n:\"How to mine\",u:\"https:\/\/qubic.org\/academy\/mining\/module-1\/lesson-3\",d:\"Academy lesson on setting up a miner.\",o:1},\n {c:\"mining\",k:\"Guide\",n:\"Start mining\",u:\"https:\/\/qubic.org\/blog-detail\/qubic-dogecoin-mining-how-it-works\",d:\"How Qubic's Dogecoin mining works.\",o:1},\n {c:\"mining\",k:\"Pool\",n:\"Qmine\",u:\"https:\/\/qmine.io\/\",d:\"Mining pool.\"},\n {c:\"mining\",k:\"Pool\",n:\"Jetski Pool\",u:\"https:\/\/qubic.jetskipool.ai\/\",d:\"Mining pool.\"},\n {c:\"mining\",k:\"Pool\",n:\"Apool\",u:\"https:\/\/www.apool.io\/\",d:\"Multi-coin mining pool with Qubic support.\"},\n {c:\"mining\",k:\"Pool\",n:\"Minerlab Pool\",u:\"https:\/\/qubic.minerlab.io\/\",d:\"Mining pool.\"},\n {c:\"mining\",k:\"Pool\",n:\"QLI Pool\",u:\"https:\/\/pool.qubic.li\/en-US\/dashboard\",d:\"Mining pool dashboard.\"},\n {c:\"mining\",k:\"Stats\",n:\"Doge Stats\",u:\"https:\/\/doge-stats.qubic.org\/\",d:\"Live stats for Qubic's Dogecoin mining.\",o:1},\n {c:\"mining\",k:\"Stats\",n:\"Doge Qubic Tools\",u:\"https:\/\/doge.qubic.tools\/\",d:\"Community mining dashboard.\"},\n\n {c:\"network\",n:\"Qubic Explorer\",u:\"https:\/\/explorer.qubic.org\/network\",d:\"Look up ticks, transactions and addresses.\",o:1,feat:1},\n {c:\"network\",n:\"Proposals\",u:\"https:\/\/proposals.qubic.org\/?status=active_proposals\",d:\"Active governance proposals.\",o:1},\n {c:\"network\",n:\"Community voting\",u:\"https:\/\/community.voting.qubic.org\/\",d:\"Vote on community proposals.\",o:1},\n {c:\"network\",n:\"QFront\",u:\"https:\/\/qfront.org\/\",d:\"Network and smart contract dashboard.\"},\n {c:\"network\",n:\"Contract reserves\",u:\"https:\/\/qfront.org\/ContractReserves\",d:\"Smart contract reserve balances, via QFront.\"},\n {c:\"network\",n:\"Contract IPO auctions\",u:\"https:\/\/ipo.qubic.tools\/\",d:\"Bid for smart contract shares.\"},\n {c:\"network\",n:\"IPO bid history\",u:\"https:\/\/ipo.qubic.tools\/history\",d:\"Results of past contract IPOs.\"},\n {c:\"network\",n:\"Contract dividends\",u:\"https:\/\/dividends.qubic.tools\/\",d:\"Payouts to contract shareholders.\"},\n {c:\"network\",n:\"Whale Alert Bot\",u:\"https:\/\/qubic.org\/ecosystem\/qubic-whale-alert\",d:\"Alerts for large transfers.\"},\n {c:\"network\",n:\"Qubic Name Service\",u:\"https:\/\/qubic.org\/ecosystem\/qns\",d:\"Readable names for Qubic addresses.\"},\n {c:\"network\",n:\"Qubic Guardian\",u:\"https:\/\/qubicguardian.vercel.app\/\",d:\"Community network tool.\"},\n\n {c:\"build\",n:\"QubiPy\",u:\"https:\/\/qubic.org\/ecosystem\/qubipy\",d:\"Python library for working with Qubic.\"},\n {c:\"build\",n:\"Qubic Core Bob\",u:\"https:\/\/qubic.org\/ecosystem\/qubic-core-bob\",d:\"Core node tooling.\"},\n {c:\"build\",n:\"Neuraxon on GitHub\",u:\"https:\/\/github.com\/DavidVivancos\/Neuraxon\",d:\"Source code for the Neuraxon model.\"},\n\n {c:\"science\",n:\"Neuraxon paper\",u:\"https:\/\/www.researchgate.net\/publication\/397331336_Neuraxon\",d:\"The Neuraxon research paper on ResearchGate.\"},\n {c:\"science\",n:\"Qubic AGI Journey\",u:\"https:\/\/www.researchgate.net\/publication\/387364505_Qubic_AGI_Journey_Human_and_Artificial_Intelligence_Toward_an_AGI_with_Aigarth\",d:\"Paper on the path to AGI with Aigarth.\"},\n {c:\"science\",n:\"Neuraxon demos\",u:\"https:\/\/huggingface.co\/spaces\/DavidVivancos\/\",d:\"Interactive demos on Hugging Face.\"},\n {c:\"science\",n:\"The AntHill\",u:\"https:\/\/x.com\/_qubic_\/status\/2047677623338213777?s=46\",d:\"Announcement thread on X.\",o:1},\n {c:\"science\",series:1,n:\"Neuraxon Intelligence Academy\",d:\"A ten-part series on brain-inspired AI, from the Qubic blog.\",o:1,eps:[\n   [\"Time, not steps\",\"https:\/\/qubic.org\/blog-detail\/neuraxon-time-why-intelligence-is-not-computed-in-steps-but-in-time\"],\n   [\"Ternary dynamics\",\"https:\/\/qubic.org\/blog-detail\/beyond-binary-ternary-dynamics-as-a-model-of-living-intelligence\"],\n   [\"Neuromodulation\",\"https:\/\/qubic.org\/blog-detail\/neuromodulation-brain-inspired-ai-neuraxon-intelligence-academy-vol-3\"],\n   [\"Biological and artificial networks\",\"https:\/\/qubic.org\/blog-detail\/neural-networks-biological-artificial-neuraxon-intelligence\"],\n   [\"Astrocytes\",\"https:\/\/qubic.org\/blog-detail\/astrocytes-neuraxon-intelligence-academy-vol-5\"],\n   [\"Conscious machines\",\"https:\/\/qubic.org\/blog-detail\/conscious-machines-intelligent-organisms-ai-consciousness-neuraxon-vol-6\"],\n   [\"Game of Life and artificial life\",\"https:\/\/qubic.org\/blog-detail\/conways-game-of-life-artificial-life-digital-ecosystems-qubic-neuraxon-nia-vol-7\"],\n   [\"Brain criticality\",\"https:\/\/qubic.org\/blog-detail\/brain-criticality-branching-ratio-neural-artificial-networks-neuraxon-nia-vol-8\"],\n   [\"The g-factor\",\"https:\/\/qubic.org\/blog-detail\/g-factor-general-intelligence-artificial-life-neuraxon-nia-vol-9\"],\n   [\"ARC-AGI benchmark\",\"https:\/\/qubic.org\/blog-detail\/arc-agi-benchmark-neuraxon-intelligence-academy-vol-10\"]]},\n\n {c:\"people\",k:\"Official\",n:\"Qubic\",h:\"_Qubic_\",u:\"https:\/\/x.com\/_Qubic_\",o:1},\n {c:\"people\",k:\"Official\",n:\"Qubic Discord\",h:\"discord.gg\/qubic\",u:\"https:\/\/discord.gg\/qubic\",o:1},\n {c:\"people\",k:\"Official\",n:\"Come-from-Beyond\",h:\"c___f___b\",u:\"https:\/\/x.com\/c___f___b\"},\n {c:\"people\",k:\"Researchers\",n:\"David Vivancos\",h:\"VivancosDavid\",u:\"https:\/\/x.com\/VivancosDavid\"},\n {c:\"people\",k:\"Researchers\",n:\"Jose S\u00e1nchez\",h:\"josesanchezhb\",u:\"https:\/\/x.com\/josesanchezhb\"},\n {c:\"people\",k:\"Researchers\",n:\"AIGarth_AI\",h:\"Qubic_Red76\",u:\"https:\/\/x.com\/Qubic_Red76\"},\n {c:\"people\",k:\"Community\",n:\"Qubic Church\",h:\"qubic.church\",u:\"https:\/\/qubic.church\/\"},\n {c:\"people\",k:\"Community\",n:\"QubicChurch\",h:\"QubicChurch\",u:\"https:\/\/x.com\/QubicChurch\"},\n {c:\"people\",k:\"Community\",n:\"HelloQubic\",h:\"HelloQubic\",u:\"https:\/\/x.com\/HelloQubic\"},\n {c:\"people\",k:\"Community\",n:\"SatoshiCFB\",h:\"SatoshiCfB\",u:\"https:\/\/x.com\/SatoshiCfB\"},\n {c:\"people\",k:\"Community\",n:\"Milly Crypto\",h:\"MillyCrypto_\",u:\"https:\/\/x.com\/MillyCrypto_\"},\n {c:\"people\",k:\"Community\",n:\"elitebreedss\",h:\"elitebreedss\",u:\"https:\/\/x.com\/elitebreedss\"},\n {c:\"people\",k:\"Community\",n:\"Rudy Nakamoto\",h:\"rudynakamoto\",u:\"https:\/\/x.com\/rudynakamoto\"},\n {c:\"people\",k:\"Community\",n:\"ThatsNotMyCode\",h:\"ThatsNotMyCode\",u:\"https:\/\/x.com\/ThatsNotMyCode\"},\n {c:\"people\",k:\"Community\",n:\"RaZiaH_Q\",h:\"RaZiaH_Q\",u:\"https:\/\/x.com\/RaZiaH_Q\"},\n {c:\"people\",k:\"Community\",n:\"Josef Rakich\",h:\"JosefRakich\",u:\"https:\/\/x.com\/JosefRakich\"},\n {c:\"people\",k:\"Community\",n:\"Marie Kate\",h:\"MKx2x10\",u:\"https:\/\/x.com\/MKx2x10\"},\n {c:\"people\",k:\"Community\",n:\"The Chosen Chad\",h:\"THE_chosen_CHAD\",u:\"https:\/\/x.com\/THE_chosen_CHAD\"},\n {c:\"people\",k:\"Community\",n:\"TechLife Ledger\",h:\"LedgerTechLife\",u:\"https:\/\/x.com\/LedgerTechLife\"},\n {c:\"people\",k:\"Community\",n:\"Zuqka\",h:\"zuqkaX\",u:\"https:\/\/x.com\/zuqkaX\"},\n {c:\"people\",k:\"Community\",n:\"Andy Qus\",h:\"Andy_Qus\",u:\"https:\/\/x.com\/Andy_Qus\"},\n {c:\"people\",k:\"Community\",n:\"Unknown Crypto Journey\",h:\"uwe2xlc\",u:\"https:\/\/x.com\/uwe2xlc\"}\n];\n\nconst $=s=>root.querySelector(s);\nconst IMG_BASE=\"https:\/\/qubicportal.org\/wp-content\/uploads\/\";\nconst IMG={\n\"qubic.org\": \"2026\/10\/qubic-dark-.org_.png\",\n\"Qubic Academy\": \"2026\/04\/Qacademy.png\",\n\"Qubic Blog\": \"2026\/04\/blog.png\",\n\"Qubic AMAs\": \"2026\/04\/Qamas.png\",\n\"Events\": \"2026\/10\/qeventslight.png\",\n\"Brand kit\": \"2026\/04\/qbrand.png\",\n\"Qubic Wallet\": \"2026\/04\/Qwallet.png\",\n\"HashWallet\": \"2026\/04\/hashwalletlight-1.png\",\n\"Qubic Bridge\": \"2026\/04\/Qbridge.png\",\n\"Vottun Bridge\": \"2026\/04\/Vottun-1.png\",\n\"Portal DEX\": \"2026\/10\/newportaldexlogo.png\",\n\"qswap\": \"2026\/04\/qswap-1.webp\",\n\"Qubic Trade\": \"2026\/04\/Qubictrade-3.png\",\n\"QXBoard\": \"2026\/04\/QXB2-1.webp\",\n\"QuHub\": \"2026\/04\/quhub-1.png\",\n\"Qubic Swap\": \"2026\/04\/qubicswap-1.png\",\n\"CoinGecko\": \"2026\/04\/wubiconcoingecko.png\",\n\"QEarn\": \"2026\/04\/qearn2.png\",\n\"qbond\": \"2026\/04\/qbond-2.png\",\n\"Qubic Capital\": \"2026\/04\/QCaplight-1.png\",\n\"Nostromo\": \"2026\/04\/nostromo.png\",\n\"Qubic ICO Portal\": \"2026\/04\/qip-09-2.png\",\n\"Qubic Bay\": \"2026\/04\/Qubic-Bay-1.png\",\n\"My Last Match\": \"2026\/04\/mlm-2.png\",\n\"QDraws\": \"https:\/\/framerusercontent.com\/images\/zxlBFisaQYWe7GX8bl1sI7EQsc.png?width=300&height=300\",\n\"Random Lottery\": \"2026\/04\/qubicRL-1.png\",\n\"QRaffle\": \"2026\/04\/qraffle-1.png\",\n\"Quottery\": \"2026\/04\/quottery.png\",\n\"QZN Arcade\": \"2026\/04\/qzn.png\",\n\"Wolf Pack\": \"2026\/05\/wpblackanim-4.gif\",\n\"qDoge\": \"2026\/04\/qDoge-2.png\",\n\"Garth\": \"2026\/04\/Garth.png\",\n\"QXMR\": \"2026\/04\/VEh8O9j9Zgfb7RmSvawcHN0eSM.avif\",\n\"Matilda\": \"2026\/04\/h0yc5xlKyzaPrZaB49O6SkVFOY.avif\",\n\"Coded\": \"2026\/04\/coded.png\",\n\"CFB\": \"2026\/04\/AF4DQjcRyRJz2JWZsw9AKjwKl3o.avif\",\n\"How to mine\": \"2026\/04\/Qacademy.webp\",\n\"Start mining\": \"2026\/04\/qubic-mining.png\",\n\"Qmine\": \"2026\/04\/qmine-3.png\",\n\"Jetski Pool\": \"2026\/04\/Jetski.png\",\n\"Apool\": \"2026\/04\/apool.png\",\n\"Minerlab Pool\": \"2026\/04\/minerlab-1.png\",\n\"QLI Pool\": \"2026\/04\/QLI.png\",\n\"Doge Stats\": \"2026\/04\/qubicdogestats.png\",\n\"Doge Qubic Tools\": \"2026\/04\/dqt.png\",\n\"Qubic Explorer\": \"2026\/04\/Screenshot-2026-04-25-095059-3.png\",\n\"Proposals\": \"2026\/04\/qproposals.png\",\n\"Community voting\": \"2026\/04\/qvoting.png\",\n\"QFront\": \"2026\/04\/Qfront.png\",\n\"Contract reserves\": \"2026\/04\/Qfront-SCreserves.png\",\n\"Contract IPO auctions\": \"2026\/04\/qubicauctions.png\",\n\"IPO bid history\": \"2026\/04\/IPOHistory.png\",\n\"Contract dividends\": \"2026\/04\/qdividends.png\",\n\"Whale Alert Bot\": \"2026\/04\/Whalewatcher.png\",\n\"Qubic Name Service\": \"2026\/04\/QNS-1.png\",\n\"Qubic Guardian\": \"2026\/04\/Qguardian.png\",\n\"QubiPy\": \"2026\/04\/qubiPY.png\",\n\"Qubic Core Bob\": \"2026\/04\/Bob-1.png\",\n\"Neuraxon on GitHub\": \"2026\/05\/NeuraxononGithub-1.png\",\n\"Neuraxon paper\": \"2026\/04\/Neuraxon.png\",\n\"Qubic AGI Journey\": \"2026\/04\/AGIResearch.png\",\n\"Neuraxon demos\": \"2026\/05\/neuraxon-Info.png\",\n\"The AntHill\": \"2026\/04\/anthill-1.png\",\n\"Neuraxon Intelligence Academy\": \"2026\/05\/neuraxon-1.png\",\n\"Qubic\": \"https:\/\/pbs.twimg.com\/profile_images\/1955219973753720832\/mcLoBRaZ_400x400.jpg\",\n\"Come-from-Beyond\": \"https:\/\/pbs.twimg.com\/profile_images\/956595678813270017\/fYVjtfeG_400x400.jpg\",\n\"David Vivancos\": \"2026\/05\/Vivancos.png\",\n\"Jose S\u00e1nchez\": \"2026\/05\/Sanchez.png\",\n\"AIGarth_AI\": \"https:\/\/pbs.twimg.com\/profile_images\/2043089767454445568\/qLnJsz3n_400x400.jpg\",\n\"Qubic Church\": \"2026\/04\/Qchurch-1.png\",\n\"QubicChurch\": \"https:\/\/pbs.twimg.com\/profile_images\/1991253604213399552\/wKl-Tj4o_400x400.jpg\",\n\"HelloQubic\": \"https:\/\/pbs.twimg.com\/profile_images\/2038407925543190528\/qdWN4sBG_400x400.png\",\n\"SatoshiCFB\": \"https:\/\/pbs.twimg.com\/profile_images\/1879504996514795521\/24Zy8XkI_400x400.jpg\",\n\"Milly Crypto\": \"https:\/\/pbs.twimg.com\/profile_images\/1848493331883433984\/YoWzlcb-_400x400.jpg\",\n\"elitebreedss\": \"https:\/\/pbs.twimg.com\/profile_images\/1910233875600592896\/WV_Md1k__400x400.jpg\",\n\"Rudy Nakamoto\": \"https:\/\/pbs.twimg.com\/profile_images\/2054645214933880832\/pIl7VpI9_400x400.jpg\",\n\"ThatsNotMyCode\": \"https:\/\/pbs.twimg.com\/profile_images\/1749813818929352704\/GR-rCxLu_400x400.jpg\",\n\"RaZiaH_Q\": \"https:\/\/pbs.twimg.com\/profile_images\/1913254473662709760\/UW9gNQmL_400x400.jpg\",\n\"Josef Rakich\": \"https:\/\/pbs.twimg.com\/profile_images\/2049378044566249472\/VIH5Bumj_400x400.jpg\",\n\"Marie Kate\": \"https:\/\/pbs.twimg.com\/profile_images\/1840630849609383936\/AKPQhlXT_400x400.jpg\",\n\"The Chosen Chad\": \"https:\/\/pbs.twimg.com\/profile_images\/1897147670042398720\/a9MVZo2K_400x400.jpg\",\n\"TechLife Ledger\": \"https:\/\/pbs.twimg.com\/profile_images\/1918063419363627010\/Gca9npi2_400x400.jpg\",\n\"Zuqka\": \"https:\/\/pbs.twimg.com\/profile_images\/1997710069975138304\/FWz7X3ub_400x400.jpg\",\n\"Andy Qus\": \"https:\/\/pbs.twimg.com\/profile_images\/1832801636047032321\/R0bF52Hz_400x400.jpg\",\n\"Unknown Crypto Journey\": \"https:\/\/pbs.twimg.com\/profile_images\/1915470059704590336\/QeQeWYQG_400x400.jpg\"\n};\nconst imgFor=n=>{const v=IMG[n];return v?(\/^https?:\/.test(v)?v:IMG_BASE+v):null};\nconst logo=(x,cls)=>{const s=imgFor(x.n);return s?`<img class=\"${cls}\" src=\"${esc(s)}\" alt=\"\" loading=\"lazy\" decoding=\"async\">`:\"\"};\ndocument.addEventListener(\"error\",e=>{const t=e.target;if(t.tagName===\"IMG\"&&(t.classList.contains(\"lg\")))t.remove()},true);\n\/* Logo shapes: wide logos get their own row above the title, nothing is cropped *\/\nconst RATIO=new Map(), WIDE=1.3;\nconst shapeAttrs=x=>{const s=imgFor(x.n),r=s&&RATIO.get(s);return r&&r>=WIDE?{cls:\" wide\",style:` style=\"--ar:${r.toFixed(3)}\"`}:{cls:\"\",style:\"\"}};\nfunction applyShape(img){\n  if(!img.naturalWidth||!img.naturalHeight)return;\n  const r=img.naturalWidth\/img.naturalHeight;RATIO.set(img.getAttribute(\"src\"),r);\n  const host=img.closest(\".card,.series summary\");if(!host)return;\n  if(r>=WIDE){host.classList.add(\"wide\");host.style.setProperty(\"--ar\",r.toFixed(3))}\n  else{host.classList.remove(\"wide\");host.style.removeProperty(\"--ar\")}\n}\ndocument.addEventListener(\"load\",e=>{const t=e.target;if(t.tagName===\"IMG\"&&t.classList.contains(\"lg\")&&root.contains(t))applyShape(t)},true);\n\nconst esc=s=>String(s).replace(\/[&<>\"]\/g,m=>({\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\"}[m]));\nconst stageOf=id=>STAGES.find(s=>s.id===id);\nconst catColor=c=>`var(${stageOf(CATS.find(x=>x.id===c).stage).color})`;\nconst host=u=>{try{return new URL(u).hostname.replace(\/^www\\.\/,\"\")}catch(e){return u}};\nconst initials=n=>{const w=n.replace(\/[^A-Za-z0-9 ]\/g,\" \").trim().split(\/\\s+\/);return (w.length>1?w[0][0]+w[1][0]:w[0].slice(0,2)).replace(\/^.\/,c=>c.toUpperCase())};\nconst OFF='<span class=\"off\"><svg viewBox=\"0 0 12 12\" aria-hidden=\"true\"><path d=\"M2.5 6.2 5 8.5l4.5-5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/><\/svg>Official<\/span>';\nlet state={q:\"\",src:\"all\"};\n\nfunction matches(x){\n  if(state.src===\"official\"&&!x.o)return false;\n  if(state.src===\"community\"&&x.o)return false;\n  if(!state.q)return true;\n  const cat=CATS.find(c=>c.id===x.c);\n  const hay=[x.n,x.d,x.h,x.k,x.u&&host(x.u),cat.name,(x.eps||[]).map(e=>e[0]).join(\" \")].join(\" \").toLowerCase();\n  return state.q.split(\/\\s+\/).every(t=>hay.includes(t));\n}\nfunction card(x){\n  if(x.series){\n    const eps=x.eps.map((e,i)=>`<li><a href=\"${esc(e[1])}\" target=\"_blank\" rel=\"noopener\"><b>${i+1}<\/b>${esc(e[0])}<\/a><\/li>`).join(\"\");\n    const sh=shapeAttrs(x);return `<details class=\"series\"${state.q?\" open\":\"\"}><summary class=\"${sh.cls.trim()}\"${sh.style}><div class=\"mono\">NI${logo(x,\"lg\")}<\/div><div><div class=\"nm\">${esc(x.n)} ${x.o?OFF:\"\"}<\/div><div class=\"ds\">${esc(x.d)}<\/div><\/div><svg class=\"chev\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"\/><\/svg><\/summary><ol>${eps}<\/ol><\/details>`;\n  }\n  const sh=shapeAttrs(x);return `<a class=\"card${x.feat&&!state.q?\" feat\":\"\"}${sh.cls}\"${sh.style} href=\"${esc(x.u)}\" target=\"_blank\" rel=\"noopener\"><div class=\"mono\">${esc(initials(x.n))}${logo(x,\"lg\")}<\/div><div><div class=\"nm\">${esc(x.n)} ${x.o?OFF:\"\"}<\/div><div class=\"ds\">${esc(x.d)}<\/div><div class=\"dm\">${esc(host(x.u))}<\/div><\/div><\/a>`;\n}\nfunction person(x){\n  return `<a class=\"person\" href=\"${esc(x.u)}\" target=\"_blank\" rel=\"noopener\"><span class=\"av\">${esc(initials(x.n))}${logo(x,\"lg\")}<\/span>${esc(x.n)} <em>${x.h.includes(\".\")?esc(x.h):\"@\"+esc(x.h)}<\/em><\/a>`;\n}\nfunction render(){\n  let html=\"\",total=0,lastStage=null;const visible=[];\n  for(const c of CATS){\n    const items=L.filter(x=>x.c===c.id&&matches(x));\n    if(!items.length)continue;\n    visible.push(c.id);\n    total+=items.reduce((a,x)=>a+(x.eps?x.eps.length:1),0);\n    const st=stageOf(c.stage);\n    if(st.id!==lastStage){html+=`<div class=\"stagehead\" style=\"--sc:var(${st.color})\"><h2>${esc(st.name)}<\/h2><\/div>`;lastStage=st.id}\n    let body=\"\";\n    const groups=c.people?[\"Official\",\"Researchers\",\"Community\"]:c.groups;\n    if(groups){\n      for(const g of groups){const gi=items.filter(x=>x.k===g);if(!gi.length)continue;\n        const lbl=c.people?g:{Guide:\"Get started\",Pool:\"Pools\",Stats:\"Dashboards\"}[g];\n        body+=`<h4 class=\"sub\">${lbl}<\/h4>`+(c.people?`<div class=\"people\">${gi.map(person).join(\"\")}<\/div>`:`<div class=\"grid\">${gi.map(card).join(\"\")}<\/div>`);\n      }\n    } else body=`<div class=\"grid\">${items.map(card).join(\"\")}<\/div>`;\n    html+=`<section class=\"cat\" id=\"qpd-${c.id}\" style=\"--sc:${catColor(c.id)}\"><header><h3>${esc(c.name)}<\/h3><p>${esc(c.desc)}<\/p><\/header>${body}<\/section>`;\n  }\n  $(\"#qpd-dir\").innerHTML=html;\n  root.querySelectorAll(\"#qpd-dir img.lg\").forEach(i=>{if(i.complete)applyShape(i)});\n  $(\"#qpd-empty\").classList.toggle(\"hidden\",total>0);\n  $(\"#qpd-count\").textContent=total+(total===1?\" link\":\" links\");\n  root.querySelectorAll(\"[data-cat]\").forEach(a=>a.classList.toggle(\"hidden\",!visible.includes(a.dataset.cat)));\n  observe();\n}\nfunction buildNav(){\n  $(\"#qpd-journey\").innerHTML=STAGES.map((s,i)=>{\n    const first=CATS.find(c=>c.stage===s.id);\n    return `<a class=\"stage\" href=\"#qpd-${first.id}\" style=\"--sc:var(${s.color})\"><span class=\"dot\">${i+1}<\/span><b>${esc(s.name)}<\/b><small>${esc(s.blurb)}<\/small><\/a>`}).join(\"\");\n  let side=\"\";\n  for(const s of STAGES){\n    side+=`<h3 style=\"--sc:var(${s.color})\"><i><\/i>${esc(s.name)}<\/h3>`;\n    for(const c of CATS.filter(c=>c.stage===s.id)){\n      const n=L.filter(x=>x.c===c.id).reduce((a,x)=>a+(x.eps?x.eps.length:1),0);\n      side+=`<a href=\"#qpd-${c.id}\" data-cat=\"${c.id}\" style=\"--sc:var(${s.color})\">${esc(c.name)}<span>${n}<\/span><\/a>`;\n    }\n  }\n  side+=`<h3 style=\"--sc:var(--accent)\"><i><\/i>Overview<\/h3><a href=\"#qpd-map\">Ecosystem map<span><\/span><\/a>`;\n  $(\"#qpd-side\").innerHTML=side;\n  $(\"#qpd-chips\").innerHTML=CATS.map(c=>`<a href=\"#qpd-${c.id}\" data-cat=\"${c.id}\" style=\"--sc:${catColor(c.id)}\">${esc(c.name)}<\/a>`).join(\"\");\n}\nlet io;\nfunction observe(){\n  if(io)io.disconnect();\n  io=new IntersectionObserver(es=>{es.forEach(e=>{if(e.isIntersecting){\n    root.querySelectorAll(\"[data-cat]\").forEach(a=>a.classList.toggle(\"on\",a.dataset.cat===e.target.id.slice(4)));\n    const chip=root.querySelector(`#qpd-chips [data-cat=\"${e.target.id.slice(4)}\"]`);\n    if(chip&&getComputedStyle($(\"#qpd-chips\")).display!==\"none\")chip.scrollIntoView({block:\"nearest\",inline:\"center\"});\n  }})},{rootMargin:\"-30% 0px -60% 0px\"});\n  root.querySelectorAll(\"section.cat\").forEach(s=>io.observe(s));\n}\n\nbuildNav();render();\nlet t;$(\"#qpd-q\").addEventListener(\"input\",e=>{clearTimeout(t);t=setTimeout(()=>{state.q=e.target.value.trim().toLowerCase();render()},90)});\nroot.querySelectorAll(\".seg button\").forEach(b=>b.addEventListener(\"click\",()=>{\n  state.src=b.dataset.src;root.querySelectorAll(\".seg button\").forEach(x=>x.setAttribute(\"aria-pressed\",x===b));render()}));\n$(\"#qpd-reset\").addEventListener(\"click\",()=>{$(\"#qpd-q\").value=\"\";state={q:\"\",src:\"all\"};root.querySelectorAll(\".seg button\").forEach(x=>x.setAttribute(\"aria-pressed\",x.dataset.src===\"all\"));render()});\ndocument.addEventListener(\"keydown\",e=>{\n  const ae=document.activeElement;if(e.key===\"\/\"&&!(ae&&(\/^(INPUT|TEXTAREA|SELECT)$\/.test(ae.tagName)||ae.isContentEditable))){e.preventDefault();$(\"#qpd-q\").focus()}\n  if(e.key===\"Escape\"&&document.activeElement===$(\"#qpd-q\")){$(\"#qpd-q\").value=\"\";state.q=\"\";render();$(\"#qpd-q\").blur()}\n});\n\n\n\/\/ ===== Ecosystem mind map =====\n(function(){\n  const NS=\"http:\/\/www.w3.org\/2000\/svg\",svg=$(\"#qpd-mm\"),box=$(\"#qpd-mapbox\");\n  const el=(t,a={},p)=>{const e=document.createElementNS(NS,t);for(const k in a)e.setAttribute(k,a[k]);if(p)p.appendChild(e);return e};\n  const txt=(p,s,a)=>{const t=el(\"text\",a,p);t.textContent=s;return t};\n  const rm=matchMedia(\"(prefers-reduced-motion: reduce)\");\n  const leavesOf=c=>{const out=[];L.filter(x=>x.c===c.id).forEach(x=>{if(x.eps)x.eps.forEach((e,i)=>out.push({n:`Neuraxon ${i+1}: ${e[0]}`,u:e[1]}));else out.push({n:x.n,u:x.u})});return out};\n  let mode=null,M=null,focused=null,cur=null,anim,lastW=0;\n\n  function build(){\n    mode=box.clientWidth<640?\"tree\":\"radial\";\n    box.classList.toggle(\"tree\",mode===\"tree\");\n    svg.innerHTML=\"\";cur=null;\n    const T=mode===\"tree\";\n    const core=el(\"g\",{},svg),edges=el(\"g\",{},core),nodes=el(\"g\",{},core),leafLayer=el(\"g\",{},svg);\n    M={core,dimmables:[],cats:{}};\n    \/\/ positions\n    const C={x:0,y:0},S={},P={};\n    if(!T){\n      const N=CATS.length;\n      CATS.forEach((c,i)=>{const a=-Math.PI\/2+i*2*Math.PI\/N;P[c.id]={a,x:Math.cos(a)*345,y:Math.sin(a)*345}});\n      STAGES.forEach(s=>{const cs=CATS.filter(c=>c.stage===s.id),a=cs.reduce((t,c)=>t+P[c.id].a,0)\/cs.length;S[s.id]={a,x:Math.cos(a)*175,y:Math.sin(a)*175}});\n    }else{\n      let y=0;\n      STAGES.forEach(s=>{y+=58;S[s.id]={x:44,y};CATS.filter(c=>c.stage===s.id).forEach(c=>{y+=46;P[c.id]={x:96,y}})});\n    }\n    const link=(a,b,r)=>{\n      if(!T){const ang=Math.atan2(b.y,b.x),cx=Math.cos(ang)*r,cy=Math.sin(ang)*r;return `M${a.x} ${a.y} Q${cx} ${cy} ${b.x} ${b.y}`}\n      return `M${a.x} ${a.y} V${b.y-14} Q${a.x} ${b.y} ${a.x+14} ${b.y} H${b.x}`};\n    \/\/ center\n    const ctr=el(\"g\",{class:\"mm-node\",style:\"--sc:var(--focus)\"},nodes);M.dimmables.push(ctr);\n    if(!T){el(\"circle\",{r:62,\"stroke-width\":4},ctr);el(\"circle\",{r:12,class:\"inner\"},ctr);txt(ctr,\"qubic\",{y:38,\"text-anchor\":\"middle\",\"font-size\":17})}\n    else{el(\"circle\",{r:20,\"stroke-width\":3.5},ctr);el(\"circle\",{r:7,class:\"inner\"},ctr);txt(ctr,\"Qubic ecosystem\",{x:32,y:7,\"font-size\":21})}\n    \/\/ stages\n    STAGES.forEach(s=>{\n      const p=S[s.id],sc=`var(${s.color})`;\n      const e=el(\"path\",{d:link(T?{x:0,y:20}:C,p,87),class:\"mm-edge\",style:`--sc:${sc};stroke-width:3`},edges);\n      const g=el(\"g\",{class:\"mm-node\",transform:`translate(${p.x} ${p.y})`,style:`--sc:${sc}`},nodes);\n      M.dimmables.push(e,g);\n      if(!T){el(\"circle\",{r:50},g);const w=s.name.split(\" \");w.forEach((x,i)=>txt(g,x,{\"text-anchor\":\"middle\",y:(i-(w.length-1)\/2)*17+5,\"font-size\":15}))}\n      else{el(\"circle\",{r:11,class:\"solid\"},g);txt(g,s.name,{x:22,y:7,\"font-size\":20,class:\"tint\"})}\n    });\n    \/\/ categories + leaves\n    CATS.forEach(c=>{\n      const st=stageOf(c.stage),p=P[c.id],sc=`var(${st.color})`,leaves=leavesOf(c);\n      const e=el(\"path\",{d:link(T?{x:S[c.stage].x,y:S[c.stage].y+11}:S[c.stage],p,260),class:\"mm-edge\",style:`--sc:${sc}`},edges);\n      const g=el(\"g\",{class:\"mm-node mm-cat\",transform:`translate(${p.x} ${p.y})`,style:`--sc:${sc}`,tabindex:0,role:\"button\",\"aria-label\":`${c.name}, ${leaves.length} links`},nodes);\n      const hit=el(\"circle\",{class:\"hit\",r:T?22:34},g);\n      const rr=T?17:30;el(\"circle\",{r:rr},g);\n      txt(g,leaves.length,{\"text-anchor\":\"middle\",y:T?5:6,\"font-size\":T?14:17});\n      let lbl,lblEnd;\n      if(!T){const cs=Math.cos(p.a),sn=Math.sin(p.a),anc=cs>.3?\"start\":cs<-.3?\"end\":\"middle\";\n        lbl=txt(g,c.name,{class:\"lbl\",x:(cs*44).toFixed(1),y:(sn*44+(Math.abs(cs)<=.3?(sn>0?14:-4):5)).toFixed(1),\"text-anchor\":anc,\"font-size\":17})}\n      else{lbl=txt(g,c.name,{class:\"lbl\",x:28,y:6,\"font-size\":18});lblEnd=28+lbl.getComputedTextLength();\n        el(\"rect\",{class:\"hit\",x:-22,y:-22,width:lblEnd+34,height:44},g).parentNode.insertBefore(g.lastChild,g.firstChild)}\n      const go=ev=>{ev.stopPropagation();focus(c.id)};\n      g.addEventListener(\"click\",go);\n      g.addEventListener(\"keydown\",ev=>{if(ev.key===\"Enter\"||ev.key===\" \"){ev.preventDefault();go(ev)}});\n      M.dimmables.push(e);\n      \/\/ leaves\n      const lg=el(\"g\",{class:\"mm-leaves\",style:`--sc:${sc}`},leafLayer);\n      el(\"circle\",{cx:p.x,cy:p.y,r:rr+4,fill:\"none\",stroke:\"none\"},lg);\n      if(!T){\n        const R=Math.max(150,Math.min(275,leaves.length*13)),span=Math.PI*1.65,start=p.a-span\/2;\n        leaves.forEach((lf,i)=>{\n          const a=leaves.length===1?p.a:start+span*i\/(leaves.length-1),x=p.x+Math.cos(a)*R,y=p.y+Math.sin(a)*R,cs=Math.cos(a);\n          el(\"line\",{x1:p.x+Math.cos(a)*(rr+3),y1:p.y+Math.sin(a)*(rr+3),x2:x,y2:y,class:\"mm-leaf-edge\"},lg);\n          const A=el(\"a\",{href:lf.u,target:\"_blank\",rel:\"noopener\",class:\"mm-leaf\",tabindex:-1},lg);\n          el(\"circle\",{cx:x,cy:y,r:6.5},A);\n          const anc=cs>.15?\"start\":cs<-.15?\"end\":\"middle\",off=anc===\"middle\"?0:(cs>0?13:-13),ty=anc===\"middle\"?(Math.sin(a)>0?25:-14):5;\n          txt(A,lf.n,{x:(x+off).toFixed(1),y:(y+ty).toFixed(1),\"text-anchor\":anc,\"font-size\":15});\n        });\n      }else{\n        const lx=p.x+44,gap=40,y0=p.y+46;\n        leaves.forEach((lf,i)=>{\n          const y=y0+i*gap;\n          el(\"path\",{d:`M${p.x} ${p.y+rr} V${y-12} Q${p.x} ${y} ${p.x+12} ${y} H${lx}`,class:\"mm-leaf-edge\"},lg);\n          const A=el(\"a\",{href:lf.u,target:\"_blank\",rel:\"noopener\",class:\"mm-leaf\",tabindex:-1},lg);\n          el(\"circle\",{cx:lx,cy:y,r:6},A);\n          txt(A,lf.n,{x:lx+14,y:y+6,\"font-size\":18});\n        });\n      }\n      M.cats[c.id]={g,e,lg};\n    });\n  }\n\n  function fit(b){\n    const pad=.06,W=box.clientWidth;\n    let w=b.width*(1+pad*2),h=b.height*(1+pad*2),cx=b.x+b.width\/2,cy=b.y+b.height\/2;\n    if(mode===\"tree\"){\n      const H=Math.max(360,Math.min(1600,W*h\/w));\n      box.style.height=(H+52)+\"px\";\n      return [cx-w\/2,cy-h\/2,w,h];\n    }\n    box.style.height=\"\";\n    const A=W\/box.clientHeight;\n    if(focused){w=Math.max(w,760);h=Math.max(h,480)}\n    if(w\/h>A)h=w\/A;else w=h*A;\n    return [cx-w\/2,cy-h\/2,w,h];\n  }\n  const target=()=>focused?M.cats[focused].lg.getBBox():M.core.getBBox();\n  function setVB(v){cur=v;svg.setAttribute(\"viewBox\",v.map(n=>n.toFixed(1)).join(\" \"))}\n  function go(v){cancelAnimationFrame(anim);\n    if(!cur||rm.matches){setVB(v);return}\n    const from=cur.slice(),t0=performance.now(),D=480;\n    const step=t=>{const k=Math.min(1,(t-t0)\/D),e=1-Math.pow(1-k,3);setVB(from.map((f,i)=>f+(v[i]-f)*e));if(k<1)anim=requestAnimationFrame(step)};\n    anim=requestAnimationFrame(step)}\n  function paint(){\n    const cls=mode===\"tree\"?\"gone\":\"dim\";M.dimmables.forEach(d=>{d.classList.remove(\"dim\",\"gone\");if(focused)d.classList.add(cls)});\n    for(const id in M.cats){const m=M.cats[id],on=id===focused;\n      m.lg.classList.toggle(\"on\",on);m.g.classList.remove(\"dim\",\"gone\");if(focused&&!on)m.g.classList.add(cls);m.g.classList.toggle(\"hidelbl\",on&&mode===\"radial\");\n      m.lg.querySelectorAll(\"a\").forEach(a=>a.setAttribute(\"tabindex\",on?0:-1))}\n    const c=CATS.find(x=>x.id===focused);\n    $(\"#qpd-mmBack\").classList.toggle(\"hidden\",!focused);\n    $(\"#qpd-mmCrumb\").textContent=c?c.name:\"\";\n    if(c)$(\"#qpd-mmCrumb\").style.setProperty(\"--sc\",`var(${stageOf(c.stage).color})`);\n    $(\"#qpd-mmHint\").textContent=focused?\"Select a link to open it\":\"Select a category to explore\";\n  }\n  function focus(id){focused=id;paint();go(fit(target()))}\n  function overview(){const id=focused;focused=null;paint();go(fit(target()));return id}\n  svg.addEventListener(\"click\",e=>{if(focused&&!e.target.closest(\"a\"))overview()});\n  $(\"#qpd-mmBack\").addEventListener(\"click\",()=>{const id=overview();if(id)M.cats[id].g.focus({preventScroll:true})});\n  box.addEventListener(\"keydown\",e=>{if(e.key===\"Escape\"&&focused){const id=overview();M.cats[id].g.focus({preventScroll:true})}});\n  new ResizeObserver(()=>{const W=box.clientWidth;if(!W||W===lastW)return;lastW=W;\n    const want=W<640?\"tree\":\"radial\";if(want!==mode){build();paint()}\n    setVB(fit(target()))}).observe(box);\n  document.fonts&&document.fonts.ready.then(()=>{if(mode===\"tree\"){build();paint();setVB(fit(target()))}});\n  build();paint();setVB(fit(target()));\n})();\n\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Everything on Qubic, in one place. A curated directory of wallets, exchanges, mining pools, games, research and the people behind the network. Pick where [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-custom.php","meta":{"_acf_changed":false,"footnotes":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-840","page","type-page","status-publish","hentry"],"acf":{"choi\u0441e_menu_page":"global_settings","full_width":false,"header_transparent":false,"header_white":false,"menu_align_page":"default","menu_style":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>- qubicportal.org<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/qubicportal.org\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"- qubicportal.org\" \/>\n<meta property=\"og:description\" content=\"Everything on Qubic, in one place. A curated directory of wallets, exchanges, mining pools, games, research and the people behind the network. Pick where [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/qubicportal.org\/\" \/>\n<meta property=\"og:site_name\" content=\"qubicportal.org\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-02T02:36:05+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"23 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/qubicportal.org\\\/\",\"url\":\"https:\\\/\\\/qubicportal.org\\\/\",\"name\":\"- qubicportal.org\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/qubicportal.org\\\/#website\"},\"datePublished\":\"2026-10-02T01:27:55+00:00\",\"dateModified\":\"2026-10-02T02:36:05+00:00\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/qubicportal.org\\\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/qubicportal.org\\\/#website\",\"url\":\"https:\\\/\\\/qubicportal.org\\\/\",\"name\":\"qubicportal.org\",\"description\":\"the gateway to the qubic ecosystem\",\"publisher\":{\"@id\":\"https:\\\/\\\/qubicportal.org\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/qubicportal.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/qubicportal.org\\\/#organization\",\"name\":\"qubicportal.org\",\"url\":\"https:\\\/\\\/qubicportal.org\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/qubicportal.org\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/qubicportal.org\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/newclearQP-ezgif.com-gif-maker-1.png\",\"contentUrl\":\"https:\\\/\\\/qubicportal.org\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/newclearQP-ezgif.com-gif-maker-1.png\",\"width\":824,\"height\":190,\"caption\":\"qubicportal.org\"},\"image\":{\"@id\":\"https:\\\/\\\/qubicportal.org\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"- qubicportal.org","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/qubicportal.org\/","og_locale":"en_US","og_type":"article","og_title":"- qubicportal.org","og_description":"Everything on Qubic, in one place. A curated directory of wallets, exchanges, mining pools, games, research and the people behind the network. Pick where [&hellip;]","og_url":"https:\/\/qubicportal.org\/","og_site_name":"qubicportal.org","article_modified_time":"2026-10-02T02:36:05+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"23 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/qubicportal.org\/","url":"https:\/\/qubicportal.org\/","name":"- qubicportal.org","isPartOf":{"@id":"https:\/\/qubicportal.org\/#website"},"datePublished":"2026-10-02T01:27:55+00:00","dateModified":"2026-10-02T02:36:05+00:00","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/qubicportal.org\/"]}]},{"@type":"WebSite","@id":"https:\/\/qubicportal.org\/#website","url":"https:\/\/qubicportal.org\/","name":"qubicportal.org","description":"the gateway to the qubic ecosystem","publisher":{"@id":"https:\/\/qubicportal.org\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/qubicportal.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/qubicportal.org\/#organization","name":"qubicportal.org","url":"https:\/\/qubicportal.org\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/qubicportal.org\/#\/schema\/logo\/image\/","url":"https:\/\/qubicportal.org\/wp-content\/uploads\/2026\/04\/newclearQP-ezgif.com-gif-maker-1.png","contentUrl":"https:\/\/qubicportal.org\/wp-content\/uploads\/2026\/04\/newclearQP-ezgif.com-gif-maker-1.png","width":824,"height":190,"caption":"qubicportal.org"},"image":{"@id":"https:\/\/qubicportal.org\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/qubicportal.org\/index.php?rest_route=\/wp\/v2\/pages\/840","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qubicportal.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/qubicportal.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/qubicportal.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qubicportal.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=840"}],"version-history":[{"count":5,"href":"https:\/\/qubicportal.org\/index.php?rest_route=\/wp\/v2\/pages\/840\/revisions"}],"predecessor-version":[{"id":885,"href":"https:\/\/qubicportal.org\/index.php?rest_route=\/wp\/v2\/pages\/840\/revisions\/885"}],"wp:attachment":[{"href":"https:\/\/qubicportal.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}