:root{--pb-bordo:#340609;--pb-bordo-2:#4a0a0f;--pb-gold:#d4c494;--pb-ink:#2a2a2a}.pb-wrap{max-width:860px;margin:0 auto;padding:8px 4px 32px}.pb-banner{border-radius:6px;padding:12px 16px;margin-bottom:16px;font-size:14px;line-height:1.5}.pb-banner--ok{background:#eaf6ec;color:#1c5e2a;border:1px solid #b8e0c0}.pb-banner--warn{background:#fff6e5;color:#7a5200;border:1px solid #ffd98a}.pb-banner--err{background:#fdecea;color:#8a1c14;border:1px solid #f4b7b0}.pb-stage{position:relative;width:100%;aspect-ratio:3/2;background:#14121a;border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 30px rgba(0,0,0,.25)}.pb-img{width:100%;height:100%;object-fit:contain;display:block}.pb-stage__hint{color:#cfc9c0;font-size:15px;text-align:center;padding:24px}.pb-actions{display:flex;gap:12px;justify-content:center;margin-top:18px;flex-wrap:wrap}.pb-btn{border:none;border-radius:8px;padding:14px 26px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .05s ease,opacity .15s ease}.pb-btn:active{transform:translateY(1px)}.pb-btn:disabled{opacity:.5;cursor:not-allowed}.pb-btn--primary{background:var(--pb-bordo);color:#fff}.pb-btn--gold{background:var(--pb-gold);color:var(--pb-bordo)}.pb-btn--ghost{background:transparent;color:var(--pb-bordo);border:1px solid var(--pb-bordo)}.pb-shoot{font-size:20px;padding:18px 40px}.pb-code-box{text-align:center;margin-top:8px}.pb-code{font-size:44px;letter-spacing:8px;font-weight:700;color:var(--pb-bordo);font-family:monospace;margin:10px 0}.pb-code-label{color:#666;font-size:14px}.pbp-wrap{max-width:640px;margin:0 auto;padding:24px 16px 48px}.pbp-title{text-align:center;margin-bottom:8px}.pbp-lead{text-align:center;color:#555;margin-bottom:24px}.pbp-form{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:24px}.pbp-input{font-size:22px;letter-spacing:6px;text-transform:uppercase;text-align:center;padding:12px 16px;width:220px;border:2px solid var(--pb-gold);border-radius:8px;font-family:monospace}.pbp-btn{background:var(--pb-bordo);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:16px;font-weight:600;cursor:pointer}.pbp-btn:disabled{opacity:.5;cursor:not-allowed}.pbp-err{color:#8a1c14;margin:12px 0}.pbp-err,.pbp-result{text-align:center}.pbp-photo{max-width:100%;border-radius:10px;box-shadow:0 8px 30px rgba(0,0,0,.18);margin-bottom:16px}