/* MINES rebuild: .mn-* classes only, so legacy .mines-/.mtile rules in games.css never apply */
/* donut-bomb count: numeric field with − / + steppers (reuses .betrow look), plus a plain donut readout */
.mn-ctrl .mn-count{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.mn-ctrl .mn-step{flex:1;min-width:150px;padding:4px}
.mn-ctrl .mn-step input{flex:1;min-width:0;width:100%;background:none;border:0;outline:none;text-align:center;
  font-weight:800;font-size:19px;color:var(--text);height:100%;padding:0 6px}
.mn-ctrl .mn-step input::-webkit-outer-spin-button,.mn-ctrl .mn-step input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.mn-ctrl .mn-step button{width:40px;height:100%;margin:0;padding:0;flex:none;font-size:20px;font-weight:700;line-height:1;
  color:var(--text);display:grid;place-items:center}
.mn-ctrl .mn-step .mn-inc{margin-left:4px}
.mn-ctrl .mn-step.locked{opacity:.6}
.mn-ctrl .mn-dn{font-size:14px;font-weight:600;color:var(--muted);white-space:nowrap}
.mn-ctrl .mn-dn b{color:var(--text);font-weight:800}
.mn-ctrl .mn-rand{margin-top:16px;height:44px;font-size:15px}
.mn-ctrl .mn-rand .ic{width:17px;height:17px}
.mn-ctrl .stats b{font-variant-numeric:tabular-nums}
.mn-ctrl .mn-stats{grid-template-columns:1fr}
.mn-select{position:relative}
.mn-select select[hidden],.mn-options[hidden]{display:none!important}
.mn-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;height:48px;padding:0 14px;border:1px solid #304766;border-radius:9px;background:#101d31;color:var(--text);font:700 15px Inter,Arial,sans-serif;cursor:pointer;transition:border-color .18s,box-shadow .18s}
.mn-select-trigger:hover:not(:disabled){border-color:#59789d}
.mn-select-trigger:focus-visible,.mn-select-trigger[aria-expanded="true"]{outline:none;border-color:#927af0;box-shadow:0 0 0 2px #927af024}
.mn-select-trigger:disabled{opacity:.55;cursor:default}
.mn-select-trigger .ic{width:18px;height:18px;color:var(--muted);transition:transform .18s}
.mn-select-trigger[aria-expanded="true"] .ic{transform:rotate(180deg)}
.mn-options{position:absolute;z-index:50;left:0;right:0;top:calc(100% + 6px);max-height:250px;padding:5px;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#66748a #192435;border:1px solid #3a4960;border-radius:9px;background:#192435;box-shadow:0 12px 28px #0008;touch-action:pan-y}
.mn-options [role="option"]{height:40px;display:flex;align-items:center;padding:0 12px;border-radius:6px;color:#d9e2ef;font-size:15px;font-weight:600;cursor:pointer}
.mn-options.upward{top:auto;bottom:calc(100% + 6px)}
.mn-options [role="option"]:hover,.mn-options [role="option"].active{background:#2b374b;color:#fff}
.mn-options [aria-selected="true"]{color:#c3b3ff;background:#927af016}
.mn-game{overflow:visible}
.mn-game .mn-ctrl{border-radius:var(--r) 0 0 var(--r)}
.mn-game .mn-stage{border-radius:0 var(--r) var(--r) 0}
@media(max-width:900px){.mn-game .mn-ctrl{border-radius:0 0 var(--r) var(--r)}.mn-game .mn-stage{border-radius:var(--r) var(--r) 0 0}}
@media(prefers-reduced-motion:reduce){.mn-options{scroll-behavior:auto}.mn-select-trigger,.mn-select-trigger .ic{transition:none}}
.mn-stats[hidden],#mn-rand[hidden]{display:none!important}
.mn-live-counts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.mn-live-counts[hidden],.mn-select[hidden],#mn-select-label[hidden]{display:none!important}
.mn-live-counts small{display:block;color:var(--muted);font-size:14px;font-weight:600;margin-bottom:8px}
.mn-live-counts b{display:flex;align-items:center;height:50px;border:1px solid #29415e80;border-radius:var(--r-sm);padding:0 14px;background:#0c1b2d80;color:#7f91aa;font-size:17px;font-variant-numeric:tabular-nums;font-weight:700;cursor:default}
.tnum{font-variant-numeric:tabular-nums}

.mn-stage{--bs:min(calc(100% - 48px), calc(var(--stage-h) - 168px));--mn-ease-out:cubic-bezier(.16,.8,.22,1);--mn-ease-pop:cubic-bezier(.2,.85,.25,1);--mn-ease-back:cubic-bezier(.2,1.45,.4,1);
  display:flex;flex-direction:column;align-items:center;padding:16px 20px 0;
  background:radial-gradient(ellipse 70% 60% at 50% 46%,#1a3566 0,#10224a 45%,#0a1530 100%)}
.mn-stage:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background:radial-gradient(circle at 12% 18%,#4285ff14 0 60px,transparent 61px),radial-gradient(circle at 88% 82%,#65c7ff12 0 80px,transparent 81px)}

/* HUD: current multiplier / current return / next reveal */
.mn-hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:var(--bs-px, 440px);max-width:100%;margin-bottom:12px}
.mn-hc{background:#0a1631d0;border:1px solid #ffffff17;border-radius:12px;padding:6px 12px 7px;text-align:center;min-width:0;transition:border-color .2s,background .2s}
.mn-hc small{display:block;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mn-hc b{display:block;font-size:20px;font-weight:800;line-height:1.2;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform-origin:50% 65%}
.mn-hc.ret.on{border-color:#2fe08f66;background:#0b2a24d0}
.mn-hc.ret.on b{color:var(--win)}
.mn-hc.nx b{color:var(--cyan)}

/* board: fixed square, tiles never change size or position */
.mn-boardwrap{position:relative;width:var(--bs-px, 440px);max-width:100%;aspect-ratio:1;flex:none}
.mn-board{position:absolute;inset:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:3%;
  padding:3.2%;border-radius:18px;background:#081128d9;border:1px solid #ffffff12;box-shadow:inset 0 2px 10px #0008,0 18px 40px -24px #000;transition:box-shadow .3s}
.mn-stage.live .mn-board{box-shadow:inset 0 2px 10px #0008,0 0 0 1px #4285ff55,0 0 44px -16px #4285ff}
.mn-tile{position:relative;border:0;padding:0;margin:0;background:none;cursor:pointer;border-radius:14%;-webkit-tap-highlight-color:transparent;outline:none}
.mn-tile:disabled{cursor:default}
.mn-tile:focus-visible{box-shadow:0 0 0 3px var(--accent)}

/* the recess under the cover */
.mn-well{position:absolute;inset:0;border-radius:14%;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(circle at 50% 42%,#13284d,#0a1630 72%);box-shadow:inset 0 3px 8px #000a,inset 0 0 0 1px #ffffff0a}
.mn-obj{width:70%;height:70%;object-fit:contain;opacity:0;transform:scale(.55);pointer-events:none;user-select:none;filter:drop-shadow(0 4px 4px #0007)}

/* the cover: a raised slab with a donut-ring emboss */
.mn-cover{position:absolute;inset:0;border-radius:14%;pointer-events:none;
  background:radial-gradient(circle at 50% 50%,transparent 0 13%,#ffffff1c 14% 15.5%,#0000 17% 25%,#0e214524 26% 31%,transparent 32%),
    linear-gradient(180deg,#3567b4 0%,#29559d 48%,#21488a 100%);
  box-shadow:inset 0 2px 0 #ffffff33,inset 0 -2px 0 #0003,0 5px 0 #14306a,0 8px 14px -4px #000c;
  transform:translateY(-3px);transition:transform .12s ease-out,box-shadow .12s ease-out,filter .15s,opacity .15s}
.mn-cover:after{content:"";position:absolute;left:31%;top:31%;width:38%;height:38%;border-radius:50%;
  border:3px solid #9fc4ff55;box-shadow:inset 0 2px 0 #0002,0 1px 0 #ffffff1a}
/* idle (no round): covers rest calmly; live: brighter */
.mn-tile:disabled:not(.open) .mn-cover{filter:saturate(.75) brightness(.82)}
.mn-stage.live .mn-tile:not(:disabled) .mn-cover{filter:none}
/* hover = lifts, pressed = pushed into the board */
@media (hover:hover){
  .mn-tile:not(:disabled):hover .mn-cover{transform:translateY(-6px);filter:brightness(1.25) saturate(1.1);
    box-shadow:inset 0 2px 0 #ffffff55,inset 0 0 0 2px #9fd2ff88,0 8px 0 #14306a,0 14px 20px -6px #000d}
}
.mn-tile:not(:disabled):active .mn-cover{transform:translateY(1px);filter:brightness(.95);transition-duration:.05s;
  box-shadow:inset 0 2px 0 #ffffff22,inset 0 -2px 0 #0003,0 1px 0 #14306a,0 2px 4px #0009}

/* reveal: the cover lifts off and fades; the object rises out of the recess */
.mn-tile.open .mn-cover{animation:mn-lift .26s var(--mn-ease-out) forwards}
.mn-tile.open .mn-obj{animation:mn-rise .38s var(--mn-ease-pop) .025s forwards}
@keyframes mn-lift{0%{opacity:1;transform:translateY(-3px) scale(1)}28%{opacity:1;transform:translateY(-9px) scale(1.035)}100%{opacity:0;transform:translateY(-19px) scale(1.08)}}
@keyframes mn-rise{0%{opacity:0;transform:translateY(9px) scale(.45) rotate(-12deg)}40%{opacity:1;transform:translateY(-3px) scale(1.17) rotate(5deg)}66%{transform:translateY(1px) scale(.95) rotate(-2deg)}84%{transform:translateY(-1px) scale(1.035)}100%{opacity:1;transform:none}}

/* found donut: lit recess with a soft cyan rim */
.mn-tile.safe.pick .mn-well{background:radial-gradient(circle at 50% 45%,#22508f,#112a55 75%);box-shadow:inset 0 3px 8px #0009,inset 0 0 0 2px #65c7ff66,0 0 18px -6px #65c7ff}
.mn-tile.mn-picked{--mn-rim-time:.42s;--mn-shine-time:.34s;--mn-glint-time:.4s;--mn-glint-offset:40ms;--mn-flare:#a5eaff}
/* Contact -> slab fragments -> one shockwave -> ember. All transforms stay inside the tile. */
.mn-tile.bomb.hit{z-index:2}
.mn-tile.bomb.hit .mn-well{background:radial-gradient(circle at 50% 45%,#8c1d33,#3b0a16 78%);box-shadow:inset 0 3px 8px #0009,inset 0 0 0 3px var(--lose),0 0 26px -2px #ff5470cc}
.mn-tile.bomb.hit .mn-well{animation:mn-crater-punch .38s var(--mn-ease-out)}
.mn-tile.bomb.hit .mn-cover{animation:mn-blast-cover .19s var(--mn-ease-out) forwards}
.mn-tile.bomb.hit .mn-obj{animation:mn-bomb-strike .43s var(--mn-ease-pop) forwards}
.mn-tile.bomb.hit .mn-fx{position:absolute;inset:-4%;z-index:3;border-radius:50%;pointer-events:none;border:3px solid #ffe6a0;
  box-shadow:0 0 0 5px #ffb35a44,inset 0 0 16px #ffb35a55,0 0 22px #ff547099;opacity:0;animation:mn-ring .46s var(--mn-ease-out)}
.mn-tile.bomb.hit .mn-well:after{content:"";position:absolute;inset:-10%;background:radial-gradient(circle,#fff5d6 8%,#ffcc80dd 28%,#ff547000 70%);opacity:0;animation:mn-flash .3s var(--mn-ease-out)}
.mn-stage.mn-impact:after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;
  background:radial-gradient(ellipse at var(--mn-impact-x,50%) var(--mn-impact-y,50%),#ffd27a88 0, #ff824039 20%,#ff54701a 44%,transparent 72%);
  box-shadow:inset 0 0 90px -24px #ff5470aa,inset 0 0 24px #ffb35a44;animation:mn-loss-bloom .64s var(--mn-ease-out) both}
.mn-stage.mn-impact .mn-boardwrap{animation:mn-board-shake .36s linear}
.mn-stage.mn-impact .mn-hud{animation:mn-hud-jolt .28s var(--mn-ease-out)}
@keyframes mn-blast-cover{0%{opacity:1;transform:translateY(-3px) scale(1)}24%{opacity:1;transform:translateY(1px) scale(.93)}100%{opacity:0;transform:translateY(-16px) scale(1.42) rotate(9deg)}}
@keyframes mn-bomb-strike{0%{opacity:0;transform:scale(.45) rotate(-18deg)}25%{opacity:1;transform:scale(1.32) rotate(10deg)}43%{transform:translateX(-4px) scale(.91) rotate(-9deg)}61%{transform:translateX(3px) scale(1.08) rotate(5deg)}80%{transform:scale(.98) rotate(-2deg)}100%{opacity:1;transform:none}}
@keyframes mn-crater-punch{0%,100%{transform:none}24%{transform:scale(1.12)}50%{transform:scale(.96)}74%{transform:scale(1.025)}}
@keyframes mn-ring{0%{opacity:1;transform:scale(.35)}32%{opacity:.8}100%{opacity:0;transform:scale(2.05)}}
@keyframes mn-flash{0%{opacity:1;transform:scale(.6)}25%{opacity:.9;transform:scale(1.25)}100%{opacity:0;transform:scale(1.5)}}
@keyframes mn-loss-bloom{0%{opacity:0}9%{opacity:.9}34%{opacity:.45}100%{opacity:0}}
@keyframes mn-board-shake{0%,100%{transform:none}12%{transform:translate(-7px,4px) rotate(-.65deg)}27%{transform:translate(6px,-3px) rotate(.45deg)}43%{transform:translate(-4px,2px) rotate(-.3deg)}60%{transform:translate(3px,-1px) rotate(.15deg)}78%{transform:translate(-1px,1px)}}
@keyframes mn-hud-jolt{0%,100%{transform:none}25%{transform:translateY(2px)}58%{transform:translateY(-1px)}}
/* quiet reveal after the round: flat recess, faded smaller object, no lift */
.mn-tile.ghost .mn-cover{animation:mn-fade .26s ease-out forwards}
.mn-tile.ghost .mn-obj{animation:mn-ghost .3s ease-out forwards}
.mn-tile.ghost .mn-well{background:#0b1730;box-shadow:inset 0 2px 6px #0008}
@keyframes mn-fade{to{opacity:0;transform:translateY(-3px)}}
@keyframes mn-ghost{0%{opacity:0;transform:scale(.6)}100%{opacity:.36;transform:scale(.78)}}
.mn-tile.ghost .mn-obj{filter:grayscale(.35) drop-shadow(0 3px 3px #0006)}
/* Each ghost keeps revealRest's exact start time. Bombs briefly crest above their quiet final state. */
.mn-tile.ghost.bomb .mn-obj{animation:mn-bomb-echo .36s var(--mn-ease-back) forwards}
.mn-tile.ghost.bomb .mn-fx{position:absolute;inset:8%;pointer-events:none;opacity:0;border:1px solid #65c7ff55;border-radius:20%;animation:mn-echo-ring .34s var(--mn-ease-out)}
.mn-stage.hit .mn-tile.ghost.bomb .mn-fx{border-color:#ffb35a88;box-shadow:0 0 12px -3px #ff547088}
.mn-stage.hit .mn-tile.ghost.bomb .mn-well:after{content:"";position:absolute;width:14%;height:14%;left:43%;top:43%;pointer-events:none;opacity:0;background:#ffb35a55;
  box-shadow:-16px -8px 0 #64708966,12px -12px 0 #ffb35a66,17px 8px 0 #64708988,-8px 16px 0 #ff547066;animation:mn-echo-puff .38s var(--mn-ease-out)}
@keyframes mn-bomb-echo{0%{opacity:0;transform:translateY(5px) scale(.4)}42%{opacity:.7;transform:translateY(-2px) scale(.92) rotate(5deg)}70%{opacity:.5;transform:scale(.75) rotate(-2deg)}100%{opacity:.36;transform:scale(.78)}}
@keyframes mn-echo-ring{0%{opacity:.7;transform:scale(.5)}100%{opacity:0;transform:scale(1.2)}}
@keyframes mn-echo-puff{0%{opacity:0;transform:scale(.45) rotate(-12deg)}20%{opacity:.65}100%{opacity:0;transform:scale(1.7) rotate(12deg)}}
/* Navigation/reset can settle every layer immediately without changing revealed contents. */
.mn-tile.instant .mn-cover{animation:none!important;opacity:0}
.mn-tile.instant .mn-obj{animation:none!important;opacity:1;transform:none}
.mn-tile.ghost.instant .mn-obj{opacity:.36;transform:scale(.78)}
.mn-tile.instant .mn-well{animation:none!important}
.mn-tile.bomb.instant .mn-fx,.mn-tile.instant .mn-well:after{animation:none!important;opacity:0!important}
/* new round: covers settle back in without remnants */
.mn-tile.fresh:not(.open) .mn-cover{animation:mn-in .3s var(--mn-ease-out)}
@keyframes mn-in{0%{opacity:0;transform:translateY(-12px) scale(1.05)}100%{opacity:1;transform:translateY(-3px)}}

.mn-foot{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;margin-top:12px;font-size:13.5px;font-weight:600;color:var(--muted);min-height:20px}
.mn-foot b{color:var(--text)}
.mn-stage .outcome{bottom:14px}
.mn-stage.cashed .mn-foot,.mn-stage.hit .mn-foot{visibility:hidden}

/* Cash-out: treasure bloom -> coin strike -> staggered tile glints -> quiet result.
   Everything is decorative, below the existing outcome pill, and never captures input. */
.mn-particles{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none}
.mn-stage.mn-celebrate:after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;
  border:1px solid #ffdf8633;box-shadow:inset 0 0 70px -20px #ffc94a66,inset 0 0 30px -12px #2fe08f99;
  background:radial-gradient(ellipse at 50% 56%,#ffd66b18,transparent 67%);animation:mn-win-bloom 1.5s ease-out both}
.mn-stage.mn-celebrate .mn-boardwrap:before{content:"";position:absolute;inset:-8px;z-index:1;pointer-events:none;border-radius:24px;
  border:1px solid #ffe08a99;box-shadow:0 0 0 4px #ffc94a0d,0 0 46px -8px #ffc94a77,inset 0 0 36px -10px #2fe08f55;
  opacity:0;animation:mn-board-bloom 1.45s ease-out both}
.mn-stage.mn-celebrate .mn-hc.ret{animation:mn-return-rim .85s ease-out .08s both}
.mn-stage.mn-celebrate #mn-hm,.mn-stage.mn-celebrate #mn-hr{transform-origin:50% 65%;animation:mn-return-pop .6s var(--mn-ease-pop) .08s both}
.mn-stage.mn-celebrate .outcome.win{animation:mn-result-glow 1.1s ease-out .18s}

.mn-payoff{position:absolute;inset:0;z-index:5;display:grid;place-items:center;pointer-events:none;text-align:center;user-select:none}
.mn-payoff-inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;width:100%;padding:20px 8px 24px;
  isolation:isolate;animation:mn-prize-arrive 1.9s linear both}
.mn-payoff-inner:before{content:"";position:absolute;inset:-30px -12px;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse closest-side,#07182af5 30%,#08192ae6 65%,#0a193399 84%,transparent 100%)}
.mn-payoff-seal{position:relative;display:block;width:36px;height:36px;margin-bottom:6px;
  background:linear-gradient(135deg,#fff3be,#ffc94a 48%,#b66b15);filter:drop-shadow(0 3px 0 #68430d) drop-shadow(0 0 15px #ffc94a66);
  clip-path:polygon(25% 0,75% 0,100% 25%,100% 75%,75% 100%,25% 100%,0 75%,0 25%)}
.mn-payoff-seal:before{content:"";position:absolute;inset:8px;border:3px solid #965815;border-radius:50%;box-shadow:0 1px 0 #fff1b0,inset 0 1px 0 #fff1b0}
.mn-payoff-seal:after{content:"";position:absolute;left:6px;top:5px;width:12px;height:3px;background:#fff5d1;transform:rotate(-38deg)}
.mn-payoff-title{display:flex;align-items:center;justify-content:center;gap:10px;color:#ffe6a0;font-size:12px;font-weight:900;letter-spacing:.2em;
  text-shadow:0 2px 0 #171a24;line-height:1.3}
.mn-payoff-title:before,.mn-payoff-title:after{content:"";width:27px;height:3px;background:linear-gradient(90deg,transparent,#ffc94a)}
.mn-payoff-title:after{transform:scaleX(-1)}
.mn-payoff-amount{display:block;max-width:100%;font-family:'Space Grotesk',Inter,system-ui,sans-serif;font-weight:900;line-height:1.16;letter-spacing:-.055em;
  white-space:nowrap;color:#fff0b4;text-shadow:0 3px 0 #815115,0 6px 0 #07162c,0 0 32px #ffc94a55;
  transform-origin:50% 70%;animation:mn-amount-strike .68s var(--mn-ease-out) .08s both}
.mn-payoff-caption{display:flex;align-items:center;justify-content:center;gap:10px;color:#c7d8e9;font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.mn-payoff-caption b{padding:3px 7px;border:1px solid #2fe08f55;border-radius:4px;background:#0a302bee;color:var(--win);font-size:12px;letter-spacing:0}

/* Shared pixel glint + rim strike. A picked donut is the small cyan version of the gold cash-out. */
.mn-stage.mn-celebrate .mn-tile.safe.pick{--mn-rim-time:.85s;--mn-shine-time:.65s;--mn-glint-time:.7s;--mn-glint-offset:140ms;--mn-flare:#ffe7a0}
.mn-tile.safe.mn-picked .mn-fx,.mn-stage.mn-celebrate .mn-tile.safe.pick .mn-fx{position:absolute;inset:-1px;z-index:2;overflow:hidden;border-radius:14%;pointer-events:none;
  animation:mn-tile-treasure var(--mn-rim-time) var(--mn-ease-out) var(--mn-glint-delay,0ms) both}
.mn-tile.safe.mn-picked .mn-fx:before,.mn-stage.mn-celebrate .mn-tile.safe.pick .mn-fx:before{content:"";position:absolute;inset:-35% -90%;opacity:0;
  background:linear-gradient(110deg,transparent 37%,#ffedb822 43%,#fff7d6bb 49%,#a8eaff55 53%,transparent 61%);
  animation:mn-tile-shine var(--mn-shine-time) var(--mn-ease-out) var(--mn-glint-delay,0ms) both}
.mn-tile.safe.mn-picked .mn-fx:after,.mn-stage.mn-celebrate .mn-tile.safe.pick .mn-fx:after{content:"";position:absolute;right:9%;top:9%;width:clamp(7px,2vw,13px);height:clamp(7px,2vw,13px);background:var(--mn-flare);
  clip-path:polygon(40% 0,60% 0,60% 40%,100% 40%,100% 60%,60% 60%,60% 100%,40% 100%,40% 60%,0 60%,0 40%,40% 40%);
  opacity:0;animation:mn-tile-glint var(--mn-glint-time) var(--mn-ease-out) calc(var(--mn-glint-delay,0ms) + var(--mn-glint-offset)) both}
.mn-stage:not(.cashed) .mn-payoff{display:none}

@keyframes mn-win-bloom{0%{opacity:0}12%{opacity:.9}38%{opacity:.5}100%{opacity:0}}
@keyframes mn-board-bloom{0%{opacity:0;transform:scale(.98)}14%{opacity:1;transform:scale(1.01)}45%{opacity:.55;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
@keyframes mn-return-rim{0%,100%{box-shadow:none}25%{box-shadow:0 0 0 1px #ffe6a077,0 0 24px -5px #2fe08f88}}
@keyframes mn-return-pop{0%{transform:scale(1)}30%{transform:scale(1.16);text-shadow:0 0 18px #2fe08faa}60%{transform:scale(.97)}100%{transform:scale(1);text-shadow:none}}
@keyframes mn-result-glow{0%,100%{box-shadow:0 12px 30px -12px #000}25%{box-shadow:0 0 0 2px #ffc94a22,0 0 28px -8px #2fe08f88}}
@keyframes mn-prize-arrive{0%{opacity:0;transform:translateY(15px) scale(.87)}9%{opacity:1;transform:translateY(-3px) scale(1.035)}18%,74%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-18px) scale(.97)}}
@keyframes mn-amount-strike{0%{opacity:0;transform:scale(.65)}26%{opacity:1;transform:scale(1.13);text-shadow:0 3px 0 #815115,0 6px 0 #07162c,0 0 44px #ffdf86aa}48%{transform:scale(.96)}72%{transform:scale(1.025)}100%{opacity:1;transform:scale(1)}}
@keyframes mn-tile-treasure{0%,100%{box-shadow:inset 0 0 0 1px #65c7ff00}24%{box-shadow:inset 0 0 0 2px var(--mn-flare),0 0 20px -2px #65c7ffaa}60%{box-shadow:inset 0 0 0 2px var(--cyan),0 0 12px -4px #65c7ff66}}
@keyframes mn-tile-shine{0%{opacity:0;transform:translateX(-35%)}20%{opacity:.9}100%{opacity:0;transform:translateX(35%)}}
@keyframes mn-tile-glint{0%{opacity:0;transform:scale(.3) rotate(-30deg)}30%{opacity:1;transform:scale(1.15) rotate(0)}100%{opacity:0;transform:scale(.5) rotate(30deg)}}

@media (max-width:900px){
  .mn-stage{height:auto;min-height:0;padding:12px 12px 64px}
  .mn-hud{gap:6px;margin-bottom:10px}
  .mn-hc{padding:5px 6px}
  .mn-hc small{font-size:10.5px;letter-spacing:.04em}
  .mn-hc b{font-size:17px}
  .mn-board{gap:2.6%;padding:2.8%;border-radius:14px}
  .mn-cover:after{border-width:2px}
  .mn-foot{font-size:12.5px;margin-top:10px}
}
@media (prefers-reduced-motion: reduce){
  .mn-tile .mn-cover,.mn-tile .mn-obj{animation-duration:.01ms!important;animation-delay:0s!important;transition:none!important}
  .mn-particles,.mn-payoff{display:none!important}
  .mn-stage.mn-impact .mn-boardwrap,.mn-stage.mn-impact .mn-hud,.mn-tile .mn-well{animation:none!important;transform:none!important}
  .mn-tile .mn-fx,.mn-tile .mn-fx:before,.mn-tile .mn-fx:after,.mn-tile .mn-well:after{animation:none!important;opacity:0!important}
  .mn-stage.mn-impact:after{animation:none;opacity:.12}
  .mn-stage.mn-celebrate:after{animation:none;opacity:.22}
  .mn-stage.mn-celebrate .mn-boardwrap:before{animation:none;opacity:.25;transform:none}
  .mn-stage.mn-celebrate .mn-hc.ret,.mn-stage.mn-celebrate #mn-hm,.mn-stage.mn-celebrate #mn-hr,.mn-stage.mn-celebrate .outcome.win,
  .mn-stage.mn-celebrate .mn-tile.safe.pick .mn-fx,.mn-stage.mn-celebrate .mn-fx:before,.mn-stage.mn-celebrate .mn-fx:after{animation:none!important}
}

@media (max-width:900px){ .mn-stage .outcome{max-width:calc(100% - 20px);gap:8px;padding:8px 14px 8px 10px;font-size:16px} .mn-stage .outcome .det{overflow:hidden;text-overflow:ellipsis;min-width:0;font-size:13px} }
.mn-hc.ret.bust{border-color:#ff547066;background:#2a0e1ad0}
.mn-hc b.l{color:var(--lose)}
