.app{display:grid;align-content:center;justify-content:center;width:100%;height:100%;grid-template-rows:1fr min-content 1fr}.app .page-title{font-size:clamp(0px, 1.75rem, 10vw);display:grid;align-content:center;justify-content:center;white-space:nowrap}.app .page-footer{font-size:clamp(0px, 0.8rem, 5vw);display:grid;align-content:flex-end;justify-content:center}.app .page-footer a{display:flex;flex-flow:row nowrap;padding:1rem;align-items:center;color:#999}.app .page-footer a svg{width:clamp(0px, 1.5rem, 10vw);margin-right:.5rem;fill:#999}@keyframes solving-animation{0%,100%{outline:0px solid rgba(77,166,255,0);outline-offset:0px}20%{outline:1vw solid rgba(77,166,255,.5)}50%{outline:1vw solid rgba(77,166,255,.25);outline-offset:.5vw}}@keyframes reducing-animation{0%,100%{opacity:1}20%{opacity:.6}}.sudoku-input-wrapper{display:flex;flex-flow:column;align-items:center;justify-content:center}@media(min-aspect-ratio: 16/15){.sudoku-input-wrapper{flex-flow:row nowrap}}.sudoku-input-wrapper .sudoku-grid-wrapper{display:flex;flex-flow:column;align-items:center;justify-content:center}.sudoku-input-wrapper .sudoku-grid-wrapper.sudoku-working{animation:solving-animation 750ms ease-in-out infinite}.sudoku-input-wrapper .sudoku-grid-wrapper.sudoku-reducing .sudoku-cell-result{animation:reducing-animation 750ms ease-in-out infinite}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid{display:grid;align-items:stretch;justify-items:stretch;width:min(90vw, 70vh);height:min(90vw, 70vh);border:2px solid #000;outline:.2rem solid #fff}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9{grid-template-columns:repeat(9, 1fr);grid-template-rows:repeat(9, 1fr);font-size:min(7.2vw, 6vh)}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-x-2,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-x-5{border-right:2px solid #000}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-2-x,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-5-x{border-bottom:2px solid #000}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-result{top:min(0.5vw, 0.5vh);left:min(0.5vw, 0.5vh);right:min(0.5vw, 0.5vh);bottom:min(0.5vw, 0.5vh)}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-result div{transition:color 100ms linear}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-result.sudoku-results-9,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-result.sudoku-results-0,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-result.sudoku-results-8,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-result.sudoku-results-7{font-size:min(2.16vw, 1.8vh)}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-result.sudoku-results-6,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-result.sudoku-results-5{font-size:min(2.88vw, 2.4vh)}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-result.sudoku-results-4,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-result.sudoku-results-3,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-result.sudoku-results-2{font-size:min(2.88vw, 2.4vh)}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-result.sudoku-results-2{font-size:min(4.32vw, 3.6vh)}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-9 .sudoku-cell-result.sudoku-results-1{font-size:min(5.76vw, 4.8vh)}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16{grid-template-columns:repeat(16, 1fr);grid-template-rows:repeat(16, 1fr);font-size:min(4.05vw, 3.375vh)}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-x-3,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-x-7,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-x-11{border-right:2px solid #000}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-3-x,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-7-x,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-11-x{border-bottom:2px solid #000}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result{top:min(0.1vw, 0.1vh);left:min(0.1vw, 0.1vh);right:min(0.1vw, 0.1vh);bottom:min(0.1vw, 0.1vh)}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-16,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-15,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-14,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-13,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-12,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-11,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-10{font-size:min(1.0vw, 0.9vh)}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-16 div,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-15 div,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-14 div,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-13 div,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-12 div,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-11 div,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-10 div{width:25%;height:25%}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-9,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-0,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-8,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-7{font-size:min(1.3vw, 1.08vh)}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-6,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-5,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-4,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-3,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-2{font-size:min(2.16vw, 1.8vh)}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-2{font-size:min(3.24vw, 2.7vh)}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid.sudoku-grid-16 .sudoku-cell-result.sudoku-results-1{font-size:min(4.32vw, 3.6vh)}@media(min-aspect-ratio: 16/15){.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid{width:min(90vw, 75vh);height:min(90vw, 75vh)}}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid .sudoku-cell{box-sizing:border-box;border:1px solid #000;position:relative;background:#fff;transition:background-color 200ms ease-in;contain:layout size}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid .sudoku-cell .sudoku-cell-result{position:absolute;pointer-events:none;display:flex;flex-flow:row wrap;align-items:center;justify-content:center;align-content:space-around;overflow:hidden;user-select:none;contain:strict}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid .sudoku-cell .sudoku-cell-result div{display:flex;align-items:center;justify-content:center;width:33%;height:33%;contain:strict}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid .sudoku-cell .sudoku-cell-result div.sudoku-result-sure{color:#999}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid .sudoku-cell .sudoku-cell-result div.sudoku-result-unsure{color:#ccc}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid .sudoku-cell .sudoku-cell-result.sudoku-results-4 div,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid .sudoku-cell .sudoku-cell-result.sudoku-results-3 div,.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid .sudoku-cell .sudoku-cell-result.sudoku-results-2 div{width:50%;height:50%}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid .sudoku-cell .sudoku-cell-result.sudoku-results-1 div{width:100%;height:100%}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid .sudoku-cell.sudoku-cell-set .sudoku-cell-result{display:none}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid .sudoku-cell .sudoku-cell-input{outline:none;position:absolute;top:1px;left:1px;right:1px;bottom:1px;border:1px solid #fff;border-radius:.2rem;display:grid;align-content:center;justify-content:center;user-select:none;border:0px solid #4da6ff;caret-color:transparent;transition:background-color 200ms ease-in;contain:strict}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid .sudoku-cell .sudoku-cell-input:hover{cursor:pointer;border:1px solid #4da6ff}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid .sudoku-cell.sudoku-cell-constraint{background-color:#edf6ff}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid .sudoku-cell.sudoku-cell-selected{background-color:#dbedff}.sudoku-input-wrapper .sudoku-grid-wrapper .sudoku-grid .sudoku-cell.sudoku-cell-selected .sudoku-cell-input{border:3px solid #4da6ff}.sudoku-input-wrapper .sudoku-grid-wrapper .status-row{width:min(90vw, 70vh)}@media(min-aspect-ratio: 16/15){.sudoku-input-wrapper .sudoku-grid-wrapper .status-row{width:min(90vw, 75vh)}}.sudoku-input-wrapper .sudoku-input{display:grid;margin-top:min(1vw, 1vh)}.sudoku-input-wrapper .sudoku-input.sudoku-input-9{grid-template-columns:repeat(10, 1fr)}.sudoku-input-wrapper .sudoku-input.sudoku-input-16{grid-template-columns:repeat(9, 1fr)}.sudoku-input-wrapper .sudoku-input.sudoku-input-16 .number-button{width:min(6vw, 5vh);height:min(3vw, 2.5vh)}.sudoku-input-wrapper .sudoku-input .number-button{display:block;box-sizing:border-box;margin:min(1vw, 1vh);width:min(6vw, 5vh);height:min(6vw, 5vh);appearance:none;outline:none;border:none;box-shadow:none;background:none;font-size:1.5rem;text-transform:uppercase;border-radius:1rem;border:1px solid transparent;transition:border 100ms ease-in}.sudoku-input-wrapper .sudoku-input .number-button:hover{cursor:pointer;border:1px solid #4da6ff}@media(max-aspect-ratio: 5/9){.sudoku-input-wrapper .sudoku-input{margin-top:4vh}.sudoku-input-wrapper .sudoku-input.sudoku-input-9{grid-template-columns:repeat(5, 1fr)}.sudoku-input-wrapper .sudoku-input.sudoku-input-9 .number-button{width:15vw;height:10vw}.sudoku-input-wrapper .sudoku-input.sudoku-input-16{grid-template-columns:repeat(6, 1fr)}.sudoku-input-wrapper .sudoku-input.sudoku-input-16 .number-button{width:15vw;height:15vw}}@media(min-aspect-ratio: 16/15){.sudoku-input-wrapper .sudoku-input.sudoku-input-9{grid-template-columns:repeat(1, 1fr)}.sudoku-input-wrapper .sudoku-input.sudoku-input-16{grid-template-columns:repeat(2, 1fr)}.sudoku-input-wrapper .sudoku-input.sudoku-input-16 .number-button{width:min(6vw, 5vh);height:min(6vw, 5vh)}}.sudoku-solver{display:flex;flex-flow:column;align-items:center;justify-content:center;width:100%;height:100%}.sudoku-solver .status-row{display:flex;flex-flow:row nowrap;margin-bottom:.75rem;padding-right:.5rem;padding-left:.5rem;user-select:none;align-items:center}.sudoku-solver .status-row .info-text{display:flex;align-items:center;justify-content:flex-start;color:#999;font-size:1rem;flex:100% 1 1;padding:.25rem;padding-right:.5rem;padding-left:.5rem;overflow:hidden;white-space:nowrap}.sudoku-solver .status-row .buttons{display:flex;flex:0% 1 1;flex-flow:row nowrap;align-items:center;justify-content:flex-end}.sudoku-solver .status-row .buttons button{padding:.25rem;padding-right:.5rem;padding-left:.5rem;box-sizing:border-box;appearance:none;box-shadow:none;outline:none;border:none;background:none;font-size:1.1rem;text-transform:uppercase;border-radius:1rem;border:1px solid transparent;transition:border 100ms ease-in;display:flex;align-items:center;justify-content:center;color:#000;fill:#000}.sudoku-solver .status-row .buttons button:hover{cursor:pointer;border:1px solid #4da6ff}.sudoku-solver .status-row .buttons button:disabled{border:1px solid transparent;color:#999;fill:#999}:root{background:#eee}:root,body{width:100%;height:100%;margin:0;padding:0}*{font-family:"Inter",sans-serif}
