/* Heart Steps Premium: paywall sheet, plan cards and the little locks shown on Premium places. */
.paywall{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:16px;background:#1b1f3acc;backdrop-filter:blur(6px);animation:pw-in .22s ease-out}
.paywall.closing{animation:pw-out .22s ease-in forwards}
@keyframes pw-in{from{opacity:0}to{opacity:1}}@keyframes pw-out{to{opacity:0}}
.pw-card{position:relative;width:min(560px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:#fffdf7;border-radius:28px;padding:26px 24px 18px;box-shadow:0 24px 70px #0006;color:#30374a;animation:pw-pop .3s cubic-bezier(.3,1.4,.6,1)}
@keyframes pw-pop{from{transform:translateY(18px) scale(.96)}to{transform:none}}
.pw-x{position:absolute;top:12px;right:14px;width:36px;height:36px;border-radius:50%;font-size:22px;background:#f1efe8}
.pw-hero{text-align:center}.pw-stars{display:block;font-size:34px;letter-spacing:6px;margin-bottom:6px}
.pw-hero h2{font-size:28px;letter-spacing:-.6px;color:#42316f}.pw-hero p{margin-top:8px;font-size:14px;color:#5d6475}
.pw-reason{display:inline-block;margin-top:10px!important;background:#fff1cf;color:#8a5a00!important;border-radius:20px;padding:6px 14px;font-weight:700}
.pw-perks{list-style:none;padding:0;margin:18px 0 16px;display:grid;gap:7px;font-size:14px}.pw-perks li{background:#f4f1fb;border-radius:12px;padding:9px 12px}
.pw-plans{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.pw-plan{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:20px 6px 12px;border:2px solid #e6e1f2;border-radius:18px;background:#fff;font-weight:700;transition:transform .15s,border-color .15s,box-shadow .15s}
.pw-plan:hover{transform:translateY(-2px)}.pw-plan b{font-size:13px;color:#5d6475}.pw-plan strong{font-family:Nunito,system-ui,sans-serif;font-size:22px;color:#30374a}.pw-plan small{font-size:11px;color:#8a90a0;font-weight:600}
.pw-plan.on{border-color:#7660c7;box-shadow:0 6px 18px #7660c733;background:#f8f5ff}
.pw-flag{position:absolute;top:-10px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#ffb800;color:#3b2a00;font-size:10px;font-weight:900;padding:3px 9px;border-radius:12px}.pw-flag.soft{background:#d9f3e4;color:#1f6b45}
.pw-gate{margin-top:16px;display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;justify-content:center}.pw-gate label{display:grid;gap:6px;font-weight:700;font-size:14px}
.pw-gate input{font:inherit;font-size:18px;padding:10px 12px;border:2px solid #ddd8ea;border-radius:12px;width:min(260px,70vw)}
.pw-actions{display:grid;gap:9px;margin-top:16px}.pw-actions .primary,.pw-actions .secondary{width:100%;padding:15px;font-size:16px}
.pw-note{text-align:center;font-size:13px;color:#8a5a00;background:#fff4dd;border-radius:12px;padding:10px}
.pw-fine{margin-top:12px;font-size:11px;line-height:1.5;color:#8a90a0;text-align:center}
.pw-links{display:flex;justify-content:center;gap:10px;margin-top:4px}.pw-error{text-align:center;color:#b23b35;font-size:13px;min-height:18px}
.pw-yay{width:100%;margin-top:18px;padding:15px}
@media(max-width:520px){.pw-plans{grid-template-columns:repeat(2,1fr)}.pw-card{padding:22px 16px 14px}.pw-hero h2{font-size:24px}}
/* Lock badges on Premium places, world cards and buttons. */
.premium-lock{position:absolute;top:12px;right:12px;z-index:2;display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:14px;background:#2a2150d9;color:#ffe08a;font-size:11px;font-weight:900;letter-spacing:.3px;backdrop-filter:blur(4px)}
.is-premium .premium-lock{display:none}
.premium-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:20px;background:linear-gradient(90deg,#ffd76a,#ffb84d);color:#3b2a00;font-weight:900;font-size:12px;box-shadow:0 3px 0 #d58f1f}
.locked-action{opacity:.75}.locked-action::after{content:' 🔒'}
.world-art .premium-lock{top:auto;right:auto;bottom:12px;left:12px}
.premium-lock.free{background:#e3f7ea;color:#1f6b45}
.galaxy-feature .premium-chip{margin-top:8px}
