:root{--raised:inset 0 1.5px 0 #ffffff8c, inset 1px 0 0 #ffffff2e, inset -1px 0 0 #00000014, inset 0 -4px 0 #0000002e, 0 1px 1px #0000002e, 0 4px 8px -2px #00000047;--raised-strong:inset 0 2px 0 #fff9, inset 1px 0 0 #fff3, inset -1px 0 0 #0000001a, inset 0 -5px 0 #00000038, 0 2px 2px #0003, 0 8px 14px -4px #00000059;--pressed:inset 0 3px 5px #0003, inset 0 1px 1px #0000001f, inset 0 -1px 0 #ffffff4d;--tray:inset 0 4px 10px #00000042, inset 0 -1px 0 #ffffff4d, 0 0 0 1px #ffffff59, 0 1px 0 #fff6, 0 14px 30px -10px #00000059;--sheen:radial-gradient(ellipse 70% 50% at 30% 18%, #ffffff47, #fff0 70%), linear-gradient(180deg, #ffffff29, #fff0 55%);--ambient:radial-gradient(ellipse 70% 45% at 50% 28%, #fff8e673, transparent 70%), radial-gradient(ellipse 120% 60% at 50% 110%, #00000014, transparent 70%);--shade:radial-gradient(ellipse 120% 95% at 50% 40%, transparent 52%, #0000002e)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ambient:radial-gradient(ellipse 80% 60% at 50% 32%, #ffffff0f, transparent 70%);--shade:radial-gradient(ellipse 130% 100% at 50% 40%, transparent 55%, #00000059);--sheen:linear-gradient(180deg, #ffffff1a, #fff0 55%)}}:root[data-theme=dark]{--ambient:radial-gradient(ellipse 80% 60% at 50% 32%, #ffffff0f, transparent 70%);--shade:radial-gradient(ellipse 130% 100% at 50% 40%, transparent 55%, #00000059);--sheen:linear-gradient(180deg, #ffffff1a, #fff0 55%)}@keyframes art-pop{0%{opacity:0;transform:scale(.4)}70%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}@keyframes art-pulse{0%{transform:scale(1)}45%{transform:scale(1.14)}to{transform:scale(1)}}@keyframes art-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}@keyframes art-press{0%{transform:scale(1)}40%{transform:scale(.9)}to{transform:scale(1)}}.art-pop{animation:.22s ease-out art-pop}.art-pulse{animation:.22s ease-out art-pulse}.art-shake{animation:.32s ease-in-out art-shake}.art-press{animation:.18s ease-out art-press}@media (prefers-reduced-motion:reduce){.art-pop,.art-pulse,.art-shake,.art-press{animation:none}}.sound-toggle{background:var(--btn,#00000040);width:36px;min-width:36px;height:36px;color:var(--ink,#fff);cursor:pointer;border:0;border-radius:50%;place-items:center;padding:0;display:inline-grid}.sound-toggle svg{width:20px;height:20px}.sound-toggle[aria-pressed=true]{opacity:.7}.sound-toggle:focus-visible{outline:3px solid var(--focus,#ffd54a);outline-offset:2px}:root{--bg:#f4efe4;--ink:#2a2622;--muted:#7a7166;--accent:#3949ab;--accent-ink:#fff;--cell-bg:#fffdf8;--line:#cfc5b3;--given:#2a2622;--typed:#1e4fd6;--conflict:#d32f2f;--select:#ffe38a;--hint:#b9f6ca;--btn:#fff;--btn-ink:#2a2622;--dialog:#fffdf8;--dialog-ink:#2a2622;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1d1b19;--ink:#efe9df;--muted:#a79e92;--cell-bg:#2a2724;--line:#4a443d;--given:#efe9df;--typed:#8fb3ff;--select:#6b5a1c;--hint:#1f5e3b;--btn:#2d2a27;--btn-ink:#efe9df;--dialog:#2a2724;--dialog-ink:#efe9df;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#1d1b19;--ink:#efe9df;--muted:#a79e92;--cell-bg:#2a2724;--line:#4a443d;--given:#efe9df;--typed:#8fb3ff;--select:#6b5a1c;--hint:#1f5e3b;--btn:#2d2a27;--btn-ink:#efe9df;--dialog:#2a2724;--dialog-ink:#efe9df;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--ambient), var(--shade), var(--grain,none), var(--bg);color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font:14px/1.3 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}#app.pz{flex-direction:column;align-items:center;gap:6px;height:100dvh;padding:8px 10px;display:flex}.pz-bar{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.group{gap:3px;display:flex}.btn{font:inherit;color:var(--btn-ink);background:var(--btn);cursor:pointer;min-height:34px;box-shadow:var(--raised);border:0;border-radius:9px;padding:7px 12px}.btn:disabled{opacity:.45;cursor:default}.btn[aria-pressed=true],.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn:focus-visible,.cell:focus-visible{outline-offset:1px;outline:3px solid #ffb300}.sound-toggle{width:34px;height:34px}.pz-info{font-variant-numeric:tabular-nums;color:var(--muted)}.pz-status{text-align:center;min-height:1.35em;margin:0;font-weight:600}#app.won .pz-status{color:#2e7d32}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) #app.won .pz-status{color:#7bd88f}}:root[data-theme=dark] #app.won .pz-status{color:#7bd88f}#app.pz-nonogram .overlay{pointer-events:none;background:0 0;place-items:end center}#app.pz-nonogram .overlay .dialog{pointer-events:auto}#app.busy .pz-grid{opacity:.5;pointer-events:none;transition:opacity .2s}.pz-stage{flex:1;place-items:center;width:100%;min-height:0;display:grid}.pz-grid{--cell:36px;background:var(--line);box-shadow:var(--tray), 0 10px 30px #0000001f;border-radius:10px;gap:1px;padding:3px;display:grid;position:relative}.cell{background:var(--cell-bg);color:var(--typed);font:700 calc(var(--cell) * .5) / 1 system-ui, sans-serif;cursor:pointer;border:0;place-items:center;margin:0;padding:0;transition:background-color .12s;display:grid;position:relative}.cell.given{color:var(--given);cursor:default;font-weight:800}.cell.selected{background:var(--select)}.cell.conflict{color:var(--conflict);box-shadow:inset 0 0 0 2px var(--conflict)}.cell.flash{background:var(--hint);animation:.9s ease-out pz-flash}@keyframes pz-flash{0%{transform:scale(1.18)}}.pz-pad{flex-wrap:wrap;justify-content:center;gap:5px;max-width:440px;padding-bottom:4px;display:flex}.pz-pad .digit{min-width:38px;font-size:17px;font-weight:700}.pz-pad .digit.wide{min-width:72px;font-size:14px}.pz-nonogram .pz-grid{background:var(--cell-bg);border:2px solid var(--ink);gap:0;padding:0}.pz-nonogram .cell{--edge:inset -1px 0 0 var(--line), inset 0 -1px 0 var(--line);box-shadow:var(--edge);touch-action:none}.pz-nonogram .cell.edge-r{--edge:inset -2px 0 0 var(--ink), inset 0 -1px 0 var(--line)}.pz-nonogram .cell.edge-b{--edge:inset -1px 0 0 var(--line), inset 0 -2px 0 var(--ink)}.pz-nonogram .cell.edge-r.edge-b{--edge:inset -2px 0 0 var(--ink), inset 0 -2px 0 var(--ink)}.pz-nonogram .cell.filled{box-shadow:var(--edge), inset 0 1px 0 #ffffff40, inset 0 -2px 0 #00000040;background:linear-gradient(145deg,#4a5bc4,#26318f)}.pz-nonogram .cell.filled.conflict{background:linear-gradient(145deg,#e25555,#a31515)}.pz-nonogram .cell.crossed:after{content:"✕";color:var(--muted);font-size:calc(var(--cell) * .55)}.pz-nonogram .cell.reveal{background:var(--pic);box-shadow:none!important}.pz-nonogram .cell.reveal:after{content:none}.pz-nonogram .corner{background:var(--bg)}.pz-nonogram .clue{background:var(--bg);color:var(--ink);font-weight:700;font-size:max(10px, calc(var(--cell) * .42));gap:clamp(1px, calc(var(--cell) * .18), 8px);padding:2px 4px;line-height:1;display:flex}.pz-nonogram .clue.col{box-shadow:inset -1px 0 0 var(--line);flex-direction:column;justify-content:flex-end;align-items:center}.pz-nonogram .clue.row{box-shadow:inset 0 -1px 0 var(--line);justify-content:flex-end;align-items:center}.pz-nonogram .clue.done{color:color-mix(in srgb, var(--ink) 35%, transparent)}.pz-kakuro .block{background:linear-gradient(145deg,#3a3631,#25221f);position:relative}.pz-kakuro .block.clue{background:linear-gradient(to top right,#2e2a26 calc(50% - 1px),#8c8274 50%,#2e2a26 calc(50% + 1px))}.pz-kakuro .block span{color:#fff;font:700 calc(var(--cell) * .3) / 1 system-ui, sans-serif;position:absolute}.pz-kakuro .block .across{top:8%;right:10%}.pz-kakuro .block .down{bottom:8%;left:10%}.pz-hidato .pz-grid{gap:3px;padding:5px}.pz-hidato .cell{box-shadow:var(--raised);background-image:var(--sheen);font-size:calc(var(--cell) * .4);border-radius:50%}.pz-hidato .cell.given{background-color:#fff3d6}.pz-hidato .hole{background:0 0}.pz-path{pointer-events:none;width:calc(100% - 10px);height:calc(100% - 10px);position:absolute;inset:5px}.pz-path polyline{fill:none;stroke:#ff8f00;stroke-width:1.3px;stroke-linejoin:round;stroke-linecap:round;opacity:.75;stroke-dasharray:1;stroke-dashoffset:1px;animation:2.4s ease-in-out forwards pz-draw}@keyframes pz-draw{to{stroke-dashoffset:0}}.overlay{z-index:20;background:#00000059;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.overlay[hidden]{display:none}.overlay.later{animation:1.4s step-end both pz-later}@keyframes pz-later{0%{visibility:hidden}}.dialog{background:var(--dialog);color:var(--dialog-ink);text-align:center;border-radius:14px;flex-direction:column;gap:10px;max-width:340px;padding:20px 24px;display:flex;box-shadow:0 10px 40px #00000059}.dialog h2{margin:0;font-size:22px}.dialog p{margin:0}.pz-picture{font-weight:700}@media (max-height:480px) and (orientation:landscape){#app.pz{gap:3px;padding:4px 8px}.btn{min-height:28px;padding:4px 9px}#app.pz{grid-template:"bar bar""status info""stage pad"minmax(0,1fr)/minmax(0,1fr) auto;display:grid}.pz-bar{grid-area:bar}.pz-info{grid-area:info}.pz-status{grid-area:status}.pz-stage{grid-area:stage;height:100%}.pz-pad{flex-direction:row;grid-area:pad;align-content:center;max-width:170px}.pz-pad .digit{min-width:44px}}@media (prefers-reduced-motion:reduce){.cell.flash,.overlay.later,.pz-path polyline{stroke-dashoffset:0;animation:none}}.pz-binary .cell{font-weight:800;font-size:calc(var(--cell) * .5)}.pz-binary .cell.b0{color:#fff;box-shadow:var(--raised);background:linear-gradient(160deg,#ff8a65,#e8553a)}.pz-binary .cell.b1{color:#fff;box-shadow:var(--raised);background:linear-gradient(160deg,#5c8de0,#2d5bb5)}.pz-binary .cell.given.b0,.pz-binary .cell.given.b1{box-shadow:var(--raised), inset 0 0 0 3px #00000047}.pz-binary .cell.conflict{outline-offset:-3px;outline:3px solid #ffd54a;animation:.3s art-shake}.pz-binary .digit.b0{color:#fff;background:linear-gradient(160deg,#ff8a65,#e8553a)}.pz-binary .digit.b1{color:#fff;background:linear-gradient(160deg,#5c8de0,#2d5bb5)}.pz-futoshiki .cell,.pz-calcudoku .cell{font-size:calc(var(--cell) * .5);position:relative;overflow:visible}.cell .val{z-index:1;position:relative}.cell.bt{border-top:2px solid var(--ink)}.cell.br{border-right:2px solid var(--ink)}.cell.bb{border-bottom:2px solid var(--ink)}.cell.bl{border-left:2px solid var(--ink)}.mark{z-index:3;pointer-events:none;color:var(--ink);font-weight:800;line-height:1;position:absolute}.mark.at-tl{font-size:calc(var(--cell) * .22);top:4%;left:4%}.mark.at-r{font-size:calc(var(--cell) * .34);background:var(--paper,#fffdf6);border-radius:4px;padding:0 1px;top:50%;right:0;translate:50% -50%}.mark.at-b{font-size:calc(var(--cell) * .34);background:var(--paper,#fffdf6);border-radius:4px;padding:0 1px;bottom:0;left:50%;translate:-50% 50%}.pz-futoshiki .pz-grid{gap:calc(var(--cell) * .12)}.cell.star .val{color:#f2b705;font-size:1.25em}.cell.dot .val{color:var(--muted,#888)}.digit.star{color:#b8860b}.pz-lightup .pz-grid{background:#6b6257}.pz-lightup .block{color:#fff;font:800 calc(var(--cell) * .5) / 1 system-ui, sans-serif;background:linear-gradient(145deg,#3a3631,#221f1c);border-radius:2px;place-items:center;display:grid}.pz-lightup .cell[data-flags~=lit]{background:#ffe9a3}.pz-lightup .cell.selected{background:var(--select)}.pz-lightup .cell.bulb .val{color:#000;font-size:1.1em}.pz-lightup .cell.bulb[data-flags~=lit]{background:radial-gradient(circle,#fff3b0 30%,#ffd666 100%)}.pz-lightup .cell.conflict{box-shadow:inset 0 0 0 3px var(--conflict);background:#ffc4c4}.pz-lightup .cell.dot .val{color:var(--muted)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pz-lightup .cell[data-flags~=lit]{background:#6b5a1c}:root:not([data-theme=light]) .pz-lightup .cell.bulb[data-flags~=lit]{background:radial-gradient(circle,#a88a2a 30%,#6b5a1c 100%)}:root:not([data-theme=light]) .pz-lightup .cell.conflict{background:#6b2a2a}:root:not([data-theme=light]) .pz-lightup .pz-grid{background:#141210}}:root[data-theme=dark] .pz-lightup .cell[data-flags~=lit]{background:#6b5a1c}:root[data-theme=dark] .pz-lightup .cell.bulb[data-flags~=lit]{background:radial-gradient(circle,#a88a2a 30%,#6b5a1c 100%)}:root[data-theme=dark] .pz-lightup .cell.conflict{background:#6b2a2a}:root[data-theme=dark] .pz-lightup .pz-grid{background:#141210}@media (max-height:300px){.pz-status{display:none}#app.won .pz-status{display:block}}.pz-killer .cell{font-size:calc(var(--cell) * .5)}.pz-killer .cell.bt{border-top:2px dashed var(--muted)}.pz-killer .cell.br{border-right:2px dashed var(--muted)}.pz-killer .cell.bb{border-bottom:2px dashed var(--muted)}.pz-killer .cell.bl{border-left:2px dashed var(--muted)}.pz-killer .cell.xt{border-top:3px solid var(--ink)}.pz-killer .cell.xr{border-right:3px solid var(--ink)}.pz-killer .cell.xb{border-bottom:3px solid var(--ink)}.pz-killer .cell.xl{border-left:3px solid var(--ink)}.pz-killer .mark.at-tl{font-size:calc(var(--cell) * .26);color:#1e4fd6}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pz-killer .mark.at-tl{color:#8fb3ff}}:root[data-theme=dark] .pz-killer .mark.at-tl{color:#8fb3ff}.pz-nurikabe .cell.sea{color:#fff;box-shadow:var(--raised);background:linear-gradient(160deg,#35507a,#1f3252)}.pz-nurikabe .cell.sea.conflict{background:linear-gradient(160deg,#c84b4b,#8a2a2a)}.pz-nurikabe .cell.given{font-size:calc(var(--cell) * .5);background:#fff8e6}.pz-nurikabe .cell.given.conflict{color:var(--conflict)}.pz-nurikabe .cell.dot{color:var(--muted)}.pz-nurikabe .digit.sea{color:#fff;background:linear-gradient(160deg,#35507a,#1f3252)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pz-nurikabe .cell.given{background:#3a3426}}:root[data-theme=dark] .pz-nurikabe .cell.given{background:#3a3426}.mark.at-c{font-size:calc(var(--cell) * .42);color:var(--ink);top:50%;left:50%;translate:-50% -50%}.pz-fence .pz-grid{background:var(--cell-bg);gap:0;padding:4px}.pz-fence .cell{box-shadow:inset -1px 0 0 var(--line), inset 0 -1px 0 var(--line)}.pz-fence .cell.inside{background:#d8efc9}.pz-fence .cell.outside:after{content:"·";color:var(--muted);font-size:calc(var(--cell) * .5);line-height:1;position:absolute;bottom:0;right:8%}.pz-fence .cell[data-flags~=ft]{border-top:3px solid #2a5a1c}.pz-fence .cell[data-flags~=fb]{border-bottom:3px solid #2a5a1c}.pz-fence .cell[data-flags~=fl]{border-left:3px solid #2a5a1c}.pz-fence .cell[data-flags~=fr]{border-right:3px solid #2a5a1c}.pz-fence .cell.conflict{box-shadow:inset 0 0 0 2px var(--conflict)}.pz-fence .cell.conflict .mark{color:var(--conflict)}.pz-fence .digit.inside{color:#1e3f14;background:#d8efc9}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pz-fence .cell.inside{background:#2f4a26}:root:not([data-theme=light]) .pz-fence .cell[data-flags~=ft],:root:not([data-theme=light]) .pz-fence .cell[data-flags~=fb],:root:not([data-theme=light]) .pz-fence .cell[data-flags~=fl],:root:not([data-theme=light]) .pz-fence .cell[data-flags~=fr]{border-color:#9fd68a}:root:not([data-theme=light]) .pz-fence .digit.inside{color:#d8efc9;background:#2f4a26}}:root[data-theme=dark] .pz-fence .cell.inside{background:#2f4a26}:root[data-theme=dark] .pz-fence .cell[data-flags~=ft],:root[data-theme=dark] .pz-fence .cell[data-flags~=fb],:root[data-theme=dark] .pz-fence .cell[data-flags~=fl],:root[data-theme=dark] .pz-fence .cell[data-flags~=fr]{border-color:#9fd68a}:root[data-theme=dark] .pz-fence .digit.inside{color:#d8efc9;background:#2f4a26}.pz-hashi .pz-grid{background:var(--cell-bg);--bridge:#4a3b2a;gap:0;padding:4px}.pz-hashi .cell{box-shadow:none;background:var(--cell-bg)}.pz-hashi .cell.given{box-shadow:var(--raised);font-size:calc(var(--cell) * .46);background:#fff3d6;border-radius:50%;margin:6%}.pz-hashi .cell.given.conflict{box-shadow:var(--raised), inset 0 0 0 3px var(--conflict)}.pz-hashi .cell[data-flags~=h1]{background:linear-gradient(to bottom, transparent calc(50% - 2px), var(--bridge) calc(50% - 2px), var(--bridge) calc(50% + 2px), transparent calc(50% + 2px))}.pz-hashi .cell[data-flags~=h2]{background:linear-gradient(to bottom, transparent calc(50% - 7px), var(--bridge) calc(50% - 7px), var(--bridge) calc(50% - 3px), transparent calc(50% - 3px), transparent calc(50% + 3px), var(--bridge) calc(50% + 3px), var(--bridge) calc(50% + 7px), transparent calc(50% + 7px))}.pz-hashi .cell[data-flags~=v1]{background:linear-gradient(to right, transparent calc(50% - 2px), var(--bridge) calc(50% - 2px), var(--bridge) calc(50% + 2px), transparent calc(50% + 2px))}.pz-hashi .cell[data-flags~=v2]{background:linear-gradient(to right, transparent calc(50% - 7px), var(--bridge) calc(50% - 7px), var(--bridge) calc(50% - 3px), transparent calc(50% - 3px), transparent calc(50% + 3px), var(--bridge) calc(50% + 3px), var(--bridge) calc(50% + 7px), transparent calc(50% + 7px))}.pz-hashi .cell.conflict:not(.given){outline:2px solid var(--conflict);outline-offset:-2px}.pz-hashi .cell.selected:not(.given){box-shadow:inset 0 0 0 2px var(--select)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pz-hashi .pz-grid{--bridge:#d9c3a0}:root:not([data-theme=light]) .pz-hashi .cell.given{background:#3a3426}}:root[data-theme=dark] .pz-hashi .pz-grid{--bridge:#d9c3a0}:root[data-theme=dark] .pz-hashi .cell.given{background:#3a3426}
