.motion-heart{touch-action:manipulation;transition:color .2s ease,background-color .2s ease}
.motion-heart:not(.detail-heart):not(.favorite){position:relative}
.motion-heart.is-favorite,.motion-heart[aria-pressed=true]{color:#e44782!important}
.motion-heart svg{transform-origin:center;transform-box:fill-box;overflow:visible}
.heart-burst{position:fixed;width:0;height:0;z-index:10000;pointer-events:none}
.heart-burst i{position:absolute;left:-3px;top:-3px;width:6px;height:6px;border-radius:50%}
@media(prefers-reduced-motion:no-preference){
.cover-button,.row-cover,.category-art,.main-play,.today-play{transition:transform .18s ease,box-shadow .2s ease}
.cover-button:active,.row-cover:active,.category:active .category-art{transform:scale(.975)}
.main-play:active,.today-play:active{transform:scale(.92)}
.chip,.nav-item,.child-profile img{transition:background-color .2s ease,color .2s ease,box-shadow .2s ease}
.toast{translate:0 8px;transition:opacity .2s ease,translate .2s ease}
.toast.visible{translate:0 0}
/* Release the translated containing block after entry so fixed safe-area
   glass stays at the viewport edge while a full-screen dialog scrolls. */
dialog[open]{animation:mini-dialog-enter .24s cubic-bezier(.2,.7,.3,1) backwards}
@keyframes mini-dialog-enter{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.cover-button:hover,.row-cover:hover{transform:translateY(-3px)}.category:hover .category-art{transform:translateY(-3px) rotate(-3deg)}}
@media(prefers-reduced-motion:reduce){.motion-heart{transition:none}.heart-burst{display:none}}

.scene-host{position:fixed;inset:0;z-index:200;background:#f8f6ff}.scene-host iframe{width:100%;height:100%;border:0;display:block}.scene-host[hidden],.scene-mini[hidden]{display:none}.scene-expanded{overflow:hidden}.scene-mini{position:fixed;z-index:100;bottom:calc(82px + env(safe-area-inset-bottom,0px));left:16px;right:16px;margin:auto;max-width:540px;display:flex;align-items:center;gap:8px;padding:10px;background:#fff;border:1px solid #e8defb;border-radius:20px;box-shadow:0 8px 30px #39206120}.scene-mini>img{width:44px;height:44px;object-fit:cover;border-radius:12px}.scene-mini button{border:0;background:transparent;color:#4f239d;min-width:44px;min-height:44px;cursor:pointer}.scene-mini .scene-return{flex:1;text-align:left;min-width:0;font:inherit}.scene-return strong,.scene-return small{display:block}.scene-return strong{font-size:13px}.scene-return small{font-size:11px;color:#79668e}.scene-mini svg{width:24px;height:24px}.scene-minimized main{padding-bottom:180px}@media(min-width:920px){.scene-mini{bottom:24px;left:auto;right:32px;width:480px}}
