.ent-live-stage{position:fixed;display:flex;align-items:center;justify-content:center;z-index:90;pointer-events:none;overflow:hidden;border-radius:0;background:transparent;backdrop-filter:none;box-shadow:none;border:0;color:#7b6388;isolation:isolate}
.ent-live-stage .ent-effect-close{position:absolute;z-index:12;top:11px;right:12px;width:30px;height:30px;border:1px solid #e3d7ea;border-radius:50%;background:#fff9;color:#9c87ac;font-size:23px;line-height:1;pointer-events:auto}
.ent-live-stage .collectible{display:block;object-fit:contain}
.ent-appearance{display:inline-block;position:relative;vertical-align:middle;width:100%;height:100%;line-height:1}
.ent-appearance>.ornate-frame{display:block;width:100%;height:100%}
.ent-appearance .frame-portrait img,.ent-appearance .frame-portrait svg{width:100%;height:100%;object-fit:cover}
.ent-live-stage .entry-identity .ent-appearance{width:68px;height:76px;margin:0 auto 9px}
.ent-entry-plain-avatar{display:block;width:60px;height:60px;margin:0 auto 9px;border:1px solid #fff;border-radius:19px;overflow:hidden;background:#fff9;box-shadow:0 5px 20px #705a7e18}
.ent-entry-plain-avatar img,.ent-entry-plain-avatar svg{width:100%;height:100%;object-fit:cover}
.ent-live-stage .entry-identity h3{font-size:24px}
.ent-effect-author{position:absolute;bottom:9%;left:8%;right:8%;text-align:center;font-size:12px;color:#8d739e}
.ent-live-stage .fx-caption small{letter-spacing:.5px}
.ent-live-stage .entry-scene .entry-scenery>.vehicle-object{min-width:0;min-height:0}
.ent-live-stage .vehicle-object>.collectible{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;max-width:none}
@media(max-width:760px){.ent-live-stage{border-radius:18px}.ent-effect-author{font-size:11px}.ent-live-stage .fx-caption p{max-width:230px}}

/* Floating room effects override the generated artwork layouts, never the shop cards. */
.ent-floating-stage .ent-effect-close{top:4px;right:5px;width:26px;height:26px;background:#ffffff9c;border:0;box-shadow:none;font-size:21px;color:#927b9e}
.ent-floating-stage .premium-gift-scene,
.ent-live-stage .entry-scene.ent-floating-entry,
.ent-live-stage .entry-scene.ent-floating-entry .entry-scenery{background:none;border:0;box-shadow:none;overflow:visible}
.ent-floating-stage .ent-stage-halo{position:absolute;left:14%;right:14%;top:19%;height:54%;border-radius:50%;background:radial-gradient(ellipse,#f0c6fc38,transparent 67%);filter:blur(12px);animation:ent-halo-breathe 4.6s ease both;pointer-events:none}
.ent-live-stage .entry-scene.ent-floating-entry .entry-scenery>.vehicle-object{left:4%;top:7%;bottom:auto;width:92%;height:64%;min-height:0;perspective:800px;z-index:2}
.ent-floating-stage .entry-scene .vehicle-object>.collectible{filter:drop-shadow(0 22px 9px #4d315a30) drop-shadow(0 0 14px #fff8)}
.ent-live-stage .entry-scene.ent-floating-entry.entry-bicycle .vehicle-object{left:12%;width:76%}
.ent-live-stage .entry-scene.ent-floating-entry.entry-motorcycle .vehicle-object{left:8%;width:84%}
.ent-floating-stage .ent-arrival-caption{position:absolute;z-index:4;bottom:6%;left:5%;right:5%;text-align:center;animation:ent-arrival-copy 5.2s ease both;text-shadow:0 1px 2px #fff,0 0 12px #fff,0 0 22px #fff}
.ent-arrival-caption>strong{display:block;font-size:clamp(16px,3.4vw,24px);font-weight:750;color:#74508d;line-height:1.65;overflow-wrap:anywhere}
.ent-arrival-caption>strong>span{font-size:.7em;font-weight:550;color:#9f759e;margin-left:5px;white-space:nowrap}
.ent-arrival-caption>p{font-size:clamp(12px,2.8vw,15px);font-weight:550;color:#8e6c9d;margin:5px auto 0;line-height:1.8;max-width:430px}
.ent-live-stage .entry-scene.ent-floating-entry .entry-light-line{left:12%;right:12%;top:66%;bottom:auto;height:2px;opacity:.7;background:linear-gradient(90deg,transparent,#e1bbf1,#fff,#f3d7a6,transparent);box-shadow:0 0 15px #c991e7;transform:perspective(260px) rotateX(65deg);animation:ent-ground-glow 5.2s ease both}
.ent-live-stage .entry-scene.ent-floating-entry .voyage-ambience{inset:auto 9% 25%;height:16%;background:repeating-linear-gradient(90deg,transparent 0 58px,#d6b7ea66 60px,transparent 64px);opacity:.5;transform:perspective(250px) rotateX(68deg);mask-image:radial-gradient(ellipse,#000,transparent 65%)}
.ent-live-stage .entry-scene.ent-floating-entry.entry-cruise .voyage-ambience{background:repeating-radial-gradient(ellipse at 50% 10%,transparent 0 15px,#a9d6ea80 17px,transparent 20px);height:20%;bottom:24%}
.ent-live-stage .entry-scene.ent-floating-entry.entry-privatejet .voyage-ambience{inset:0;background:none;transform:none;mask-image:none}
.ent-floating-stage .fx-collectible{left:18%;top:2%;width:64%;height:69%;z-index:2}
.ent-floating-stage .fx-collectible>.collectible{filter:drop-shadow(0 18px 9px #633f5833) drop-shadow(0 0 12px #fff6)}
.ent-floating-stage .fx-firecrackers .fx-collectible{left:25%;top:1%;width:50%;height:68%}
.ent-floating-stage .fx-caption{left:7%;right:7%;bottom:5%;text-shadow:0 1px 2px #fff,0 0 12px #fff,0 0 22px #fff;animation:ent-gift-copy 4.6s ease both}
.ent-floating-stage .fx-caption small{font-size:12px;font-weight:550;color:#9d779f;line-height:1.6;overflow-wrap:anywhere}
.ent-floating-stage .fx-caption strong{font-size:clamp(24px,5vw,33px);font-weight:800;letter-spacing:1px;margin:3px 0 4px;color:#80518d;line-height:1.4}
.ent-floating-stage .fx-caption p{max-width:380px;font-size:12px;line-height:1.8;color:#9874a1}
.ent-floating-stage .fx-speed-lines{inset:10% 8% 31%;background:repeating-linear-gradient(135deg,transparent 0 55px,#dcc2eb55 57px,transparent 59px);mask-image:radial-gradient(ellipse,#000,transparent 65%);opacity:.45}
.ent-floating-stage .fx-orbit{left:13%;top:49%;width:74%;height:15%;border-color:#ddbcf07a;box-shadow:0 0 16px #dfc0ed33}
.ent-floating-stage .ent-impact{position:absolute;inset:7% 10% 28%;pointer-events:none}
.ent-impact>i{position:absolute;inset:24%;border:2px solid #f2cd82;border-radius:50%;opacity:0;animation:ent-impact-ring 4.6s ease both}
.ent-impact>i:nth-child(2){border-color:#c6a4eb;animation-delay:.12s}
.ent-impact>i:nth-child(3){border-color:#fff;animation-delay:.24s}
.ent-floating-stage .meme-scene{width:92%}
.ent-floating-stage .meme-art{background:none;border:0;box-shadow:none;color:#886596;padding:20px 5px;text-shadow:0 2px 0 #fff,0 5px 0 #d5bedf,0 10px 15px #6a3e6c33}
.ent-floating-stage .meme-art strong{font-size:clamp(32px,7vw,52px);font-weight:850;letter-spacing:2px}
.ent-floating-stage .meme-art small,.ent-floating-stage .meme-art em{color:#a384b0;text-shadow:0 1px 2px #fff,0 0 12px #fff}
.ent-floating-stage .meme-art .meme-corner,.ent-floating-stage .meme-art::before,.ent-floating-stage .meme-art::after{display:none}
.ent-floating-stage .meme-polite{width:85%;height:auto;border:0;background:none;border-radius:0;padding:20px 5px}
.ent-floating-stage .meme-polite strong{font-size:clamp(32px,7vw,52px)}
.ent-floating-stage .meme-offline strong{color:#725282;text-shadow:2px 0 #e2a7d8,-2px 0 #c1e8f9,0 4px 0 #e4d2ed,0 8px 14px #73508340}
.ent-floating-stage .meme-drama{color:#a17c42}
.ent-floating-stage .ent-effect-author{bottom:12%;font-size:12px;text-shadow:0 1px 2px #fff,0 0 12px #fff}
@keyframes ent-halo-breathe{0%,100%{opacity:0;transform:scale(.65)}25%,75%{opacity:1;transform:scale(1)}}
@keyframes ent-arrival-copy{0%,16%{opacity:0;transform:translateY(12px) scale(.94)}29%,85%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-8px)}}
@keyframes ent-gift-copy{0%,15%{opacity:0;transform:translateY(12px)}26%,85%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-6px)}}
@keyframes ent-ground-glow{0%,13%,100%{opacity:0;transform:perspective(260px) rotateX(65deg) scaleX(.3)}35%,80%{opacity:.8;transform:perspective(260px) rotateX(65deg) scaleX(1)}}
@keyframes ent-impact-ring{0%,20%{opacity:0;transform:scale(.3) rotateX(25deg)}25%{opacity:.7}42%,100%{opacity:0;transform:scale(1.8) rotateX(25deg)}}
@media(max-width:760px){
 .ent-floating-stage{border-radius:0}
 .ent-live-stage .entry-scene.ent-floating-entry .entry-scenery>.vehicle-object{left:0;top:8%;width:100%;height:61%}
 .ent-live-stage .entry-scene.ent-floating-entry.entry-bicycle .vehicle-object{left:10%;width:80%}
 .ent-live-stage .entry-scene.ent-floating-entry.entry-motorcycle .vehicle-object{left:4%;width:92%}
 .ent-floating-stage .fx-collectible{left:10%;width:80%;top:5%;height:63%}
 .ent-floating-stage .fx-firecrackers .fx-collectible{left:21%;width:58%;top:2%;height:65%}
 .ent-floating-stage .fx-caption{bottom:6%}
 .ent-floating-stage .fx-caption p{max-width:290px;font-size:11px}
 .ent-floating-stage .ent-arrival-caption{bottom:7%}
}
@media(prefers-reduced-motion:reduce){
 .ent-floating-stage .ent-stage-halo,.ent-floating-stage .ent-arrival-caption,.ent-floating-stage .fx-caption,.ent-floating-stage .entry-light-line{animation:none;opacity:1;transform:none}
 .ent-floating-stage .ent-impact{display:none}
}
/* Approved films occupy the complete lower chat area, without a card or text. */
.ent-live-stage.ent-video-stage{position:fixed;z-index:1000;overflow:hidden;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;pointer-events:none;backdrop-filter:none}
.ent-video-host{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ent-video-stage>.ent-effect-close{z-index:3;pointer-events:auto}
/* Only visible while the decoder is waiting; no backdrop over the animation. */
.emoji-room-effect[data-playback="loading"]::after,.ent-video-stage[data-playback="loading"]::after{content:"特效加载中…";position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);padding:8px 14px;border:1px solid #ffffffbb;border-radius:16px;background:#ffffffd9;color:#7c6398;font-size:12px;white-space:nowrap;box-shadow:0 3px 15px #70558e12;pointer-events:none}
