/* Postcard: the report's postmark stamp + keepsake actions. Owned by the POSTCARD worker.
   The report's own layout lives in style.css/polish.css (UI worker) — only overrides/additions here. */

.postmark{position:absolute;top:16px;right:20px;width:76px;height:76px;pointer-events:none;opacity:0;transform:rotate(-8deg) scale(1.25);transform-origin:50% 50%;z-index:3}
.postmark-in{animation:postmarkLand .52s cubic-bezier(.2,.9,.22,1.18) forwards}
@keyframes postmarkLand{0%{opacity:0;transform:rotate(-8deg) scale(1.25)}62%{opacity:1;transform:rotate(-8deg) scale(.96)}100%{opacity:1;transform:rotate(-8deg) scale(1)}}
.postmark-svg{width:100%;height:100%;display:block;mix-blend-mode:multiply}
.postmark-ring-outer,.postmark-ring-inner{fill:none;stroke:#2d6360}
.postmark-ring-outer{stroke-width:2.6}
.postmark-ring-inner{stroke-width:1.6;opacity:.82}
.postmark-line{stroke:#2d6360;stroke-width:1.5;opacity:.5}
.postmark-text{font:700 9px 'DM Sans',sans-serif;letter-spacing:2.4px;fill:#2d6360}
.postmark-time{font:700 15px 'Fraunces',Georgia,serif;fill:#2d6360}

.report-footer{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:2px;opacity:0}
#ending.ending-reveal .report-footer{animation:postcardFooterIn .3s ease-out 1.1s both}
@keyframes postcardFooterIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.report-footer #save-postcard{color:#92682a;font-weight:700}
.report-footer #save-postcard:disabled{opacity:.7;cursor:wait;text-decoration:none}
.report-footer .dedication-link{color:#93a08c;font-size:10px;letter-spacing:.4px}

@media(max-width:520px){
 .postmark{width:56px;height:56px;top:10px;right:12px}
 .report-footer{flex-direction:column;gap:9px;margin-top:6px}
}

@media(prefers-reduced-motion:reduce){
 .postmark{opacity:1;transform:rotate(-8deg) scale(1)}
 .postmark-in{animation:none}
 #ending.ending-reveal .report-footer{animation:none;opacity:1}
}
