/* V0.317 — board-first jigsaw workspace */
.jigsaw-page{max-width:1240px}.jigsaw-body .gameheader.jp-hero{padding-bottom:12px}.jp-hero h1{margin-bottom:4px}.jp-hero h1 small{display:block;margin-top:4px}.jp-hero p{max-width:760px;margin-bottom:0}.jp-hero .scorebox{min-width:210px}.jp-modebar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 10px}.jp-modebar a{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:8px 12px;font-weight:780;text-decoration:none;color:var(--ink)}.jp-modebar a.active{background:var(--ink);color:var(--bg)}.jp-size-picker{margin:0 0 10px;display:flex;gap:6px;overflow-x:auto;flex-wrap:nowrap;padding:2px 1px 5px;scrollbar-width:thin}.jp-size-picker button{flex:0 0 auto!important;padding:7px 10px!important;min-height:38px;border-radius:11px!important}.jp-play{padding:12px;overflow:hidden}.jp-corebar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:0 0 9px}.jp-corebar .btn{padding:8px 10px;min-height:38px}.jp-corebar .jp-spacer{flex:1}.jp-live{display:flex;align-items:center;gap:9px;min-width:max-content;padding:6px 9px;border:1px solid var(--line);border-radius:11px;background:var(--soft)}.jp-live div{display:flex;gap:4px;align-items:baseline}.jp-live small{color:var(--muted)}.jp-live strong{font-variant-numeric:tabular-nums}.jp-integrity{font-size:.78rem;font-weight:800;border:1px solid var(--line);border-radius:999px;padding:4px 8px;background:var(--card)}.jp-integrity.assisted{border-color:#b97a16;background:#fff8e8}.jp-stage-wrap{position:relative;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:16px;background:linear-gradient(150deg,var(--soft),var(--card));height:min(68vh,720px);min-height:470px;scrollbar-width:thin}.jp-stage{position:relative;touch-action:none;user-select:none;transform-origin:0 0}.jp-board{position:absolute;border:2px solid var(--ink);border-radius:12px;background:linear-gradient(135deg,var(--soft),var(--card));box-shadow:0 8px 30px rgba(0,0,0,.08),inset 0 0 0 1px var(--line);overflow:hidden}.jp-board::before{content:"ASSEMBLE HERE";position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(.72rem,2vw,1rem);letter-spacing:.14em;font-weight:850;color:var(--muted);opacity:.32}.jp-board.jp-guide-on::after{content:"";position:absolute;inset:0;background-image:var(--jp-guide-image);background-size:100% 100%;background-repeat:no-repeat;opacity:.18}.jp-tray-label{position:absolute;font-size:.78rem;color:var(--muted);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.jp-preview{position:absolute;z-index:110;border-radius:11px;opacity:0;pointer-events:none;transition:opacity .14s;box-shadow:0 16px 42px rgba(0,0,0,.28)}.jp-preview.show{opacity:1}.jp-slot{position:absolute;z-index:1;border:1px dashed rgba(80,90,105,.1);pointer-events:none}.jp-piece{position:absolute;z-index:12;border:0;background:transparent;padding:0;cursor:grab;touch-action:none;filter:drop-shadow(0 3px 3px rgba(0,0,0,.22));transition:filter .12s}.jp-piece canvas{display:block;position:absolute;pointer-events:none}.jp-piece.selected{filter:drop-shadow(0 0 0.42rem rgba(72,103,255,.48)) drop-shadow(0 4px 4px rgba(0,0,0,.22))}.jp-piece.dragging{cursor:grabbing;filter:drop-shadow(0 8px 8px rgba(0,0,0,.28))}.jp-piece.joined:not(.solved){filter:drop-shadow(0 4px 4px rgba(0,0,0,.22))}.jp-piece.solved{cursor:default;filter:none}.jp-hint{position:absolute;z-index:120;border:4px solid #e9a91e;border-radius:10px;box-shadow:0 0 0 4px rgba(233,169,30,.2);animation:jpPulse .55s ease-in-out infinite alternate;pointer-events:none}@keyframes jpPulse{to{transform:scale(1.06)}}.jp-statusrow{display:flex;gap:9px;align-items:center;margin-top:8px}.jp-status{margin:0;flex:1;min-height:42px;padding:9px 11px;border-radius:11px;background:var(--soft);line-height:1.4}.jp-quick-more{margin-top:8px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.jp-quick-more>summary{cursor:pointer;padding:9px 11px;font-weight:800}.jp-quick-grid{display:flex;gap:7px;flex-wrap:wrap;padding:0 10px 10px}.jp-quick-grid .btn{padding:8px 10px}.jp-pause-overlay{position:absolute;z-index:160;inset:0;display:none;place-items:center;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(10px)}.jp-pause-overlay.show{display:grid}.jp-pause-card{padding:22px;text-align:center;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:0 18px 50px rgba(0,0,0,.15)}.jp-pause-card h2{margin:0 0 6px}.jp-mini-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.jp-mini-metrics>div{padding:9px;border:1px solid var(--line);border-radius:11px;background:var(--soft)}.jp-mini-metrics small{display:block;color:var(--muted)}.jp-advanced{margin-top:16px;border:1px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden}.jp-advanced>summary{cursor:pointer;padding:14px 16px;font-weight:850}.jp-advanced-body{padding:0 14px 14px}.jp-advanced .card{box-shadow:none}.jp-advanced-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.jp-advanced-grid .card{margin-top:0!important}.jp-guide{margin-top:14px}.jp-guide>div{background:var(--soft)}.jp-note{font-size:.9rem}.jp-hidden-metric{display:none!important}.jp-filtered{display:none!important}.jp-stage-wrap.jp-fullscreen-shell{height:100vh;border:0;border-radius:0}.jp-fullscreen-shell .jp-stage{margin:0 auto}.jp-fullscreen-shell~.jp-statusrow{padding:0 8px}.jp-contrast .jp-piece{filter:drop-shadow(0 0 .16rem #000) drop-shadow(0 0 .18rem #fff)}.jp-reduced .jp-piece,.jp-reduced .jp-preview,.jp-reduced .jp-hint{transition:none!important;animation:none!important}
@media(max-width:900px){.jp-advanced-grid{grid-template-columns:1fr}.jp-live{order:-1}.jp-corebar .jp-spacer{display:none}.jp-corebar{gap:6px}.jp-corebar .btn{flex:1 0 auto}.jp-stage-wrap{height:min(64vh,650px)}}
@media(max-width:760px){.jigsaw-body .mobile-dock{display:none!important}.jigsaw-page{padding-bottom:42px}.jp-hero .scorebox{display:none}.jp-hero p{font-size:.92rem}.jp-play{padding:8px}.jp-stage-wrap{height:56vh;min-height:430px;border-radius:13px}.jp-live{width:100%;justify-content:space-between}.jp-corebar .btn{font-size:.86rem;padding:7px 8px}.jp-statusrow{align-items:stretch}.jp-status{font-size:.88rem}.jp-mini-metrics{grid-template-columns:repeat(2,1fr)}.jp-modebar{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.jp-modebar a{flex:0 0 auto}.jp-advanced-body{padding:0 9px 9px}.jp-guide{grid-template-columns:1fr}}
@media(max-width:420px){.jp-stage-wrap{height:54vh;min-height:405px}.jp-corebar{display:grid;grid-template-columns:repeat(4,1fr)}.jp-corebar .jp-live{grid-column:1/-1}.jp-corebar .btn{min-width:0;padding:7px 4px;font-size:.78rem}.jp-corebar .jp-wide{grid-column:span 2}.jp-statusrow{display:block}.jp-integrity{display:inline-block;margin-top:6px}.jp-size-picker button{font-size:.82rem}.jp-quick-grid .btn{flex:1 1 42%}}
/* First-screen compaction: the puzzle table wins the viewport. */
.jigsaw-body>.preview-note{display:none}.jigsaw-page{padding-top:14px}.jp-hero{margin-bottom:7px!important;align-items:center!important}.jp-hero .eyebrow{padding:5px 8px;font-size:11px}.jp-hero h1{font-size:clamp(34px,4.4vw,44px);margin:4px 0}.jp-hero h1 small{font-size:.38em;letter-spacing:-.02em;display:inline;color:var(--muted);font-weight:700}.jp-hero p{display:none}.jp-modebar{margin:3px 0 5px}.jp-size-picker{margin:0 0 6px}.jp-play{padding-top:8px}.jp-corebar{padding-bottom:6px}
@media(max-width:760px){.jigsaw-body .nav{min-height:50px}.jigsaw-body .brand{font-size:17px}.jigsaw-body .brand small{display:none}.jigsaw-page{padding-top:8px}.jp-hero{margin-bottom:3px!important}.jp-hero .eyebrow{display:none}.jp-hero h1{font-size:32px;margin:0;line-height:1.02}.jp-hero h1 small{display:none}.jp-modebar{margin:4px 0}.jp-modebar a{padding:7px 10px;font-size:.82rem}.jp-size-picker{margin-bottom:4px}.jp-size-picker button{min-height:34px!important;padding:5px 9px!important}.jp-play{padding-top:6px}.jp-corebar{padding-bottom:5px}.jp-stage-wrap{min-height:405px}}
@media(max-width:420px){.jigsaw-page{padding-top:6px}.jp-corebar{gap:4px}.jp-corebar .jp-live{padding:5px 7px}.jp-stage-wrap{height:55vh;min-height:400px}}

/* V0.317 final competitor-visible refinements: capture/release, sound/theme, 300/500 cuts. */
.jp-piece.captured:not(.solved){filter:drop-shadow(0 0 .48rem rgba(64,122,255,.68)) drop-shadow(0 4px 4px rgba(0,0,0,.24))}
.jp-stage-wrap[data-jp-theme="slate"]{background:linear-gradient(150deg,#303845,#1d2430);--jp-table-board:#424d5b;--jp-table-line:#8995a5}.jp-stage-wrap[data-jp-theme="slate"] .jp-board{background:linear-gradient(135deg,#4b5665,#353e4c);border-color:#d8dee7}.jp-stage-wrap[data-jp-theme="slate"] .jp-tray-label{color:#d6dde7}
.jp-stage-wrap[data-jp-theme="wood"]{background:linear-gradient(135deg,#b9824f,#7b4f2f 48%,#5f3c26);--jp-table-board:#c99c6b;--jp-table-line:#6b4329}.jp-stage-wrap[data-jp-theme="wood"] .jp-board{background:linear-gradient(135deg,#d7b285,#b9804c);border-color:#4e311f}.jp-stage-wrap[data-jp-theme="wood"] .jp-tray-label{color:#fff2df;text-shadow:0 1px 2px #3e281b}
.jp-stage-wrap[data-jp-theme="night"]{background:radial-gradient(circle at 30% 20%,#26324b,#111722 68%);--jp-table-board:#202a3c;--jp-table-line:#71809a}.jp-stage-wrap[data-jp-theme="night"] .jp-board{background:linear-gradient(135deg,#26334a,#151d2b);border-color:#d5dbea}.jp-stage-wrap[data-jp-theme="night"] .jp-tray-label{color:#e9eef8}
.jp-stage-wrap[data-jp-theme="slate"] .jp-slot,.jp-stage-wrap[data-jp-theme="wood"] .jp-slot,.jp-stage-wrap[data-jp-theme="night"] .jp-slot{border-color:rgba(255,255,255,.13)}
@media(max-width:760px){.jp-size-picker button[data-jp-size="grand"],.jp-size-picker button[data-jp-size="ultra"],.jp-size-picker button[data-jp-size="max"]{font-weight:850}}
