.photo-puzzle-board { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:repeat(3,minmax(0,1fr)); gap:4px; width:min(100%,300px); margin:18px auto; }
.photo-piece { position:relative; min-width:48px; min-height:48px; padding:0; border:2px solid #7d6246; border-radius:3px; background-size:300% 300%; }
.photo-piece[aria-pressed="true"] { outline:4px solid #17838b; outline-offset:-4px; }
.photo-piece:focus-visible { outline:4px solid #17838b; outline-offset:2px; z-index:1; }
.photo-puzzle-board.is-complete { gap:0; }
.is-complete .photo-piece { border:0; border-radius:0; opacity:1; }
.photo-remix { min-height:48px; margin:8px auto; background:#265e65; border:0; border-radius:24px; color:#fff1d0; padding:10px 20px; font-weight:bold; }
.photo-puzzle-status:empty {display:none}
#surprise:has(.photo-puzzle) :is(#surprise-title,#day-label) {position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%)}
.photo-puzzle-reward { border-top:2px dashed #a47a54; padding:12px 0; }
.chancla-gag { position:sticky; bottom:8px; display:flex; align-items:center; gap:12px; margin:16px 0; padding:12px; z-index:2; border:1px solid #bfa47c; border-radius:8px; background:#fff0d2; color:#513b2c; pointer-events:none; }
.chancla-gag img { display:block; width:42px; height:66px; flex:none; animation:chancla-flight .5s ease-out both; }
.chancla-gag p { margin:0; font:15px/1.6 'Trebuchet MS',sans-serif; text-align:left; }
@keyframes chancla-flight { from { transform:translateX(-45px) rotate(-35deg); opacity:0; } to { transform:none; opacity:1; } }
.forbidden-stamp) { position:relative; }
.forbidden-stamp { position:absolute; left:28%; top:61%; width:16%; height:22%; min-width:48px; min-height:48px; background:none; border:0; }
.forbidden-stamp:focus-visible { outline:3px dashed #83552e; }
@media(prefers-reduced-motion:reduce) { .chancla-gag img { animation:none; } }
