/* ================= MOB VAULT: COLLECT & WIN ================= */
@font-face{font-family:'MV Pixel';src:url(../assets/fonts/PressStart2P-Regular.ttf) format('truetype');font-display:swap}
@font-face{font-family:'MV Num';src:url(../assets/fonts/PressStart2P-Regular.ttf) format('truetype');font-display:swap}
#v-mobvault > .gbar,#v-mobvault .ghead .gfav{display:none}
.slotview .mv-game{border-radius:var(--r);overflow:hidden;border:1px solid #2c3a5c;box-shadow:0 24px 50px -30px #000,inset 0 0 0 1px #ffffff0a}
.mv-stage{--tile:120px;--gap:7px;--pad:6px;--bw:400px;--frame:14px;--side:220px;
  --c-n:#9a7cff;--c-s:#ffc94a;
  position:relative;height:clamp(540px, calc(var(--vh, 1vh) * 100 - var(--head) - 84px), 900px);overflow:hidden;isolation:isolate;background:#05070d;
  display:grid;grid-template-columns:var(--side) 1fr var(--side);grid-template-rows:1fr auto;align-items:center;user-select:none;-webkit-user-select:none}
.mv-bg{position:absolute;inset:0;z-index:-3;background:url(../assets/slots/mobvault/bg_vault.jpg) center 40%/cover no-repeat;transition:filter 1s}
.mv-light{position:absolute;inset:0;z-index:-2;pointer-events:none;transition:opacity 1s,background 1s;
  background:radial-gradient(ellipse 46% 60% at 50% 46%,#0009,#0000 75%),linear-gradient(#0005,#0000 30%,#0000 65%,#000b)}
.mv-stage[data-mode="normal"] .mv-bg{filter:saturate(1.15) hue-rotate(18deg) brightness(1.05)}
.mv-stage[data-mode="normal"] .mv-light{background:radial-gradient(ellipse 40% 55% at 50% 48%,#7a4dff33,#0000 70%),radial-gradient(ellipse 30% 60% at 0% 60%,#a77bff30,#0000 70%),radial-gradient(ellipse 30% 60% at 100% 60%,#a77bff30,#0000 70%),linear-gradient(#0005,#0000 30%,#0000 65%,#000b)}
.mv-stage[data-mode="super"] .mv-bg{filter:sepia(.55) saturate(1.6) hue-rotate(-12deg) brightness(1.08)}
.mv-stage[data-mode="super"] .mv-light{background:radial-gradient(ellipse 42% 58% at 50% 48%,#ffb02e38,#0000 70%),radial-gradient(ellipse 30% 70% at 0% 55%,#ffcf4a3a,#0000 70%),radial-gradient(ellipse 30% 70% at 100% 55%,#ffcf4a3a,#0000 70%),linear-gradient(#0004,#0000 30%,#0000 65%,#000b);
  animation:mvGlow 3s ease-in-out infinite alternate}
@keyframes mvGlow{from{filter:brightness(.9)}to{filter:brightness(1.25)}}
.mv-flash{position:absolute;inset:0;z-index:12;pointer-events:none;background:radial-gradient(circle at 50% 45%,#fff,#c8b8ff 35%,#7a4dff00 72%);opacity:0}
.mv-stage[data-mode="super"] .mv-flash{background:radial-gradient(circle at 50% 45%,#fff,#ffe6a0 35%,#ffb02e00 72%)}
.mv-flash.on{animation:mvFlash .9s ease-out}
@keyframes mvFlash{0%{opacity:0}12%{opacity:.85}100%{opacity:0}}
.mv-stage.quake{animation:mvQuake .45s cubic-bezier(.36,.07,.19,.97)}
@keyframes mvQuake{0%,100%{transform:none}20%{transform:translate(-5px,2px)}40%{transform:translate(5px,-2px)}60%{transform:translate(-3px,-1px)}80%{transform:translate(2px,2px)}}

/* ---------- side panels ---------- */
.mv-side{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:14px 12px;min-width:0}
.mv-logo{display:flex;flex-direction:column;align-items:center;gap:8px;font-family:'MV Pixel',monospace;line-height:1;white-space:nowrap}
.mv-logo .l1{font-size:clamp(17px, calc(var(--side) * .105), 28px);letter-spacing:.02em;display:flex;gap:.45em}
.mv-logo .l1 b{font-weight:400;position:relative;z-index:0;display:inline-block}
.mv-logo .l1 i{font-style:normal;color:transparent;background:linear-gradient(#e6ffff 0 22%,#78e6ff 22% 50%,#3c96ff 50% 78%,#2850c8 78%);-webkit-background-clip:text;background-clip:text}
.mv-logo .l1 b::before{content:attr(data-t);position:absolute;inset:0;z-index:-1;color:#0c0a18;-webkit-text-stroke:.24em #0c0a18;text-shadow:0 .2em 0 #0c0a18}
.mv-logo .l2{font-size:clamp(9px, calc(var(--side) * .052), 13px);color:#ffd84d;padding:.7em .9em .6em;background:#2e3242;border:3px solid #0e0c18;
  box-shadow:inset 0 3px 0 #565c70,inset 0 -3px 0 #1e2030;text-shadow:0 2px 0 #6b3a06;letter-spacing:.04em}
.mv-logo-top{display:none}
.mv-modetitle{display:none;flex-direction:column;align-items:center;gap:6px;text-align:center}
.mv-modetitle small{font-family:'MV Pixel',monospace;font-size:9px;color:#c9b8ff;letter-spacing:.06em;text-transform:uppercase}
.mv-modetitle b{font-family:'MV Pixel',monospace;font-weight:400;font-size:clamp(14px, calc(var(--side) * .085), 22px);line-height:1.3;color:#d8c8ff;text-shadow:0 3px 0 #2a1460,0 0 18px #7a4dffaa}
.mv-modetitle span{font-size:12.5px;color:#cfd6ea;font-weight:700;max-width:200px}
.mv-stage[data-mode="super"] .mv-modetitle b{color:#ffe08a;text-shadow:0 3px 0 #6b3a06,0 0 22px #ffb02ecc}
.mv-stage[data-mode="super"] .mv-modetitle small{color:#ffd88a}
.mv-stage:not([data-mode="base"]) .mv-logo-side{display:none}
.mv-stage:not([data-mode="base"]) .mv-modetitle{display:flex}
.mv-stage:not([data-mode="base"]) .mv-howto{display:none}
.mv-fstat{display:none}
.mv-stage:not([data-mode="base"]) .mv-fstat{display:block}
.mv-fstat{max-width:200px;padding:12px 10px 16px;text-align:center}
.mv-fstat .mv-ph{font-size:11px;margin-bottom:12px}
.mv-fstat b{display:block;font-family:'MV Num',monospace;font-weight:400;font-size:26px;line-height:1.2;color:#fff;white-space:nowrap}
.mv-stage[data-mode="super"] .mv-fstat b{color:#ffe08a}
.mv-plate{width:100%;max-width:250px;padding:10px 10px 12px;background:linear-gradient(#141a26e8,#0c1018e8);border:3px solid #0e0c18;
  box-shadow:0 0 0 2px #3a4258,inset 0 0 0 1px #ffffff10,0 18px 30px -14px #000}
.mv-ph{font-family:'MV Pixel',monospace;font-size:10px;color:#78e6ff;text-align:center;letter-spacing:.04em;margin:2px 0 8px;text-shadow:0 2px 0 #0b2a48}
.mv-plate ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.mv-plate li{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:8px;padding:4px 6px;background:#070a10;border:1px solid #ffffff12;box-shadow:inset 0 -2px 0 #0008}
.mv-plate li img{width:40px;height:40px;object-fit:contain}
.mv-plate li span{display:flex;flex-direction:column;gap:1px;min-width:0}
.mv-plate li b{font-size:12.5px;font-weight:800;color:#fff;letter-spacing:.02em;line-height:1.2}
.mv-plate li small{font-size:11.5px;color:#9fb0d0;font-weight:600;line-height:1.2}
.mv-plate li.sup b{color:#ffd84d}
.mv-plate li em{font-style:normal;font-family:'MV Num',monospace;font-size:9px;padding:2px 3px;vertical-align:1px;border-radius:3px;color:#120a1e}
em.e2{background:#c8a2ff} em.e3{background:#7fe3ff} em.e5{background:#ff8a8a} em.e1{background:#9ff0ff}
.mv-pnote{margin:8px 0 0;text-align:center;color:#c9b8ff;font-size:11.5px;font-weight:700}
/* right-side Bonus-buy panel (the two buy buttons live here, like Deep Mine's teaser) */
.mv-buypanel{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:12px;padding:16px 14px}
.mv-buypanel .mv-ph{margin:0 0 4px}
.mv-buys{display:flex;flex-direction:column;gap:10px}
.mv-buypanel .mv-buy{width:100%;min-width:0;height:66px}
.mv-buypanel .mv-buy.s{height:74px;font-size:11px}
.mv-buypanel .mv-buy.s small{font-size:16px}
/* The entry is a vault control; the two offers only appear when it is opened. */
.mv-vault-buy{width:min(178px,100%);padding:18px 10px 16px;display:grid;justify-items:center;gap:15px;color:#c9f5ff;background:linear-gradient(135deg,#364550,#18252f 45%,#101b25);border:3px solid #647782;border-radius:6px;box-shadow:0 0 0 3px #070e16,inset 0 2px 0 #abc0c42e,inset 0 -5px 0 #070e1880,0 12px 24px #0007;font:400 10px/1.6 'MV Pixel',monospace;cursor:pointer;transition:transform .18s,border-color .18s,box-shadow .18s}
.mv-vault-seal{width:44px;height:44px;display:grid;place-items:center;color:#7ae4ff;border:2px solid #71cbe7;background:#102d40;transform:rotate(45deg);box-shadow:0 0 18px #44cfff30,inset 0 0 10px #44cfff30}
.mv-vault-seal svg{width:24px;height:24px;transform:rotate(-45deg)}
.mv-vault-buy:hover:not(:disabled){transform:translateY(-3px);border-color:#a0e6f6;box-shadow:0 0 0 3px #070e16,inset 0 2px 0 #abc0c42e,0 10px 30px #4bcfff24}
.mv-vault-buy:disabled{opacity:.45;cursor:not-allowed}
.mv-select-wrap{width:min(700px,100%);position:relative}
.mv-select-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}
.mv-select-head h2{margin:0;color:#c1edff;font:400 clamp(11px,2vw,17px)/1.6 'MV Pixel',monospace;text-shadow:0 3px 0 #06101f}
.mv-select-head .iconbtn{display:grid;place-items:center;background:#152430;border:1px solid #53717c;flex:none}
.mv-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.mv-offer{--offer:#c5a0ff;--offer-glow:#9c5dff44;--offer-rgb:156,93,255;position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;gap:22px;padding:26px 22px 0;text-align:center;border:2px solid #78608f;border-radius:12px;background:radial-gradient(ellipse at 50% 15%,#59377880,transparent 65%),linear-gradient(145deg,#252033,#0c111d);box-shadow:0 0 0 3px #070c15,inset 0 2px 0 #ffffff16,0 22px 45px #0008;color:var(--offer);cursor:pointer;isolation:isolate;transition:transform .25s,border-color .25s,box-shadow .25s}
.mv-offer.super{--offer:#ffdc91;--offer-glow:#e8af4544;--offer-rgb:232,175,69;border-color:#8d7442;background:radial-gradient(ellipse at 50% 15%,#69512488,transparent 65%),linear-gradient(145deg,#292724,#0d121b)}
.mv-offer:before{content:"";position:absolute;inset:7px;border:1px solid #ffffff0a;border-radius:7px;pointer-events:none;z-index:-1}
.mv-offer-art{position:relative;display:flex;align-items:center;justify-content:center;height:142px;width:100%;isolation:isolate}
.mv-offer-art img{position:relative;width:110px;height:110px;object-fit:contain;transform:rotate(-9deg);filter:drop-shadow(0 10px 9px #0009);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.mv-offer-art img+img{width:95px;height:95px;transform:rotate(9deg) translate(-6px,15px)}
.mv-offer-orbit{position:absolute;width:140px;height:140px;border:1px solid var(--offer-glow);border-radius:50%;background:radial-gradient(circle,var(--offer-glow),transparent 70%);box-shadow:0 0 40px var(--offer-glow);z-index:-1;transition:transform .4s,box-shadow .4s}
.mv-offer-orbit:before,.mv-offer-orbit:after{content:"";position:absolute;inset:10px;border:1px dashed var(--offer-glow);transform:rotate(45deg)}
.mv-offer-orbit:after{inset:-9px;border-style:solid;border-color:transparent var(--offer-glow);border-radius:50%}
.mv-offer-motes{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 18% 32%,var(--offer) 1px,transparent 2px),radial-gradient(circle at 80% 26%,var(--offer) 1.5px,transparent 2.5px),radial-gradient(circle at 85% 77%,var(--offer) 1px,transparent 2px),radial-gradient(circle at 20% 90%,var(--offer) 1px,transparent 2px);opacity:.65;transition:transform .4s,opacity .4s}
.mv-offer-name{display:flex;flex-direction:column;gap:7px;font:900 clamp(24px,3vw,36px)/1 Inter,system-ui,sans-serif;letter-spacing:-.04em;text-shadow:0 3px 0 #0008,0 0 24px var(--offer-glow)}
.mv-offer-name strong{font:400 10px/1.5 'MV Pixel',monospace;text-transform:uppercase;letter-spacing:.25em}
.mv-offer-purchase{align-self:stretch;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:72px;margin:0 -22px;padding:15px 22px;border-top:1px solid var(--offer-glow);border-radius:0 0 10px 10px;background:linear-gradient(110deg,rgba(var(--offer-rgb),.22),rgba(var(--offer-rgb),.07));box-shadow:inset 0 1px 0 #ffffff08;transition:background .25s}
.mv-offer-cta{display:flex;align-items:center;gap:9px;font:800 13px/1 Inter,system-ui,sans-serif;text-transform:uppercase;letter-spacing:.12em}
.mv-offer-cta svg{width:14px;height:14px;transition:transform .25s}
.mv-offer-price{color:#fff;font:800 clamp(20px,2.4vw,27px)/1.4 Inter,system-ui,sans-serif;--fs:27px;min-width:0;white-space:nowrap}
.mv-offer:hover:not(:disabled),.mv-offer:focus-visible{transform:translateY(-7px);border-color:var(--offer);box-shadow:0 0 0 3px #070c15,0 0 28px var(--offer-glow),0 25px 45px #0009;outline:none}
.mv-offer:hover .mv-offer-art img,.mv-offer:focus-visible .mv-offer-art img{transform:translateY(-6px) rotate(-12deg) scale(1.06)}
.mv-offer:hover .mv-offer-art img+img,.mv-offer:focus-visible .mv-offer-art img+img{transform:translate(-3px,9px) rotate(12deg) scale(1.06)}
.mv-offer:hover .mv-offer-orbit{transform:rotate(18deg) scale(1.06);box-shadow:0 0 55px var(--offer-glow)}
.mv-offer:hover .mv-offer-motes{transform:translateY(-5px);opacity:1}
.mv-offer:hover .mv-offer-cta svg{transform:translateX(4px)}
.mv-offer:active:not(:disabled){transform:translateY(-2px) scale(.98)}
.mv-offer:disabled{opacity:.45;cursor:not-allowed}
.mv-offer.short .mv-offer-price{color:#d4c5ba}
.mv-ovl.on .mv-offer{animation:mv-offer-enter .4s cubic-bezier(.2,.8,.2,1) backwards}
.mv-ovl.on .mv-offer.super{animation-delay:.07s}
@keyframes mv-offer-enter{from{opacity:0;transform:translateY(22px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:600px){.mv-offers{gap:12px}.mv-offer{padding:18px 10px 0;gap:18px;border-radius:9px}.mv-offer-art{height:92px}.mv-offer-art img{width:68px;height:68px}.mv-offer-art img+img{width:58px;height:58px}.mv-offer-orbit{width:88px;height:88px}.mv-offer-name{font-size:25px}.mv-offer-name strong{font-size:8px}.mv-offer-purchase{min-height:62px;margin:0 -10px;padding:14px 10px;gap:5px}.mv-offer-price{font-size:19px;--fs:19px}.mv-offer-cta{font-size:10px;gap:4px}.mv-offer-cta svg{width:10px;height:10px}.mv-vault-buy{width:180px;margin:auto;padding:10px 14px;display:flex;justify-content:center;gap:16px}.mv-vault-seal{width:28px;height:28px}.mv-vault-seal svg{width:17px;height:17px}.mv-stage.narrow .mv-right{padding-bottom:8px}}
@media(prefers-reduced-motion:reduce){.mv-ovl.on .mv-offer{animation:none}.mv-offer,.mv-offer-art img,.mv-offer-orbit,.mv-offer-motes,.mv-offer-cta svg{transition:none}}

/* ---------- machine: HUD, stone frame, board, message ---------- */
.mv-machine{position:relative;display:flex;flex-direction:column;align-items:center;justify-self:center;min-width:0;gap:10px}
.mv-hud{display:grid;grid-template-columns:1fr;width:min(260px,calc(var(--bw) + 2 * var(--frame)))}
.mv-hud div{display:flex;flex-direction:column;align-items:center;justify-content:center;height:52px;padding:2px 6px;background:linear-gradient(#10141ee8,#0a0d14e8);
  border:2px solid #0e0c18;box-shadow:0 0 0 2px #3a4258,inset 0 2px 0 #ffffff0c;min-width:0}
.mv-hud small{font-family:'MV Pixel',monospace;font-size:8.5px;letter-spacing:.04em;color:#8fdcff;text-transform:uppercase;white-space:nowrap}
.mv-hud b{font-family:'MV Num',monospace;font-weight:400;--fs:16px;font-size:var(--fs);line-height:1.15;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.mv-stage[data-mode="normal"] .mv-hud div{box-shadow:0 0 0 2px #6a4fc0,inset 0 2px 0 #ffffff0c}
.mv-stage[data-mode="normal"] .mv-hud small{color:#d0c0ff}
.mv-stage[data-mode="super"] .mv-hud div{box-shadow:0 0 0 2px #c9952a,inset 0 2px 0 #ffffff14}
.mv-stage[data-mode="super"] .mv-hud small{color:#ffd88a}
.mv-frame{position:relative;padding:var(--frame);background:linear-gradient(#3a3f4e,#22252f 45%,#191b22);
  box-shadow:0 0 0 3px #0c0a14,0 30px 50px -18px #000,inset 0 2px 0 #ffffff1a,inset 0 -3px 0 #0006}
.mv-frame:before{content:"";position:absolute;inset:4px;pointer-events:none;border:2px solid #ffffff0d;
  background:radial-gradient(circle at 6px 6px,#78e6ff 2px,#0000 3px),radial-gradient(circle at calc(100% - 6px) 6px,#78e6ff 2px,#0000 3px),radial-gradient(circle at 6px calc(100% - 6px),#78e6ff 2px,#0000 3px),radial-gradient(circle at calc(100% - 6px) calc(100% - 6px),#78e6ff 2px,#0000 3px)}
.mv-stage[data-mode="normal"] .mv-frame{background:linear-gradient(#3d3358,#241c38 45%,#1a1428);box-shadow:0 0 0 3px #0c0a14,0 0 46px -6px #7a4dff88,0 30px 50px -18px #000,inset 0 2px 0 #ffffff1a}
.mv-stage[data-mode="super"] .mv-frame{background:linear-gradient(#5a4520,#352610 45%,#22180a);box-shadow:0 0 0 3px #140c04,0 0 60px -4px #ffb02eaa,0 30px 50px -18px #000,inset 0 2px 0 #ffe7a344}
.mv-stage[data-mode="super"] .mv-frame:before{background:radial-gradient(circle at 6px 6px,#ffd84d 2px,#0000 3px),radial-gradient(circle at calc(100% - 6px) 6px,#ffd84d 2px,#0000 3px),radial-gradient(circle at 6px calc(100% - 6px),#ffd84d 2px,#0000 3px),radial-gradient(circle at calc(100% - 6px) calc(100% - 6px),#ffd84d 2px,#0000 3px)}
.mv-board{position:relative;width:var(--bw);height:var(--bw);background:#07080c;box-shadow:inset 0 0 0 2px #000,inset 0 6px 18px #000c}

/* a tile: stone recess; multiplier plate on top, head in the middle, cash/badge at the bottom - they never overlap */
.mv-tile{position:absolute;width:var(--tile);height:var(--tile);background:url(../assets/slots/mobvault/tile.png) center/calc(var(--tile) * .5) repeat;image-rendering:pixelated;
  box-shadow:inset 0 0 0 2px #0a0b10,inset 0 calc(var(--tile) * .05) calc(var(--tile) * .1) #000d,inset 0 calc(var(--tile) * -.02) 0 #ffffff10}
.mv-tile:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 50% at 50% 60%,#0000,#0007)}
.mv-glint{position:absolute;inset:2px;pointer-events:none;opacity:0;transition:opacity .4s;mix-blend-mode:screen;z-index:1;
  background:linear-gradient(115deg,#0000 30%,var(--gl,#9a7cff) 45%,#0000 55%,#0000 70%,var(--gl,#9a7cff) 80%,#0000 88%) 0 0/300% 300%;animation:mvGlint 3.2s linear infinite}
@keyframes mvGlint{from{background-position:120% 0}to{background-position:-120% 0}}
.mv-tile[data-t="1"] .mv-glint{opacity:.28;--gl:#b48cff}
.mv-tile[data-t="2"] .mv-glint{opacity:.36;--gl:#68d8ff}
.mv-tile[data-t="3"] .mv-glint{opacity:.42;--gl:#5cffb0}
.mv-tile[data-t="4"] .mv-glint{opacity:.5;--gl:#ffcf4a}
.mv-tile[data-t="5"] .mv-glint{opacity:.6;--gl:#ff6a8a}
.mv-stage[data-mode="base"] .mv-glint{opacity:0!important}
.mv-tile[data-t="1"]{box-shadow:inset 0 0 0 2px #7b5cd6,inset 0 0 calc(var(--tile) * .18) #7b5cd666,inset 0 calc(var(--tile) * .05) calc(var(--tile) * .1) #000c}
.mv-tile[data-t="2"]{box-shadow:inset 0 0 0 2px #3fb6ff,inset 0 0 calc(var(--tile) * .2) #3fb6ff77,inset 0 calc(var(--tile) * .05) calc(var(--tile) * .1) #000c}
.mv-tile[data-t="3"]{box-shadow:inset 0 0 0 3px #2fe08f,inset 0 0 calc(var(--tile) * .22) #2fe08f77,inset 0 calc(var(--tile) * .05) calc(var(--tile) * .1) #000c}
.mv-tile[data-t="4"]{box-shadow:inset 0 0 0 3px #ffc94a,inset 0 0 calc(var(--tile) * .25) #ffc94a88,inset 0 calc(var(--tile) * .05) calc(var(--tile) * .1) #000c}
.mv-tile[data-t="5"]{box-shadow:inset 0 0 0 3px #ff5d7a,inset 0 0 calc(var(--tile) * .3) #ff5d7a99,inset 0 calc(var(--tile) * .05) calc(var(--tile) * .1) #000c}
.mv-stage[data-mode="base"] .mv-tile{box-shadow:inset 0 0 0 2px #0a0b10,inset 0 calc(var(--tile) * .05) calc(var(--tile) * .1) #000d,inset 0 calc(var(--tile) * -.02) 0 #ffffff10}
.mv-mult{position:absolute;left:50%;top:calc(var(--tile) * .035);z-index:3;transform:translateX(-50%);min-width:calc(var(--tile) * .34);height:calc(var(--tile) * .19);
  padding:0 calc(var(--tile) * .05);display:grid;place-items:center;font-family:'MV Num',monospace;font-weight:400;font-size:calc(var(--tile) * .105);line-height:1;
  color:#d6dcea;background:#2a2f3c;border:2px solid #0c0a14;box-shadow:inset 0 2px 0 #ffffff22,inset 0 -2px 0 #0006;white-space:nowrap}
.mv-mult[data-t="1"]{background:#5b3fb0;color:#fff;box-shadow:inset 0 2px 0 #b9a0ff,inset 0 -2px 0 #2c1a66,0 0 10px #8a6bff99}
.mv-mult[data-t="2"]{background:#1f7fd0;color:#fff;box-shadow:inset 0 2px 0 #9fe0ff,inset 0 -2px 0 #0b3a6a,0 0 12px #3fb6ffaa}
.mv-mult[data-t="3"]{background:#159a5c;color:#fff;box-shadow:inset 0 2px 0 #9ff5c8,inset 0 -2px 0 #07492a,0 0 14px #2fe08faa}
.mv-mult[data-t="4"]{background:#e3a312;color:#1b0f05;box-shadow:inset 0 2px 0 #fff0a8,inset 0 -2px 0 #8a5a06,0 0 16px #ffc94acc}
.mv-mult[data-t="5"]{background:#e2335a;color:#fff;box-shadow:inset 0 2px 0 #ffb3c4,inset 0 -2px 0 #7a0a26,0 0 18px #ff5d7acc}
.mv-mult.cap:after{content:"MAX";position:absolute;right:-6px;top:-9px;font-size:calc(var(--tile) * .08);padding:1px 3px;background:#fff;color:#7a0a26;border:1px solid #0c0a14}
.mv-stage[data-mode="base"] .mv-mult{display:none}
.mv-head{position:absolute;left:13%;top:12%;width:74%;height:74%;z-index:2;display:block}
.mv-head img{width:100%;height:100%;display:block;object-fit:contain;filter:drop-shadow(0 calc(var(--tile) * .03) calc(var(--tile) * .03) #000c)}
.mv-tile.s-B .mv-head{left:9%;top:10%;width:82%;height:82%}
.mv-tile.s-B{background-color:#2a0f22}
.mv-tile.s-B:before{content:"";position:absolute;inset:calc(var(--tile) * .06);z-index:1;border:calc(var(--tile) * .035) solid #ffd84d;
  box-shadow:0 0 0 2px #5a2a06,inset 0 0 0 2px #5a2a06,0 0 18px #ff8fc077,inset 0 0 22px #ff8fc066;background:radial-gradient(circle,#ff8fc040,#0000 70%)}
.mv-val{position:absolute;left:50%;bottom:calc(var(--tile) * .04);z-index:3;transform:translateX(-50%);max-width:94%;transition:opacity .2s}
.mv-val b{display:flex;align-items:center;gap:3px;height:calc(var(--tile) * .2);padding:0 calc(var(--tile) * .06);font-family:'MV Num',monospace;font-weight:400;
  font-size:calc(var(--tile) * .108);line-height:1;color:#fff;background:#11141c;border:2px solid #0c0a14;box-shadow:inset 0 2px 0 #ffffff26,0 0 0 1px #ffffff22;white-space:nowrap}
.mv-tile.val .mv-val b{background:linear-gradient(#3a2c0a,#1e1606);color:#ffe08a;box-shadow:inset 0 2px 0 #ffe08a44,0 0 0 1px #c9952a88}
.mv-tile.s-E .mv-val b,.mv-tile.s-C .mv-val b{color:#fff6c8}
.mv-val.boost b{background:linear-gradient(#ffd84d,#e3a312);color:#1b0f05;box-shadow:inset 0 2px 0 #fff6c8,0 0 12px #ffc94acc}
.mv-val.gone{opacity:0}
.mv-val.sp b{font-family:'MV Pixel',monospace;font-weight:400;font-size:calc(var(--tile) * .085);letter-spacing:.02em}
.mv-val.sp b svg{width:calc(var(--tile) * .09);height:calc(var(--tile) * .09)}
.mv-val.sp-V b{background:linear-gradient(#2fbf6a,#16804a);color:#fff;box-shadow:inset 0 2px 0 #b8ffd4,0 0 10px #2fe08f88}
.mv-val.sp-A b{background:linear-gradient(#5fe0ff,#1f9fd8);color:#05202e;box-shadow:inset 0 2px 0 #d8f8ff,0 0 10px #65c7ffaa}
.mv-val.sp-W b{background:#6a3fc8;color:#fff;box-shadow:inset 0 2px 0 #c8a2ff}
.mv-val.sp-H b{background:#0f7fb8;color:#fff;box-shadow:inset 0 2px 0 #9fe8ff}
.mv-val.sp-X b{background:#3a0f1e;color:#ff9aa8;box-shadow:inset 0 2px 0 #ff9aa866,0 0 10px #ff3a5a66}
.mv-val.limit b{background:#5a1020;color:#ffc2cc}
.mv-tile.unpaid .mv-val{opacity:.4}
.mv-tile.unpaid .mv-val b{text-decoration:line-through}
.mv-tile.paid .mv-val b{box-shadow:inset 0 2px 0 #ffffff55,0 0 14px #2fe08fcc}
/* tile states */
.mv-tile.land .mv-head{animation:mvLand .6s cubic-bezier(.2,1.6,.4,1)}
@keyframes mvLand{0%{transform:scale(1.35)}100%{transform:none}}
.mv-tile.trig:before{animation:mvTrig .45s steps(2) infinite}
@keyframes mvTrig{50%{border-color:#fff;box-shadow:0 0 0 2px #5a2a06,0 0 30px #ff8fc0}}
.mv-tile.trig .mv-head{animation:mvBob .6s ease-in-out infinite alternate}
@keyframes mvBob{to{transform:translateY(-6%) scale(1.06)}}
.mv-tile.cast .mv-head{animation:mvCast .8s ease-out}
@keyframes mvCast{0%{transform:none;filter:brightness(1)}30%{transform:scale(1.18) rotate(-4deg);filter:brightness(1.8)}100%{transform:none;filter:brightness(1)}}
.mv-tile.hit{animation:mvHit .7s ease-out}
@keyframes mvHit{0%{filter:brightness(2.2)}100%{filter:brightness(1)}}
.mv-tile.collector .mv-head{animation:mvColl 1.4s ease-in-out}
@keyframes mvColl{0%,100%{transform:none}20%{transform:scale(1.2)}40%{transform:scale(1.08) rotate(5deg)}60%{transform:scale(1.14) rotate(-5deg)}}
.mv-tile.collector{box-shadow:inset 0 0 0 3px #2fe08f,inset 0 0 26px #2fe08f88!important}
.mv-tile.allay .mv-head{animation:mvAllay 1s ease-out}
@keyframes mvAllay{0%{transform:none}35%{transform:translateY(-14%) scale(1.15);filter:brightness(1.6)}100%{transform:none}}
.mv-tile.s-H .mv-head img{filter:drop-shadow(0 0 calc(var(--tile) * .06) #4fd8ffaa) drop-shadow(0 calc(var(--tile) * .03) calc(var(--tile) * .03) #000c)}
.mv-tile.s-X .mv-head img{filter:drop-shadow(0 0 calc(var(--tile) * .07) #b02a5acc) drop-shadow(0 calc(var(--tile) * .03) calc(var(--tile) * .03) #000c)}
.mv-tile.s-A .mv-head img{filter:drop-shadow(0 0 calc(var(--tile) * .06) #8fe8ffcc)}
.mv-tile.s-V .mv-head img{filter:drop-shadow(0 0 calc(var(--tile) * .05) #2fe08f88) drop-shadow(0 calc(var(--tile) * .03) calc(var(--tile) * .03) #000c)}

/* effects (board-local) */
.mv-fx{position:absolute;inset:0;z-index:8;pointer-events:none}
.mv-spell-aura{position:absolute;width:calc(var(--tile) * .86);height:calc(var(--tile) * .86);color:#c690ff;border-radius:50%;background:radial-gradient(circle,#b34aff22,transparent 65%);will-change:transform,opacity}
.mv-spell-aura.charged{color:#8deeff;background:radial-gradient(circle,#52d7ff22,transparent 65%)}
.mv-spell-aura i{position:absolute;inset:0;border:2px solid currentColor;border-radius:50%;box-shadow:0 0 12px currentColor,inset 0 0 8px #ffffff28}
.mv-spell-aura i:nth-child(2){inset:13%;border-width:1px;border-style:dashed;transform:rotate(24deg);opacity:.65}
.mv-spell-aura i:nth-child(3){inset:-10%;border-width:1px;opacity:.3}
.mv-motes{position:absolute;color:#d5a6ff}
.mv-motes.charged{color:#b5f5ff}
.mv-motes i{position:absolute;width:calc(var(--tile) * .035);height:calc(var(--tile) * .035);border-radius:50%;background:currentColor;box-shadow:0 0 9px currentColor}
.mv-motes.charged i{border-radius:1px}
.mv-charge-dim{position:absolute;inset:0;background:#020914;pointer-events:none}
.mv-charge-cage{position:absolute;width:calc(var(--tile)*1.65);height:calc(var(--tile)*1.65);filter:drop-shadow(0 0 7px #30bfff);pointer-events:none}
.mv-charge-cage svg{width:100%;height:100%;overflow:visible;fill:none;stroke-linejoin:bevel}
.mv-cage-loop{stroke:#5cdeff;stroke-width:2;stroke-dasharray:22 6 4 9;filter:drop-shadow(0 0 4px #6fe6ff)}
.mv-cage-arc{stroke:#d6fcff;stroke-width:3;filter:drop-shadow(0 0 3px #68d6ff)}
.mv-electric-shock{position:absolute;width:var(--tile);height:var(--tile);border:3px solid #9beeff;border-radius:50%;box-shadow:0 0 15px #45ceff,inset 0 0 25px #60dcff;background:radial-gradient(circle,#c2faff33,transparent 65%)}
.mv-electric-impact{position:absolute;display:grid;place-items:center;width:calc(var(--tile)*.9);height:calc(var(--tile)*.9);border:2px solid #8deeff;border-radius:12%;background:radial-gradient(circle,#68dfff55,transparent 75%);box-shadow:inset 0 0 22px #45bbff66,0 0 18px #45bbff55}
.mv-electric-impact span{font:900 calc(var(--tile)*.24)/1 Inter,system-ui;color:#e0fbff;text-shadow:0 3px 0 #13567c,0 0 12px #7be1ff}
.mv-tile.charging{box-shadow:inset 0 0 0 2px #69dfff,inset 0 0 35px #42b9ef55!important}
.mv-tile.electrified{animation:mv-electric-tile .95s ease-out}
.mv-lightning-layer .mv-bolt-glow{stroke-width:14;opacity:.5}.mv-lightning-layer .mv-bolt{stroke-width:4;stroke:#e9ffff;filter:drop-shadow(0 0 5px #69dfff)}.mv-lightning-layer .mv-bolt-fork{stroke-width:2}
@keyframes mv-electric-tile{0%,25%{box-shadow:inset 0 0 0 3px #a8f6ff,inset 0 0 35px #3eaafaaa}100%{box-shadow:inset 0 0 0 1px #3eaafa00,inset 0 0 10px #3eaafa00}}
@media(prefers-reduced-motion:reduce){.mv-tile.electrified{animation:none}}
.mv-potion,.mv-potion-trail{position:absolute;left:0;top:0;width:calc(var(--tile) * .25);height:calc(var(--tile) * .30);margin-left:calc(var(--tile) * -.125);margin-top:calc(var(--tile) * -.15);filter:drop-shadow(0 0 9px #b15cff);z-index:2}
.mv-potion svg{display:block;width:100%;height:100%}
.mv-potion-trail{width:calc(var(--tile) * .12);height:calc(var(--tile) * .12);border-radius:50%;background:radial-gradient(circle,#e5c5ff,#b349ff66 45%,transparent 70%);filter:blur(2px);z-index:1}
.mv-lightning-layer{position:absolute;inset:0;pointer-events:none}
.mv-lightning-layer svg{width:100%;height:100%;overflow:visible;fill:none;stroke-linecap:round;stroke-linejoin:round}
.mv-bolt-glow{stroke:#27b9ee;stroke-width:10;opacity:.4;filter:blur(3px)}
.mv-bolt{stroke:#e9feff;stroke-width:2.7;stroke-dasharray:1;filter:drop-shadow(0 0 4px #55dfff)}
.mv-bolt-fork{stroke:#8beaff;stroke-width:1.2;opacity:.8}
.mv-beam{position:absolute;height:calc(var(--tile) * .1);margin-top:calc(var(--tile) * -.05);transform-origin:0 50%;border-radius:4px}
.mv-beam.witch{background:repeating-linear-gradient(90deg,#d6b8ff 0 8px,#8a5aff 8px 14px);box-shadow:0 0 14px #a77bff,0 0 30px #7a4dff;height:calc(var(--tile) * .06);margin-top:calc(var(--tile) * -.03)}
.mv-beam.zap{background:linear-gradient(#0000,#e8fbff 35%,#fff 50%,#e8fbff 65%,#0000);box-shadow:0 0 18px #4fd8ff,0 0 36px #1f9fd8;
  -webkit-mask:repeating-linear-gradient(90deg,#000 0 10px,#0008 10px 14px);mask:repeating-linear-gradient(90deg,#000 0 10px,#0008 10px 14px)}
.mv-orb{position:absolute;left:0;top:0;width:calc(var(--tile) * .22);height:calc(var(--tile) * .22);margin:calc(var(--tile) * -.11) 0 0 calc(var(--tile) * -.11);
  background:radial-gradient(circle,#fff 0 20%,#d6b8ff 30%,#8a5aff 55%,#0000 72%);box-shadow:0 0 22px #a77bff}
.mv-ring{position:absolute;border-radius:6%;border:calc(var(--tile) * .06) solid #ff5d7a;box-shadow:0 0 40px #b02a5a,inset 0 0 40px #b02a5a;background:radial-gradient(circle,#3a0f1e88,#0000 65%)}
.mv-gem{position:absolute;left:0;top:0;width:calc(var(--tile) * .14);height:calc(var(--tile) * .14);margin:calc(var(--tile) * -.07) 0 0 calc(var(--tile) * -.07);
  background:#2fe08f;box-shadow:inset 3px 3px 0 #b8ffd4,inset -3px -3px 0 #0a7a44,0 0 14px #2fe08f;transform:rotate(45deg)}
.mv-ftag{position:absolute;z-index:9;font-family:'MV Pixel',monospace;font-size:calc(var(--tile) * .14);color:#fff;text-shadow:0 3px 0 #2a1460,0 0 14px #a77bff;white-space:nowrap}
.mv-msg{min-height:34px;width:calc(var(--bw) + 2 * var(--frame));padding:6px 14px;background:#06080ee0;border:2px solid #0e0c18;box-shadow:0 0 0 2px #2a3248;
  color:var(--muted);font-size:14.5px;font-weight:600;text-align:center;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-msg b{color:var(--text)}
.mv-msg.win{color:#c8ffe0}
.mv-msg.win b{color:#fff}
.mv-msg.ench{color:#e0d0ff}
.mv-msg.wither{color:#ffb3c0}
.mv-msg.allay{color:#bff3ff}
.mv-msg.super,.mv-msg.gold{color:#ffe08a}
.mv-msg.dim,.mv-msg.part{color:var(--dim)}

/* ---------- control deck (part of the machine) ---------- */
.mv-deck{grid-column:1/-1;position:relative;z-index:4;display:flex;align-items:center;gap:10px;padding:10px 16px;min-height:86px;
  background:linear-gradient(#1b2030,#0f121b);border-top:3px solid #0e0c18;box-shadow:inset 0 3px 0 #3a4258,0 -10px 24px -10px #000c}
.mv-plaques{display:flex;gap:8px;min-width:0}
.mv-plaque,.mv-stake{display:flex;flex-direction:column;justify-content:center;height:58px;padding:4px 12px;background:#07090f;border:2px solid #0e0c18;box-shadow:0 0 0 2px #2a3248,inset 0 2px 6px #000a}
.mv-plaque{min-width:150px}
.mv-plaque small,.mv-stake small{font-family:'MV Pixel',monospace;color:#8fdcff;font-size:8.5px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.mv-plaque b{--fs:19px;font-size:var(--fs);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}
.mv-plaque.win b{color:#ffe08a}
.mv-stake{margin-left:auto}
.mv-step{display:flex;align-items:center;gap:6px;margin-top:2px}
.mv-step b{min-width:62px;text-align:center;font-size:20px;font-weight:800}
.mv-step button{width:30px;height:28px;border:2px solid #0e0c18;background:#2e3448;color:#d8e4ff;font-size:18px;font-weight:800;cursor:pointer;line-height:1;box-shadow:inset 0 2px 0 #ffffff22}
.mv-step button:hover:not(:disabled){background:#3e4660}
.mv-step button:disabled{opacity:.35;cursor:not-allowed}
.mv-buy{height:62px;min-width:118px;padding:0 12px;border:2px solid #0e0c18;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  font-family:'MV Pixel',monospace;font-size:10px;letter-spacing:.02em;line-height:1.2;color:#fff;transition:filter .15s,transform .12s}
.mv-buy small{font-family:Inter,system-ui,sans-serif;font-size:15px;font-weight:800;letter-spacing:0}
.mv-buy.n{background:linear-gradient(#7a54e0,#4a2aa8);box-shadow:0 0 0 2px #9a7cff,inset 0 2px 0 #c8b0ff,0 6px 16px -8px #7a4dff}
.mv-buy.s{background:linear-gradient(#f0b02a,#b06a08);color:#1b0f05;box-shadow:0 0 0 2px #ffd84d,inset 0 2px 0 #fff0a8,0 6px 18px -6px #ffb02e}
.mv-buy.s small{color:#1b0f05}
.mv-buy:hover:not(:disabled){filter:brightness(1.12)}
.mv-buy:active:not(:disabled){transform:scale(.97)}
.mv-buy:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.6)}
.mv-buy.short{opacity:.6;filter:grayscale(.5)}
/* gated (stake too low for the minimum buy): still shows the proportional price, styled as a "raise your stake" lock */
.mv-buy.lowstake:disabled{opacity:.72;filter:none;cursor:not-allowed;box-shadow:0 0 0 2px #c9952a,inset 0 2px 0 #ffffff14}
.mv-buy.lowstake.n:disabled{background:linear-gradient(#4a4668,#332d52)}
.mv-buy.lowstake.s:disabled{background:linear-gradient(#5a4a28,#3a2e14);color:#ffe0a0}
.mv-buy.lowstake.s:disabled small{color:#ffe0a0}
.mv-spin{position:relative;width:96px;height:96px;margin:-14px 4px -6px;border-radius:50%;border:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(circle at 50% 35%,#8ff0ff,#2fa8e8 55%,#1b6ab8);color:#fff;
  box-shadow:0 0 0 5px #0e0c18,0 0 0 8px #3a4258,0 10px 26px -6px #000,inset 0 3px 0 #ffffff66,inset 0 -6px 12px #0003;transition:transform .12s,filter .15s}
.mv-spin svg{position:absolute;inset:12px;opacity:.28}
.mv-spin span{position:relative;font-family:'MV Pixel',monospace;font-size:15px;line-height:1;text-shadow:0 2px 0 #0b3a6a}
.mv-spin small{position:relative;font-size:13px;font-weight:800;opacity:.95;min-height:15px;margin-top:5px}
.mv-spin:hover:not(:disabled){filter:brightness(1.1)}
.mv-spin:active:not(:disabled){transform:scale(.96)}
.mv-stage[data-phase="spin"] .mv-spin svg{animation:mvRot .7s linear infinite;opacity:.4}
@keyframes mvRot{to{transform:rotate(360deg)}}
.mv-spin:disabled{filter:grayscale(.7) brightness(.7);cursor:not-allowed}
.mv-spin.fs{background:radial-gradient(circle at 50% 35%,#d8c0ff,#8a5aff 55%,#5a2ad0)}
.mv-stage[data-mode="super"] .mv-spin.fs{background:radial-gradient(circle at 50% 35%,#fff0a8,#f0b02a 55%,#b06a08)}
.mv-spin.skip{background:radial-gradient(circle at 50% 35%,#8fe8b8,#2aa86c 60%,#167a4a)}
.mv-spin.short{background:radial-gradient(circle at 50% 35%,#4a5670,#2a3448)}
.mv-tools{display:grid;grid-template-columns:repeat(4,52px);gap:6px}
.mv-tool{height:52px;padding:0 4px;border:2px solid #0e0c18;background:#0c0f18;box-shadow:0 0 0 1px #2a3248;color:#b8c4dc;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:700}
.mv-tool:hover{color:#fff}
.mv-tool.on{color:var(--cyan);box-shadow:0 0 0 1px #65c7ff88}
.mv-tool#mv-fav.on{color:#ff6b97}
.mv-tool#mv-fav.on svg{fill:currentColor}
.mv-tool .ic{width:18px;height:18px}
.mv-ff{display:block;width:18px;height:18px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m13 19 9-7-9-7zM2 19l9-7-9-7z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m13 19 9-7-9-7zM2 19l9-7-9-7z'/%3E%3C/svg%3E") center/contain no-repeat}

/* ---------- big win ---------- */
.mv-bigwin{position:absolute;inset:0;z-index:13;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;pointer-events:none;
  background:radial-gradient(ellipse at 50% 45%,#000d,#0008 55%,#0002);opacity:0;transition:opacity .3s}
.mv-bigwin.on{opacity:1;pointer-events:auto;cursor:pointer}
.mv-bigwin em{font-style:normal;font-family:'MV Pixel',monospace;font-size:clamp(28px, calc(var(--tile) * .42), 60px);color:#ffd84d;text-shadow:0 5px 0 #6b3a06,0 0 40px #ffb02e99}
.mv-bigwin.t-mega em{color:#9feaff;text-shadow:0 5px 0 #0b4a66,0 0 44px #5ad8ffaa}
.mv-bigwin.t-epic em{color:#d8c0ff;text-shadow:0 5px 0 #2a1460,0 0 50px #a77bffcc}
.mv-bigwin b{font-family:'MV Num',monospace;--fs:clamp(26px, calc(var(--tile) * .32), 54px);font-size:var(--fs);font-weight:400;color:#fff;text-shadow:0 4px 0 #000a}
.mv-bigwin small{color:#ffe2a8;font-weight:700;font-size:16px;min-height:20px}
.mv-bigwin i{font-style:normal;color:#ffffff88;font-size:12px;font-weight:700;margin-top:6px}

/* ---------- overlays ---------- */
.mv-ovl{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:14px;background:#04050ac0;backdrop-filter:blur(3px);opacity:0;transition:opacity .25s}
.mv-ovl.on{opacity:1}
.mv-ovl[hidden]{display:none}
.mv-card{width:min(500px,100%);max-height:100%;overflow:auto;background:linear-gradient(#141a28,#0c1018);border:3px solid #0e0c18;box-shadow:0 0 0 2px #3a4258,0 30px 60px #000c;
  padding:18px 22px;transform:translateY(10px);transition:transform .3s cubic-bezier(.2,.9,.3,1.2)}
.mv-ovl.on .mv-card,.mv-ovl.on .mv-wbox{transform:none}
.mv-card h2{margin:0 0 10px;font-size:20px}
.mv-buyhead{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.mv-buyhead img{width:56px;height:56px;object-fit:contain}
.mv-buyhead h2{margin:0;font-family:'MV Pixel',monospace;font-weight:400;font-size:16px;line-height:1.4;color:#d8c8ff}
/* ---- themed buy-confirm dialog: dark vault + the mode's accent (blue/purple NORMAL, gold SUPER).
   Only the cost + what-the-bonus-is + Confirm/Cancel remain. ---- */
.mv-card.buy{width:min(390px,100%);box-shadow:0 0 0 2px #7a54e0,0 0 40px -8px #7a4dff,0 30px 60px #000c}
.mv-card.buy.super{box-shadow:0 0 0 2px #ffc94a,0 0 40px -6px #ffb02e,0 30px 60px #000c;background:linear-gradient(#2a200c,#120c04)}
.mv-card.buy.super .mv-buyhead h2{color:#ffe08a}
.mv-buy-what{margin:2px 0 12px;color:#cfd6ea;font-weight:700;font-size:14.5px;line-height:1.45}
.mv-buy-what b{color:#d8c8ff}
.mv-card.buy.super .mv-buy-what b{color:#ffe08a}
.mv-buy-cost{background:#070a12cc;border:1px solid #ffffff18;padding:10px 12px;margin:0 0 10px;display:flex;flex-direction:column;align-items:center;gap:3px}
.mv-card.buy.super .mv-buy-cost{border-color:#ffc94a44}
.mv-buy-cost small{color:#8fdcff;font-weight:800;font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.mv-card.buy.super .mv-buy-cost small{color:#ffd27a}
.mv-buy-cost b{font-family:'MV Num',monospace;font-weight:400;font-size:clamp(16px,5vw,22px);line-height:1.4;color:#fff;white-space:nowrap;max-width:100%}
.mv-buy-note{margin:0 0 12px;color:#8f9bc0;font-size:12px}
.mv-card.buy .btn.pri{background:linear-gradient(#8f74ff,#5a3fd0);color:#fff;box-shadow:inset 0 1px 0 #ffffff40,0 8px 20px -10px #7a4dff}
.mv-card.buy .btn.pri:hover:not(:disabled){filter:brightness(1.08);background:linear-gradient(#a089ff,#5a3fd0)}
.mv-card.buy.super .btn.pri{background:linear-gradient(#ffe08a,#ffc94a 55%,#d79620);color:#2a1c04;text-shadow:0 1px 0 #ffeaa8;box-shadow:inset 0 1px 0 #fff3c8,0 8px 20px -10px #ffb02e}
.mv-short{margin:4px 0 0;padding:8px 10px;background:#3a0a16;border:1px solid #ff5470;color:#ffc2cc;font-weight:700;font-size:14px}
.mv-card.buy{--confirm:#c5a0ff;--confirm-glow:#9c5dff33;position:relative;width:min(430px,100%);padding:24px;border:2px solid #77608e;border-radius:14px;background:radial-gradient(ellipse at 50% 0,#483055aa,transparent 70%),linear-gradient(145deg,#232030,#0d131e);box-shadow:0 0 0 3px #080d16,inset 0 2px 0 #ffffff16,0 24px 70px #000b}
.mv-card.buy.super{--confirm:#ffdc91;--confirm-glow:#efb75033;border-color:#8d7442;background:radial-gradient(ellipse at 50% 0,#604b2888,transparent 70%),linear-gradient(145deg,#292724,#0d131e);box-shadow:0 0 0 3px #080d16,inset 0 2px 0 #ffffff16,0 24px 70px #000b}
.mv-confirm-art{height:100px;position:relative;display:flex;justify-content:center;align-items:center;isolation:isolate;margin-bottom:12px}
.mv-confirm-art:before{content:"";position:absolute;width:108px;height:108px;border:1px solid var(--confirm-glow);border-radius:50%;background:radial-gradient(circle,var(--confirm-glow),transparent 70%);box-shadow:0 0 30px var(--confirm-glow);z-index:-1}
.mv-confirm-art img{width:86px;height:86px;object-fit:contain;transform:rotate(-9deg);filter:drop-shadow(0 8px 8px #0008)}
.mv-confirm-art img+img{width:74px;height:74px;transform:translate(-6px,10px) rotate(9deg)}
.mv-card.buy .mv-buyhead{display:flex;flex-direction:column;gap:6px;margin:0 0 22px;text-align:center}
.mv-buyhead small{color:#a8a6b7;font:800 10px/1.4 Inter,system-ui,sans-serif;text-transform:uppercase;letter-spacing:.18em}
.mv-card.buy .mv-buyhead h2{font:900 32px/1.15 Inter,system-ui,sans-serif;letter-spacing:-.04em;color:var(--confirm);text-shadow:0 2px 0 #0008}
.mv-card.buy .mv-buy-cost{padding:15px 12px 16px;margin-bottom:20px;border:1px solid var(--confirm-glow);border-radius:9px;background:#080e1866;gap:5px}
.mv-card.buy .mv-buy-cost>small:first-child{font-size:10px;color:#b3b8c7;letter-spacing:.16em}
.mv-card.buy .mv-buy-cost b{font:850 clamp(27px,5vw,34px)/1.2 Inter,system-ui,sans-serif;letter-spacing:-.03em}
.mv-card.buy .sl-buy-exact{margin-top:2px;font-size:11px!important;color:#a3aabb;text-transform:none}
.mv-card.buy .mv-row{gap:9px}
.mv-card.buy #mv-b-no{flex:0 0 27%;background:#ffffff08;border:1px solid #ffffff15;color:#b8beca;font-size:13px}
.mv-card.buy #mv-b-yes{display:flex;align-items:center;justify-content:center;gap:10px;padding:0 12px;font-size:14px;background:linear-gradient(#9973d2,#64419a);border:1px solid #c8a3ff88;box-shadow:inset 0 1px 0 #ffffff24,0 5px 16px #0005;transition:transform .2s,box-shadow .2s,filter .2s}
.mv-card.buy.super #mv-b-yes{background:linear-gradient(#e8c273,#b58633);border-color:#ffe1a388;color:#241c0f;text-shadow:none}
.mv-card.buy #mv-b-yes svg{width:14px;height:14px;transition:transform .2s}
.mv-card.buy #mv-b-yes:hover:not(:disabled){transform:translateY(-3px);filter:brightness(1.08);box-shadow:0 6px 22px var(--confirm-glow)}
.mv-card.buy #mv-b-yes:hover svg{transform:translateX(3px)}
.mv-card.buy #mv-b-yes:active:not(:disabled){transform:translateY(0) scale(.98)}
.mv-card.buy #mv-b-yes:disabled{opacity:.5;box-shadow:none;cursor:not-allowed}
.mv-card.buy .mv-short{margin-bottom:14px;border-radius:7px;font-size:12px}
@media(max-width:600px){.mv-card.buy{padding:20px 16px}.mv-card.buy .mv-buyhead h2{font-size:28px}.mv-card.buy #mv-b-yes{font-size:12px;gap:6px}.mv-card.buy #mv-b-no{font-size:12px}.mv-confirm-art{height:85px}.mv-confirm-art img{width:74px;height:74px}.mv-confirm-art img+img{width:64px;height:64px}}
.mv-kv{width:100%;border-collapse:collapse;font-size:15px;margin:6px 0 8px;text-align:left}
.mv-kv td{padding:6px 4px;border-bottom:1px solid #ffffff10}
.mv-kv td:last-child{text-align:right;font-weight:700}
.mv-kv td small{color:var(--dim);font-weight:600}
.mv-kv tr.after td{border-bottom:0;font-weight:800;color:var(--text)}
.mv-kv tr.sub td{color:var(--muted);font-size:13.5px}
.mv-kv tr.net td{font-weight:800;font-size:16px}
.mv-kv tr.net.w td:last-child{color:var(--win)}
.mv-kv tr.net.l td:last-child{color:var(--lose)}
.mv-fine{color:var(--muted);font-size:13px;line-height:1.5;margin:8px 0 12px}
.mv-row{display:flex;gap:10px}
.mv-row .btn{flex:1}
.mv-go{min-width:220px}
.mv-card.sum{text-align:center;box-shadow:0 0 0 2px #7a54e0,0 0 40px -8px #7a4dff,0 30px 60px #000c}
.mv-ovl.super .mv-card.sum{box-shadow:0 0 0 2px #ffc94a,0 0 50px -6px #ffb02e,0 30px 60px #000c;background:linear-gradient(#2a200c,#120c04)}
.mv-disp{font-family:'MV Pixel',monospace;font-weight:400;font-size:17px!important;line-height:1.5;color:#d8c8ff;text-shadow:0 3px 0 #2a1460;margin:2px 0 8px!important}
.mv-disp.super{color:#ffe08a;text-shadow:0 3px 0 #6b3a06}
.mv-sum-total{margin:10px 0 18px}
.mv-sum-total small{display:block;color:#8fdcff;font-weight:800;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.mv-sum-total b{display:block;font-family:'MV Num',monospace;font-size:30px;font-weight:400;line-height:1.4;color:#fff}
.mv-sum-total em{font-style:normal;color:var(--muted);font-weight:700;font-size:14px}
.mv-sum-total.w b{color:var(--win)}
.mv-card.pay{width:min(800px,100%)}
.mv-pay-head{display:flex;align-items:center;justify-content:space-between}
.mv-pay-head h2{margin:0}
.mv-ptab{width:100%;border-collapse:collapse;margin:4px 0 12px}
.mv-ptab th{font-size:12.5px;color:var(--muted);font-weight:700;text-align:right;padding:4px 8px;border-bottom:1px solid var(--border)}
.mv-ptab th:first-child{text-align:left}
.mv-ptab td{padding:4px 8px;border-bottom:1px solid #ffffff0c;text-align:right;font-size:14px}
.mv-ptab td:first-child{text-align:left}
.mv-ptab td b{display:block;font-size:15px}
.mv-ptab td small{color:var(--dim);font-size:12px;font-weight:600}
.mv-ptab.cmp td{text-align:left;font-size:14px;color:#d8e2f6}
.mv-ptab.cmp td:first-child{color:var(--muted);font-weight:700}
.mv-ptab.cmp th{text-align:left}
.mv-psym{display:flex;align-items:center;gap:10px}
.mv-psym img{width:40px;height:40px;object-fit:contain}
.mv-specials{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.mv-specials div{display:flex;gap:10px;align-items:flex-start;background:var(--inset);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px}
.mv-specials img{width:44px;height:44px;flex:none;object-fit:contain}
.mv-specials p{margin:0;font-size:13px;line-height:1.45;color:#d8e2f6}
.mv-load{position:absolute;inset:0;z-index:30;display:grid;place-items:center;background:#05070d;transition:opacity .4s}
.mv-load.off{opacity:0;pointer-events:none}
.mv-load div{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--muted);font-weight:700}
.mv-load img{width:80px;animation:mvBob2 1s ease-in-out infinite alternate}
@keyframes mvBob2{to{transform:translateY(-8px)}}
.mv-lbar{width:200px;height:6px;background:#ffffff14;overflow:hidden}
.mv-lbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#3c96ff,#78e6ff);transition:width .2s}

/* ---------- the wheel ---------- */
.mv-wbox{--wheel-accent:#c7a4ff;--wheel-glow:#a264ff66;display:flex;flex-direction:column;align-items:center;gap:8px;transform:scale(.94);transition:transform .35s cubic-bezier(.2,.9,.3,1.2);text-align:center;max-width:100%;position:relative}
.mv-ovl.super .mv-wbox{--wheel-accent:#ffdc8d;--wheel-glow:#ffc14c66}
.mv-wheel-kicker{color:var(--wheel-accent);font:800 10px/1.4 Inter,system-ui,sans-serif;letter-spacing:.28em;opacity:.75}
.mv-wt{margin:0 0 8px;font:900 clamp(26px,3vw,38px)/1.1 Inter,system-ui,sans-serif;letter-spacing:-.04em;color:var(--wheel-accent);text-shadow:0 3px 0 #0008,0 0 30px var(--wheel-glow)}
.mv-ovl.super .mv-wt{color:var(--wheel-accent);text-shadow:0 3px 0 #0008,0 0 30px var(--wheel-glow)}
.mv-wheel{--wd:min(calc(var(--vh,1vh)*53),420px,80vw);position:relative;width:var(--wd);height:var(--wd);margin:8px 0 0;isolation:isolate}
.mv-wheel:before{content:"";position:absolute;inset:-9%;border-radius:50%;background:radial-gradient(circle,var(--wheel-glow),transparent 68%);opacity:.8;z-index:-1;transition:opacity .5s,transform .5s}
.mv-wheel:after{content:"";position:absolute;inset:8%;border-radius:50%;box-shadow:0 0 36px var(--wheel-glow),inset 0 0 24px #0007;pointer-events:none;z-index:-1}
.mv-wheel svg{width:100%;height:100%;display:block;overflow:visible;filter:drop-shadow(0 18px 20px #000b)}
.mv-wheel .wn{font:800 18px Inter,system-ui,sans-serif;fill:#f4f4fa;paint-order:stroke;stroke:#050a12;stroke-width:2px;letter-spacing:-.05em}
.mv-wheel .maximum .wn{fill:#ffe5a0}
.mv-w-ring{stroke:var(--wheel-accent);opacity:.65}
.mv-w-rune{fill:var(--wheel-accent);filter:drop-shadow(0 0 2px var(--wheel-accent))}
.mv-w-hubrim{stroke:var(--wheel-accent)}
.mv-wheel-hub image{filter:drop-shadow(0 3px 4px #0009)}
.mv-wseg .mv-wedge{transition:filter .3s,stroke .3s}
.mv-wseg.is-selected .mv-wedge{stroke:var(--wcolor);stroke-width:1.5;filter:brightness(1.5)}
.mv-pointer{position:absolute;left:50%;top:2.5%;width:34px;height:44px;transform:translateX(-50%) rotate(var(--tooth,0deg));transform-origin:50% 24%;z-index:2;background:linear-gradient(135deg,#c6ccd6,#596272 40%,#242d3c 70%,#7d899b);clip-path:polygon(50% 0,94% 18%,94% 49%,50% 100%,6% 49%,6% 18%);filter:drop-shadow(0 3px 3px #000c)}
.mv-pointer:before{content:"";position:absolute;inset:6px 8px 9px;background:linear-gradient(#f3eaff,var(--wheel-accent));clip-path:polygon(50% 0,100% 24%,100% 51%,50% 100%,0 51%,0 24%)}
.mv-pointer:after{content:"";position:absolute;left:50%;top:12px;width:5px;height:5px;transform:translateX(-50%) rotate(45deg);background:#fff;box-shadow:0 0 10px var(--wheel-accent)}
.landed .mv-wheel:before{opacity:1;transform:scale(1.1)}
.landed .mv-wheel-hub{animation:mv-wheel-seal .6s cubic-bezier(.2,.8,.2,1)}
.max-landed .mv-wheel:before{animation:mv-wheel-flare 1s ease-out}
@keyframes mv-wheel-seal{40%{transform:scale(1.13)}100%{transform:scale(1)}}
@keyframes mv-wheel-flare{40%{transform:scale(1.3);opacity:1}100%{transform:scale(1.1);opacity:1}}
.mv-wres{margin:0;min-height:44px;display:flex;align-items:center;gap:10px;font:800 clamp(11px,1.6vw,15px)/1 Inter,system-ui,sans-serif;letter-spacing:.13em;color:#d2dbe8;opacity:0;transform:scale(.7);transition:opacity .3s,transform .4s cubic-bezier(.2,1.6,.4,1)}
.mv-wres.on{opacity:1;transform:none}
.mv-wres b{font:900 38px/1 Inter,system-ui,sans-serif;color:var(--wheel-accent);text-shadow:0 0 22px var(--wheel-glow);letter-spacing:-.04em}
.mv-wbox .mv-go{min-width:210px;height:46px;border:1px solid var(--wheel-accent);border-radius:8px;background:linear-gradient(#655080,#362d4d);color:#f6edff;box-shadow:inset 0 1px 0 #ffffff30,0 5px 20px #0006;transition:transform .2s,filter .2s}
.mv-ovl.super .mv-wbox .mv-go{background:linear-gradient(#a5813a,#63491e);color:#fff5d7}
.mv-wbox .mv-go:hover{transform:translateY(-2px);filter:brightness(1.15)}
@media(max-width:600px){.mv-wheel{--wd:min(78vw,340px)}.mv-wheel-kicker{font-size:8px}.mv-wt{font-size:28px}.mv-wres b{font-size:32px}.mv-pointer{width:27px;height:35px}.mv-pointer:before{inset:5px 6px 7px}.mv-pointer:after{top:10px;width:4px;height:4px}}
@media(prefers-reduced-motion:reduce){.landed .mv-wheel-hub,.max-landed .mv-wheel:before{animation:none}}

/* ---------- info section below the machine ---------- */
.mv-info{margin-top:22px;display:flex;flex-direction:column;gap:18px;padding-bottom:30px}
.mv-info section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:18px 20px}
.mv-info h2{margin:0 0 8px;font-size:24px}
.mv-info h3{margin:0 0 12px;font-size:18px}
.mv-info h3 small{color:var(--muted);font-weight:600;font-size:13px;margin-left:6px}
.mv-info h4{margin:6px 0 6px;font-size:16px}
.mv-info p,.mv-info li{color:#d8e2f6;line-height:1.55;font-size:14.5px}
.mv-info ul{margin:0;padding-left:20px}
.mv-info li{margin:4px 0}
.mvi-hero{display:grid;grid-template-columns:180px 1fr;gap:20px;align-items:start}
.mvi-hero img{width:100%;border-radius:var(--r-sm);display:block}
.mvi-facts{list-style:none;padding:0!important;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px!important}
.mvi-facts li{background:var(--inset);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 12px;margin:0}
.mvi-facts small{display:block;color:var(--muted);font-size:12px;font-weight:700}
.mvi-facts b{font-size:16px}
.mvi-feats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.mvi-feats div{background:var(--inset);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px}
.mvi-feats img{width:56px;height:56px;object-fit:contain}
.mvi-feats p{font-size:14px;margin:0}
.mvi-cols{display:grid;grid-template-columns:1.15fr 1fr;gap:24px}
.mvi-note{color:var(--dim)!important;font-size:13px!important;margin:4px 0 8px}
.mv-info .mv-ptab{overflow-x:auto}

/* ---------- narrow screens: portrait machine, controls still inside ---------- */
.mv-stage.narrow{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:6px}
.mv-stage.narrow .mv-side{display:none}
/* narrow: the left side stays hidden, but the Bonus-buy panel comes back as a full-width row below the machine */
.mv-stage.narrow .mv-right{display:block;height:auto;width:100%;padding:0 10px;margin-top:8px}
.mv-stage.narrow .mv-buypanel{max-width:none;padding:6px 0 0;gap:6px}
.mv-stage.narrow .mv-buypanel .mv-ph{display:none}
.mv-stage.narrow .mv-buys{flex-direction:row;gap:8px}
.mv-stage.narrow .mv-buypanel .mv-buy{height:52px;font-size:8.5px}
.mv-stage.narrow .mv-buypanel .mv-buy.s{height:52px;font-size:8.5px}
.mv-stage.narrow .mv-buypanel .mv-buy small,.mv-stage.narrow .mv-buypanel .mv-buy.s small{font-size:13px}
.mv-stage.narrow .mv-spin{grid-column:1/-1}
.mv-stage.narrow .mv-machine{gap:6px}
.mv-stage.narrow .mv-logo-top{display:flex;flex-direction:row;gap:10px;height:42px;align-items:center}
.mv-stage.narrow .mv-logo-top .l1{font-size:17px}
.mv-stage.narrow .mv-logo-top .l2{font-size:8px;padding:.6em .7em .5em}
.mv-stage.narrow:not([data-mode="base"]) .mv-logo-top .l1,.mv-stage.narrow:not([data-mode="base"]) .mv-logo-top .l2{display:none}
.mv-stage.narrow:not([data-mode="base"]) .mv-logo-top:after{content:attr(data-mode);font-family:'MV Pixel',monospace;font-size:15px;color:#d8c8ff;text-shadow:0 3px 0 #2a1460}
.mv-stage.narrow[data-mode="super"] .mv-logo-top:after{color:#ffe08a;text-shadow:0 3px 0 #6b3a06}
.mv-stage.narrow .mv-hud div{height:44px}
.mv-stage.narrow .mv-hud b{--fs:14px}
.mv-stage.narrow .mv-hud small{font-size:7px}
.mv-stage.narrow .mv-msg{font-size:12.5px;padding:4px 8px;min-height:30px;white-space:normal}
.mv-stage.narrow .mv-deck{margin-top:8px;width:100%;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:10px 10px 12px;min-height:0}
.mv-stage.narrow .mv-plaques{display:contents}
.mv-stage.narrow .mv-plaque,.mv-stage.narrow .mv-stake{min-width:0;height:50px;padding:3px 8px;margin:0}
.mv-stage.narrow .mv-plaque b{--fs:16px}
.mv-stage.narrow .mv-step b{font-size:16px}
.mv-stage.narrow .mv-step b{min-width:0;flex:1}
.mv-stage.narrow .mv-step button{width:26px}
.mv-stage.narrow .mv-buy{min-width:0;height:58px;padding:0 4px;font-size:8.5px}
.mv-stage.narrow .mv-buy small{font-size:13px}
.mv-stage.narrow .mv-spin{width:80px;height:80px;margin:0 auto;justify-self:center}
.mv-stage.narrow .mv-spin span{font-size:12px}
.mv-stage.narrow .mv-tools{grid-column:1/-1;grid-template-columns:repeat(4,1fr);gap:6px}
.mv-stage.narrow .mv-tool{height:36px;flex-direction:row;gap:6px}
@media (max-width:900px){
  .mv-specials,.mvi-feats,.mvi-cols{grid-template-columns:1fr}
  .mvi-hero{grid-template-columns:110px 1fr}
  .mvi-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mv-info section{overflow-x:auto}
}
@media (prefers-reduced-motion: reduce){ .mv-glint,.mv-stage[data-mode="super"] .mv-light,.mv-load img,.mv-tile.trig .mv-head,.mv-tile.trig:before{animation:none} .mv-stage.quake{animation:none} }

/* The side-wall wordmark is larger; the narrow top logo retains its layout. */
.mv-stage:not(.narrow) .mv-logo-side{transform:scale(1.2);transform-origin:center}
