/* Ten distinct liquid levels are clipped inside the original glass artwork. */
.drink-stage .glass-float-anchor .liquid-art-layer {
 position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none;z-index:3;
 transform:translate(var(--sprite-offset-x,0px),var(--sprite-offset-y,0px)) scale(var(--sprite-scale,.9)) rotate(var(--sprite-rotation,0deg));
 transform-origin:50% 50%;image-rendering:pixelated;opacity:.94;
}
.drink-stage .glass-float-anchor .liquid-art-layer[hidden]{display:none!important}
.drink-stage .glass-button.slide-out .liquid-art-layer { animation:liquidFadeOut .33s ease-in both; }
.drink-stage .glass-button.slide-in .liquid-art-layer { animation:liquidFadeIn .44s ease-out both; }
.drink-stage .glass-button.is-sipping .glass-float-anchor,
.drink-stage .glass-button[data-geometry="seated"].is-sipping .glass-float-anchor{animation:sipGlass .56s ease-in-out!important;transform-origin:50% 79%}
.glass-button .spill-liquid {position:absolute;left:50%;top:74%;width:54%;height:18%;pointer-events:none;opacity:0;z-index:4;transform:translateX(-10%) scale(.3);transform-origin:left center;background:radial-gradient(ellipse at 45% 50%,var(--drink-accent) 0%,var(--drink-accent) 35%,transparent 72%);border-radius:48%;filter:drop-shadow(0 3px 2px #08030aaa)}
.glass-button .spill-liquid i{position:absolute;left:calc(12% + var(--drop-index)*16%);top:calc(-35% - var(--drop-index)*5%);width:10px;height:15px;border-radius:35% 60% 45% 65%;background:var(--drink-accent);opacity:0;transform:rotate(-35deg)}
.drink-stage .glass-button.is-spilling .glass-float-anchor,
.drink-stage .glass-button[data-geometry="seated"].is-spilling .glass-float-anchor {animation:tipDrink 1.1s ease-in forwards!important;transform-origin:50% 79%;}
.drink-stage .glass-button.is-spilled .glass-float-anchor,
.drink-stage .glass-button[data-geometry="seated"].is-spilled .glass-float-anchor {animation:none!important;transform:translate(25%,6%) rotate(68deg)!important;transform-origin:50% 79%;opacity:.5;}
.drink-stage .glass-button.is-spilling .spill-liquid {animation:pourDrink 1.1s ease-out forwards;}
.drink-stage .glass-button.is-spilling .spill-liquid i {animation:spillDrop .75s ease-in forwards;animation-delay:calc(.18s + var(--drop-index)*.06s)}
.drink-stage .glass-button.is-spilled .spill-liquid {opacity:.7;transform:translateX(-10%) scale(1);}
.drink-stage .glass-button.is-spilling .glass-shadow,.drink-stage .glass-button.is-spilled .glass-shadow{opacity:.25;transition:opacity .5s}
.drink-stage .glass-button:not(.is-spilling):not(.is-spilled) .glass-float-anchor {opacity:1}
.progress-track{position:relative}
.progress-track::after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(var(--progress-step,10%) - 2px),#130d27cc calc(var(--progress-step,10%) - 2px),#130d27cc var(--progress-step,10%))}
@keyframes tipDrink {0%{transform:none}22%{transform:translate(1%,0) rotate(-5deg)}65%,100%{transform:translate(25%,6%) rotate(68deg)}}
@keyframes sipGlass {0%,100%{transform:translateY(-10px) rotate(0deg)}30%{transform:translateY(-12px) rotate(-2deg)}70%{transform:translateY(-12px) rotate(2deg)}}
@keyframes pourDrink {0%,20%{opacity:0;transform:translateX(-10%) scale(.2)}55%{opacity:.95}100%{opacity:.7;transform:translateX(-10%) scale(1)}}
@keyframes spillDrop {0%{opacity:0;transform:translate(-30px,-30px) rotate(-35deg)}25%{opacity:.9}100%{opacity:0;transform:translate(40px,24px) rotate(35deg)}}
@keyframes liquidFadeOut {to{opacity:0}}
@keyframes liquidFadeIn {from{opacity:0}to{opacity:.94}}
@media(prefers-reduced-motion:reduce){
 .drink-stage .glass-button.is-spilling .glass-float-anchor,
 .drink-stage .glass-button[data-geometry="seated"].is-spilling .glass-float-anchor,
 .drink-stage .glass-button.is-spilled .glass-float-anchor,
 .drink-stage .glass-button[data-geometry="seated"].is-spilled .glass-float-anchor {animation:none!important;transform:none!important;opacity:.7}
 .drink-stage .glass-button.is-sipping .glass-float-anchor,
 .drink-stage .glass-button[data-geometry="seated"].is-sipping .glass-float-anchor {animation:none!important;transform:none!important}
 .drink-stage .glass-button .spill-liquid,.drink-stage .glass-button .spill-liquid i,.drink-stage .glass-button .liquid-art-layer {animation:none!important;transition:none!important}
 .drink-stage .glass-button.is-spilling .spill-liquid {opacity:.7;transform:translateX(-10%) scale(1)}
}

/* Stable image registration and a stationary coaster; motion is on the wrapper. */
.drink-stage .glass-button:where(:not(.is-sipping,.is-drinking,.is-spilling,.is-spilled,.slide-in,.slide-out)) .glass-float-anchor {animation:gentleGlassBob 4.2s ease-in-out infinite!important;transform-origin:50% 79%;}
.drink-stage .glass-button.is-drinking .glass-float-anchor {animation:gentleGlassSip 1.4s ease-in-out infinite!important;transform-origin:50% 79%;}
@keyframes gentleGlassBob {0%,100%{transform:translateY(-8px)}50%{transform:translateY(-15px)}}
@keyframes gentleGlassSip {0%,100%{transform:translateY(-11px) rotate(0deg)}25%{transform:translateY(-13px) rotate(-2deg)}75%{transform:translateY(-13px) rotate(2deg)}}
body[data-player-motion='off'] .drink-stage .glass-button[data-pack][data-frame] .glass-float-anchor,
body[data-ambient-motion='off'] .drink-stage .glass-button[data-pack][data-frame] .glass-float-anchor {animation:none!important;transform:none!important;}
@media(prefers-reduced-motion:reduce){body .drink-stage .glass-button[data-pack][data-frame][data-drink] .glass-float-anchor{animation:none!important;transform:none!important;}}
