.sudoku{--sudoku-cell:#fffaf0;--sudoku-ink:#2a1c19;--sudoku-entry:#1f4f8a;--sudoku-line:#2a1c1929;--sudoku-box-line:#2a1c19a3;--sudoku-given:#f2e2bb;--sudoku-peer:#3c6eb41c;--sudoku-same:#c6465a33;--sudoku-focus:#b3313f;--sudoku-clash:#d628344d;--sudoku-hint:#2f7d4f;border:1px solid var(--tro-choi-line);background:var(--tro-choi-paper-soft);border-radius:20px;grid-template-columns:minmax(0,1fr);gap:1rem;max-width:980px;margin:2rem auto 0;padding:clamp(.75rem,3vw,2rem);display:grid}html[data-theme=light] .sudoku{--sudoku-cell:#fff;--sudoku-given:#f6e7c4}.sudoku__defs{width:0;height:0;position:absolute;overflow:hidden}.sudoku__title{font:600 clamp(1.3rem, 4.8vw, 1.7rem) / 1.3 var(--font-serif,Lora, "Lora fallback", Georgia, serif);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;margin:0;display:flex}.sudoku__title>span{color:var(--tro-choi-muted);font:700 .9rem / 1.4 var(--font-sans,inherit)}.sudoku__clock{font-variant-numeric:tabular-nums}.sudoku__preview{border:1px dashed var(--tro-choi-gold);color:var(--tro-choi-copy);border-radius:12px;margin:0;padding:.6rem .8rem;font-size:.92rem}.sudoku__levels{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.sudoku__level{border:1px solid var(--tro-choi-line);min-width:0;min-height:44px;color:var(--tro-choi-copy);font:500 .8rem / 1.35 var(--font-sans,inherit);text-align:left;background:var(--tro-choi-paper);cursor:pointer;border-radius:12px;gap:.15rem;padding:.5rem .6rem;display:grid}.sudoku__level strong{color:var(--tro-choi-ink);font-size:1rem}.sudoku__level[aria-pressed=true],.sudoku__toggle[aria-pressed=true],.sudoku__tool[aria-pressed=true]{border-color:var(--tro-choi-gold);box-shadow:inset 0 0 0 1px var(--tro-choi-gold);color:var(--tro-choi-ink)}.sudoku__symbols{flex-wrap:wrap;gap:.5rem;display:flex}.sudoku__toggle,.sudoku__tool,.sudoku__primary,.sudoku__secondary,.sudoku__ghost{border:1px solid var(--tro-choi-line);min-height:44px;color:var(--tro-choi-copy);font:600 .92rem / 1.3 var(--font-sans,inherit);background:var(--tro-choi-paper);cursor:pointer;border-radius:12px;padding:.5rem .9rem}.sudoku__primary{color:#2a1c19;background:var(--tro-choi-gold);border-color:#0000}html[data-theme=light] .sudoku__primary{color:#fffaf0}.sudoku__ghost{background:0 0}.sudoku__tool[aria-disabled=true]{opacity:.55}.sudoku__level:focus-visible,.sudoku__toggle:focus-visible,.sudoku__tool:focus-visible,.sudoku__key:focus-visible,.sudoku__primary:focus-visible,.sudoku__secondary:focus-visible,.sudoku__ghost:focus-visible,.sudoku__link:focus-visible{outline:3px solid var(--tro-choi-son);outline-offset:2px}.sudoku__wait{color:var(--tro-choi-copy);text-align:center;margin:2rem 0}.sudoku__play{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.sudoku__board{gap:.6rem;min-width:0;display:grid}.sudoku__grid{grid-template-rows:repeat(var(--sudoku-size), minmax(0, 1fr));aspect-ratio:1;border:2px solid var(--sudoku-box-line);background:var(--sudoku-cell);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:12px;width:100%;max-width:31rem;margin:0 auto;display:grid;overflow:hidden}.sudoku[data-size="4"] .sudoku__grid{max-width:22rem}.sudoku__row{grid-template-columns:repeat(var(--sudoku-size), minmax(0, 1fr));min-height:0;display:grid}.sudoku__cell{border-right:1px solid var(--sudoku-line);border-bottom:1px solid var(--sudoku-line);min-width:0;min-height:0;color:var(--sudoku-entry);background-color:var(--sudoku-cell);cursor:pointer;touch-action:manipulation;outline:none;place-items:center;display:grid;position:relative;container-type:size}.sudoku__cell.is-box-right{border-right:2px solid var(--sudoku-box-line)}.sudoku__cell.is-box-bottom{border-bottom:2px solid var(--sudoku-box-line)}.sudoku__row>.sudoku__cell:last-child{border-right:0}.sudoku__row:last-child>.sudoku__cell{border-bottom:0}.sudoku__cell.is-given{color:var(--sudoku-ink);background-color:var(--sudoku-given)}.sudoku__cell.is-peer{background-image:linear-gradient(var(--sudoku-peer), var(--sudoku-peer))}.sudoku__cell.is-same{background-image:linear-gradient(var(--sudoku-same), var(--sudoku-same))}.sudoku__cell.is-clash{background-image:linear-gradient(var(--sudoku-clash), var(--sudoku-clash))}.sudoku__cell.is-focus{box-shadow:inset 0 0 0 3px var(--sudoku-focus)}.sudoku__cell.is-hint{box-shadow:inset 0 0 0 3px var(--sudoku-hint)}.sudoku__cell.is-focus.is-hint{box-shadow:inset 0 0 0 3px var(--sudoku-hint), inset 0 0 0 5px var(--sudoku-cell)}.sudoku__mark{pointer-events:none;width:94%;height:94%}.sudoku__mark.is-digit,.sudoku__pencil.is-digit,.sudoku__key-mark.is-digit{width:auto;height:auto;font-family:var(--font-sans,inherit);font-variant-numeric:tabular-nums;place-items:center;font-weight:700;line-height:1;display:grid}.sudoku__mark.is-digit{font-size:min(1.75rem,62cqh)}.sudoku__cell.is-clash .sudoku__mark.is-digit{color:#a3212e}.sudoku__notes{grid-template-columns:repeat(var(--sudoku-box), minmax(0, 1fr));grid-template-rows:repeat(var(--sudoku-box), minmax(0, 1fr));pointer-events:none;display:grid;position:absolute;inset:5%}.sudoku__notes>span{place-items:center;min-width:0;min-height:0;display:grid}.sudoku__pencil{width:100%;height:100%}.sudoku__pencil.is-digit{color:#2a1c19b8;font-size:min(.8rem,26cqh);font-weight:600}.sudoku__keys,.sudoku__message,.sudoku__note{color:var(--tro-choi-copy);margin:0;font-size:.92rem;line-height:1.55}.sudoku__message:empty{display:none}.sudoku__side{align-content:start;gap:.75rem;min-width:0;display:grid}.sudoku__pad{grid-template-columns:repeat(var(--sudoku-pad), minmax(0, 1fr));gap:.4rem;display:grid}.sudoku__key{border:1px solid var(--tro-choi-line);min-width:0;min-height:60px;color:var(--tro-choi-ink);background:var(--sudoku-cell);cursor:pointer;touch-action:manipulation;border-radius:12px;align-content:center;justify-items:center;gap:.15rem;padding:.35rem .2rem;display:grid;position:relative}.sudoku__key-mark{pointer-events:none;width:34px;height:34px}.sudoku__key-mark.is-digit{color:var(--sudoku-entry);font-size:1.5rem}.sudoku__key-name{max-width:100%;color:var(--sudoku-ink);font:600 .78rem / 1.2 var(--font-sans,inherit);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sudoku__key-left{color:#2a1c1994;font:700 .7rem / 1 var(--font-sans,inherit);font-variant-numeric:tabular-nums;position:absolute;top:.2rem;right:.3rem}.sudoku__key[data-left="0"]{opacity:.62}.sudoku__tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;display:grid}.sudoku__tool.is-hint{border-color:var(--tro-choi-gold)}.sudoku__done{border:1px solid var(--tro-choi-gold);background:var(--tro-choi-paper);border-radius:16px;gap:.6rem;padding:1rem;display:grid}.sudoku__done h3{font:600 1.25rem / 1.35 var(--font-serif,Lora, "Lora fallback", Georgia, serif);outline:none;margin:0}.sudoku__actions{flex-wrap:wrap;gap:.5rem;display:flex}.sudoku__link{min-height:44px;color:var(--tro-choi-gold);font:600 .92rem / 1.3 var(--font-sans,inherit);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:.5rem 0;text-decoration:underline}@media (width>=640px){.sudoku__levels,.sudoku__tools{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=900px){.sudoku__play{grid-template-columns:minmax(0,31rem) minmax(15rem,1fr);align-items:start}.sudoku__tools{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:no-preference){.sudoku[data-motion=full] .sudoku__cell.is-hint{animation:1.2s ease-in-out 2 sudoku-hint}}@keyframes sudoku-hint{50%{box-shadow:inset 0 0 0 6px var(--sudoku-hint)}}
