.jg-wrap{display:grid;gap:6px}.jg-caption{text-align:center;color:var(--muted);font-size:.9rem;min-height:1.3em}.jg-area{position:relative;width:100%;overflow:hidden;border-radius:var(--radius-sm);background:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--cell-line) 70%,transparent) 1px,transparent 1.5px) 0 0 / 18px 18px,var(--surface-2)}.jg-frame{position:absolute;z-index:1;border-radius:4px;background:var(--cell);box-shadow:inset 0 0 0 2px var(--cell-line),0 0 0 4px color-mix(in srgb,var(--cell-strong) 35%,transparent)}.jg-ghost{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .4s;border-radius:4px;pointer-events:none}.jg-frame.jg-preview .jg-ghost{opacity:.28;filter:grayscale(.3)}.jg-done .jg-frame{z-index:100000;box-shadow:0 0 0 4px var(--good),0 8px 30px #00000040}.jg-done .jg-frame .jg-ghost{opacity:1;filter:none;transition:opacity .8s .2s}.jg-piece{position:absolute;left:0;top:0;pointer-events:none;will-change:transform;filter:drop-shadow(0 1px 1.5px rgb(0 0 0 / .35))}.jg-piece.jg-drag{filter:drop-shadow(0 6px 8px rgb(0 0 0 / .35))}.jg-piece.jg-placed{filter:none}.jg-piece.jg-hidden{visibility:hidden}@keyframes jg-flash{40%{filter:brightness(1.35) drop-shadow(0 0 4px rgb(255 255 255 / .9))}}.jg-piece.jg-flash{animation:jg-flash .45s ease-out}.reduce-motion .jg-piece.jg-flash{animation:none}
