/* ===================== NEXZ 的客厅 · pixel living room ===================== */
.lr-stage{position:relative;height:calc(100vh - 85px);min-height:512px;overflow:hidden;
  --wall:#2c2342;--wall2:#352a4f;--floor:#241a32;--floor2:#2e2240;--wood:#6b4a7a;
  font-family:'Press Start 2P',monospace;image-rendering:pixelated}
.lr-room{position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.18),transparent 30%,transparent 70%,rgba(0,0,0,.18)),
    linear-gradient(var(--wall) 0 68%,var(--wood) 68% 70%,var(--floor) 70% 100%)}
/* floor perspective lines */
.lr-room:after{content:"";position:absolute;left:0;right:0;bottom:0;height:30%;pointer-events:none;
  background:repeating-linear-gradient(90deg,transparent 0 11.1%,rgba(0,0,0,.13) 11.1% 11.3%);opacity:.5}
/* 梦幻背景墙层：漂浮星云 + 闪烁星点（在房间底色之上、家具之下；随主题 mist 色变）*/
.lr-dream{position:absolute;inset:0 0 30% 0;z-index:0;pointer-events:none;overflow:hidden}
.lr-dream i{position:absolute;border-radius:50%;filter:blur(40px);opacity:.5;mix-blend-mode:screen;
  will-change:transform;animation:dreamDrift 22s ease-in-out infinite}
.lr-dream i:nth-child(1){width:44%;height:60%;left:-8%;top:-12%;background:radial-gradient(circle,var(--mist-violet),transparent 65%)}
.lr-dream i:nth-child(2){width:42%;height:56%;right:-8%;top:-8%;background:radial-gradient(circle,var(--mist-pink),transparent 65%);animation-delay:-7s}
.lr-dream i:nth-child(3){width:50%;height:48%;left:28%;top:6%;background:radial-gradient(circle,var(--mist-blue),transparent 65%);animation-delay:-13s}
.lr-dream:after{content:"";position:absolute;inset:0;
  background-image:
    radial-gradient(1.6px 1.6px at 18% 22%,#fff,transparent),
    radial-gradient(1.4px 1.4px at 70% 14%,#fff,transparent),
    radial-gradient(1px 1px at 44% 34%,#fff,transparent),
    radial-gradient(1.6px 1.6px at 86% 30%,#fff,transparent),
    radial-gradient(1px 1px at 9% 44%,#fff,transparent),
    radial-gradient(1.4px 1.4px at 58% 50%,#fff,transparent),
    radial-gradient(1px 1px at 33% 12%,#fff,transparent),
    radial-gradient(1.5px 1.5px at 92% 52%,#fff,transparent);
  opacity:.55;animation:dreamTwinkle 3.6s steps(2) infinite}
@keyframes dreamDrift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(5%,6%) scale(1.16)}}
@keyframes dreamTwinkle{0%,100%{opacity:.28}50%{opacity:.72}}
@media(prefers-reduced-motion:reduce){.lr-dream i,.lr-dream:after{animation:none}}
/* 景深暗角 + 中央舞台聚光：装饰退后，可点击物件与小人(z≥5)浮在前面 */
.lr-room:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:4;
  background:radial-gradient(120% 75% at 50% 80%,rgba(255,205,150,.12),transparent 46%)}

/* title */
.lr-title{position:absolute;left:50%;top:4.3%;transform:translateX(-50%);z-index:8;text-align:center;
  font-size:26px;color:#fff;letter-spacing:1px;text-shadow:3px 3px 0 #1a1228,0 0 18px rgba(155,139,255,.5);line-height:1.5;white-space:nowrap}
.lr-title span{color:#ff9bc7}
.lr-title em{display:block;font-size:9px;color:#c8bfff;margin-top:12px;font-style:normal;animation:tipblink 1.6s steps(2) infinite}
@keyframes tipblink{50%{opacity:.35}}

/* generic interactive object — 持续微光标记“可点击” */
.lr-obj{position:absolute;z-index:5;border:0;background:none;cursor:pointer;padding:0;
  font-family:inherit;transition:transform .18s,filter .18s;animation:objpulse 2.8s ease-in-out infinite}
@keyframes objpulse{0%,100%{filter:drop-shadow(2px 4px 0 rgba(0,0,0,.32))}
  50%{filter:drop-shadow(2px 4px 0 rgba(0,0,0,.32)) drop-shadow(0 0 9px rgba(255,233,168,.65))}}
.lr-obj:hover{transform:translateY(-5px) scale(1.04);animation:none;
  filter:drop-shadow(0 0 13px rgba(255,233,168,.95)) brightness(1.12);z-index:9}
.lr-obj:focus-visible{outline:3px solid #ff9bc7;outline-offset:3px}
/* 角标：可点击提示 ✦ */
.lr-obj .lr-tip:after{content:var(--cta,"· 点击进入");color:#b5651d;font-size:9px}
.lr-tip{position:absolute;left:50%;bottom:100%;transform:translate(-50%,-6px);white-space:nowrap;z-index:7;
  font-size:12px;color:#1a1228;background:#ffe9a8;border:3px solid #1a1228;padding:8px 12px;border-radius:4px;
  box-shadow:4px 4px 0 rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}
.lr-obj:hover .lr-tip{opacity:1;transform:translate(-50%,-12px)}

/* ---- window + dreamcore sky ---- */
.lr-window{position:absolute;left:3.1%;top:13.5%;width:25%;height:40%;z-index:2;
  border:7px solid #1a1228;border-radius:4px;box-shadow:0 0 0 5px var(--wood),6px 8px 0 rgba(0,0,0,.35);overflow:hidden;background:#0a0a16}
.lr-sky{position:absolute;inset:0;background:linear-gradient(#3a2c5e,#7a4d77 55%,#ffae8a 100%)}
.lr-sky b{position:absolute;border-radius:50%;filter:blur(14px);opacity:.7;mix-blend-mode:screen}
.lr-sky b:nth-child(1){width:60%;height:40%;left:-10%;top:8%;background:#bb9bff;animation:skyd 16s ease-in-out infinite}
.lr-sky b:nth-child(2){width:55%;height:38%;right:-8%;top:24%;background:#ff9bc7;animation:skyd 20s ease-in-out infinite reverse}
.lr-sky b:nth-child(3){width:70%;height:40%;left:10%;bottom:-6%;background:#ffd6a0;animation:skyd 18s ease-in-out infinite}
@keyframes skyd{0%,100%{transform:translate(0,0)}50%{transform:translate(10%,6%)}}
.lr-sky .cloud{position:absolute;height:9px;background:rgba(255,255,255,.55);border-radius:6px;box-shadow:10px 0 0 -1px rgba(255,255,255,.4),-10px 1px 0 -2px rgba(255,255,255,.35)}
.lr-sky .cloud.c1{width:40px;top:26%;left:-30%;animation:cloudm 22s linear infinite}
.lr-sky .cloud.c2{width:28px;top:50%;left:-30%;animation:cloudm 30s linear infinite 4s}
@keyframes cloudm{to{left:130%}}
.lr-sky .star{position:absolute;width:3px;height:3px;background:#fff;box-shadow:0 0 5px #fff;animation:tw 2.2s steps(2) infinite}
.lr-sky .star.s1{left:18%;top:14%}.lr-sky .star.s2{left:62%;top:10%;animation-delay:.6s}
.lr-sky .star.s3{left:80%;top:30%;animation-delay:1.1s}.lr-sky .star.s4{left:40%;top:20%;animation-delay:1.6s}
@keyframes tw{50%{opacity:.2}}
.lr-sky .hill{position:absolute;left:0;right:0;bottom:0;height:22%;background:#2e2350;border-radius:40% 50% 0 0/100% 100% 0 0}
.lr-win-frame{position:absolute;inset:0;z-index:2;pointer-events:none}
.lr-win-frame:before,.lr-win-frame:after{content:"";position:absolute;background:#1a1228}
.lr-win-frame:before{left:0;right:0;top:50%;height:6px;transform:translateY(-50%)}
.lr-win-frame:after{top:0;bottom:0;left:50%;width:6px;transform:translateX(-50%)}
.lr-curtain{position:absolute;top:-2px;bottom:-2px;width:18%;z-index:3;background:repeating-linear-gradient(90deg,#b85b8e 0 6px,#9c4a78 6px 12px)}
.lr-curtain.left{left:-2px;border-right:3px solid #1a1228}
.lr-curtain.right{right:-2px;border-left:3px solid #1a1228}

/* ---- calendar ---- */
.lr-cal{left:61.7%;top:28.9%;right:auto;bottom:auto;width:13%;height:19%;background:#fff6e6;border:4px solid #1a1228;border-radius:4px;
  box-shadow:5px 6px 0 rgba(0,0,0,.35);display:flex;flex-direction:column;overflow:visible}
.cal-top{height:22%;background:#ff5b8e;border-bottom:3px solid #1a1228;position:relative}
.cal-top:before,.cal-top:after{content:"";position:absolute;top:-7px;width:5px;height:12px;background:#1a1228}
.cal-top:before{left:22%}.cal-top:after{right:22%}
.cal-month{font-size:9px;color:#fff;position:absolute;top:5px;left:0;right:0;text-align:center;z-index:1}
.cal-grid{flex:1;display:grid;grid-template-columns:repeat(7,1fr);gap:1px;padding:4px}
.cal-grid i{font-style:normal;background:#e9dcc4;border-radius:1px;display:flex;align-items:center;justify-content:center;
  font-size:4.5px;font-weight:700;color:#7a5a3a;line-height:1}
.cal-grid i.today{background:#ff5b8e;color:#fff;box-shadow:0 0 0 1px #1a1228}
.cal-grid i.blank{background:transparent;color:transparent}
/* 手机版替代视图：只显示当天大字日期 + 英文全月名（默认隐藏）*/
.cal-day,.cal-mfull{display:none}

/* ---- bookshelf ---- */
.lr-shelf{right:3%;top:14%;width:14%;height:54%;z-index:1;
  background:linear-gradient(160deg,#4a3a86,#241a48);border:5px solid #0c0a1c;border-radius:4px;
  box-shadow:7px 9px 0 rgba(0,0,0,.4),inset 0 0 0 3px #5cc8f0,0 0 20px rgba(124,107,255,.55);
  display:flex;flex-direction:column;justify-content:space-between;padding:9px 8px 11px;gap:8px}
/* 落地的两只金属脚（带霓虹） */
.lr-shelf:before,.lr-shelf:after{content:"";position:absolute;bottom:-13px;width:22%;height:13px;
  background:linear-gradient(180deg,#9aa6d8,#3a3f6a);border:2px solid #0c0a1c;border-radius:0 0 4px 4px}
.lr-shelf:before{left:8%}.lr-shelf:after{right:8%}
.shelf-row{flex:1;display:flex;align-items:flex-end;gap:4px;padding:0 5px 5px;
  border-bottom:7px solid #1a1238;box-shadow:inset 0 -2px 0 rgba(92,200,240,.3);
  background:linear-gradient(180deg,rgba(92,200,240,.14),rgba(255,91,168,.14))}
.shelf-row i{flex:1;height:70%;background:var(--bc);border:2px solid #1a1228;border-radius:1px 1px 0 0;position:relative;overflow:hidden}
.shelf-row i:nth-child(2n){height:88%}.shelf-row i:nth-child(3n){height:60%}
.shelf-row i b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;line-height:1;
  font-size:5px;font-weight:800;letter-spacing:0;color:rgba(26,18,40,.85)}
/* 书架底层：抽屉柜 */
.shelf-row.drawers{align-items:stretch;justify-content:space-between;gap:3px;border-bottom:5px solid #3a2750;background:rgba(0,0,0,.22)}
.shelf-row.drawers i{flex:1;height:100%;writing-mode:horizontal-tb;background:linear-gradient(180deg,#8a6090,#6b4a7a);
  border:2px solid #1a1228;border-radius:1px;position:relative}
.shelf-row.drawers i:before{content:"";position:absolute;left:32%;right:32%;top:42%;height:2px;background:#1a1228;border-radius:1px}

/* ---- plushie：大熊 + 小狐狸（去掉底座） ---- */
.lr-plush{left:79.6%;top:79.8%;right:auto;bottom:auto;width:13%;height:16%;display:flex;align-items:flex-end;justify-content:center;z-index:7}
.plush-doll{font-size:38px;position:relative;z-index:1;filter:drop-shadow(2px 3px 0 rgba(0,0,0,.4))}
.plush-doll.d2{font-size:22px;margin-left:-14px;align-self:flex-end;z-index:0}

/* ---- TV ---- */
.lr-tv{left:1.9%;top:59.5%;width:24%;height:30%}
.tv-screen{position:absolute;left:6%;right:6%;top:0;height:72%;background:#0c0c1a;border:6px solid #1a1228;border-radius:6px;
  box-shadow:0 0 0 4px #6b4a7a,5px 6px 0 rgba(0,0,0,.4);overflow:hidden;display:flex}
.tv-screen .tvcard{flex:1;height:100%;animation:tvflip 3.6s steps(1) infinite}
.tv-screen .tvcard:nth-child(1){background:linear-gradient(135deg,#9b8bff,#ff84bd)}
.tv-screen .tvcard:nth-child(2){background:linear-gradient(135deg,#8fb8ff,#bb9bff);animation-delay:1.2s}
.tv-screen .tvcard:nth-child(3){background:linear-gradient(135deg,#ffb892,#ff84bd);animation-delay:2.4s}
@keyframes tvflip{0%,30%{opacity:1}31%,100%{opacity:.25}}
.tv-scan{position:absolute;inset:0;background:repeating-linear-gradient(rgba(255,255,255,.06) 0 2px,transparent 2px 4px);pointer-events:none}
.tv-stand{position:absolute;left:31%;right:31%;top:70%;height:18%;background:#3a2750;border:3px solid #1a1228;border-top:0}
.lr-tv:before{content:"";position:absolute;left:16%;right:16%;bottom:4%;height:10%;background:#1a1228;border-radius:3px}

/* ---- sofa + people (中央舞台) ---- */
.lr-sofa{position:absolute;left:26.2%;top:59.2%;right:auto;bottom:auto;width:56%;height:22%;z-index:3}
.sofa-back{position:absolute;left:8%;right:8%;top:0;height:58%;background:#7c5bd6;border:4px solid #1a1228;border-radius:10px 10px 4px 4px;box-shadow:inset 0 -6px 0 rgba(0,0,0,.2)}
.sofa-seat{position:absolute;left:0;right:0;bottom:14%;height:42%;background:#8e6ce6;border:4px solid #1a1228;border-radius:8px;box-shadow:inset 0 4px 0 rgba(255,255,255,.12)}
.sofa-arm{position:absolute;bottom:10%;width:13%;height:50%;background:#6b4ac4;border:4px solid #1a1228;border-radius:8px}
.sofa-arm.l{left:-2%}.sofa-arm.r{right:-2%}
.lr-people{position:absolute;left:27.4%;top:48.4%;right:auto;bottom:auto;width:54%;height:28%;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;pointer-events:none}
.lr-prow{display:flex;align-items:flex-end;justify-content:center;width:100%}
.lr-prow.back{gap:5%;z-index:1;margin-bottom:-15px}
.lr-prow.front{gap:7%;z-index:2}
.lr-prow.back .lr-person{--ps:54px}
.lr-prow.front .lr-person{--ps:54px}
/* 沙发上的抱枕小人 */
.lr-person{position:relative;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;pointer-events:auto;
  width:var(--ps,46px);height:var(--ps,46px);background:var(--pc,#ff9ecb);border:3px solid #1a1228;border-radius:15px;
  box-shadow:inset 0 4px 0 rgba(255,255,255,.32),inset 0 -5px 0 rgba(0,0,0,.16),0 4px 7px rgba(0,0,0,.32),0 0 12px 2px var(--pc,#ff9ecb);
  animation:bob 2.6s ease-in-out infinite,personGlow 2.6s ease-in-out infinite;transition:transform .15s}
@keyframes personGlow{0%,100%{box-shadow:inset 0 4px 0 rgba(255,255,255,.32),inset 0 -5px 0 rgba(0,0,0,.16),0 4px 7px rgba(0,0,0,.32),0 0 8px 1px var(--pc,#ff9ecb)}50%{box-shadow:inset 0 4px 0 rgba(255,255,255,.32),inset 0 -5px 0 rgba(0,0,0,.16),0 4px 7px rgba(0,0,0,.32),0 0 16px 4px var(--pc,#ff9ecb)}}
.lr-person .pf{font-size:calc(var(--ps,46px) * .58);line-height:1;filter:drop-shadow(1px 1px 0 rgba(0,0,0,.22))}
.lr-person:nth-child(2n){animation-delay:.4s}.lr-person:nth-child(3n){animation-delay:.8s}.lr-person:nth-child(4n){animation-delay:1.2s}
.lr-person:hover{transform:translateY(-8px) scale(1.1) rotate(-2deg);z-index:5}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.lr-person .pname{position:absolute;left:50%;bottom:100%;transform:translate(-50%,-4px);white-space:nowrap;font-size:7px;
  color:#1a1228;background:#d7ccff;border:2px solid #1a1228;padding:3px 5px;border-radius:3px;opacity:0;transition:.15s;box-shadow:2px 2px 0 rgba(0,0,0,.4)}
.lr-person:hover .pname{opacity:1;transform:translate(-50%,-8px)}
@media(hover:none){.lr-person .pname{display:none}}

/* ---- 椅子 (舞台道具) ---- */
.lr-chair{position:absolute;bottom:11%;width:8%;height:15%;z-index:5}
.lr-chair.l{left:15%}.lr-chair.r{right:15%}
.lr-chair .ch-back{position:absolute;left:18%;top:0;width:64%;height:42%;background:#6b4ac4;border:3px solid #1a1228;border-radius:4px 4px 2px 2px}
.lr-chair .ch-seat{position:absolute;left:5%;right:5%;top:40%;height:20%;background:#8e6ce6;border:3px solid #1a1228;border-radius:3px}
.lr-chair .ch-leg{position:absolute;bottom:0;width:10%;height:42%;background:#3a2750;border:2px solid #1a1228}
.lr-chair .ch-leg.a{left:14%}.lr-chair .ch-leg.b{right:14%}

/* ---- 麦克风架 (舞台道具) ---- */
.lr-mic{display:none}
.lr-mic.m1{left:32%}.lr-mic.m2{right:32%}
.lr-mic .mic-pole{position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:22%;height:88%;background:#2a2140;border:2px solid #1a1228}
.lr-mic .mic-head{position:absolute;left:50%;top:-2%;transform:translateX(-50%);width:120%;aspect-ratio:1;background:#3a2750;border:3px solid #1a1228;border-radius:50%;box-shadow:inset 0 0 0 2px #6b4a7a}
.lr-mic:before{content:"";position:absolute;left:50%;bottom:-2px;transform:translateX(-50%);width:60%;height:6px;background:#1a1228;border-radius:2px}
@keyframes micglow{0%,100%{box-shadow:inset 0 0 0 2px #6b4a7a}50%{box-shadow:inset 0 0 0 2px #6b4a7a,0 0 10px #9b8bff}}

/* ---- coffee table (移到角落) ---- */
.lr-coffee{left:40.3%;top:86.9%;right:auto;bottom:auto;width:26%;height:13%;z-index:6}
.cof-table{position:absolute;left:0;right:0;top:34%;height:34%;background:#7a4d77;border:4px solid #1a1228;border-radius:5px;box-shadow:5px 5px 0 rgba(0,0,0,.3)}
.lr-coffee:before{content:"";position:absolute;left:10%;bottom:0;width:6%;height:40%;background:#3a2750;border:2px solid #1a1228}
.lr-coffee:after{content:"";position:absolute;right:10%;bottom:0;width:6%;height:40%;background:#3a2750;border:2px solid #1a1228}
.cof-cup{position:absolute;left:35%;top:12%;transform:translateX(-50%);font-size:27px;z-index:2;filter:drop-shadow(1px 2px 0 rgba(0,0,0,.4))}
.cof-cup .steam{position:absolute;left:40%;top:-8px;width:3px;height:10px;background:rgba(255,255,255,.5);border-radius:3px;animation:steam 1.8s ease-in-out infinite}
.cof-cup .steam.s2{left:58%;animation-delay:.9s}
/* 茶几上的手机（→ 官方·社媒）*/
.cof-phone{position:absolute;right:24%;top:38%;width:13%;height:24%;background:#15111f;border:2px solid #1a1228;
  border-radius:4px;transform:rotate(-12deg);z-index:1;box-shadow:1px 2px 0 rgba(0,0,0,.4);overflow:hidden}
.cof-phone .cp-scr{position:absolute;inset:2px;border-radius:2px;
  background:linear-gradient(150deg,#7c6bff,#ff84bd);box-shadow:inset 0 0 4px rgba(255,255,255,.4);
  animation:cpGlow 2.6s ease-in-out infinite}
@keyframes cpGlow{0%,100%{opacity:.78}50%{opacity:1}}
@keyframes steam{0%{opacity:0;transform:translateY(4px) scaleY(.6)}50%{opacity:.8}100%{opacity:0;transform:translateY(-8px) scaleY(1.2)}}

/* ---- 小转盘 · 今天吃什么 ---- */
.lr-dish{position:absolute;left:85.9%;top:60.1%;right:auto;bottom:auto;width:7.5%;aspect-ratio:1;z-index:3;
  background:transparent;border:0;padding:0;cursor:pointer;appearance:none}
.lr-dish .dish-pointer{position:absolute;left:50%;top:-6%;width:14%;height:14%;transform:translateX(-50%);z-index:3;
  background:#ffd27f;border:2px solid #1a1228;clip-path:polygon(50% 100%,0 0,100% 0);
  filter:drop-shadow(2px 3px 0 rgba(0,0,0,.45))}
.lr-dish .dish-wheel{position:absolute;inset:0;border-radius:50%;
  background:
    repeating-conic-gradient(from -90deg,
      #9b8bff 0 30deg, #ff84bd 30deg 60deg,
      #bba6ff 60deg 90deg, #ff9bc7 90deg 120deg,
      #9b8bff 120deg 150deg, #ffd27f 150deg 180deg);
  border:3px solid #1a1228;box-shadow:0 0 0 3px #2a1f4d,4px 6px 0 rgba(0,0,0,.45);
  animation:dishSpin 6s linear infinite}
.lr-dish .dw-ring{position:absolute;inset:6%;border-radius:50%;border:2px dotted #1a1228;pointer-events:none}
.lr-dish .dw-hub{position:absolute;left:50%;top:50%;width:22%;height:22%;transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#ffe7a8,#ffd27f 60%,#c89348);border:2px solid #1a1228;
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.25)}
.lr-dish:hover .dish-wheel{animation-duration:1.8s}
.lr-dish:focus-visible{outline:3px solid #ffd27f;outline-offset:4px;border-radius:50%}
@keyframes dishSpin{to{transform:rotate(360deg)}}

/* ---- 转盘弹窗 · 食物 roll ---- */
.dish-roll-back{position:fixed;inset:0;background:rgba(10,6,20,.78);backdrop-filter:blur(4px);
  z-index:120;display:none;align-items:center;justify-content:center;padding:20px}
.dish-roll-back.show{display:flex}
.dish-roll{position:relative;width:min(92vw,520px);background:#16101f;border:3px solid #1a1228;border-radius:14px;
  box-shadow:0 18px 0 rgba(0,0,0,.55),0 0 0 3px #9b8bff;padding:22px 22px 20px;color:#fff;text-align:center;
  font-family:'Press Start 2P','PingFang SC','Microsoft YaHei',monospace}
.dish-roll h3{margin:0 0 16px;font-size:18px;letter-spacing:2px;color:#ffd27f;text-shadow:2px 2px 0 #000}
.dish-roll .dr-screen{position:relative;min-height:100px;padding:18px 14px;border:3px solid #1a1228;border-radius:10px;
  background:linear-gradient(180deg,#0e0918,#1c1230);box-shadow:inset 0 0 0 2px #2a1f4d,inset 0 2px 8px rgba(255,255,255,.06);
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.dish-roll .dr-text{font-size:26px;line-height:1.3;color:#fff;text-shadow:3px 3px 0 #000;
  font-family:'PingFang SC','Microsoft YaHei','Hiragino Sans GB',sans-serif;font-weight:700;letter-spacing:1px;
  transition:transform .08s,opacity .08s}
.dish-roll.rolling .dr-text{animation:drFlick .07s steps(2,end) infinite}
.dish-roll .dr-text.egg{color:#ff9bc7;text-shadow:3px 3px 0 #000,0 0 18px rgba(255,155,199,.55)}
.dish-roll .dr-actions{margin-top:16px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.dish-roll button{font-family:inherit;font-size:11px;letter-spacing:1.2px;color:#fff;padding:10px 16px;
  background:#3a2750;border:3px solid #1a1228;border-radius:8px;box-shadow:4px 4px 0 rgba(0,0,0,.45);cursor:pointer}
.dish-roll button.dr-go{background:linear-gradient(120deg,#9b8bff,#ff84bd)}
.dish-roll button:hover{transform:translate(-1px,-2px);box-shadow:5px 6px 0 rgba(0,0,0,.5)}
.dish-roll button:disabled{opacity:.55;cursor:default;transform:none;box-shadow:4px 4px 0 rgba(0,0,0,.45)}
.dish-roll .dr-x{position:absolute;top:8px;right:10px;width:34px;height:34px;padding:0;font-size:14px;border-radius:50%}
@keyframes drFlick{0%{opacity:.85;transform:translateY(-1px)}100%{opacity:1;transform:translateY(1px)}}
@media (max-width:520px){
  .dish-roll h3{font-size:15px}
  .dish-roll .dr-text{font-size:22px}
}

/* ---- rug ---- */
.lr-rug{position:absolute;left:29.5%;top:83.8%;right:auto;bottom:auto;width:46%;height:9%;z-index:1;
  background:repeating-linear-gradient(90deg,#5a3f6e 0 14px,#6b4a7a 14px 28px);border:4px solid #1a1228;border-radius:50%;opacity:.9}

/* ---- decor: wall clock（实时 · 时尚款）---- */
.lr-clock{position:absolute;left:30.9%;top:22.8%;right:auto;bottom:auto;width:5.6%;aspect-ratio:1;z-index:2;border-radius:50%;
  background:radial-gradient(circle at 50% 38%,#ffffff,#efe7ff 72%,#d9ccff 100%);
  border:3px solid #1a1228;box-shadow:0 0 0 3px #2a1f4d,4px 6px 0 rgba(0,0,0,.32),inset 0 2px 5px rgba(255,255,255,.7)}
/* 刻度环 */
.lr-clock:before{content:"";position:absolute;inset:13%;border-radius:50%;
  background:repeating-conic-gradient(#1a1228 0deg 2.4deg,transparent 2.4deg 30deg);
  -webkit-mask:radial-gradient(circle,transparent 0 78%,#000 80%,#000 100%);
          mask:radial-gradient(circle,transparent 0 78%,#000 80%,#000 100%);opacity:.55}
.lr-clock .ck-h,.lr-clock .ck-m,.lr-clock .ck-s{position:absolute;left:50%;bottom:50%;transform-origin:bottom center;border-radius:3px}
.lr-clock .ck-h{width:3px;height:24%;background:#1a1228;transform:translateX(-50%) rotate(0deg)}
.lr-clock .ck-m{width:2.5px;height:34%;background:#3a2768;transform:translateX(-50%) rotate(0deg)}
.lr-clock .ck-s{width:1.5px;height:38%;background:#ff3b6e;transform:translateX(-50%) rotate(0deg);box-shadow:0 0 4px rgba(255,59,110,.6)}
.lr-clock .ck-dot{position:absolute;left:50%;top:50%;width:7px;height:7px;background:#ff3b6e;border:1.5px solid #1a1228;border-radius:50%;transform:translate(-50%,-50%);z-index:2}
/* ---- decor: wall frame（移到右上墙，避开时钟）---- */
.lr-frame{position:absolute;left:33.7%;top:37.8%;right:auto;bottom:auto;width:7.5%;height:12%;z-index:2;padding:0;cursor:pointer;
  background:linear-gradient(180deg,#6fb6e6,#4f93cc);border:4px solid #fff6e6;outline:3px solid #1a1228;
  box-shadow:4px 5px 0 rgba(0,0,0,.3);overflow:visible;transform:rotate(-3deg);transition:transform .18s,box-shadow .18s}
.lr-frame:hover{transform:rotate(-3deg) translateY(-3px) scale(1.05);box-shadow:6px 8px 0 rgba(0,0,0,.35)}
.lr-frame .map{position:absolute;inset:0;image-rendering:pixelated;background:center/100% 100% no-repeat url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 9' shape-rendering='crispEdges'><rect width='20' height='9' fill='%234f93cc'/><g fill='%236fa84f'><rect x='1' y='1' width='3' height='1'/><rect x='1' y='2' width='4' height='1'/><rect x='2' y='3' width='2' height='1'/><rect x='5' y='0' width='1' height='1'/><rect x='4' y='5' width='2' height='1'/><rect x='4' y='6' width='1' height='2'/><rect x='8' y='1' width='2' height='1'/><rect x='8' y='3' width='2' height='1'/><rect x='8' y='4' width='3' height='1'/><rect x='9' y='5' width='1' height='2'/><rect x='10' y='1' width='6' height='1'/><rect x='11' y='2' width='5' height='1'/><rect x='12' y='3' width='1' height='1'/><rect x='15' y='4' width='2' height='1'/><rect x='16' y='6' width='2' height='1'/><rect x='16' y='7' width='1' height='1'/><rect x='18' y='2' width='1' height='1'/></g></svg>")}
.lr-frame:after{content:"";position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.08) 0 1px,transparent 1px 7px),
  repeating-linear-gradient(0deg,rgba(255,255,255,.06) 0 1px,transparent 1px 7px)}
/* ---- decor: 掉在地上的小纸片彩蛋（点开才显示 Made by 509）---- */
.lr-sign{position:absolute;left:10.5%;top:88%;z-index:7;transform:rotate(-8deg);
  border:0;background:none;padding:0;margin:0;cursor:pointer;pointer-events:auto;line-height:1;
  font-size:clamp(7px,0.95vw,12px)}
.lr-sign .sg-scrap{display:block;width:1.8em;height:1.5em;color:#6f5f40;font-weight:800;
  text-align:center;line-height:1.5em;font-size:1em;
  background:linear-gradient(150deg,#efe6cf,#c9bb98);border:2px solid #1a1228;
  box-shadow:2px 3px 0 rgba(0,0,0,.3);
  clip-path:polygon(0 14%,20% 0,100% 7%,90% 100%,8% 92%);opacity:.5;
  transition:opacity .15s,transform .15s}
.lr-sign:hover .sg-scrap,.lr-sign:focus-visible .sg-scrap{opacity:.95;transform:translateY(-2px)}
.lr-sign .sg-note{display:none}
.lr-sign.open .sg-scrap{display:none}
.lr-sign.open .sg-note{display:block;text-align:center;color:#5a3a12;line-height:1.2;
  background:linear-gradient(160deg,#fff2a8,#ffd86b);border:2px solid #1a1228;
  padding:.5em .8em .6em;box-shadow:3px 4px 0 rgba(0,0,0,.32)}
.lr-sign.open .sg-note b{display:block;font-size:1em;font-weight:800;letter-spacing:.2px}
.lr-sign.open .sg-note em{display:block;font-family:'Press Start 2P',monospace;font-style:normal;
  font-size:.85em;margin-top:.35em;color:#b14a2a}
/* ---- decor: plant ---- */
.lr-plant{position:absolute;left:95.3%;top:92.2%;right:auto;bottom:auto;z-index:3;font-size:34px;filter:drop-shadow(2px 3px 0 rgba(0,0,0,.4));
  animation:sway 4s ease-in-out infinite;transform-origin:bottom center}
@keyframes sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
/* ---- decor: string lights ---- */
.lr-lights{position:absolute;left:0;right:0;top:2%;height:18px;z-index:2;display:flex;justify-content:space-around;align-items:flex-start}
.lr-lights i{width:7px;height:7px;border-radius:50%;margin-top:6px}
.lr-lights i:before{content:"";position:absolute;width:2px;height:6px;background:#1a1228;left:50%;top:-6px;transform:translateX(-50%)}
.lr-lights i:nth-child(1){background:#ff9bc7;box-shadow:0 0 8px #ff9bc7}
.lr-lights i:nth-child(2){background:#8fb8ff;box-shadow:0 0 8px #8fb8ff;animation-delay:.3s}
.lr-lights i:nth-child(3){background:#ffd27f;box-shadow:0 0 8px #ffd27f;animation-delay:.6s}
.lr-lights i:nth-child(4){background:#9b8bff;box-shadow:0 0 8px #9b8bff;animation-delay:.9s}
.lr-lights i:nth-child(5){background:#7fe0c0;box-shadow:0 0 8px #7fe0c0;animation-delay:1.2s}
.lr-lights i:nth-child(6){background:#ff9bc7;box-shadow:0 0 8px #ff9bc7;animation-delay:1.5s}
.lr-lights i:nth-child(7){background:#8fb8ff;box-shadow:0 0 8px #8fb8ff;animation-delay:1.8s}
.lr-lights i:nth-child(8){background:#ffd27f;box-shadow:0 0 8px #ffd27f;animation-delay:2.1s}
@keyframes twinkle{50%{opacity:.3}}

/* ---- 抱枕落在沙发上的接触阴影 ---- */
.lr-person:before{content:"";position:absolute;left:10%;right:10%;bottom:-6px;height:7px;border-radius:50%;
  background:rgba(0,0,0,.3);filter:blur(2px);z-index:-1}

/* ---- 沙发抱枕 ---- */
.lr-sofa .cushion{position:absolute;bottom:30%;width:11%;height:34%;border:4px solid #1a1228;border-radius:6px;
  box-shadow:inset 0 3px 0 rgba(255,255,255,.16);z-index:1}
.lr-sofa .cushion.c1{left:4%;background:#ff84bd;transform:rotate(-8deg)}
.lr-sofa .cushion.c2{right:4%;background:#8fb8ff;transform:rotate(8deg)}

/* ---- 流星 + 飞鸟 (窗外) ---- */
/* JS 随机出发位 + 4 种对角方向（BL→TR / TL→BR / TR→BL / BR→TL）。CSS 只提供基础样式与一次性动画。 */
.lr-sky .shoot{position:absolute;width:54px;height:2.5px;background:linear-gradient(90deg,transparent,#fff);
  box-shadow:0 0 8px #fff,0 0 16px rgba(187,155,255,.6);opacity:0;pointer-events:none;
  --dx:0px;--dy:0px;--rot:0deg;transform-origin:right center;
  transform:translate(0,0) rotate(var(--rot))}
.lr-sky .shoot.fly{animation:shootFly 1.4s ease-in forwards}
@keyframes shootFly{
  0%   {opacity:0;transform:translate(0,0) rotate(var(--rot))}
  12%  {opacity:1}
  85%  {opacity:1}
  100% {opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--rot))}
}
@media(prefers-reduced-motion:reduce){.lr-sky .shoot{display:none}}
.lr-sky .bird{position:absolute;width:9px;height:5px;border-top:2px solid rgba(20,15,30,.65);border-radius:50% 50% 0 0;left:-12%}
.lr-sky .bird:before{content:"";position:absolute;left:90%;top:-1px;width:9px;height:5px;border-top:2px solid rgba(20,15,30,.65);border-radius:50% 50% 0 0}
.lr-sky .bird.b1{top:28%;animation:birdfly 20s linear infinite}
.lr-sky .bird.b2{top:36%;transform:scale(.75);animation:birdfly 26s linear infinite 6s}
@keyframes birdfly{0%{left:-12%}100%{left:122%}}

/* ---- 墙上海报 ---- */
.lr-poster{position:absolute;left:45.2%;top:25.4%;right:auto;bottom:auto;width:11%;height:22%;z-index:2;border-radius:9px;
  background:linear-gradient(160deg,#2a1f4d,#1a1228);padding:4px;display:flex;flex-direction:column;
  border:3px solid #ffe3b0;box-shadow:0 0 0 2px #1a1228,5px 7px 0 rgba(0,0,0,.35),0 0 18px rgba(255,150,200,.28);
  animation:posterGlow 3.4s ease-in-out infinite}
@keyframes posterGlow{0%,100%{box-shadow:0 0 0 2px #1a1228,5px 7px 0 rgba(0,0,0,.35),0 0 14px rgba(255,150,200,.22)}50%{box-shadow:0 0 0 2px #1a1228,5px 7px 0 rgba(0,0,0,.35),0 0 24px rgba(159,134,255,.55)}}
.lr-poster .po-img{flex:1;position:relative;overflow:hidden;border-radius:5px;
  background:linear-gradient(150deg,#9b8bff,#ff84bd 52%,#ffd27f);
  display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:1px 3px;padding:5px 4px}
.lr-poster .po-img:before{content:"";position:absolute;inset:0;z-index:1;
  background:radial-gradient(circle at 28% 18%,rgba(255,255,255,.55),transparent 42%)}
.lr-poster .po-img:after{content:"";position:absolute;top:-60%;left:-40%;width:36%;height:220%;z-index:1;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);transform:rotate(20deg);
  animation:posterShine 4.5s ease-in-out infinite}
@keyframes posterShine{0%,68%{left:-45%}100%{left:135%}}
.lr-poster .po-img i{position:relative;z-index:2;font-style:normal;font-size:11px;line-height:1;filter:drop-shadow(1px 1px 0 rgba(0,0,0,.35))}
/* 电脑版海报：动物分层错落，前大后小有纵深 */
@media(min-width:721px){
  .lr-poster .po-img{display:block;position:relative}
  .lr-poster .po-img i{position:absolute;filter:drop-shadow(1px 2px 0 rgba(0,0,0,.4))}
  .lr-poster .po-img i:nth-child(1){left:5%;top:9%;font-size:13px;z-index:2}
  .lr-poster .po-img i:nth-child(2){left:38%;top:4%;font-size:15px;z-index:3}
  .lr-poster .po-img i:nth-child(3){left:69%;top:10%;font-size:13px;z-index:2}
  .lr-poster .po-img i:nth-child(4){left:19%;top:37%;font-size:18px;z-index:4}
  .lr-poster .po-img i:nth-child(5){left:50%;top:34%;font-size:20px;z-index:5}
  .lr-poster .po-img i:nth-child(6){left:9%;top:62%;font-size:17px;z-index:4}
  .lr-poster .po-img i:nth-child(7){left:57%;top:63%;font-size:19px;z-index:6}
  .lr-poster .po-img i.po-fox-i{left:80%;top:46%;font-size:16px;z-index:7}
}
.lr-poster .po-cap{font-size:7px;font-weight:700;text-align:center;color:#2a1f4d;letter-spacing:1.2px;
  white-space:nowrap;margin-top:4px;border-radius:4px;padding:3px 0;background:linear-gradient(90deg,#ffe3b0,#ffd27f)}
.lr-poster .po-cap:before{content:"\2605";margin-right:4px;color:#ff5a98}
.lr-poster .po-cap:after{content:"\2605";margin-left:4px;color:#ff5a98}
.lr-poster .po-fox{font-style:normal;font-size:6.5px;letter-spacing:.6px;color:#8a3458;margin-left:3px}
/* 窗外随机蹦的成员动物 */
.lr-sky{overflow:hidden}
.lr-sky .sky-pop{position:absolute;z-index:1;font-size:18px;line-height:1;pointer-events:none;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.5));animation:skyPeek .9s forwards}
@keyframes skyPeek{0%{transform:translateY(120%);animation-timing-function:cubic-bezier(.12,.66,.3,1)}50%{transform:translateY(-150%);animation-timing-function:cubic-bezier(.7,0,.88,.34)}100%{transform:translateY(120%)}}
@media(prefers-reduced-motion:reduce){.lr-poster{animation:none}.lr-poster .po-img:after{display:none}.lr-sky .sky-pop{display:none}}
/* 窗户 / 海报：hover 前无文字，hover（或触屏点开）浮现半透明介绍层 */
.lr-panel{cursor:pointer}
.lr-reveal{position:absolute;inset:0;z-index:7;display:flex;flex-direction:column;justify-content:center;gap:4px;
  padding:8px 9px;overflow:auto;text-align:left;
  background:rgba(8,6,16,.78);box-shadow:inset 0 0 0 2px rgba(255,255,255,.12);
  opacity:0;pointer-events:none;transition:opacity .2s}
@media(hover:hover){.lr-info:hover .lr-reveal{opacity:1;pointer-events:auto}}
.lr-reveal b{font-size:9px;color:#fff;text-shadow:1px 1px 0 #1a1228}
.lr-reveal>b:first-child{margin-bottom:2px}
.lr-reveal p{margin:0;font-size:7px;line-height:1.55;color:#e7e1ff}
.lr-reveal p.zoo{color:#ffd6ec}
.lr-poster .lr-reveal{padding:6px 7px;gap:3px}
.lr-poster .lr-reveal p{font-size:6px;line-height:1.45}

/* ---- 应援灯牌 (右下角) ---- */
.lr-banner{position:absolute;left:82.4%;top:79%;right:auto;bottom:auto;width:14%;height:16%;z-index:5}
.lr-banner .bn-screen{position:absolute;left:0;right:0;top:0;height:56%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  background:linear-gradient(135deg,#2a1f4d,#3a2768);border:4px solid #1a1228;border-radius:5px;color:#ffd6ec;letter-spacing:1px;
  box-shadow:5px 5px 0 rgba(0,0,0,.3)}
.lr-banner .bn-screen i{font-style:normal;line-height:1;white-space:nowrap;text-align:center}
.lr-banner .bn-screen i:first-child{font-size:8px;font-weight:700}
.lr-banner .bn-screen i:last-child{font-size:6px;letter-spacing:1.5px;color:#ffb3d8;margin-top:5px}
@keyframes bnglow{0%,100%{box-shadow:0 0 10px rgba(255,132,189,.4),5px 5px 0 rgba(0,0,0,.3)}50%{box-shadow:0 0 22px rgba(255,132,189,.85),5px 5px 0 rgba(0,0,0,.3)}}
.lr-banner .bn-pole{position:absolute;left:47%;top:54%;width:6%;height:40%;background:#3a2750;border:2px solid #1a1228}
.lr-banner .bn-base{position:absolute;left:28%;bottom:0;width:44%;height:7%;background:#3a2750;border:3px solid #1a1228;border-radius:3px}

/* ---- 应援棒 (中央前) ---- */
.lr-sticks{position:absolute;left:20.2%;top:84.3%;right:auto;bottom:auto;width:9%;height:13%;z-index:5}
.lr-sticks .st-pot{position:absolute;left:32%;bottom:0;width:36%;height:32%;background:#5a3f6e;border:3px solid #1a1228;border-radius:3px}
.lr-sticks i{position:absolute;bottom:22%;width:7%;height:78%;border-radius:5px;transform-origin:bottom center}
.lr-sticks i:nth-child(1){left:36%;background:#ff84bd;box-shadow:0 0 8px #ff84bd;transform:rotate(-15deg)}
.lr-sticks i:nth-child(2){left:47%;background:#8fb8ff;box-shadow:0 0 8px #8fb8ff;transform:rotate(2deg);animation-delay:.4s}
.lr-sticks i:nth-child(3){left:58%;background:#ffd27f;box-shadow:0 0 8px #ffd27f;transform:rotate(15deg);animation-delay:.8s}
@keyframes stickglow{50%{filter:brightness(1.45)}}

/* ---- 地毯花纹 ---- */
.lr-rug:before{content:"";position:absolute;inset:16% 20%;border:3px solid rgba(255,214,236,.32);border-radius:50%;pointer-events:none}
.lr-rug:after{content:"";position:absolute;left:50%;top:50%;width:14px;height:14px;transform:translate(-50%,-50%) rotate(45deg);
  background:rgba(255,214,236,.38);border:2px solid rgba(26,18,40,.45);pointer-events:none}

/* 纯装饰退为背景层，弱化存在感，突出可点击与小人 */
.lr-clock,.lr-frame,.lr-plant,.lr-lights,.lr-poster,.lr-curtain{opacity:.82}
/* 错开可点击物件的微光节奏，避免齐闪显乱 */
.lr-shelf{animation-delay:.55s}.lr-plush{animation-delay:1.1s}.lr-tv{animation-delay:1.65s}.lr-coffee{animation-delay:2.2s}

/* ---- pixel-art pass: make the lobby read as an 8-bit room, not a soft gradient scene ---- */
body.is-home .aurora{display:none}
.lr-stage{background:#0b0711;--px-dark:#1a1228;--px-shadow:#0b0711;--wall:#2d2447;--wall2:#3a2d59;--floor:#241832;--floor2:#332246;--wood:#7a567d}
.lr-room{
  background:
    linear-gradient(90deg,rgba(0,0,0,.16),transparent 18%,transparent 82%,rgba(0,0,0,.2)),
    repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 8px),
    repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 1px,transparent 1px 8px),
    linear-gradient(180deg,var(--wall) 0%,var(--wall2) 60%,var(--wood) 74%,var(--floor) 100%);
}
.lr-room:before{
  background:
    linear-gradient(180deg,transparent 0 55%,rgba(0,0,0,.18) 100%),
    repeating-linear-gradient(90deg,transparent 0 7px,rgba(255,255,255,.03) 7px 8px);
  opacity:.9;
}
.lr-room:after{
  height:30%;
  background:
    repeating-linear-gradient(90deg,transparent 0 7px,rgba(0,0,0,.2) 7px 8px),
    repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 8px),
    linear-gradient(180deg,var(--floor2),var(--floor));
  opacity:1;
}
.lr-title{
  padding:10px 18px 12px;background:#211631;border:4px solid var(--px-dark);box-shadow:6px 6px 0 var(--px-shadow);
  text-shadow:3px 3px 0 #000,0 0 0 transparent;line-height:1.25;
}
.lr-title:before,.lr-title:after{content:"";position:absolute;top:50%;width:10px;height:10px;background:#ff9bc7;border:3px solid var(--px-dark);transform:translateY(-50%)}
.lr-title:before{left:-20px}.lr-title:after{right:-20px}
.lr-title em{margin-top:8px;color:#ffd27f;text-shadow:2px 2px 0 #000}
.lr-window,.lr-cal,.lr-shelf,.lr-plush:before,.tv-screen,.tv-stand,.lr-tv:before,.sofa-back,.sofa-seat,.sofa-arm,
.lr-chair .ch-back,.lr-chair .ch-seat,.cof-table,.cof-phone,.lr-frame,.lr-banner .bn-screen,.lr-banner .bn-base,.lr-sticks .st-pot{
  border-radius:0;
  box-shadow:6px 6px 0 rgba(0,0,0,.42);
}
.lr-window{box-shadow:0 0 0 6px var(--wood),8px 8px 0 rgba(0,0,0,.45)}
.lr-sky{
  background:
    repeating-linear-gradient(90deg,transparent 0 7px,rgba(255,255,255,.04) 7px 8px),
    linear-gradient(#26315f 0 42%,#654073 42% 70%,#d97b78 70% 100%);
}
.lr-sky b{display:none}
.lr-sky .cloud{height:8px;border-radius:0;background:#f4e2ff;box-shadow:8px 0 0 #f4e2ff,16px 0 0 #f4e2ff,8px -8px 0 #f4e2ff}
.lr-sky .star{width:5px;height:5px;box-shadow:none}
.lr-sky .hill{height:22%;background:#232445;border-radius:0;clip-path:polygon(0 60%,18% 34%,34% 66%,54% 28%,76% 62%,100% 36%,100% 100%,0 100%)}
.lr-person{border-radius:0;box-shadow:inset 0 4px 0 rgba(255,255,255,.3),inset 0 -5px 0 rgba(0,0,0,.18),5px 5px 0 rgba(0,0,0,.38),0 0 0 3px rgba(255,255,255,.08)}
.lr-person:before{filter:none;border-radius:0;height:5px;background:rgba(0,0,0,.35)}
.lr-rug{border-radius:0;background:repeating-linear-gradient(90deg,#5a3f6e 0 16px,#7a567d 16px 32px);box-shadow:6px 6px 0 rgba(0,0,0,.35)}
.lr-rug:before,.lr-rug:after{border-radius:0}
.lr-clock{border-radius:0;background:#efe7ff;box-shadow:0 0 0 3px #2a1f4d,5px 5px 0 rgba(0,0,0,.38)}
.lr-clock:before{display:none}
.lr-obj{transition:transform .12s;animation:objpulse 2.8s steps(2,end) infinite}
.lr-obj:hover{transform:translate(-2px,-6px);filter:drop-shadow(6px 6px 0 rgba(0,0,0,.42));}

/* ---- 小人游戏属性卡 ---- */
.lr-card{position:fixed;z-index:60;width:240px;pointer-events:none;opacity:0;transform:translateY(6px) scale(.96);
  transition:opacity .14s,transform .14s;font-family:'Press Start 2P',monospace;
  background:#16101f;border:3px solid #1a1228;border-radius:6px;
  box-shadow:6px 7px 0 rgba(0,0,0,.5),0 0 0 3px var(--cc,#9b8bff)}
.lr-card.show{opacity:1;transform:translateY(0) scale(1)}
.lr-card .lc-head{display:flex;align-items:center;gap:10px;padding:11px 12px;
  background:linear-gradient(120deg,var(--cc,#9b8bff),var(--cc2,#ff84bd));border-bottom:3px solid #1a1228}
.lr-card .lc-emoji{font-size:30px;filter:drop-shadow(1px 2px 0 rgba(0,0,0,.4))}
.lr-card .lc-name{font-size:13px;color:#fff;text-shadow:2px 2px 0 #1a1228;line-height:1.4}
.lr-card .lc-name small{display:block;font-size:7px;margin-top:5px;color:#2a1f3d;text-shadow:none;letter-spacing:.5px}
.lr-card .lc-body{padding:12px}
.lr-card .lc-line{font-size:7.5px;line-height:1.7;color:#c8bfff;margin-bottom:4px}
.lr-card .lc-line b{color:#fff}
.lr-card .lc-tag{display:inline-block;margin:6px 6px 2px 0;font-size:7px;color:#ffe9a8;border:2px solid #ffe9a8;padding:3px 6px;border-radius:3px}
.lr-card .lc-stats{margin-top:10px;display:grid;gap:6px}
.lr-card .lc-stat{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:7px;font-size:6.5px;color:#9b93b3}
.lr-card .lc-bar{height:9px;background:#2a2140;border:2px solid #1a1228;border-radius:2px;overflow:hidden}
.lr-card .lc-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--cc,#9b8bff),var(--cc2,#ff84bd))}
.lr-card .lc-intro{margin-top:9px;font-family:'Noto Sans SC',sans-serif;font-size:11px;line-height:1.6;color:#d7ccff}

/* home full-bleed (no section padding) */
body.is-home .marquee{position:relative;z-index:6}
body.is-home .site-header{display:none}

@media(max-width:720px){
  .lr-stage{height:calc(100vh - 84px);min-height:456px;font-size:9px}
  .lr-title{font-size:16px;top:26px}
  .lr-window{width:34%;height:30%;top:11%}
  .lr-sky .sky-pop{font-size:13px}
  .lr-shelf{width:26%}
  .lr-tv{left:0.8%;top:69.4%;right:auto;bottom:auto;width:33%}
  .lr-sofa{left:24.3%;top:57.7%;right:auto;bottom:auto;width:72%}
  .lr-people{left:33.9%;top:44.1%;right:auto;bottom:auto;width:58%}
  .lr-prow.front .lr-person{--ps:42px}
  .lr-prow.back .lr-person{--ps:42px}
  .lr-prow.back{margin-bottom:-12px;gap:6%}
  .lr-chair.l{left:7%}.lr-chair.r{right:7%}
  /* 手机版：椅子收起，应援棒登场 */
  .lr-chair{display:none}
  .lr-sticks{display:block;left:88.9%;top:70.1%;right:auto;bottom:auto;width:9%;height:13%}
  .lr-sticks i{height:50%}            /* 手机版棒子短一点 */
  .lr-mic.m1{left:28%}.lr-mic.m2{right:28%}
  .lr-poster{left:42%;top:36.9%;right:auto;bottom:auto;width:26%;height:16%}
  .lr-banner{left:72.6%;top:83.5%;right:auto;bottom:auto;width:21%;height:14%}
  .lr-banner .bn-screen i:first-child{font-size:7px}.lr-banner .bn-screen i:last-child{font-size:5px}
  .lr-plush{left:62.8%;top:81.6%;right:auto;bottom:auto}
  .lr-plant{left:88.4%;top:91%;right:auto;bottom:auto;font-size:28px}
  .lr-coffee{left:41.5%;top:76.2%;right:auto;bottom:auto;width:26%}
  /* 手机版日历：位置不动（原位），藏整月网格，只留当天大字 + 英文全月（上下紧挨）*/
  .lr-cal{left:6.4%;top:46.4%;right:auto;bottom:auto;width:16%;height:13%}
  .lr-cal .cal-grid,.lr-cal .cal-month{display:none}
  .lr-cal .cal-day{flex:1;display:flex;align-items:flex-end;justify-content:center;
    font-weight:700;color:#1a1228;line-height:.85;font-size:clamp(13px,4.6vw,24px)}
  .lr-cal .cal-mfull{flex:1;display:flex;align-items:flex-start;justify-content:center;
    color:#7a5a3a;font-weight:700;line-height:1;padding-top:1px;font-size:clamp(7px,2vw,10px)}
  .lr-clock{left:57.4%;top:19.1%;right:auto;bottom:auto;width:9%}
  .lr-frame{left:41.9%;top:24.8%;right:auto;bottom:auto;width:13%;height:8%}
  .lr-dish{left:13.2%;top:56.2%;right:auto;bottom:auto;width:14%}
  .lr-sign{left:36.4%;top:95.4%;right:auto;bottom:auto;font-size:clamp(7px,2.4vw,11px)}
  .lr-rug{left:34.3%;top:84.4%;right:auto;bottom:auto}
  .lr-card{width:min(240px,86vw)}
}
/* 窄屏：进一步减负，避免拥挤 */
@media(max-width:480px){
  .lr-title{font-size:13px;top:36px}
  .lr-sign{left:36.4%;top:95.4%;font-size:clamp(6.5px,2.6vw,10px)}
  .lr-prow.front .lr-person{--ps:36px}
  .lr-prow.back .lr-person{--ps:36px}
}
/* 横屏窄高：viewport 矮，底部物件 top:% 会越界被裁 → 锁到底部 (不影响手机和高桌面) */
@media(min-width:721px) and (max-height:720px){
  .lr-plush{top:auto;bottom:4%}
  .lr-plant{top:auto;bottom:2%;left:92%}
  .lr-banner{top:auto;bottom:5%}
}
