:root{--bg:#3448d6;--on-bg:#fff;--on-bg-muted:#ffffffbd;--tray:#2433a8;--tile:#fff;--tile-side:#b6bdf2;--open:#dde2ff;--ink:#18205a;--accent:#ffd23f;--accent-side:#c99a00;--flag:#ff5a3c;--mine-c:#18205a;--n1:#2f4bd8;--n2:#158a4f;--n3:#e0383e;--n4:#7a3dd8;--n5:#b9510b;--n6:#0b8a87;--n7:#18205a;--n8:#6b7099;--font:"Fredoka", "Trebuchet MS", "Segoe UI", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121946;--on-bg:#eef0ff;--on-bg-muted:#eef0ffa8;--tray:#0a0f31;--tile:#3b48b8;--tile-side:#1d267c;--open:#1a2263;--ink:#eef0ff;--flag:#ff6b4f;--mine-c:#eef0ff;--n1:#8fa6ff;--n2:#5fd897;--n3:#ff7d74;--n4:#c4a0ff;--n5:#ffad5c;--n6:#4fe0dc;--n7:#eef0ff;--n8:#a9aed6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#121946;--on-bg:#eef0ff;--on-bg-muted:#eef0ffa8;--tray:#0a0f31;--tile:#3b48b8;--tile-side:#1d267c;--open:#1a2263;--ink:#eef0ff;--flag:#ff6b4f;--mine-c:#eef0ff;--n1:#8fa6ff;--n2:#5fd897;--n3:#ff7d74;--n4:#c4a0ff;--n5:#ffad5c;--n6:#4fe0dc;--n7:#eef0ff;--n8:#a9aed6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:inherit}html{scroll-padding-top:env(safe-area-inset-top,0px)}body{background:var(--bg);min-height:100vh;color:var(--on-bg);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-weight:500}button{font:inherit;color:inherit}button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}svg{flex:none;width:1em;height:1em}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}kbd{font:inherit;border:1.5px solid;border-bottom-width:3px;border-radius:5px;padding:0 .4em;font-size:.85em}.wrap{max-width:1240px;margin:0 auto;padding:22px 18px 48px}@media (max-width:520px){.wrap{padding-inline:14px}.bar .btn{padding:7px 11px}.bar .grow{flex-basis:100%;height:0}}.top{justify-content:space-between;align-items:center;gap:16px;display:flex}h1{letter-spacing:-.03em;text-shadow:0 .06em #0a0f3c59;margin:0;font-size:clamp(2.6rem,9vw,5rem);font-weight:700;line-height:.9}.icon-btn{border:2px solid var(--on-bg);cursor:pointer;background:0 0;border-radius:50%;place-items:center;width:46px;height:46px;font-size:22px;display:grid}.icon-btn[aria-pressed=false]{opacity:.6}.modes{flex-wrap:wrap;gap:8px;margin:22px 0 18px;display:flex}.modes button{border:2px solid var(--on-bg);cursor:pointer;background:0 0;border-radius:999px;padding:7px 16px;font-size:1rem;font-weight:600}.modes button:hover{background:#ffffff1f}.modes button[aria-pressed=true]{background:var(--on-bg);color:var(--bg)}.bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.grow{flex:1}.pill{background:var(--tray);border-radius:14px;align-items:center;gap:8px;padding:6px 14px 6px 12px;font-size:1.15rem;display:inline-flex}.pill svg{color:var(--accent);font-size:1.1em}.pill b{font-variant-numeric:tabular-nums;min-width:2.4ch;font-size:1.5rem;font-weight:700}.btn{border:2px solid var(--on-bg);cursor:pointer;background:0 0;border-radius:12px;align-items:center;gap:7px;padding:8px 14px;font-size:1rem;font-weight:600;display:inline-flex}.btn:hover{background:#ffffff1f}.btn[aria-pressed=true]{background:var(--flag);border-color:var(--flag);color:#fff}.btn.key{background:var(--accent);color:#18205a;border-color:var(--accent);box-shadow:inset 0 -4px 0 var(--accent-side);padding-bottom:10px}.btn.key:active{box-shadow:inset 0 -1px 0 var(--accent-side);transform:translateY(2px)}.scroll{padding:4px 4px 12px;-webkit-overflow-scrolling:touch;margin:0 -14px;padding-inline:4px;overflow-x:auto}.tray{width:max-content;padding:var(--pad,12px);background:var(--tray);border-radius:20px;margin:0 auto;transition:box-shadow .6s;box-shadow:0 18px 40px -18px #05082899}.board{--cell:36px;grid-template-columns:repeat(var(--cols), var(--cell));gap:var(--gap,3px);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:grid}.cell{width:var(--cell);height:var(--cell);cursor:pointer;touch-action:manipulation;color:var(--ink);font-weight:700;font-size:calc(var(--cell) * .56);background:var(--tile);box-shadow:inset 0 -4px 0 var(--tile-side);border:0;border-radius:24%;place-items:center;padding:0 0 3px;line-height:1;transition:transform 80ms,box-shadow 80ms;display:grid}.cell:not(.open):hover{box-shadow:inset 0 -5px 0 var(--tile-side);transform:translateY(-1px)}.cell:not(.open):active{box-shadow:inset 0 -1px 0 var(--tile-side);transform:translateY(2px)}.cell:focus-visible{outline-offset:-1px;z-index:2;position:relative}.cell.open{background:var(--open);box-shadow:none;cursor:default;padding:0;transform:none}.cell svg{pointer-events:none;width:62%;height:62%}.cell.flag svg{color:var(--flag)}.cell.mine svg,.cell.reveal svg{color:var(--mine-c)}.cell.boom{background:var(--flag);animation:.5s cubic-bezier(.3,1.6,.5,1) boom}.cell.boom svg{color:#fff}.cell.wrong{background:var(--open)}.cell.wrong svg{color:var(--flag);opacity:.55}.cell.wrong:after{content:"";background:var(--flag);border-radius:2px;width:70%;height:3px;position:absolute;transform:rotate(-45deg)}.cell.wrong{position:relative}.cell.hinted{box-shadow:inset 0 0 0 3px var(--accent)}.n1{color:var(--n1)}.n2{color:var(--n2)}.n3{color:var(--n3)}.n4{color:var(--n4)}.n5{color:var(--n5)}.n6{color:var(--n6)}.n7{color:var(--n7)}.n8{color:var(--n8)}.cell.dig{animation:.34s cubic-bezier(.25,1.5,.5,1) both dig;animation-delay:var(--d,0s)}.cell.plant svg{animation:.38s cubic-bezier(.3,1.7,.5,1) both plant;animation-delay:var(--d,0s)}.cell.reveal{animation:.3s cubic-bezier(.3,1.6,.5,1) both dig;animation-delay:var(--d,0s)}.cell.peek{animation:.45s ease-out peek}.cell.start{animation:1.4s ease-out 3 start}.tray.shake{animation:.5s cubic-bezier(.36,.07,.19,.97) shake}.tray.won{box-shadow:0 0 0 6px var(--accent), 0 18px 40px -18px #05082899}.tray.lost .cell:not(.boom):not(.reveal):not(.wrong):not(.flag){opacity:.55;transition:opacity .8s}@keyframes dig{0%{opacity:0;transform:scale(.3)rotate(-10deg)}60%{opacity:1;transform:scale(1.12)}to{transform:none}}@keyframes plant{0%{opacity:0;transform:translateY(-70%)scale(.4)}to{opacity:1;transform:none}}@keyframes boom{0%{transform:scale(1.6)}to{transform:none}}@keyframes peek{0%,to{box-shadow:inset 0 -4px 0 var(--tile-side)}30%{box-shadow:inset 0 0 0 3px var(--accent)}}@keyframes start{0%{box-shadow:0 0 0 0 var(--accent)}to{box-shadow:0 0 0 14px #0000}}@keyframes shake{10%,90%{transform:translate(-2px,1px)}20%,80%{transform:translate(5px,-2px)}30%,50%,70%{transform:translate(-8px,3px)}40%,60%{transform:translate(8px,-3px)}}@media (prefers-reduced-motion:reduce){.cell,.cell svg,.tray{transition:none!important;animation:none!important}}.status{text-align:center;max-width:62ch;min-height:3em;color:var(--on-bg);margin:14px auto 0;font-size:1.15rem;line-height:1.45}.status strong{font-weight:700}.status .best{color:var(--accent);font-weight:700}.foot{color:var(--on-bg-muted);border-top:2px solid #ffffff2e;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.4fr);gap:20px 32px;margin-top:28px;padding-top:20px;font-size:.95rem;line-height:1.5;display:grid}.foot p{margin:0}.foot b{color:var(--on-bg);font-weight:600}#stats{color:var(--on-bg)}@media (max-width:760px){.foot{grid-template-columns:1fr}}.switch{cursor:pointer;align-items:flex-start;gap:12px;display:flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.track{background:#ffffff38;border-radius:999px;flex:none;width:46px;height:28px;margin-top:2px;transition:background .2s;position:relative}.track:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s cubic-bezier(.3,1.5,.5,1);position:absolute;top:3px;left:3px}.switch input:checked+.track{background:var(--accent)}.switch input:checked+.track:after{transform:translate(18px)}.switch input:disabled+.track{opacity:.6}.switch:has(input:disabled){cursor:default}.fx{pointer-events:none;z-index:50;width:100vw;height:100vh;position:fixed;inset:0}.switch input:focus-visible+.track{outline:3px solid var(--accent);outline-offset:3px}
