/* Nodora Miner: dark "room" scene with glowing rigs, a shop, the network strip and the leaderboard. */
#page-miner{padding-bottom:28px}
.mn-wrap{display:grid;gap:12px}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-back{justify-self:start;margin:0;padding:6px 12px!important;min-height:0;border:1px solid var(--line)!important;border-radius:999px!important;background:var(--panel,var(--surface))!important;box-shadow:none!important;color:var(--text)!important;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.mn-scene{position:relative;overflow:hidden;padding:16px;border-radius:22px;color:#fff;background:radial-gradient(90% 70% at 80% 10%,rgba(56,189,248,.25),transparent 60%),linear-gradient(160deg,var(--a),var(--b));box-shadow:0 12px 30px rgba(15,23,42,.35)}
.mn-scene::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 2px,transparent 2px 6px);pointer-events:none}
.mn-scene-top{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:800}
.mn-stage{padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.14);letter-spacing:.06em;text-transform:uppercase}
.mn-room{color:rgba(255,255,255,.75)}
.mn-rigs{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;min-height:76px;margin:14px 0;padding:10px;border-radius:14px;background:rgba(0,0,0,.25);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.mn-rigs span{display:grid;place-items:center;aspect-ratio:1;font-size:22px;border-radius:10px;background:rgba(255,255,255,.06);animation:mn-glow 2.4s ease-in-out infinite;animation-delay:var(--d)}
@keyframes mn-glow{50%{background:rgba(56,189,248,.22);box-shadow:0 0 14px rgba(56,189,248,.45)}}
.mn-balance{display:flex;align-items:baseline;gap:8px}
.mn-balance small{position:absolute;opacity:0}
.mn-balance strong{font-size:40px;line-height:1;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-shadow:0 0 18px rgba(56,189,248,.35)}
.mn-balance span{font-size:16px;font-weight:800;color:#7dd3fc}
.mn-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.mn-stats span{display:grid;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.1)}
.mn-stats b{font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}.mn-stats small{font-size:11px;color:rgba(255,255,255,.7)}
.mn-intro{display:grid;justify-items:center;text-align:center;gap:8px;padding:28px 18px}
.mn-big{font-size:56px;line-height:1.1;filter:drop-shadow(0 6px 18px rgba(56,189,248,.5))}
:is(html,#liquid-glass):is(html,#liquid-glass) body .mn-intro h2{margin:4px 0 0;font-size:26px;line-height:1.15;color:#fff!important}.mn-intro p{margin:0;max-width:420px;font-size:15px;line-height:1.45;color:rgba(255,255,255,.85)}.mn-intro small{color:rgba(255,255,255,.7)}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-start{min-height:50px;margin:8px 0 4px;padding:0 28px!important;border:0!important;border-radius:14px!important;background:linear-gradient(135deg,#38bdf8,#6366f1)!important;color:#fff!important;font:inherit;font-size:17px;font-weight:850;cursor:pointer;box-shadow:0 8px 22px rgba(56,189,248,.4)!important}
:is(html,#liquid-glass):is(html,#liquid-glass) body .mn-card{margin:0;padding:14px!important;border-radius:18px!important;border:1px solid var(--line)!important;background:var(--card,var(--surface))!important}
.mn-card h3{margin:0 0 10px;font-size:16px}
.mn-net{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:10px!important}
.mn-net div{display:grid;min-width:0;text-align:center}.mn-net small{font-size:11px;color:var(--muted)}.mn-net b{font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mn-shop{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.mn-shop li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:14px;background:color-mix(in srgb,var(--text) 4%,transparent)}
.mn-shop li.mn-locked{opacity:.55}
.mn-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:12px;font-size:22px;background:linear-gradient(145deg,#1e1b4b,#312e81)}
.mn-item{display:grid;flex:1;min-width:0;line-height:1.25}.mn-item b{font-size:15px}.mn-item small{font-size:12px;color:var(--muted)}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-buy{flex:none;min-width:84px;min-height:38px;padding:0 12px!important;border:0!important;border-radius:11px!important;background:linear-gradient(135deg,#22c55e,#15803d)!important;color:#fff!important;font:inherit;font-size:14px;font-weight:850;cursor:pointer;box-shadow:0 3px 10px rgba(34,197,94,.3)!important;font-variant-numeric:tabular-nums}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-buy:disabled{background:color-mix(in srgb,var(--text) 10%,transparent)!important;color:var(--muted)!important;box-shadow:none!important;cursor:default}
.mn-lock{font-size:12px;font-weight:700;color:var(--muted)}
.mn-move{display:flex;align-items:center;gap:10px;margin-top:10px;padding:12px;border-radius:14px;background:linear-gradient(135deg,rgba(56,189,248,.14),rgba(99,102,241,.14));border:1px solid rgba(99,102,241,.3)}
.mn-move div{display:grid;flex:1;min-width:0}.mn-move small{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#6366f1}.mn-move b{font-size:17px}.mn-move span{font-size:12px;color:var(--muted)}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-go{flex:none;min-height:42px;padding:0 14px!important;border:0!important;border-radius:12px!important;background:linear-gradient(135deg,#38bdf8,#6366f1)!important;color:#fff!important;font:inherit;font-size:14px;font-weight:850;cursor:pointer}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-go:disabled{background:color-mix(in srgb,var(--text) 10%,transparent)!important;color:var(--muted)!important;cursor:default}
.mn-note,.mn-msg{margin:6px 0 0;font-size:13px;color:var(--muted)}.mn-msg:empty{display:none}
.mn-welcome{padding:12px 14px;border-radius:14px;font-size:14px;background:linear-gradient(135deg,rgba(34,197,94,.14),rgba(56,189,248,.14));border:1px solid rgba(34,197,94,.35)}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-share{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;min-height:34px;padding:0 14px!important;border:0!important;border-radius:999px!important;background:linear-gradient(135deg,#6366f1,#0ea5e9)!important;color:#fff!important;font:inherit;font-size:13px;font-weight:800;cursor:pointer;box-shadow:0 4px 14px rgba(99,102,241,.3)!important}
.mn-share svg{width:15px;height:15px}
.mn-feed{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:13px}
.mn-feed li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}.mn-feed small{margin-left:auto;color:var(--muted)}
.mn-board-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.mn-board-head h3{margin:0}
.mn-tabs{display:flex;gap:2px;padding:3px;border-radius:10px;background:color-mix(in srgb,var(--text) 6%,transparent)}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-tabs button{min-height:30px;padding:0 10px!important;border:0!important;border-radius:8px!important;background:transparent!important;box-shadow:none!important;color:var(--muted)!important;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-tabs button.active{background:var(--panel,#fff)!important;color:var(--text)!important}
.mn-board ol{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.mn-board li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:14px;background:color-mix(in srgb,var(--text) 4%,transparent)}
.mn-board li.mn-me{background:color-mix(in srgb,#6366f1 14%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,#6366f1 40%,transparent)}
.mn-rank{flex:none;min-width:26px;text-align:center;font-weight:850;color:var(--muted)}
.mn-av{flex:none;width:34px;height:34px;border-radius:50%;object-fit:cover}.mn-av-blank{display:grid;place-items:center;font-weight:800;color:#fff;background:linear-gradient(145deg,#38bdf8,#6366f1)}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-player{display:flex;flex-direction:column;align-items:flex-start;flex:1;min-width:0;margin:0;padding:0!important;min-height:0;border:0!important;background:none!important;box-shadow:none!important;color:var(--text)!important;font:inherit;text-align:left;cursor:pointer;line-height:1.25}
.mn-player b{font-size:14px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mn-player small{font-size:12px;color:var(--muted)}
.mn-val{flex:none;font-size:14px;font-variant-numeric:tabular-nums}
.mn-rules{margin:0;font-size:11px;color:var(--muted);text-align:center}
.mn-skeleton{height:360px;border-radius:22px;background:linear-gradient(90deg,color-mix(in srgb,var(--text) 5%,transparent) 25%,color-mix(in srgb,var(--text) 10%,transparent) 50%,color-mix(in srgb,var(--text) 5%,transparent) 75%);background-size:200% 100%;animation:mn-sh 1.2s linear infinite}
@keyframes mn-sh{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.mn-rigs span{animation:none}}
/* Charts card: one row that opens the game. */
:is(html,#liquid-glass):is(html,#liquid-glass) body .miner-card{position:relative;overflow:hidden;padding:12px 14px!important;margin:0 0 12px;border:1px solid color-mix(in srgb,#0ea5e9 35%,var(--line))!important;background:radial-gradient(120% 90% at 100% 0%,rgba(56,189,248,.18),transparent 55%),radial-gradient(90% 80% at 0% 100%,rgba(99,102,241,.18),transparent 60%),var(--card,var(--surface))!important}
.miner-card:empty{display:none}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-mini{display:flex;align-items:center;gap:12px;width:100%;margin:0;padding:0!important;min-height:0;border:0!important;background:none!important;box-shadow:none!important;color:inherit!important;font:inherit;text-align:left;cursor:pointer}
.mn-mini-icon{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:11px;font-size:20px;background:linear-gradient(145deg,#1e1b4b,#4c1d95);box-shadow:0 4px 12px rgba(76,29,149,.3)}
.mn-mini-text{display:grid;flex:1;min-width:0}
.mn-mini-text small{font-size:11px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;background:linear-gradient(90deg,#0284c7,#6366f1);-webkit-background-clip:text;background-clip:text;color:transparent}
body[data-theme=dark] .mn-mini-text small{background-image:linear-gradient(90deg,#7dd3fc,#a5b4fc)}
.mn-mini-text b{margin-top:2px;font-size:14px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.mn-mini-go{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-size:22px;color:var(--muted);background:color-mix(in srgb,var(--text) 6%,transparent)}

/* Games page (opened from the controller button beside the bell). */
.games-wrap{display:grid;gap:12px;max-width:760px;margin:0 auto;padding:4px 0 24px}
.games-head h2{margin:4px 0 2px;font-size:26px}.games-head p{margin:0;color:var(--muted);font-size:14px}
:is(html,#liquid-glass):is(html,#liquid-glass) body #page-games .card{margin:0}
:is(html,#liquid-glass):is(html,#liquid-glass) body .games-button.active{background:linear-gradient(135deg,#6366f1,#8b5cf6)!important;color:#fff!important;border-color:transparent!important}
/* Drawn machines in the shop, the farm and the intro. */
.mn-art{display:block;width:100%;height:100%}
.mn-icon{padding:4px;font-size:0}
.mn-rigs span{padding:3px;font-size:0}
.mn-big{display:block;width:96px;height:96px;font-size:0;filter:drop-shadow(0 6px 18px rgba(56,189,248,.45))}
.mn-lock{display:inline-flex;align-items:center;gap:5px}
.mn-feed li>span:first-child svg{width:15px;height:15px;color:#818cf8}
.mn-welcome svg{width:16px;height:16px;vertical-align:-3px;margin-right:6px}
/* Games page tiles: a scene, what the game is, your stats and a Play button. */
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body #page-games :is(.league-card,.miner-card){padding:0!important;border-radius:20px!important;overflow:hidden}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .game-tile{position:relative;display:grid;grid-template-columns:1fr auto;align-items:end;gap:6px 12px;width:100%;margin:0;padding:0 0 14px!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;color:inherit!important;font:inherit;text-align:left;cursor:pointer;min-height:0}
.gt-art{grid-column:1/-1;display:block;height:118px;overflow:hidden}
.gt-scene{display:block;width:100%;height:100%}
.gt-body{display:grid;gap:4px;padding:6px 0 0 16px;min-width:0}
.gt-kicker{font-size:11px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;color:#7c3aed}
.gt-miner .gt-kicker{color:#0284c7}
body[data-theme=dark] .gt-kicker{color:#c4b5fd}body[data-theme=dark] .gt-miner .gt-kicker{color:#7dd3fc}
.gt-title{font-size:20px;font-weight:850;letter-spacing:-.01em;line-height:1.15}
.gt-desc{font-size:13.5px;line-height:1.4;color:var(--muted)}
.gt-stats{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.gt-stats>span{padding:4px 9px;border-radius:999px;font-size:12.5px;font-weight:800;font-variant-numeric:tabular-nums;background:color-mix(in srgb,var(--text) 7%,transparent)}
.gt-stats .lg-gain{color:#059669}.gt-stats .lg-loss{color:#e11d48}
body[data-theme=dark] .gt-stats .lg-gain{color:#34d399}body[data-theme=dark] .gt-stats .lg-loss{color:#fb7185}
.gt-play{align-self:end;margin-right:16px;padding:9px 18px;border-radius:999px;font-size:14px;font-weight:850;color:#fff;background:linear-gradient(135deg,#7c3aed,#c026d3);box-shadow:0 6px 16px rgba(124,58,237,.3)}
.gt-miner .gt-play{background:linear-gradient(135deg,#4f46e5,#0ea5e9);box-shadow:0 6px 16px rgba(14,165,233,.28)}
.game-tile:active .gt-play{transform:scale(.96)}
/* Top row: back to Games on the left; Post, Invite and Share on the right, all the same pill size. */
.mn-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.mn-top-actions{display:flex;gap:6px;min-width:0}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-pill{display:inline-flex;align-items:center;gap:5px;margin:0;padding:6px 11px!important;min-height:0;border:1px solid var(--line)!important;border-radius:999px!important;background:var(--panel,var(--surface))!important;box-shadow:none!important;color:var(--text)!important;font:inherit;font-size:13px;font-weight:800;white-space:nowrap;cursor:pointer}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-pill-main{border-color:transparent!important;background:linear-gradient(135deg,#6366f1,#0ea5e9)!important;color:#fff!important}
.mn-pill svg{width:14px;height:14px}
.mn-pill:active{transform:scale(.96)}
.mn-invite{margin:0}
/* Electricity and the scrolling blocks list. */
.mn-power-head{display:flex;align-items:center;justify-content:space-between}
.mn-power-head h3{margin:0}
.mn-watts{padding:3px 10px;border-radius:999px;font-size:13px;font-weight:850;color:#b45309;background:rgba(245,158,11,.15)}
body[data-theme=dark] .mn-watts{color:#fcd34d}
.mn-power .mn-note b{color:var(--text)}
.mn-feed{max-height:128px;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}
.mn-buy{touch-action:manipulation}
/* A farm attached to a feed post, drawn like the game's scene. */
.mn-post{position:relative;display:grid;gap:10px;margin:10px 0 0;padding:14px;border-radius:18px;color:#fff;background:linear-gradient(160deg,var(--a),var(--b));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.mn-post-top{display:flex;align-items:center;gap:8px}
.mn-post .mn-stage{font-size:11px}
.mn-post-kicker{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.mn-post-rank{margin-left:auto;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:900;background:rgba(251,191,36,.2);color:#fde68a}
.mn-post-rigs{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;padding:8px;border-radius:12px;background:rgba(0,0,0,.25)}
.mn-post-rigs span{aspect-ratio:1;padding:3px;border-radius:9px;background:rgba(255,255,255,.07)}
.mn-post-hash{font-size:32px;font-weight:900;letter-spacing:-.02em;line-height:1}
.mn-post-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.mn-post-stats span{display:grid;padding:7px 8px;border-radius:11px;background:rgba(255,255,255,.1)}
.mn-post-stats b{font-size:14px;font-variant-numeric:tabular-nums}.mn-post-stats small{font-size:10.5px;white-space:nowrap;color:rgba(255,255,255,.7)}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-post-join{justify-self:start;margin:0;padding:7px 14px!important;min-height:0;border:0!important;border-radius:999px!important;background:linear-gradient(135deg,#6366f1,#0ea5e9)!important;box-shadow:none!important;color:#fff!important;font:inherit;font-size:13px;font-weight:850;cursor:pointer}
#composerMinerPreview{display:grid;gap:8px;margin:8px 0}#composerMinerPreview .chip{justify-self:start}
.mn-post{min-width:0;overflow:hidden}
.mn-post-rigs{grid-template-columns:repeat(6,minmax(0,1fr))}
.mn-post-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.mn-post-stats span{min-width:0}
/* Wide machines (rigs, tanks) shrink to fit their slot instead of pushing the row off screen. */
.mn-rigs{grid-template-columns:repeat(8,minmax(0,1fr))}
.mn-rigs span{min-width:0;overflow:hidden}
.mn-rigs .mn-art,.mn-icon .mn-art{max-width:100%}
/* The room: one tile per machine type with a count, a strip of spaces (lit or empty), spinning fans and rising coins. */
.mn-rigs{position:relative;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;min-height:0;margin:14px 0 8px}
.mn-rigs:empty{min-height:64px}
.mn-rigs:empty::before{content:'Buy a machine to start mining';position:absolute;inset:0;display:grid;place-items:center;font-size:13px;color:rgba(255,255,255,.6)}
.mn-rigs .mn-tile{position:relative;padding:6px;overflow:visible;border-radius:12px}
.mn-tile>b{position:absolute;right:-4px;bottom:-4px;padding:1px 6px;border-radius:999px;font-size:11px;font-weight:900;line-height:1.4;color:#0b1020;background:#7dd3fc;box-shadow:0 2px 6px rgba(0,0,0,.35);font-variant-numeric:tabular-nums}
.mn-fan{transform-box:fill-box;transform-origin:center}
.mn-rigs .mn-fan{animation:mn-spin .9s linear infinite}
@keyframes mn-spin{to{transform:rotate(360deg)}}
.mn-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(10px,1fr));gap:3px;margin-bottom:12px}
.mn-slots i{height:6px;border-radius:3px;border:1px dashed rgba(255,255,255,.3)}
.mn-slots i.on{border:0;background:#7dd3fc;box-shadow:0 0 6px rgba(125,211,252,.6)}
.mn-slots-bar{display:block;height:6px;border-radius:3px;border:1px dashed rgba(255,255,255,.3)}
.mn-slots-bar i{display:block;height:100%;border-radius:3px;background:#7dd3fc}
.mn-float{position:absolute;bottom:40%;z-index:2;font-style:normal;font-size:12px;font-weight:900;color:#86efac;text-shadow:0 1px 6px rgba(0,0,0,.6);pointer-events:none;translate:-50% 0;white-space:nowrap;animation:mn-rise 1.6s ease-out forwards}
@keyframes mn-rise{from{opacity:0;transform:translateY(6px)}20%{opacity:1}to{opacity:0;transform:translateY(-34px)}}
.mn-pop{animation:mn-pop .45s cubic-bezier(.3,1.6,.5,1)}
.mn-rigs .mn-tile.mn-pop{animation:mn-pop .45s cubic-bezier(.3,1.6,.5,1),mn-glow 2.4s ease-in-out infinite}
.mn-shop li.mn-pop{animation:mn-flash .7s ease-out}
@keyframes mn-pop{0%{transform:scale(.7)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes mn-flash{from{background:rgba(34,197,94,.28)}}
@media(prefers-reduced-motion:reduce){.mn-rigs .mn-fan,.mn-pop,.mn-shop li.mn-pop{animation:none}}
/* Price buttons that fill up as you save. */
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body :is(.mn-buy,.mn-go){display:grid;place-items:center;align-content:center;gap:0;line-height:1.15}
:is(.mn-buy,.mn-go) small{font-size:10.5px;font-weight:750;opacity:.85}
:is(.mn-buy,.mn-go) small:empty{display:none}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-buy:disabled{background:linear-gradient(90deg,rgba(34,197,94,.3) calc(var(--p,0)*100%),color-mix(in srgb,var(--text) 9%,transparent) 0)!important}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-go:disabled{background:linear-gradient(90deg,rgba(99,102,241,.32) calc(var(--p,0)*100%),color-mix(in srgb,var(--text) 9%,transparent) 0)!important}
.mn-move span{line-height:1.35}
/* Electricity: how much of your mining you keep, and when to check in for the discount. */
.mn-meter{display:flex;height:10px;margin:12px 0 6px;border-radius:5px;overflow:hidden;background:linear-gradient(90deg,#f59e0b,#ea580c)}
.mn-meter i{display:block;height:100%;background:linear-gradient(90deg,#22c55e,#16a34a)}
.mn-meter-key{display:flex;justify-content:space-between;gap:8px;font-size:12px;font-weight:700;color:var(--muted)}
.mn-meter-key i{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:2px}.mn-meter-key .keep{background:#22c55e}.mn-meter-key .bill{background:#f59e0b}
.mn-discount{display:flex;align-items:center;gap:6px;margin:10px 0 0;font-size:13px;color:var(--muted)}
.mn-discount svg{flex:none;width:15px;height:15px;color:#f59e0b}.mn-discount b{color:var(--text);font-variant-numeric:tabular-nums}
/* Your own blocks in the list, and a gold banner when you find one. */
.mn-feed li.mn-mine{margin:0 -6px;padding:3px 6px;border-radius:8px;background:rgba(245,158,11,.14)}
.mn-feed li.mn-mine b{color:#b45309}body[data-theme=dark] .mn-feed li.mn-mine b{color:#fcd34d}
.mn-found{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:14px;font-size:15px;font-weight:800;color:#451a03;background:linear-gradient(135deg,#fde68a,#f59e0b);box-shadow:0 8px 22px rgba(245,158,11,.35);animation:mn-pop .5s cubic-bezier(.3,1.6,.5,1)}
.mn-found svg{width:18px;height:18px}
.mn-move .mn-go span{font-size:14px;line-height:1.15;color:inherit}
.mn-move .mn-go small{font-size:10.5px;font-weight:750;letter-spacing:0;text-transform:none;color:inherit}
/* Room full: a red Sell button on the machines you own. */
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-buy.mn-sell{background:linear-gradient(135deg,#ef4444,#b91c1c)!important;box-shadow:0 3px 10px rgba(239,68,68,.3)!important}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-buy.mn-sell.mn-sure{background:#7f1d1d!important;box-shadow:0 0 0 2px #fca5a5 inset!important;animation:mn-pop .3s ease-out}
/* Hash market: your rentals, a form to list your hashpower, and what others have for rent. */
.mn-market .mn-note{margin-top:8px}
.mn-leases{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.mn-lease{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;font-size:13px}
.mn-lease svg{flex:none;width:15px;height:15px}.mn-lease span{flex:1;min-width:0}.mn-lease small{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.mn-lease.in{background:rgba(34,197,94,.12)}.mn-lease.in svg{color:#16a34a}
.mn-lease.out{background:rgba(245,158,11,.12)}.mn-lease.out svg{color:#d97706}
.mn-sellform{display:grid;gap:8px;margin-top:10px;padding:12px;border-radius:14px;background:linear-gradient(135deg,rgba(56,189,248,.12),rgba(99,102,241,.12));border:1px solid rgba(99,102,241,.3)}
.mn-kicker{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#6366f1}
.mn-seg{display:flex;gap:2px;padding:3px;border-radius:10px;background:color-mix(in srgb,var(--text) 6%,transparent)}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-seg button{flex:1;min-height:32px;padding:0 6px!important;border:0!important;border-radius:8px!important;background:transparent!important;box-shadow:none!important;color:var(--muted)!important;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-seg button.active{background:var(--panel,#fff)!important;color:var(--text)!important}
.mn-price{display:grid;gap:4px;font-size:13px}.mn-price b{font-variant-numeric:tabular-nums}.mn-price em{margin-left:4px;font-style:normal;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.mn-price input{width:100%;accent-color:#6366f1}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-list{width:100%;min-height:50px}
.mn-listing{display:flex;align-items:center;gap:10px;margin-top:10px;padding:12px;border-radius:14px;border:1px solid rgba(99,102,241,.3);background:linear-gradient(135deg,rgba(56,189,248,.12),rgba(99,102,241,.12))}
.mn-listing div{display:grid;flex:1;min-width:0}.mn-listing small{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#6366f1}.mn-listing b{font-size:15px}.mn-listing span{font-size:12px;color:var(--muted)}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-unlist{flex:none;min-height:38px;padding:0 14px!important;border:1px solid var(--line)!important;border-radius:11px!important;background:var(--panel,var(--surface))!important;box-shadow:none!important;color:var(--text)!important;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.mn-sub{margin:14px 0 8px;font-size:14px}
.mn-rentals .mn-av{width:42px;height:42px}
.mn-friend{margin-left:4px;padding:1px 6px;border-radius:999px;font-style:normal;font-size:10px;font-weight:850;vertical-align:2px;color:#4338ca;background:rgba(99,102,241,.15)}
body[data-theme=dark] .mn-friend{color:#c7d2fe}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-buy.mn-rent:not(:disabled){background:linear-gradient(135deg,#6366f1,#0ea5e9)!important;box-shadow:0 3px 10px rgba(99,102,241,.3)!important}
/* Season: share of each block, NDR in circulation against the season's cap, the halving; last season's winners. */
.mn-season-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.mn-season-stats span{display:grid;padding:8px 10px;border-radius:12px;background:color-mix(in srgb,var(--text) 5%,transparent)}
.mn-season-stats b{font-size:18px;font-variant-numeric:tabular-nums}.mn-season-stats small{font-size:11.5px;color:var(--muted)}
.mn-season-left{color:#4338ca;background:rgba(99,102,241,.14)}body[data-theme=dark] .mn-season-left{color:#c7d2fe}
.mn-supply{background:color-mix(in srgb,var(--text) 10%,transparent)}.mn-supply i{background:linear-gradient(90deg,#38bdf8,#6366f1)}
.mn-season .mn-discount svg{color:#6366f1}
.mn-last{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-bottom:8px;padding:8px 10px;border-radius:12px;font-size:13px;background:linear-gradient(135deg,rgba(253,230,138,.35),rgba(245,158,11,.18))}
.mn-last small{font-size:11px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:#b45309}body[data-theme=dark] .mn-last small{color:#fcd34d}
.mn-last span{display:flex;flex-wrap:wrap;gap:4px 10px}
.mn-newseason{color:#1e1b4b;background:linear-gradient(135deg,#c7d2fe,#a5b4fc)}
/* Hash market, redesigned: header with icon, three chips, an order ticket and a friendlier empty state. */
.mn-market-head{display:flex;align-items:center;gap:10px}
.mn-market-head h3{margin:0}.mn-market-head small{display:block;font-size:12.5px;color:var(--muted)}
.mn-market-icon,.mn-ticket-icon{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:#fff;background:linear-gradient(135deg,#38bdf8,#6366f1 55%,#7c3aed);box-shadow:0 6px 14px rgba(99,102,241,.3)}
.mn-market-icon svg,.mn-ticket-icon svg{width:19px;height:19px}
.mn-chips{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 2px}
.mn-chips span{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:750;color:var(--muted);background:color-mix(in srgb,var(--text) 6%,transparent)}
.mn-chips svg{width:13px;height:13px;color:#6366f1}
.mn-ticket{display:grid;gap:14px;margin-top:12px;padding:14px;border-radius:18px;background:var(--panel,var(--surface));border:1px solid color-mix(in srgb,#6366f1 25%,var(--line));box-shadow:0 10px 30px rgba(79,70,229,.10)}
.mn-ticket-head{display:flex;align-items:center;gap:10px}.mn-ticket-head b{display:block;font-size:15px}.mn-ticket-head small{font-size:12px;color:var(--muted)}
.mn-ticket-icon{width:32px;height:32px;border-radius:10px}.mn-ticket-icon svg{width:16px;height:16px}
.mn-field{display:grid;gap:6px}.mn-field>small,.mn-pricehead small{font-size:11px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-ticket .mn-seg button{display:grid;place-items:center;align-content:center;gap:0;min-height:40px;line-height:1.15}
.mn-seg button b{font-size:14px}.mn-seg button i{font-style:normal;font-size:11px;font-weight:700;opacity:.75}
.mn-pricehead{display:flex;align-items:center;justify-content:space-between}
.mn-pricehead em{padding:2px 9px;border-radius:999px;font-style:normal;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.mn-pricehead em[data-tone=cheap]{color:#047857;background:rgba(16,185,129,.14)}.mn-pricehead em[data-tone=fair]{color:#4338ca;background:rgba(99,102,241,.14)}.mn-pricehead em[data-tone=pricey]{color:#b45309;background:rgba(245,158,11,.16)}
body[data-theme=dark] .mn-pricehead em[data-tone=cheap]{color:#6ee7b7}body[data-theme=dark] .mn-pricehead em[data-tone=fair]{color:#c7d2fe}body[data-theme=dark] .mn-pricehead em[data-tone=pricey]{color:#fcd34d}
.mn-bigprice{font-size:30px;font-weight:900;letter-spacing:-.02em;line-height:1.05;font-variant-numeric:tabular-nums}
.mn-pricefield input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:8px;margin:8px 0 2px;border-radius:4px;background:linear-gradient(90deg,#38bdf8,#6366f1 var(--pos),color-mix(in srgb,var(--text) 12%,transparent) var(--pos));outline:none}
.mn-pricefield input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:#fff;border:3px solid #6366f1;box-shadow:0 3px 10px rgba(79,70,229,.35);cursor:grab}
.mn-pricefield input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid #6366f1;box-shadow:0 3px 10px rgba(79,70,229,.35)}
.mn-scale{position:relative;display:flex;justify-content:space-between;height:18px;font-size:11px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.mn-fairmark{position:absolute;left:var(--fair);transform:translateX(-50%);color:#6366f1;white-space:nowrap}
.mn-fairmark::before{content:'';position:absolute;left:50%;top:-9px;width:2px;height:7px;border-radius:1px;background:#6366f1}
.mn-summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;padding:12px;border-radius:14px;background:linear-gradient(135deg,rgba(34,197,94,.12),rgba(16,185,129,.08))}
.mn-summary span{font-size:13px;font-weight:700;color:var(--muted)}.mn-summary b{font-size:22px;font-weight:900;color:#059669;font-variant-numeric:tabular-nums}body[data-theme=dark] .mn-summary b{color:#34d399}
.mn-summary small{flex-basis:100%;font-size:11.5px;color:var(--muted)}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .mn-ticket .mn-list{min-height:50px;font-size:15px;box-shadow:0 8px 20px rgba(99,102,241,.3)!important}
.mn-empty{display:grid;justify-items:center;gap:4px;padding:18px 14px;border-radius:14px;border:1.5px dashed color-mix(in srgb,var(--text) 15%,transparent);text-align:center}
.mn-empty svg{width:22px;height:22px;color:#6366f1;margin-bottom:2px}.mn-empty b{font-size:14px}.mn-empty span{font-size:12.5px;color:var(--muted)}
.mn-chips{gap:5px}.mn-chips span{padding:4px 9px;font-size:11.5px}
.mn-fairmark::before{display:none}
/* Games page card: B (your farm, live) for players, C (the season pitch, brand gradient) for everyone else. */
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body #page-games .miner-card{border:0!important;background:none!important;box-shadow:none!important}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body :is(.gt-farm,.gt-pitch){position:relative;display:grid;gap:12px;width:100%;margin:0;padding:16px!important;min-height:0;border-radius:24px!important;color:#fff!important;font:inherit;text-align:left;cursor:pointer;overflow:hidden}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .gt-farm{background:radial-gradient(90% 70% at 85% 0%,rgba(56,189,248,.22),transparent 60%),linear-gradient(160deg,var(--a),var(--b))!important;border:1px solid rgba(255,255,255,.08)!important;box-shadow:0 16px 40px rgba(15,23,42,.35)!important}
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body .gt-pitch{min-height:230px;background:linear-gradient(135deg,#38bdf8,#6366f1 55%,#7c3aed)!important;border:0!important;box-shadow:0 16px 40px rgba(99,102,241,.4)!important}
:is(.gt-farm,.gt-pitch):active{transform:scale(.985)}
.gt-farm-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.gt-pill{display:inline-flex;align-items:center;gap:6px;width:max-content;padding:5px 11px;border-radius:999px;font-size:12.5px;font-weight:800;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);white-space:nowrap}
.gt-pill i{width:8px;height:8px;border-radius:50%}
.gt-pill.on{color:#bbf7d0;background:rgba(34,197,94,.18);border-color:rgba(74,222,128,.35)}.gt-pill.on i{background:#4ade80;box-shadow:0 0 8px #4ade80}
.gt-pill.off{color:#fde68a;background:rgba(245,158,11,.2);border-color:rgba(251,191,36,.4)}.gt-pill.off i{background:#fbbf24}
.gt-rigs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.gt-rigs>span{position:relative;aspect-ratio:1;padding:8px;border-radius:14px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.08)}
.gt-rigs .mn-art{width:100%;height:100%}
.gt-rigs .mn-fan{animation:mn-spin .9s linear infinite}
.gt-rigs b{position:absolute;right:-4px;bottom:-4px;padding:1px 6px;border-radius:999px;font-size:11px;font-weight:900;color:#0b1020;background:#7dd3fc}
.gt-bal{display:flex;align-items:baseline;gap:8px}
.gt-bal strong{font-size:34px;font-weight:900;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 0 18px rgba(56,189,248,.35)}
.gt-bal em{font-style:normal;font-weight:800;color:#7dd3fc}.gt-bal small{margin-left:auto;font-size:15px;font-weight:800;color:#86efac}
.gt-next{display:grid;gap:6px}.gt-next>span{display:flex;justify-content:space-between;font-size:12px;font-weight:700;color:rgba(255,255,255,.72)}
.gt-next>i{display:block;height:8px;border-radius:4px;overflow:hidden;background:rgba(255,255,255,.14)}.gt-next>i>i{display:block;height:100%;background:linear-gradient(90deg,#38bdf8,#6366f1)}
.gt-foot{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px}
.gt-foot>span{display:grid;min-width:0}.gt-foot b{font-size:19px;font-weight:900}.gt-foot small{font-size:12.5px;color:rgba(255,255,255,.78)}
:is(.gt-farm,.gt-pitch) .gt-play{flex:none;white-space:nowrap;margin:0;padding:11px 20px;background:linear-gradient(135deg,#38bdf8,#6366f1 55%,#7c3aed);box-shadow:0 8px 22px rgba(99,102,241,.45)}
.gt-pitch .gt-play{background:#fff;color:#4f46e5;box-shadow:0 8px 20px rgba(30,27,75,.35)}
.gt-pitch-art{position:absolute;right:-26px;top:52px;width:160px;height:160px;transform:rotate(-10deg);filter:drop-shadow(0 16px 24px rgba(30,27,75,.5));pointer-events:none}
.gt-pitch::before{content:'';position:absolute;inset:0;background:radial-gradient(60% 80% at 0% 100%,rgba(30,27,75,.5),transparent);pointer-events:none}
.gt-pitch-body{position:relative;display:grid;gap:6px;max-width:64%}
.gt-pitch-body b{margin-top:6px;font-size:28px;font-weight:900;letter-spacing:-.02em;line-height:1.05}.gt-pitch-body>span:last-child{font-size:14px;line-height:1.35;color:rgba(255,255,255,.9)}
.gt-pitch .gt-pill{background:rgba(255,255,255,.2)}
@media(prefers-reduced-motion:reduce){.gt-rigs .mn-fan{animation:none}}
/* Top row buttons: contents centred both ways whatever width the button ends up, with a fixed icon gap. */
:is(html,#liquid-glass):is(html,#liquid-glass):is(html,#liquid-glass) body :is(.mn-pill,.mn-back){display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px!important;line-height:1;text-align:center;-webkit-appearance:none;appearance:none}
.mn-pill svg{flex:none;display:block;width:15px;height:15px;margin:0}
/* Market chips: one line each, normal line height (the card's text styles made them wrap with tall lines on iOS). */
.mn-chips span{white-space:nowrap;line-height:1.2;flex:none}
/* Illustrated room behind the farm: the art sits at the back, a soft fade keeps the numbers readable,
   and the machine shelf becomes frosted glass so each machine stands out against the room. */
.mn-has-room{position:relative;isolation:isolate;overflow:hidden}
.mn-room-art{position:absolute;inset:0;width:100%;height:100%;z-index:-2;pointer-events:none;opacity:.5;filter:saturate(.8)}
.mn-has-room::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(5,6,15,.18) 0%,rgba(5,6,15,.28) 40%,rgba(5,6,15,.78) 100%)}
.mn-has-room .mn-rigs,.mn-has-room .gt-rigs>span{background:rgba(8,10,22,.5);-webkit-backdrop-filter:blur(8px) saturate(1.2);backdrop-filter:blur(8px) saturate(1.2);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.mn-has-room .mn-tile{background:radial-gradient(70% 60% at 50% 60%,rgba(255,255,255,.08),transparent 70%)}
.mn-has-room .mn-stage,.mn-has-room .mn-room,.mn-has-room .gt-pill{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.mn-has-room .mn-balance strong,.mn-has-room .gt-bal strong{text-shadow:0 2px 14px rgba(0,0,0,.55)}

/* Tap a machine in the room to see it and sell one. */
.mn-rigs button.mn-tile{display:grid;place-items:center;aspect-ratio:1;min-width:0;padding:6px;font-size:0;border:0;color:inherit;background:rgba(255,255,255,.06);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s,box-shadow .15s;animation:mn-glow 2.4s ease-in-out infinite;animation-delay:var(--d)}
.mn-rigs button.mn-tile:active{transform:scale(.94)}
.mn-rigs button.mn-tile:focus-visible{outline:2px solid #7dd3fc;outline-offset:2px}
.mn-has-room .mn-rigs button.mn-tile.mn-picked{box-shadow:0 0 0 2px #7dd3fc,0 0 18px rgba(125,211,252,.45)!important;background:rgba(125,211,252,.18)!important;animation:none}
.mn-picked-panel{display:flex;align-items:center;gap:12px;margin:0 0 10px;padding:10px 12px;border-radius:14px;background:rgba(8,10,22,.72);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(125,211,252,.35);animation:mn-panel-in .18s ease-out}
.mn-picked-panel .mn-icon{flex:none;width:46px;height:46px}
.mn-picked-panel .mn-item{flex:1;min-width:0;display:grid;gap:1px}
.mn-picked-panel .mn-item b{font-size:15px;color:#fff}
.mn-picked-panel .mn-item small{font-size:12px;color:rgba(255,255,255,.72);line-height:1.3}
.mn-picked-panel .mn-sell{flex:none}
.mn-picked-close{flex:none;width:30px;height:30px;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font:700 18px/1 inherit;cursor:pointer}
@keyframes mn-panel-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.mn-picked-panel{animation:none}}

/* From the game to real mining */
.mn-real{background:linear-gradient(135deg,rgba(247,183,51,.14),rgba(91,92,240,.08));box-shadow:inset 0 0 0 1px rgba(247,183,51,.3)}
.mn-real-head{display:flex;gap:12px;align-items:flex-start}.mn-real-head h3{margin:0 0 4px}.mn-real-head p{margin:0;color:var(--muted);font-size:14px}
.mn-real-icon{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#f7b733;color:#1b1300}.mn-real-icon svg{width:20px;height:20px}
.mn-real-links{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 10px}.mn-real-links a{padding:9px 14px;border-radius:999px;border:1px solid var(--line,rgba(255,255,255,.14));color:inherit;font-weight:700;font-size:14px;text-decoration:none}
.mn-real-links a:last-child{background:#f7b733;border-color:#f7b733;color:#1b1300}
.mn-real small{color:var(--muted);font-size:12px}
