:root{color-scheme:light dark;--bg:#fbfbfa;--ink:#17171a;--accent:#5b5b5b;--sk-paper:#f2f2f2;--sk-ink:#1a1a1a;--sk-soft:#9a9a9a;--f-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--f-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root{--bg:#101012;--ink:#ededf0;--accent:#7a7a7a}}*,::before,::after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--f-sans);-webkit-font-smoothing:antialiased;min-height:100dvh;display:grid;place-items:center;padding:1.5rem}.board-block{width:min(90vw,40rem);background:var(--accent);container-type:inline-size;overflow:hidden}.stage{display:flex;flex-direction:column;align-items:center;gap:1rem}.site-foot{display:flex;flex-direction:column;align-items:center;gap:.45rem}.feedback-link{font-family:var(--f-mono);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);opacity:.6;text-decoration:none}.feedback-link:hover{opacity:1}.credit{margin:0;font-family:var(--f-mono);font-size:.625rem;font-weight:500;letter-spacing:.04em;line-height:1.5;color:color-mix(in oklch,var(--ink) 42%,transparent)}.credit-link,.credit-link:link,.credit-link:visited{display:inline-flex;align-items:center;gap:.3rem;color:color-mix(in oklch,var(--ink) 78%,transparent);font-weight:600;text-decoration:none;vertical-align:-.18em}.credit-link:hover,.credit-link:focus-visible{color:var(--ink)}.credit-link:hover span,.credit-link:focus-visible span{text-decoration:underline;text-underline-offset:.22em}.credit-mark{display:block;width:1.15em;height:1.15em;flex:none}.credit-legal{color:color-mix(in oklch,var(--ink) 26%,transparent);letter-spacing:.06em}.sudoku{--g:1rem;--btn:44px;--board:calc(100cqw - 4 * var(--g) - 2 * var(--btn));padding:var(--g)}.sk-sq{display:grid;grid-template-columns:var(--btn) var(--board) var(--btn);grid-template-rows:var(--btn) var(--board);gap:var(--g)}.sk-top{grid-column:1/span 2;grid-row:1;display:flex;align-items:center;justify-content:flex-end;min-width:0}.sk-action{position:relative;display:inline-flex;align-items:stretch;flex:none}.sk-rail-fn{grid-column:1;grid-row:2;align-self:start}.sk-board-area{grid-column:2;grid-row:2;position:relative}.sk-rail-num{grid-column:3;grid-row:2}.sk-score,.sk-sub{display:none}.sk-main,.sk-caret{height:var(--btn);border:0;background:var(--sk-ink);color:var(--sk-paper);font-family:var(--f-mono);font-size:.6875rem;font-weight:700;letter-spacing:.08em;cursor:pointer;display:inline-flex;align-items:center}.sk-main{padding:0 .85rem;white-space:nowrap}.sk-caret{padding:0 .5rem;box-shadow:inset 1px 0 0 color-mix(in oklch,var(--sk-paper) 28%,transparent)}.sk-main:hover,.sk-caret:hover:not(:disabled){background:color-mix(in oklch,var(--sk-ink) 88%,var(--sk-paper))}.sk-caret:disabled{opacity:.5;cursor:not-allowed}.sk-title{display:inline-flex;align-items:center;gap:.4rem}#action-difficulty{opacity:.72}#action-label,.sk-lbl-give{display:none}.sk-title:has(#action-difficulty[hidden]) .sk-lbl-new{display:none}.sk-title:has(#action-difficulty[hidden]) .sk-lbl-give{display:inline}.sk-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:9.5rem;z-index:10;padding:.25rem;background:var(--sk-paper);color:var(--sk-ink);box-shadow:0 12px 30px rgba(0,0,0,.3)}.sk-menu[hidden]{display:none}.menu-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;border:0;background:0 0;color:inherit;font-family:var(--f-mono);font-size:.6875rem;font-weight:600;letter-spacing:.06em;padding:.45rem .5rem;text-align:left;cursor:pointer}.menu-item:hover{background:color-mix(in oklch,var(--accent) 14%,transparent)}.sk-check{visibility:hidden;color:var(--accent)}.menu-item.selected .sk-check{visibility:visible}.sk-rail{display:flex;flex-direction:column;gap:1px;width:var(--btn)}.sk-rail-num{height:100%}.sk-fn,.num-btn{width:var(--btn);border:0;background:var(--sk-paper);color:var(--sk-ink);cursor:pointer;display:flex;align-items:center;justify-content:center}.sk-fn{height:var(--btn);flex:none}.num-btn{flex:1;min-height:0;font-family:var(--f-mono);font-size:clamp(.8rem,calc(var(--board)/24),1.15rem);font-weight:600}.sk-fn:hover:not(:disabled),.num-btn:hover:not(:disabled){background:color-mix(in oklch,var(--accent) 16%,var(--sk-paper))}.sk-fn:disabled,.num-btn:disabled{opacity:.45;cursor:not-allowed}.sk-fn.active{background:var(--sk-ink);color:var(--sk-paper)}.sk-twin{display:none}.sk-ico{width:18px;height:18px;display:block}.sk-caret .sk-ico{width:14px;height:14px}.menu-item .sk-ico{width:15px;height:15px}.sk-board-wrap{width:100%;height:100%}.sk-board{width:100%;height:100%;display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);gap:1px;background:var(--accent)}.sk-board .cell{display:flex;align-items:center;justify-content:center;background:var(--sk-paper);color:var(--sk-ink);font-family:var(--f-mono);font-size:calc(var(--board)/19);cursor:pointer;user-select:none;position:relative}.sk-board .cell.box-right{box-shadow:inset -2px 0 0 0 var(--sk-soft)}.sk-board .cell.box-bottom{box-shadow:inset 0-2px 0 0 var(--sk-soft)}.sk-board .cell.box-right.box-bottom{box-shadow:inset -2px -2px 0 0 var(--sk-soft)}.sk-board .cell.given{font-weight:700}.sk-board .cell.filled{color:var(--accent);font-weight:600}.sk-board .cell.selected{background:color-mix(in oklch,var(--accent) 20%,var(--sk-paper))}.sk-board .cell .notes{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;font-size:.4em;line-height:1;color:var(--sk-soft)}.sk-board .cell .notes span{display:flex;align-items:center;justify-content:center}.sk-win{position:fixed;left:50%;transform:translate(-50%,-50%);z-index:5;padding:2rem;background:var(--sk-ink);font-family:var(--f-sans);font-weight:800;font-size:clamp(1.1rem,3.5vw,2rem);letter-spacing:.02em;color:var(--sk-paper);pointer-events:none;white-space:nowrap;opacity:0;transition:opacity 400ms ease}.sk-win.visible{opacity:1}@media (max-width:40rem){body{padding:0}.stage{gap:0;width:100%;height:100dvh;align-items:stretch;justify-content:flex-start}.board-block{width:100vw;flex:1 1 auto;height:auto;min-height:0}.sudoku{--g:0px;--btn:48px;--board:100cqw;height:100%;padding:0}.sk-sq{grid-template-columns:auto 1fr;grid-template-rows:var(--btn) auto 1fr;width:100%;height:100%}.sk-rail-fn{grid-column:1;grid-row:1;flex-direction:row;width:auto;align-self:stretch}.sk-top{grid-column:2;grid-row:1;align-self:stretch}.sk-action{flex:1}.sk-main{flex:1;justify-content:center}.sk-board-area{grid-column:1/span 2;grid-row:2;width:100%;aspect-ratio:1}.sk-rail-num{grid-column:1/span 2;grid-row:3;width:100%;height:100%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr)}.num-btn{width:100%;height:100%;font-size:clamp(1.25rem,7vw,2rem)}.site-foot{flex:none;gap:.5rem;padding:1rem 1rem calc(.9rem + env(safe-area-inset-bottom,0))}}.contact-block{width:min(90vw,28rem);background:var(--accent);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.back-link{align-self:flex-start;font-family:var(--f-mono);font-size:.625rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sk-paper);text-decoration:none;opacity:.75}.back-link:hover{opacity:1}.contact-h{margin:0;font-family:var(--f-sans);font-weight:800;font-size:1.5rem;letter-spacing:-.01em;color:var(--sk-paper)}.contact-form{display:flex;flex-direction:column;gap:1.25rem}.contact-row{display:flex;flex-direction:column;gap:.5rem}.contact-label{font-family:var(--f-mono);font-size:.625rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sk-paper);opacity:.8}.contact-input{font:inherit;font-family:var(--f-sans);font-size:.875rem;color:var(--sk-ink);background:var(--sk-paper);border:0;padding:.75rem;width:100%}.contact-input:focus{outline:2px solid var(--sk-ink);outline-offset:2px}.contact-textarea{resize:vertical;min-height:7rem}.contact-submit{display:flex;align-items:center;justify-content:center;gap:.4rem;height:44px;border:0;background:var(--sk-ink);color:var(--sk-paper);font-family:var(--f-mono);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;cursor:pointer}.thanks-p{margin:0;font-family:var(--f-sans);font-size:.875rem;line-height:1.5;color:var(--sk-paper);opacity:.85}.contact-submit:hover{background:color-mix(in oklch,var(--sk-ink) 88%,var(--sk-paper))}.contact-arrow{transition:transform 160ms}.contact-submit:hover .contact-arrow{transform:translateX(.25rem)}.scale{display:flex;gap:1px;background:var(--sk-soft)}.sc{position:relative;flex:1}.sc input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}.sc span{display:flex;align-items:center;justify-content:center;height:2.5rem;background:var(--sk-paper);color:var(--sk-ink);font-family:var(--f-mono);font-size:.8125rem;font-weight:600;font-variant-numeric:tabular-nums}.sc input:checked+span{background:var(--sk-ink);color:var(--sk-paper)}.sc input:focus-visible+span{box-shadow:inset 0 0 0 2px var(--sk-ink)}