.mv { --manual:#dfb978; --goblins:#e49382; --infrastructure:#c1b5a1; color:var(--paper); font-variant-numeric:tabular-nums; }
.mv [hidden], #mineLegacy[hidden] { display:none !important; }
.mv h2 { font:800 32px/1.1 var(--heading-type); margin:0; }
.mv h3 { font:700 20px/1.2 var(--heading-type); margin:0; }
.mv button { border:1px solid var(--line); background:var(--panel); color:var(--paper); padding:10px 14px; min-height:44px; font:600 13px var(--body-type, sans-serif); cursor:pointer; }
.mv button:hover:not(:disabled) { border-color:var(--manual); }
.mv button:disabled { opacity:.5; cursor:default; }
.mv button:focus-visible { outline:2px solid var(--paper); outline-offset:4px; }
.mv-heading,.mv-section-head,.mv-reserve-line,.mv-earnings,.mv-hire { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.mv-heading { margin-bottom:24px; }.mv-options { display:flex; gap:8px; }
.mv-options button { font-size:11px; padding:8px; }
.mv-label { display:block; color:var(--muted); font-size:12px; letter-spacing:.045em; margin-bottom:6px; }
.mv strong { display:block; font-family:var(--heading-type); font-weight:600; }
.mv-notice { margin:0 0 12px; color:var(--manual); font-size:14px; }.mv-notice:empty { display:none; }
.mv-manual { padding:24px; background:var(--panel); border:1px solid var(--line); }
.mv-reserve-line strong { color:var(--manual); font-size:40px; }
.mv-refill { display:grid; gap:5px; text-align:right; color:var(--muted); font-size:13px; }
.mv-meter { margin:18px 0; padding:4px; border:1px solid var(--line); height:20px; background:var(--ink); overflow:hidden; }
.mv-meter>div { height:100%; background:var(--manual); transition:width 90ms; }
.mv .mv-mine { width:100%; min-height:84px; font:800 32px var(--heading-type); color:#241b0f; background:var(--manual); border-color:var(--manual); touch-action:manipulation; user-select:none; }
.mv .mv-mine:active:not(:disabled) { transform:translateY(2px); }
.mv-workers { margin:28px 0 0; }.mv-section-head>span { color:var(--muted); font-size:13px; }
.mv-scene { position:relative; height:184px; overflow:hidden; border-bottom:2px solid var(--line); margin:8px 0 20px; }
.mv-scene img { image-rendering:pixelated; }
.mv-entrance { position:absolute; left:12px; bottom:0; width:216px; height:120px; }
.mv-chest { position:absolute; right:24px; bottom:0; width:96px; height:96px; }
.mv-delivery { position:absolute; left:112px; right:100px; bottom:0; height:64px; animation:mv-deliver var(--approach) linear forwards; }
.mv-sprite { position:absolute; width:64px; height:64px; transform-origin:50% 100%; animation:mv-bounce var(--stride,.42s) linear infinite; }
.mv-sprite img { position:absolute; width:64px; height:64px; }
.mv-empty { display:none; transform:scaleX(-1); }
.mv-delivery.is-returning { animation:mv-go-home 3s linear forwards; }
.mv-delivery.is-returning .mv-carry { display:none; }
.mv-delivery.is-returning .mv-empty { display:block; }
@keyframes mv-deliver { from { transform:translateX(0); opacity:0; } 8% { opacity:1; } to { transform:translateX(calc(100% - 64px)); opacity:1; } }
@keyframes mv-go-home { from { transform:translateX(calc(100% - 64px)); opacity:1; } 90% { opacity:1; } to { transform:translateX(0); opacity:0; } }
@keyframes mv-bounce { 0%,44%,50%,94%,100% { transform:translateY(0) rotate(0); } 9% { transform:translateY(-12px) rotate(-20deg); } 22% { transform:translateY(-18px) rotate(-20deg); } 35% { transform:translateY(-9px) rotate(-12deg); } 59% { transform:translateY(-12px) rotate(20deg); } 72% { transform:translateY(-18px) rotate(20deg); } 85% { transform:translateY(-9px) rotate(12deg); } }
.mv-chest { transform-origin:50% 100%; }
.mv-coin-pile { position:absolute; right:12px; bottom:0; width:120px; height:44px; pointer-events:none; }
.mv-coin-pile img { position:absolute; width:20px; height:20px; }
.mv-deposit-value { position:absolute; right:38px; bottom:62px; color:var(--manual); font:700 20px var(--heading-type); animation:mv-coin-value 1.1s ease-out forwards; }
@keyframes mv-coin-value { 0% { opacity:1; transform:translateY(4px) scale(.85); } 20% { opacity:1; transform:translateY(-8px) scale(1.1); } 100% { opacity:0; transform:translateY(-36px) scale(1); } }
.mv-manual { position:relative; }
.mv-particles { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.mv-hit-value { position:absolute; left:calc(50% - 30px); bottom:60px; color:var(--paper); text-shadow:1px 2px var(--ink); font:800 26px var(--heading-type); animation:mv-coin-value .85s ease-out forwards; }
.mv-hit-coin { position:absolute; left:calc(50% - 12px); bottom:54px; width:24px; height:24px; animation:mv-hit-coin .65s ease-out forwards; }
@keyframes mv-hit-coin { from { opacity:1; transform:translate(0,0) scale(.5); } 35% { opacity:1; } to { opacity:0; transform:translate(var(--x),var(--y)) rotate(var(--spin)); } }
.mv.is-still .mv-deposit-value,.mv.is-still .mv-hit-value { animation:mv-value-fade 1s linear forwards; }
@keyframes mv-value-fade { 0%,65% { opacity:1; } 100% { opacity:0; } }
.mv-worker-stats { display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:16px; }
.mv-worker-stats strong { font-size:26px; }.mv-subtle { display:block; color:var(--muted); font-size:12px; margin-top:5px; }
.mv-hire { border-top:1px solid var(--line); padding-top:16px; margin-top:20px; font-size:13px; color:var(--muted); }
.mv-hire>div { display:flex; gap:8px; }
.mv-earnings { margin:24px 0 36px; padding:20px 0; border-block:1px solid var(--line); }
.mv-earnings strong { font-size:34px; color:var(--manual); }.mv-earnings button { border-color:var(--manual); }
.mv-tree-head,.mv-nodes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.mv-tree-head { margin:24px 0 8px; font-size:12px; text-align:center; font-weight:700; }
.mv-tree-head>span:nth-child(1){color:var(--manual)}.mv-tree-head>span:nth-child(2){color:var(--goblins)}.mv-tree-head>span:nth-child(3){color:var(--infrastructure)}
.mv-tier { position:relative; padding-top:36px; padding-bottom:12px; }
.mv-tier::before { content:''; position:absolute; top:0; left:50%; height:36px; border-left:1px solid var(--line); }
.mv-tier-price { position:relative; z-index:1; width:max-content; max-width:100%; margin:-20px auto 22px; padding:0 10px; background:var(--ink); color:var(--muted); font-size:12px; }
.mv-nodes { position:relative; }.mv-nodes::before { content:''; position:absolute; top:-12px; left:16.66%; right:16.66%; border-top:1px solid var(--line); }
.mv .mv-node { position:relative; display:flex; flex-direction:column; align-items:center; gap:9px; padding:12px 8px; border:0; background:transparent; min-width:0; }
.mv-node::before { content:''; position:absolute; top:-12px; height:24px; left:50%; border-left:1px solid var(--line); }
.mv-node::after { content:''; position:absolute; bottom:-12px; height:12px; left:50%; border-left:1px solid var(--line); }
.mv-nodes { border-bottom:1px solid var(--line); padding-bottom:12px; }
.mv-manual.mv-node { --category:var(--manual); }.mv-goblins { --category:var(--goblins); }.mv-infrastructure { --category:var(--infrastructure); }
.mv-tier-icon { display:grid; place-items:center; position:relative; width:56px; height:56px; background:var(--ink); border:2px solid var(--category); color:var(--category); font:700 24px var(--heading-type); }
.mv-node.is-owned .mv-tier-icon { background:var(--category); color:var(--ink); }.mv-check { position:absolute; right:-7px; top:-9px; background:var(--ink); color:var(--category); border:1px solid var(--category); padding:0 3px; font-size:13px; }
.mv-node.is-owned::before,.mv-node.is-owned::after { border-color:var(--category); }
.mv-node-name { font-size:15px; font-weight:700; overflow-wrap:anywhere; }.mv-node-effect { font-size:12px; color:var(--muted); line-height:1.4; max-width:210px; }
.mv-node.is-locked .mv-tier-icon { opacity:.45; }.mv-node.is-locked .mv-node-name { color:var(--muted); }
.mv-dialog { width:min(420px,calc(100vw - 32px)); background:var(--panel); color:var(--paper); border:1px solid var(--line); padding:28px; }.mv-dialog::backdrop { background:#000b; }
.mv-dialog h3 { padding-right:20px; font-size:26px; }.mv-dialog p { font-size:14px; line-height:1.5; }.mv-dialog .mv-close { position:absolute; right:8px; top:8px; background:transparent; border:0; font-size:24px; }
.mv-dialog #mvConfirm { margin-top:12px; width:100%; background:var(--manual); color:var(--ink); }
@media(max-width:600px){.mv-heading{gap:8px}.mv h2{font-size:28px}.mv-options{gap:4px}.mv-options button{font-size:10px;padding:6px}.mv-manual{padding:16px}.mv-reserve-line{gap:8px}.mv-reserve-line strong{font-size:32px}.mv-refill{font-size:11px}.mv-worker-stats{grid-template-columns:1fr 1fr}.mv-worker-stats>button{grid-column:1/-1}.mv-worker-stats strong{font-size:24px}.mv-hire{flex-wrap:wrap}.mv-hire>div{width:100%}.mv-hire button{flex:1;padding:8px}.mv-scene{height:150px}.mv-entrance{left:0}.mv-chest{right:0}.mv-delivery{left:92px;right:64px}.mv-coin-pile{right:-12px}.mv-deposit-value{right:14px}.mv-tree-head,.mv-nodes{gap:6px}.mv-tree-head{font-size:10px}.mv .mv-node{padding:10px 3px}.mv-node-name{font-size:12px}.mv-node-effect{display:none}.mv-tier-icon{width:48px;height:48px}.mv-section-head>span{font-size:11px}.mv-earnings strong{font-size:30px}}
@media(prefers-reduced-motion:reduce){.mv-meter>div{transition:none}}

.mv-scrap { position:absolute; left:39px; top:51px; width:7px; height:6px; background:#e6c462; box-shadow:3px -3px #9c7329; transform:rotate(-20deg); }
.mv-delivery.is-returning .mv-scrap { display:none; }
.mv-scrap-track { display:block; height:3px; width:90px; margin-top:6px; background:#393629; overflow:hidden; }
#mvScrapProgress { display:block; height:100%; background:#d8b75b; }
