/* ===================== Mini-games (math is the move) ===================== */
.mini{position:relative;background:#f6f4ff;border:3px solid #e2dcff;border-radius:16px;padding:12px;user-select:none;-webkit-user-select:none}
.mini .lives{font-size:1.1rem;letter-spacing:2px}
.mini .pill{background:#fff}
.mg-banner{margin-top:8px;padding:8px 12px;border-radius:10px;font-weight:800;text-align:center}
.mg-banner.ok{background:#dcfce7}.mg-banner.no{background:#fee2e2}
.shake{animation:shake .4s}
.wob,.wobble{animation:wobble .5s}
@keyframes wobble{0%,100%{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}

/* leaf cutter */
.leafcutter .leaves{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.leafcutter .leaves svg{max-width:100%;height:auto}
.leafcutter .piece{cursor:pointer}
.leafcutter .piece:hover{fill:rgba(245,158,11,.35)}
.leafcutter .piece.gone{opacity:.35}
.leafcutter .munch{animation:munch .35s}
@keyframes munch{0%,100%{transform:scale(1)}50%{transform:scale(1.25) rotate(-8deg)}}

/* balance */
.balance .peb,.balance .box{cursor:pointer}
.balance .peb:hover{fill:#a8a29e}

/* gate runner */
.runner{position:relative;height:330px;border-radius:14px;overflow:hidden;background:linear-gradient(#bae6fd,#e0f2fe 40%,#bbf7d0 40%,#86efac);touch-action:none;cursor:pointer}
.runner .lanes{position:absolute;top:0;left:0;right:0;bottom:0;display:flex}
.runner .lane{flex:1;border-right:3px dashed rgba(255,255,255,.7)}
.runner .lane:last-child{border-right:0}
.runner .sign{position:absolute;left:50%;top:8px;transform:translateX(-50%);background:#1f2340;color:#fff;font-weight:900;padding:6px 14px;border-radius:99px;z-index:3;white-space:nowrap}
.runner .hud{position:absolute;right:8px;bottom:6px;font-weight:800;font-size:.85rem;background:rgba(255,255,255,.8);padding:2px 8px;border-radius:8px}
.runner .bug{position:absolute;bottom:26px;left:25%;transform:translateX(-50%);line-height:0;transition:left .15s;z-index:2;filter:drop-shadow(0 3px 3px rgba(0,0,0,.3))}
.runner .gate{position:absolute;left:0;right:0;top:-30%;display:flex;justify-content:space-around;pointer-events:none}
.runner .gate span{background:#fff;border:3px solid #7c3aed;border-radius:12px;padding:6px 14px;font-weight:900;font-size:1.2rem;min-width:70px;text-align:center;box-shadow:0 3px 8px rgba(0,0,0,.2)}
.runner .gate.pass span{border-color:#16a34a;background:#dcfce7}
.runner .gate.crash span{border-color:#dc2626;background:#fee2e2}
.runner.shake{animation:shake .4s}

/* tank pump */
.tankpump #tp-pump{font-size:1.1rem;line-height:1.2}
.tankpump #tp-pump:active{transform:scale(.95)}

/* sieve */
.sieve .stones{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.sieve .stone{padding:12px 4px;border-radius:14px 14px 12px 12px;background:linear-gradient(#e7e5e4,#a8a29e);border:3px solid #78716c;font-weight:900;font-size:1.2rem;transition:transform .15s;cursor:pointer}
.sieve .stone.prime{background:linear-gradient(#bbf7d0,#4ade80);border-color:#15803d;color:#052e16}
.sieve .stone.cracked{background:#fef3c7;border-style:dashed;color:#a8a29e;text-decoration:line-through;transform:scale(.9);cursor:default}
.sieve .stone.shake{animation:shake .4s;background:#fecaca}

/* order tower */
.ordertower .tokens{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:10px}
.ordertower .tok{padding:10px 12px;border-radius:10px;font-weight:900;font-size:1.3rem;border:3px solid #e2dcff;background:#fff;min-width:44px}
.ordertower .tok.op{background:#fde68a;border-color:#f59e0b;cursor:pointer}
.ordertower .tok.op:hover{transform:translateY(-2px)}
.ordertower .tok.br{background:#ddd6fe;border-color:#7c3aed}
.ordertower .tokens.wobble{animation:wobble .5s}
.ordertower .climb{display:flex;align-items:flex-end;gap:2px;justify-content:center;min-height:60px;margin:6px 0}
.ordertower .steps{display:flex;align-items:flex-end;gap:2px}
.ordertower .step{display:inline-block;width:22px;background:#a3a3a3;border-radius:3px 3px 0 0}
.ordertower .steps .step:nth-child(1){height:10px}.ordertower .steps .step:nth-child(2){height:20px}.ordertower .steps .step:nth-child(3){height:30px}.ordertower .steps .step:nth-child(4){height:40px}.ordertower .steps .step:nth-child(5){height:50px}.ordertower .steps .step:nth-child(6){height:60px}
.ordertower .climber{line-height:0;transform:translateY(-4px)}

/* fence & tile */
.fencetile .cell{cursor:pointer}
.fencetile .cell:hover{fill:rgba(245,158,11,.25)}

/* paint mixer */

/* zipline */
.zipline .zg-tap:hover{fill:rgba(124,58,237,.2)}

/* cube x-ray */
.cubexray .floor,.cubexray .cubetop{cursor:pointer}
.cubexray .floor:hover{fill:#fde68a}
.cubexray .cubetop:hover{fill:#fde68a}
