.page{--sk-paper: #F4F1EA;--sk-panel: #FFFFFF;--sk-grid: #2B2E35;--sk-thin: #D9D4C8;--sk-given: #23262C;--sk-pen: #2F5FB5;--sk-selected: #FFEFC2;--sk-peer: #F6F3EA;--sk-same: #DDE8F8;--sk-error: #C8362A}.game-title,.panel h2,.banner h2{font-family:var(--font-round);font-weight:600}.board-wrap{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);background:var(--sk-paper);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-3)}.check{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}.check input{width:24px;height:24px;margin:0;accent-color:var(--sk-pen)}.sudoku{display:grid;grid-template-columns:repeat(9,1fr);width:100%;max-width:clamp(300px,calc(100vh - 340px),480px);border:3px solid var(--sk-grid);border-radius:var(--radius-sm);background:var(--sk-panel);user-select:none;-webkit-user-select:none}.cell{aspect-ratio:1;border:0;border-right:1px solid var(--sk-thin);border-bottom:1px solid var(--sk-thin);padding:0;background:var(--sk-panel);color:var(--sk-pen);font-family:var(--font-round);font-size:clamp(1.1rem,min(4.6vw,6vh),1.6rem);font-weight:500;line-height:1;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;position:relative;touch-action:manipulation}.cell:nth-child(9n){border-right:0}.cell:nth-child(n+73){border-bottom:0}.cell.br{border-right:3px solid var(--sk-grid)}.cell.bb{border-bottom:3px solid var(--sk-grid)}.cell.given{color:var(--sk-given);font-weight:600}.cell.peer{background:var(--sk-peer)}.cell.same{background:var(--sk-same)}.cell.selected{background:var(--sk-selected);outline:3px solid var(--sk-pen);outline-offset:-3px;z-index:1}.cell.error{background:var(--sk-error);color:var(--sk-panel)}.cell.last:after{content:"";position:absolute;left:15%;right:15%;bottom:3px;height:3px;border-radius:2px;background:var(--color-accent)}.cell:focus-visible{outline:3px solid var(--color-focus);outline-offset:-3px;z-index:1}.digit{display:inline-block}.cell.pop .digit{animation:rh-pop .22s var(--ease)}.cell.blink{animation:rh-blink .6s var(--ease) 2;z-index:2}.cell.shake{animation:sk-shake .3s var(--ease)}@keyframes sk-shake{0%,to{transform:none}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.sudoku--done{border-color:var(--color-good);animation:rh-flash .5s var(--ease) 2}.sudoku--done .cell{color:var(--color-good)}.sudoku--done .cell.given{color:var(--sk-given)}.marks{display:grid;grid-template-columns:repeat(3,1fr);width:100%;height:100%;font-family:var(--font-body);font-size:clamp(.45rem,1.9vw,.62rem);font-weight:600;line-height:1;color:var(--color-text-muted)}.marks i{font-style:normal;display:flex;align-items:center;justify-content:center}.keypad{display:grid;grid-template-columns:repeat(10,1fr);gap:var(--space-1);width:100%;max-width:480px}.key{min-height:44px;border:1px solid var(--sk-thin);border-radius:var(--radius-sm);background:var(--sk-panel);color:var(--sk-pen);font-family:var(--font-round);font-size:1.3rem;font-weight:500;padding:0;touch-action:manipulation}.key:hover{border-color:var(--sk-pen);background:var(--sk-same)}.key--done{color:var(--color-text-muted);opacity:.45}.key--erase,.key--pencil{font-family:var(--font-body);font-size:.95rem;font-weight:600;color:var(--color-text)}.key--pencil{grid-column:1 / -1}.key--on,.key--on:hover{background:var(--sk-pen);color:var(--sk-panel);border-color:var(--sk-pen)}.chip strong{font-weight:600;font-variant-numeric:tabular-nums}@media (max-width: 480px){.keypad{grid-template-columns:repeat(5,1fr)}.board-wrap{padding:var(--space-2)}.sudoku{border-width:2px}.cell.br{border-right-width:2px}.cell.bb{border-bottom-width:2px}}@media (orientation: landscape) and (max-height: 480px){.board-wrap{padding:var(--space-2);gap:var(--space-2)}.keypad{grid-template-columns:repeat(5,1fr)}}
