/* Scoped enhancement: the existing SVG and interaction targets remain the fallback. */
.jelly-glass-canvas{position:absolute;left:-12px;top:-16px;width:240px;height:240px;pointer-events:none;opacity:0;z-index:1}
.glass-ready .jelly-glass-canvas{opacity:1}
.glass-ready .cat-art{visibility:hidden}
.cat-carrier .glass-ready.cat-button{animation:none!important}
.glass-ready .front-paw{background:radial-gradient(ellipse at 28% 22%,#fffbe8 0 8%,#ffdf8580 17%,#f7af3bdc 52%,#d5771fdc 83%,#ffe28bad);border:1px solid #e1a64499;box-shadow:inset 2px 2px 3px #fff6,0 2px 3px #7e512322}
.glass-ready .held-icon{filter:drop-shadow(0 5px 4px #713d3240)}
.glass-ready .sleep-marks{z-index:4}
@media(prefers-reduced-motion:reduce){.jelly-glass-canvas{transition:none}}

@media(max-width:640px){.jelly-glass-canvas{left:-11px;top:-14px;width:218px;height:218px}}

.cat-button{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.glass-ready[data-mochi] .held-icon,.glass-ready[data-mochi] .front-paw{opacity:0;transition:opacity .15s}
@media(max-width:640px){.shelf-track{margin-inline:56px}}

.glass-ready[data-napping] .held-icon,.glass-ready[data-napping] .front-paw{opacity:0}
.glass-ready[data-napping] .sleep-marks{display:block;top:54px;right:6px}
.glass-ready[data-performing]{visibility:hidden}
.jelly-candy-button{border:1px solid #89977766;border-radius:24px;padding:6px 12px;background:#fff8e6;color:#49553b;white-space:nowrap}
.jelly-candy-button:disabled{opacity:.45}
.jelly-theater{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;overflow:hidden;background:transparent;color:#34462d}
.jelly-theater::backdrop{background:#f6e7c6ba;backdrop-filter:blur(3px)}
.jelly-theater .jelly-glass-canvas{visibility:visible;opacity:1;position:absolute;left:50%;top:50%;width:var(--stage-size);height:var(--stage-size);transform:translate(-50%,-50%);animation:jelly-stage-arrive .24s cubic-bezier(.2,.8,.2,1.12) both}
.jelly-theater.is-leaving .jelly-glass-canvas{animation:jelly-stage-return .22s ease-in both}
.jelly-stage-close,.jelly-stage-eat{position:absolute;z-index:3;cursor:pointer;border:1px solid #72835c66;background:#fffbea;color:#354b31;box-shadow:0 5px 24px #58462622;font:inherit}
.jelly-stage-close{right:max(20px,env(safe-area-inset-right));top:max(20px,env(safe-area-inset-top));width:46px;height:46px;border-radius:50%;font-size:28px}
.jelly-stage-eat{bottom:max(30px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);border-radius:30px;padding:16px 24px;font-size:18px;white-space:nowrap}
.jelly-stage-caption{position:absolute;z-index:2;bottom:100px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 40px);padding:12px 20px;border-radius:28px;text-align:center;background:#fffbe6ed;font-size:16px;line-height:1.5}
.jelly-theater[data-kind="prank"] .jelly-stage-caption{bottom:35px}
@keyframes jelly-stage-arrive{from{transform:translate(calc(-50% + var(--from-x)),calc(-50% + var(--from-y))) scale(var(--start-scale))}to{transform:translate(-50%,-50%) scale(1)}}
@keyframes jelly-stage-return{from{transform:translate(-50%,-50%) scale(1)}to{transform:translate(calc(-50% + var(--from-x)),calc(-50% + var(--from-y))) scale(var(--start-scale))}}
@media(max-width:640px){.jelly-candy-button{font-size:10px;padding:5px 8px}.jelly-stage-caption{font-size:14px}}
@media(prefers-reduced-motion:reduce){.jelly-theater .jelly-glass-canvas{animation:none}}

.cat-button{touch-action:manipulation}
.candy-dot{position:relative;display:inline-block;width:.9em;height:.9em;border-radius:50%;background:linear-gradient(135deg,#ffd386,#ee8218);vertical-align:-.03em}
.candy-dot:after{content:'';position:absolute;top:-.15em;left:.45em;width:.45em;height:.22em;background:#718c50;border-radius:100% 0;transform:rotate(-20deg)}
.title-star svg,.tiny-paw svg{vertical-align:-.08em}

.jelly-exhibit{touch-action:manipulation}
