:root{--bg:#e6eae2;--surface:#f3f5f0;--ink:#1e2a2c;--ink-soft:#5a6765;--faint:#1e2a2c29;--edge:#1e2a2c;--danger:#b33e28;--hint:#2c6e8f;--shadow:0 1px 0 #1e2a2c14;--r0:#c6d6b1;--r1:#e7cd94;--r2:#b5cbe0;--r3:#e6b6ac;--r4:#cbbde2;--r5:#a3d1c6;--r6:#f0c49b;--r7:#c9c9bf;--r8:#d7e39b;--r9:#e8b5cf;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root{--bg:#151a1b;--surface:#1f2629;--ink:#e3e8e1;--ink-soft:#98a4a1;--faint:#e3e8e11f;--edge:#090c0d;--danger:#f0785f;--hint:#7cc3e6;--shadow:none;--r0:#4a5c3d;--r1:#6b5a2d;--r2:#3a4e64;--r3:#6b4440;--r4:#4e4468;--r5:#2d5a51;--r6:#71502f;--r7:#4a4a44;--r8:#56612b;--r9:#6a3f57;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:inherit}body{background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;margin:0;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic,system-ui,sans-serif;font-size:15px;line-height:1.6}.app{max-width:540px;margin:0 auto;padding:18px 16px 32px}header{flex-direction:column;align-items:center;gap:10px;margin-bottom:14px;display:flex}.title{letter-spacing:.01em;place-items:center;width:100%;height:124px;margin:0;font-size:30px;font-weight:700;display:grid}.logo{max-width:min(280px,100%);max-height:100%;display:block}.title [hidden]{display:none}.sizes{background:var(--faint);border-radius:9px;gap:2px;padding:3px;display:flex}.sizes button{appearance:none;color:var(--ink-soft);font:inherit;cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:7px;min-width:34px;height:30px;font-size:13px;font-weight:500}.sizes button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow);font-weight:700}.status{font-variant-numeric:tabular-nums;color:var(--ink-soft);justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:14px;display:flex}.status strong{color:var(--ink);font-size:17px;font-weight:700}.board-wrap{position:relative}.board{aspect-ratio:1;border:3px solid var(--edge);touch-action:none;-webkit-user-select:none;user-select:none;background:var(--edge);border-radius:8px;width:100%;display:grid;overflow:hidden}.board .row{display:contents}.cell{appearance:none;font:inherit;color:inherit;cursor:pointer;background:var(--cell-bg);border:0;min-width:0;min-height:0;margin:0;padding:0;display:block;position:relative}.cell:focus-visible{outline:3px solid var(--hint);outline-offset:-5px;z-index:2}.cell svg{pointer-events:none;width:100%;height:100%;display:block}.cell .x,.cell .dot,.cell .pin{opacity:0}.cell .x path{stroke:var(--ink);stroke-width:6px;stroke-linecap:round;opacity:.55}.cell .dot,.cell .pin circle:first-child{fill:var(--ink)}.cell .pin .hole{fill:var(--cell-bg)}.cell.s1 .x{opacity:1}.cell.auto .dot{opacity:.32}.cell.s2 .pin{opacity:1}.cell.s2.hinted .pin circle:first-child{fill:var(--hint)}.cell.s2.conflict .pin circle:first-child{fill:var(--danger)}.cell.s2.conflict:after{content:"";background:var(--danger);opacity:.18;pointer-events:none;position:absolute;inset:0}.cell .pin{transform-origin:50px 50px}.cell.pop .pin{animation:.18s ease-out pop}@keyframes pop{0%{transform:scale(.55)}to{transform:scale(1)}}.board.solved .cell .x,.board.solved .cell .dot{opacity:0!important}.board.solved .cell.s2 .pin{animation:settle var(--settle-duration) ease-out both;animation-delay:calc(var(--row) * var(--settle-step))}@keyframes settle{0%{transform:scale(1)}40%{transform:scale(1.22)}to{transform:scale(1)}}.cell .ipin,.cell .ix{opacity:0;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:contain;position:absolute;inset:10%}.board.has-pin-img .cell .pin{display:none}.board.has-pin-img .cell .ipin{background-image:var(--img-pin)}.board.has-pin-img .cell.s2 .ipin{opacity:1}.board.has-pinwrong-img .cell.s2.conflict .pin,.board.has-pinwrong-img .cell.s2.conflict:after{display:none}.board.has-pinwrong-img .cell.s2.conflict .ipin{opacity:1;background-image:var(--img-pin-wrong)}.board.has-pin-img .cell.s2.hinted:before{content:"";border:2px dashed var(--hint);pointer-events:none;border-radius:50%;position:absolute;inset:7%}.board.has-x-img .cell .x{display:none}.board.has-x-img .cell .ix{background-image:var(--img-x)}.board.has-x-img .cell.s1 .ix{opacity:1}.board.solved .cell .ix{opacity:0!important}.cell.pop .ipin{animation:.18s ease-out pop}.board.solved .cell.s2 .ipin{animation:settle var(--settle-duration) ease-out both;animation-delay:calc(var(--row) * var(--settle-step))}.bg-layer{z-index:-1;pointer-events:none;background-position:50%;background-size:cover;position:fixed;inset:0}.bg-layer:after{content:"";background:var(--bg);opacity:0;position:absolute;inset:0}.has-bg .bg-layer:after{opacity:.35}.loading{background:var(--bg);color:var(--ink-soft);border-radius:8px;place-items:center;font-size:14px;display:grid;position:absolute;inset:0}.loading[hidden]{display:none}.clear{background:var(--surface);width:min(320px,100% - 32px);color:var(--ink);text-align:center;border-radius:14px;padding:16px 18px 18px;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000038}.clear[hidden]{display:none}.clear h2{margin:0 0 2px;font-size:20px}.clear-img{object-fit:contain;max-width:100%;max-height:150px;margin:0 auto 8px;display:block}.clear-img[hidden]{display:none}.clear p{color:var(--ink-soft);font-variant-numeric:tabular-nums;margin:0 0 14px}.tools{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px;display:grid}.tools .btn{white-space:nowrap;padding:0 2px}@media (width<=360px){.tools .btn{font-size:12px}}.btn{appearance:none;font:inherit;color:var(--ink);background:var(--surface);cursor:pointer;height:44px;box-shadow:var(--shadow);border:0;border-radius:10px;font-size:14px;font-weight:500}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:var(--ink);color:var(--bg);padding:0 22px;font-weight:700}.btn:focus-visible,.sizes button:focus-visible,.toggle input:focus-visible+span,summary:focus-visible{outline:3px solid var(--hint);outline-offset:2px}.toggle{background:var(--surface);box-shadow:var(--shadow);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;margin-top:14px;padding:10px 14px;display:flex}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle span{background:var(--faint);border-radius:12px;flex:none;width:42px;height:24px;transition:background .15s;position:relative}.toggle span:after{content:"";background:var(--surface);border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.toggle input:checked+span{background:var(--ink)}.toggle input:checked+span:after{background:var(--bg);transform:translate(18px)}details{background:var(--surface);box-shadow:var(--shadow);border-radius:10px;margin-top:14px;padding:10px 14px}summary{cursor:pointer;font-weight:500}details ul{color:var(--ink-soft);margin:8px 0 4px;padding-left:1.2em}details li{margin:3px 0}.panel .toggle{box-shadow:none;background:0 0;margin-top:8px;padding:4px 0}.slider{grid-template-columns:56px 1fr;align-items:center;gap:10px;margin-top:6px;font-size:14px;display:grid}.slider input{width:100%;accent-color:var(--ink)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.cell.pop .pin,.board.solved .cell.s2 .pin,.cell.pop .ipin,.board.solved .cell.s2 .ipin{animation:none}.toggle span,.toggle span:after{transition:none}}
