.penny{display:inline-block;position:relative;line-height:0}
.penny svg{width:100%;height:auto;overflow:visible}
.penny .p-body{animation:p-bob 2.6s ease-in-out infinite;transform-origin:100px 150px}
.penny .p-shadow{animation:p-shadow 2.6s ease-in-out infinite;transform-origin:100px 196px}
.penny .p-eye{animation:p-blink 4.2s infinite;transform-box:fill-box;transform-origin:center}
.penny .p-arm-r{transform-box:fill-box;transform-origin:10% 90%;animation:p-wave 2.6s ease-in-out infinite}
.penny .p-arm-l{transform-box:fill-box;transform-origin:90% 10%;animation:p-sway 2.6s ease-in-out infinite}
.penny .p-coin{animation:p-flip 2.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.penny .p-spark{opacity:0}
.penny .p-pupil{transition:transform .15s ease-out}
.penny.calm .p-arm-r{animation:p-sway 2.6s ease-in-out infinite reverse}
.penny.cheer .p-body{animation:p-jump .9s cubic-bezier(.3,1.4,.5,1) infinite}
.penny.cheer .p-shadow{animation:p-shadow-j .9s cubic-bezier(.3,1.4,.5,1) infinite}
.penny.cheer .p-arm-r{animation:p-cheer .45s ease-in-out infinite alternate}
.penny.cheer .p-arm-l{animation:p-cheer-l .45s ease-in-out infinite alternate}
.penny.cheer .p-spark{animation:p-spark .9s ease-out infinite}
.penny.cheer .p-spark:nth-of-type(2){animation-delay:.3s}.penny.cheer .p-spark:nth-of-type(3){animation-delay:.6s}
.penny.cheer .p-mouth{d:path("M84 112 Q100 132 116 112 Z")}
.penny:hover .p-arm-r{animation-duration:.8s}
@keyframes p-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes p-shadow{0%,100%{transform:scaleX(1);opacity:.18}50%{transform:scaleX(.82);opacity:.1}}
@keyframes p-blink{0%,44%,48%,100%{transform:scaleY(1)}46%{transform:scaleY(.1)}}
@keyframes p-wave{0%,100%{transform:rotate(0)}15%{transform:rotate(-22deg)}30%{transform:rotate(8deg)}45%{transform:rotate(-22deg)}60%{transform:rotate(0)}}
@keyframes p-sway{0%,100%{transform:rotate(0)}50%{transform:rotate(6deg)}}
@keyframes p-flip{0%,60%,100%{transform:scaleX(1)}70%{transform:scaleX(.1)}80%{transform:scaleX(1)}}
@keyframes p-jump{0%,100%{transform:translateY(0) scale(1,1)}10%{transform:translateY(0) scale(1.06,.94)}50%{transform:translateY(-26px) scale(.97,1.03)}}
@keyframes p-shadow-j{0%,100%{transform:scaleX(1);opacity:.2}50%{transform:scaleX(.6);opacity:.06}}
@keyframes p-cheer{from{transform:rotate(-30deg)}to{transform:rotate(-55deg)}}
@keyframes p-cheer-l{from{transform:rotate(20deg)}to{transform:rotate(45deg)}}
@keyframes p-spark{0%{opacity:0;transform:scale(.3)}30%{opacity:1}100%{opacity:0;transform:scale(1.2) translateY(-10px)}}
.p-bubble{position:absolute;background:#1d1e21;color:#fff;font-family:Manrope,system-ui,sans-serif;font-weight:700;font-size:14px;line-height:1.3;padding:10px 14px;border-radius:16px;white-space:nowrap;animation:p-pop 4s ease-in-out infinite}
.p-bubble:after{content:"";position:absolute;bottom:-6px;left:22px;width:12px;height:12px;background:#1d1e21;transform:rotate(45deg);border-radius:2px}
@keyframes p-pop{0%,8%{opacity:0;transform:translateY(6px) scale(.9)}14%,85%{opacity:1;transform:none}92%,100%{opacity:0;transform:translateY(-4px)}}
/* logo variant */
.penny.is-logo .k-tile{transform-box:fill-box;transform-origin:center;animation:k-tilt 5.2s ease-in-out infinite}
.penny.is-logo .k-shine{animation:k-shine 3.4s ease-in-out infinite}
.penny.is-logo .k-orbit{transform-origin:100px 104px;animation:k-orbit 6s ease-in-out infinite}
.penny.is-logo.cheer .k-tile{animation:k-pop .9s cubic-bezier(.3,1.4,.5,1) infinite}
@keyframes k-tilt{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@keyframes k-shine{0%,55%{transform:translateX(0) rotate(20deg)}85%,100%{transform:translateX(260px) rotate(20deg)}}
@keyframes k-orbit{0%,100%{transform:rotate(0)}50%{transform:rotate(-14deg)}}
@keyframes k-pop{0%,100%{transform:scale(1)}50%{transform:scale(1.07) rotate(-4deg)}}
.ab-switch{position:fixed;right:18px;bottom:18px;z-index:9999;display:flex;align-items:center;gap:4px;background:#1d1e21;color:#fff;font-family:Manrope,system-ui,sans-serif;font-size:12px;font-weight:700;padding:5px 6px 5px 12px;border-radius:999px;box-shadow:0 12px 30px rgba(0,0,0,.25)}
.ab-switch span{opacity:.6;margin-right:4px}
.ab-switch button{border:0;background:transparent;color:#fff;font:inherit;padding:7px 12px;border-radius:999px;cursor:pointer}
.ab-switch button.on{background:#bfe0fb;color:#1d1e21}
.ab-switch .ab-x{color:#fff;opacity:.5;padding:0 8px;font-size:16px;text-decoration:none}
@media(max-width:600px){.ab-switch{left:12px;right:12px;bottom:12px;justify-content:center}.ab-switch span{display:none}}
@media(prefers-reduced-motion:reduce){.penny *{animation:none!important}}
