.stamp-daily{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 30px;padding:20px 22px;border:1px solid var(--border);border-radius:20px;background:linear-gradient(115deg,#1b2c21,var(--surface) 65%)}
.stamp-daily-copy{min-width:0;flex:1}.stamp-daily h2{margin:5px 0 4px;font-size:20px}.stamp-daily p{margin:0 0 11px;color:var(--muted);font-size:13px;line-height:1.45}.stamp-progress-track{height:8px;max-width:380px;overflow:hidden;border-radius:99px;background:var(--surface-soft)}.stamp-progress-track>div{height:100%;width:0;background:linear-gradient(90deg,#71d59b,#f2cb69);border-radius:inherit;transition:width .45s ease}.stamp-daily-progress{display:block;margin-top:6px;color:var(--muted);font-size:11px}.stamp-album-open{min-height:48px;white-space:nowrap}.stamp-album-open span{padding:3px 7px;border-radius:99px;background:#ffffff20;font-size:11px}
.stamp-album-modal{width:min(1050px,100%);max-height:92vh;padding:24px;overflow:auto}.stamp-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin:20px 0}.stamp-tile{position:relative;display:grid;place-items:center;min-width:0;aspect-ratio:1/1.08;padding:10px;border:0;background:transparent;color:var(--text);cursor:pointer;transition:transform .2s ease,filter .2s ease}.stamp-tile:hover{transform:translateY(-3px) rotate(-1deg)}.stamp-paper{position:relative;width:100%;height:100%;padding:7px;background:#e9dfc6;border:1px solid #c9b991;box-shadow:0 6px 16px #0004;overflow:hidden}.stamp-photo{width:100%;height:100%;object-fit:cover;filter:sepia(.18) saturate(.88) contrast(1.04);display:block}.stamp-perf{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 3px #e9dfc6,inset 0 0 0 4px #a7966d80}.stamp-tile.is-locked .stamp-paper{background:linear-gradient(145deg,#252e28,#151a16);border:1px solid #3b463d;box-shadow:0 6px 18px #0005}.stamp-lock-silhouette{height:100%;display:grid;place-items:center;color:#667167;background:repeating-linear-gradient(135deg,#202821 0 9px,#1b221d 9px 18px);font-size:clamp(28px,4vw,48px);text-shadow:0 3px 8px #0008}.stamp-lock-silhouette:after{content:"";position:absolute;inset:8px;border:2px dashed #707b6f55}.stamp-tile:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:12px}.stamp-album-progress{font-size:13px}.stamp-credits{border-top:1px solid var(--border);padding-top:12px;color:var(--muted);font-size:12px}.stamp-credits summary{cursor:pointer;color:var(--text)}.stamp-credits-list{display:grid;gap:8px;margin-top:12px}.stamp-credit{line-height:1.5}.stamp-credit a{color:var(--green)}
.stamp-detail-modal{width:min(520px,100%);text-align:center}.stamp-detail-image{max-height:55vh;width:100%;object-fit:contain;padding:12px;background:#e9dfc6;border:2px dashed #b7a67c;box-shadow:0 10px 25px #0004;filter:sepia(.18) saturate(.88) contrast(1.04)}.stamp-detail-caption{margin:16px 0 6px;font-size:21px}.stamp-detail-place{color:var(--muted);margin:0}.stamp-detail-credit{margin-top:16px;text-align:left}.stamp-detail-credit a{color:var(--green)}.stamp-locked-message{padding:30px 18px;text-align:center;border-radius:16px;background:var(--surface-soft);color:var(--muted)}.stamp-locked-message strong{display:block;color:var(--text);font-size:28px;margin-bottom:10px}
.stamp-reward-modal{position:relative;width:min(410px,100%);overflow:hidden;text-align:center;padding:34px 28px 27px;animation:stamp-pop .5s cubic-bezier(.18,.89,.32,1.28)}.stamp-reward-modal h2{margin:7px 0 16px;font-size:27px}.stamp-reward-close{position:absolute;right:13px;top:13px}.stamp-reward-sparkles{position:absolute;top:32px;left:0;right:0;color:#f2cb69;font-size:25px;animation:stamp-sparkle .9s ease-out both;pointer-events:none}.stamp-reward-image{width:min(245px,90%);aspect-ratio:1/1.08;margin:8px auto 14px;padding:10px;background:#e9dfc6;border:1px solid #c9b991;box-shadow:0 10px 25px #0005;animation:stamp-fall .8s cubic-bezier(.2,.9,.25,1.15) both}.stamp-reward-image img{width:100%;height:100%;object-fit:cover;display:block;filter:sepia(.18) saturate(.88) contrast(1.04)}.stamp-reward-modal p{color:var(--muted);margin:0 0 18px}.stamp-reward-backdrop.open{background:#07100bdc;backdrop-filter:blur(8px)}
@keyframes stamp-fall{0%{opacity:0;transform:translateY(-70px) rotate(13deg) scale(.65)}65%{opacity:1;transform:translateY(7px) rotate(-4deg) scale(1.04)}100%{transform:translateY(0) rotate(0) scale(1)}}@keyframes stamp-pop{0%{opacity:0;transform:scale(.82)}100%{opacity:1;transform:scale(1)}}@keyframes stamp-sparkle{0%{opacity:0;transform:scale(.2) rotate(-15deg)}45%{opacity:1;transform:scale(1.25) rotate(8deg)}100%{opacity:.35;transform:scale(1) rotate(0)}}
@media(max-width:760px){.stamp-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stamp-daily{align-items:flex-start;flex-direction:column}.stamp-album-open{width:100%}}
@media(max-width:480px){.stamp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stamp-album-modal{padding:18px}.stamp-tile{padding:7px}.stamp-paper{padding:5px}.stamp-detail-modal{padding:18px}.stamp-reward-modal{padding:34px 19px 22px}}
@media(prefers-reduced-motion:reduce){.stamp-tile,.stamp-progress-track>div,.stamp-reward-modal,.stamp-reward-image,.stamp-reward-sparkles{animation:none;transition:none}}
/* Keep album thumbnails uniform; the enlarged detail image follows its own proportions. */
.stamp-grid{align-items:stretch}
.stamp-tile{display:grid;width:100%;height:auto;aspect-ratio:1/1.08;padding:10px}
.stamp-paper{display:block;width:100%;height:100%;aspect-ratio:auto;padding:7px}
.stamp-photo{display:block;width:100%;height:100%;object-fit:cover}
.stamp-tile.is-locked .stamp-paper{aspect-ratio:auto}
.stamp-lock-silhouette{width:100%;height:100%;aspect-ratio:auto}
.stamp-detail-image{display:block;width:auto;height:auto;max-width:100%;max-height:55vh;margin:0 auto;object-fit:contain}
.stamp-reward-image{height:auto;aspect-ratio:auto}
.stamp-reward-image img{height:auto;aspect-ratio:auto;object-fit:contain}
@media(max-width:480px){.stamp-tile{padding:7px}.stamp-paper{padding:5px}}
