/* BeanMood · the coffee passport, in the sticker look. */
body.passport-on .titleblock,body.passport-on .mood,body.passport-on .toolbar{display:none}
.pp-head{margin-top:8px;padding:20px;border:var(--ink-line,2px solid #3b1e08);border-radius:24px;background:var(--accent,#c53030);color:#fff;box-shadow:var(--pop,4px 4px 0 #3b1e08)}
.pp-rank{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center}
.pp-mascot{display:block;margin:-30px 0 -6px -6px}
.pp-kicker{display:inline-block;padding:1px 10px;border-radius:999px;background:#fff;color:var(--espresso,#3b1e08);border:2px solid var(--espresso,#3b1e08);font-size:12px;font-weight:800}
.pp-head h1{margin-top:6px;font-size:30px;line-height:32px;font-weight:900;letter-spacing:-.03em}
.pp-stats{margin-top:6px;font-size:14px}
.pp-stats b{font-weight:900}
.pp-bar{position:relative;height:16px;margin-top:16px;border:2.5px solid var(--espresso,#3b1e08);border-radius:999px;background:#fff;overflow:hidden}
.pp-bar i{position:absolute;inset:0 auto 0 0;border-radius:999px;background:var(--mustard,#f5c518);transition:width .6s cubic-bezier(.3,1.4,.5,1)}
.pp-next{margin-top:8px;font-size:14px}
.pp-next b{font-weight:900}
.pp-ladder{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 0;padding:0;list-style:none}
.pp-ladder li{display:flex;align-items:center;gap:5px;padding:3px 9px 3px 4px;border-radius:999px;background:rgba(255,255,255,.18);font-size:12px;font-weight:700}
.pp-ladder li::before{content:"";width:14px;height:14px;border-radius:50%;background:var(--c);border:2px solid var(--espresso,#3b1e08);opacity:.45}
.pp-ladder li small{opacity:.75;font-size:11px}
.pp-ladder li.on{background:#fff;color:var(--espresso,#3b1e08)}
.pp-ladder li.on::before{opacity:1}
.pp-sec{margin-top:28px}
.pp-sec h2{font-size:20px;font-weight:900;letter-spacing:-.02em;margin-bottom:12px}
.pp-badges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pp-badge{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;align-items:center;padding:12px;border:2px solid var(--espresso,#3b1e08);border-radius:16px;background:#fff;box-shadow:var(--pop-sm,3px 3px 0 #3b1e08)}
.pp-badge .pp-seal{grid-row:span 3;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#f3ebe0;border:2px dashed #bca88f}
.pp-badge b{font-size:14px;line-height:18px;font-weight:800}
.pp-badge small{font-size:12px;color:var(--muted,#5e4130)}
.pp-mini{display:block;height:6px;margin-top:5px;border-radius:3px;background:#f1e4d2;overflow:hidden}
.pp-mini i{display:block;height:100%;background:var(--accent,#c53030)}
.pp-badge.done{background:var(--mustard,#f5c518)}
.pp-badge.done .pp-seal{background:#fff;border:2.5px solid var(--espresso,#3b1e08);animation:seal-in .5s cubic-bezier(.3,1.6,.5,1) backwards}
.pp-badge.done small{color:var(--espresso,#3b1e08)}
.pp-badge.done .pp-mini i{background:var(--espresso,#3b1e08)}
.pp-bookhead{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.pp-bookhead h2{margin:0}
.pp-filter{display:flex;gap:4px;padding:3px;border:2px solid var(--espresso,#3b1e08);border-radius:999px;background:#fff}
.pp-filter button{height:30px;padding:0 12px;border:0;border-radius:999px;background:none;font-size:12px;font-weight:800;color:var(--espresso,#3b1e08)}
.pp-filter button[aria-pressed="true"]{background:var(--espresso,#3b1e08);color:#fff}
.pp-book{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.bb{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;min-height:142px;padding:22px 8px 12px;border:2px dashed #c9b49a;border-radius:16px;background:#f7efe3;text-align:center;color:var(--muted,#5e4130);transition:transform .15s,box-shadow .15s,background-color .15s}
.bb:hover{transform:translate(-2px,-2px);border-style:solid;border-color:var(--espresso,#3b1e08);background:#fff;box-shadow:3px 3px 0 var(--espresso,#3b1e08)}
.bb b{font-size:13px;line-height:16px;font-weight:800;color:var(--espresso,#3b1e08)}
.bb small{font-size:12px;line-height:15px}
.bb-no{position:absolute;top:6px;left:8px;font-size:11px;font-weight:800;color:#9c8670}
.bb-mystery{display:grid;place-items:center;width:30px;height:38px;border-radius:50%/45%;background:#e6dccd;color:#a8927a;font-size:20px;font-weight:900;transform:rotate(18deg)}
.bb-mystery{font-family:inherit}
.bb.got{border:2.5px solid var(--espresso,#3b1e08);background:#fff;box-shadow:3px 3px 0 var(--espresso,#3b1e08)}
.bb.got .bb-no{color:var(--espresso,#3b1e08)}
.bb.got .bean-mark{animation:seal-in .45s cubic-bezier(.3,1.6,.5,1) backwards}
.bb.rare{background:var(--mustard-soft,#ffe58a)}
.bb.rare::after{content:"★";position:absolute;top:4px;right:8px;color:var(--espresso,#3b1e08);font-size:15px}
@keyframes seal-in{from{transform:scale(.4) rotate(-30deg)}}
/* the stamp button and the stamp itself */
.stampbtn{width:100%;margin-top:-4px;background:var(--mustard,#f5c518)!important;font-weight:800}
.stampbtn.is-stamped{background:#fff!important}
.pill.stamped{background:var(--mustard,#f5c518);color:var(--espresso,#3b1e08)}
.stamp-wrap{display:grid;place-items:center;padding:4px 0}
.stamp{display:grid;justify-items:center;gap:2px;min-width:220px;padding:14px 22px;border:4px solid var(--accent,#c53030);border-radius:18px;outline:2px solid var(--accent,#c53030);outline-offset:-10px;background:#fff;color:var(--accent,#c53030);transform:rotate(-6deg)}
.stamp span{font-size:13px;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.stamp b{font-size:20px;line-height:24px;font-weight:900;color:var(--espresso,#3b1e08);text-align:center}
.stamp small{font-size:12px;font-weight:700}
.stamp.rare{border-color:#9a7200;outline-color:#9a7200;background:#fff}
.stamp.rare span{color:#7a5a00}
@media (prefers-reduced-motion:no-preference){.stamp{animation:stamp-slam .55s cubic-bezier(.3,1.5,.5,1) .15s backwards}}
@keyframes stamp-slam{0%{transform:scale(1.9) rotate(-18deg)}70%{transform:scale(.94) rotate(-5deg)}100%{transform:scale(1) rotate(-6deg)}}
.stampsheet .sub small{font-weight:400}
.stampsheet .flavs{margin-top:-6px}
.stampsheet .st-match{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.stampsheet .st-match .opt{min-height:52px;justify-content:center}
.stampsheet{background:var(--mustard,#f5c518)}
/* stamped pins carry a little check */
.pin.stamped::after{content:"";position:absolute;right:2px;top:2px;width:13px;height:13px;border-radius:50%;background:var(--mustard,#f5c518) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-4.9' fill='none' stroke='%233b1e08' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/9px no-repeat;border:2px solid var(--espresso,#3b1e08)}
@media (max-width:480px){.pp-book{grid-template-columns:repeat(2,minmax(0,1fr))}.pp-badges{grid-template-columns:minmax(0,1fr)}.stampsheet .st-match{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){.pp-badge.done .pp-seal,.bb.got .bean-mark{animation:none}}
