/* PSA V15 // tactile U.S. state puzzle */
.state-puzzle-shell{max-width:1120px;margin:14px auto 55px;border:1px solid #49332d;border-radius:18px;background:#080707;overflow:hidden}.state-puzzle-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:22px 24px;border-bottom:1px solid #3f302b;background:linear-gradient(130deg,#0b0a09,#1b0d0c)}.state-puzzle-head h1{margin:5px 0;font-size:clamp(30px,5vw,58px)}.state-puzzle-head p{max-width:680px;margin:0;color:#b6aba5}.puzzle-progress{min-width:170px}.puzzle-progress strong{display:block;text-align:right;font:900 15px var(--mono);color:#fff}.puzzle-progress .bar{height:7px;margin-top:9px;border-radius:99px;background:#241b18;overflow:hidden}.puzzle-progress .bar i{display:block;height:100%;background:linear-gradient(90deg,#d64b3f,#31da94);transition:width .25s}
.state-piece-tray{text-align:center;padding:18px 18px 15px;background:radial-gradient(circle at 50% 0,#21120f,#090807 68%)}.state-piece-tray>span{font:900 9px var(--mono);letter-spacing:2.2px;color:#a78372}.state-piece-card{width:min(410px,90vw);min-height:128px;margin:9px auto 10px;padding:12px 18px;border:2px solid #d5543d;border-radius:16px;background:#100d0c;box-shadow:0 0 34px #d54b3424;display:grid;grid-template-columns:140px 1fr;align-items:center;gap:14px;cursor:grab;touch-action:none;user-select:none}.state-piece-card:active,.state-piece-card.dragging{cursor:grabbing;border-color:#36da9b;box-shadow:0 0 34px #31d99535}.state-piece-card img{width:138px;height:92px;object-fit:contain;filter:drop-shadow(0 7px 8px #0009)}.state-piece-card strong{font:900 clamp(22px,5vw,38px)/1.05 var(--display);color:#fff;text-align:left}.state-piece-tray p{max-width:720px;margin:0 auto 10px;color:#d2c8c1}.state-piece-tray .speech-controls{justify-content:center}
.state-puzzle-quiz{padding:12px 18px 26px}.state-puzzle-board{position:relative;width:min(100%,960px);aspect-ratio:1072/867;margin:0 auto;border:3px solid #50443e;border-radius:18px;background:#f7f4ef;overflow:hidden;box-shadow:0 20px 55px #0009;touch-action:none}.state-puzzle-base{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.state-puzzle-placed{position:absolute;inset:0;pointer-events:none}.state-piece-locked{position:absolute;object-fit:fill;filter:drop-shadow(0 0 4px #20d38c80);animation:puzzleLock .42s cubic-bezier(.2,.8,.2,1) both}.puzzle-answer-proxy{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}.state-puzzle-ghost{position:fixed;z-index:999999;pointer-events:none;width:170px;height:120px;display:grid;place-items:center;transform:translate(-50%,-50%) rotate(-3deg);filter:drop-shadow(0 18px 18px #000a)}.state-puzzle-ghost img{max-width:100%;max-height:100%;object-fit:contain}.state-puzzle-flash{position:absolute;z-index:8;transform:translate(-50%,-50%) scale(.4);width:68px;height:68px;border-radius:50%;display:grid;place-items:center;opacity:0;color:#fff;font:900 40px/1 var(--mono);pointer-events:none}.state-puzzle-flash.good{opacity:1;transform:translate(-50%,-50%) scale(1);background:#16b978;box-shadow:0 0 0 9px #20da9130,0 0 35px #1fe39b70;animation:puzzlePop .65s ease both}.state-puzzle-flash.bad{opacity:1;transform:translate(-50%,-50%) scale(1);background:#d43c39;box-shadow:0 0 0 9px #e34b4530;animation:puzzleShake .42s ease both}.puzzle-status{min-height:70px;max-width:960px;margin:10px auto 0;padding:12px 15px;border:1px solid #3e332e;border-radius:10px;background:#0e0c0b;display:flex;align-items:center;justify-content:center;gap:10px;text-align:center}.puzzle-status strong{font:900 12px var(--mono);letter-spacing:1.4px;color:#f3e8df}.puzzle-status span{font-size:13px;color:#a89d96}.puzzle-status.good{border-color:#2cae79;background:#0c1b14}.puzzle-status.good strong{color:#67efaf}.puzzle-status.bad{border-color:#b33935;background:#21100f}.puzzle-status.bad strong{color:#ff7a73}.state-puzzle-quiz .map-feedback{display:none!important}.state-puzzle-shell.complete .state-piece-tray{display:none}.state-puzzle-shell.complete .puzzle-status{border-color:#31d993;background:#0b2017}.state-puzzle-shell.complete .puzzle-status strong{font-size:18px;color:#6af0b4}
@keyframes puzzleLock{0%{opacity:.2;transform:scale(1.24)}100%{opacity:1;transform:scale(1)}}@keyframes puzzlePop{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}55%{opacity:1;transform:translate(-50%,-50%) scale(1.18)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes puzzleShake{0%,100%{transform:translate(-50%,-50%)}30%{transform:translate(calc(-50% - 8px),-50%)}70%{transform:translate(calc(-50% + 8px),-50%)}}
@media(max-width:700px){.puzzle-map-page{padding-inline:6px}.state-puzzle-shell{margin-top:8px;border-radius:12px}.state-puzzle-head{padding:16px 14px;align-items:stretch;flex-direction:column;gap:10px}.state-puzzle-head h1{font-size:34px}.puzzle-progress{min-width:0}.puzzle-progress strong{text-align:left}.state-piece-tray{padding:12px 8px}.state-piece-card{grid-template-columns:105px 1fr;min-height:104px;padding:8px 11px}.state-piece-card img{width:104px;height:78px}.state-piece-card strong{font-size:26px}.state-puzzle-quiz{padding:8px 4px 18px}.state-puzzle-board{width:100%;border-width:2px;border-radius:10px}.state-puzzle-ghost{width:132px;height:96px}.puzzle-status{min-height:76px;margin:8px 4px 0;flex-direction:column;gap:4px;padding:9px}.puzzle-status strong{font-size:11px}.puzzle-status span{font-size:12px}}
