#jigsaw-app{margin:12px 0 0}.jg-screen-title{margin:.4em 0 .6em}.jg-gallery{grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:18px;margin:16px 0 0;padding:0;list-style:none;display:grid}.jg-card img,.jg-choose-img,.jg-finished-img,.jg-preview-btn img{border:11px solid var(--wood);border-color:var(--wood-light) var(--wood) var(--wood-dark) var(--wood);box-shadow:inset 0 0 0 2px var(--brass), inset 0 0 0 3px #0000004d, inset 0 3px 5px 3px #3c280f38, 0 0 0 1px var(--wood-dark), var(--shadow-md);object-fit:cover;background-color:#fbf6ea;border-radius:3px;padding:9px}.jg-card{border:2px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg, var(--surface), var(--surface-2));width:100%;height:100%;box-shadow:var(--shadow-sm);color:var(--text);font:inherit;text-align:left;cursor:pointer;flex-direction:column;padding:12px 12px 14px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.jg-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md), 0 0 0 2px var(--primary);transform:translateY(-3px)}.jg-card:active{transform:none}.jg-card:focus-visible{outline:4px solid var(--focus);outline-offset:3px}.jg-card img{aspect-ratio:4/3;width:100%;height:auto;display:block}.jg-card-title{font-family:var(--font-display);padding:12px 4px 0;font-size:1.35rem;font-weight:700;line-height:1.25;display:block}.jg-card-meta{color:var(--muted);padding:2px 4px 0;font-size:1.05rem;display:block}.jg-daily .jg-card-daily{border:2px solid var(--brass-dark);background:linear-gradient(180deg, var(--highlight-soft), var(--surface) 75%);box-shadow:inset 0 0 0 3px var(--surface), inset 0 0 0 5px var(--brass), var(--shadow-md);flex-direction:row;align-items:center;gap:8px}.jg-card-daily img{border-color:var(--brass-light) var(--brass) var(--brass-dark) var(--brass);width:min(45%,320px);box-shadow:inset 0 0 0 2px var(--brass-dark), inset 0 3px 5px 3px #3c280f38, 0 0 0 1px var(--brass-dark), var(--shadow-md);flex:none}.jg-daily-text{padding:6px 6px 6px 10px}.jg-daily-label{border:1px solid var(--brass-dark);background:linear-gradient(180deg, #f4d98d, var(--brass));color:#231a05;border-radius:999px;margin-left:2px;padding:2px 14px;font-size:1rem;font-weight:800;display:inline-block;box-shadow:inset 0 1px #ffffff8c}.jg-daily-label:before{content:"★ "}.reduce-motion .jg-card{transition:none}@media (width<=520px){.jg-daily .jg-card-daily{flex-direction:column;align-items:stretch}.jg-card-daily img{width:100%}}.jg-continue{border:2px solid var(--primary);border-radius:var(--radius);background:var(--primary-soft);box-shadow:var(--shadow-sm);border-left-width:10px;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 16px;padding:12px 16px;display:flex}.jg-continue p{margin:0}.jg-tag{border:1px solid var(--brass-dark);background:linear-gradient(180deg, #f4d98d, var(--brass));color:#231a05;font-family:var(--font);vertical-align:middle;border-radius:999px;padding:0 12px;font-size:1rem;line-height:1.7;display:inline-block}.jg-choose{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}@media (width>=860px){.jg-choose{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}}.jg-choose-img{border-width:14px;width:100%;height:auto;padding:12px;display:block}.jg-choose-side p{margin-top:0}.jg-choose-q{margin-top:.6em}.jg-counts{gap:12px;margin-bottom:18px;display:grid}.jg-count{border:2px solid var(--primary);border-radius:var(--radius);background:linear-gradient(180deg, #fff, var(--surface-2));min-height:72px;box-shadow:0 3px 0 var(--border-strong), 0 6px 10px #3c280f1a;color:var(--text);font:inherit;text-align:left;cursor:pointer;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:16px;padding:10px 18px 12px 14px;transition:transform 80ms,box-shadow 80ms;display:grid}.jg-count:hover{background:var(--primary-soft)}.jg-count:active{box-shadow:0 1px 0 var(--border-strong);transform:translateY(2px)}.jg-count.is-suggested{background:linear-gradient(180deg, var(--highlight-soft), var(--surface));box-shadow:0 0 0 3px var(--highlight), 0 3px 0 3px var(--brass-dark), 0 8px 12px #3c280f24;border-width:3px}.jg-count.is-suggested:active{box-shadow:0 0 0 3px var(--highlight), 0 1px 0 3px var(--brass-dark)}.jg-count-icon{border:2px solid var(--primary-deep);background-color:#fbf6ea;background-image:linear-gradient(to right, var(--primary-deep) 1.5px, transparent 1.5px), linear-gradient(to bottom, var(--primary-deep) 1.5px, transparent 1.5px);background-size:calc(100% / var(--c,4)) calc(100% / var(--r,3));width:64px;height:48px;box-shadow:var(--shadow-sm);background-position:-1px -1px;border-radius:5px;grid-row:1/span 2}.jg-count-n,.jg-count-help{grid-column:2}@media (width<=520px){.jg-count{column-gap:12px;padding-left:12px;padding-right:12px}.jg-count-icon{width:52px;height:40px}}.jg-count-n{font-family:var(--font-display);font-size:var(--text-lg);color:var(--primary);font-weight:700;line-height:1.25}.jg-count-help{color:var(--muted);font-size:1.05rem}.jg-play{gap:10px;min-width:0;display:grid}.jg-topbar{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;display:flex}.jg-play-title{font-size:var(--text-lg);margin:0}.jg-status .turn{font-size:1.35rem}.jg-meter{border:2px solid var(--wood-dark);background:var(--bg-deep);height:14px;box-shadow:inset 0 2px 3px #3c280f59, 0 0 0 1px var(--brass-light);border-radius:999px;margin:6px 0 4px;overflow:hidden}.jg-meter span{background:repeating-linear-gradient(115deg, #ffffff29 0 6px, transparent 6px 12px), linear-gradient(180deg, var(--felt-light), var(--success));border-radius:999px;min-width:0;height:100%;transition:width .4s;display:block}.jg-progress-text{font-variant-numeric:tabular-nums lining-nums}.jg-message{min-height:1.6em;color:var(--muted)}.jg-toolbar .jg-toggle[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}.jg-toolbar .jg-toggle[aria-pressed=true]:before{content:"✓ "}.jg-toolbar .btn[disabled]{opacity:.45;cursor:default}.jg-hint p{margin:0 0 8px}.jg-hint-buttons{flex-wrap:wrap;gap:8px;display:flex}.jg-preview{flex-wrap:wrap;align-items:flex-end;gap:4px 12px;display:flex}.jg-preview-btn{cursor:zoom-in;background:0 0;border:0;border-radius:3px;width:min(260px,60%);padding:0;line-height:0}.jg-preview.is-big .jg-preview-btn{cursor:zoom-out;width:min(100%,900px)}.jg-preview-btn img{border-width:4px;width:100%;height:auto;padding:2px;display:block}@media (width>=768px){.jg-preview-btn{width:min(284px,60%)}.jg-preview-btn img{border-width:7px;padding:5px}.jg-preview.is-big .jg-preview-btn img{border-width:11px;padding:9px}}.jg-preview-note{color:var(--muted);margin:0;font-size:1.05rem}.jg-table-host{width:100%;min-width:0}.jg-table-wrap{justify-content:center;display:flex}.jg-table{--jg-mat:#3a4d47;--jg-mat-light:#4b635b;--jg-mat-dark:#27352f;border:5px solid var(--felt-edge);background:var(--tex-noise), radial-gradient(ellipse 90% 80% at 50% 38%, var(--jg-mat-light) 0%, var(--jg-mat) 60%, var(--jg-mat-dark) 100%);background-color:var(--jg-mat);box-shadow:var(--shadow-md), inset 0 0 0 2px #00000059, inset 0 0 50px #00000047;box-sizing:content-box;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:14px;position:relative;overflow:hidden}.jg-board{box-shadow:0 0 0 3px #f6f1e4, 0 0 0 5px var(--brass-dark), 0 3px 10px 5px #00000059, inset 0 0 0 2px #00000040, inset 0 3px 8px #3c280f40;background:#e9e1cd;transition:box-shadow .6s;position:absolute}.jg-table.is-done .jg-board{box-shadow:0 0 0 3px #fffaf0, 0 0 0 7px var(--brass), 0 0 0 9px var(--brass-dark), 0 0 26px 10px #ffdc8273}.jg-ghost{opacity:0;filter:grayscale(.3);background-size:100% 100%;position:absolute;inset:0}.jg-board.show-ghost .jg-ghost{opacity:.22}.jg-target{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.jg-target-path{fill:#ffc8004d;stroke:#ffc800;stroke-width:calc(var(--edge-w,2) * 3px);stroke-dasharray:calc(var(--edge-w,2) * 10px) calc(var(--edge-w,2) * 7px);vector-effect:none}.jg-piece{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.jg-piece svg{pointer-events:none;width:100%;height:100%;display:block;overflow:visible}.jg-piece .jg-shadow{fill:#0000006b;transform:translate(calc(var(--edge-w,2) * 1.3px), calc(var(--edge-w,2) * 2.4px))}.jg-piece .jg-bevel{fill:none;stroke-width:calc(var(--edge-w,2) * 3.2px);stroke-linejoin:round}.jg-piece .jg-bevel-light{stroke:#fff6;transform:translate(calc(var(--edge-w,2) * 1.5px), calc(var(--edge-w,2) * 1.5px))}.jg-piece .jg-bevel-dark{stroke:#00000061;transform:translate(calc(var(--edge-w,2) * -1.5px), calc(var(--edge-w,2) * -1.5px))}.jg-piece .jg-edge,.jg-piece .jg-edge-dark{fill:#0000;stroke-linejoin:round}.jg-piece .jg-edge{stroke:#ffffff73;stroke-width:calc(var(--edge-w,2) * 1px);pointer-events:visiblePainted;cursor:grab;touch-action:none}.jg-piece .jg-edge-dark{stroke:#0000008c;stroke-width:calc(var(--edge-w,2) * 2.2px)}.jg-piece.is-dragging svg{filter:drop-shadow(4px 8px 6px #00000080)}.jg-piece.is-dragging .jg-shadow{display:none}.jg-piece.is-dragging .jg-edge{cursor:grabbing}.jg-piece.is-placed svg{filter:none}.jg-piece.is-placed .jg-shadow{display:none}.jg-piece.is-placed .jg-bevel-light{stroke:#ffffff29}.jg-piece.is-placed .jg-bevel-dark{stroke:#0000001f}.jg-table.is-done .jg-bevel{display:none}.jg-piece.is-placed .jg-edge{pointer-events:none;cursor:default;stroke:#ffffff26}.jg-piece.is-placed .jg-edge-dark{stroke:#0000002e;stroke-width:calc(var(--edge-w,2) * 1px)}.jg-table.is-done .jg-edge,.jg-table.is-done .jg-edge-dark{stroke:#0000}.jg-piece.is-hidden{display:none}.jg-piece.is-hint svg{filter:drop-shadow(0 0 4px #ffc800)drop-shadow(0 0 8px #ffc800)drop-shadow(0 0 3px #000)}.jg-piece.is-hint .jg-edge{stroke:#ffc800;stroke-width:calc(var(--edge-w,2) * 4px)}.jg-piece.is-hint{animation:1.2s ease-in-out infinite jg-glow}@keyframes jg-glow{50%{opacity:.75}}.jg-piece.is-selected .jg-edge{stroke:#ff9e00;stroke-width:calc(var(--edge-w,2) * 4px);stroke-dasharray:calc(var(--edge-w,2) * 8px) calc(var(--edge-w,2) * 4px)}.jg-piece.jg-snap svg{animation:.35s ease-out jg-snap}@keyframes jg-snap{0%{filter:brightness(1.3)drop-shadow(0 0 6px #fff3c9)}to{filter:none}}.reduce-motion .jg-piece.is-hint,.reduce-motion .jg-piece.jg-snap svg{animation:none}.reduce-motion .jg-meter span{transition:none}.jg-finished-img{border-width:12px;border-color:var(--brass-light) var(--brass) var(--brass-dark) var(--brass);width:auto;max-width:100%;height:auto;max-height:42vh;box-shadow:inset 0 0 0 2px var(--brass-dark), inset 0 3px 5px 3px #3c280f38, 0 0 0 1px var(--brass-dark), var(--shadow-md);margin:4px auto 0;padding:8px;animation:.7s ease-out backwards jg-hang;display:block}@keyframes jg-hang{0%{opacity:0;transform:scale(.96)}}.reduce-motion .jg-finished-img{animation:none}.jg-picture-list{gap:4px 0;display:grid}.jg-picture-list dt{margin-top:.8em;font-weight:800}.jg-picture-list dd{margin:0}@media (width<=767px){.jg-toolbar[data-region=toolbar]{flex-wrap:nowrap;gap:5px}.jg-toolbar[data-region=toolbar]>.btn,.jg-toolbar[data-region=toolbar] .more-menu>summary{flex:1 1 0;min-width:0;min-height:50px;padding:4px;font-size:.98rem;line-height:1.15}.jg-toolbar[data-region=toolbar] .more-menu{flex:1 1 0;display:flex}.jg-toolbar[data-region=toolbar] .more-menu>summary{width:100%}.jg-status{min-height:0;padding:4px 10px;font-size:1.05rem;line-height:1.35}}
