@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=IM+Fell+English:ital@0;1&display=swap");*{box-sizing:border-box;margin:0;padding:0}body{font-family:IM Fell English,serif;background:#c8bfb3;min-height:100vh}.card{background:#ece5d9;border-radius:20px;padding:30px 38px 26px;width:100%;max-width:660px;box-shadow:0 6px 32px rgba(60,35,15,.18)}.headline{font-family:Playfair Display,serif;font-weight:700;font-size:clamp(18px,3.5vw,28px);color:#6b3a2a;text-align:center;margin-bottom:5px}.subtitle{font-style:italic;font-size:clamp(12px,1.9vw,15px);color:#7a4f38;text-align:center;letter-spacing:.1em;margin-bottom:24px}.stamps-wrapper{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}.stamp-row{gap:12px}.stamp-row,.stamp-slot{display:flex;justify-content:center;align-items:center}.stamp-slot{width:clamp(62px,10.5vw,88px);height:clamp(62px,10.5vw,88px);border-radius:50%;background:#f5ede0;box-shadow:inset 0 2px 8px rgba(100,60,20,.09);position:relative;flex-shrink:0;overflow:hidden;transition:transform .13s ease}.stamp-slot.stamped{background:#e2d5bc}.whisk-img{width:62%;height:62%;object-fit:contain;opacity:0;transform:rotate(-10deg) scale(.3);transition:opacity .28s ease,transform .32s cubic-bezier(.34,1.56,.64,1);pointer-events:none;filter:invert(25%) sepia(40%) saturate(600%) hue-rotate(345deg) brightness(55%)}.stamp-slot.stamped .whisk-img{opacity:1;transform:rotate(-10deg) scale(1)}.logo-slot-wrapper{flex-direction:column;gap:4px;flex-shrink:0}.logo-slot,.logo-slot-wrapper{display:flex;align-items:center}.logo-slot{width:clamp(62px,10.5vw,88px);height:clamp(62px,10.5vw,88px);border-radius:50%;overflow:hidden;border:2px solid #9a6848;background:#f5ede0;justify-content:center;transition:border-color .3s,box-shadow .3s}.logo-slot.earned{border-color:#6b3a2a;animation:glowFree 1.6s ease-in-out infinite}@keyframes glowFree{0%,to{box-shadow:0 0 0 0 rgba(107,58,42,.3)}50%{box-shadow:0 0 0 10px rgba(107,58,42,0)}}.logo-img{width:100%;height:100%;object-fit:cover}.free-label{font-style:italic;font-size:12px;color:#9a6848;white-space:nowrap}.handle{font-style:italic;font-size:clamp(13px,2.2vw,17px);color:#7a4f38;letter-spacing:.13em;text-align:center;margin-top:8px}.congrats{background:#6b3a2a;color:#ece5d9;font-family:Playfair Display,serif;font-size:16px;text-align:center;padding:14px 28px;border-radius:14px;width:100%;max-width:660px;line-height:1.7}.btn{font-family:IM Fell English,serif;font-style:italic;font-size:15px;padding:9px 24px;border-radius:30px;border:1.5px solid #6b3a2a;background:transparent;color:#6b3a2a;cursor:pointer;transition:background .16s,color .16s}.btn:hover{background:#6b3a2a;color:#ece5d9}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:#6b3a2a;color:#ece5d9}.btn.primary:hover:not(:disabled){background:#52281a}.input{font-family:IM Fell English,serif;font-style:italic;font-size:15px;padding:10px 18px;border-radius:30px;border:1.5px solid #9a6848;background:#f5ede0;color:#4a2a18;outline:none;width:100%;max-width:320px}.input:focus{border-color:#6b3a2a}.label{font-style:italic;font-size:13px;color:#7a4f38;margin-bottom:6px;display:block}.page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 16px;gap:16px}.stamp-count{font-style:italic;font-size:14px;color:#7a4f38;text-align:center}.error{color:#a33}.error,.muted{font-style:italic;font-size:13px;text-align:center}.muted{color:#9a8070}.admin-card{background:#ece5d9;border-radius:20px;padding:28px 32px;width:100%;max-width:480px;box-shadow:0 6px 32px rgba(60,35,15,.18);display:flex;flex-direction:column;gap:16px}.admin-title{font-family:Playfair Display,serif;font-size:22px;color:#6b3a2a;text-align:center}.customer-info{background:#f5ede0;border-radius:14px;padding:16px 20px;display:flex;flex-direction:column;gap:8px}.customer-name{font-size:16px;color:#4a2a18}.stamp-bar{display:flex;gap:6px;flex-wrap:wrap}.stamp-dot{width:18px;height:18px;border-radius:50%;background:#d4c4a8;border:1.5px solid #9a6848}.stamp-dot.filled{background:#6b3a2a;border-color:#6b3a2a}.qr-box{display:flex;flex-direction:column;align-items:center;gap:10px;background:#f5ede0;border-radius:14px;padding:20px}.divider{border:none;border-top:1px solid #d4c4a8;margin:4px 0}