/* bubblegum widget + speech bubbles */
#gum-widget{position:fixed;left:28px;bottom:24px;width:72px;height:84px;z-index:58;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;outline:none;animation:gum-bob 2.6s ease-in-out infinite}
#gum-widget:focus-visible{outline:2px dashed #ff8fc7;outline-offset:6px;border-radius:16px}
@keyframes gum-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media (prefers-reduced-motion:reduce){#gum-widget{animation:none}}

.gum-lips{display:none}

/* small gum that sits in the corner */
.gum-balloon{position:absolute;left:50%;bottom:14px;width:56px;height:56px;margin-left:-28px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#ffd1e8 0%,#ff8fc7 45%,#ff5fae 100%);box-shadow:inset -6px -8px 14px rgba(190,40,120,.35),0 4px 14px rgba(255,95,174,.35)}
.gum-balloon::before{content:"";position:absolute;left:18%;top:14%;width:22%;height:16%;border-radius:50%;background:rgba(255,255,255,.75);transform:rotate(-30deg)}
.gum-gone{visibility:hidden}
.gum-regrow{animation:gum-regrow .55s cubic-bezier(.34,1.56,.64,1) both}
@keyframes gum-regrow{from{transform:scale(0)}to{transform:scale(1)}}

/* big translucent balloon that inflates toward the middle of the screen */
#gum-big{position:fixed;left:0;top:0;width:56px;height:56px;border-radius:50%;z-index:55;pointer-events:none;visibility:hidden;transform-origin:50% 50%;background:radial-gradient(circle at 32% 28%,#ffd1e8 0%,#ff8fc7 45%,#ff5fae 100%);box-shadow:inset -6px -8px 14px rgba(190,40,120,.35),0 4px 14px rgba(255,95,174,.35)}
#gum-big::before{content:"";position:absolute;left:18%;top:14%;width:22%;height:16%;border-radius:50%;background:rgba(255,255,255,.75);transform:rotate(-30deg)}
#gum-big.on{visibility:visible}
#gum-big.back{transition:transform .5s cubic-bezier(.34,1.2,.5,1),opacity .4s}

.gum-hint{position:absolute;left:50%;bottom:-16px;transform:translateX(-50%);font-size:11px;letter-spacing:.08em;color:#ff8fc7;white-space:nowrap;transition:opacity .4s;pointer-events:none}
.gum-hint.hide{opacity:0}

.gum-say{position:fixed;left:0;top:0;z-index:60;width:max-content;max-width:220px;padding:8px 12px;border-radius:16px;background:#fff;color:#c2377f;border:2px solid #ff8fc7;font-size:13px;line-height:1.3;font-weight:600;box-shadow:0 4px 14px rgba(255,95,174,.25);pointer-events:none;opacity:0;transform:translate(-50%,-100%) scale(.85);transition:opacity .2s,transform .2s}
.gum-say.show{opacity:1;transform:translate(-50%,-100%) scale(1)}
.gum-say.below{transform:translate(-50%,0) scale(.85)}
.gum-say.below.show{transform:translate(-50%,0) scale(1)}
.gum-say::after{content:"";position:absolute;left:var(--tail,50%);bottom:-8px;width:12px;height:12px;background:#fff;border-right:2px solid #ff8fc7;border-bottom:2px solid #ff8fc7;transform:translateX(-50%) rotate(45deg)}
.gum-say.below::after{bottom:auto;top:-8px;transform:translateX(-50%) rotate(225deg)}
