.sudoku{align-items:start;gap:clamp(1.5rem,4vw,2.5rem);display:grid}@media (width>=46rem){.sudoku{grid-template-columns:minmax(0,auto) minmax(14rem,18rem)}}.sudoku-board-wrap{max-width:100%;overflow-x:auto}.sudoku-board{aspect-ratio:1;border:2px solid var(--text);background:var(--surface-raised);grid-template-columns:repeat(9,1fr);gap:0;width:min(100%,30rem);display:grid}.sudoku-row{display:contents}.sudoku-square{aspect-ratio:1;border:1px solid var(--rule);min-width:0;color:var(--text);font-family:var(--font-body);cursor:pointer;background:0 0;place-items:center;padding:0;display:grid;position:relative}.sudoku-square[data-edge-right]{border-right:2px solid var(--text)}.sudoku-square[data-edge-bottom]{border-bottom:2px solid var(--text)}.sudoku-square:nth-child(9n){border-right:none}.sudoku-square:nth-child(n+73){border-bottom:none}.sudoku-square[data-given]{cursor:default}.sudoku-square[data-selected]{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.sudoku-square[data-conflict] .sudoku-value{color:var(--accent-text);text-underline-offset:.2em;text-decoration:underline wavy}.sudoku-value{font-size:clamp(1rem,3.4vw,1.5rem);font-weight:500;line-height:1}.sudoku-square[data-given] .sudoku-value{font-family:var(--font-display);font-weight:400}.sudoku-square:not([data-given]) .sudoku-value{color:var(--accent-text)}.sudoku-hints{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:-.02em;word-break:break-all;max-width:100%;padding:0 1px;font-size:clamp(.4rem,1.3vw,.55rem);line-height:1.15}.sudoku-board[data-solved]{border-color:var(--accent)}.sudoku-board[data-failed]{border-color:var(--solver-failed)}.sudoku-board[data-solving] .sudoku-row{display:contents}.sudoku-square{cursor:default}.sudoku-square[data-solver] .sudoku-value{color:var(--solver-mark);font-weight:600}.sudoku-solver{gap:.75rem;display:grid}.sudoku-solve{border:1px solid var(--accent);border-radius:var(--radius-card);background:var(--accent);color:var(--accent-contrast);font:inherit;cursor:pointer;justify-self:start;padding:.55rem 1.1rem;font-weight:500}.sudoku-solve:hover:not(:disabled){opacity:.9}.sudoku-solve:disabled{opacity:.4;cursor:not-allowed}.sudoku-duration{align-items:start;gap:.3rem;display:grid}.sudoku-duration input{width:100%;accent-color:var(--accent)}.sudoku-steps{font-family:var(--font-mono);color:var(--text-muted);margin:0;font-size:.8rem;line-height:1.4}.sudoku-steps strong{color:var(--solver-mark);font-weight:600}.sudoku-steps-note{display:block}.sudoku-status[data-failed]{color:var(--solver-failed)}.sudoku-controls{gap:1.25rem;display:grid}.sudoku-pad{grid-template-columns:repeat(5,1fr);gap:.4rem;display:grid}.sudoku-key{border:1px solid var(--rule);border-radius:var(--radius-card);background:var(--surface-raised);color:var(--text);font-family:var(--font-body);cursor:pointer;padding:.6rem 0;font-size:1rem}.sudoku-key:hover:not(:disabled){border-color:var(--accent);color:var(--accent-text)}.sudoku-key:disabled{opacity:.4;cursor:not-allowed}.sudoku-key-clear{grid-column:span 2;font-size:.85rem}.sudoku-status{font-family:var(--font-script);color:var(--accent-text);margin:0;font-size:1.35rem;line-height:1.2}.sudoku-options{gap:.75rem;font-size:.9rem;display:grid}.sudoku-option{align-items:center;gap:.5rem;display:flex}.sudoku-option select{font:inherit;border:1px solid var(--rule);border-radius:var(--radius-card);background:var(--surface-raised);color:var(--text);padding:.3rem .4rem}.sudoku-reset{border:1px solid var(--rule);border-radius:var(--radius-card);color:var(--text);font:inherit;cursor:pointer;background:0 0;justify-self:start;padding:.5rem .9rem}.sudoku-reset:hover{border-color:var(--accent);color:var(--accent-text)}.project[data-astro-cid-omsmup2h]{max-width:58rem;padding:clamp(2.5rem,7vw,4.5rem) clamp(1rem,4vw,3rem)}.project[data-astro-cid-omsmup2h] h1[data-astro-cid-omsmup2h]{margin:.25rem 0 1rem;font-size:clamp(2.3rem,8vw,4rem)}.project-summary[data-astro-cid-omsmup2h]{color:var(--text-muted);max-width:46ch;margin:0 0 1.25rem;font-size:clamp(1.05rem,2.2vw,1.25rem)}.project-private[data-astro-cid-omsmup2h]{font-family:var(--font-mono);color:var(--text-muted);border:1px dashed var(--rule);border-radius:var(--radius-card);margin:0 0 1.25rem;padding:.25rem .6rem;font-size:.78rem;display:inline-block}.project-stack[data-astro-cid-omsmup2h]{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.project-stack[data-astro-cid-omsmup2h] li[data-astro-cid-omsmup2h]{font-family:var(--font-mono);color:var(--text-muted);border:1px solid var(--rule);border-radius:var(--radius-card);padding:.15rem .5rem;font-size:.75rem}.project-demo[data-astro-cid-omsmup2h]{background:var(--surface-sunken);border-radius:var(--radius-card);margin:clamp(2.5rem,6vw,3.5rem) 0;padding:clamp(1.25rem,4vw,2rem)}.project-body[data-astro-cid-omsmup2h]{margin-top:clamp(2rem,5vw,3rem)}.project-body[data-astro-cid-omsmup2h] h2{margin:clamp(2rem,5vw,2.75rem) 0 1rem;font-size:clamp(1.4rem,3.5vw,1.8rem)}.project-body[data-astro-cid-omsmup2h] p{max-width:68ch;margin:0 0 1.1rem}.project-body[data-astro-cid-omsmup2h] ul,.project-body[data-astro-cid-omsmup2h] ol{max-width:68ch;margin:0 0 1.1rem;padding-left:1.3rem}.project-body[data-astro-cid-omsmup2h] li{margin-bottom:.4rem}.project-body[data-astro-cid-omsmup2h] strong{font-weight:600}.project-body[data-astro-cid-omsmup2h] em{font-style:italic}.project-body[data-astro-cid-omsmup2h] table{border-collapse:collapse;width:100%;max-width:52rem;margin:0 0 1.6rem;font-size:.94rem}.project-body[data-astro-cid-omsmup2h] th,.project-body[data-astro-cid-omsmup2h] td{text-align:left;border-bottom:1px solid var(--rule);padding:.5rem .9rem}.project-body[data-astro-cid-omsmup2h] thead th{font-family:var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);border-bottom:2px solid var(--accent);font-size:.82rem;font-weight:600}.project-body[data-astro-cid-omsmup2h] tbody tr:last-child th,.project-body[data-astro-cid-omsmup2h] tbody tr:last-child td{border-bottom:none}.project-body[data-astro-cid-omsmup2h] th:not(:first-child),.project-body[data-astro-cid-omsmup2h] td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.project-body[data-astro-cid-omsmup2h] tbody th:first-child,.project-body[data-astro-cid-omsmup2h] tbody td:first-child{font-weight:600}@media (width<=30rem){.project-body[data-astro-cid-omsmup2h] table{font-size:.85rem}.project-body[data-astro-cid-omsmup2h] th,.project-body[data-astro-cid-omsmup2h] td{padding:.45rem .4rem}}.project-links[data-astro-cid-omsmup2h]{border-top:1px solid var(--rule);margin-top:clamp(2.5rem,6vw,3.5rem);padding-top:1.5rem}.project-links[data-astro-cid-omsmup2h] h2[data-astro-cid-omsmup2h]{font-size:1.1rem;font-family:var(--font-body);letter-spacing:0;margin:0 0 .75rem;font-weight:600}.project-links[data-astro-cid-omsmup2h] ul[data-astro-cid-omsmup2h]{margin:0;padding-left:1.2rem}.project-links[data-astro-cid-omsmup2h] li[data-astro-cid-omsmup2h]{margin-bottom:.35rem}.project-back[data-astro-cid-omsmup2h]{border-top:1px solid var(--rule);margin-top:clamp(2.5rem,6vw,3.5rem);padding-top:1.5rem;font-size:.95rem}
