:root{--so-cell:#f8f5ed;--so-line:var(--ink);--so-frame:var(--ink);--so-num:var(--ink);--so-shade:var(--ink);--so-shade-num:color-mix(in oklab, #f8f5ed 52%, var(--ink));--so-shade-hatch:#f8f5ed1a;--so-ring:color-mix(in oklab, var(--acc-shadeout) 82%, var(--ink));--so-ring-wash:color-mix(in oklab, var(--acc-shadeout) 20%, #f8f5ed);--so-hover:#efe9dc}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--so-cell:#201e1a;--so-line:color-mix(in oklab, var(--ink) 42%, #201e1a);--so-frame:color-mix(in oklab, var(--ink) 78%, #201e1a);--so-num:var(--ink);--so-shade:#cbc3b2;--so-shade-num:#5b564e;--so-shade-hatch:#1b19161a;--so-ring:var(--acc-shadeout);--so-ring-wash:color-mix(in oklab, var(--acc-shadeout) 22%, #201e1a);--so-hover:#2a2722}@supports (color:color(display-p3 0 0 0)){:root:not([data-theme=light]){--so-shade-num:color(display-p3 .352833 .339736 .310911)}}@supports (color:lab(0% 0 0)){:root:not([data-theme=light]){--so-shade-num:lab(36.9831% .59031 5.34335)}}}:root[data-theme=dark]{--so-cell:#201e1a;--so-line:color-mix(in oklab, var(--ink) 42%, #201e1a);--so-frame:color-mix(in oklab, var(--ink) 78%, #201e1a);--so-num:var(--ink);--so-shade:#cbc3b2;--so-shade-num:#5b564e;--so-shade-hatch:#1b19161a;--so-ring:var(--acc-shadeout);--so-ring-wash:color-mix(in oklab, var(--acc-shadeout) 22%, #201e1a);--so-hover:#2a2722}@supports (color:color(display-p3 0 0 0)){:root[data-theme=dark]{--so-shade-num:color(display-p3 .352833 .339736 .310911)}}@supports (color:lab(0% 0 0)){:root[data-theme=dark]{--so-shade-num:lab(36.9831% .59031 5.34335)}}.page-game .game{--board-gutter:clamp(6px, 1.6vw, 24px)}.so-board{--frame:2px;--line:1px;--cell:calc((var(--side,360px) - (var(--n) - 1) * var(--line)) / var(--n));aspect-ratio:1;width:100%;padding:var(--frame);background:var(--so-frame);touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:relative}.so-board__grid{grid-template-rows:repeat(var(--n), 1fr);gap:var(--line);background:var(--so-line);width:100%;height:100%;display:grid}.so-board__row{grid-template-columns:repeat(var(--n), 1fr);gap:var(--line);display:grid}.so-cell{cursor:pointer;background:var(--so-cell);transition:background-color .2s var(--ease-out);place-items:center;display:grid;position:relative;overflow:hidden}.so-num{z-index:1;aspect-ratio:1;width:76%;font-family:var(--serif);font-weight:420;font-size:max(.8125rem, calc(var(--cell) * .6));color:var(--so-num);font-variant-numeric:lining-nums tabular-nums;transition:color .16s var(--ease-out), opacity .16s var(--ease-out);border-radius:50%;place-items:center;line-height:1;display:grid;position:relative}.so-cell[data-kind=shaded]{background:repeating-linear-gradient(-45deg, var(--so-shade-hatch) 0 1px, transparent 1px 6px), var(--so-shade)}.so-cell[data-kind=shaded] .so-num{color:var(--so-shade-num)}.so-cell[data-kind=kept] .so-num{background:var(--so-ring-wash)}.so-cell[data-kind=kept] .so-num:before,.so-cell[data-kind=auto] .so-num:before{content:"";border:max(1.5px, calc(var(--cell) * .05)) solid var(--so-ring);border-radius:50%;position:absolute;top:0;bottom:0;left:0;right:0}.so-cell[data-kind=auto] .so-num:before{border-width:max(1px, calc(var(--cell) * .03));opacity:.55;border-style:dashed}.so-cell:focus-visible{outline:2px solid var(--focus);outline-offset:-4px;z-index:2}.so-cell[data-kind=shaded]:focus-visible{outline-color:var(--so-cell)}@media (hover:hover){.so-board:not(:-webkit-any([data-solved],[data-static])) .so-cell:not([data-kind=shaded]):hover{background-color:var(--so-hover)}.so-board:not(:is([data-solved],[data-static])) .so-cell:not([data-kind=shaded]):hover{background-color:var(--so-hover)}}.so-cell[data-touch]{box-shadow:inset 0 0 0 2px var(--so-cell), inset 0 0 0 5px var(--alarm)}.so-cell[data-touch] .so-num{animation:so-shake .36s var(--ease-out)}@keyframes so-shake{25%{translate:-8%}50%{translate:7%}75%{translate:-4%}}.so-cell[data-repeat]{box-shadow:inset 0 0 0 3px var(--alarm)}.so-cell[data-repeat] .so-num{color:var(--alarm);-webkit-text-decoration:underline wavy var(--alarm) max(1px, calc(var(--cell) * .03));text-decoration:underline wavy var(--alarm) max(1px, calc(var(--cell) * .03));text-underline-offset:calc(var(--cell) * .06)}.so-cell[data-repeat] .so-num:before{border-color:var(--alarm)}.so-cell[data-cut]{background-image:repeating-linear-gradient(-45deg, color-mix(in oklab, var(--alarm) 40%, transparent) 0 1.5px, transparent 1.5px 6px);outline:2px dotted var(--alarm);outline-offset:-4px}.so-board[data-hinting] .so-cell:not([data-hint]):after{content:"";background:color-mix(in oklab, var(--paper) 62%, transparent);pointer-events:none;z-index:1;position:absolute;top:0;bottom:0;left:0;right:0}.so-board .so-cell[data-hint=target]{--so-hint:var(--ink);box-shadow:inset 0 0 0 3px var(--so-hint);z-index:1}.so-board .so-cell[data-kind=shaded][data-hint=target]{--so-hint:var(--so-cell)}.so-board .so-cell[data-hint=target]:after{content:"";z-index:1;box-shadow:inset 0 0 0 3px var(--so-hint);pointer-events:none;animation:1.3s ease-in-out infinite so-breathe;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes so-breathe{0%,to{opacity:.85;transform:scale(1)}50%{opacity:0;transform:scale(.84)}}.so-cell[data-hint=because]{outline:1.5px dashed var(--ink);outline-offset:-5px}.so-cell[data-kind=shaded][data-hint=because]{outline-color:var(--so-cell)}.so-cell>.fx-so-paper{background:var(--so-cell);top:0;bottom:0;left:0;right:0}.so-cell>.fx-so-blot{background:var(--so-shade);border-radius:50%;top:0;bottom:0;left:0;right:0}.so-cell>.fx-so-ink{background:repeating-linear-gradient(-45deg, var(--so-shade-hatch) 0 1px, transparent 1px 6px), var(--so-shade);top:0;bottom:0;left:0;right:0}.so-cell>.fx-so-wash{background:color-mix(in oklab, var(--acc-shadeout) 24%, transparent);top:0;bottom:0;left:0;right:0}.so-cell>.fx-so-ring{z-index:1;border:max(1.5px, calc(var(--cell) * .05)) solid var(--so-ring);border-radius:50%;top:12%;bottom:12%;left:12%;right:12%}.so-cell>.fx-alarm{z-index:1;background:color-mix(in oklab, var(--alarm) 22%, transparent);top:0;bottom:0;left:0;right:0}.so-board[data-solved] .so-cell{cursor:default}.so-board[data-solved] .so-cell[data-kind=auto] .so-num:before{display:none}.so-board[data-static]{touch-action:auto;pointer-events:none}.so-board[data-static] .so-num{font-size:calc(var(--cell) * .6)}.plate .so-board,.thumb .so-board{--frame:1.5px}.thumb__print>.so-board[role],.hero__sheet>.so-board[role],.plate__board>.so-board[role]{filter:none}.dialog__body .help-example{justify-self:center;width:min(220px,60vw)}.so-legend{color:var(--ink-soft);text-align:center;grid-template-columns:repeat(3,1fr);gap:8px;margin:0;padding:0;font-size:.875rem;list-style:none;display:grid}.so-legend li{justify-items:center;gap:6px;display:grid}.so-legend .so-cell{cursor:default;width:40px;height:40px;box-shadow:0 0 0 1px var(--so-line)}.so-figure{grid-template-columns:1fr 1fr;gap:16px;max-width:460px;margin:8px 0;display:grid}.so-figure figcaption{color:var(--ink-soft);font-family:var(--sans);letter-spacing:.02em;grid-column:1/-1;font-size:.875rem}
