/* MemeHash Theme: TRIPPY
   Standalone merged theme generated from styles.css + trippy.css + hit-celebration.css + rig-ui-hotfix.css.
   Add additional complete .css theme files beside this file; the build manifest discovers them automatically. */

@import url("https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500;600;700&family=Geist+Pixel&display=swap");

:root {
  color-scheme: dark;
  --font-pixel: "Geist Pixel", "Geist", system-ui, sans-serif;
  --font-body: "Geist", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: "Geist Mono", "SFMono-Regular", Menlo, Monaco, Consolas, monospace;
  font-family: var(--font-pixel);
  color: #f3f7f4;
  background: #090c0b;
  font-synthesis: none;
  --bg: #0c0017;
  --surface: #160424;
  --surface-2: #1e0731;
  --surface-3: #290b43;
  --line: #4b176a;
  --line-bright: #76259d;
  --text: #fff8ff;
  --muted: #c0a0cd;
  --faint: #856594;
  --accent: #00e7ff;
  --accent-strong: #00f1ff;
  --accent-ink: #090013;
  --magenta: #ff00d4;
  --yellow: #fff238;
  --danger: #ff3d9f;
  --radius: 20px;
  --radius-sm: 12px;
  --shadow: 0 0 0 1px rgba(255, 0, 212, .08), 0 20px 55px rgba(0, 0, 0, .42);
}

* { box-sizing: border-box; }
html { min-width: 320px; scroll-behavior: auto; }
body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 50% -30%, #1b271f 0, transparent 42%), var(--bg); color: var(--text); }
body::before { content: ""; position: fixed; inset: 0; pointer-events: none; opacity: .16; background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(to bottom, #000, transparent 70%); }
[hidden] { display: none !important; }
button, input, select, textarea { font: inherit; }
button, select, input { min-height: 42px; }
button { color: inherit; cursor: pointer; border: 0; }
button:disabled { opacity: .42; cursor: not-allowed; filter: saturate(.35); }
a { color: inherit; }
em, i { font-style: normal; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

.topbar { position: sticky; top: 0; z-index: 50; height: 74px; display: flex; align-items: center; gap: 22px; padding: 0 max(20px, calc((100vw - 1180px) / 2)); border-bottom: 1px solid rgba(255,255,255,.07); background: rgba(9,12,11,.86); backdrop-filter: blur(18px); }
.brand { display: flex; align-items: center; gap: 12px; margin-right: auto; text-decoration: none; }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; color: var(--accent-ink); background: var(--accent); font-size: 25px; font-weight: 900; box-shadow: 0 0 30px rgba(184,245,109,.12); transform: rotate(-3deg); }
.brand > span:last-child { display: grid; gap: 1px; }
.brand strong { font-size: 16px; letter-spacing: .045em; }
.brand strong span { color: var(--accent); }
.brand small { color: var(--muted); font-size: 10px; }
.epoch-pill { display: flex; align-items: center; gap: 9px; min-height: 38px; padding: 0 13px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 12px; background: rgba(255,255,255,.025); }
.epoch-pill b { color: var(--text); }
.epoch-pill > strong { padding-left: 9px; border-left: 1px solid var(--line); color: var(--accent); font-variant-numeric: tabular-nums; }
.live-dot, .network-dot, #engineState span { width: 7px; height: 7px; display: inline-block; flex: 0 0 auto; border-radius: 50%; background: #5a625e; box-shadow: 0 0 0 3px rgba(90,98,94,.13); }
.live-dot, .network-dot.live, .state-pill.running span { background: var(--accent-strong); box-shadow: 0 0 0 3px rgba(142,232,63,.12), 0 0 12px rgba(142,232,63,.45); }
.wallet-actions { position: relative; display: flex; gap: 7px; }
.wallet-button { min-height: 42px; display: flex; align-items: center; gap: 9px; padding: 0 15px; border: 1px solid var(--line-bright); border-radius: var(--radius-sm); background: var(--surface-2); font-size: 11px; letter-spacing: .035em; }
.wallet-button:hover { border-color: #53625a; background: var(--surface-3); }
.icon-button { width: 42px; display: grid; place-content: center; gap: 4px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: transparent; }
.icon-button span { width: 16px; height: 1.5px; display: block; border-radius: 2px; background: var(--muted); transition: transform .18s, opacity .18s; }
.icon-button.open span:first-child { transform: translateY(5.5px) rotate(45deg); }
.icon-button.open span:nth-child(2) { opacity: 0; }
.icon-button.open span:last-child { transform: translateY(-5.5px) rotate(-45deg); }
.menu-popover { position: absolute; right: 0; top: calc(100% + 9px); z-index: 80; width: 260px; padding: 12px; border: 1px solid var(--line-bright); border-radius: 16px; background: #151a18; box-shadow: 0 24px 70px rgba(0,0,0,.5); }
.menu-popover > * + * { margin-top: 8px; }
.menu-popover button { width: 100%; border-radius: 10px; padding: 10px 12px; background: var(--accent); color: var(--accent-ink); font-size: 12px; font-weight: 800; }
.menu-popover .button-quiet { background: var(--surface-3); color: var(--text); }
.menu-wallet { display: grid; gap: 5px; padding: 8px 8px 12px; overflow-wrap: anywhere; }
.menu-wallet small { color: var(--muted); font-size: 9px; letter-spacing: .1em; }
.menu-wallet strong { font-size: 12px; }

.tabs { position: sticky; top: 74px; z-index: 40; display: flex; justify-content: center; gap: 4px; padding: 10px 16px; border-bottom: 1px solid rgba(255,255,255,.055); background: rgba(9,12,11,.86); backdrop-filter: blur(18px); }
.tab { min-width: 112px; min-height: 40px; padding: 0 15px; border-radius: 11px; color: var(--muted); background: transparent; font-size: 13px; font-weight: 650; text-align: left; transition: color .18s, background .18s; }
.tab span { margin-right: 8px; color: var(--faint); font-size: 9px; letter-spacing: .08em; }
.tab:hover { color: var(--text); background: rgba(255,255,255,.035); }
.tab.is-active { color: var(--text); background: var(--surface-3); box-shadow: inset 0 0 0 1px var(--line); }
.tab.is-active span { color: var(--accent); }

.app-shell { position: relative; width: min(1180px, calc(100% - 32px)); min-height: calc(100vh - 210px); margin: 0 auto; padding: 44px 0 60px; }
.view { animation: view-in .24s ease-out; }
@keyframes view-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.view-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin: 0 2px 26px; }
.view-heading h1 { margin: 5px 0 6px; font-size: clamp(28px, 4vw, 42px); line-height: 1; letter-spacing: -.045em; }
.view-heading p { max-width: 660px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.step-kicker, .overline { color: var(--accent); font-size: 9px; font-weight: 850; letter-spacing: .13em; }
.state-pill { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 12px; border: 1px solid var(--line); border-radius: 999px; color: #b9c2bd; background: var(--surface); font-size: 10px; font-weight: 800; letter-spacing: .06em; }
.state-pill.running, .live-state { color: var(--accent); border-color: rgba(184,245,109,.28); background: rgba(184,245,109,.055); }

.workspace-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(310px, .8fr); gap: 16px; align-items: start; }
.card { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, rgba(255,255,255,.015), transparent 55%), var(--surface); box-shadow: var(--shadow); }
.action-card { padding: 24px; border-color: var(--line-bright); }
.data-card { padding: 20px; background: rgba(17,22,20,.76); box-shadow: none; }
.side-stack { display: grid; gap: 16px; }
.card-label { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 20px; color: #c4cdc8; font-size: 10px; font-weight: 850; letter-spacing: .1em; }
.read-only, .action-badge { padding: 5px 8px; border-radius: 999px; color: var(--faint); background: rgba(255,255,255,.035); font-size: 8px; letter-spacing: .09em; }
.action-badge { color: var(--accent); background: rgba(184,245,109,.075); }
.inline-status { max-width: 65%; color: var(--muted); font-size: 9px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.hashrate-block { display: grid; gap: 8px; padding: 22px 0 20px; }
.hashrate-block > span { color: var(--muted); font-size: 10px; letter-spacing: .08em; }
.hashrate-block > strong { display: flex; align-items: baseline; gap: 10px; min-width: 0; font-size: clamp(50px, 8vw, 82px); line-height: .95; letter-spacing: -.065em; font-variant-numeric: tabular-nums; }
.hashrate-block > strong b { min-width: 0; white-space: nowrap; overflow: visible; text-overflow: clip; flex: 0 1 auto; }
.hashrate-block > strong b.hashrate-wide { font-size: .86em; letter-spacing: -.045em; }
.hashrate-block > strong b.hashrate-xwide { font-size: .72em; letter-spacing: -.03em; }
.hashrate-block > strong em { flex: 0 0 auto; }
.hashrate-block em { color: var(--accent); font-size: 17px; font-weight: 700; letter-spacing: 0; }
.meter { height: 7px; overflow: hidden; border-radius: 99px; background: #202723; }
.meter > span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--accent-strong), var(--accent)); transition: width .2s; }
.accent-meter { height: 4px; margin-top: 9px; }
.key-stats { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--line); }
.key-stats > div { min-width: 0; display: grid; gap: 8px; padding: 14px; background: var(--surface-2); }
.key-stats span, .data-list span, .reward-grid span, .next-target span, .price-rows span, .detail-grid span, .status-card .card-label, .cost-summary span, .sync-status span { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .065em; }
.key-stats strong { overflow-wrap: anywhere; font-size: 16px; font-variant-numeric: tabular-nums; }
.proof-event { margin: 14px 0 0; padding: 12px 14px; display: flex; align-items: baseline; gap: 10px; border: 1px solid rgba(184,245,109,.25); border-radius: 12px; color: var(--accent); background: rgba(184,245,109,.06); }
.proof-event em { margin-left: auto; }
.control-panel { display: grid; grid-template-columns: minmax(120px,1fr) auto; gap: 12px; align-items: center; margin-top: 18px; padding: 16px; border-radius: 15px; background: rgba(0,0,0,.18); }
.control-copy { display: grid; gap: 5px; }
.control-copy span { font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.control-copy small { color: var(--muted); font-size: 9px; }
.segmented { display: flex; padding: 3px; border: 1px solid var(--line); border-radius: 11px; background: #0c100e; }
.segmented button { min-height: 34px; min-width: 62px; padding: 0 13px; border-radius: 8px; color: var(--muted); background: transparent; font-size: 11px; font-weight: 800; }
.segmented button[aria-pressed="true"] { color: var(--accent-ink); background: var(--accent); }
.range-control { grid-column: 1 / -1; display: grid; grid-template-columns: 130px 1fr; align-items: center; gap: 14px; padding-top: 2px; }
.range-control > span { color: var(--muted); font-size: 9px; letter-spacing: .06em; }
.range-control b { color: var(--text); }
input[type="range"] { min-height: 22px; accent-color: var(--accent-strong); }
.gpu-profile-control { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(170px,1fr) auto; gap: 12px; align-items: center; padding-top: 4px; }
.gpu-profile-control[hidden] { display: none !important; }
.gpu-profile-copy { min-width: 0; display: grid; gap: 5px; }
.gpu-profile-copy > span { color: var(--muted); font-family: var(--font-pixel); font-size: 9px; font-weight: 800; letter-spacing: .07em; }
.gpu-profile-copy > small { color: var(--faint); font-size: 8px; line-height: 1.35; letter-spacing: .035em; }
.gpu-profile-copy > small[data-profile="full"] { color: var(--yellow); }
.gpu-profile-segmented button { min-width: 84px; padding-inline: 10px; font-size: 9px; }

.primary-actions { display: grid; grid-template-columns: 1fr auto; gap: 10px; margin-top: 14px; }
.primary-actions button, .button-secondary, .button-primary, .button-danger { min-height: 48px; padding: 0 18px; border-radius: 13px; font-size: 11px; font-weight: 850; letter-spacing: .035em; transition: transform .12s, filter .12s, border-color .12s, background .12s; }
.primary-actions button:not(:disabled):active, .button-secondary:not(:disabled):active { transform: translateY(1px); }
.button-primary { color: var(--accent-ink); background: var(--accent); box-shadow: 0 10px 28px rgba(184,245,109,.08); }
.button-primary:hover:not(:disabled) { filter: brightness(1.08); }
.button-danger { color: #1c0a08; background: var(--danger); }
.button-secondary, .button-toggle { border: 1px solid var(--line-bright); color: #dce3df; background: var(--surface-3); }
.button-secondary:hover:not(:disabled), .button-toggle:hover:not(:disabled) { border-color: #516057; background: #202925; }
.button-toggle[aria-pressed="true"] { border-color: rgba(184,245,109,.25); color: var(--accent); background: rgba(184,245,109,.055); }
.button-large { min-height: 54px !important; }
.full-width { width: 100%; margin-top: 14px; }
.notice { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); background: rgba(0,0,0,.16); font-size: 9px; line-height: 1.45; letter-spacing: .045em; }
.success-notice { color: var(--accent); border-color: rgba(184,245,109,.22); }

.data-list { display: grid; }
.data-list > div, .price-rows > div { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; border-bottom: 1px solid rgba(255,255,255,.055); }
.data-list > div:last-child, .price-rows > div:last-child { border-bottom: 0; }
.data-list strong, .price-rows strong { text-align: right; overflow-wrap: anywhere; font-size: 12px; }
.reward-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.reward-grid > div { display: grid; gap: 7px; padding: 12px; border-radius: 12px; background: rgba(0,0,0,.17); }
.reward-grid strong { font-size: 18px; }
.reward-grid small { color: var(--muted); font-size: 10px; }
.next-target { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 14px; padding: 13px 0 0; border-top: 1px solid var(--line); }
.next-target strong { color: var(--accent); font-size: 11px; }

.advanced { margin-top: 16px; padding: 0 20px; box-shadow: none; background: rgba(17,22,20,.6); }
summary { cursor: pointer; list-style: none; }
summary::-webkit-details-marker { display: none; }
.advanced > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 58px; font-size: 11px; font-weight: 750; }
.advanced > summary::after, .inline-details summary::after { content: "+"; margin-left: auto; color: var(--accent); font-size: 18px; font-weight: 400; }
.advanced[open] > summary::after, .inline-details[open] summary::after { content: "−"; }
.advanced > summary small { color: var(--muted); font-size: 9px; font-weight: 500; }
.detail-grid { display: grid; gap: 8px; padding: 0 0 18px; }
.detail-grid.five { grid-template-columns: repeat(5,minmax(0,1fr)); }
.detail-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.detail-grid > div { min-width: 0; display: grid; gap: 7px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: rgba(0,0,0,.13); }
.detail-grid strong { overflow-wrap: anywhere; font-size: 12px; }
.manual-control { display: flex; align-items: flex-end; gap: 15px; padding: 0 0 18px; color: var(--muted); font-size: 9px; }
.manual-control label, .field-label { display: grid; gap: 5px; }
select, input[type="number"], input[inputmode="numeric"] { border: 1px solid var(--line-bright); border-radius: 10px; outline: none; color: var(--text); background: #0d110f; padding: 0 12px; }
select:focus, input:focus { border-color: var(--accent-strong); box-shadow: 0 0 0 3px rgba(184,245,109,.08); }

.claim-amount { display: grid; justify-items: start; padding: 20px 0 24px; }
.claim-amount > span { color: var(--muted); font-size: 10px; letter-spacing: .09em; }
.claim-amount strong { margin: 8px 0 1px; max-width: 100%; overflow-wrap: anywhere; font-size: clamp(52px, 10vw, 88px); line-height: .9; letter-spacing: -.07em; }
.claim-amount em { color: var(--accent); font-size: 13px; font-weight: 800; letter-spacing: .08em; }
.cost-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 58px; padding: 0 16px; border: 1px solid var(--line); border-radius: 13px; background: rgba(0,0,0,.17); }
.cost-summary strong { font-size: 14px; }
.two-actions { grid-template-columns: 1fr auto; }
.inline-details { margin-top: 14px; border-top: 1px solid var(--line); }
.inline-details summary { display: flex; align-items: center; min-height: 50px; color: var(--muted); font-size: 10px; font-weight: 700; }
.manual-row { display: grid; grid-template-columns: 44px minmax(100px,160px) 44px; align-items: end; gap: 8px; padding: 0 0 5px; }
.manual-row label { display: grid; gap: 5px; color: var(--muted); font-size: 8px; letter-spacing: .08em; }
.manual-row input { width: 100%; text-align: center; }
.icon-step { min-height: 42px; border: 1px solid var(--line); border-radius: 10px; color: var(--text); background: var(--surface-3); font-size: 18px; }
.info-copy { margin: 16px 0 0; padding-top: 15px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; line-height: 1.65; }
.flow-card { display: flex; align-items: center; gap: 9px; padding: 18px; box-shadow: none; }
.flow-card > div { min-width: 0; display: flex; align-items: center; gap: 8px; }
.flow-card > div > span { width: 25px; height: 25px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid var(--line-bright); border-radius: 50%; color: var(--muted); font-size: 8px; }
.flow-card > div.current > span { border-color: var(--accent); color: var(--accent-ink); background: var(--accent); }
.flow-card p { display: grid; gap: 3px; margin: 0; }
.flow-card strong { font-size: 10px; }
.flow-card small { color: var(--muted); font-size: 8px; white-space: nowrap; }
.flow-card > i { min-width: 8px; height: 1px; flex: 1; background: var(--line-bright); }

.rig-identity-row { display: grid; grid-template-columns: 112px 1fr; gap: 20px; align-items: center; }
.nft-rig { position: relative; width: 112px; aspect-ratio: 1; overflow: hidden; border: 1px solid #35423b; border-radius: 22px; background: radial-gradient(circle at 70% 25%, rgba(184,245,109,.22), transparent 24%), linear-gradient(135deg, #222d27, #0c100e); }
.nft-rig::before { content: "#"; position: absolute; inset: 0; display: grid; place-items: center; color: var(--accent); font-size: 58px; font-weight: 900; transform: rotate(-7deg); text-shadow: 0 0 28px rgba(184,245,109,.25); }
.nft-rig::after { content: attr(data-milestone); position: absolute; right: 8px; bottom: 7px; left: 8px; overflow: hidden; color: rgba(255,255,255,.45); font-size: 7px; letter-spacing: .09em; text-align: center; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.nft-turbo { background: radial-gradient(circle at 70% 25%, rgba(255,181,71,.28), transparent 24%), linear-gradient(135deg, #35291d, #100d0a); }
.nft-neon { background: radial-gradient(circle at 70% 25%, rgba(103,244,255,.25), transparent 24%), linear-gradient(135deg, #173033, #090e10); }
.nft-quantum { background: radial-gradient(circle at 70% 25%, rgba(185,127,255,.3), transparent 24%), linear-gradient(135deg, #2a1d36, #0c0910); }
.nft-reactor { background: radial-gradient(circle at 70% 25%, rgba(255,100,103,.28), transparent 24%), linear-gradient(135deg, #351b1d, #11090a); }
.rig-identity-row h2 { margin: 5px 0 10px; font-size: 32px; letter-spacing: -.04em; }
.token-number { color: var(--muted); font-size: 9px; letter-spacing: .08em; }
.token-number b { color: var(--text); }
.rig-stats { grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 20px; }
.progress-block { display: grid; gap: 9px; margin-top: 18px; }
.progress-block > div:first-child { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 8px; letter-spacing: .07em; }
.progress-block b { color: var(--text); }
.forge-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
.forge-actions > button:only-child { grid-column: 1 / -1; }
.balance-card { padding: 20px; box-shadow: none; }
.balance-card > strong { display: flex; align-items: baseline; gap: 7px; min-width: 0; font-size: 36px; letter-spacing: -.04em; }
.balance-card > strong b { min-width: 0; overflow-wrap: anywhere; }
.balance-card small { color: var(--accent); font-size: 11px; }
.compact-cost { min-height: 50px; padding: 0 13px; }
.sync-status { display: grid; gap: 6px; margin-top: 15px; }
.sync-status strong { overflow-wrap: anywhere; color: var(--accent); font-size: 10px; line-height: 1.45; }
.field-label { width: min(180px,100%); color: var(--muted); font-size: 8px; letter-spacing: .08em; }
.field-label input { width: 100%; }

.status-grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 16px; }
.status-card { min-height: 174px; display: flex; flex-direction: column; justify-content: space-between; padding: 22px; box-shadow: none; }
.status-card > strong { overflow-wrap: anywhere; font-size: clamp(24px, 4vw, 38px); letter-spacing: -.035em; }
.status-card small { color: var(--muted); font-size: 11px; letter-spacing: 0; }
.supply-card { border-color: var(--line-bright); background: linear-gradient(145deg, rgba(184,245,109,.05), transparent 55%), var(--surface); }
.protocol-details { margin-top: 16px; padding: 22px; box-shadow: none; }
.link-row { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 2px; }
.link-row a { display: flex; align-items: center; justify-content: space-between; gap: 15px; min-width: 160px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); background: rgba(0,0,0,.12); font-size: 10px; text-decoration: none; }
.link-row a:hover { border-color: var(--line-bright); color: var(--text); }
.link-row a span { color: var(--accent); }

footer { width: min(1180px,calc(100% - 32px)); display: flex; justify-content: space-between; gap: 20px; margin: 0 auto; padding: 18px 2px 32px; border-top: 1px solid rgba(255,255,255,.055); color: var(--faint); font-size: 9px; letter-spacing: .06em; }
footer b { color: var(--accent); }
.toast-stack { position: fixed; top: 88px; right: 16px; z-index: 9999; width: min(350px,calc(100vw - 32px)); }
.toast { display: grid; grid-template-columns: 8px 1fr; gap: 11px; margin-bottom: 9px; padding: 13px; border: 1px solid var(--line-bright); border-radius: 14px; color: var(--text); background: #181e1b; box-shadow: 0 16px 50px rgba(0,0,0,.45); }
.toast > i { width: 8px; min-height: 38px; border-radius: 99px; background: var(--accent); }
.toast > div { display: grid; gap: 4px; }
.toast strong { font-size: 11px; }
.toast span { color: var(--muted); font-size: 10px; line-height: 1.45; }
.toast.error > i { background: var(--danger); }
.compat { display: none !important; }

@media (max-width: 850px) {
  .topbar { padding: 0 16px; }
  .brand small { display: none; }
  .workspace-grid { grid-template-columns: 1fr; }
  .side-stack { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .claim-workspace .flow-card { grid-column: 1 / -1; }
  .detail-grid.five { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .status-grid { grid-template-columns: 1fr 1fr; }
  .supply-card { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .topbar { height: 64px; gap: 9px; }
  .brand-mark { width: 34px; height: 34px; border-radius: 10px; font-size: 22px; }
  .brand strong { font-size: 14px; }
  .epoch-pill { margin-left: auto; padding: 0 10px; }
  .epoch-pill > span:not(.live-dot) { display: none; }
  .wallet-button { width: 42px; padding: 0; justify-content: center; }
  .wallet-button strong { display: none; }
  .tabs { top: 64px; justify-content: stretch; padding: 7px 8px; }
  .tab { flex: 1; min-width: 0; padding: 0 7px; text-align: center; }
  .tab span { display: none; }
  .app-shell { width: min(100% - 20px,1180px); padding: 29px 0 44px; }
  .view-heading { align-items: flex-start; margin-bottom: 20px; }
  .view-heading h1 { font-size: 30px; }
  .view-heading p { font-size: 12px; }
  .state-pill { margin-top: 2px; padding: 0 9px; font-size: 8px; }
  .action-card, .data-card { padding: 17px; }
  .hashrate-block > strong { font-size: clamp(46px,18vw,74px); }
  .key-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .control-panel { grid-template-columns: 1fr auto; }
  .range-control { grid-template-columns: 100px 1fr; }
  .primary-actions, .two-actions, .forge-actions { grid-template-columns: 1fr; }
  .side-stack { grid-template-columns: 1fr; }
  .detail-grid.five, .detail-grid.three { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .status-grid { grid-template-columns: 1fr; }
  .supply-card { grid-column: auto; }
  .status-card { min-height: 145px; }
  .flow-card { overflow-x: auto; }
  footer { width: calc(100% - 20px); flex-direction: column; gap: 7px; }
}

@media (max-width: 400px) {
  .epoch-pill { display: none; }
  .view-heading { display: grid; }
  .state-pill { justify-self: start; }
  .action-card, .data-card, .balance-card, .protocol-details { padding: 15px; border-radius: 17px; }
  .hashrate-block > strong { font-size: 46px; }
  .rig-identity-row { grid-template-columns: 86px 1fr; gap: 14px; }
  .nft-rig { width: 86px; border-radius: 18px; }
  .rig-identity-row h2 { font-size: 25px; }
  .detail-grid.five, .detail-grid.three { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* V1.9.7 neon-pixel palette. Layout rules above remain unchanged. */
body {
  background:
    radial-gradient(circle at 18% 0%, rgba(87, 0, 151, .28), transparent 34%),
    radial-gradient(circle at 82% 5%, rgba(255, 0, 212, .12), transparent 28%),
    var(--bg);
}

body::before {
  opacity: .34;
  background-image:
    linear-gradient(rgba(78, 18, 111, .34) 1px, transparent 1px),
    linear-gradient(90deg, rgba(78, 18, 111, .34) 1px, transparent 1px);
  background-size: 16px 16px;
}

button, input, select, textarea { font-family: var(--font-pixel); }

.card-label,
.step-kicker,
.overline,
.read-only,
.action-badge,
.control-copy > span,
.range-control > span,
.progress-block > div:first-child,
.sync-status > span,
.field-label,
.token-number,
.tab span {
  font-family: var(--font-pixel);
}

.brand strong,
.view-heading h1,
.hashrate-block > strong,
.claim-amount strong,
.rig-identity-row h2,
.balance-card > strong,
.status-card > strong {
  font-family: var(--font-pixel);
  font-weight: 700;
}

.topbar,
.tabs { background: rgba(12, 0, 23, .9); }

.brand-mark {
  color: #0a0013;
  background: var(--accent);
  box-shadow: 4px 4px 0 var(--magenta), 0 0 24px rgba(0, 231, 255, .22);
}
.brand strong { color: var(--accent); text-shadow: 0 0 14px rgba(0, 231, 255, .25); }
.brand strong span { color: var(--magenta); text-shadow: 0 0 14px rgba(255, 0, 212, .25); }

.epoch-pill {
  color: var(--muted);
  border-color: var(--line-bright);
  background: rgba(31, 6, 51, .88);
  box-shadow: inset 3px 0 0 var(--accent);
}
.epoch-pill > strong { color: var(--yellow); border-color: var(--line); text-shadow: 0 0 12px rgba(255, 242, 56, .22); }
.live-dot { background: var(--yellow); box-shadow: 0 0 0 3px rgba(255, 242, 56, .12), 0 0 12px rgba(255, 242, 56, .46); }

.network-dot.live,
.state-pill.running span {
  background: var(--accent);
  box-shadow: 0 0 0 3px rgba(0, 231, 255, .13), 0 0 13px rgba(0, 231, 255, .48);
}

.wallet-button,
.icon-button {
  border-color: var(--line-bright);
  background: rgba(30, 7, 49, .9);
}
.wallet-button:hover { border-color: var(--accent); background: var(--surface-3); }
.icon-button span { background: var(--accent); }
.menu-popover { border-color: var(--magenta); background: #180327; box-shadow: 7px 7px 0 rgba(0, 231, 255, .18), 0 24px 70px rgba(0,0,0,.55); }
.menu-popover button { color: var(--accent-ink); background: var(--accent); }
.menu-popover .button-quiet { color: var(--text); background: var(--surface-3); }

.tab { color: var(--muted); }
.tab span { color: var(--faint); }
.tab:hover { color: var(--text); background: rgba(255, 0, 212, .055); }
.tab.is-active {
  color: var(--text);
  background: linear-gradient(90deg, rgba(0, 231, 255, .08), rgba(255, 0, 212, .08));
  box-shadow: inset 0 -2px 0 var(--magenta), inset 0 0 0 1px var(--line-bright);
}
.tab.is-active span { color: var(--yellow); }

.step-kicker, .overline { color: var(--magenta); }
.state-pill { color: var(--muted); border-color: var(--line); background: var(--surface); }
.state-pill.running, .live-state { color: var(--accent); border-color: rgba(0,231,255,.34); background: rgba(0,231,255,.055); }

.card {
  border-color: var(--line);
  background: linear-gradient(145deg, rgba(103, 18, 151, .065), transparent 55%), var(--surface);
  box-shadow: var(--shadow);
}
.action-card { border-color: var(--line-bright); box-shadow: 0 0 0 1px rgba(0,231,255,.06), 0 20px 55px rgba(0,0,0,.44); }
.data-card { border-color: #45135f; background: rgba(22, 4, 36, .84); }
.card-label { color: var(--accent); }
.read-only { color: var(--faint); background: rgba(115, 33, 155, .12); }
.action-badge { color: var(--yellow); background: rgba(255, 242, 56, .07); }
.inline-status { color: var(--magenta); }

.hashrate-block > strong { text-shadow: 3px 3px 0 rgba(91, 8, 132, .8); }
.hashrate-block em { color: var(--magenta); text-shadow: 0 0 12px rgba(255,0,212,.28); }
.meter { background: #310b48; }
.meter > span { background: linear-gradient(90deg, var(--accent), var(--magenta)); box-shadow: 0 0 12px rgba(0,231,255,.35); }
.key-stats { border-color: var(--line); background: var(--line); }
.key-stats > div { background: var(--surface-2); }
.proof-event { color: var(--yellow); border-color: rgba(255,0,212,.44); background: rgba(255,0,212,.07); box-shadow: inset 4px 0 0 var(--magenta); }

.control-panel { background: rgba(5, 0, 12, .28); }
.control-copy small { color: var(--muted); }
.segmented { border-color: var(--line); background: #0b0014; }
.segmented button { color: var(--muted); }
.segmented button[aria-pressed="true"] { color: var(--accent-ink); background: var(--accent); box-shadow: 3px 3px 0 rgba(255,0,212,.36); }
input[type="range"] { accent-color: var(--magenta); }

.button-primary { color: #0b0014; background: var(--magenta); box-shadow: 4px 4px 0 rgba(0,231,255,.42); }
.button-primary:hover:not(:disabled) { filter: brightness(1.12); }
.button-danger { color: #18000c; background: var(--danger); }
.button-secondary, .button-toggle { color: var(--text); border-color: var(--line-bright); background: var(--surface-3); }
.button-secondary:hover:not(:disabled), .button-toggle:hover:not(:disabled) { color: var(--accent); border-color: var(--accent); background: #310b4a; }
.button-toggle[aria-pressed="true"] { color: var(--accent); border-color: rgba(0,231,255,.45); background: rgba(0,231,255,.065); }

.notice { color: var(--muted); border-color: var(--line); background: rgba(5,0,12,.25); }
.success-notice { color: var(--yellow); border-color: rgba(255,242,56,.3); }
.data-list > div, .price-rows > div, .next-target, .info-copy, .inline-details { border-color: rgba(118,37,157,.38); }
.reward-grid > div, .detail-grid > div, .cost-summary, .icon-step, .link-row a { border-color: var(--line); background: rgba(5,0,12,.22); }
.next-target strong { color: var(--yellow); }
.advanced { background: rgba(18, 2, 30, .74); }
.advanced > summary::after, .inline-details summary::after { color: var(--magenta); }

select,
input[type="number"],
input[inputmode="numeric"] { color: var(--text); border-color: var(--line-bright); background: #0b0014; }
select:focus, input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(0,231,255,.1); }

.claim-amount em { color: var(--magenta); }
.flow-card > div > span { color: var(--muted); border-color: var(--line-bright); }
.flow-card > div.current > span { color: var(--accent-ink); border-color: var(--accent); background: var(--accent); box-shadow: 2px 2px 0 var(--magenta); }
.flow-card > i { background: linear-gradient(90deg, var(--accent), var(--magenta)); }

.nft-rig {
  border-color: var(--line-bright);
  background: radial-gradient(circle at 70% 25%, rgba(0,231,255,.22), transparent 24%), linear-gradient(135deg, #30054d, #0b0014);
}
.nft-rig::before { color: var(--magenta); text-shadow: 4px 4px 0 rgba(0,231,255,.3), 0 0 28px rgba(255,0,212,.24); }
.balance-card small, .sync-status strong { color: var(--accent); }
.supply-card { border-color: var(--line-bright); background: linear-gradient(145deg, rgba(0,231,255,.07), transparent 55%), var(--surface); }
.link-row a { color: var(--muted); }
.link-row a:hover { color: var(--text); border-color: var(--magenta); }
.link-row a span, footer b { color: var(--magenta); }

.toast { color: var(--text); border-color: var(--line-bright); background: #210735; box-shadow: 5px 5px 0 rgba(255,0,212,.22), 0 16px 50px rgba(0,0,0,.52); }
.toast > i { background: var(--accent); }
.toast.error > i { background: var(--danger); }
button:focus-visible, a:focus-visible, summary:focus-visible { outline-color: var(--yellow); }

/* --------------------------------------------------------------------------
   MemeHash V2 merge: slightly larger type + visible Docs entry
   -------------------------------------------------------------------------- */
body { font-size: 17px; }
.brand strong { font-size: 17px; }
.brand small { font-size: 11px; }
.epoch-pill { font-size: 13px; }
.wallet-button { font-size: 12px; }
.menu-popover button { font-size: 13px; }
.menu-wallet small { font-size: 10px; }
.menu-wallet strong { font-size: 13px; }
.tab { font-size: 14px; }
.tab span { font-size: 10px; }
.view-heading p { font-size: 15px; }
.step-kicker, .overline { font-size: 10px; }
.state-pill { font-size: 11px; }
.card-label { font-size: 11px; }
.read-only, .action-badge { font-size: 9px; }
.inline-status { font-size: 10px; }
.hashrate-block > span { font-size: 11px; }
.key-stats span, .data-list span, .reward-grid span, .next-target span, .price-rows span, .detail-grid span, .cost-summary span, .sync-status span { font-size: 10px; }
.key-stats strong { font-size: 17px; }
.info-copy { font-size: 12px; }
.inline-details summary { font-size: 11px; }
.link-row a { font-size: 11px; }
footer { font-size: 10px; }
.toast strong { font-size: 12px; }
.toast span { font-size: 11px; }
.docs-tab { display:flex; align-items:center; justify-content:flex-start; text-decoration:none; }
.docs-tab:hover { color:var(--yellow); }

@media (max-width: 620px) {
  .tab { font-size: 12px; }
  .docs-tab { justify-content:center; }
  .view-heading p { font-size: 13px; }
  .state-pill { font-size: 9px; }
}

/* --------------------------------------------------------------------------
   Docs — same Clean Neon Pixel visual system as the miner
   -------------------------------------------------------------------------- */
.docs-body {
  background:
    radial-gradient(circle at 18% 0%, rgba(87, 0, 151, .28), transparent 34%),
    radial-gradient(circle at 82% 5%, rgba(255, 0, 212, .12), transparent 28%),
    var(--bg);
}
.docs-shell { width:min(1180px, calc(100% - 32px)); margin:24px auto 64px; }
.docs-header {
  position:sticky; top:12px; z-index:30; min-height:72px; display:flex; align-items:stretch; justify-content:space-between;
  border:1px solid var(--line-bright); border-radius:18px; overflow:hidden; background:rgba(12,0,23,.92); backdrop-filter:blur(18px);
  box-shadow:var(--shadow);
}
.docs-brand { display:flex; align-items:center; gap:11px; padding:13px 18px; color:var(--text); text-decoration:none; }
.docs-brand svg { width:31px; height:25px; color:var(--accent); filter:drop-shadow(3px 3px 0 rgba(255,0,212,.35)); }
.docs-brand span { font-family:var(--font-pixel); font-size:16px; color:var(--accent); }
.docs-brand b { font-family:var(--font-pixel); color:var(--magenta); font-size:11px; }
.docs-topnav { display:flex; align-items:stretch; margin-left:auto; }
.docs-topnav a { display:grid; place-items:center; min-width:88px; padding:10px 13px; border-left:1px solid var(--line); color:var(--muted); font-family:var(--font-pixel); font-size:10px; letter-spacing:.04em; text-decoration:none; }
.docs-topnav a:hover, .docs-topnav a:focus-visible { color:var(--yellow); background:rgba(255,0,212,.06); outline:0; }
.docs-topnav .docs-launch { color:var(--accent-ink); background:var(--accent); }
.docs-topnav .docs-launch:hover { color:var(--accent-ink); background:var(--yellow); }
.docs-hero { margin-top:18px; padding:58px clamp(22px,6vw,72px); border:1px solid var(--line-bright); border-radius:22px; background:linear-gradient(145deg,rgba(0,231,255,.07),rgba(255,0,212,.05) 48%,transparent 75%),var(--surface); box-shadow:var(--shadow); }
.docs-kicker { display:inline-block; padding:7px 10px; border:1px solid var(--magenta); border-radius:8px; color:var(--magenta); background:rgba(255,0,212,.05); font-family:var(--font-pixel); font-size:10px; letter-spacing:.08em; }
.docs-hero h1 { max-width:920px; margin:22px 0 16px; color:var(--text); font-size:clamp(38px,6vw,78px); line-height:.92; letter-spacing:-.05em; text-shadow:4px 4px 0 rgba(91,8,132,.8); }
.docs-hero p { max-width:840px; margin:0; color:var(--muted); font-size:16px; line-height:1.7; }
.docs-flow { margin-top:30px; display:flex; flex-wrap:wrap; align-items:center; gap:9px; }
.docs-flow span { padding:9px 11px; border:1px solid var(--line-bright); border-radius:9px; color:var(--accent); background:#0b0014; font-family:var(--font-pixel); font-size:10px; }
.docs-flow i { color:var(--magenta); }
.docs-layout { display:grid; grid-template-columns:230px minmax(0,1fr); gap:16px; margin-top:16px; }
.docs-sidebar { position:sticky; top:102px; align-self:start; display:flex; flex-direction:column; max-height:calc(100vh - 122px); overflow:auto; padding:14px; border:1px solid var(--line); border-radius:18px; background:rgba(22,4,36,.86); }
.docs-sidebar strong { padding:5px 8px 13px; color:var(--accent); font-family:var(--font-pixel); font-size:11px; }
.docs-sidebar a { padding:10px 9px; border-top:1px solid rgba(118,37,157,.28); border-radius:7px; color:var(--muted); font-family:var(--font-pixel); font-size:9px; letter-spacing:.035em; text-decoration:none; }
.docs-sidebar a:hover, .docs-sidebar a:focus-visible { color:var(--yellow); background:rgba(255,0,212,.055); outline:0; }
.docs-content { min-width:0; display:grid; gap:14px; }
.docs-section { position:relative; padding:44px clamp(20px,5vw,58px); border:1px solid var(--line); border-radius:20px; background:linear-gradient(145deg,rgba(103,18,151,.05),transparent 52%),var(--surface); scroll-margin-top:100px; }
.docs-section h2 { margin:0 0 23px; padding-left:52px; color:var(--text); font-size:clamp(26px,3vw,40px); letter-spacing:-.03em; }
.docs-section h3 { margin:30px 0 11px; color:var(--accent); font-family:var(--font-pixel); font-size:12px; letter-spacing:.06em; }
.docs-section p { max-width:820px; color:var(--muted); line-height:1.72; font-size:15px; }
.docs-section p strong { color:var(--text); }
.docs-num { position:absolute; top:45px; left:clamp(20px,5vw,58px); padding:6px 7px; border:1px solid var(--magenta); border-radius:7px; color:var(--magenta); font-family:var(--font-pixel); font-size:10px; }
.docs-code, .docs-formula, .docs-address { margin:20px 0; padding:19px; border:1px solid var(--line-bright); border-radius:13px; background:#090012; color:var(--text); white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.65; font-size:13px; box-shadow:4px 4px 0 rgba(255,0,212,.16); }
.docs-formula { color:#0b0014; border-color:var(--accent); background:var(--accent); font-weight:700; font-size:14px; box-shadow:4px 4px 0 rgba(255,0,212,.42); }
.docs-address { color:var(--yellow); font-size:12px; }
.docs-note { margin:21px 0; padding:17px 19px; border-left:4px solid var(--magenta); border-radius:0 12px 12px 0; background:rgba(255,0,212,.055); color:var(--muted); line-height:1.65; font-size:13px; }
.docs-note b { color:var(--yellow); }
.docs-stat-grid, .docs-rig-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin:20px 0; }
.docs-stat-grid.compact { grid-template-columns:repeat(4,minmax(0,1fr)); }
.docs-stat-grid > div, .docs-rig-grid > div { min-width:0; padding:16px; border:1px solid var(--line); border-radius:13px; background:rgba(5,0,12,.22); }
.docs-stat-grid span, .docs-rig-grid span { display:block; margin-bottom:8px; color:var(--muted); font-family:var(--font-pixel); font-size:9px; letter-spacing:.04em; }
.docs-stat-grid b, .docs-rig-grid b { color:var(--text); font-size:17px; overflow-wrap:anywhere; }
.docs-rig-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
.docs-rig-grid small { display:block; margin-top:9px; color:var(--muted); font-size:12px; line-height:1.4; }
.docs-split { display:grid; grid-template-columns:1fr 2fr; gap:9px; margin:21px 0; }
.docs-split div { padding:19px; border:1px solid var(--line-bright); border-radius:13px; background:var(--surface-2); }
.docs-split b { display:block; color:var(--yellow); font-size:32px; }
.docs-split span { display:block; margin-top:6px; color:var(--muted); font-size:11px; }
.docs-contracts { display:grid; gap:8px; margin-top:21px; }
.docs-contracts > div { display:grid; grid-template-columns:180px minmax(0,1fr); border:1px solid var(--line); border-radius:10px; overflow:hidden; background:rgba(5,0,12,.2); }
.docs-contracts span { padding:13px; color:var(--accent); font-family:var(--font-pixel); font-size:9px; }
.docs-contracts code { padding:13px; border-left:1px solid var(--line); color:var(--text); overflow-wrap:anywhere; font-family:inherit; font-size:11px; }
.docs-section details { margin:9px 0; border:1px solid var(--line); border-radius:11px; background:rgba(5,0,12,.18); }
.docs-section summary { cursor:pointer; padding:15px; color:var(--text); font-family:var(--font-pixel); font-size:11px; list-style:none; }
.docs-section details p { margin:0; padding:0 15px 16px; }
.docs-muted { opacity:.76; font-size:12px !important; }
.docs-footer { display:flex; justify-content:space-between; gap:16px; padding:20px 4px; color:var(--faint); font-size:10px; }
.docs-footer a { color:var(--accent); text-decoration:none; }
.docs-footer a:hover { color:var(--yellow); }

@media (max-width: 900px) {
  .docs-topnav a:not(.docs-launch) { display:none; }
  .docs-layout { grid-template-columns:1fr; }
  .docs-sidebar { position:static; max-height:none; display:grid; grid-template-columns:repeat(3,1fr); }
  .docs-sidebar strong { grid-column:1/-1; }
  .docs-stat-grid.compact, .docs-rig-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .docs-shell { width:calc(100% - 20px); margin:10px auto 32px; }
  .docs-header { top:6px; min-height:62px; }
  .docs-brand { padding:10px 12px; }
  .docs-brand span { font-size:14px; }
  .docs-brand b { font-size:9px; }
  .docs-topnav .docs-launch { min-width:92px; padding:8px; font-size:9px; }
  .docs-hero { padding:38px 18px; }
  .docs-hero h1 { font-size:38px; }
  .docs-hero p { font-size:14px; }
  .docs-sidebar { grid-template-columns:repeat(2,1fr); }
  .docs-stat-grid, .docs-stat-grid.compact, .docs-rig-grid, .docs-split { grid-template-columns:1fr; }
  .docs-contracts > div { grid-template-columns:1fr; }
  .docs-contracts code { border-left:0; border-top:1px solid var(--line); }
  .docs-section { padding:38px 18px; }
  .docs-section h2 { padding-left:48px; font-size:28px; }
  .docs-num { left:18px; top:39px; }
  .docs-footer { flex-direction:column; }
}


/* --------------------------------------------------------------------------
   Neon UI readability / stability pass
   -------------------------------------------------------------------------- */
/* Keep the share/proof flash row in the layout even while visually hidden,
   so mining events never push the controls/buttons down. */
.proof-event {
  min-height: 48px;
  transition: opacity .12s ease, visibility .12s ease;
}
.proof-event[hidden] {
  display: flex !important;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}
.proof-event:not([hidden]) {
  visibility: visible;
  opacity: 1;
}

/* Large token amounts need a cleaner numeric face than the decorative pixel
   display font. Keep the neon look around it, but make every digit obvious. */
.claim-amount strong {
  font-family: var(--font-mono);
  font-weight: 800;
  font-size: clamp(50px, 8.2vw, 78px);
  line-height: .98;
  letter-spacing: -.035em;
  font-variant-numeric: tabular-nums lining-nums;
  overflow-wrap: normal;
  word-break: normal;
}

@media (max-width: 720px) {
  .claim-amount strong {
    font-size: clamp(42px, 12vw, 64px);
    letter-spacing: -.025em;
  }
}


/* --------------------------------------------------------------------------
   MemeHash official pixel branding
   -------------------------------------------------------------------------- */
.brand {
  gap: 10px;
  min-width: 0;
}
.brand-logo {
  width: 48px;
  height: 42px;
  flex: 0 0 auto;
  object-fit: cover;
  object-position: center;
  border-radius: 8px;
  image-rendering: pixelated;
  filter: none;
  box-shadow: none;
}
.brand-lockup {
  min-width: 0;
  display: grid;
  align-items: center;
  gap: 1px;
}
.brand-wordmark {
  display: block;
  width: 145px;
  max-width: 100%;
  height: auto;
  image-rendering: pixelated;
  filter: drop-shadow(0 0 8px rgba(0, 231, 255, .12));
}
.brand-lockup small {
  margin-left: 2px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.1;
}

.docs-brand {
  gap: 9px;
  min-width: 0;
}
.docs-brand-logo {
  width: 46px;
  height: 38px;
  flex: 0 0 auto;
  object-fit: cover;
  border-radius: 7px;
  image-rendering: pixelated;
  filter: none;
  box-shadow: none;
}
.docs-brand-wordmark {
  display: block;
  width: 152px;
  height: auto;
  image-rendering: pixelated;
}
.docs-brand b {
  align-self: center;
  padding: 5px 7px;
  border: 1px solid var(--magenta);
  border-radius: 7px;
  background: rgba(255,0,212,.06);
  line-height: 1;
}

@media (max-width: 850px) {
  .brand-wordmark { width: 132px; }
  .brand-lockup small { display: none; }
}

@media (max-width: 620px) {
  .brand-logo { width: 40px; height: 35px; }
  .brand-wordmark { width: 108px; }
  .docs-brand { gap: 7px; }
  .docs-brand-logo { width: 38px; height: 32px; }
  .docs-brand-wordmark { width: 112px; }
  .docs-brand b { padding: 4px 5px; font-size: 8px; }
}

@media (max-width: 430px) {
  .brand-wordmark { width: 96px; }
  .docs-brand-wordmark { width: 96px; }
}


/* --------------------------------------------------------------------------
   Geist typography pass
   -------------------------------------------------------------------------- */
/* Geist Pixel keeps the MemeHash identity for display/UI copy. The square
   pixel shape is the cleanest and most legible variant for this interface. */
body,
button, input, select, textarea,
.tab, .card-label, .step-kicker, .overline, .read-only, .action-badge,
.control-copy, .range-control, .progress-block, .sync-status, .field-label,
.view-heading h1, .rig-identity-row h2, .balance-card > strong, .status-card > strong,
.docs-brand, .docs-topnav a, .docs-kicker, .docs-flow span, .docs-sidebar,
.docs-section h1, .docs-section h2, .docs-section h3, .docs-num,
.docs-stat-grid span, .docs-rig-grid span, .docs-contracts span, .docs-section summary {
  font-family: var(--font-pixel);
  font-variation-settings: "ELSH" 1;
}

/* Longer copy is intentionally Geist Sans rather than a display pixel face. */
.view-heading p,
.control-copy p,
.docs-hero p,
.docs-section p,
.docs-note,
.docs-rig-grid small,
.docs-split span,
.docs-footer {
  font-family: var(--font-body);
  font-variation-settings: normal;
}

/* Technical values stay exceptionally clear and stable while updating. */
.hashrate-block > strong,
.claim-amount strong,
.key-stats strong,
.data-list strong,
.reward-grid strong,
.price-rows strong,
.detail-grid strong,
.token-number,
.epoch-pill > strong,
.docs-code, .docs-formula, .docs-address, .docs-contracts code {
  font-family: var(--font-mono);
  font-variation-settings: normal;
  font-variant-numeric: tabular-nums lining-nums;
}

/* Geist Pixel is single-weight in the Google Fonts build; avoid asking the
   browser for unavailable ultra-bold cuts and use spacing/size for hierarchy. */
.view-heading h1,
.docs-hero h1,
.rig-identity-row h2 {
  font-weight: 400;
  letter-spacing: -.025em;
}

/* --------------------------------------------------------------------------
   V2.2.1 RIG docs + proof flash placement
   -------------------------------------------------------------------------- */
.hash-console {
  position: relative;
}

/* The proof/share hit uses the otherwise-empty upper-right of the MINER card.
   Because it is absolutely positioned, appearing/disappearing never shifts
   the hashrate, controls or buttons. */
.hash-console > .proof-event {
  position: absolute;
  top: 76px;
  right: 24px;
  z-index: 3;
  width: min(43%, 360px);
  min-height: 46px;
  margin: 0;
  box-sizing: border-box;
}

.docs-rig-grid > div {
  display: flex;
  flex-direction: column;
}
.docs-rig-art {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  margin: 0 0 13px;
  border: 1px solid rgba(0, 231, 255, .24);
  border-radius: 10px;
  background: #080010;
  object-fit: contain;
  image-rendering: auto;
  box-shadow: 3px 3px 0 rgba(255, 0, 212, .16);
}
.docs-rig-grid > div b {
  margin-top: auto;
}

@media (max-width: 720px) {
  /* On narrow layouts there is no spare right-side hashrate space, so keep
     the hit notification directly below the MINER label. It still reserves
     a fixed height while hidden, preventing layout jumps. */
  .hash-console > .proof-event {
    position: relative;
    top: auto;
    right: auto;
    width: 100%;
    margin: -5px 0 10px;
  }
}

/* --------------------------------------------------------------------------
   V2.2.14 claim-all + miner readability pass
   -------------------------------------------------------------------------- */
.key-stats {
  grid-template-columns: 1.22fr .78fr 1fr 1fr;
}
.key-stats strong {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#hashes {
  font-size: 15px;
  letter-spacing: -.025em;
}

/* Keep the primary mining action obvious. Settlement belongs to the proof
   that is ready, so it now lives inside the PROOF READY row instead. */
.mining-actions {
  grid-template-columns: minmax(0, 1fr) auto;
}
.batch-ready {
  align-items: center;
  gap: 16px;
}
.batch-ready-copy {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.batch-ready-copy span {
  overflow-wrap: anywhere;
}
.button-settle {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 0 17px;
  border: 1px solid var(--accent);
  border-radius: 11px;
  color: #03151a;
  background: var(--accent);
  box-shadow: 3px 3px 0 rgba(255, 0, 212, .32);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .04em;
}
.button-settle:hover:not(:disabled) {
  filter: brightness(1.08);
}

/* Hot-pink is intentionally loud; make its labels equally strong. */
.button-primary,
.button-danger {
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .045em;
}
.button-primary {
  color: #120015;
  text-shadow: 0 1px 0 rgba(255,255,255,.18);
}

.claim-all-box {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, .58fr);
  gap: 12px;
  align-items: center;
  margin-top: 14px;
  padding: 14px;
  border: 1px solid rgba(0,231,255,.34);
  border-radius: 14px;
  background: rgba(0,231,255,.045);
}
.claim-all-box > div {
  min-width: 0;
  display: grid;
  gap: 6px;
}
.claim-all-box span {
  color: var(--accent);
  font-size: 9px;
  letter-spacing: .08em;
}
.claim-all-box strong {
  min-width: 0;
  color: var(--text);
  font-family: var(--font-mono);
  font-size: 11px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.claim-single-actions {
  margin-top: 10px;
}
.claim-window-note {
  margin: 11px 2px 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

@media (max-width: 720px) {
  .key-stats {
    grid-template-columns: 1.15fr .85fr;
  }
  .mining-actions,
  .claim-all-box {
    grid-template-columns: 1fr;
  }
  .button-settle {
    width: 100%;
  }
  .batch-ready {
    align-items: stretch;
    flex-direction: column;
  }
}


/* --------------------------------------------------------------------------
   V2.2.15 compact miner + clearer primary actions
   -------------------------------------------------------------------------- */
/* Primary hot-pink actions use white text for stronger contrast. */
.button-primary,
.button-danger {
  color: #fff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .24);
}

/* Keep long-running miner stats compact. */
.key-stats > div {
  gap: 4px;
  padding: 10px 11px;
}
.key-stats strong {
  font-size: 14px;
  line-height: 1.05;
}
#hashes {
  font-size: 13px;
  letter-spacing: -.02em;
}

/* A RIG cannot be minted until the wallet can actually pay the mint price. */
#mintRigButton:disabled {
  opacity: 1;
  color: #8c7e91;
  background: #34283a;
  box-shadow: none;
  filter: none;
  border-color: #4a3a52;
}


/* --------------------------------------------------------------------------
   V2.2.19 settlement target visibility
   -------------------------------------------------------------------------- */
.mining-target {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: -4px 0 10px;
  padding: 13px 15px;
  border: 1px solid rgba(0, 231, 255, .5);
  border-radius: 14px;
  background: linear-gradient(90deg, rgba(0, 231, 255, .095), rgba(255, 0, 212, .055));
  box-shadow: inset 4px 0 0 var(--accent), 0 0 20px rgba(0, 231, 255, .05);
}
.mining-target-badge {
  flex: 0 0 auto;
  display: grid;
  gap: 3px;
}
.mining-target-badge > span {
  color: var(--muted);
  font-size: 9px;
  letter-spacing: .11em;
}
.mining-target-badge > strong {
  color: var(--yellow);
  font-family: var(--font-mono);
  font-size: 21px;
  line-height: 1;
  letter-spacing: -.025em;
  text-shadow: 0 0 14px rgba(255, 242, 56, .18);
}
.mining-target-progress {
  min-width: 0;
  display: grid;
  justify-items: end;
  gap: 4px;
  text-align: right;
}
.mining-target-progress > strong {
  color: var(--text);
  font-size: 11px;
  letter-spacing: .015em;
}
.mining-target-progress > span {
  color: var(--muted);
  font-size: 9px;
  line-height: 1.35;
}
.mining-target-progress b {
  color: var(--accent);
}
.mining-target.is-reached {
  border-color: rgba(255, 242, 56, .62);
  background: linear-gradient(90deg, rgba(255, 242, 56, .09), rgba(255, 0, 212, .06));
  box-shadow: inset 4px 0 0 var(--yellow), 0 0 22px rgba(255, 242, 56, .06);
}
.mining-target.is-reached .mining-target-progress > strong {
  color: var(--yellow);
}

/* Five compact telemetry cells on desktop; target gets visual priority. */
.key-stats {
  grid-template-columns: 1.18fr .78fr .82fr 1fr 1fr;
}
.key-stats .target-stat {
  background: linear-gradient(145deg, rgba(0, 231, 255, .11), rgba(30, 7, 49, .96));
}
.key-stats .target-stat span {
  color: var(--accent);
}
.key-stats .target-stat strong {
  color: var(--yellow);
  text-shadow: 0 0 12px rgba(255, 242, 56, .14);
}

/* Keep the transient share/proof event below the persistent target strip. */
.hash-console > .proof-event {
  top: 132px;
}

@media (max-width: 720px) {
  .mining-target {
    align-items: stretch;
    flex-direction: column;
    gap: 8px;
    margin: -3px 0 12px;
    padding: 12px 13px;
  }
  .mining-target-badge {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
  }
  .mining-target-badge > strong {
    font-size: 19px;
  }
  .mining-target-progress {
    justify-items: start;
    text-align: left;
  }
  .mining-target-progress > strong {
    font-size: 10px;
  }
  .hash-console > .proof-event {
    top: auto;
  }
  .key-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .key-stats .target-stat {
    box-shadow: inset 3px 0 0 var(--accent);
  }
}

@media (max-width: 420px) {
  .mining-target-badge > span,
  .mining-target-progress > span {
    font-size: 8px;
  }
  .mining-target-badge > strong {
    font-size: 17px;
  }
}


/* --------------------------------------------------------------------------
   V2.2.20 pending proof persistence
   -------------------------------------------------------------------------- */
.batch-ready-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
}
.button-discard {
  min-height: 42px;
  padding: 0 13px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 11px;
  color: var(--muted);
  background: rgba(255,255,255,.035);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .045em;
}
.button-discard:hover:not(:disabled) {
  color: var(--text);
  border-color: rgba(255,255,255,.38);
}
@media (max-width: 720px) {
  .batch-ready-actions {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, .42fr) minmax(0, 1fr);
  }
  .button-discard,
  .button-settle {
    width: 100%;
  }
}

/* --------------------------------------------------------------------------
   V2.2.24 desktop hash workspace alignment
   Keep the two read-only cards visually level with the main miner card.
   -------------------------------------------------------------------------- */
@media (min-width: 851px) {
  .hash-workspace {
    align-items: stretch;
  }

  .hash-workspace > .side-stack {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 24px;
    min-height: 100%;
  }
}

/* --------------------------------------------------------------------------
   V2.2.25 desktop page alignment
   Extend the balanced desktop-column treatment from Hash to Claim and Mint,
   and keep the Status overview row visually level before its detail panel.
   Mobile/tablet layouts remain unchanged.
   -------------------------------------------------------------------------- */
@media (min-width: 851px) {
  .claim-workspace,
  .forge-workspace {
    align-items: stretch;
  }

  .claim-workspace > .side-stack,
  .forge-workspace > .side-stack {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 24px;
    min-height: 100%;
  }

  .status-grid {
    align-items: stretch;
  }

  .status-grid > .status-card {
    height: 100%;
  }

  .protocol-details {
    margin-top: 24px;
  }
}

/* --------------------------------------------------------------------------
   Mint Central shared layout. V2.7.2 extends this area with ERC-721 RIG
   ownership, active-RIG mining history, and 2-for-1 evolution.
   -------------------------------------------------------------------------- */
.mint-central-section { margin-top: 22px; }
.mint-central-section + .mint-central-section { margin-top: 34px; padding-top: 28px; border-top: 1px solid var(--line); }
.mint-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 15px; }
.mint-section-heading > div { min-width: 0; }
.mint-section-heading h2 { margin: 5px 0 5px; font-size: clamp(25px, 4vw, 34px); letter-spacing: -.04em; }
.mint-section-heading p { max-width: 760px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.mint-balance-card { width: min(330px, 100%); flex: 0 0 auto; }

.rig-mint-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.rig-mint-card { min-width: 0; padding: 14px; box-shadow: none; }
.rig-mint-card > img { width: 100%; aspect-ratio: 1; display: block; object-fit: contain; border: 1px solid var(--line); border-radius: 15px; background: rgba(0,0,0,.18); image-rendering: pixelated; }
.rig-mint-copy { display: grid; gap: 8px; padding-top: 11px; }
.rig-mint-copy h3 { margin: 0; min-height: 38px; font-size: 17px; line-height: 1.05; letter-spacing: -.025em; }
.rig-edition-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.rig-edition-meta > span { min-width: 0; padding: 7px 8px; border: 1px solid var(--line); border-radius: 9px; color: var(--muted); font-size: 8px; letter-spacing: .055em; }
.rig-edition-meta b { display: block; margin-top: 3px; overflow-wrap: anywhere; color: var(--text); font-size: 11px; }
.rig-mint-button { width: 100%; min-height: 43px; padding-inline: 8px; font-size: 9px; }

.achievement-workspace { margin-top: 0; }
.achievement-identity-row { display: grid; grid-template-columns: 140px 1fr; gap: 20px; align-items: center; }
.achievement-visual { width: 140px; aspect-ratio: 4 / 5; overflow: hidden; border: 1px solid var(--line-bright); border-radius: 0 0 18px 18px; background: radial-gradient(circle at 70% 25%, rgba(0,231,255,.16), transparent 30%), linear-gradient(135deg, #241047, #090b14); }
.achievement-visual::before { content: "#"; width: 100%; height: 100%; display: grid; place-items: center; color: var(--magenta); font-size: 64px; font-weight: 900; text-shadow: 4px 4px 0 rgba(0,231,255,.22); }
.achievement-visual.has-image::before { display: none; }
.achievement-image { width: 100%; height: 100%; display: block; object-fit: contain; image-rendering: pixelated; }
.achievement-image:not([src]), .achievement-image[src=""] { display: none; }
.achievement-identity-row h2 { margin: 5px 0 10px; font-size: 32px; letter-spacing: -.04em; }
.achievement-stats { grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 20px; }

@media (min-width: 851px) {
  .achievement-workspace { align-items: stretch; }
  .achievement-workspace > .side-stack { display: flex; flex-direction: column; justify-content: space-between; min-height: 100%; }
}

@media (max-width: 1050px) {
  .rig-mint-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 850px) {
  .mint-section-heading { align-items: stretch; flex-direction: column; }
  .mint-balance-card { width: 100%; }
  .rig-mint-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .achievement-identity-row { grid-template-columns: 100px 1fr; gap: 14px; }
  .achievement-visual { width: 100px; border-radius: 0 0 15px 15px; }
  .achievement-identity-row h2 { font-size: 25px; }
}

@media (max-width: 520px) {
  .rig-mint-grid { grid-template-columns: 1fr; }
  .rig-mint-card { display: grid; grid-template-columns: 96px minmax(0,1fr); gap: 12px; align-items: center; }
  .rig-mint-card > img { width: 96px; }
  .rig-mint-copy { padding-top: 0; }
  .rig-mint-copy h3 { min-height: 0; }
}

/* --------------------------------------------------------------------------
   V2.5.0 maintenance + optional NFT access gate
   -------------------------------------------------------------------------- */
.maintenance-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 18px;
  padding: 13px 16px;
  border: 1px solid var(--magenta);
  border-radius: 14px;
  background: rgba(255, 43, 214, .08);
}
.maintenance-banner[hidden] { display: none !important; }
.maintenance-banner strong { font-size: 11px; letter-spacing: .08em; }
.maintenance-banner span { color: var(--muted); font-size: 10px; line-height: 1.45; text-align: right; }

.access-gate {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(5, 7, 8, .94);
  backdrop-filter: blur(18px);
}
.access-gate[hidden] { display: none !important; }
.access-gate-card {
  width: min(560px, 100%);
  padding: 30px;
  border: 1px solid var(--line-bright);
  border-radius: 20px;
  background: var(--panel);
  box-shadow: var(--shadow);
  text-align: center;
}
.access-gate-card h1 { margin: 8px 0 10px; font-size: clamp(30px, 7vw, 52px); letter-spacing: -.05em; }
.access-gate-card p { margin: 0 auto; max-width: 450px; color: var(--muted); line-height: 1.55; }
.access-gate-card small { display: block; margin-top: 16px; color: var(--muted); font-size: 8px; line-height: 1.5; }
.access-gate-actions { display: flex; justify-content: center; gap: 10px; margin-top: 22px; }
body.access-denied .tabs button[data-tab] { opacity: .28; pointer-events: none; }
body.access-checking .tabs button[data-tab] { opacity: .55; pointer-events: none; }

@media (max-width: 700px) {
  .maintenance-banner { align-items: flex-start; flex-direction: column; }
  .maintenance-banner span { text-align: left; }
  .access-gate-card { padding: 24px 18px; }
  .access-gate-actions { flex-direction: column; }
}

/* --------------------------------------------------------------------------
   V2.6.0 RIG mining utility
   -------------------------------------------------------------------------- */
.rig-mining-boost {
  min-width: 190px;
  display: grid;
  gap: 3px;
  padding: 7px 12px;
  border-left: 1px solid rgba(255,255,255,.1);
  border-right: 1px solid rgba(255,255,255,.1);
  text-align: center;
}
.rig-mining-boost > span {
  color: var(--muted);
  font-size: 8px;
  letter-spacing: .12em;
}
.rig-mining-boost > strong {
  color: var(--accent);
  font-size: 10px;
  letter-spacing: .025em;
}
.rig-mining-boost > small {
  color: var(--muted);
  font-size: 8px;
  line-height: 1.3;
}
.rig-utility {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin: 2px 0 8px;
  padding: 4px 7px;
  border: 1px solid rgba(0, 231, 255, .28);
  border-radius: 999px;
  color: var(--accent);
  background: rgba(0, 231, 255, .06);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .07em;
}
@media (max-width: 720px) {
  .rig-mining-boost {
    min-width: 0;
    padding: 7px 0;
    border-left: 0;
    border-right: 0;
    border-top: 1px solid rgba(255,255,255,.08);
    border-bottom: 1px solid rgba(255,255,255,.08);
    text-align: left;
  }
}


/* --------------------------------------------------------------------------
   V2.6.3 Claim-state cleanup + header MEMEHASH balance
   -------------------------------------------------------------------------- */
.header-mh-balance {
  min-width: 178px;
  min-height: 42px;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 5px 13px 4px;
  border: 1px solid var(--line-bright);
  border-radius: var(--radius-sm);
  background: rgba(30, 7, 49, .9);
  box-shadow: inset 3px 0 0 var(--magenta);
  font-variant-numeric: tabular-nums;
}
.header-mh-balance > span {
  color: var(--faint);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .1em;
  line-height: 1;
}
.header-mh-balance > strong {
  color: var(--text);
  font-family: var(--font-pixel);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.15;
  white-space: nowrap;
}
.header-mh-balance > strong b { color: var(--accent); }
.header-mh-balance > strong small {
  color: var(--magenta);
  font-size: 9px;
  font-weight: 800;
}

@media (max-width: 850px) {
  .topbar { gap: 10px; }
  .brand { display: none; }
  .header-mh-balance { margin-right: auto; min-width: 150px; }
}

@media (max-width: 620px) {
  .header-mh-balance {
    min-width: 122px;
    min-height: 38px;
    padding: 4px 9px;
  }
  .header-mh-balance > span { font-size: 7px; }
  .header-mh-balance > strong { font-size: 11px; }
  .header-mh-balance > strong small { font-size: 8px; }
}

@media (max-width: 460px) {
  .header-mh-balance { min-width: 105px; }
  .header-mh-balance > span { display: none; }
}

@media (max-width: 370px) {
  .header-mh-balance { display: none; }
}

/* --------------------------------------------------------------------------
   V2.7.2 Mint Central — ERC-721 RIG ownership, active selection and 2-for-1
   evolution workshop.
   -------------------------------------------------------------------------- */
.rig-top-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, .75fr);
  gap: 16px;
  align-items: stretch;
}
.rig-active-card,
.rig-old-mint-card,
.rig-prices-card,
.rig-evolution-card { min-width: 0; }
.rig-active-identity {
  display: grid;
  grid-template-columns: 132px minmax(0,1fr);
  gap: 18px;
  align-items: center;
  margin-top: 12px;
}
.rig-active-visual {
  width: 132px;
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid var(--line-bright);
  border-radius: 18px;
  background: radial-gradient(circle at 70% 25%, rgba(0,231,255,.14), transparent 30%), linear-gradient(135deg, #241047, #090b14);
}
.rig-active-visual::before {
  content: "RIG";
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  color: var(--muted);
  font-size: 17px;
}
.rig-active-visual.has-image::before { display: none; }
.rig-active-image,
.rig-active-visual img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  image-rendering: pixelated;
}
.rig-active-visual img:not([src]),
.rig-active-visual img[src=""] { display: none; }
.rig-active-identity h2 { margin: 5px 0 10px; font-size: clamp(25px, 3vw, 34px); letter-spacing: -.04em; }
.rig-active-stats { grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 18px; }
.rig-history-actions {
  display: grid;
  grid-template-columns: minmax(0,1fr) 150px minmax(190px,.7fr);
  gap: 10px;
  align-items: end;
  margin-top: 18px;
}
.rig-history-actions > div:first-child { display: grid; gap: 6px; align-self: center; }
.rig-history-actions > div:first-child strong { color: var(--accent); font-size: 9px; line-height: 1.45; }
.rig-history-actions .notice { grid-column: 1 / -2; margin: 0; }
.rig-history-actions #recordRigProofButton { min-height: 42px; }

.rig-old-mint-card { display: flex; flex-direction: column; }
.rig-old-mint-body { display: grid; grid-template-columns: 116px minmax(0,1fr); gap: 15px; align-items: center; margin: 14px 0 4px; }
.rig-old-mint-body img { width: 116px; aspect-ratio: 1; object-fit: contain; border: 1px solid var(--line); border-radius: 15px; background: rgba(0,0,0,.18); image-rendering: pixelated; }
.rig-old-mint-body h2 { margin: 5px 0 8px; font-size: 28px; letter-spacing: -.04em; }
.rig-old-mint-card .info-copy { margin: 12px 0; }
.rig-mint-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: auto; margin-bottom: 10px; }
.rig-mint-summary span { padding: 10px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.rig-mint-summary b { display: block; margin-top: 4px; color: var(--text); font-size: 11px; }

.rig-prices-card { margin-top: 16px; }
.rig-price-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; margin-top: 12px; }
.rig-price-item { min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.015); }
.rig-price-item > span:first-child { display: block; min-height: 24px; color: var(--muted); font-size: 7px; line-height: 1.35; letter-spacing: .075em; }
.rig-price-item strong { display: block; margin-top: 5px; color: var(--text); font-size: 11px; line-height: 1.25; }
.rig-price-pending,
.rig-price-steady { display: block; margin-top: 7px; font-size: 7px; line-height: 1.4; }
.rig-price-pending { color: var(--magenta); }
.rig-price-steady { color: var(--muted); opacity: .65; }
.rig-pending-details { margin-top: 12px; }
.rig-pending-price-list { display: grid; gap: 7px; margin-top: 9px; }
.rig-pending-price-list > div { display: grid; grid-template-columns: 1fr auto; gap: 5px 12px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 9px; }
.rig-pending-price-list span { color: var(--muted); font-size: 8px; }
.rig-pending-price-list strong { font-size: 9px; }
.rig-pending-price-list small { grid-column: 1 / -1; color: var(--magenta); font-size: 7px; }
.rig-no-pending { color: var(--muted); font-size: 8px; }

.rig-owned-heading { display: flex; justify-content: space-between; gap: 16px; margin: 27px 0 12px; }
.rig-owned-heading h3 { margin: 5px 0 4px; font-size: 24px; letter-spacing: -.035em; }
.rig-owned-heading h3 b { color: var(--accent); }
.rig-owned-heading p { margin: 0; max-width: 800px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.rig-owned-empty { margin: 0; }
.owned-rig-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.owned-rig-card { padding: 12px; box-shadow: none; }
.owned-rig-card.is-active { border-color: var(--accent); box-shadow: inset 0 0 0 1px rgba(0,231,255,.12); }
.owned-rig-image { overflow: hidden; aspect-ratio: 1; border: 1px solid var(--line); border-radius: 14px; background: rgba(0,0,0,.18); }
.owned-rig-image img { width: 100%; height: 100%; display: block; object-fit: contain; image-rendering: pixelated; }
.owned-rig-copy { display: grid; gap: 7px; padding-top: 10px; }
.owned-rig-title { display: flex; align-items: center; justify-content: space-between; gap: 7px; }
.active-rig-pill { padding: 4px 6px; border: 1px solid var(--accent); border-radius: 999px; color: var(--accent); font-size: 7px; letter-spacing: .08em; }
.owned-rig-copy h3 { margin: 0; min-height: 36px; font-size: 16px; line-height: 1.05; }
.owned-rig-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.owned-rig-stats span { padding: 7px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); font-size: 7px; }
.owned-rig-stats b { display: block; margin-top: 3px; color: var(--text); font-size: 10px; }
.owned-rig-active-button { width: 100%; min-height: 40px; font-size: 8px; }

.rig-evolution-card { margin-top: 18px; }
.rig-evolution-head { display: flex; justify-content: space-between; gap: 20px; align-items: end; margin: 13px 0 12px; }
.rig-evolution-head h3 { margin: 5px 0 0; font-size: 24px; letter-spacing: -.035em; }
.rig-tier-field { width: min(250px,100%); }
.rig-tier-field select { width: 100%; }
.rig-evolution-candidates { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.rig-evolution-empty { grid-column: 1 / -1; margin: 0; }
.rig-evolution-candidate { min-width: 0; min-height: 76px; display: grid; grid-template-columns: 58px minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 8px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.015); color: var(--text); text-align: left; cursor: pointer; }
.rig-evolution-candidate:hover { border-color: var(--line-bright); }
.rig-evolution-candidate.selected { border-color: var(--magenta); background: rgba(255,43,214,.07); }
.rig-evolution-candidate img { width: 58px; height: 58px; object-fit: contain; image-rendering: pixelated; }
.rig-evolution-candidate span { min-width: 0; display: grid; gap: 5px; }
.rig-evolution-candidate b { font-size: 9px; }
.rig-evolution-candidate small { color: var(--muted); font-size: 7px; line-height: 1.4; }
.rig-evolution-candidate i { color: var(--accent); font-size: 7px; font-style: normal; }
.rig-evolution-candidate.selected i { color: var(--magenta); }
.rig-evolution-summary { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; margin: 12px 0; }
.rig-evolution-summary > div { padding: 10px; border: 1px solid var(--line); border-radius: 9px; }
.rig-evolution-summary span { display: block; color: var(--muted); font-size: 7px; letter-spacing: .07em; }
.rig-evolution-summary strong { display: block; margin-top: 4px; font-size: 10px; line-height: 1.35; }
.rig-evolution-card > .button-large { width: 100%; margin-top: 10px; }

@media (max-width: 1100px) {
  .owned-rig-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .rig-price-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .rig-evolution-candidates { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 850px) {
  .rig-top-grid { grid-template-columns: 1fr; }
  .rig-history-actions { grid-template-columns: 1fr 150px; }
  .rig-history-actions .notice { grid-column: 1 / -1; }
  .rig-history-actions #recordRigProofButton { grid-column: 1 / -1; }
  .owned-rig-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rig-evolution-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rig-evolution-summary > div:last-child { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .rig-active-identity { grid-template-columns: 92px minmax(0,1fr); gap: 12px; }
  .rig-active-visual { width: 92px; border-radius: 14px; }
  .rig-active-stats { grid-template-columns: 1fr; }
  .rig-history-actions { grid-template-columns: 1fr; }
  .rig-history-actions .notice,
  .rig-history-actions #recordRigProofButton { grid-column: 1; }
  .rig-old-mint-body { grid-template-columns: 88px minmax(0,1fr); }
  .rig-old-mint-body img { width: 88px; }
  .rig-price-grid { grid-template-columns: 1fr 1fr; }
  .owned-rig-grid { grid-template-columns: 1fr; }
  .owned-rig-card { display: grid; grid-template-columns: 94px minmax(0,1fr); gap: 11px; align-items: center; }
  .owned-rig-image { width: 94px; }
  .owned-rig-copy { padding-top: 0; }
  .owned-rig-copy h3 { min-height: 0; }
  .rig-evolution-head { align-items: stretch; flex-direction: column; }
  .rig-tier-field { width: 100%; }
  .rig-evolution-candidates { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   MemeHash v2.8.2 — arcade leaderboard
   -------------------------------------------------------------------------- */
.leaderboard-card { padding: 22px; overflow: hidden; border-color: var(--line-bright); }
.leaderboard-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.leaderboard-mode-tabs { display: inline-grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 340px; padding: 4px; border: 1px solid var(--line-bright); border-radius: 12px; background: #0b0014; }
.leaderboard-mode-tabs button { min-height: 38px; padding: 0 17px; border-radius: 8px; color: var(--muted); background: transparent; font-size: 11px; font-weight: 850; letter-spacing: .065em; }
.leaderboard-mode-tabs button.is-active,
.leaderboard-mode-tabs button[aria-pressed="true"] { color: var(--accent-ink); background: var(--accent); box-shadow: 3px 3px 0 rgba(255,0,212,.36); }
.leaderboard-top-toggle { width: auto; min-width: 190px; }
.leaderboard-top-toggle button { min-width: 90px; font-size: 10px; font-weight: 800; letter-spacing: .05em; }
.leaderboard-refresh { margin-left: auto; min-width: 108px; }

.leaderboard-epoch-nav { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: stretch; gap: 9px; margin: 14px 0; padding: 10px; border: 1px solid var(--line); border-radius: 14px; background: rgba(5,0,12,.28); }
.leaderboard-epoch-nav > button,
.leaderboard-epoch-actions button { min-height: 48px; }
.leaderboard-epoch-current { min-width: 0; display: grid; place-content: center; gap: 5px; text-align: center; }
.leaderboard-epoch-current span { color: var(--yellow); font-size: 14px; font-weight: 850; letter-spacing: .04em; }
.leaderboard-epoch-current small { color: var(--muted); font-size: 9px; letter-spacing: .055em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.leaderboard-epoch-actions { display: flex; gap: 8px; }

.leaderboard-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; margin: 15px 0 12px; border: 1px solid var(--line); border-radius: 13px; background: var(--line); }
.leaderboard-summary > div { min-width: 0; display: grid; gap: 6px; padding: 12px 14px; background: var(--surface-2); }
.leaderboard-summary span { color: var(--muted); font-size: 9px; letter-spacing: .075em; }
.leaderboard-summary strong { overflow: hidden; color: var(--text); font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }

.leaderboard-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 14px; background: #090012; }
.leaderboard-table { width: 100%; min-width: 780px; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.leaderboard-table th { padding: 12px 14px; border-bottom: 1px solid var(--line-bright); color: var(--faint); background: rgba(118,37,157,.12); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-align: left; white-space: nowrap; }
.leaderboard-table td { padding: 14px; border-bottom: 1px solid rgba(118,37,157,.3); color: var(--muted); font-size: 12px; white-space: nowrap; }
.leaderboard-table tbody tr:last-child td { border-bottom: 0; }
.leaderboard-table tbody tr { transition: background .14s ease, box-shadow .14s ease; }
.leaderboard-table tbody tr:hover { background: rgba(0,231,255,.035); }
.leaderboard-table tbody tr.is-you { background: linear-gradient(90deg, rgba(0,231,255,.09), rgba(255,0,212,.055)); box-shadow: inset 4px 0 0 var(--accent); }
.leaderboard-rank { width: 72px; color: var(--yellow) !important; font-weight: 900; }
.leaderboard-miner { min-width: 170px; }
.leaderboard-wallet-link { color: var(--text); font-family: var(--font-mono); text-decoration: none; }
.leaderboard-wallet-link:hover { color: var(--accent); }
.leaderboard-you-badge { display: inline-flex; margin-left: 8px; padding: 4px 6px; border: 1px solid rgba(0,231,255,.4); border-radius: 999px; color: var(--accent); background: rgba(0,231,255,.06); font-family: var(--font-pixel); font-size: 7px; letter-spacing: .08em; vertical-align: 1px; }
.leaderboard-score { color: var(--text) !important; font-size: 13px !important; font-weight: 850; }
.leaderboard-rig { color: var(--magenta) !important; }

.leaderboard-empty { display: grid; gap: 7px; place-items: center; min-height: 220px; padding: 30px; border: 1px dashed var(--line-bright); border-radius: 14px; color: var(--muted); text-align: center; }
.leaderboard-empty strong { color: var(--yellow); font-size: 15px; }
.leaderboard-empty span { max-width: 560px; font-family: var(--font-body); font-size: 13px; line-height: 1.5; }

.leaderboard-you-card { display: grid; grid-template-columns: 150px minmax(0, 1fr) minmax(150px, auto) auto; align-items: center; gap: 18px; margin-top: 14px; padding: 18px 20px; border-color: var(--line-bright); background: linear-gradient(110deg, rgba(0,231,255,.055), rgba(255,0,212,.035) 62%, transparent), var(--surface); }
.leaderboard-you-rank,
.leaderboard-you-copy,
.leaderboard-you-rig { min-width: 0; display: grid; gap: 6px; }
.leaderboard-you-rank span,
.leaderboard-you-rig span { color: var(--muted); font-size: 8px; letter-spacing: .09em; }
.leaderboard-you-rank strong { color: var(--yellow); font-size: 24px; }
.leaderboard-you-copy strong { overflow: hidden; color: var(--text); font-family: var(--font-mono); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.leaderboard-you-copy span { color: var(--muted); font-size: 10px; line-height: 1.45; }
.leaderboard-you-rig strong { overflow: hidden; color: var(--magenta); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.leaderboard-you-card .button-primary { min-width: 150px; }

@media (max-width: 850px) {
  .leaderboard-you-card { grid-template-columns: 120px minmax(0,1fr) minmax(130px,auto); }
  .leaderboard-you-card .button-primary { grid-column: 1 / -1; width: 100%; }
}

@media (max-width: 620px) {
  .tabs { justify-content: flex-start; overflow-x: auto; scrollbar-width: none; }
  .tabs::-webkit-scrollbar { display: none; }
  .tab { flex: 0 0 auto; min-width: 92px; }
  .leaderboard-card { padding: 15px; }
  .leaderboard-toolbar { display: grid; grid-template-columns: 1fr 1fr; }
  .leaderboard-mode-tabs { grid-column: 1 / -1; min-width: 0; width: 100%; }
  .leaderboard-top-toggle { min-width: 0; width: 100%; }
  .leaderboard-top-toggle button { min-width: 0; }
  .leaderboard-refresh { width: 100%; min-width: 0; margin-left: 0; }
  .leaderboard-epoch-nav { grid-template-columns: 1fr 1fr; }
  .leaderboard-epoch-current { grid-column: 1 / -1; grid-row: 1; min-height: 54px; }
  .leaderboard-epoch-nav > #leaderboardEpochPrev { grid-column: 1; grid-row: 2; }
  .leaderboard-epoch-actions { grid-column: 2; grid-row: 2; display: grid; grid-template-columns: 1fr 1fr; }
  .leaderboard-epoch-actions button { min-width: 0; padding: 0 8px; font-size: 9px; }
  .leaderboard-summary > div { padding: 10px; }
  .leaderboard-summary strong { font-size: 12px; }
  .leaderboard-table { min-width: 720px; }
  .leaderboard-table th { padding: 10px; font-size: 8px; }
  .leaderboard-table td { padding: 12px 10px; font-size: 11px; }
  .leaderboard-you-card { grid-template-columns: 1fr 1fr; gap: 13px; padding: 16px; }
  .leaderboard-you-copy { grid-column: 1 / -1; grid-row: 1; }
  .leaderboard-you-rank { grid-column: 1; grid-row: 2; }
  .leaderboard-you-rig { grid-column: 2; grid-row: 2; text-align: right; }
  .leaderboard-you-card .button-primary { grid-column: 1 / -1; grid-row: 3; }
}

/* MemeHash v2.9.1 · Status market + token economy */
.status-market-panel,
.status-economy-panel { margin-top: 16px; padding: 22px; box-shadow: none; }
.status-market-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.status-market-header > div { min-width: 0; }
.status-market-header p,
.status-economy-note { max-width: 760px; margin: 9px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.status-market-refresh { min-width: 92px; height: 34px; padding: 0 12px; border: 1px solid var(--line); border-radius: 9px; color: var(--muted); background: rgba(0,0,0,.12); font: inherit; font-size: 9px; letter-spacing: .08em; cursor: pointer; }
.status-market-refresh:hover:not(:disabled) { border-color: var(--line-bright); color: var(--text); }
.status-market-refresh:disabled { cursor: wait; opacity: .55; }

.status-market-price-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; margin-top: 20px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--line); }
.status-market-metric { min-width: 0; min-height: 118px; display: flex; flex-direction: column; justify-content: space-between; gap: 8px; padding: 16px; background: var(--surface); }
.status-market-metric.primary { background: linear-gradient(145deg, rgba(184,245,109,.055), transparent 62%), var(--surface); }
.status-market-metric > span,
.status-market-24h-grid span,
.status-economy-grid span { color: var(--muted); font-size: 9px; letter-spacing: .065em; text-transform: uppercase; }
.status-market-metric > strong { overflow-wrap: anywhere; font-size: clamp(19px,2.3vw,29px); letter-spacing: -.03em; }
.status-market-metric > small,
.status-market-24h-grid small { color: var(--faint); font-size: 8px; line-height: 1.4; letter-spacing: .04em; text-transform: uppercase; }
.status-market-metric strong.is-positive { color: var(--accent); }
.status-market-metric strong.is-negative,
.status-economy-grid strong.is-negative { color: var(--danger); }

.status-market-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 20px; }
.status-range-switch { display: inline-grid; grid-template-columns: repeat(5,auto); gap: 5px; }
.status-range-switch button { min-width: 45px; height: 32px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); background: rgba(0,0,0,.11); font: inherit; font-size: 9px; cursor: pointer; }
.status-range-switch button:hover,
.status-range-switch button.is-active { border-color: var(--line-bright); color: var(--text); }
.status-range-switch button.is-active { background: rgba(184,245,109,.07); color: var(--accent); }
.status-market-sync { color: var(--faint); font-size: 8px; letter-spacing: .055em; text-align: right; }

.status-market-chart-shell { position: relative; height: 300px; margin-top: 13px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: linear-gradient(180deg, rgba(184,245,109,.025), transparent 52%), rgba(0,0,0,.12); }
.status-market-chart { width: 100%; height: 100%; display: block; }
.status-market-gridline { stroke: currentColor; color: var(--line); stroke-width: 1; vector-effect: non-scaling-stroke; }
.status-market-chart-line { fill: none; stroke: var(--accent); stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linecap: square; stroke-linejoin: bevel; }
.status-market-chart-dot { fill: var(--accent); }
.status-market-chart-empty { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 7px; padding: 24px; text-align: center; background: rgba(0,0,0,.08); }
.status-market-chart-empty[hidden] { display: none; }
.status-market-chart-empty strong { font-size: 11px; letter-spacing: .06em; }
.status-market-chart-empty span { max-width: 520px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.status-market-chart-footer { display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: center; padding-top: 8px; color: var(--faint); font-size: 8px; }
.status-market-chart-footer strong { color: var(--muted); font-size: 8px; letter-spacing: .05em; }
.status-market-chart-footer span:last-child { text-align: right; }
.status-market-panel.is-loading .status-market-chart-line { opacity: .45; }

.status-market-24h-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-top: 18px; }
.status-market-24h-grid > div { min-width: 0; display: grid; gap: 7px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 10px; background: rgba(0,0,0,.08); }
.status-market-24h-grid strong { overflow-wrap: anywhere; font-size: 14px; line-height: 1.35; }

.status-economy-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 1px; margin-top: 18px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--line); }
.status-economy-grid > div { min-width: 0; min-height: 90px; display: flex; flex-direction: column; justify-content: space-between; gap: 10px; padding: 15px; background: var(--surface); }
.status-economy-grid strong { overflow-wrap: anywhere; font-size: clamp(15px,1.8vw,21px); }
.status-economy-note { max-width: none; color: var(--faint); }

@media (max-width: 900px) {
  .status-market-price-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .status-market-24h-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .status-economy-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .status-economy-grid > div:last-child { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .status-market-panel,
  .status-economy-panel { padding: 17px; }
  .status-market-header { align-items: stretch; flex-direction: column; }
  .status-market-refresh { width: 100%; }
  .status-market-price-grid,
  .status-market-24h-grid,
  .status-economy-grid { grid-template-columns: 1fr; }
  .status-economy-grid > div:last-child { grid-column: auto; }
  .status-market-toolbar { align-items: stretch; flex-direction: column; }
  .status-range-switch { width: 100%; grid-template-columns: repeat(5,1fr); }
  .status-range-switch button { min-width: 0; padding: 0 5px; }
  .status-market-sync { text-align: left; }
  .status-market-chart-shell { height: 230px; }
  .status-market-chart-footer { grid-template-columns: 1fr 1fr; }
  .status-market-chart-footer strong { grid-column: 1 / -1; grid-row: 1; text-align: center; }
}

/* ENS wallet identity labels: preserve terminal layout for unusually long names. */
#headerWalletLabel,
#menuWalletAddress,
#walletAddress,
#leaderboardYouWallet,
.leaderboard-wallet-link {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.leaderboard-wallet-link.has-ens {
  max-width: 16rem;
  display: inline-block;
  vertical-align: bottom;
}

/* v2.9.6: lightweight live hashrate history on the HASH screen. */
.hashrate-block {
  position: relative;
  display: grid;
  gap: 10px;
}
.hashrate-block > span,
.hashrate-block > .accent-meter,
.hashrate-history-stats,
.hashrate-main-row {
  position: relative;
  z-index: 1;
}
.hashrate-block > .proofEvent,
.hashrate-block > .proof-event {
  z-index: 2;
}
.hashrate-block > .proof-event {
  position: absolute;
  top: 0;
  right: 0;
  width: min(43%, 360px);
  min-height: 44px;
  margin: 0;
  padding: 10px 12px;
  border-color: rgba(255,0,212,.34);
  background: rgba(37, 4, 56, .72);
  box-shadow: inset 3px 0 0 var(--magenta);
  backdrop-filter: blur(4px);
}
.hashrate-block > .proof-event strong,
.hashrate-block > .proof-event em {
  white-space: nowrap;
}
.hashrate-main-row {
  display: grid;
  /* Keep the chart completely stationary while the live rate crosses digit boundaries. */
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 12px;
  align-items: end;
  margin-top: 4px;
}
.hashrate-main-row > strong {
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-width: 0;
  align-self: center;
  font-size: clamp(56px, 8.5vw, 86px);
  line-height: .95;
  letter-spacing: -.065em;
  font-variant-numeric: tabular-nums;
}
.hashrate-main-row > strong b {
  /* Four-digit visual slot: 99 / 101 / 999 / 9999 all reserve the same width. */
  display: inline-block;
  width: 4ch;
  min-width: 4ch;
  text-align: right;
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
  flex: 0 0 4ch;
}
.hashrate-main-row > strong b.hashrate-wide {
  font-size: .86em;
  letter-spacing: -.045em;
}
.hashrate-main-row > strong b.hashrate-xwide {
  font-size: .72em;
  letter-spacing: -.03em;
}
.hashrate-main-row > strong em {
  flex: 0 0 auto;
  color: var(--accent);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0;
}
.hashrate-history {
  margin-top: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.hashrate-history-panel {
  min-width: 0;
  padding: 10px 14px 8px;
  border: 1px solid rgba(118,37,157,.22);
  border-radius: 12px;
  background: rgba(0,0,0,.08);
}
.hashrate-history-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
  opacity: .55;
}
.hashrate-history-head > span { color: #b5c0cb; font-size: 8px; font-weight: 800; letter-spacing: .09em; }
.hashrate-history-head > small { color: var(--faint); font-size: 7px; letter-spacing: .06em; }
.hashrate-history-chart {
  display: block;
  width: 100%;
  height: 110px;
  overflow: visible;
}
.hashrate-history-chart line { stroke: rgba(126, 60, 155, .36); stroke-width: 1; vector-effect: non-scaling-stroke; }
.hashrate-history-chart path {
  fill: none;
  stroke: rgba(0, 231, 255, .76);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
  filter: none;
}
.hashrate-block > .accent-meter {
  margin-top: 2px;
}
.hashrate-history-stats {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(118,37,157,.28);
}
.hashrate-history-meta span { min-width: 0; color: var(--muted); font-size: 8px; letter-spacing: .06em; }
.hashrate-history-meta b { display: block; margin-top: 3px; overflow: hidden; color: var(--text); font-size: 10px; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }

/* v2.9.10: unify the hero numeric typography across HASH and CLAIM. */
.hashrate-main-row > strong,
.claim-amount strong {
  font-family: var(--font-pixel);
  font-weight: 700;
}
.claim-amount > span,
.claim-amount em {
  font-family: var(--font-pixel);
}
.claim-amount strong {
  font-size: clamp(56px, 8.5vw, 86px);
  line-height: .95;
  letter-spacing: -.065em;
}
.hashrate-history-panel {
  width: 100%;
}
@media (min-width: 851px) {
  .hash-workspace > .side-stack {
    justify-content: flex-start;
    gap: 16px;
    min-height: 0;
  }
}


@media (min-width: 721px) and (max-width: 1050px) {
  .hashrate-main-row {
    grid-template-columns: 270px minmax(0, 1fr);
  }
}
@media (max-width: 720px) {
  .hashrate-main-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .hashrate-main-row > strong {
    align-self: start;
    font-size: clamp(48px, 13vw, 78px);
  }
  .hashrate-block > .proof-event {
    position: relative;
    top: auto;
    right: auto;
    width: 100%;
    margin: 4px 0 2px;
  }
}

@media (max-width: 640px) {
  .hashrate-history-head > small { display: none; }
  .hashrate-history-chart { height: 90px; }
  .hashrate-history-stats { gap: 5px; }
  .hashrate-history-meta b { font-size: 9px; }
}


/* v2.10.0: future SPEND tab / partner utility placeholder. */
.tab-soon {
  position: relative;
  gap: 7px;
  cursor: not-allowed;
  opacity: .38;
  filter: saturate(.55);
}
.tab-soon small {
  padding: 2px 5px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--faint);
  font-family: var(--font-pixel);
  font-size: 7px;
  letter-spacing: .06em;
}
.tab-soon:disabled:hover {
  color: var(--muted);
  background: transparent;
}
.spend-soon-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 14px;
}
.spend-soon-card {
  min-height: 180px;
  padding: 20px;
}
.spend-soon-card h2 { margin: 12px 0 9px; }
.spend-soon-card p { color: var(--muted); line-height: 1.55; }
@media (max-width: 850px) { .spend-soon-grid { grid-template-columns: 1fr; } }

/* v2.10.1: user-selectable GPU performance profiles. */
@media (max-width: 720px) {
  .gpu-profile-control { grid-template-columns: 1fr; }
  .gpu-profile-segmented { width: 100%; }
  .gpu-profile-segmented button { flex: 1; min-width: 0; padding-inline: 6px; }
}

/* --------------------------------------------------------------------------
   V2.10.3 $MemeHash market + native ETH/MH swap
   -------------------------------------------------------------------------- */
.memehash-market-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(310px, .7fr);
  gap: 14px;
  align-items: stretch;
  margin-top: 13px;
}
.status-market-chart-column { min-width: 0; display: flex; flex-direction: column; }
.memehash-market-workspace .status-market-chart-shell { flex: 1; min-height: 360px; margin-top: 0; }

.memehash-swap-panel {
  position: relative;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--line-bright);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(0,231,255,.045), transparent 48%), rgba(10,0,18,.72);
  box-shadow: inset 0 0 0 1px rgba(255,0,212,.035);
}
.memehash-swap-title { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 25px; }
.memehash-swap-title > span { color: var(--accent); font-family: var(--font-pixel); font-size: 11px; letter-spacing: .07em; }
.memehash-swap-title > small { color: var(--faint); font-size: 8px; letter-spacing: .07em; }
.memehash-swap-box {
  display: grid;
  gap: 9px;
  padding: 13px;
  border: 1px solid rgba(118,37,157,.48);
  border-radius: 11px;
  background: rgba(3,0,8,.58);
}
.memehash-swap-box.output { min-height: 104px; }
.memehash-swap-box-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; color: var(--muted); font-size: 8px; letter-spacing: .075em; }
.memehash-swap-box-head button {
  min-height: 24px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--muted);
  background: rgba(90,34,118,.16);
  font-size: 8px;
  font-weight: 850;
}
.memehash-swap-box-head button:hover { color: var(--accent); border-color: var(--accent); }
.memehash-swap-box > small { color: var(--faint); font-size: 8px; letter-spacing: .04em; }
.memehash-swap-amount { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: baseline; }
.memehash-swap-amount input {
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  outline: 0;
  color: var(--text);
  background: transparent;
  font-family: var(--font-pixel);
  font-size: clamp(28px,3vw,42px);
  letter-spacing: -.035em;
  font-variant-numeric: tabular-nums;
}
.memehash-swap-amount input:focus { box-shadow: none; }
.memehash-swap-amount > b {
  overflow: hidden;
  color: var(--text);
  font-family: var(--font-pixel);
  font-size: clamp(28px,3vw,42px);
  font-weight: 700;
  letter-spacing: -.035em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.memehash-swap-amount > strong { color: var(--accent); font-size: 11px; letter-spacing: .05em; }
.memehash-swap-flip {
  align-self: center;
  width: 38px;
  height: 38px;
  margin: -17px 0;
  z-index: 2;
  border: 1px solid var(--line-bright);
  border-radius: 9px;
  color: var(--text);
  background: var(--surface-3);
  box-shadow: 2px 2px 0 rgba(255,0,212,.2);
  font-size: 18px;
  font-weight: 900;
}
.memehash-swap-flip:hover { color: var(--accent); border-color: var(--accent); }
.memehash-swap-presets { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--line); }
.memehash-swap-presets button { min-height: 31px; color: var(--muted); background: var(--surface-2); font-size: 8px; font-weight: 850; }
.memehash-swap-presets button.is-active { color: #080010; background: var(--accent); }
.memehash-swap-details { display: grid; gap: 7px; padding: 9px 2px 1px; border-top: 1px solid rgba(118,37,157,.3); }
.memehash-swap-details > div { display: flex; justify-content: space-between; gap: 14px; color: var(--muted); font-size: 8px; letter-spacing: .045em; }
.memehash-swap-details strong { color: var(--text); font-weight: 700; text-align: right; overflow-wrap: anywhere; }
.memehash-swap-action { width: 100%; min-height: 48px; margin-top: auto; }
.memehash-swap-panel.is-quoting #memeHashSwapOutput { opacity: .6; }

@media (max-width: 1050px) {
  .memehash-market-workspace { grid-template-columns: 1fr; }
  .memehash-market-workspace .status-market-chart-shell { min-height: 300px; }
  .memehash-swap-panel { min-height: 0; }
}

@media (max-width: 620px) {
  .memehash-market-workspace { gap: 10px; }
  .memehash-market-workspace .status-market-chart-shell { min-height: 230px; }
  .memehash-swap-panel { padding: 12px; }
  .memehash-swap-amount input,
  .memehash-swap-amount > b { font-size: clamp(26px,10vw,38px); }
}


/* ===== Former trippy.css ===== */

/* MemeHash pixel lightning cursor — preserved from the previous frontend. */
:root {
  --trip-cyan: #29e7ff;
  --trip-pink: #ff2bd6;
  --trip-lime: #63ff70;
  --trip-yellow: #fff45c;
  --trip-orange: #ff8a3d;
}

.memehash-flash-cursor {
  position: fixed;
  left: 0;
  top: 0;
  width: 22px;
  height: 30px;
  z-index: 2147483647;
  pointer-events: none;
  opacity: 0;
  transform: translate3d(-100px, -100px, 0);
  transform-origin: 7px 7px;
  will-change: transform, opacity, filter;
}
.memehash-flash-cursor svg {
  width: 100%;
  height: 100%;
  overflow: visible;
  filter: drop-shadow(0 0 2px #ff2bd6) drop-shadow(0 0 5px #29e7ff);
}
.memehash-flash-cursor .flash-bolt-shadow { fill: #7a38ff; }
.memehash-flash-cursor .flash-bolt { fill: #fff45c; }
.memehash-flash-cursor .flash-core { fill: #63ff70; }
html[data-theme="trippy"] .memehash-flash-cursor.is-visible { opacity: 1; }
html[data-theme="oldschool"] .memehash-flash-cursor { display: none; }

@media (pointer: fine) {
  html.memehash-custom-cursor[data-theme="trippy"],
  html.memehash-custom-cursor[data-theme="trippy"] body,
  html.memehash-custom-cursor[data-theme="trippy"] a,
  html.memehash-custom-cursor[data-theme="trippy"] button,
  html.memehash-custom-cursor[data-theme="trippy"] input,
  html.memehash-custom-cursor[data-theme="trippy"] select,
  html.memehash-custom-cursor[data-theme="trippy"] textarea,
  html.memehash-custom-cursor[data-theme="trippy"] summary,
  html.memehash-custom-cursor[data-theme="trippy"] [role="button"] { cursor: none !important; }
}

html[data-theme="trippy"] .memehash-flash-cursor.is-clicking svg {
  animation: memehash-cursor-flash 180ms steps(3, end) both;
}
html[data-theme="trippy"] .memehash-flash-cursor.is-clicking::before,
html[data-theme="trippy"] .memehash-flash-cursor.is-clicking::after {
  content: "";
  position: absolute;
  left: 7px;
  top: 7px;
  width: 5px;
  height: 5px;
  background: var(--trip-cyan);
  box-shadow: 12px 0 0 var(--trip-pink), -9px 4px 0 var(--trip-lime), 5px 12px 0 var(--trip-yellow), -3px -9px 0 var(--trip-orange);
  animation: memehash-cursor-sparks 180ms steps(3, end) both;
}
html[data-theme="trippy"] .memehash-flash-cursor.is-clicking::after {
  transform: rotate(45deg);
  background: var(--trip-yellow);
  animation-direction: reverse;
}
@keyframes memehash-cursor-flash {
  0% { transform: scale(1); filter: brightness(1); }
  45% { transform: scale(1.7); filter: brightness(2.2); }
  100% { transform: scale(1); filter: brightness(1); }
}
@keyframes memehash-cursor-sparks {
  0% { opacity: 1; transform: scale(.6); }
  100% { opacity: 0; transform: scale(2.4); }
}
@media (prefers-reduced-motion: reduce) {
  html[data-theme="trippy"] .memehash-flash-cursor.is-clicking svg,
  html[data-theme="trippy"] .memehash-flash-cursor.is-clicking::before,
  html[data-theme="trippy"] .memehash-flash-cursor.is-clicking::after { animation: none; }
}


/* ===== Former hit-celebration.css ===== */

/* MemeHash V2.2.11 — restored HIT coin rain.
   app.js already creates .hit-coin nodes whenever a valid settlement proof is found.
   The Clean Neon UI migration accidentally removed the presentation layer and left
   #hitCelebration hidden, so the existing gamification could no longer render. */

.hit-celebration {
  position: fixed;
  inset: 0;
  z-index: 1600;
  overflow: hidden;
  pointer-events: none;
}

.hit-celebration::after {
  content: "HIT!";
  position: fixed;
  top: 11%;
  left: 50%;
  z-index: 2;
  padding: 10px 18px;
  border: 2px solid var(--accent, #00e7ff);
  border-radius: 10px;
  background: #170a24;
  color: var(--yellow, #fff238);
  box-shadow: 8px 8px 0 var(--magenta, #ff00d4);
  font-family: var(--font-pixel, monospace);
  font-size: clamp(20px, 5vw, 46px);
  letter-spacing: .12em;
  opacity: 0;
  transform: translateX(-50%) scale(0);
}

.hit-celebration.hit-active::after {
  animation: memehash-hit-banner .72s steps(5, end) both;
}

.hit-coin {
  --x: 50vw;
  --drift: 0vw;
  --delay: 0s;
  --fall: 2s;
  --spin: 180deg;
  --coin-scale: 1;
  position: absolute;
  top: -44px;
  left: 0;
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border: 3px solid var(--trip-yellow, #fff45c);
  border-radius: 50%;
  background: var(--trip-pink, #ff2bd6);
  color: #110619;
  box-shadow: 3px 3px 0 var(--trip-cyan, #29e7ff), 0 0 15px rgba(255, 43, 214, .28);
  font-family: var(--font-pixel, monospace);
  font-size: 8px;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  image-rendering: pixelated;
  transform: translate3d(var(--x), -50px, 0) scale(var(--coin-scale));
  animation: memehash-hit-coin-fall var(--fall) steps(22, end) var(--delay) forwards;
  will-change: transform, opacity;
}

.hit-coin:nth-child(3n) {
  background: var(--trip-yellow, #fff45c);
}

.hit-coin:nth-child(4n) {
  width: 28px;
  height: 28px;
  border-color: var(--trip-cyan, #29e7ff);
  background: var(--trip-lime, #63ff70);
  font-size: 7px;
}

.hit-coin:nth-child(5n) {
  border-radius: 5px;
  background: var(--trip-cyan, #29e7ff);
  box-shadow: 3px 3px 0 var(--trip-pink, #ff2bd6), 0 0 15px rgba(41, 231, 255, .26);
}

@keyframes memehash-hit-coin-fall {
  0% {
    transform: translate3d(var(--x), -50px, 0) rotate(0deg) scale(var(--coin-scale));
    opacity: 0;
  }
  6% { opacity: 1; }
  100% {
    transform: translate3d(calc(var(--x) + var(--drift)), calc(100vh + 70px), 0) rotate(var(--spin)) scale(var(--coin-scale));
    opacity: 1;
  }
}

@keyframes memehash-hit-banner {
  0% { transform: translateX(-50%) scale(0); opacity: 0; }
  20%, 65% { transform: translateX(-50%) scale(1); opacity: 1; }
  100% { transform: translateX(-50%) scale(.7); opacity: 0; }
}

@media (max-width: 720px) {
  .hit-celebration::after {
    top: 92px;
    padding: 8px 14px;
  }
  .hit-coin {
    width: 20px;
    height: 20px;
  }
  .hit-coin:nth-child(4n) {
    width: 25px;
    height: 25px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hit-coin { animation-duration: .01ms !important; }
  .hit-celebration.hit-active::after { animation-duration: .01ms !important; }
}


/* ===== Former rig-ui-hotfix.css ===== */

/* V2.2.10 — show the actual RIG artwork in the owned-RIG card. */
.nft-rig .owned-rig-image {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #080010;
  image-rendering: pixelated;
}

.nft-rig.has-image::before,
.nft-rig.has-image::after {
  display: none;
}


/* ===== Theme selector ===== */
.theme-picker {
  flex: 0 0 auto;
  min-width: 118px;
  display: grid;
  gap: 3px;
  padding: 5px 9px 6px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--surface-2);
}
.theme-picker > span {
  color: var(--faint);
  font-size: 7px;
  font-weight: 850;
  line-height: 1;
  letter-spacing: .11em;
}
.theme-picker select {
  width: 100%;
  min-height: 18px;
  padding: 0 18px 0 0;
  border: 0;
  outline: 0;
  color: var(--accent);
  background: transparent;
  font-family: var(--font-pixel);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  cursor: pointer;
}
.theme-picker select option {
  color: var(--text);
  background: var(--surface-2);
}
@media (max-width: 980px) {
  .theme-picker { min-width: 104px; padding-inline: 7px; }
  .theme-picker > span { display: none; }
  .theme-picker select { min-height: 28px; font-size: 9px; }
}
@media (max-width: 760px) {
  .theme-picker { min-width: 86px; max-width: 100px; }
}
@media (max-width: 560px) {
  .theme-picker { min-width: 74px; max-width: 82px; padding-inline: 5px; }
  .theme-picker select { font-size: 8px; }
}
