.mine-game{--cell-size:2.25rem;--cell-gap:2px;background:var(--color-surface-raised);min-width:0;color:var(--color-text);position:relative;overflow:clip}.mine-game[data-difficulty=beginner]{--cell-size:clamp(2rem, calc((100dvw - 1.75rem) / 9), 2.5rem)}.game-intro{border-bottom:1px solid var(--color-border);background:var(--color-surface-muted);color:var(--color-text-muted);text-align:center;margin:0;padding:.42rem .7rem;font-size:clamp(.72rem,3.15vw,.8rem);font-weight:800;line-height:1.35}.game-toolbar{background:var(--color-brand-deep);color:var(--color-on-brand);justify-content:space-between;align-items:center;gap:.55rem;padding:.55rem .65rem;display:flex}.game-toolbar__stats,.game-toolbar__actions{align-items:center;gap:.4rem;min-width:0;display:flex}.mine-counter,.game-timer,.difficulty-chip,.game-help-trigger,.game-menu-trigger{color:var(--color-on-brand);font:inherit;background:#f4eee31a;border:1px solid #f4eee347;font-weight:850}.mine-counter{border-radius:.58rem;justify-content:center;align-items:center;gap:.22rem;min-width:3.4rem;min-height:2.35rem;padding:.3rem .48rem;display:inline-flex}.mine-counter strong,.game-timer strong{font-variant-numeric:tabular-nums}.game-timer{cursor:pointer;border-radius:.58rem;grid-template-columns:auto auto;align-items:center;gap:.3rem;min-width:4.55rem;min-height:2.35rem;padding:.3rem .45rem;display:inline-grid}.game-timer strong{font-size:.96rem}.game-timer__toggle{background:#f4eee32e;border-radius:50%;place-items:center;width:1.05rem;height:1.05rem;font-size:.58rem;line-height:1;display:grid}.difficulty-chip{cursor:pointer;border-radius:.58rem;align-items:center;min-height:2.35rem;padding:.3rem .6rem;font-size:.86rem;display:none}.difficulty-chip:hover{border-color:var(--color-accent);background:#f4eee32e}.game-help-trigger,.game-menu-trigger{cursor:pointer;border-radius:.58rem;flex:none;place-items:center;width:2.35rem;min-height:2.35rem;padding:0;display:grid}.game-help-trigger{font-family:Georgia,serif;font-size:1rem}.game-menu-trigger{letter-spacing:.06em;font-size:.82rem}.game-timer:hover:not(:disabled),.game-help-trigger:hover,.game-menu-trigger:hover{border-color:var(--color-accent);background:#f4eee32e}.game-timer:disabled{cursor:default;opacity:.42}.board-stage{gap:.5rem;width:fit-content;max-width:100%;margin:.65rem auto .85rem;display:grid;position:relative}.board-viewport{width:fit-content;min-width:0;max-width:100%;display:grid;position:relative}.board-viewport:before,.board-viewport:after{content:"";z-index:2;opacity:0;pointer-events:none;width:1.6rem;transition:opacity .16s;position:absolute;top:2px;bottom:2px}.board-viewport:before{background:linear-gradient(90deg,#292e2b52,#292e2b00);left:2px}.board-viewport:after{background:linear-gradient(270deg,#292e2b52,#292e2b00);right:2px}.board-viewport[data-overflow-start=true]:before,.board-viewport[data-overflow-end=true]:after{opacity:1}.board-frame{border:2px solid var(--color-brand-deep);overscroll-behavior-x:contain;overscroll-behavior-y:auto;touch-action:pan-x pan-y pinch-zoom;background:#7b756a;border-radius:.62rem;width:fit-content;max-width:100%;max-height:none;position:relative;overflow:auto hidden;box-shadow:0 .45rem 1.2rem #292e2b2e}.board-ready-prompt{z-index:1;width:max-content;max-width:calc(100% - 1.25rem);color:var(--color-on-brand);text-align:center;pointer-events:none;background:#292e2be0;border:1px solid #f4eee357;border-radius:999px;margin:0;padding:.45rem .68rem;font-size:.74rem;font-weight:850;line-height:1.35;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 .35rem 1.2rem #292e2b61}.difficulty-switch{display:none}.touch-mode{grid-template-columns:1fr 1fr;gap:.45rem;display:grid}.touch-mode button,.game-menu-actions button,.difficulty-options button{border:1px solid var(--color-border);background:var(--color-surface-raised);min-height:2.75rem;color:var(--color-text);font:inherit;cursor:pointer;border-radius:.62rem;font-weight:850}.touch-mode .mode-open[aria-pressed=true]{border-color:var(--color-brand-deep);background:var(--color-brand-deep);color:var(--color-on-brand);box-shadow:0 0 0 3px #292e2b1f}.touch-mode button:disabled{cursor:default;opacity:.42}.touch-mode .mode-flag[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent);color:#fffaf1;box-shadow:0 0 0 3px #be5b4424}.pause-overlay{z-index:4;color:var(--color-on-brand);text-align:center;backdrop-filter:blur(3px);background:#292e2bd4;border-radius:.62rem;place-items:center;padding:1rem;display:grid;position:absolute;inset:0}.pause-overlay>div{justify-items:center;gap:.65rem;display:grid}.pause-overlay>div>span{border:1px solid #f4eee394;border-radius:999px;place-items:center;width:2.5rem;height:2.5rem;font-size:1rem;display:grid}.pause-overlay h3{margin:0;font-size:1.3rem}.pause-overlay button,.mine-confirm-dialog button{background:var(--color-surface-raised);min-height:2.6rem;color:var(--color-brand-deep);font:inherit;cursor:pointer;border:0;border-radius:.58rem;padding:.45rem 1rem;font-weight:850}.result-overlay{z-index:5;backdrop-filter:blur(2px);background:#292e2b94;place-items:center;padding:.9rem;display:grid;position:absolute;inset:0}.result-card{background:var(--color-surface-raised);border-radius:.9rem;gap:.55rem;width:min(21rem,100%);padding:.75rem;animation:.42s cubic-bezier(.2,.9,.25,1.15) result-enter;display:grid;box-shadow:0 1.2rem 2.4rem #292e2b57}.result-view-board{border:1px solid var(--color-border);min-height:2.5rem;color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border-radius:.62rem;font-size:.84rem;font-weight:850}.result-view-board:hover{border-color:var(--color-brand);color:var(--color-brand-deep)}.result-bar{z-index:5;backdrop-filter:blur(6px);background:#fffdf8f7;border-top:3px solid #c75e48;border-radius:.7rem;padding:.42rem;position:absolute;bottom:0;left:.45rem;right:.45rem;box-shadow:0 -.4rem 1.1rem #292e2b33}@media (pointer:fine){.board-stage:has(.result-bar){padding-bottom:3.5rem}}.result-banner{border:1px solid;border-radius:.72rem;align-items:center;gap:.7rem;margin:0;padding:.72rem .78rem;display:flex;position:relative;overflow:hidden}.result-banner>div{z-index:1;gap:.12rem;display:grid;position:relative}.result-banner strong{letter-spacing:.06em;font-size:1.02rem}.result-banner span:not(.result-icon,.result-confetti){font-size:.78rem;line-height:1.45}.result-banner .best-update-badge{z-index:1;color:#603c13;white-space:nowrap;background:#f2dfb2;border-radius:999px;margin-left:auto;padding:.28rem .55rem;font-size:.72rem;font-weight:900;position:relative}.best-update-badge>span{margin-right:.22rem}.result-banner.is-won{color:var(--color-brand-deep);background:#e8eee3;border-color:#9eb09a;box-shadow:0 0 0 4px #667a6317}.result-banner.is-lost{color:#7b3327;background:#f7e3dd;border-color:#d69c8c}.result-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:0;display:grid}.result-bar .result-actions button{white-space:nowrap;min-height:2.5rem;font-size:.78rem}.result-actions button{border:1px solid var(--color-border);background:var(--color-surface-raised);min-height:2.75rem;color:var(--color-text);font:inherit;cursor:pointer;border-radius:.62rem;padding:.4rem .5rem;font-size:.82rem;font-weight:850}.result-actions .result-actions__retry{border-color:var(--color-brand-deep);background:var(--color-brand-deep);color:var(--color-on-brand)}.result-actions .result-actions__share{border-color:var(--color-accent);background:var(--color-accent);color:#fffaf1;grid-column:1/-1}.result-actions button:hover{border-color:var(--color-brand)}.result-share-status{color:var(--color-brand);text-align:center;margin:0;font-size:.85rem;font-weight:800}.result-icon{z-index:1;background:#fffdf8c2;border-radius:999px;flex:none;place-items:center;width:2.3rem;height:2.3rem;font-size:1.25rem;display:grid;position:relative}.result-confetti{pointer-events:none;position:absolute;inset:0}.result-confetti i{background:var(--color-accent);border-radius:.12rem;width:.42rem;height:.75rem;animation:.9s ease-out both confetti-fall;position:absolute;top:-.7rem}.result-confetti i:nth-child(2n){background:var(--color-brand);transform:rotate(28deg)}.result-confetti i:nth-child(3n){background:#d9ad54;transform:rotate(-20deg)}.result-confetti i:first-child{animation-delay:30ms;left:10%}.result-confetti i:nth-child(2){animation-delay:.12s;left:21%}.result-confetti i:nth-child(3){animation-delay:65ms;left:32%}.result-confetti i:nth-child(4){animation-delay:.17s;left:43%}.result-confetti i:nth-child(5){animation-delay:90ms;left:54%}.result-confetti i:nth-child(6){animation-delay:.21s;left:65%}.result-confetti i:nth-child(7){animation-delay:45ms;left:76%}.result-confetti i:nth-child(8){animation-delay:.145s;left:87%}.mine-board__row{display:contents}.mine-board{grid-template-columns:repeat(var(--board-columns), var(--cell-size));gap:var(--cell-gap);background:#7b756a;width:max-content;padding:2px;display:grid}.mine-cell{width:var(--cell-size);height:var(--cell-size);border-radius:calc(var(--cell-size) * .16);color:#292e2b;font-size:clamp(.95rem, calc(var(--cell-size) * .48), 1.5rem);cursor:pointer;user-select:none;-webkit-touch-callout:none;background:linear-gradient(145deg,#f8f3ea,#e2dbce);border:0;place-items:center;font-weight:900;line-height:1;display:grid;box-shadow:inset 2px 2px #fffdf8,inset -2px -2px #85847e}.mine-cell.is-open{border-radius:calc(var(--cell-size) * .06);cursor:default;background:#d8d2c7;box-shadow:inset 0 0 0 1px #c6bdae,inset 0 2px 3px -1px #292e2b2b}@media (hover:hover){.mine-cell:not(.is-open):hover{background:linear-gradient(145deg,#fffefa,#eae3d6)}}.mine-cell:not(.is-open):active{background:#ded8cb;box-shadow:inset 0 0 0 1px #c6bdae,inset 0 2px 3px -1px #292e2b26}.mine-emoji{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-style:normal;line-height:1;display:inline-block}.flag-glyph{font-variant-emoji:text;font-family:inherit;font-style:normal;line-height:1;display:inline-block}.mine-cell .mine-emoji,.mine-cell .flag-glyph{font-size:calc(var(--cell-size) * .58)}.mine-counter .mine-emoji{font-size:1.05rem}.difficulty-options .mine-emoji{font-size:.9rem}.mine-cell.is-flagged{color:var(--color-accent)}.mine-cell.is-wrong-flag{color:#8e3620;background:linear-gradient(145deg,#fdeeea,#eed4cc);position:relative}.mine-cell.is-wrong-flag:after{content:"";background:linear-gradient(to top right,#0000 calc(50% - 1.3px),#8e3620 calc(50% - 1.3px) calc(50% + 1.3px),#0000 calc(50% + 1.3px));position:absolute;inset:16%}.mine-cell.is-exploded{color:#fffaf1;background:#c75e48}.mine-cell.is-chord-hint{animation:.34s ease-out chord-hint}.mine-board[data-status=lost]{animation:.42s ease-out board-shake}.mine-board[data-status=won] .mine-cell.is-open{animation:.52s ease-out cleared-cell}.mine-cell[data-adjacent="1"]{color:#1a4c86}.mine-cell[data-adjacent="2"]{color:#3c6234}.mine-cell[data-adjacent="3"]{color:#9d3a2c}.mine-cell[data-adjacent="4"]{color:#573c78}.mine-cell[data-adjacent="5"],.mine-cell[data-adjacent="6"],.mine-cell[data-adjacent="7"],.mine-cell[data-adjacent="8"]{color:#663429}.mine-help-dialog,.mine-confirm-dialog,.mine-menu-dialog,.mine-difficulty-dialog{border:1px solid var(--color-border);background:var(--color-surface-raised);width:min(28rem,100vw - 2rem);max-height:min(36rem,100dvh - 2rem);color:var(--color-text);border-radius:.9rem;margin:auto;padding:1.05rem;overflow:auto;box-shadow:0 24px 70px #292e2b59}.mine-help-dialog::backdrop,.mine-confirm-dialog::backdrop,.mine-menu-dialog::backdrop,.mine-difficulty-dialog::backdrop{backdrop-filter:blur(2px);background:#292e2b94}.dialog-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.dialog-heading h3,.mine-confirm-dialog h3{color:var(--color-brand-deep);margin:0;font-size:1.15rem}.dialog-heading button{background:var(--color-surface-muted);width:2rem;height:2rem;color:var(--color-text);cursor:pointer;border:0;border-radius:999px;flex:none;place-items:center;font-size:1.25rem;display:grid}.mine-help-content{gap:1rem;margin-top:1rem;display:grid}.mine-help-content section{border-left:3px solid var(--color-brand);padding-left:.75rem}.mine-help-content h4,.game-menu-section h4,.local-record h4{color:var(--color-brand-deep);margin:0;font-size:.9rem}.mine-help-content ul{gap:.45rem;margin:.45rem 0 0;padding-left:1.35rem;font-size:.88rem;line-height:1.55;display:grid}.mine-confirm-dialog p{margin:.85rem 0 1rem;line-height:1.6}.mine-confirm-dialog>div{justify-content:flex-end;gap:.55rem;display:flex}.mine-confirm-dialog>div button:first-child{border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text)}.mine-confirm-dialog>div button:last-child{background:var(--color-brand-deep);color:var(--color-on-brand)}.game-menu-actions{gap:.5rem;margin-top:1rem;display:grid}.game-menu-actions button{width:100%;padding:.45rem .75rem}.game-menu-actions button:hover:not(:disabled),.difficulty-options button:hover:not([aria-pressed=true]){border-color:var(--color-brand);color:var(--color-brand-deep)}.game-menu-actions .share-button:not(:disabled){border-color:var(--color-accent);background:var(--color-accent);color:#fffaf1}.game-menu-actions button:disabled{cursor:not-allowed;opacity:.45}.share-status{color:var(--color-brand);margin:.65rem 0 0;font-size:.85rem;font-weight:800}.game-menu-section{border-top:1px solid var(--color-border);margin-top:1rem;padding-top:1rem}.difficulty-options{gap:.5rem;margin-top:1rem;display:grid}.difficulty-options button{text-align:left;justify-content:space-between;align-items:center;gap:.75rem;min-height:2.75rem;padding:.5rem .7rem;display:flex}.difficulty-options span{color:var(--color-text-muted);align-items:center;gap:.25rem;font-size:.76rem;display:inline-flex}.difficulty-options button[aria-pressed=true]{border-color:var(--color-brand-deep);background:var(--color-brand-deep);color:var(--color-on-brand);box-shadow:0 0 0 3px #292e2b1f}.difficulty-options button[aria-pressed=true] span{color:#d8d8d1}.local-record{border-top:1px solid var(--color-border);gap:.7rem;margin-top:1rem;padding-top:1rem;display:grid}.local-record table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.local-record thead th{color:var(--color-text-muted);letter-spacing:.05em;text-align:right;padding:0 .5rem .35rem;font-size:.72rem;font-weight:800}.local-record thead th:first-child{text-align:left}.local-record tbody th{border-top:1px solid var(--color-border);color:var(--color-text-muted);text-align:left;white-space:nowrap;padding:.4rem .5rem;font-size:.82rem;font-weight:800}.local-record tbody td{border-top:1px solid var(--color-border);color:var(--color-text);text-align:right;padding:.4rem .5rem;font-size:1.05rem;font-weight:850}.local-record tbody tr[data-current=true] th{color:var(--color-brand-deep)}.local-record tbody tr[data-current=true] th:before{content:"";background:var(--color-accent);vertical-align:.12em;border-radius:50%;width:.34rem;height:.34rem;margin-right:.4rem;display:inline-block}.local-record td.is-best-updated{background:#f2dfb2;border-radius:.5rem;animation:.85s ease-in-out infinite alternate best-record-glow;box-shadow:0 0 0 2px #be5b4433}.local-record p{grid-column:1/-1}.local-record>div{gap:.15rem;display:grid}.local-record span{color:var(--color-text-muted);letter-spacing:.05em;font-size:.72rem;font-weight:800}.local-record>.is-best-updated{background:#f2dfb2;border-radius:.6rem;padding:.35rem .5rem;animation:.85s ease-in-out infinite alternate best-record-glow;box-shadow:0 0 0 2px #be5b4433}.local-record strong{color:var(--color-text);font-size:1.18rem}.local-record p{color:var(--color-text-muted);margin:0;font-size:.75rem;line-height:1.6}@keyframes result-enter{0%{opacity:0;transform:translateY(.55rem)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes board-shake{0%,to{transform:translate(0)}25%{transform:translate(-.35rem)}50%{transform:translate(.3rem)}75%{transform:translate(-.15rem)}}@keyframes cleared-cell{0%{filter:brightness()}45%{filter:brightness(1.16)}to{filter:brightness()}}@keyframes confetti-fall{0%{opacity:0;translate:0 -.5rem;rotate:0deg}20%{opacity:1}to{opacity:0;translate:0 5rem;rotate:190deg}}@keyframes chord-hint{0%{box-shadow:inset 2px 2px #fffdf8,inset -2px -2px #85847e,inset 0 0 0 2px #be5b44d9}to{box-shadow:inset 2px 2px #fffdf8,inset -2px -2px #85847e,inset 0 0 0 2px #be5b4400}}@keyframes best-record-glow{0%{box-shadow:0 0 0 2px #be5b4433,0 0 5px #be5b441a}to{box-shadow:0 0 0 3px #be5b4475,0 0 17px #be5b4461}}@media (prefers-reduced-motion:reduce){.result-card,.result-confetti i,.mine-board[data-status=lost],.mine-board[data-status=won] .mine-cell.is-open,.mine-cell.is-chord-hint,.local-record td.is-best-updated{animation:none}.board-viewport:before,.board-viewport:after{transition:none}}@media (pointer:fine){.touch-mode{display:none}.board-stage .difficulty-switch{border:1px solid var(--color-border);background:var(--color-surface-raised);border-radius:.7rem;justify-self:start;gap:.3rem;padding:.25rem;display:flex}.difficulty-switch button{min-height:2.3rem;color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:.5rem;padding:.3rem .85rem;font-size:.86rem;font-weight:850}.difficulty-switch button:hover:not([aria-pressed=true]){color:var(--color-brand-deep)}.difficulty-switch button[aria-pressed=true]{background:var(--color-brand-deep);color:var(--color-on-brand)}.mine-game[data-difficulty=beginner]{--cell-size:clamp(2.5rem, 4.6vw, 3.25rem)}.mine-game[data-difficulty=intermediate]{--cell-size:clamp(2.25rem, 3.5vw, 2.75rem)}.mine-game[data-difficulty=expert]{--cell-size:2.25rem}}@media (pointer:coarse){.board-stage .touch-mode{justify-self:center;width:calc(100% - .9rem)}.difficulty-chip{display:inline-flex}}@media (width<=360px){.game-toolbar{padding-inline:.5rem}.mine-counter{min-width:3.15rem}.game-timer{min-width:4.35rem}}@media (width>=760px){.game-toolbar{padding:.7rem .85rem}.result-banner{padding:.85rem .9rem}.board-stage{margin-block:.9rem 1rem}}
