:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", "JetBrains Mono", Menlo, Consolas, monospace;--bg:#070c16;--bg-glow-a:#38bdf829;--bg-glow-b:#2dd4bf1f;--grid-line:#94a3b80d;--surface:#0f172abd;--surface-strong:#0a111ff0;--surface-soft:#94a3b817;--border:#94a3b829;--border-strong:#94a3b84d;--text:#e8eefb;--text-muted:#93a4bf;--text-dim:#6b7c99;--accent:#2dd4bf;--accent-soft:#2dd4bf24;--accent-border:#2dd4bf6b;--accent-contrast:#04231f;--danger:#f87171;--danger-soft:#f8717129;--danger-border:#f8717166;--success:#4ade80;--success-soft:#4ade8024;--success-border:#4ade8061;--flag:#fb7185;--mine-color:#dce5f3;--shadow-lg:0 26px 60px -24px #020617f2;--shadow-sm:0 8px 20px -14px #020617e6;--board-bg:#0a1120;--board-ring:#94a3b81f;--board-inner-shadow:#00000080;--cell-hidden-a:#3d4f6d;--cell-hidden-b:#24324a;--cell-highlight:#ffffff38;--cell-shadow:#0206178c;--cell-revealed:#101a2c;--cell-revealed-ring:#94a3b817;--cell-revealed-mine:#2c1622;--cell-exploded:#b91c1c;--led-bg:#0b1017;--led-text:#ff5f56;--led-glow:#ff5f5673;--n1:#60a5fa;--n2:#4ade80;--n3:#fb7185;--n4:#c084fc;--n5:#fbbf24;--n6:#2dd4bf;--n7:#f9a8d4;--n8:#cbd5e1}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eaeff7;--bg-glow-a:#38bdf84d;--bg-glow-b:#2dd4bf3d;--grid-line:#0f172a0b;--surface:#ffffffdb;--surface-strong:#fff;--surface-soft:#0f172a0e;--border:#0f172a1a;--border-strong:#0f172a33;--text:#0f1c2e;--text-muted:#55647c;--text-dim:#7d8ba3;--accent:#0d9488;--accent-soft:#0d94881f;--accent-border:#0d948866;--accent-contrast:#fff;--danger:#dc2626;--danger-soft:#dc26261a;--danger-border:#dc262652;--success:#15803d;--success-soft:#15803d1a;--success-border:#15803d4d;--flag:#e11d48;--mine-color:#1f2937;--shadow-lg:0 24px 50px -26px #0f172a66;--shadow-sm:0 10px 22px -16px #0f172a66;--board-bg:#c6d1e0;--board-ring:#0f172a14;--board-inner-shadow:#0f172a38;--cell-hidden-a:#fff;--cell-hidden-b:#cbd5e3;--cell-highlight:#fffffff2;--cell-shadow:#0f172a38;--cell-revealed:#e5ebf4;--cell-revealed-ring:#0f172a12;--cell-revealed-mine:#f6dde1;--cell-exploded:#dc2626;--n1:#1d4ed8;--n2:#15803d;--n3:#dc2626;--n4:#6d28d9;--n5:#b45309;--n6:#0f766e;--n7:#0f172a;--n8:#475569}*,:before,:after{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.45;transition:background-color .35s,color .35s}button{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ambient{z-index:-1;pointer-events:none;background-image:radial-gradient(58rem 40rem at 10% -12%, var(--bg-glow-a), transparent 62%), radial-gradient(52rem 36rem at 92% 4%, var(--bg-glow-b), transparent 64%), linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:auto,auto,100% 36px,36px 100%;position:fixed;inset:0}.app{flex-direction:column;align-items:center;gap:clamp(14px,2vw,22px);min-height:100dvh;padding:clamp(18px,3vw,34px) clamp(12px,3vw,28px) 26px;display:flex}.app-header,.custom-form{width:100%;max-width:1080px}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 18px;display:flex}.app-main{flex-direction:column;align-items:center;gap:12px;width:100%;min-width:0;max-width:1080px;display:flex}.app-footer{color:var(--text-dim);text-align:center;margin-top:auto;padding-top:10px;font-size:.76rem}.brand{align-items:center;gap:14px;min-width:0;display:flex}.brand-mark{border:1px solid var(--border);background:linear-gradient(150deg, var(--accent-soft), transparent 72%), var(--surface);width:46px;height:46px;color:var(--accent);box-shadow:var(--shadow-sm);border-radius:14px;flex:none;place-items:center;display:grid}.brand-icon{width:26px;height:26px}.brand-title{letter-spacing:-.025em;margin:0;font-size:clamp(1.2rem,2.3vw,1.55rem);font-weight:750}.brand-tagline{color:var(--text-muted);margin:1px 0 0;font-size:.8rem}.icon-button{border:1px solid var(--border);background:var(--surface);width:42px;height:42px;color:var(--text-muted);cursor:pointer;border-radius:13px;flex:none;place-items:center;padding:0;transition:color .2s,border-color .2s,transform .15s;display:grid}.icon-button:hover{color:var(--accent);border-color:var(--accent-border);transform:translateY(-1px)}.icon-button-glyph{width:20px;height:20px}.button{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:13px;justify-content:center;align-items:center;gap:8px;padding:10px 15px;font-size:.85rem;font-weight:600;transition:border-color .2s,background .2s,color .2s,transform .15s;display:inline-flex}.button:hover{border-color:var(--border-strong);transform:translateY(-1px)}.button:active{transform:translateY(0)}.button:disabled{opacity:.45;cursor:not-allowed;transform:none}.button-icon{width:16px;height:16px}.button-primary{background:var(--accent);color:var(--accent-contrast);border-color:#0000}.button-ghost{color:var(--text-muted);background:0 0}.button-ghost:hover{color:var(--text)}.button-outline{background:var(--surface);color:var(--text-muted)}.button-outline.is-open,.button-outline:hover{color:var(--text)}.button-toggle.is-on{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}.header-controls{flex:560px;justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.difficulty-picker{border:1px solid var(--border);background:var(--surface);min-width:0;max-width:640px;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:17px;flex:auto;gap:8px;padding:6px;display:flex}.difficulty-tab{min-width:0;color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;flex:1 1 0;align-items:flex-start;gap:1px;padding:9px 14px;transition:background .18s,color .18s,border-color .18s;display:flex}.difficulty-tab:hover{background:var(--surface-soft);color:var(--text)}.difficulty-tab.is-active{background:linear-gradient(160deg, var(--accent-soft), transparent 78%), var(--surface-strong);border-color:var(--accent-border);color:var(--text)}.difficulty-name{letter-spacing:-.01em;font-size:.9rem;font-weight:650}.difficulty-meta{color:var(--text-muted);white-space:nowrap;font-size:.73rem}.difficulty-best{color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.68rem}.difficulty-tab.is-active .difficulty-best{color:var(--accent)}.custom-trigger{flex:none}.custom-form{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;padding:16px 18px;animation:.22s ease-out slide-down;display:flex}.custom-fields{flex-wrap:wrap;gap:14px;display:flex}.field{flex-direction:column;gap:5px;min-width:96px;display:flex}.field-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);font-size:.7rem}.field-input{border:1px solid var(--border);background:var(--surface-strong);width:100%;color:var(--text);font-variant-numeric:tabular-nums;border-radius:10px;padding:9px 11px;font-family:inherit;font-size:.95rem}.field.has-error .field-input{border-color:var(--danger)}.field-error{min-height:15px;color:var(--danger);font-size:.7rem}.custom-actions{flex-direction:column;flex:260px;align-items:flex-end;gap:10px;display:flex}.custom-hint{color:var(--text-muted);text-align:right;margin:0;font-size:.78rem}.custom-buttons{gap:10px;display:flex}.game-panel{border:1px solid var(--border);background:var(--surface);width:fit-content;max-width:100%;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:24px;flex-direction:column;gap:12px;padding:clamp(12px,2vw,18px);animation:.3s ease-out rise-in;display:flex}.hud{border:1px solid var(--border);background:var(--surface-strong);border-radius:16px;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:10px 14px;display:grid}.counter{flex-direction:column;align-items:flex-start;gap:3px;min-width:0;display:flex}.counter-time{align-items:flex-end}.counter-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);font-size:.66rem}.led{background:var(--led-bg);min-width:4.7ch;color:var(--led-text);font-family:var(--font-mono);letter-spacing:.08em;text-align:center;font-variant-numeric:tabular-nums;text-shadow:0 0 10px var(--led-glow);box-shadow:inset 0 2px 9px #000000bf, 0 0 20px -8px var(--led-glow);border:1px solid #ffffff12;border-radius:9px;padding:4px 10px;font-size:1.45rem;font-weight:700;line-height:1.15}.face-button{border:1px solid var(--border);background:var(--surface-soft);cursor:pointer;border-radius:50%;place-items:center;width:54px;height:54px;padding:0;transition:transform .15s,border-color .2s,box-shadow .2s;display:grid}.face-button:hover{border-color:var(--border-strong);transform:translateY(-1px)scale(1.04)}.face-button:active{transform:scale(.95)}.face-svg{filter:drop-shadow(0 3px 6px #00000059);width:42px;height:42px;display:block}.meta-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:0 4px;display:flex}.status-pill{background:var(--surface-soft);color:var(--text-muted);border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;margin:0;padding:6px 13px;font-size:.79rem;font-weight:550;transition:background .25s,color .25s,border-color .25s;display:inline-flex}.status-dot{background:var(--text-dim);border-radius:50%;flex:none;width:7px;height:7px}.status-ready .status-dot{background:var(--accent)}.status-playing{color:var(--text)}.status-playing .status-dot{background:var(--accent);animation:1.7s ease-in-out infinite pulse}.status-won{background:var(--success-soft);border-color:var(--success-border);color:var(--success)}.status-won .status-dot{background:var(--success)}.status-lost{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger)}.status-lost .status-dot{background:var(--danger)}.meta-stats{color:var(--text-dim);font-variant-numeric:tabular-nums;align-items:center;gap:10px;margin:0;font-size:.75rem;display:flex}.meta-divider{background:var(--border-strong);width:1px;height:12px}.board-wrap{overscroll-behavior:contain;scrollbar-width:thin;border-radius:18px;min-width:0;max-width:100%;padding:4px;overflow:auto}.board{grid-template-columns:repeat(var(--cols), var(--cell));gap:var(--gap);width:max-content;padding:var(--board-pad);border:1px solid var(--board-ring);background:radial-gradient(120% 130% at 50% 0%, #ffffff0d, transparent 62%), var(--board-bg);box-shadow:inset 0 3px 16px var(--board-inner-shadow);touch-action:pan-x pan-y;border-radius:15px;margin-inline:auto;display:grid}.board-won{animation:1.3s ease-out win-glow}.board-lost{animation:.42s cubic-bezier(.36,.07,.19,.97) shake}.cell{width:var(--cell);height:var(--cell);border-radius:calc(var(--cell) * .17);background:linear-gradient(155deg, var(--cell-hidden-a), var(--cell-hidden-b));box-shadow:inset 1px 1px 0 var(--cell-highlight), inset -1px -1px 0 var(--cell-shadow), 0 1px 2px #00000038;color:var(--text);font-size:calc(var(--cell) * .54);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border:none;place-items:center;margin:0;padding:0;font-weight:750;line-height:1;transition:filter .14s,transform 80ms,background .18s,box-shadow .18s;display:grid;position:relative}.cell:hover:not(.revealed){filter:brightness(1.16)}.cell:active:not(.revealed){filter:brightness(1.04);transform:scale(.93)}.cell:focus-visible{outline:2px solid var(--accent);outline-offset:1px;z-index:1}.cell.revealed{background:var(--cell-revealed);box-shadow:inset 0 0 0 1px var(--cell-revealed-ring);cursor:default}.cell.mine.revealed{background:var(--cell-revealed-mine)}.cell.exploded{background:var(--cell-exploded)}.cell.exploded .mine-content{color:#fff}.cell-icon{width:64%;height:64%}.cell-cross{width:86%;height:86%;color:var(--danger);opacity:.92;position:absolute}.cell-content{place-items:center;animation:.17s ease-out pop;display:grid}.flag-content{color:var(--flag);filter:drop-shadow(0 1px 2px #0006)}.mine-content{color:var(--mine-color)}.number-content{font-variant-numeric:tabular-nums}.cell.n1{color:var(--n1)}.cell.n2{color:var(--n2)}.cell.n3{color:var(--n3)}.cell.n4{color:var(--n4)}.cell.n5{color:var(--n5)}.cell.n6{color:var(--n6)}.cell.n7{color:var(--n7)}.cell.n8{color:var(--n8)}.panel-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:0 2px;display:flex}.footer-hint{color:var(--text-dim);text-align:center;flex:190px;margin:0;font-size:.74rem}.hint-touch{display:none}@media (hover:none){.hint-pointer{display:none}.hint-touch{display:inline}}.keyboard-hints{color:var(--text-dim);flex-wrap:wrap;justify-content:center;gap:8px 20px;margin:0;font-size:.75rem;display:flex}kbd{border:1px solid var(--border);background:var(--surface-soft);color:var(--text-muted);font-family:var(--font-mono);border-radius:6px;padding:2px 6px;font-size:.7rem}@keyframes pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 0 0 var(--accent-soft)}50%{opacity:.55;box-shadow:0 0 0 4px var(--accent-soft)}}@keyframes shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-7px)}40%,60%{transform:translate(7px)}}@keyframes win-glow{0%{box-shadow:inset 0 3px 16px var(--board-inner-shadow), 0 0 0 0 var(--success-soft)}40%{box-shadow:inset 0 3px 16px var(--board-inner-shadow), 0 0 0 6px var(--success-soft)}to{box-shadow:inset 0 3px 16px var(--board-inner-shadow), 0 0 0 0 var(--success-soft)}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes slide-down{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media (width<=900px){.header-controls{flex:100%;justify-content:stretch}.difficulty-picker{max-width:none}}@media (width<=760px){.difficulty-tab{padding:8px 10px}.difficulty-best{display:none}.custom-trigger{flex:none}.custom-form,.custom-actions{align-items:stretch}.custom-hint{text-align:left}.custom-buttons{justify-content:flex-end}.meta-row{justify-content:center}.footer-hint{flex-basis:100%;order:3}}@media (width<=420px){.brand-tagline{display:none}.difficulty-meta{font-size:.68rem}}@media (height<=800px),(width<=760px){.app{gap:12px;padding-top:16px;padding-bottom:16px}.keyboard-hints,.app-footer{display:none}.game-panel{gap:10px;padding:12px}.hud{padding:8px 12px}.led{font-size:1.25rem}.face-button{width:48px;height:48px}.face-svg{width:38px;height:38px}.panel-footer .button{padding:8px 12px}}@media (width<=560px){.header-controls{flex-wrap:wrap}.difficulty-picker{flex:100%;order:1}.difficulty-tab{align-items:center;padding:8px 6px}.difficulty-name{font-size:.84rem}.difficulty-meta{display:none}.custom-trigger{flex:auto;order:2}.icon-button{order:3}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
