/* CSS supplies the motion; BlobButton only manages props, touch and visibility. */
.blob-button{
 position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;
 max-width:calc(100% - 16px);min-height:44px;padding:10px 22px;border:0;background:transparent;
 box-shadow:none;transform:none;transition:none;color:var(--blob-ink,#4a2141);
 font:inherit;text-decoration:none;text-align:center;vertical-align:middle;touch-action:manipulation;
 -webkit-tap-highlight-color:transparent;
}
.blob-button:hover{background:transparent;box-shadow:none;transform:none}
.blob-button::before{
 content:'';position:absolute;z-index:-1;inset:-7px -9px;box-sizing:border-box;pointer-events:none;
 background:var(--blob-color,#eadff7);border:3px solid var(--blob-border-color,#c6acd6);
 border-radius:60% 40% 35% 65% / 55% 35% 65% 45%;
 transform:scale(0);transform-origin:50% 50%;
 transition:transform var(--blob-duration,550ms) ease;
 animation:blob-button-morph var(--blob-morph-duration,3000ms) ease-in-out infinite paused;
}
.blob-button__label{position:relative;min-width:0;overflow-wrap:anywhere}
.blob-button:is(:hover,:focus-visible,:active,[aria-selected="true"],[aria-pressed="true"],.is-blob-active)::before{transform:scale(1);transition-timing-function:cubic-bezier(.34,1.56,.64,1)}
.blob-button[data-blob-visible="true"][data-blob-enabled="true"]:is(:hover,:focus-visible,:active,[aria-selected="true"],[aria-pressed="true"],.is-blob-active)::before{animation-play-state:running}
.blob-button[data-blob-visible="false"]::before{transition:none}
.blob-button[data-blob-static="true"]::before{animation:none;transition:none;transform:scale(1)}
.blob-button:focus-visible{outline:3px solid var(--blob-ink,#4a2141);outline-offset:10px}
@keyframes blob-button-morph{
 0%,100%{border-radius:60% 40% 35% 65% / 55% 35% 65% 45%}
 33%{border-radius:35% 65% 58% 42% / 40% 62% 38% 60%}
 66%{border-radius:55% 45% 30% 70% / 65% 45% 55% 35%}
}
@media(max-width:760px){.blob-button::before{inset:-5px -4px;border-width:2px}}
@media(prefers-reduced-motion:reduce){.blob-button::before{animation:none!important;transition:none!important;transform:scale(1)!important}}
