/* 狗妹全屏场景：每次播放一个独立舞台，全部装饰和动画留在当前 layer 子树（2026-10-20 全量动画升级）。 */
.puppy-scene{position:absolute;inset:0;container-type:size;pointer-events:none;font-family:-apple-system,"PingFang SC",sans-serif;overflow:hidden}
.puppy-scene *{box-sizing:border-box}.puppy-scene .screen{position:absolute;inset:0;overflow:hidden;isolation:isolate}
.puppy-scene .veil{position:absolute;inset:0;background:linear-gradient(160deg,var(--paper),var(--wash));opacity:.92}
.puppy-scene .hero{position:absolute;z-index:3;transform-origin:50% 65%;filter:drop-shadow(0 16px 13px #6e3c4825)}
.puppy-scene .floor{position:absolute;left:50%;top:76%;width:64%;height:4%;border-radius:50%;background:radial-gradient(ellipse,var(--ink),transparent 70%);opacity:.2}
.puppy-scene .fx-object{position:absolute;z-index:4;font-size:clamp(34px,8cqw,70px);line-height:1.2;color:var(--ink);text-align:center}
.puppy-scene .fx-particle{z-index:2;font-size:25px}.puppy-scene .fx-wave{width:22%;aspect-ratio:1;border:3px solid white;border-radius:50%;z-index:2}
.puppy-scene .fx-check{width:18%;aspect-ratio:1;background:#ffffffd9;border:3px double var(--ink);border-radius:18px;display:grid;place-items:center;font-weight:900;box-shadow:0 5px 0 #688a6512}
.puppy-scene .fx-bubble{padding:8px 15px;border-radius:24px 24px 4px 24px;background:#ffffffe8;font-size:32px;box-shadow:0 5px 20px #36443c14}
.puppy-scene .fx-ray{left:49.5%;top:10%;width:1%;height:80%;background:linear-gradient(transparent,var(--ink) 2% 12%,transparent 14% 84%,var(--ink) 86% 98%,transparent);z-index:1;transform-origin:center}
.puppy-scene .fx-spotlight{top:-5%;width:44%;height:100%;background:linear-gradient(#fff7dc88,#fff7dc11);clip-path:polygon(45% 0,55% 0,100% 100%,0 100%);z-index:1;transform-origin:50% 0}
.puppy-scene .fx-water{left:-10%;width:120%;border-radius:45% 45% 0 0;background:linear-gradient(#b0e9f2b0,#74cbe8);border-top:4px solid #ffffffb5;z-index:2}
.puppy-scene .fx-battery{left:31%;top:18%;width:38%;height:6%;border:3px solid var(--ink);border-radius:8px;padding:5px;background:#fffd;font-size:0}
.puppy-scene .fx-battery:after{content:'';position:absolute;right:-8px;top:24%;width:5px;height:50%;border-radius:0 3px 3px 0;background:var(--ink)}
.puppy-scene .fx-battery>div{height:100%;background:#65b983;transform-origin:left;border-radius:2px}
.puppy-scene .fx-cushion{left:15%;top:66%;width:70%;height:14%;border-radius:50%;background:linear-gradient(#fff,#ece6f6);box-shadow:0 8px 16px #756f8d15;z-index:2}
.puppy-scene .fx-podium{left:25%;top:70%;width:50%;height:13%;border:3px solid #fff8;border-radius:50% 50% 12px 12px;background:linear-gradient(#fff5b5,#e5b956);z-index:2}
.puppy-scene .fx-curtain{top:0;bottom:0;width:50%;background:repeating-linear-gradient(90deg,#e9c27e,#ffe7b4 25px,#e9c27e 50px);z-index:8}
.puppy-scene .night .veil,.puppy-scene .moon .veil{background:linear-gradient(#292447,#766895)}
.puppy-scene .fx-envelope{left:15%;top:57%;width:70%;height:25%;background:linear-gradient(150deg,#ffe9e4 49%,#d7a8b7 50%,#fff4ef 51%);border:3px solid white;border-radius:12px;box-shadow:0 6px 22px #59364f18;z-index:2}
/* 抱抱双手：23-baobao 原画同款圆形手掌 + 一大三小肉垫（P-026，2026-10-21 用户审核通过）；亲吻废稿不混入。 */
.puppy-scene .fx-hug-paw{top:43%;width:19%;height:auto;aspect-ratio:1;max-width:210px;border-radius:50%;background:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 68 68'%3E%3Ccircle cx='34' cy='34' r='28' fill='%23fff' stroke='%231F1F1F' stroke-width='3'/%3E%3Cg fill='%23FF9DB2'%3E%3Cellipse cx='34' cy='40.4' rx='11.5' ry='8.9'/%3E%3Cellipse cx='21.3' cy='25.1' rx='4.6' ry='5.3'/%3E%3Cellipse cx='34' cy='20' rx='4.6' ry='5.3'/%3E%3Cellipse cx='46.7' cy='25.1' rx='4.6' ry='5.3'/%3E%3C/g%3E%3C/svg%3E");filter:drop-shadow(0 6px 0 #0000000d);z-index:5}
.puppy-scene .fx-moon{width:min(58cqw,42cqh);aspect-ratio:1;left:calc(50% - min(29cqw,21cqh));top:9%;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff8d4,#edcf85);box-shadow:0 0 40px #fff2a950;z-index:1}
.puppy-scene .fx-count{font-size:clamp(60px,15cqw,110px);font-weight:900;text-shadow:0 3px white}.puppy-scene.is-reduced .floor{opacity:.15}
@media(prefers-reduced-motion:reduce){.puppy-scene{scroll-behavior:auto}}
