.jigsaw{--jg-board-size:min(100%, 540px);--jg-soft:#edf3ef;--jg-selected:#dbe9e0;padding:clamp(30px,5vw,62px) 0 clamp(68px,9vw,108px)}.jigsaw [hidden]{display:none!important}.jg-game{width:min(100% - 28px,720px);margin-inline:auto}.jg-header{text-align:center;gap:4px;margin-bottom:24px;display:grid}.jg-eyebrow,.jg-title,.jg-start p,.jg-status,.jg-tray-label,.jg-info h2,.jg-info p,.jg-dialog h2,.jg-dialog p{margin:0}.jg-eyebrow{color:var(--accent);letter-spacing:.18em;font-size:.7rem;font-weight:800}.jg-title{color:var(--text);letter-spacing:-.025em;font-size:clamp(1.7rem,5vw,2.3rem);font-weight:800;line-height:1.2}.jg-start{width:var(--jg-board-size);text-align:center;align-content:center;justify-items:center;gap:24px;min-height:min(62vh,500px);margin-inline:auto;display:grid}.jg-start__label{color:var(--text);font-size:clamp(1rem,3vw,1.16rem);font-weight:750}.jg-start__hints{max-width:440px;color:var(--muted);gap:6px;font-size:.8rem;line-height:1.7;display:grid}.jg-difficulty-list{flex-wrap:wrap;justify-content:center;gap:9px;display:flex}.jg-difficulty-list button{border:1px solid var(--line);background:var(--surface);min-width:112px;min-height:58px;color:var(--text);font:inherit;letter-spacing:.08em;cursor:pointer;border-radius:14px;align-content:center;gap:2px;padding:9px 18px;font-size:.8rem;font-weight:800;transition:transform .12s ease-out,border-color .14s ease-out,background-color .14s ease-out;display:grid}.jg-difficulty-list button small{color:var(--muted);letter-spacing:.03em;font-size:.67rem;font-weight:650}.jg-difficulty-list button:hover{border-color:var(--accent);background:var(--accent-soft)}.jg-difficulty-list button:active{transform:scale(.98)}.jg-play{width:100%}.jg-status{width:var(--jg-board-size);color:var(--muted);letter-spacing:.06em;justify-content:space-between;align-items:center;margin:0 auto 10px;font-size:.78rem;font-weight:750;display:flex}.jg-status__meta{align-items:center;gap:7px;display:flex}.jg-status time{font-variant-numeric:tabular-nums}.jg-actions{width:var(--jg-board-size);flex-wrap:wrap;justify-content:center;gap:6px;margin:0 auto 13px;display:flex}.jg-actions button{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;padding:0 13px;font-size:.75rem;font-weight:750;transition:background-color .14s ease-out,border-color .14s ease-out,color .14s ease-out}.jg-actions button:hover,.jg-actions button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.jg-board-wrap{width:var(--jg-board-size);margin-inline:auto}.jg-board{aspect-ratio:1;background:var(--surface);isolation:isolate;border:1px solid #bdc9c0;border-radius:9px;width:100%;position:relative;box-shadow:0 14px 36px #171a1712}.jg-slots{z-index:1;grid-template-columns:repeat(var(--jg-grid), 1fr);grid-template-rows:repeat(var(--jg-grid), 1fr);border-radius:8px;display:grid;position:absolute;inset:0;overflow:hidden}.jg-slot{cursor:default;-webkit-tap-highlight-color:transparent;background:0 0;border:0;min-width:0;min-height:0;padding:0;position:relative}.jg-slot:focus-visible{z-index:2;outline:2px solid var(--accent);outline-offset:-4px;background:#246b420a}.jg-placed{z-index:3;pointer-events:none;position:absolute;inset:0}.jg-preview{z-index:6;background:var(--surface);pointer-events:none;border-radius:8px;position:absolute;inset:0;overflow:hidden}.jg-preview img{object-fit:cover;width:100%;height:100%;display:block}.jg-tray-section{width:min(100%,680px);margin:24px auto 0}.jg-tray-label{color:var(--muted);letter-spacing:.08em;text-align:center;margin-bottom:10px;font-size:.75rem;font-weight:750}.jg-tray{border:1px solid var(--line);background:#eef2ec;border-radius:16px;flex-wrap:wrap;place-content:flex-start center;align-items:center;gap:4px;min-height:150px;padding:clamp(14px,3vw,22px);display:flex}.jg-piece{cursor:grab;filter:drop-shadow(0 3px 3px #171a1721);touch-action:none;-webkit-tap-highlight-color:transparent;background-color:#0000;background-repeat:no-repeat;border:0;flex:none;padding:0;transition:filter .14s ease-out,opacity .14s ease-out,transform .12s ease-out;position:relative;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.jg-piece:hover{filter:drop-shadow(0 5px 5px #171a172e)}.jg-piece:focus-visible,.jg-piece.is-selected{filter:drop-shadow(0 0 1px var(--accent)) drop-shadow(0 0 6px #246b4280);outline:none;transform:translateY(-2px)}.jg-piece:active,.jg-piece.is-dragging{cursor:grabbing}.jg-piece.is-dragging{opacity:.24}.jg-piece.is-on-board,.jg-piece.is-placed{margin:0;position:absolute}.jg-piece.is-on-board{z-index:4;pointer-events:auto}.jg-piece.is-placed{z-index:2;cursor:default;pointer-events:none;filter:none;transform:none}.jg-piece.is-snap{animation:.18s ease-out jg-snap}.jg-piece.is-drag-ghost{z-index:9999;pointer-events:none;filter:drop-shadow(0 9px 9px #171a1738);opacity:.96;margin:0;transform:scale(1.03);position:fixed!important}.jg-board.is-complete{animation:.52s ease-out jg-complete-board}.jg-info{border-top:1px solid var(--line);width:min(100% - 36px,660px);margin:clamp(46px,9vw,92px) auto 0;padding:28px 0 0}.jg-info h2{color:var(--text);margin-bottom:12px;font-size:1rem;font-weight:800}.jg-info p{color:var(--muted);font-size:.86rem;line-height:1.9}.jg-info p+p{margin-top:7px}.jg-dialog{border:1px solid var(--line);background:var(--surface);width:min(92vw,480px);color:var(--text);border-radius:20px;padding:0;box-shadow:0 24px 70px #171a172e}.jg-dialog::backdrop{backdrop-filter:blur(2px);background:#171a1752}.jg-dialog__inner{text-align:center;padding:32px 28px;position:relative}.jg-dialog__inner h2{margin-bottom:22px;font-size:1.08rem}.jg-dialog__close{width:38px;height:38px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;font-size:1.25rem;display:grid;position:absolute;top:12px;right:12px}.jg-dialog__close:hover{background:var(--accent-soft);color:var(--accent)}.jg-difficulty-list--dialog{grid-template-columns:repeat(3,1fr);display:grid}.jg-difficulty-list--dialog button{min-width:0}.jg-dialog--complete{width:min(92vw,430px)}.jg-complete{justify-items:center;gap:7px;padding:30px;display:grid}.jg-complete__eyebrow{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;font-size:.74rem;font-weight:800}.jg-complete__image{aspect-ratio:1;object-fit:cover;border-radius:12px;width:min(100%,290px);margin:7px 0 9px;display:block;box-shadow:0 10px 28px #171a171a}.jg-complete__time-label{color:var(--muted);letter-spacing:.06em;font-size:.72rem;font-weight:750}.jg-complete__time{color:var(--text);font-variant-numeric:tabular-nums;font-size:1.65rem;font-weight:800}.jg-complete__next{border:1px solid var(--accent);background:var(--accent);color:#fff;min-width:170px;min-height:46px;font:inherit;letter-spacing:.1em;cursor:pointer;border-radius:999px;margin-top:14px;padding:0 22px;font-size:.78rem;font-weight:800}.jg-complete__next:hover{filter:brightness(.94)}.jg-actions button:focus-visible,.jg-difficulty-list button:focus-visible,.jg-dialog__close:focus-visible,.jg-complete__next:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@keyframes jg-snap{0%{transform:scale(1.035)}to{transform:scale(1)}}@keyframes jg-complete-board{0%{filter:saturate(.82)}55%{filter:saturate(1.08)brightness(1.02)}to{filter:none}}@media (width<=560px){.jigsaw{padding-top:26px}.jg-game{width:min(100% - 20px,720px)}.jg-header{margin-bottom:18px}.jg-start{min-height:56vh}.jg-difficulty-list:not(.jg-difficulty-list--dialog){width:min(100%,390px)}.jg-difficulty-list:not(.jg-difficulty-list--dialog) button{flex:30%;min-width:0;padding-inline:8px}.jg-actions button{flex:auto;padding-inline:9px;font-size:.7rem}.jg-tray{border-radius:13px;min-height:130px;padding:12px}.jg-dialog__inner{padding:30px 20px 24px}.jg-difficulty-list--dialog{grid-template-columns:1fr}.jg-difficulty-list--dialog button{width:100%;min-height:52px}.jg-info{width:min(100% - 28px,660px)}}@media (prefers-reduced-motion:reduce){.jg-piece,.jg-actions button,.jg-difficulty-list button{transition:none}.jg-piece.is-snap,.jg-board.is-complete{animation:none}}
