/* halloweenSale badge (design C: full moon + bats) */
.pb { position: fixed; right: 22px; bottom: 22px; z-index: 50; width: 210px; text-align: center; animation: pb-in .6s cubic-bezier(.2,1.4,.4,1) both; }
.pb-link { display: block; text-decoration: none; color: inherit; }
.pb-art { width: 180px; height: auto; display: block; margin: 0 auto -2px; filter: drop-shadow(0 10px 18px rgba(0,0,0,.45)); }
.pb-glow { transform-origin: 100px 80px; animation: pb-glow 3s ease-in-out infinite; }
.pb-bat { animation: pb-flap .35s ease-in-out infinite alternate, pb-fly 4s ease-in-out infinite; }
.pb-bat.b2 { animation-delay: .1s, -1.3s; } .pb-bat.b3 { animation-delay: .2s, -2.6s; }
.pb-star { transform-origin: 156px 125px; animation: pb-spin 6s linear infinite; }
.pb-tw { animation: pb-tw 1.6s ease-in-out infinite; } .pb-tw2 { animation-delay: .8s; }
.pb-t0 { display: block; font: 900 18px/1.05 var(--display, "Unbounded", sans-serif); color: #fff; letter-spacing: .01em; }
.pb-t2 { display: block; font: 900 50px/0.95 var(--display, "Unbounded", sans-serif); letter-spacing: -.03em; color: #FFE27A; text-shadow: 0 0 24px rgba(255,210,90,.6), 0 4px 0 #7A4A00; }
.pb-t1 { display: block; font: 900 21px/1 var(--display, "Unbounded", sans-serif); color: #fff; }
.pb-sub { display: inline-block; margin-top: 8px; padding: 6px 12px; border-radius: 999px; background: rgba(18,18,46,.85); border: 1px solid #FFE27A; color: #FFE27A; font: 800 12px/1.2 var(--body, "Manrope", sans-serif); }
.pb-x { position: absolute; top: 0; right: 4px; z-index: 2; width: 32px; height: 32px; border-radius: 50%; border: 0; background: #0B0B14; color: #fff; font-size: 15px; font-weight: 800; cursor: pointer; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.pb-x:hover { background: #2B2350; }
@keyframes pb-in { from { opacity: 0; transform: translateY(40px) scale(.8); } }
@keyframes pb-glow { 50% { transform: scale(1.08); opacity: .32; } }
@keyframes pb-flap { to { transform: scaleY(.55); } }
@keyframes pb-fly { 50% { translate: 6px -5px; } }
@keyframes pb-spin { to { transform: rotate(360deg); } }
@keyframes pb-tw { 50% { opacity: .2; } }
@media (max-width: 600px) { .pb { right: 8px; bottom: 8px; width: 112px; } .pb-art { width: 92px; } .pb-t0 { font-size: 9.5px; } .pb-t2 { font-size: 28px; } .pb-t1 { font-size: 12px; } .pb-sub { font-size: 10px; padding: 4px 8px; margin-top: 5px; } .pb-x { width: 26px; height: 26px; font-size: 12px; top: -4px; right: -2px; } }
@media (prefers-reduced-motion: reduce) { .pb, .pb-glow, .pb-bat, .pb-star, .pb-tw { animation: none; } }
