body{background:#f5f5f0;overflow:hidden}.pause-button{z-index:10;color:#252825;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:38px;height:38px;transition:background-color .12s;display:grid;position:fixed;top:14px;left:14px}.pause-button:focus-visible{outline-offset:2px;outline:2px solid #1e6e59}@media (hover:hover) and (pointer:fine){.pause-button:hover{background:#e5ede7}.pause-button:active{background:#d2dfd5}}.pause-button svg{stroke-width:2.2px;width:18px;height:18px}.generating-overlay{z-index:20;opacity:0;pointer-events:none;background:#f5f5f0eb;place-items:center;transition:opacity .18s;display:grid;position:fixed;inset:0}.generating-overlay.is-visible{opacity:1;pointer-events:auto}.generating-spinner{border:2px solid #d7dfd8;border-top-color:#1e6e59;border-radius:50%;width:30px;height:30px;animation:.7s linear infinite sudoku-spinner}@keyframes sudoku-spinner{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.generating-spinner{animation:none}.completion{transition:none}}.paused-overlay{z-index:15;opacity:0;pointer-events:none;background:#f5f5f0;place-items:center;transition:opacity .18s;display:grid;position:fixed;inset:0}.paused-overlay.is-visible{opacity:1;pointer-events:auto}.pause-menu{gap:9px;width:180px;max-width:calc(100vw - 32px);display:grid}.pause-menu-button{color:#fff;cursor:pointer;background:#1e6e59;border:1px solid #1e6e59;border-radius:6px;place-items:center;width:100%;min-width:0;min-height:44px;padding:0 18px;font-size:.9rem;font-weight:700;display:grid}.pause-menu-button:hover{background:#165340}.sudoku-layout{--layout-padding:clamp(8px, 3.3svh, 24px);width:min(980px,100% - 48px);height:100svh;padding:var(--layout-padding) 0;grid-template-columns:minmax(0,1fr) 244px;align-items:center;gap:52px;margin:0 auto;display:grid}.sudoku-stage{min-width:0}.sudoku-status{color:#6a6e67;font-variant-numeric:tabular-nums;justify-content:center;align-items:center;min-height:28px;margin-bottom:8px;font-size:.76rem;font-weight:750;display:flex}.sudoku-board{aspect-ratio:1;background:#202229;border:2px solid #202229;grid-template-rows:repeat(9,minmax(0,1fr));grid-template-columns:repeat(9,minmax(0,1fr));gap:1px;width:min(100%,620px,100svh - 88px);display:grid}.sudoku-cell{cursor:pointer;background:#fffef9;border:0;place-items:center;min-width:0;min-height:0;padding:0;display:grid;position:relative}.cell-value{color:#206f5d;pointer-events:none;text-align:center;justify-content:center;align-items:center;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:clamp(1rem,min(4.6vw,5.15svh),2.2rem);font-weight:600;line-height:1;display:flex;position:absolute;inset:0;transform:translateY(-.04em)}.sudoku-cell:nth-child(3n){border-right:2px solid #202229}.sudoku-cell:nth-child(9n){border-right:0}.sudoku-cell:nth-child(n+19):nth-child(-n+27),.sudoku-cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid #202229}.sudoku-cell.is-given{color:#202229}.sudoku-cell.is-given .cell-value{color:#202229;font-weight:650}.sudoku-cell.is-peer{background:#f1f4ee}.sudoku-cell.is-matching{background:#dceee4}.sudoku-cell.is-selected{z-index:1;outline-offset:-3px;background:#fff4df;outline:3px solid #d5593d}.sudoku-cell.is-conflict{background:#f9deda}.sudoku-cell.is-conflict .cell-value{color:#b33e36}.cell-notes{color:#71766e;pointer-events:none;text-align:left;max-width:calc(100% - 8px);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:clamp(.3rem,min(1.25vw,1.45svh),.62rem);font-weight:700;line-height:1;position:absolute;top:clamp(3px,.7svh,5px);left:clamp(3px,.7svh,5px)}.completion{z-index:2;opacity:0;pointer-events:none;background:#f5f5f0db;border-radius:7px;place-items:center;transition:opacity .22s;display:grid;position:absolute;inset:0}.completion.is-visible{opacity:1;pointer-events:auto}.completion button{color:#fff;cursor:pointer;background:#1e6e59;border:1px solid #1e6e59;border-radius:6px;min-height:42px;padding:0 14px;font-size:.83rem;font-weight:800}.completion button:hover{background:#165340}.sudoku-controls{width:100%;padding-left:34px;position:relative}.digit-pad{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.digit-pad button,.tool-button{color:#252825;cursor:pointer;background:#fffef9;border:1px solid #d4d9d1;border-radius:5px;place-items:center;display:grid}.digit-pad button{aspect-ratio:1;-webkit-user-select:none;user-select:none;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:clamp(.9rem,3.3svh,1.28rem);font-weight:600}.digit-pad button.is-highlighted{color:#17604d;background:#dceee4;border-color:#1e6e59}@media (hover:hover) and (pointer:fine){.digit-pad button:hover{background:#edf6f0}.tool-button:hover{background:#edf6f0;border-color:#8db9a9}}.tool-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:18px;display:grid}.tool-button{aspect-ratio:1;padding:0}.tool-button svg{stroke-width:2.2px;width:clamp(16px,2.5svh,19px);height:clamp(16px,2.5svh,19px)}.tool-button.is-active{color:#17604d;background:#dceee4;border-color:#1e6e59}.tool-button:disabled,.digit-pad button:disabled,.completion button:disabled{cursor:not-allowed;opacity:.45}@media (height<=600px) and (width>=761px){.sudoku-layout{--control-height:clamp(34px, 8.5svh, 54px);gap:clamp(24px,5vw,52px)}.digit-pad button,.tool-button{aspect-ratio:auto;height:var(--control-height)}.tool-row{margin-top:clamp(8px,2.5svh,18px)}.completion button{min-height:var(--control-height)}}@media (width<=760px){.sudoku-layout{--mobile-control-height:clamp(32px, 5.7svh, 48px);--mobile-digit-pad-height:clamp(100px, calc(40vw - 28px), 233px);--mobile-board-reserve:calc(var(--mobile-digit-pad-height) + 162px);flex-direction:column;justify-content:center;align-items:stretch;gap:0;width:min(620px,100% - 32px);height:100svh;padding:12px 0;display:flex}.sudoku-controls{margin-top:14px;padding-top:18px;padding-left:0}.sudoku-stage{width:100%}.sudoku-status,.sudoku-board{margin-left:auto;margin-right:auto}.sudoku-board{width:min(100%, calc(100svh - var(--mobile-board-reserve)))}.digit-pad{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-inline:32px}.digit-pad button{aspect-ratio:1;height:auto;font-size:clamp(.85rem,2.5svh,1.1rem)}.tool-row{max-width:420px;margin-top:24px}.tool-button{aspect-ratio:auto;height:var(--mobile-control-height)}}@media (width<=440px){.sudoku-layout{width:calc(100% - 32px);padding:10px 0}.sudoku-board{width:min(100%, calc(100svh - var(--mobile-board-reserve)))}}
