/* Patch Jigsaw — scoped under #jigsaw */
#jigsaw .jz-photos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:0 0 4px}
#jigsaw .jz-thumb{appearance:none;-webkit-appearance:none;display:flex;flex-direction:column;padding:0;margin:0;border:3px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);font:inherit;text-align:left;cursor:pointer;overflow:hidden;transition:transform .15s,border-color .15s,box-shadow .15s}
#jigsaw .jz-thumb:hover{transform:translateY(-2px);border-color:var(--primary)}
#jigsaw .jz-thumb:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
#jigsaw .jz-thumb img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#3a2a1f}
#jigsaw .jz-thumb span{font-size:.74rem;font-weight:800;line-height:1.2;padding:5px 7px 7px;min-height:2.6em}
#jigsaw .jz-thumb.on{border-color:var(--primary);box-shadow:0 0 0 3px rgba(240,127,28,.35)}
#jigsaw .tchip small{font-size:.72em;font-weight:700;opacity:.75;margin-left:2px}
#jigsaw .tchip[disabled]{opacity:.45;cursor:not-allowed}
#jigsaw .tchip[disabled]:hover{border-color:var(--line)}
#jigsaw .jz-actions{margin:6px 0 10px}
#jigsaw .jz-title{font-weight:800;color:var(--ink-2);margin:4px 0 8px;font-size:.98rem}
#jigsaw .jz-stage{position:relative}
#jigsaw canvas{display:block;width:100%;max-width:none;height:auto;margin:0;border-radius:14px;background:#34261c;cursor:grab;touch-action:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}
#jigsaw canvas.grabbing{cursor:grabbing}
#jigsaw canvas:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
#jigsaw.jz-done .jz-tip{display:none}
#jigsaw .jz-tip{font-size:.85rem;color:var(--muted);margin:8px 0 0}
#jigsaw .jz-win{margin-top:14px;padding:16px 18px;border-radius:16px;background:linear-gradient(135deg,#e96319,#b84d10);color:#fff;text-align:center;box-shadow:var(--shadow)}
#jigsaw .jz-win[hidden]{display:none}
#jigsaw .jz-win-t{display:block;font-family:'Lilita One',var(--display);font-weight:400;font-size:1.6rem;letter-spacing:.01em;margin-bottom:2px}
#jigsaw .jz-win .actions{justify-content:center;margin-top:12px}
@media (max-width:860px){#jigsaw .jz-photos{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:600px){
  #jigsaw .jz-photos{display:flex;overflow-x:auto;gap:8px;padding-bottom:6px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  #jigsaw .jz-thumb{flex:0 0 112px;scroll-snap-align:start}
  #jigsaw .jz-actions{gap:8px}
  #jigsaw .jz-actions .btn{padding:.65em .85em;font-size:.88rem}
}
