.puzzle-page{--game-primary: var(--theme-puzzle);--game-primary-dark: var(--theme-puzzle-dark);--game-primary-soft: var(--theme-puzzle-soft);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:radial-gradient(circle at 14% 0%,rgba(240,138,93,.24),transparent 28%),radial-gradient(circle at 88% 10%,rgba(20,184,179,.18),transparent 24%),linear-gradient(180deg,#fff8ee,#fff0e8)}.game-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#ffffffd1;border-bottom:1px solid rgba(107,53,31,.1);backdrop-filter:blur(16px)}.back-btn{display:grid;place-items:center;min-width:36px;min-height:36px;color:var(--color-text-light);font-size:1.2rem}.progress-text,.timer-text{font-size:.88rem;font-weight:900}.timer-text{color:var(--game-primary-dark);font-family:var(--font-mono)}.progress-bar{height:3px;background:#6b351f1a}.progress-fill{width:0;height:100%;border-radius:0 2px 2px 0;background:linear-gradient(90deg,var(--game-primary),var(--color-primary));transition:width .3s ease}.game-content{flex:1;width:min(100%,920px);margin:0 auto;padding:18px 16px 34px}.level-card,.play-panel{border:1px solid rgba(255,255,255,.72);background:#ffffffe0;box-shadow:0 14px 34px #1f2e2d1a;backdrop-filter:blur(16px)}.level-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:20px;margin-bottom:12px}.mode-kicker{color:var(--game-primary-dark);font-size:.78rem;font-weight:900;letter-spacing:.08em}.level-card h1{margin:4px 0 0;font-family:var(--font-display);color:var(--game-primary-dark);font-size:clamp(1.8rem,7vw,3rem);font-weight:400;line-height:1}.level-stat{display:grid;place-items:center;min-width:70px;min-height:70px;border-radius:18px;color:var(--game-primary-dark);background:var(--game-primary-soft)}.level-stat span{font-size:.74rem;font-weight:800}.level-stat strong{font-family:var(--font-mono);font-size:1.35rem}.play-panel{border-radius:28px;padding:14px}.reference-card{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:10px;border-radius:18px;background:linear-gradient(135deg,#fff0e8d1,#e8faf8b8)}.reference-card img{width:72px;height:72px;border-radius:14px;object-fit:cover;box-shadow:var(--shadow-sm)}.reference-card span{display:block;color:var(--color-text-light);font-size:.78rem;font-weight:800}.reference-card strong{display:block;color:var(--game-primary-dark);font-size:1rem;line-height:1.35}.stage-shell{display:grid;place-items:center}.slide-board{--grid-size: 3;width:min(100%,560px);aspect-ratio:1 / 1;display:grid;grid-template-columns:repeat(var(--grid-size),1fr);gap:6px;padding:8px;border-radius:24px;background:#6b351f1f}.slide-tile{position:relative;border:0;border-radius:14px;background-image:var(--cover);background-size:calc(var(--grid-size) * 100%) calc(var(--grid-size) * 100%);background-repeat:no-repeat;box-shadow:0 10px 18px #1f2e2d1f;cursor:pointer}.slide-tile:after{content:attr(data-number);position:absolute;right:7px;bottom:6px;display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;color:var(--game-primary-dark);background:#ffffffc2;font-size:.72rem;font-weight:900}.slide-tile.is-empty{background:#ffffff6b;box-shadow:inset 0 0 0 2px #ffffffa8;cursor:default}.slide-tile.is-empty:after{display:none}.jigsaw-workspace{--board-size: min(100%, 560px);position:relative;width:var(--board-size)}.jigsaw-workspace[hidden],.slide-board[hidden],.level-complete[hidden]{display:none}.jigsaw-board{position:relative;width:100%;aspect-ratio:1 / 1;border-radius:24px;overflow:hidden;background:#ffffffc7;box-shadow:inset 0 0 0 3px #6b351f2e}.piece-tray{display:none}.jigsaw-piece{position:absolute;z-index:2;overflow:visible;cursor:grab;touch-action:none;-webkit-user-drag:none;user-select:none;filter:drop-shadow(0 10px 15px rgba(31,46,45,.18));transform:rotate(var(--piece-rotate, 0deg));transition:left .22s ease,top .22s ease,width .22s ease,height .22s ease,transform .22s ease,filter .22s ease}body.is-dragging-piece,body.is-dragging-piece *{user-select:none;-webkit-user-select:none;-webkit-user-drag:none;cursor:grabbing!important}.jigsaw-piece.is-dragging{z-index:12;cursor:grabbing;filter:drop-shadow(0 18px 24px rgba(31,46,45,.24));transform:rotate(var(--piece-rotate, 0deg)) scale(1.03);transition:none}.jigsaw-piece.is-placed{z-index:1;cursor:default;filter:drop-shadow(0 5px 8px rgba(31,46,45,.1));transform:rotate(0);animation:snap-pop .24s ease}@keyframes snap-pop{0%{transform:rotate(0) scale(1.05)}to{transform:rotate(0) scale(1)}}.level-complete{position:fixed;inset:0;z-index:34;display:flex;align-items:center;justify-content:center;padding:20px;background:#213b3a47;backdrop-filter:blur(8px)}.level-complete-card{width:min(100%,360px);padding:22px 20px;border-radius:24px;color:var(--game-primary-dark);background:#fffffff0;box-shadow:var(--shadow-lg);text-align:center;font-weight:800;line-height:1.7}.complete-cover{width:92px;height:92px;margin:0 auto 12px;border-radius:18px;object-fit:cover;box-shadow:var(--shadow-sm)}#completeText strong,#completeText span{display:block}#completeText strong{color:var(--game-primary-dark);font-size:1.05rem}#completeText span{margin-top:4px;color:var(--color-text-light);font-size:.92rem}.level-complete-card button,.result-card button,.review-card button{width:100%;min-height:46px;margin-top:10px;border:0;border-radius:999px;color:#fff;background:var(--game-primary-dark);font:inherit;font-weight:900;cursor:pointer}.result-card .review-btn{color:var(--game-primary-dark);background:var(--game-primary-soft)}.result-overlay,.review-overlay{position:fixed;inset:0;z-index:40;display:none;align-items:center;justify-content:center;padding:20px;background:#213b3a5c;backdrop-filter:blur(10px)}.review-overlay{z-index:44}.result-overlay.is-visible,.review-overlay.is-visible{display:flex}.result-card,.review-card{width:min(100%,420px);max-height:min(720px,calc(100vh - 40px));overflow:auto;border-radius:28px;padding:28px 24px;text-align:center;background:#fffffff0;box-shadow:var(--shadow-lg)}.result-kicker{color:var(--game-primary-dark);font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.result-card h2{margin-top:8px;font-family:var(--font-display);color:var(--game-primary-dark);font-size:2.7rem;font-weight:400;line-height:1}.review-card h2{font-family:var(--font-display);color:var(--game-primary-dark);font-size:2.4rem;font-weight:400;line-height:1}.result-card p:not(.result-kicker){margin-top:12px;color:var(--color-text-light);line-height:1.7}.review-list{display:grid;gap:10px;margin-top:16px}.review-item{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center;padding:10px;border-radius:18px;text-align:left;background:var(--game-primary-soft)}.review-item img{width:64px;height:64px;border-radius:14px;object-fit:cover}.review-item strong{display:block;color:var(--game-primary-dark);line-height:1.35}.review-item span{display:block;margin-top:3px;color:var(--color-text-light);font-size:.82rem;font-weight:800}.result-links{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px}.result-links a{color:var(--game-primary-dark);font-size:.88rem;font-weight:800;text-decoration:underline;text-underline-offset:4px}@media(min-width:760px){.game-content{padding-top:24px}.play-panel{padding:20px}.reference-card{width:min(100%,560px);margin-left:auto;margin-right:auto}}
