/* Number Slide */
.ns-help { margin-top: 14px; }
.ns-wrap { width: 100%; max-width: 560px; margin: 0 auto; align-self: stretch; box-sizing: border-box; }
.ns-hud { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; font: 800 14px system-ui, sans-serif; }
.ns-moves { flex: 1; min-width: 0; }
.ns-time { white-space: nowrap; color: #fde047; }
.ns-tb { display: flex; gap: 6px; flex-shrink: 0; }
.ns-tb button { background: rgba(15,23,42,.7); color: #fff; border: 1px solid rgba(255,255,255,.18); border-radius: 10px; padding: 6px 9px; font: 700 14px system-ui, sans-serif; cursor: pointer; }
.ns-board { position: relative; width: 100%; max-width: min(100%, calc(100vh - 150px)); aspect-ratio: 1; margin: 0 auto; border-radius: 14px; background: #0f172a; border: 3px solid #334155; box-sizing: border-box; overflow: hidden; touch-action: manipulation; }
.ns-tile { position: absolute; width: calc(100% / var(--n)); height: calc(100% / var(--n)); padding: 2px; border: 0; background: transparent; color: #0f172a; font: 800 clamp(16px, calc(26vw / var(--n)), 42px)/1 system-ui, sans-serif; cursor: pointer; transition: left .12s ease, top .12s ease; box-sizing: border-box; background-clip: content-box; }
.ns-tile:not(.is-pic) { background-color: #fde68a; background-image: linear-gradient(160deg, #fef3c7, #fcd34d); border-radius: 10px; box-shadow: inset 0 0 0 2px #0f172a; }
.ns-tile.is-home { background-image: linear-gradient(160deg, #bbf7d0, #4ade80); }
.ns-tile.is-pic { background-repeat: no-repeat; background-clip: border-box; box-shadow: inset 0 0 0 1px rgba(15,23,42,.65); }
.ns-tile:focus-visible { outline: 3px solid #67e8f9; outline-offset: -3px; z-index: 2; }
.ns-peek { position: absolute; inset: 0; z-index: 5; background-size: cover; background-color: #0f172a; display: grid; }
.ns-peekgrid { display: grid; grid-template-columns: repeat(var(--n), 1fr); grid-auto-rows: 1fr; gap: 2px; padding: 3px; }
.ns-peekgrid b { display: grid; place-items: center; border-radius: 8px; background: #4ade80; color: #0f172a; font-size: clamp(14px, calc(22vw / var(--n)), 36px); }
.ns-res { position: absolute; inset: 0; z-index: 6; }
@media (max-width: 560px) { .ns-hud { font-size: 12.5px; gap: 6px; } .ns-tb button { padding: 6px 7px; } .ns-res .sim-result__card { padding: 10px 12px; max-width: 94%; } .ns-res .btn { padding: 7px 12px; font-size: 14px; min-height: 0; } .ns-res .sim-result__btns { gap: 6px; margin-top: 8px; } }
@media (prefers-reduced-motion: reduce) { .ns-tile { transition: none; } }
