/* Approved dream-idle artwork, integrated into the existing PHP homepage. */
body.page-home::before{inset:0;filter:none;opacity:1;background:url('dream-background.webp') center center/cover no-repeat;transform:none}
body.page-home::after{inset:0;background:linear-gradient(90deg,#f5eff9d4 0%,#f5eff98c 28%,#f5eff920 58%,transparent 76%);opacity:1}
body.page-home .mirror-home.dream-live{height:100svh;min-height:850px!important;max-height:none;background:transparent!important;overflow:hidden}
.dream-live .dream-ensemble{position:absolute;left:34%;right:1%;top:110px;bottom:70px;isolation:isolate;pointer-events:none}
#dream-character-stage{position:absolute;inset:0;z-index:1;pointer-events:none}
#dream-character-stage canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#dream-character-fallback{position:absolute;left:0;top:6%;width:100%;height:88%;object-fit:contain;pointer-events:none}
#dream-character-effects{z-index:2}
#dream-character-stage [hidden]{display:none!important}
.dream-live .bubble-field{position:absolute;inset:0;height:auto;width:auto;z-index:3!important}
.dream-live .role-bubble{display:grid;inset:auto;position:absolute;width:clamp(78px,7.1vw,118px);aspect-ratio:1;border-radius:50%;isolation:isolate}
.dream-live .role-bubble img{position:absolute;inset:6%;width:88%;height:88%;object-fit:contain}
.dream-live .role-bubble .magician-video{object-position:50% 5%}
.dream-live .role-bubble .knight-video{object-position:50% 45%}
.dream-live .role-bubble span{position:absolute;left:50%;right:auto;top:calc(100% + 5px);bottom:auto;transform:translateX(-50%);white-space:nowrap;color:#49355f;font-size:11px;line-height:1.5;letter-spacing:0;padding:2px 9px;border-radius:12px;background:#faf4ffe8;box-shadow:0 1px 8px #51416a15}
.dream-live .bubble-bear{left:17%;top:7%;width:clamp(90px,8.2vw,136px)}
.dream-live .bubble-qs{left:1%;top:25%}
.dream-live .bubble-mss{left:7%;top:48%;width:clamp(120px,10.8vw,180px)}
.dream-live .bubble-jz{left:20%;bottom:7%;width:clamp(68px,6vw,100px)}
.dream-live .bubble-lw{right:21%;top:2%;width:clamp(68px,6vw,100px)}
.dream-live .bubble-cat{right:2%;top:13%}
.dream-live .bubble-awakened-knight{right:2%;top:38%;width:clamp(115px,10.2vw,170px)}
.dream-live .bubble-qbt{right:1%;top:68%;width:clamp(78px,7.2vw,120px)}
.dream-live .bubble-dz{right:21%;bottom:4%;width:clamp(78px,7vw,116px)}
.dream-live .welcome{left:6%;top:31%;width:31%;max-width:460px;z-index:12}
.dream-live .welcome h1{font-size:clamp(36px,3.3vw,64px);color:#35284a;line-height:1.35;letter-spacing:.09em;text-shadow:0 2px 24px #fff9}
.dream-live .welcome p{color:#594667;text-shadow:0 1px 12px #fff;line-height:1.9}
.dream-live .primary{background:#51416a;border-color:#51416a;color:white}
.dream-live .guild-id{color:#594667}
.dream-live .news{left:6%;bottom:82px;width:36%;max-width:610px;z-index:12;background:#faf6f6eb;border-color:#c0a7d4;box-shadow:0 10px 36px #55446b12}
.dream-live .news strong{color:#453653;font-size:clamp(13px,1.1vw,18px)}
.dream-live .news small{color:#665574}
.dream-live .character-name{right:27%;bottom:35px;z-index:12;background:#faf4ffcf;color:#49355f;padding:7px 14px;border-radius:8px}
.dream-live .character-name strong{font-size:18px}
.dream-live .motion-toggle{position:absolute;top:auto;bottom:30px;right:3%;z-index:16;pointer-events:auto;background:#faf4ffec;border:1px solid #ac95c5;color:#49355f;border-radius:24px;padding:10px 16px;font-size:12px;min-height:40px}
.dream-live .home-footer{left:6%;right:auto;bottom:28px;max-width:35%;font-size:10px;line-height:1.7;color:#594667;z-index:12}
@media(min-width:801px) and (max-width:1200px){
 .dream-live .dream-ensemble{left:34%;right:0}
 .dream-live .welcome{left:4%;width:32%}
 .dream-live .welcome h1{font-size:36px}
 .dream-live .welcome p{font-size:13px;letter-spacing:0}
 .dream-live .news{left:4%;width:36%;padding:16px;gap:10px}
 .dream-live .news small{font-size:11px}
 .dream-live .bubble-bear{left:10%;top:6%;width:85px}
 .dream-live .bubble-lw{right:18%;top:3%;width:68px}
 .dream-live .bubble-mss{left:0%;top:51%;width:112px}
 .dream-live .bubble-awakened-knight{right:0%;top:35%;width:110px}
 .dream-live .bubble-qbt{right:0%;top:65%;width:82px}
 .dream-live .bubble-qs{left:0%;top:28%;width:78px}
 .dream-live .bubble-dz{right:14%;bottom:6%;width:82px}
 .dream-live .bubble-jz{left:13%;bottom:8%;width:68px}
 .dream-live .character-name{right:21%;bottom:30px}
}
@media(max-width:800px){
 body.page-home::before{background-position:64% center}
 body.page-home::after{background:linear-gradient(0deg,#e7ddf480,transparent 65%)}
 body.page-home .mirror-home.dream-live{height:1120px;min-height:1120px!important;max-height:none}
 .dream-live .dream-ensemble{left:12px;right:12px;top:125px;bottom:auto;height:600px}
 .dream-live .bubble-field{inset:0;height:100%;width:100%}
 .dream-live .role-bubble{display:grid;inset:auto;width:66px}
 .dream-live .role-bubble span{font-size:9px;top:calc(100% + 3px);bottom:auto;padding:1px 6px}
 .dream-live .bubble-bear{left:15%;top:8%;width:76px}
 .dream-live .bubble-lw{right:19%;top:5%;width:60px}
 .dream-live .bubble-cat{right:1%;top:24%;width:64px}
 .dream-live .bubble-qs{left:0%;top:29%;width:64px}
 .dream-live .bubble-mss{left:0%;top:51%;width:82px}
 .dream-live .bubble-awakened-knight{right:0%;top:44%;width:78px}
 .dream-live .bubble-qbt{right:0%;top:68%;width:66px}
 .dream-live .bubble-jz{left:6%;bottom:8%;width:62px}
 .dream-live .bubble-dz{right:24%;bottom:5%;width:66px}
 .dream-live .welcome{left:24px;right:24px;top:770px;bottom:auto;width:auto;max-width:none}
 .dream-live .welcome::before{content:"";position:absolute;inset:-12px -10px;z-index:-1;border-radius:12px;background:#f6f0faeb;border:1px solid #ffffff80}
 .dream-live .welcome h1{font-size:32px;line-height:1.3;letter-spacing:3px;margin:0 0 10px}
 .dream-live .welcome p{font-size:12px;line-height:1.8;letter-spacing:0;margin:0 0 14px}
 .dream-live .primary{min-height:46px;padding:12px 19px;font-size:13px;gap:32px}
 .dream-live .guild-id,.dream-live .character-name{display:none}
 .dream-live .motion-toggle{top:720px;right:20px;bottom:auto;padding:8px 12px;min-height:36px;font-size:11px}
 .dream-live .news{left:18px;right:18px;top:990px;bottom:auto;width:auto;min-height:86px;padding:13px;gap:10px}
 .dream-live .news strong{font-size:12px;line-height:1.55}
 .dream-live .news small{font-size:10px;line-height:1.6;margin-top:5px}
 .dream-live .home-footer{left:18px;right:18px;bottom:15px;max-width:none;justify-content:center;font-size:8px;letter-spacing:0}
}
