/* 가짜 세로 방송 무대(B안 껍데기): 배경·사람 그림자·채팅·LIVE. 크기는 모두 무대 폭(cqw) 기준. */
.stage{position:relative;overflow:hidden;container-type:size;background:#0b0b10;isolation:isolate;user-select:none;-webkit-user-select:none}
.stage .bg{position:absolute;inset:-5%;animation:drift 16s ease-in-out infinite alternate;will-change:transform}
@keyframes drift{from{transform:scale(1) translate(0,0)}to{transform:scale(1.08) translate(-1.5%,1%)}}
.bg.room{background:radial-gradient(70cqw 48cqh at 24% 16%,rgba(150,92,222,.75),transparent 70%),radial-gradient(80cqw 55cqh at 88% 88%,rgba(28,176,176,.62),transparent 70%),linear-gradient(#2b1c44,#0e1a2c)}
.bg.game{background:radial-gradient(70cqw 50cqh at 70% 22%,rgba(40,120,255,.55),transparent 70%),radial-gradient(70cqw 50cqh at 20% 85%,rgba(30,200,120,.45),transparent 70%),repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 .3cqw,transparent .3cqw 9cqw),linear-gradient(#0b1730,#07101f)}
.bg.shop{background:radial-gradient(70cqw 50cqh at 28% 20%,rgba(255,150,100,.7),transparent 70%),radial-gradient(70cqw 50cqh at 85% 80%,rgba(255,90,150,.55),transparent 70%),repeating-linear-gradient(0deg,rgba(255,255,255,.07) 0 .5cqw,transparent .5cqw 18cqw),linear-gradient(#4a2230,#1c1020)}
.bg.cards{background:radial-gradient(60cqw 50cqh at 50% 30%,rgba(60,170,110,.6),transparent 72%),radial-gradient(70cqw 50cqh at 80% 90%,rgba(220,170,60,.35),transparent 70%),linear-gradient(#0f2a20,#07140f)}
.bg.party{background:radial-gradient(60cqw 45cqh at 20% 20%,rgba(255,60,170,.6),transparent 70%),radial-gradient(70cqw 50cqh at 85% 75%,rgba(60,220,255,.5),transparent 70%),linear-gradient(#1a0b2e,#0a0618)}
.stage .who{position:absolute;left:50%;bottom:-6%;width:70cqw;height:56cqh;margin-left:-35cqw;pointer-events:none;filter:blur(1.3cqw);opacity:.85}
.stage .who::before{content:"";position:absolute;left:50%;top:0;width:25cqw;height:25cqw;margin-left:-12.5cqw;border-radius:50%;background:radial-gradient(circle at 40% 35%,#4a3d63,#241b38)}
.stage .who::after{content:"";position:absolute;left:0;right:0;top:27cqw;bottom:0;border-radius:50% 50% 0 0/42% 42% 0 0;background:linear-gradient(#352a4d,#1a1328)}
.stage .chat{position:absolute;left:3.5cqw;bottom:4.5cqw;width:64cqw;display:flex;flex-direction:column;gap:1.7cqw;opacity:.78;pointer-events:none}
.stage .chat i{display:block;height:4.4cqw;border-radius:2.2cqw;background:radial-gradient(circle at 2.2cqw 50%,rgba(255,255,255,.4) 1.6cqw,transparent 1.7cqw),linear-gradient(90deg,transparent 5.4cqw,rgba(255,255,255,.17) 5.4cqw,rgba(255,255,255,.17) 100%);animation:chatin 7s linear infinite}
.stage .chat i:nth-child(1){width:72%;animation-delay:-1s}.stage .chat i:nth-child(2){width:54%;animation-delay:-3s}.stage .chat i:nth-child(3){width:84%;animation-delay:-5s}.stage .chat i:nth-child(4){width:62%;animation-delay:-2s}
@keyframes chatin{0%{opacity:0;transform:translateY(3cqw)}8%,80%{opacity:1;transform:none}100%{opacity:.3}}
.stage .liveTag{position:absolute;left:4cqw;top:4cqw;display:flex;align-items:center;gap:1.2cqw;padding:.7cqw 2.2cqw .7cqw 1.6cqw;border-radius:99px;background:rgba(0,0,0,.45);font:800 3.1cqw/1 inherit;color:#fff;letter-spacing:.2cqw}
.stage .liveTag b{width:2cqw;height:2cqw;border-radius:50%;background:#ff3b4d;animation:blink 1.4s infinite}
@keyframes blink{50%{opacity:.35}}
/* 실제 작업 층: 배경(.bg·.who) 위, 방송 화면 글자(.chat·LIVE) 아래 */
.stage .real{position:absolute;inset:0;z-index:2;overflow:hidden}
.stage .chat,.stage .liveTag{z-index:3}
.real iframe{position:absolute;left:0;top:0;border:0;opacity:0;transition:opacity .25s cubic-bezier(.23,1,.32,1);background:transparent;pointer-events:none}
.real iframe.on{opacity:1}
.real iframe.k-stage{width:1080px;height:1920px;transform-origin:0 0;transform:scale(var(--k,.3))}
.real iframe.k-show{width:100%;height:100%}
.real video,.real img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.stage.h .real video,.stage.h .real img{object-fit:contain}
.stage.h .chat,.stage.h .liveTag,.stage.h .who{display:none}
.real .gl{position:absolute;inset:0;display:grid;place-items:center;font-size:20cqw;opacity:.5;text-shadow:0 2px 12px rgba(0,0,0,.5)}
