@charset "UTF-8";.party-banner{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 20px;padding:10px 16px 12px;font-size:15px;line-height:1.35;color:#fff;text-align:center;background:#1d1530}.party-banner:after{content:"";position:absolute;right:0;bottom:0;left:0;height:4px;background:linear-gradient(90deg,#ff3b6b,#ff9f1c,#ffe14d,#3ddc84,#2ec4ff,#7b5cff,#ff5ce1,#ff3b6b);background-size:200% 100%;animation:party-ribbon 6s linear infinite}body:not(.party-on) .party-banner:after{animation:none}.party-banner__text{margin:0}.party-banner__title{font-weight:700;color:#ffe14d}.party-banner__title:before{content:"🎉 "/""}.party-banner__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px}.party-banner__actions:empty{display:none}.party-banner__donate,.party-banner .party-toggle{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 14px;font:inherit;font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer;border:2px solid transparent;border-radius:999px;transition:transform .15s}.party-banner__donate:hover,.party-banner .party-toggle:hover{transform:translateY(-1px)}.party-banner__donate:focus-visible,.party-banner .party-toggle:focus-visible{outline:3px solid #ffe14d;outline-offset:2px}.party-banner__donate{color:#1d1530;background:#ffe14d}.party-banner__donate:before{content:"♥"/"";color:#e0245e}.party-banner__donate:hover,.party-banner__donate:focus-visible{color:#1d1530}.party-banner .party-toggle{color:#fff;background:transparent;border-color:#ffffffb3}.party-banner .party-toggle__icon{font-size:14px}@media(max-width:600px){.party-banner{font-size:14px}.party-banner .party-toggle{justify-content:center;width:36px;height:36px;padding:0}.party-banner .party-toggle__label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}@media print{.party-banner{display:none}}@keyframes party-ribbon{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.party-banner:after{animation:none}}
