:root{--leaf:#2cba6e;--leaf-d:#166443;--ink:#173b2c;--cream:#fffbea;--gold:#ffd25e;color-scheme:light}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:#173f27;font-family:'Trebuchet MS','Segoe UI',system-ui,sans-serif;color:var(--ink);overscroll-behavior:none}
button{font:inherit;cursor:pointer;border:0;color:inherit;-webkit-tap-highlight-color:transparent}
button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #fff;outline-offset:3px}
img{display:block;max-width:100%;user-select:none;-webkit-user-drag:none}
#app{position:relative;max-width:1100px;height:100dvh;margin:auto;overflow:hidden;background:#2a6b3c}
.screen{display:none;position:absolute;inset:0;flex-direction:column;align-items:center;overflow-y:auto}
.screen.active{display:flex;animation:in .25s ease}
@keyframes in{from{opacity:0;transform:translateY(8px)}}
/* Menu */
#menu{background:linear-gradient(#0e3a2030,#0e3a2000 35%,#0e3a2077),url(img/mines-menu.jpg) center/cover;padding:20px 16px 26px;gap:10px}
.menu-top{text-align:center}
.menu-top h1{margin:0;font-size:clamp(40px,10.5vw,72px);line-height:1;color:#fff;letter-spacing:1px;text-shadow:0 5px 0 var(--leaf-d),0 8px 22px #0007}
.tag{margin:6px 0 0;color:#fff;font-weight:bold;text-shadow:0 2px 6px #000a;font-size:15px}
.mascot{width:min(36%,170px);filter:drop-shadow(0 10px 12px #0005);animation:bob 3s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-8px) rotate(-2deg)}}
.menu-card{width:100%;max-width:460px;background:#fffbeaee;border-radius:24px;padding:14px;box-shadow:0 10px 30px #0005;display:flex;flex-direction:column;gap:11px}
.levels{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.lvl{display:flex;flex-direction:column;align-items:center;gap:2px;padding:11px 6px;border-radius:18px;background:linear-gradient(#8cefad,#2cba6e);color:#113e2d;border:2px solid #eaffd8;box-shadow:0 5px 0 var(--leaf-d)}
.lvl[data-level=intermediate]{background:linear-gradient(#ffe48f,#f2b33d);box-shadow:0 5px 0 #a5701a;color:#4a3205}
.lvl[data-level=expert]{background:linear-gradient(#ffb59e,#e8613f);box-shadow:0 5px 0 #8f3218;color:#45140a}
.lvl.custom{background:linear-gradient(#cfe3ff,#7ea7e8);box-shadow:0 5px 0 #3c5f99;color:#13284a}
.lvl b{font-size:17px}.lvl small{font-size:12px;opacity:.85}
.lvl:active,.daily:active{transform:translateY(3px)}
.custom-box{display:flex;flex-wrap:wrap;align-items:end;justify-content:center;gap:8px;background:#e8f0ff;border-radius:16px;padding:10px}
.custom-box[hidden]{display:none}
.custom-box label{display:flex;flex-direction:column;font-size:12px;font-weight:bold;gap:3px}
.custom-box input{width:64px;font:inherit;font-size:16px;padding:6px;border-radius:10px;border:2px solid #b8c9e8;text-align:center}
.daily{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:18px;background:linear-gradient(#fff6d6,#ffe08a);border:2px solid #fff;box-shadow:0 5px 0 #b8892a;text-align:left;color:#4a3205}
.daily-ico{font-size:26px}.daily b{display:block;font-size:16px}.daily small{font-size:12px;opacity:.85}
.daily.done{background:linear-gradient(#e6ffe0,#a9e89a);box-shadow:0 5px 0 #4f8f43}
.options{display:flex;flex-direction:column;gap:7px}
.opt{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:bold;font-size:14px}
.seg{display:flex;background:#e2eedc;border-radius:14px;padding:3px}
.seg button{padding:6px 12px;border-radius:11px;font-size:13px;font-weight:bold;color:#3d5b47}
.seg button[aria-pressed=true]{background:#fff;color:var(--leaf-d);box-shadow:0 2px 6px #0002}
.howto{width:100%;max-width:460px;background:#0e3a20cc;color:#eef8ea;border-radius:16px;padding:10px 14px;font-size:13px}
.howto summary{font-weight:bold;cursor:pointer}
.howto p{margin:8px 0 0;line-height:1.45}
#stats table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}
#stats th,#stats td{padding:4px 3px;text-align:center;border-bottom:1px solid #ffffff22}
#stats th:first-child,#stats td:first-child{text-align:left}
#stats .reset{margin-top:8px;background:none;color:#ffd0c7;text-decoration:underline;font-size:12px}
/* Game */
#game{background:radial-gradient(circle at 50% 15%,#3b9a5a,#163d25);padding:8px 10px 10px;gap:7px}
.hud{width:100%;max-width:640px;display:flex;align-items:center;justify-content:space-between;gap:6px}
.hud .chip{display:flex;align-items:center;gap:5px;background:#0e3a20cc;color:#fff;border:1px solid #ffffff40;border-radius:16px;padding:5px 11px;font-size:15px;min-width:72px;justify-content:center}
.hud .chip img{width:20px;height:20px}
.hud .chip b{color:var(--gold);font-variant-numeric:tabular-nums}
.face{width:54px;height:54px;border-radius:50%;background:var(--cream);box-shadow:0 4px 0 #0004;padding:4px;flex:none}
.face img{width:100%;height:100%;object-fit:contain}
.face:active{transform:translateY(3px);box-shadow:0 1px 0 #0004}
.face.wow img{animation:pop .3s}
@keyframes pop{50%{transform:scale(1.18)}}
.icon{width:38px;height:38px;flex:none;border-radius:50%;background:var(--cream);color:var(--leaf-d);font-size:17px;font-weight:bold;box-shadow:0 3px 0 #0003}
#btnMenu{font-size:30px;line-height:30px}
#btnSound[aria-pressed=true],#btnMusic[aria-pressed=true]{opacity:.55;text-decoration:line-through}
.level-name{margin:0;color:#eaffd8;font-weight:bold;font-size:13px;letter-spacing:.5px;text-shadow:0 1px 3px #0008}
.board-wrap{position:relative;flex:none;border-radius:14px;overflow:hidden;box-shadow:0 0 0 4px #eaffd8,0 10px 30px #0006;touch-action:none;margin-top:auto;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#game>.tools{margin-bottom:auto}
canvas{display:block;width:100%;height:100%}
.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0b2a17aa;padding:12px}
.overlay.pause{background:#163d25}
.overlay[hidden]{display:none}
.panel{background:var(--cream);border-radius:22px;padding:16px 18px;text-align:center;max-width:330px;width:100%;box-shadow:0 10px 30px #0006;animation:in .25s ease}
.panel img{width:96px;margin:0 auto 4px;animation:bob 2s ease-in-out infinite}
.panel h2{margin:0 0 6px;font-size:26px}
.panel p{margin:0 0 12px;line-height:1.4;font-size:15px}
.panel-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.btn{padding:10px 18px;border-radius:24px;background:linear-gradient(#8cefad,#2cba6e);color:#113e2d;border:2px solid #eaffd8;box-shadow:0 4px 0 var(--leaf-d);font-weight:900}
.btn.small{padding:7px 16px}
.btn.ghost{background:#fff;border-color:#cfe3c8;box-shadow:0 4px 0 #9db99a}
.btn.warm{background:linear-gradient(#ffe48f,#f2b33d);border-color:#fff3c6;box-shadow:0 4px 0 #a5701a;color:#4a3205}
.btn:active{transform:translateY(3px)}
.toast{position:absolute;left:50%;top:10px;transform:translate(-50%,-10px);background:#fffbeaf2;border-radius:14px;padding:6px 14px;font-weight:900;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;white-space:nowrap;box-shadow:0 4px 12px #0004}
.toast.show{opacity:1;transform:translate(-50%,0)}
.tools{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.tool{display:flex;flex-direction:column;align-items:center;min-width:62px;padding:5px 10px;border-radius:16px;background:var(--cream);box-shadow:0 4px 0 #0004;font-size:20px;line-height:1.1}
.tool small{font-size:11px;font-weight:bold;color:var(--leaf-d)}
.tool:active{transform:translateY(3px);box-shadow:0 1px 0 #0004}
.tool[disabled]{opacity:.45;cursor:default}
#btnMode[aria-pressed=true]{background:linear-gradient(#ffd7cf,#ff9c86);box-shadow:0 4px 0 #a4402c}
#btnMode[aria-pressed=true] small{color:#6b1c0e}
.hint{margin:0;color:#d9efd5;font-size:12px;text-align:center}
@media (pointer:coarse){.hint{display:none}}
@media (max-height:640px){.mascot{width:min(26%,120px)}.menu-top h1{font-size:clamp(34px,9vw,56px)}}
@media (prefers-reduced-motion:reduce){.mascot,.panel img{animation:none}.screen.active,.panel{animation:none}}
