.cr-control{position:relative}.cr-toggle{color:#856000}.cr-toggle:hover,.cr-toggle[aria-expanded="true"]{background:#ffe08b;box-shadow:0 0 0 2px #e6b53438}.cr-toggle:active{transform:scale(.95)}.cr-toggle:focus-visible,.cr-menu button:focus-visible{outline:2px solid #c58b00;outline-offset:3px}
.cr-toggle>svg{display:block;width:22px;height:22px;flex:none}
@media(max-width:520px){.cr-toggle>svg{width:19px;height:19px}}
.cr-menu{position:absolute;bottom:calc(100% + 12px);right:0;left:auto;transform:none;width:min(298px,calc(100vw - 24px));max-height:min(216px,calc(100dvh - 144px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;padding:14px;border:1px solid #e2e5ea;border-radius:20px;background:#fff;color:#533b05;box-shadow:0 14px 40px #25304424;z-index:80}
.cr-menu::-webkit-scrollbar{display:none}
body.cl-guest-v2 .cl-call-actions:has(.cr-menu:not([hidden])){z-index:100}
.cr-menu[hidden],.cr-menu [hidden]{display:none!important}.cr-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.cr-menu button{font:inherit;cursor:pointer}.cr-emoji{width:100%;min-height:42px;padding:6px;border:0;border-radius:12px;background:transparent;font-size:25px!important;line-height:1;transition:background .14s,transform .14s,box-shadow .14s}.cr-emoji:hover:not(:disabled){background:#ffe5a2;box-shadow:0 2px 8px #a6740024;transform:translateY(-2px)}.cr-emoji:active:not(:disabled){transform:scale(.9)}.cr-emoji:disabled{opacity:.35;cursor:default}
.cr-emoji{position:relative}.cr-emoji.is-locked>.cr-choice-glyph{filter:grayscale(1);opacity:.45}.cr-choice-crown{position:absolute;right:2px;bottom:2px;width:12px;height:12px;color:#c58b00}.cr-choice-crown svg{display:block;width:100%;height:100%}.cr-emoji.is-locked>.cr-choice-crown{color:#87909b}.cr-status{font-size:12px;margin:0;text-align:center}.cr-status:empty{display:none}
.cr-layer{position:absolute;inset:0 0 78px;pointer-events:none;overflow:hidden;z-index:45;contain:layout paint}.cr-burst{position:absolute;top:calc(100% + 40px);left:clamp(44px,var(--cr-x,50%),calc(100% - 44px));display:block;min-width:44px;min-height:44px;margin:0;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;font-family:inherit;font-size:clamp(32px,5vw,55px);line-height:1.2;text-align:center;pointer-events:none;user-select:none;transform-origin:center;will-change:transform,opacity;backface-visibility:hidden}
@media(max-width:620px){.cr-layer{bottom:112px}}
.cr-burst.cr-received{appearance:none;pointer-events:auto;cursor:pointer;touch-action:manipulation}.cr-received:focus-visible{outline:2px solid #c58b00;outline-offset:3px}.cr-burst.is-breaking,.cr-burst.is-failed{pointer-events:none}.cr-burst.is-breaking{animation-play-state:paused}
/* Entrance, sway and exit own separate layers. The scoped selector also beats
   the legacy motion-qa24 duration override, regardless of stylesheet order. */
.cr-layer>.cr-burst,.cr-layer>.cr-burst.is-audio-timed{animation:cr-arrive .56s cubic-bezier(.42,0,.24,1) both}
.cr-exit-wrap{display:block;transform-origin:center;animation:cr-retire .42s ease-in both;animation-delay:var(--cr-retire-delay,max(0ms,calc(var(--cr-lifetime,4s) - 420ms)))}
.cr-burst.is-audio-timed>.cr-exit-wrap{animation:none;opacity:var(--cr-audio-opacity,1);scale:var(--cr-exit-x,1) var(--cr-exit-y,1);transition:opacity 60ms linear,scale 60ms linear}
.cr-float-wrap{display:block;animation:cr-wave 3.2s ease-in-out infinite alternate,cr-float var(--cr-travel-time,8s) ease-in-out both;will-change:transform}
@keyframes cr-arrive{from{transform:translate(-50%,0)}to{transform:translate(-50%,calc(-100px - var(--cr-rise,200px)))}}
@keyframes cr-wave{from{transform:translateX(-8px) rotate(-4deg)}to{transform:translateX(8px) rotate(4deg)}}
@keyframes cr-float{from{translate:0 0}to{translate:var(--cr-drift,0px) -36px}}
@keyframes cr-retire{0%{opacity:var(--cr-retire-opacity,1);scale:var(--cr-retire-x,1) var(--cr-retire-y,1)}25%{opacity:var(--cr-retire-opacity,1);scale:calc(var(--cr-retire-x,1)*1.08) calc(var(--cr-retire-y,1)*.96)}100%{opacity:0;scale:0}}
/* A distinct name starts a new exit clock after a late click/delivery failure;
   reusing the delayed lifetime animation would jump to its elapsed position. */
@keyframes cr-dismiss{0%{opacity:var(--cr-retire-opacity,1);scale:var(--cr-retire-x,1) var(--cr-retire-y,1)}25%{opacity:var(--cr-retire-opacity,1);scale:calc(var(--cr-retire-x,1)*1.08) calc(var(--cr-retire-y,1)*.96)}100%{opacity:0;scale:0}}
.cr-layer>.cr-burst.is-retiring,.cr-layer>.cr-burst.is-failed{pointer-events:none;animation:cr-arrive .56s cubic-bezier(.42,0,.24,1) both}
.cr-burst.is-retiring>.cr-exit-wrap,.cr-burst.is-failed>.cr-exit-wrap{animation:cr-dismiss .42s ease-in both;transition:none}
.cr-burst.is-failed>.cr-exit-wrap{animation-duration:.2s}
.cr-layer>.cr-burst.is-breaking{animation-play-state:paused}
.cr-burst.is-breaking>.cr-exit-wrap{animation:none;opacity:1;scale:1;transition:none}
.cr-burst.is-breaking .cr-float-wrap{animation-play-state:paused}
/* Silent lifetimes stay independent; audible exits track actual media time. */
.cr-burst.is-audio-timed .cr-glyph{animation-duration:8s;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes cr-vanish{from{opacity:var(--cr-retire-opacity,1)}to{opacity:0}}
@keyframes cr-dismiss-fade{from{opacity:var(--cr-retire-opacity,1)}to{opacity:0}}
@keyframes cr-appear{from{opacity:0}to{opacity:1}}
.cr-glyph{display:block;opacity:1;transition:opacity .18s ease-out;animation:cr-glyph-float var(--cr-lifetime,4s) ease-in-out both}
.cr-burst.is-breaking .cr-glyph{animation:cr-heart-break .42s ease-out both}
@keyframes cr-heart-break{0%{opacity:1;transform:scale(1.12) rotate(-8deg)}25%{opacity:1;transform:scale(1.22) rotate(7deg)}55%{opacity:1;transform:scale(1.05) translateY(5px) rotate(-5deg)}100%{opacity:0;transform:scale(.6) translateY(22px) rotate(12deg)}}
@keyframes cr-glyph-float{0%{transform:scale(.7)}6%{transform:scale(1)}100%{transform:scale(.9)}}
.cr-motion-spark .cr-glyph{animation-name:cr-spark}.cr-motion-heart .cr-glyph{animation-name:cr-heart}.cr-motion-star .cr-glyph{animation-name:cr-star}.cr-motion-flame .cr-glyph{animation-name:cr-flame}.cr-motion-rocket .cr-glyph{animation-name:cr-rocket}.cr-motion-stamp .cr-glyph{animation-name:cr-stamp}.cr-motion-trophy .cr-glyph{animation-name:cr-trophy}.cr-motion-flex .cr-glyph{animation-name:cr-flex}.cr-motion-cool .cr-glyph{animation-name:cr-cool}.cr-motion-wink .cr-glyph{animation-name:cr-wink}.cr-motion-burst .cr-glyph{animation-name:cr-burst}.cr-motion-tear .cr-glyph{animation-name:cr-tear}.cr-motion-party .cr-glyph{animation-name:cr-party}.cr-motion-dance .cr-glyph{animation-name:cr-dance}.cr-motion-music .cr-glyph{animation-name:cr-music}.cr-motion-rainbow .cr-glyph{animation-name:cr-rainbow}.cr-motion-flower .cr-glyph{animation-name:cr-flower}.cr-motion-flutter .cr-glyph{animation-name:cr-flutter}.cr-motion-idea .cr-glyph{animation-name:cr-idea}.cr-motion-shake .cr-glyph{animation-name:cr-shake}
@keyframes cr-spark{0%{transform:scale(.4)}8%{transform:scale(1.15) rotate(8deg)}65%{transform:rotate(-7deg)}100%{transform:scale(.75)}}
@keyframes cr-heart{0%{transform:scale(.7)}8%,45%{transform:scale(1.1)}25%,65%{transform:scale(.95)}100%{transform:scale(1)}}
@keyframes cr-star{0%{transform:rotate(-20deg) scale(.5)}8%{transform:rotate(10deg) scale(1.1)}100%{transform:rotate(25deg)}}
@keyframes cr-flame{0%{transform:scale(.7)}8%{transform:translateX(-4px) skew(-4deg)}60%{transform:translateX(4px) skew(4deg)}100%{transform:none}}
@keyframes cr-rocket{0%{transform:translateX(-15px) rotate(-10deg)}75%{transform:translateX(35px) rotate(5deg)}100%{transform:translateX(55px)}}
@keyframes cr-stamp{0%{transform:scale(1.4)}8%{transform:scale(.95)}25%{transform:scale(1.05)}100%{transform:scale(.85)}}
@keyframes cr-trophy{0%{transform:scale(.6)}8%{transform:rotate(-6deg)}65%{transform:rotate(6deg)}100%{transform:none}}
@keyframes cr-flex{0%{transform:scale(.7)}8%{transform:scale(1.15) rotate(-8deg)}60%{transform:scale(.95) rotate(5deg)}100%{transform:none}}
@keyframes cr-cool{0%{transform:translateX(-25px) rotate(-8deg)}8%{transform:none}70%{transform:translateX(20px) rotate(5deg)}100%{transform:translateX(30px)}}
@keyframes cr-wink{0%{transform:scale(.8)}8%{transform:rotate(10deg)}45%{transform:rotate(-6deg)}100%{transform:rotate(6deg)}}
@keyframes cr-burst{0%{transform:scale(.3)}8%{transform:scale(1.2)}45%{transform:scale(.95)}100%{transform:scale(1.05)}}
@keyframes cr-tear{0%{transform:none}8%{transform:translateX(-7px)}65%{transform:translateX(7px)}100%{transform:scale(.85)}}
@keyframes cr-party{0%{transform:rotate(-14deg) scale(.7)}8%{transform:rotate(14deg)}55%{transform:rotate(-10deg)}100%{transform:rotate(10deg)}}
@keyframes cr-dance{0%{transform:translateX(-12px)}8%{transform:translateX(12px) rotate(10deg)}55%{transform:translateX(-12px) rotate(-10deg)}100%{transform:translateX(12px)}}
@keyframes cr-music{0%{transform:scale(.6)}8%{transform:translateX(10px) rotate(-8deg)}65%{transform:translateX(-10px) rotate(8deg)}100%{transform:none}}
@keyframes cr-rainbow{0%{transform:translateX(-30px) rotate(-10deg)}8%{transform:none}70%{transform:translateX(30px) rotate(10deg)}100%{transform:translateX(40px)}}
@keyframes cr-flower{0%{transform:scale(.5) rotate(-12deg)}8%{transform:scale(1.1) rotate(5deg)}65%{transform:rotate(-5deg)}100%{transform:scale(.9)}}
@keyframes cr-flutter{0%{transform:scaleX(.7)}8%{transform:translateX(20px) scaleX(1)}55%{transform:translateX(-15px) scaleX(.75)}100%{transform:translateX(25px) scaleX(1)}}
@keyframes cr-idea{0%{transform:scale(.7)}8%{transform:scale(1.1);filter:drop-shadow(0 0 8px #ffe077)}65%{transform:none}100%{transform:scale(.85)}}
@keyframes cr-shake{0%{transform:scale(.8)}8%{transform:translateX(-6px) rotate(-7deg)}45%{transform:translateX(6px) rotate(7deg)}65%{transform:translateX(-4px) rotate(-5deg)}100%{transform:none}}
/* Visual choices remain live during audio; the player never overlaps tracks. */
.cr-grid[aria-busy=true] .cr-emoji:disabled{opacity:1;cursor:progress}
@media(prefers-reduced-motion:reduce){
 .cr-layer>.cr-burst,.cr-layer>.cr-burst.is-audio-timed,.cr-layer>.cr-burst.is-retiring,.cr-layer>.cr-burst.is-failed,.cr-layer>.cr-burst.is-breaking{top:calc(100% - 80px);transform:translateX(-50%);animation:cr-appear .12s linear both}
 .cr-float-wrap,.cr-burst .cr-glyph{animation:none!important;translate:none;transform:none;transition:none}
 .cr-exit-wrap,.cr-burst.is-retiring>.cr-exit-wrap,.cr-burst.is-failed>.cr-exit-wrap,.cr-burst.is-breaking>.cr-exit-wrap{animation-name:cr-vanish;scale:1;transition:none}
 .cr-burst.is-audio-timed>.cr-exit-wrap{scale:1;transition:opacity 60ms linear}
 .cr-burst.is-retiring>.cr-exit-wrap,.cr-burst.is-breaking>.cr-exit-wrap{animation:cr-dismiss-fade .42s linear both}
 .cr-burst.is-failed>.cr-exit-wrap{animation:cr-dismiss-fade .2s linear both}
 .cr-menu button{transition:none;transform:none!important}
}
