/* ============================================
   粉色系少女英语单词闯关游戏 - 主样式表
   ============================================ */

/* 全局变量 */
:root {
    --pink-primary: #ff8fa3;
    --pink-secondary: #ffd6e0;
    --pink-light: #fff8fb;
    --pink-dark: #e85d75;
    --pink-accent: #ffb3c6;
    --pink-gradient: linear-gradient(135deg, #ff8fa3 0%, #ffd6e0 100%);
    --pink-gradient-dark: linear-gradient(135deg, #e85d75 0%, #ff8fa3 100%);
    --purple-soft: #c9b1ff;
    --cream: #fff8fb;
    --white: #ffffff;
    --text-dark: #5a3a44;
    --text-light: #a08088;
    --success: #6bcb77;
    --success-light: #e8f5e9;
    --error: #ff6b6b;
    --error-light: #ffebee;
    --warning: #ffd93d;
    --shadow-soft: 0 4px 20px rgba(255, 143, 163, 0.25);
    --shadow-medium: 0 8px 30px rgba(232, 93, 117, 0.3);
    --radius: 20px;
    --radius-sm: 12px;
    --transition: all 0.3s ease;
    /* 新增：扩展主题色变量 */
    --pink-warm: #ff9eb5;
    --pink-deep: #d44d6b;
    --pink-pale: #fff8fb;
    --peach: #ffd6c2;
    --peach-light: #fff3ec;
    --wood-light: #f5e6d3;
    --wood-dark: #e8d5c4;
    --sky-soft: #b8e0f0;
    --cream-warm: #fffbf7;
    --gradient-warm: linear-gradient(135deg, #ff8fa3 0%, #ffd6c2 100%);
    --gradient-sweet: linear-gradient(135deg, #ffd6e0 0%, #ffebd6 100%);
    --gradient-peach: linear-gradient(135deg, #ff9eb5 0%, #ffd6c2 100%);
    --gradient-cream: linear-gradient(135deg, #fff8fb 0%, #fff8f0 100%);
    --shadow-card: 0 6px 24px rgba(255, 143, 163, 0.18);
    --shadow-elevated: 0 12px 40px rgba(232, 93, 117, 0.22);
    --shadow-glow: 0 0 20px rgba(255, 143, 163, 0.35);
    --shadow-inner: inset 0 2px 8px rgba(255, 143, 163, 0.12);
    --radius-lg: 24px;
    --radius-xl: 32px;
    --transition-bounce: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* 重置与基础 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
    background: linear-gradient(135deg, #fff8fb 0%, #fff0f5 100%);
    color: var(--text-dark);
    min-height: 100vh;
    overflow-x: hidden;
}

/* 背景装饰 */
.bg-decoration {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}

.bg-decoration::before,
.bg-decoration::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    opacity: 0.15;
}

.bg-decoration::before {
    width: 400px;
    height: 400px;
    background: var(--pink-primary);
    top: -100px;
    right: -100px;
    filter: blur(60px);
}

.bg-decoration::after {
    width: 300px;
    height: 300px;
    background: var(--purple-soft);
    bottom: -80px;
    left: -80px;
    filter: blur(50px);
}

.floating-heart {
    position: absolute;
    font-size: 20px;
    opacity: 0.3;
    animation: floatHeart 8s ease-in-out infinite;
}

@keyframes floatHeart {
    0%, 100% { transform: translateY(0) rotate(0deg); opacity: 0.3; }
    50% { transform: translateY(-30px) rotate(10deg); opacity: 0.6; }
}

/* 主容器 */
.app-container {
    position: relative;
    z-index: 1;
    max-width: 900px;
    margin: 0 auto;
    padding: 20px;
    min-height: 100vh;
}

/* 头部 */
.game-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    background: var(--white);
    border-radius: 16px;
    box-shadow: 0 6px 24px rgba(255, 143, 163, 0.12), 0 2px 8px rgba(0, 0, 0, 0.04);
    margin-bottom: 20px;
    border: 1px solid rgba(255, 214, 224, 0.5);
}

.logo {
    display: flex;
    align-items: center;
    gap: 10px;
}

.logo-icon {
    font-size: 32px;
}

.logo-text {
    font-size: 20px;
    font-weight: bold;
    color: var(--text-dark);
}

.logo-sub {
    font-size: 12px;
    color: var(--text-light);
}

.user-stats {
    display: flex;
    gap: 15px;
    align-items: center;
}

.stat-item {
    display: flex;
    align-items: center;
    gap: 5px;
    background: var(--pink-light);
    padding: 8px 15px;
    border-radius: 20px;
    font-size: 14px;
    border: 1px solid rgba(255, 214, 224, 0.5);
    box-shadow: 0 2px 6px rgba(255, 143, 163, 0.08);
}

.stat-icon {
    font-size: 18px;
}

.stat-value {
    font-weight: bold;
    color: var(--text-dark);
}

/* 页面切换 */
.page {
    display: none;
    animation: fadeIn 0.4s ease;
}

.page.active {
    display: block;
}

/* 修复：未激活的页面必须彻底隐藏——杜绝「我的角色」的立绘/换装选项
   (绝对定位 + 高 z-index) 漏到「我的小屋」等其它页面 */
.page:not(.active) {
    display: none !important;
}
.page:not(.active) .avatar-left,
.page:not(.active) .parts-panel,
.page:not(.active) .lyr {
    display: none !important;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* 主菜单 */
.menu-card {
    background: var(--white);
    border-radius: 16px;
    padding: 30px;
    margin-bottom: 20px;
    box-shadow: 0 6px 24px rgba(255, 143, 163, 0.12), 0 2px 8px rgba(0, 0, 0, 0.04);
    text-align: center;
    border: 1px solid rgba(255, 214, 224, 0.5);
}

.hero-title {
    font-size: 28px;
    color: var(--text-dark);
    margin-bottom: 10px;
}

.hero-desc {
    color: var(--text-light);
    margin-bottom: 25px;
    font-size: 15px;
}

.hero-image {
    font-size: 80px;
    margin: 20px 0;
    animation: bounce 2s ease infinite;
}

@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-15px); }
}

/* 按钮样式 */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 32px;
    border: none;
    border-radius: 12px;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    font-family: inherit;
    box-shadow: 0 4px 12px rgba(255, 143, 163, 0.25);
}

.btn-primary {
    background: linear-gradient(135deg, #ff8fa3 0%, #ffb3c6 100%);
    color: var(--white);
    box-shadow: 0 4px 16px rgba(255, 143, 163, 0.35);
}

.btn-primary:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 8px 24px rgba(255, 143, 163, 0.4);
    background: linear-gradient(135deg, #ff9eb5 0%, #ffc2d1 100%);
}

.btn-secondary {
    background: var(--pink-light);
    color: var(--text-dark);
    border: 2px solid var(--pink-secondary);
}

.btn-secondary:hover {
    background: var(--pink-secondary);
    border-color: var(--pink-primary);
    transform: translateY(-2px);
}

.btn-large {
    padding: 18px 48px;
    font-size: 18px;
}

.btn-menu {
    width: 100%;
    margin: 10px 0;
    padding: 18px;
    font-size: 17px;
}

/* 菜单网格 */
.menu-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-top: 20px;
}

.menu-btn {
    background: var(--white);
    border: 2px solid var(--pink-secondary);
    border-radius: 16px;
    padding: 25px 15px;
    cursor: pointer;
    transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
    text-align: center;
    box-shadow: 0 4px 12px rgba(255, 143, 163, 0.08);
}

.menu-btn:hover {
    border-color: var(--pink-primary);
    transform: translateY(-6px) scale(1.02);
    box-shadow: 0 8px 24px rgba(255, 143, 163, 0.2), 0 4px 12px rgba(0, 0, 0, 0.06);
    background: linear-gradient(to bottom, var(--white) 0%, var(--pink-light) 100%);
}

.menu-btn-icon {
    font-size: 48px;
    margin-bottom: 10px;
    transition: transform 0.3s ease;
}

.menu-btn:hover .menu-btn-icon {
    transform: scale(1.1);
}

.menu-btn-title {
    font-size: 16px;
    font-weight: bold;
    color: var(--text-dark);
    margin-bottom: 5px;
}

.menu-btn-desc {
    font-size: 12px;
    color: var(--text-light);
}

/* 关卡选择页面 */
.levels-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.page-title {
    font-size: 24px;
    color: var(--text-dark);
}

.back-btn {
    background: var(--pink-light);
    border: 2px solid var(--pink-secondary);
    padding: 10px 20px;
    border-radius: 20px;
    color: var(--text-dark);
    cursor: pointer;
    font-size: 14px;
    transition: all 0.3s ease;
    box-shadow: 0 2px 6px rgba(255, 143, 163, 0.1);
}

.back-btn:hover {
    background: var(--pink-secondary);
    border-color: var(--pink-primary);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(255, 143, 163, 0.15);
}

/* 关卡地图 */
/* ===== 闯关地图：梦幻冒险·粉色蜿蜒小路 ===== */
.levels-map {
    position: relative;
    padding: 6px 4px 40px;
    overflow: hidden;
    border-radius: 18px;
    background:
        radial-gradient(120px 120px at 12% 18%, rgba(255,210,235,.55), transparent 70%),
        radial-gradient(160px 160px at 88% 42%, rgba(206,224,255,.5), transparent 70%),
        radial-gradient(140px 140px at 30% 80%, rgba(229,210,255,.5), transparent 70%),
        linear-gradient(180deg, #fff5fb 0%, #f7f0ff 48%, #eef6ff 100%);
}
/* 梦幻漂浮装饰 */
.trail-deco {
    position: absolute; pointer-events: none; z-index: 0;
    animation: floaty linear infinite; will-change: transform, opacity;
}
@keyframes floaty {
    0%   { transform: translateY(6px) rotate(0deg);    opacity: .25; }
    50%  { opacity: .9; }
    100% { transform: translateY(-20px) rotate(18deg); opacity: .25; }
}
.trail-hint {
    margin-top: 10px; font-size: 12px; color: #b07fd6;
    background: rgba(255,255,255,.65); border-radius: 10px; padding: 5px 10px; text-align: center;
}
.trail-hint b { color: #ff7fb0; }

/* 顶部进度条（小女孩沿路前进） */
.trail-progress {
    position: relative; z-index: 1;
    background: linear-gradient(135deg, #fff0f6, #ffe3ef);
    border: 2px solid #ffd0e0;
    border-radius: 18px;
    padding: 12px 16px 14px;
    margin: 4px 6px 20px;
    box-shadow: 0 4px 14px rgba(255, 143, 163, 0.12);
}
.trail-progress-top {
    display: flex; justify-content: space-between; align-items: center;
    font-weight: 800; color: #d6648a; font-size: 15px;
}
.tp-count { font-size: 14px; color: #ff7fb0; }
.trail-bar {
    position: relative; height: 14px; background: #ffe0ec;
    border-radius: 10px; margin-top: 12px; box-shadow: inset 0 1px 2px rgba(214,100,138,.12);
}
.trail-bar-fill {
    height: 100%; border-radius: 10px;
    background: linear-gradient(90deg, #ffb3d1, #ff7fb0);
    transition: width .6s ease;
}
.trail-bar-girl {
    position: absolute; top: -10px; transform: translateX(-50%);
    font-size: 19px; transition: left .6s ease; filter: drop-shadow(0 1px 1px rgba(0,0,0,.15));
}

/* 蜿蜒：每行 5 个点，偶数行反向 → 蛇形小路 */
.trail-row {
    display: flex; justify-content: center; align-items: center;
    gap: 20px; position: relative; padding: 16px 10px; z-index: 1;
}
.trail-row.rev { flex-direction: row-reverse; }
/* 行内虚线小路 */
.trail-row::before {
    content: ''; position: absolute; left: 30px; right: 30px; top: 50%;
    border-top: 3px dashed #ffc9de; z-index: 0;
}
/* 行尾向下的拐弯虚线（连到下一行） */
.trail-row::after {
    content: ''; position: absolute; width: 0; height: 30px; bottom: -15px;
    border-left: 3px dashed #ffc9de; z-index: 0;
}
.trail-row:not(.rev)::after { right: 30px; }
.trail-row.rev::after { left: 30px; }
.trail-row.end::after { display: none; }

/* 关卡点 */
.level-node {
    width: 58px; height: 58px; border-radius: 50%;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    cursor: pointer; position: relative; z-index: 1; flex: 0 0 auto;
    border: 3px solid #fff; box-shadow: 0 3px 8px rgba(214, 100, 138, 0.18);
    transition: transform .2s, box-shadow .2s;
}
.level-number { font-size: 17px; font-weight: 800; }

.level-node.locked {
    background: #f3f3f6; color: #c9c9d3; cursor: not-allowed;
    border-color: #eee; box-shadow: none;
}
.level-node.locked .level-number { opacity: .55; }

.level-node.available {
    background: radial-gradient(circle at 35% 28%, #fff, #ffe3ef);
    color: #d6648a; border-color: #ffb6d5;
}
.level-node.available:hover {
    transform: scale(1.12);
    box-shadow: 0 6px 18px rgba(255, 143, 163, 0.45);
}

.level-node.completed {
    background: linear-gradient(135deg, #ff9ec4, #ff7fb0);
    color: #fff; border-color: #fff;
}
.level-node.completed .level-number { color: #fff; }
/* 通关小星星徽章 */
.lvl-badge {
    position: absolute; top: -7px; right: -5px; font-size: 15px; color: #ffd23f;
    filter: drop-shadow(0 1px 1px rgba(0,0,0,.18));
}
/* 有复习提醒 */
.level-node.stars .lvl-bell {
    position: absolute; bottom: -7px; right: -5px; font-size: 13px;
}

/* 当前关：放大 + 跳动 + 光环 + 「你在这里」 */
.level-node.current {
    background: radial-gradient(circle at 35% 28%, #fff, #fff3c4);
    border-color: #ff7fb0; color: #d6648a;
    box-shadow: 0 0 0 5px #ffd0e0, 0 6px 18px rgba(255, 127, 176, 0.5);
    animation: nodeBounce 1.3s ease-in-out infinite;
}
.here-tag {
    position: absolute; top: -32px; left: 50%; transform: translateX(-50%);
    white-space: nowrap; background: #ff7fb0; color: #fff;
    font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 11px;
    box-shadow: 0 2px 6px rgba(255, 127, 176, 0.45); z-index: 3;
}
.here-tag::after {
    content: ''; position: absolute; bottom: -5px; left: 50%; transform: translateX(-50%);
    border: 5px solid transparent; border-top-color: #ff7fb0;
}
@keyframes nodeBounce {
    0%, 100% { transform: scale(1.16) translateY(0); }
    50% { transform: scale(1.16) translateY(-7px); }
}

/* 宝箱里程碑：每 3 关一个，更大更闪，挂礼物角标 */
.level-node.milestone {
    width: 66px; height: 66px;
    box-shadow: 0 0 0 3px #ffe7a3, 0 4px 12px rgba(255, 180, 80, 0.35);
}
.level-node.milestone.completed {
    background: linear-gradient(135deg, #ffd06b, #ff9ec4);
    box-shadow: 0 0 0 4px #fff0c4, 0 6px 18px rgba(255, 180, 80, 0.5);
}
.lvl-gift {
    position: absolute; top: -10px; left: -8px; font-size: 18px;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,.18));
    animation: giftWobble 1.8s ease-in-out infinite;
}
@keyframes giftWobble {
    0%, 100% { transform: rotate(-8deg); }
    50% { transform: rotate(8deg) translateY(-2px); }
}

/* 风景章节横幅 */
.chapter-banner {
    position: relative; z-index: 1; text-align: center; font-weight: 800;
    color: #a85fb0; margin: 16px 8px 2px; font-size: 14px;
    text-shadow: 0 1px 2px rgba(255,255,255,.7);
}
.chapter-banner .ch-emoji { font-size: 18px; }
.chapter-banner .ch-range { font-size: 11px; color: #b8a0d0; font-weight: 600; margin-left: 2px; }

/* ===== 开箱小动画 ===== */
.chest-overlay {
    position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center;
    background: radial-gradient(circle at 50% 38%, rgba(120,70,140,.5), rgba(40,20,60,.8));
    opacity: 0; transition: opacity .3s; -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
}
.chest-overlay.show { opacity: 1; }
.chest-stage { position: relative; text-align: center; width: 300px; max-width: 86vw; }
.chest-emoji {
    font-size: 96px; display: inline-block; animation: chestShake .5s ease-in-out infinite;
    transition: transform .4s, opacity .4s; filter: drop-shadow(0 6px 16px rgba(255,180,80,.6));
}
.chest-overlay.opened .chest-emoji { animation: none; transform: scale(1.8) translateY(-10px); opacity: 0; }
@keyframes chestShake {
    0%,100% { transform: rotate(-7deg); } 25% { transform: rotate(7deg) translateY(-5px); }
    50% { transform: rotate(-6deg); } 75% { transform: rotate(6deg); }
}
.chest-sparks { position: absolute; top: 56px; left: 50%; width: 0; height: 0; }
.chest-sparks span { position: absolute; font-size: 20px; opacity: 0; }
.chest-overlay.opened .chest-sparks span { animation: sparkFly .85s ease-out forwards; }
@keyframes sparkFly {
    0% { opacity: 1; transform: translate(0,0) scale(.4); }
    100% { opacity: 0; transform: translate(var(--tx), var(--ty)) scale(1.25); }
}
.chest-reward {
    opacity: 0; transform: translateY(24px) scale(.78); position: relative; margin-top: -36px;
    transition: all .55s cubic-bezier(.2,1.35,.4,1);
}
.chest-overlay.opened .chest-reward { opacity: 1; transform: translateY(-26px) scale(1); }
.chest-reward-card {
    background: linear-gradient(135deg, #fff, #ffe9f3); border: 3px solid #ffd0e0; border-radius: 20px;
    padding: 18px 22px; box-shadow: 0 14px 44px rgba(255,127,176,.55);
}
.cr-emoji { font-size: 44px; }
.cr-label { font-size: 12px; color: #b07fd6; margin-top: 4px; }
.cr-name { font-size: 23px; font-weight: 800; color: #ff5fa2; margin-top: 2px; }
.cr-sub { font-size: 12px; color: #94a3b8; margin-top: 6px; }
.cr-tip { font-size: 11px; color: #c98fb8; margin-top: 8px; }
.chest-headline {
    color: #fff; font-weight: 800; margin-top: 16px; font-size: 16px;
    text-shadow: 0 2px 8px rgba(0,0,0,.35); opacity: 0; transition: opacity .4s .25s;
}
.chest-overlay.opened .chest-headline { opacity: 1; }
.chest-btn {
    margin-top: 16px; background: #ff7fb0; color: #fff; border: none; border-radius: 22px;
    padding: 10px 30px; font-size: 15px; font-weight: 700; cursor: pointer;
    box-shadow: 0 4px 16px rgba(255,127,176,.55); opacity: 0; transition: opacity .4s .4s, transform .15s;
}
.chest-overlay.opened .chest-btn { opacity: 1; }
.chest-btn:active { transform: scale(.94); }

/* 游戏页面 */
.game-card {
    background: var(--white);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 6px 24px rgba(255, 143, 163, 0.12), 0 2px 8px rgba(0, 0, 0, 0.04);
    min-height: 500px;
    border: 1px solid rgba(255, 214, 224, 0.5);
}

.game-progress {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 25px;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--pink-light);
}

.progress-info {
    font-size: 14px;
    color: var(--text-light);
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 语音播报开关 */
.voice-toggle {
    background: none;
    border: none;
    font-size: 18px;
    cursor: pointer;
    padding: 4px;
    border-radius: 50%;
    transition: var(--transition);
    opacity: 0.7;
}

.voice-toggle:hover {
    opacity: 1;
    background: var(--pink-light);
    transform: scale(1.1);
}

.voice-toggle.active {
    opacity: 1;
    background: var(--pink-secondary);
}

.voice-toggle.muted {
    opacity: 0.4;
}

.progress-bar {
    width: 200px;
    height: 10px;
    background: #f0f0f0;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.08);
}

.progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #ff8fa3 0%, #ffb3c6 100%);
    border-radius: 10px;
    transition: width 0.5s ease;
    box-shadow: 0 0 8px rgba(255, 143, 163, 0.3);
}

/* 单词卡片 */
.word-card {
    text-align: center;
    padding: 40px 20px;
    background: linear-gradient(135deg, #fff8fb 0%, #ffe6f0 100%);
    border-radius: 16px;
    margin-bottom: 25px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 6px 24px rgba(255, 143, 163, 0.12), 0 2px 8px rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(255, 214, 224, 0.5);
    cursor: pointer;
    transition: all 0.3s ease;
    user-select: none;
}

.word-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(255, 143, 163, 0.18), 0 4px 12px rgba(0, 0, 0, 0.06);
}

.word-card:active {
    transform: scale(0.99);
}

.word-card::before {
    content: "❤";
    position: absolute;
    top: 15px;
    right: 20px;
    font-size: 24px;
    opacity: 0.25;
    color: var(--pink-primary);
}

.word-english {
    font-size: 36px;
    font-weight: bold;
    color: var(--text-dark);
    margin-bottom: 10px;
    font-family: "Georgia", serif;
    transition: color 0.2s;
    pointer-events: none;
}
.word-card:hover .word-english {
    color: var(--pink-primary);
}

.word-phonetic {
    font-size: 16px;
    color: var(--text-light);
    margin-bottom: 15px;
    pointer-events: none;
}

.word-chinese {
    font-size: 22px;
    color: var(--text-dark);
    margin-top: 10px;
    transition: color 0.2s;
    pointer-events: none;
}
.word-card:hover .word-chinese {
    color: var(--pink-primary);
}

/* 朗读按钮 */
.voice-play-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 12px;
    padding: 10px 20px;
    background: linear-gradient(135deg, #ff8fa3 0%, #ffb3c6 100%);
    color: white;
    border: none;
    border-radius: 24px;
    font-size: 15px;
    font-weight: bold;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(255, 143, 163, 0.35);
    transition: all 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
    font-family: inherit;
    position: relative;
    z-index: 2;
}

.voice-play-btn:hover {
    transform: translateY(-3px) scale(1.05);
    box-shadow: 0 6px 20px rgba(255, 143, 163, 0.45);
    background: linear-gradient(135deg, #ff9eb5 0%, #ffc2d1 100%);
}

.voice-play-btn:active {
    transform: scale(0.96);
}

.voice-play-btn.playing {
    animation: voicePulse 0.6s ease;
}

.voice-play-btn .voice-icon {
    font-size: 18px;
    display: inline-block;
}

.voice-play-btn.playing .voice-icon {
    animation: speakerShake 0.6s ease;
}

@keyframes voicePulse {
    0%, 100% { box-shadow: 0 4px 14px rgba(255, 143, 163, 0.35); }
    50% { box-shadow: 0 0 0 12px rgba(255, 143, 163, 0); }
}

@keyframes speakerShake {
    0%, 100% { transform: scale(1); }
    25% { transform: scale(1.2) rotate(-8deg); }
    75% { transform: scale(1.2) rotate(8deg); }
}

/* 听中文默英文界面 */
.listen-card {
    min-height: 180px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.listen-prompt {
    font-size: 20px;
    color: var(--pink-dark);
    font-weight: bold;
    margin: 10px 0;
}

.hidden-chinese {
    font-size: 18px;
    color: var(--text-light);
    background: var(--pink-light);
    padding: 8px 16px;
    border-radius: 12px;
    margin: 8px 0;
    opacity: 0.85;
}

.voice-listen-btn {
    background: linear-gradient(135deg, #87CEEB 0%, #B8E0F0 100%) !important;
    box-shadow: 0 4px 14px rgba(135, 206, 235, 0.35) !important;
}

.voice-listen-btn:hover {
    background: linear-gradient(135deg, #98D8E8 0%, #C8E8F5 100%) !important;
    box-shadow: 0 6px 20px rgba(135, 206, 235, 0.45) !important;
}

.word-type-badge {
    display: inline-block;
    padding: 5px 15px;
    background: var(--pink-primary);
    color: white;
    border-radius: 15px;
    font-size: 12px;
    margin-bottom: 10px;
}

/* 选择题选项 */
.options-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin-bottom: 20px;
}

.option-btn {
    padding: 18px 20px;
    background: var(--white);
    border: 2px solid var(--pink-secondary);
    border-radius: 12px;
    cursor: pointer;
    font-size: 16px;
    text-align: left;
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    font-family: inherit;
    box-shadow: 0 4px 12px rgba(255, 143, 163, 0.08);
}

.option-btn:hover {
    border-color: var(--pink-primary);
    background: var(--pink-light);
    transform: translateX(5px);
    box-shadow: 0 6px 16px rgba(255, 143, 163, 0.15);
}

.option-btn.correct {
    border-color: var(--success);
    background: var(--success-light);
    color: var(--success);
}

.option-btn.wrong {
    border-color: var(--error);
    background: var(--error-light);
    color: var(--error);
    animation: shake 0.5s ease;
}

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-10px); }
    75% { transform: translateX(10px); }
}

/* 默写输入 */
.spell-input {
    width: 100%;
    padding: 18px;
    font-size: 20px;
    border: 2px solid var(--pink-secondary);
    border-radius: 12px;
    text-align: center;
    margin-bottom: 15px;
    font-family: inherit;
    transition: all 0.3s ease;
    background: var(--white);
    box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.04);
}

.spell-input:focus {
    outline: none;
    border-color: var(--pink-primary);
    box-shadow: 0 0 0 4px rgba(255, 143, 163, 0.2), 0 4px 12px rgba(255, 143, 163, 0.15);
}

.spell-hint {
    text-align: center;
    color: var(--text-light);
    font-size: 14px;
    margin-bottom: 20px;
}

/* 游戏控制 */
.game-controls {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-top: 20px;
}

/* 结果弹窗 */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.modal-overlay.active {
    opacity: 1;
    pointer-events: all;
}

.modal-content {
    background: var(--white);
    border-radius: 16px;
    padding: 40px;
    max-width: 400px;
    width: 90%;
    text-align: center;
    transform: scale(0.8);
    transition: transform 0.3s ease;
    box-shadow: 0 12px 40px rgba(255, 143, 163, 0.2), 0 4px 16px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(255, 214, 224, 0.5);
}

.modal-overlay.active .modal-content {
    transform: scale(1);
}

.modal-icon {
    font-size: 60px;
    margin-bottom: 15px;
}

.modal-title {
    font-size: 24px;
    color: var(--text-dark);
    margin-bottom: 10px;
}

.modal-text {
    color: var(--text-light);
    margin-bottom: 20px;
    line-height: 1.6;
}

.reward-box {
    background: var(--pink-light);
    border-radius: var(--radius-sm);
    padding: 20px;
    margin: 20px 0;
}

.reward-points {
    font-size: 36px;
    color: var(--warning);
    font-weight: bold;
}

.reward-label {
    font-size: 14px;
    color: var(--text-light);
}

/* 卧室装饰页面 */
.bedroom-scene {
    background: var(--white);
    border-radius: var(--radius);
    padding: 20px;
    box-shadow: 0 8px 32px rgba(255, 143, 163, 0.15), 0 2px 8px rgba(0, 0, 0, 0.06);
    min-height: 500px;
    position: relative;
    overflow: hidden;
}

.bedroom-room {
    width: 100%;
    height: 400px;
    background: var(--pink-light);
    border-radius: 16px;
    position: relative;
    border: 3px solid var(--pink-secondary);
    overflow: hidden;
    box-shadow: inset 0 2px 8px rgba(255, 143, 163, 0.1);
}

.room-floor {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 30%;
    background: linear-gradient(to bottom, #f5e6d3 0%, #e8d5c4 100%);
    border-radius: 0 0 12px 12px;
}

.room-wall {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 70%;
    background: linear-gradient(to bottom, #fff0f5 0%, #ffe4ec 100%);
}

.room-window {
    position: absolute;
    top: 30px;
    left: 50%;
    transform: translateX(-50%);
    width: 120px;
    height: 100px;
    background: linear-gradient(to bottom, #a8d8f0 0%, #87ceeb 100%);
    border: 4px solid white;
    border-radius: 14px 14px 0 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.room-window::after {
    content: "☀";
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 20px;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
}

/* 家具 - 手绘Q版风格 */
.furniture-item {
    position: absolute;
    font-size: 40px;
    cursor: pointer;
    transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
    filter: drop-shadow(3px 4px 6px rgba(0, 0, 0, 0.12));
    border-radius: 10px;
}

.furniture-item:hover {
    transform: scale(1.12) translateY(-4px);
    filter: drop-shadow(5px 8px 14px rgba(0, 0, 0, 0.18));
}

.furniture-item.locked {
    filter: grayscale(100%) opacity(0.3);
    cursor: not-allowed;
}

.furniture-item.locked::after {
    content: "🔒";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 20px;
    filter: none;
}

/* 家具商店 */
.shop-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-top: 20px;
}

.shop-item {
    background: var(--white);
    border: 2px solid var(--pink-secondary);
    border-radius: 12px;
    padding: 15px;
    text-align: center;
    transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(255, 143, 163, 0.08);
}

.shop-item:hover {
    border-color: var(--pink-primary);
    transform: translateY(-4px) scale(1.02);
    box-shadow: 0 8px 24px rgba(255, 143, 163, 0.15), 0 4px 12px rgba(0, 0, 0, 0.06);
}

.shop-item.owned {
    border-color: var(--success);
    opacity: 0.7;
}

.shop-item-icon {
    font-size: 40px;
    margin-bottom: 8px;
}

.shop-item-name {
    font-size: 14px;
    font-weight: bold;
    margin-bottom: 5px;
}

.shop-item-price {
    font-size: 13px;
    color: var(--warning);
    font-weight: bold;
}

.shop-item.owned .shop-item-price {
    color: var(--success);
}

/* 统计面板 */
.stats-panel {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-bottom: 20px;
}

.stat-card {
    background: var(--white);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 6px 24px rgba(255, 143, 163, 0.12), 0 2px 8px rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(255, 214, 224, 0.5);
    transition: all 0.3s ease;
}

.stat-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 32px rgba(255, 143, 163, 0.18), 0 4px 12px rgba(0, 0, 0, 0.06);
}

.stat-card-icon {
    font-size: 30px;
    margin-bottom: 8px;
}

.stat-card-value {
    font-size: 24px;
    font-weight: bold;
    color: var(--text-dark);
}

.stat-card-label {
    font-size: 12px;
    color: var(--text-light);
    margin-top: 5px;
}

/* 复习提醒 */
.review-banner {
    background: linear-gradient(135deg, #ff8fa3 0%, #ffb3c6 100%);
    color: white;
    padding: 15px 20px;
    border-radius: 16px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 6px 20px rgba(255, 143, 163, 0.25);
}

.review-text {
    font-size: 14px;
}

.review-btn {
    background: white;
    color: var(--text-dark);
    border: 2px solid var(--pink-secondary);
    padding: 8px 20px;
    border-radius: 20px;
    font-weight: bold;
    cursor: pointer;
}

/* 动画 */
.pop-in {
    animation: popIn 0.5s ease;
}

@keyframes popIn {
    0% { transform: scale(0); opacity: 0; }
    70% { transform: scale(1.1); }
    100% { transform: scale(1); opacity: 1; }
}

.confetti {
    position: fixed;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    pointer-events: none;
    z-index: 9999;
    animation: confettiFall 3s ease-out forwards;
}

@keyframes confettiFall {
    0% { transform: translateY(-100px) rotate(0deg); opacity: 1; }
    100% { transform: translateY(100vh) rotate(720deg); opacity: 0; }
}

/* 响应式 */
@media (max-width: 600px) {
    .trail-row { gap: 12px; padding: 14px 4px; }
    .level-node { width: 50px; height: 50px; }
    .level-number { font-size: 15px; }
    .trail-row::before { left: 22px; right: 22px; }
    .trail-row:not(.rev)::after { right: 22px; }
    .trail-row.rev::after { left: 22px; }

    .menu-grid {
        grid-template-columns: 1fr;
    }
    
    .shop-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .word-english {
        font-size: 28px;
    }
    
    .game-header {
        flex-direction: column;
        gap: 10px;
    }
    
    .stats-panel {
        grid-template-columns: 1fr;
    }
}

/* 滚动条美化 */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: var(--pink-light);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb {
    background: var(--pink-secondary);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--pink-primary);
}

/* 隐藏元素 */
.hidden { display: none !important; }

/* 游戏模式标签 */
.mode-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
    justify-content: center;
}

.mode-tab {
    padding: 10px 24px;
    border-radius: 20px;
    border: 2px solid var(--pink-secondary);
    background: var(--white);
    color: var(--text-light);
    cursor: pointer;
    font-size: 14px;
    transition: all 0.3s ease;
    font-family: inherit;
    box-shadow: 0 2px 6px rgba(255, 143, 163, 0.08);
}

.mode-tab.active {
    background: linear-gradient(135deg, #ff8fa3 0%, #ffb3c6 100%);
    color: white;
    border-color: var(--pink-primary);
    box-shadow: 0 4px 16px rgba(255, 143, 163, 0.25);
}

/* 三阶段标签（背诵/默写/听写） */
.stage-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
    justify-content: center;
}

.stage-tab {
    padding: 10px 18px;
    border-radius: 20px;
    border: 2px solid var(--pink-secondary);
    background: var(--white);
    color: var(--text-light);
    font-size: 14px;
    font-weight: bold;
    transition: all 0.3s ease;
    font-family: inherit;
    box-shadow: 0 2px 6px rgba(255, 143, 163, 0.08);
    display: flex;
    align-items: center;
    gap: 6px;
    position: relative;
}

.stage-tab.active {
    background: linear-gradient(135deg, #ff8fa3 0%, #ffb3c6 100%);
    color: white;
    border-color: var(--pink-primary);
    box-shadow: 0 4px 16px rgba(255, 143, 163, 0.25);
    transform: translateY(-2px) scale(1.05);
}

.stage-tab.passed {
    border-color: var(--success);
    color: var(--success);
    background: var(--success-light);
}

.stage-tab.passed::after {
    content: "✓";
    position: absolute;
    top: -6px;
    right: -6px;
    width: 18px;
    height: 18px;
    background: var(--success);
    color: white;
    border-radius: 50%;
    font-size: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 计时器 */
.timer {
    font-size: 18px;
    font-weight: bold;
    color: var(--text-dark);
    background: var(--pink-light);
    padding: 8px 16px;
    border-radius: 20px;
    border: 1px solid rgba(255, 214, 224, 0.5);
    box-shadow: 0 2px 6px rgba(255, 143, 163, 0.1);
}

/* 连击显示 */
.combo-display {
    position: fixed;
    top: 80px;
    right: 20px;
    background: linear-gradient(135deg, #ff8fa3 0%, #ffb3c6 100%);
    color: white;
    padding: 10px 20px;
    border-radius: 20px;
    font-weight: bold;
    z-index: 100;
    animation: popIn 0.3s ease;
    box-shadow: 0 6px 20px rgba(255, 143, 163, 0.3);
}

/* 提示按钮 */
.hint-btn {
    background: var(--warning);
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 20px;
    cursor: pointer;
    font-size: 14px;
    transition: var(--transition);
}

.hint-btn:hover {
    transform: scale(1.05);
}

/* 星星评分 */
.star-rating {
    font-size: 24px;
    color: #ddd;
    letter-spacing: 5px;
}

.star-rating .filled {
    color: var(--warning);
}

/* 成就徽章 */
.achievement-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: var(--pink-light);
    padding: 8px 15px;
    border-radius: 20px;
    font-size: 13px;
    margin: 5px;
}

.achievement-badge.unlocked {
    background: var(--success-light);
    color: var(--success);
}

/* ============================================
   新增：角色换装系统 (#page-avatar)
   ============================================ */

#page-avatar {
    padding-bottom: 20px;
}

.avatar-section {
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
    align-items: stretch;
}

/* 左侧角色预览区 */
.avatar-preview {
    width: 40%;
    min-height: 320px;
    background: linear-gradient(135deg, #fff8fb 0%, #fff0f5 50%, #ffe6f0 100%);
    border-radius: 24px;
    border: 3px solid var(--pink-secondary);
    position: relative;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(255, 143, 163, 0.22), 0 2px 8px rgba(0, 0, 0, 0.06), inset 0 0 40px rgba(255, 255, 255, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
}

.avatar-preview::before {
    content: "";
    position: absolute;
    width: 280px;
    height: 280px;
    background: radial-gradient(circle, rgba(255, 179, 198, 0.25) 0%, rgba(255, 214, 224, 0.1) 50%, transparent 70%);
    border-radius: 50%;
    opacity: 0.9;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.avatar-preview::after {
    content: "";
    position: absolute;
    top: 8%;
    right: 8%;
    width: 40px;
    height: 40px;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.7) 0%, transparent 70%);
    border-radius: 50%;
    opacity: 0.6;
}

/* CSS绘制的简笔画角色 - 各部件绝对定位 */
/* SVG 角色容器 */
#avatar-svg {
    width: 100%;
    height: 100%;
    max-width: 320px;
    max-height: 450px;
    display: block;
    transform: scale(1.18);
    filter: drop-shadow(0 6px 18px rgba(255, 143, 163, 0.3));
}

#avatar-svg g[id^="svg-"] {
    transition: all 0.3s ease;
}

/* 甜美真实风增强：鼻子、皮肤光泽 */
#svg-nose {
    filter: drop-shadow(0 1px 1px rgba(0,0,0,0.06));
}

#svg-head path[fill="url(#skin)"] {
    filter: drop-shadow(0 0 4px rgba(255, 240, 230, 0.4));
}

/* 眼睛部件统一：增强甜美感 */
#svg-eye ellipse[fill="#ffb6c1"] {
    filter: blur(0.6px);
}

/* 嘴唇增强 */
#svg-mouth path[fill="#ff85a2"],
#svg-mouth path[fill="#ff9eb5"] {
    filter: drop-shadow(0 1px 2px rgba(232, 107, 138, 0.2));
}

/* SVG 颜色控制 */
#svg-hair { color: #5C3317; }
#svg-clothes { color: #FF69B4; }
#svg-bottom { color: #FFB6C1; }
#svg-shoes { color: #FFFAF0; }
#svg-hat { color: #FF69B4; }
#svg-accessory { color: #FF69B4; }
#svg-bag { color: #FFB6C1; }
#svg-glasses { color: #4a3728; }
#svg-eyebrow { color: #8B5E3C; }

/* 右侧部件选择面板 */
.avatar-parts-panel {
    width: 60%;
    background: var(--white);
    border-radius: var(--radius-lg);
    padding: 20px;
    box-shadow: var(--shadow-soft);
    border: 2px solid var(--pink-light);
    display: flex;
    flex-direction: column;
}

.parts-categories {
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
    margin-bottom: 15px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--pink-light);
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.parts-categories::-webkit-scrollbar {
    display: none;
}

.part-cat-btn {
    padding: 10px 20px;
    border: 2px solid var(--pink-secondary);
    background: var(--white);
    color: var(--text-dark);
    border-radius: 24px;
    font-size: 13px;
    font-weight: bold;
    cursor: pointer;
    transition: var(--transition);
    font-family: inherit;
    white-space: nowrap;
    flex-shrink: 0;
}

.part-cat-btn:hover {
    border-color: var(--pink-primary);
    background: var(--pink-light);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(255, 143, 163, 0.15);
}

.part-cat-btn.active {
    background: var(--pink-gradient);
    color: var(--white);
    border-color: var(--pink-primary);
    box-shadow: 0 4px 16px rgba(255, 143, 163, 0.3);
    position: relative;
}

.part-cat-btn.active::after {
    content: "";
    position: absolute;
    bottom: -14px;
    left: 50%;
    transform: translateX(-50%);
    width: 20px;
    height: 3px;
    background: var(--pink-primary);
    border-radius: 2px;
}

.parts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
    gap: 12px;
    overflow-y: auto;
    max-height: 340px;
    padding-right: 4px;
}

.part-item {
    background: var(--white);
    border: 2px solid var(--pink-secondary);
    border-radius: 12px;
    padding: 12px 8px;
    text-align: center;
    cursor: pointer;
    transition: var(--transition-bounce);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-height: 100px;
}

.part-item:hover {
    border-color: var(--pink-primary);
    background: var(--pink-light);
    transform: translateY(-6px) scale(1.05);
    box-shadow: 0 12px 32px rgba(255, 143, 163, 0.25), 0 4px 12px rgba(0, 0, 0, 0.08);
}

.part-item.selected {
    border-color: var(--pink-primary);
    background: var(--pink-gradient);
    color: var(--white);
    box-shadow: 0 0 16px rgba(255, 143, 163, 0.4), 0 4px 12px rgba(255, 143, 163, 0.2);
}

.part-item.locked {
    opacity: 0.5;
    cursor: not-allowed;
    filter: grayscale(0.6);
}

.part-item.locked:hover {
    transform: none;
    box-shadow: none;
}

.part-item-emoji {
    font-size: 28px;
}

.part-item-name {
    font-size: 12px;
    font-weight: bold;
}

.part-item-price {
    font-size: 11px;
    color: var(--warning);
    font-weight: bold;
}

.part-item.selected .part-item-price {
    color: var(--white);
}

/* 已保存搭配列表 */
.avatar-outfits {
    background: var(--white);
    border-radius: var(--radius-lg);
    padding: 20px;
    box-shadow: var(--shadow-soft);
    border: 2px solid var(--pink-light);
}

.avatar-outfits-title {
    font-size: 16px;
    font-weight: bold;
    color: var(--text-dark);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.outfits-scroll {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 8px;
}

.outfit-card {
    min-width: 100px;
    background: var(--cream);
    border: 2px solid var(--pink-secondary);
    border-radius: var(--radius-sm);
    padding: 12px;
    text-align: center;
    cursor: pointer;
    transition: var(--transition-bounce);
    flex-shrink: 0;
}

.outfit-card:hover {
    border-color: var(--pink-primary);
    transform: translateY(-4px);
    box-shadow: var(--shadow-card);
}

.outfit-card.active {
    border-color: var(--pink-primary);
    background: var(--pink-light);
}

.outfit-thumbnail {
    width: 60px;
    height: 60px;
    background: var(--gradient-cream);
    border-radius: 50%;
    margin: 0 auto 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
}

.outfit-name {
    font-size: 12px;
    font-weight: bold;
    color: var(--text-dark);
}

/* ============================================
   新增：多房间系统 (#page-rooms)
   ============================================ */

#page-rooms {
    padding-bottom: 20px;
}

/* 房间切换标签 */
.room-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
    overflow-x: auto;
    padding-bottom: 8px;
}

.room-tab {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    border: 2px solid var(--pink-secondary);
    background: var(--white);
    color: var(--text-dark);
    border-radius: 20px;
    font-size: 15px;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.3s ease;
    font-family: inherit;
    white-space: nowrap;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(255, 143, 163, 0.08);
}

.room-tab:hover {
    border-color: var(--pink-primary);
    background: var(--pink-light);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(255, 143, 163, 0.15);
}

.room-tab.active {
    border-color: var(--pink-primary);
    background: linear-gradient(135deg, #ff8fa3 0%, #ffb3c6 100%);
    color: var(--white);
    box-shadow: 0 6px 20px rgba(255, 143, 163, 0.25);
}

.room-tab.locked {
    opacity: 0.5;
    cursor: not-allowed;
    background: #f5f5f5;
    border-color: #ddd;
}

.room-tab.locked:hover {
    transform: none;
    border-color: #ddd;
}

.room-tab .lock-icon {
    font-size: 14px;
}

/* 房间主体区域 */
.room-section {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* 房间场景 */
.room-scene {
    width: 100%;
    height: 500px;
    background: var(--white);
    border-radius: var(--radius-lg);
    border: 3px solid var(--pink-secondary);
    position: relative;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(255, 143, 163, 0.15), 0 2px 8px rgba(0, 0, 0, 0.06);
}

/* 房间墙壁 - 70%高度 */
.room-scene .room-wall {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 70%;
    background: linear-gradient(to bottom, #fff0f5 0%, #ffe4ec 100%);
    transition: background 0.5s ease;
}

/* 房间墙壁 - 70%高度 - 默认卧室粉色主题 */
.room-scene .room-wall {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 70%;
    background: linear-gradient(to bottom, #fff8fa 0%, #fff0f5 50%, #ffe8f0 100%);
    border-bottom: 4px solid #e8d0c0;
}

/* 墙纸纹理 - 手绘风格圆点 */
.room-scene .room-wall::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: radial-gradient(circle, rgba(255, 143, 163, 0.12) 2px, transparent 2px);
    background-size: 24px 24px;
    opacity: 0.8;
}

/* 墙裙线 - 手绘装饰条 */
.room-scene .room-wall::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 30px;
    background: linear-gradient(to bottom, rgba(232, 208, 192, 0.5) 0%, rgba(232, 208, 192, 0.8) 100%);
    border-top: 2px solid rgba(200, 170, 150, 0.4);
}

/* 房间地板 - 30%高度 */
.room-scene .room-floor {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 30%;
    background: linear-gradient(to bottom, #f5e6d3 0%, #e8d5c4 50%, #dcc0a8 100%);
    border-top: 4px solid #c8a888;
}

/* 地板纹理线条 */
.room-scene .room-floor::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: repeating-linear-gradient(
        90deg,
        transparent,
        transparent 40px,
        rgba(160, 130, 100, 0.08) 40px,
        rgba(160, 130, 100, 0.08) 42px
    );
}

/* 地板光影 - 窗户投射 */
.room-scene .room-floor::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 160px;
    height: 100%;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.3) 0%, transparent 80%);
    pointer-events: none;
}

/* 厨房主题 - 白色+浅蓝色 */
.room-scene[data-room="kitchen"] .room-wall {
    background: linear-gradient(to bottom, #f8fbff 0%, #f0f7ff 50%, #e8f2ff 100%);
}
.room-scene[data-room="kitchen"] .room-wall::before {
    background-image: radial-gradient(circle, rgba(184, 224, 240, 0.15) 2px, transparent 2px);
}
.room-scene[data-room="kitchen"] .room-floor {
    background: linear-gradient(to bottom, #f0ebe5 0%, #e8e0d8 50%, #ddd5cc 100%);
}

/* 客厅主题 - 米色+粉色 */
.room-scene[data-room="living"] .room-wall {
    background: linear-gradient(to bottom, #fff8f0 0%, #fff0e8 50%, #ffe8e0 100%);
}
.room-scene[data-room="living"] .room-wall::before {
    background-image: radial-gradient(circle, rgba(255, 179, 198, 0.12) 2px, transparent 2px);
}
.room-scene[data-room="living"] .room-floor {
    background: linear-gradient(to bottom, #f5e8dc 0%, #e8d8cc 50%, #ddd0c0 100%);
}

/* 浴室主题 - 浅蓝+白色 */
.room-scene[data-room="bath"] .room-wall {
    background: linear-gradient(to bottom, #f0f8ff 0%, #e8f4ff 50%, #e0efff 100%);
}
.room-scene[data-room="bath"] .room-wall::before {
    background-image: radial-gradient(circle, rgba(184, 224, 240, 0.18) 2px, transparent 2px);
}
.room-scene[data-room="bath"] .room-floor {
    background: linear-gradient(to bottom, #e8e8e8 0%, #ddd 50%, #d0d0d0 100%);
    border-top: 4px solid #c0c0c0;
}

/* 衣帽间主题 - 浅紫+粉色 */
.room-scene[data-room="closet"] .room-wall {
    background: linear-gradient(to bottom, #faf8ff 0%, #f5f0ff 50%, #f0e8ff 100%);
}
.room-scene[data-room="closet"] .room-wall::before {
    background-image: radial-gradient(circle, rgba(201, 177, 255, 0.15) 2px, transparent 2px);
}
.room-scene[data-room="closet"] .room-floor {
    background: linear-gradient(to bottom, #f0e8f5 0%, #e8ddf0 50%, #ddd0e8 100%);
}

/* 窗户 */
.room-scene .room-window {
    position: absolute;
    top: 30px;
    left: 50%;
    transform: translateX(-50%);
    width: 140px;
    height: 110px;
    background: linear-gradient(to bottom, #c8e8f8 0%, #b8e0f0 100%);
    border: 5px solid var(--white);
    border-radius: 16px 16px 0 0;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08), inset 0 0 20px rgba(255, 255, 255, 0.4);
    overflow: hidden;
}

/* 窗户玻璃反光 */
.room-scene .room-window::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(255,255,255,0.4) 0%, transparent 50%);
}

/* 窗框十字 */
.room-scene .room-window::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 3px;
    background: var(--white);
    transform: translateY(-50%);
}

.room-window .window-vertical {
    position: absolute;
    top: 0;
    left: 50%;
    width: 3px;
    height: 100%;
    background: var(--white);
    transform: translateX(-50%);
}

/* 窗帘杆 */
.room-curtain-rod {
    position: absolute;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    width: 200px;
    height: 6px;
    background: linear-gradient(to bottom, #d4a574 0%, #c4956a 100%);
    border-radius: 3px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    z-index: 8;
}

/* 窗帘装饰球 */
.room-curtain-rod::before,
.room-curtain-rod::after {
    content: "";
    position: absolute;
    top: -4px;
    width: 14px;
    height: 14px;
    background: radial-gradient(circle, #e8c8a0 0%, #d4a574 100%);
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.room-curtain-rod::before { left: -7px; }
.room-curtain-rod::after { right: -7px; }

/* 阳光效果 */
.room-sunshine {
    position: absolute;
    top: 20px;
    right: 30px;
    width: 50px;
    height: 50px;
    background: radial-gradient(circle, rgba(255,220,100,0.6) 0%, transparent 70%);
    border-radius: 50%;
    animation: sunshinePulse 3s ease-in-out infinite;
}

@keyframes sunshinePulse {
    0%, 100% { opacity: 0.6; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.2); }
}

/* 房间门 */
.room-door {
    position: absolute;
    bottom: 30%;
    right: 40px;
    width: 70px;
    height: 120px;
    background: linear-gradient(to right, var(--wood-light) 0%, var(--wood-dark) 100%);
    border: 4px solid var(--white);
    border-radius: 8px 8px 0 0;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

/* 门面板装饰 */
.room-door::before {
    content: "";
    position: absolute;
    top: 15px;
    left: 50%;
    transform: translateX(-50%);
    width: 50px;
    height: 40px;
    background: linear-gradient(to bottom, rgba(255,255,255,0.1) 0%, rgba(0,0,0,0.05) 100%);
    border-radius: 4px;
    border: 1px solid rgba(0,0,0,0.08);
}

.room-door::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 12px;
    width: 8px;
    height: 8px;
    background: radial-gradient(circle, #ffd700 0%, #daa520 100%);
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

/* 家具物品（在多房间场景中） - 手绘Q版风格 */
#page-rooms .furniture-item {
    position: absolute;
    font-size: 44px;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
    filter: drop-shadow(3px 5px 8px rgba(0, 0, 0, 0.12));
    z-index: 5;
    border-radius: 10px;
}

#page-rooms .furniture-item:hover {
    transform: scale(1.15) translateY(-6px);
    filter: drop-shadow(5px 10px 16px rgba(0, 0, 0, 0.18));
}

/* 家具商店面板 */
.furniture-shop {
    background: var(--white);
    border-radius: 16px;
    padding: 20px;
    box-shadow: 0 6px 24px rgba(255, 143, 163, 0.12), 0 2px 8px rgba(0, 0, 0, 0.04);
    border: 2px solid var(--pink-light);
    max-height: 300px;
    overflow-y: auto;
}

.shop-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 12px;
    margin-bottom: 12px;
    border-bottom: 2px solid var(--pink-light);
}

.shop-header-title {
    font-size: 16px;
    font-weight: bold;
    color: var(--text-dark);
    display: flex;
    align-items: center;
    gap: 8px;
}

.shop-header-points {
    font-size: 15px;
    font-weight: bold;
    color: var(--warning);
    background: var(--peach-light);
    padding: 6px 14px;
    border-radius: 20px;
}

#page-rooms .shop-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

#page-rooms .shop-item {
    background: var(--cream);
    border: 2px solid var(--pink-light);
    border-radius: var(--radius-sm);
    padding: 12px;
    text-align: center;
    transition: var(--transition-bounce);
    cursor: pointer;
}

#page-rooms .shop-item:hover {
    border-color: var(--pink-primary);
    transform: translateY(-4px);
    box-shadow: var(--shadow-card);
}

#page-rooms .shop-item.owned {
    border-color: var(--success);
    background: var(--success-light);
    opacity: 0.9;
}

#page-rooms .shop-item.locked {
    opacity: 0.4;
    cursor: not-allowed;
    filter: grayscale(0.8);
}

#page-rooms .shop-item.locked:hover {
    transform: none;
    box-shadow: none;
}

/* 未解锁房间覆盖层 */
.room-lock-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 248, 251, 0.9);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 10;
    border-radius: 24px;
    backdrop-filter: blur(4px);
}

.room-lock-overlay .lock-icon {
    font-size: 60px;
    margin-bottom: 15px;
    opacity: 0.6;
}

.room-lock-overlay .lock-text {
    font-size: 16px;
    color: var(--text-light);
    margin-bottom: 15px;
}

.unlock-btn {
    background: var(--pink-gradient);
    color: var(--white);
    border: none;
    padding: 12px 28px;
    border-radius: 24px;
    font-size: 15px;
    font-weight: bold;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: var(--shadow-soft);
}

.unlock-btn:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-medium);
}

/* ============================================
   新增：通用动画与工具类
   ============================================ */

/* 加载动画 */
.loading {
    display: inline-block;
    width: 24px;
    height: 24px;
    border: 3px solid var(--pink-secondary);
    border-top-color: var(--pink-primary);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

.loading-large {
    width: 48px;
    height: 48px;
    border-width: 4px;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Toast通知 */
.toast-container {
    position: fixed;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 10px;
    pointer-events: none;
}

.toast-notification {
    background: var(--white);
    border: 2px solid var(--pink-secondary);
    border-radius: var(--radius);
    padding: 14px 24px;
    box-shadow: var(--shadow-medium);
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: bold;
    color: var(--text-dark);
    animation: toastSlideIn 0.4s ease, toastFadeOut 0.3s ease 2.7s forwards;
    pointer-events: all;
    min-width: 200px;
    max-width: 320px;
    justify-content: center;
}

.toast-notification.success {
    border-color: var(--success);
    background: var(--success-light);
    color: var(--success);
}

.toast-notification.error {
    border-color: var(--error);
    background: var(--error-light);
    color: var(--error);
}

.toast-notification.warning {
    border-color: var(--warning);
    background: #fffbea;
    color: #c79600;
}

.toast-notification.info {
    border-color: var(--pink-primary);
    background: var(--pink-light);
    color: var(--text-dark);
}

@keyframes toastSlideIn {
    0% { opacity: 0; transform: translateY(-30px) scale(0.9); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes toastFadeOut {
    0% { opacity: 1; transform: translateY(0) scale(1); }
    100% { opacity: 0; transform: translateY(-20px) scale(0.9); }
}

/* 更精致的卡片阴影 */
.card-elevated {
    box-shadow: var(--shadow-elevated);
}

.card-glow {
    box-shadow: var(--shadow-glow);
}

/* 渐变文字 */
.gradient-text {
    background: var(--pink-gradient-dark);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* 浮动动画 */
.float-animation {
    animation: floatY 3s ease-in-out infinite;
}

@keyframes floatY {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

/* 脉冲动画 */
.pulse-animation {
    animation: pulseGlow 2s ease-in-out infinite;
}

@keyframes pulseGlow {
    0%, 100% { box-shadow: 0 0 0 0 rgba(255, 133, 162, 0.4); }
    50% { box-shadow: 0 0 0 12px rgba(255, 133, 162, 0); }
}

/* 摇摆动画 */
.wiggle {
    animation: wiggle 0.6s ease;
}

@keyframes wiggle {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(-5deg); }
    75% { transform: rotate(5deg); }
}

/* 淡入上升 */
.fade-up {
    animation: fadeUp 0.5s ease forwards;
}

@keyframes fadeUp {
    0% { opacity: 0; transform: translateY(20px); }
    100% { opacity: 1; transform: translateY(0); }
}

/* 徽章闪烁 */
.badge-shine {
    position: relative;
    overflow: hidden;
}

.badge-shine::after {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 50%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
    animation: shine 2s ease-in-out infinite;
}

@keyframes shine {
    0% { left: -100%; }
    100% { left: 200%; }
}

/* ============================================
   响应式扩展
   ============================================ */

@media (max-width: 900px) {
    .avatar-section {
        flex-direction: column;
    }
    
    .avatar-preview {
        width: 100%;
        min-height: 320px;
    }
    
    .avatar-parts-panel {
        width: 100%;
    }
    
    .parts-grid {
        max-height: 260px;
        grid-template-columns: repeat(auto-fill, minmax(85px, 1fr));
    }
    
    #page-rooms .shop-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .room-scene {
        height: 400px;
    }
}

@media (max-width: 600px) {
    /* 原有响应式 */
    .levels-map {
        grid-template-columns: repeat(4, 1fr);
    }
    
    .menu-grid {
        grid-template-columns: 1fr;
    }
    
    .shop-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .word-english {
        font-size: 28px;
    }
    
    .game-header {
        flex-direction: column;
        gap: 10px;
    }
    
    .stats-panel {
        grid-template-columns: 1fr;
    }
    
    /* 新增响应式 */
    .avatar-section {
        flex-direction: column;
    }
    
    .avatar-preview {
        width: 100%;
        min-height: 280px;
    }
    
    .avatar-parts-panel {
        width: 100%;
        padding: 15px;
    }
    
    .parts-grid {
        max-height: 220px;
        grid-template-columns: repeat(3, 1fr);
    }
    
    .room-tabs {
        gap: 8px;
    }
    
    .room-tab {
        padding: 10px 16px;
        font-size: 13px;
    }
    
    .room-scene {
        height: 350px;
    }
    
    #page-rooms .shop-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .user-stats {
        flex-wrap: wrap;
        justify-content: center;
    }
    
    .toast-notification {
        min-width: auto;
        max-width: 90vw;
        padding: 12px 18px;
    }
}


/* ============================================
   精致家具细节样式（V2增强）
   ============================================ */

/* 通用家具细节增强 */
#page-rooms .furniture-item {
    position: absolute;
    cursor: pointer;
    transition: var(--transition-bounce);
    z-index: 5;
    box-shadow: 0 3px 8px rgba(0,0,0,0.15);
}

#page-rooms .furniture-item:hover {
    transform: scale(1.1) translateY(-3px);
    box-shadow: 0 6px 16px rgba(0,0,0,0.2);
}

/* ---------- 卧室家具 ---------- */

/* 粉色公主床 - 带床头、枕头、被子 - 手绘Q版风格 */
.furn-bed {
    border-radius: 12px 12px 8px 8px !important;
    box-shadow: 
        0 6px 16px rgba(0, 0, 0, 0.12),
        inset 0 -8px 0 rgba(0, 0, 0, 0.06),
        0 2px 4px rgba(255, 143, 163, 0.1) !important;
    background: linear-gradient(to bottom, #ffd6e0 0%, #ffc2d1 100%) !important;
}
.furn-bed::before {
    content: "";
    position: absolute;
    top: -18px;
    left: 0;
    width: 100%;
    height: 22px;
    background: inherit;
    border-radius: 14px 14px 0 0;
    filter: brightness(0.95);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}
.furn-bed::after {
    content: "";
    position: absolute;
    top: 5px;
    left: 15%;
    width: 70%;
    height: 40%;
    background: rgba(255, 255, 255, 0.35);
    border-radius: 6px;
}

/* 床头柜 - 带抽屉 - 手绘Q版风格 */
.furn-nightstand {
    border-radius: 10px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    background: linear-gradient(to bottom, #ffd6e0 0%, #ffc2d1 100%) !important;
}
.furn-nightstand::before {
    content: "";
    position: absolute;
    top: 30%;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 2px;
    background: rgba(0, 0, 0, 0.12);
}
.furn-nightstand::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%);
    width: 10px;
    height: 10px;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(255, 143, 163, 0.2);
}

/* 星星台灯 - 带灯杆和灯光 - 手绘Q版风格 */
.furn-lamp {
    border-radius: 50% 50% 40% 40% !important;
    box-shadow: 0 0 20px rgba(255, 215, 0, 0.35), 0 4px 12px rgba(0, 0, 0, 0.12) !important;
    background: linear-gradient(to bottom, #fff8dc 0%, #ffe4b5 100%) !important;
}
.furn-lamp::before {
    content: "";
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 6px;
    height: 14px;
    background: linear-gradient(to bottom, #a08070, #8b7355);
    border-radius: 3px;
}
.furn-lamp::after {
    content: "";
    position: absolute;
    bottom: -14px;
    left: 50%;
    transform: translateX(-50%);
    width: 18px;
    height: 5px;
    background: linear-gradient(to bottom, #b09080, #8b7355);
    border-radius: 3px;
}

/* 梦幻衣柜 - 带门和把手 - 手绘Q版风格 */
.furn-wardrobe {
    border-radius: 10px !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12) !important;
    background: linear-gradient(to bottom, #f5f0ff 0%, #e8e0ff 100%) !important;
    border: 1px solid rgba(201, 177, 255, 0.3) !important;
}
.furn-wardrobe::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 50%;
    width: 1px;
    height: 80%;
    background: rgba(0, 0, 0, 0.1);
    transform: translateX(-50%);
}
.furn-wardrobe::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 40%;
    width: 5px;
    height: 10px;
    background: rgba(255, 255, 255, 0.8);
    border-radius: 3px;
    box-shadow: 14px 0 0 rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(0, 0, 0, 0.05);
}

/* 魔法镜子 - 带镜框和反光 - 手绘Q版风格 */
.furn-mirror {
    border-radius: 50% !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), inset 0 0 15px rgba(255, 255, 255, 0.3) !important;
    background: linear-gradient(135deg, #f0f8ff 0%, #e0f0ff 100%) !important;
    border: 3px solid rgba(255, 255, 255, 0.6) !important;
}
.furn-mirror::before {
    content: "";
    position: absolute;
    top: 10%;
    left: 20%;
    width: 30%;
    height: 20%;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.6) 0%, transparent 60%);
    border-radius: 50%;
}
.furn-mirror::after {
    content: "";
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 22px;
    height: 7px;
    background: linear-gradient(to bottom, #d4a574, #c49464);
    border-radius: 3px;
}

/* 粉色梳妆台 - 带镜子和抽屉 - 手绘Q版风格 */
.furn-dresser {
    border-radius: 10px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    background: linear-gradient(to bottom, #ffd6e0 0%, #ffc2d1 100%) !important;
}
.furn-dresser::before {
    content: "";
    position: absolute;
    top: -22px;
    left: 50%;
    transform: translateX(-50%);
    width: 44px;
    height: 34px;
    background: rgba(255, 255, 255, 0.7);
    border: 2px solid rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}
.furn-dresser::after {
    content: "";
    position: absolute;
    top: 35%;
    left: 15%;
    width: 70%;
    height: 2px;
    background: rgba(0, 0, 0, 0.08);
}

/* 毛绒地毯 - 带毛绒边缘 */
.furn-rug, .furn-rug2, .furn-rug-living, .furn-rug-study, .furn-mat-balcony {
    border-radius: 8px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-rug2 {
    border-radius: 50% !important;
}

/* 蕾丝窗帘 - 带褶皱效果 */
.furn-curtain, .furn-curtain2, .furn-curtain-living, .furn-curtain-kitchen, .furn-curtain-balcony, .furn-curtain-study, .furn-curtain2-living, .furn-curtain2-balcony, .furn-curtain2-study {
    border-radius: 8px 8px 0 0 !important;
    box-shadow: 0 3px 8px rgba(0,0,0,0.1) !important;
}
.furn-curtain::before, .furn-curtain2::before, .furn-curtain-living::before, .furn-curtain-kitchen::before, .furn-curtain-balcony::before, .furn-curtain-study::before, .furn-curtain2-living::before, .furn-curtain2-balcony::before, .furn-curtain2-study::before {
    content: "";
    position: absolute;
    top: 0;
    left: 30%;
    width: 2px;
    height: 100%;
    background: rgba(0,0,0,0.05);
    box-shadow: 15px 0 0 rgba(0,0,0,0.05), 30px 0 0 rgba(0,0,0,0.05);
}

/* 爱心抱枕 - 心形 */
.furn-pillow, .furn-pillow-living, .furn-pillow-study, .furn-pillow2, .furn-cushion, .furn-cushion2 {
    border-radius: 50% 50% 50% 4px !important;
    transform: rotate(-45deg) !important;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1) !important;
}

/* 小熊玩偶 - 圆形耳朵 */
.furn-teddy {
    border-radius: 50% !important;
    box-shadow: 0 3px 8px rgba(0,0,0,0.12) !important;
}
.furn-teddy::before {
    content: "";
    position: absolute;
    top: -5px;
    left: 15%;
    width: 8px;
    height: 8px;
    background: inherit;
    border-radius: 50%;
    box-shadow: 12px 0 0 inherit;
}

/* 相框 - 带照片 */
.furn-frame, .furn-frame-balcony, .furn-frame-study, .furn-frames, .furn-art, .furn-painting {
    border-radius: 4px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.12) !important;
    border: 2px solid #d4a574 !important;
    background: #fff8f0 !important;
}
.furn-frame::before, .furn-frame-balcony::before, .furn-frame-study::before, .furn-art::before, .furn-painting::before {
    content: "";
    position: absolute;
    top: 10%;
    left: 10%;
    width: 80%;
    height: 80%;
    background: linear-gradient(135deg, #ffc0cb 0%, #ffb6c1 50%, #dda0dd 100%);
    border-radius: 2px;
}

/* 花瓶 - 带花 */
.furn-vase, .furn-vase-living, .furn-vase-kitchen, .furn-vase-balcony, .furn-vase-bath {
    border-radius: 40% 40% 20% 20% !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-vase::before, .furn-vase-living::before, .furn-vase-kitchen::before, .furn-vase-balcony::before, .furn-vase-bath::before {
    content: "";
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 6px;
    height: 12px;
    background: #90ee90;
    border-radius: 3px 3px 0 0;
}
.furn-vase::after, .furn-vase-living::after, .furn-vase-kitchen::after, .furn-vase-balcony::after, .furn-vase-bath::after {
    content: "";
    position: absolute;
    top: -16px;
    left: 50%;
    transform: translateX(-50%);
    width: 10px;
    height: 10px;
    background: #ff69b4;
    border-radius: 50%;
}

/* 绿植 - 带叶子 */
.furn-plant, .furn-plant-large, .furn-plant-kitchen, .furn-plant-bath, .furn-smallplant, .furn-plant-study {
    border-radius: 50% 50% 40% 40% !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-plant::before, .furn-plant-large::before, .furn-plant-kitchen::before, .furn-plant-bath::before, .furn-smallplant::before, .furn-plant-study::before {
    content: "";
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 16px;
    height: 8px;
    background: #d4a574;
    border-radius: 4px 4px 2px 2px;
}
.furn-plant::after, .furn-plant-large::after, .furn-plant-kitchen::after, .furn-plant-bath::after, .furn-smallplant::after, .furn-plant-study::after {
    content: "";
    position: absolute;
    top: -2px;
    left: 20%;
    width: 8px;
    height: 8px;
    background: inherit;
    border-radius: 50% 50% 0 50%;
    transform: rotate(-30deg);
    box-shadow: 8px 4px 0 inherit, 4px -2px 0 inherit;
}

/* 书架 - 带书 */
.furn-bookshelf, .furn-bookshelf-living, .furn-bookshelf-study, .furn-bookshelf2, .furn-bookshelf-balcony {
    border-radius: 4px !important;
    box-shadow: 0 4px 10px rgba(0,0,0,0.12) !important;
}
.furn-bookshelf::before, .furn-bookshelf-living::before, .furn-bookshelf-study::before, .furn-bookshelf2::before, .furn-bookshelf-balcony::before {
    content: "";
    position: absolute;
    top: 25%;
    left: 8%;
    width: 84%;
    height: 2px;
    background: rgba(0,0,0,0.15);
    box-shadow: 0 18px 0 rgba(0,0,0,0.15), 0 36px 0 rgba(0,0,0,0.15);
}
.furn-bookshelf::after, .furn-bookshelf-living::after, .furn-bookshelf-study::after, .furn-bookshelf2::after, .furn-bookshelf-balcony::after {
    content: "";
    position: absolute;
    top: 12%;
    left: 12%;
    width: 6px;
    height: 10px;
    background: #ff69b4;
    border-radius: 1px;
    box-shadow: 8px 0 0 #87ceeb, 16px 0 0 #dda0dd, 24px 0 0 #98fb98, 32px 0 0 #ffa07a;
}

/* 挂画 - 带画框 */
.furn-painting {
    border: 3px solid #d4a574 !important;
    border-radius: 4px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12) !important;
}

/* 星星灯串 - 发光效果 */
.furn-lights {
    border-radius: 20px !important;
    box-shadow: 0 0 10px rgba(255,215,0,0.3), 0 2px 6px rgba(0,0,0,0.1) !important;
}

/* 粉色门 - 带门框和把手 */
.furn-door, .furn-door-living, .furn-door-kitchen, .furn-door-bath, .furn-door-balcony, .furn-door-study {
    border-radius: 8px 8px 0 0 !important;
    box-shadow: 0 3px 10px rgba(0,0,0,0.15) !important;
    border: 2px solid rgba(0,0,0,0.08) !important;
}
.furn-door::before, .furn-door-living::before, .furn-door-kitchen::before, .furn-door-bath::before, .furn-door-balcony::before, .furn-door-study::before {
    content: "";
    position: absolute;
    top: 10%;
    left: 50%;
    transform: translateX(-50%);
    width: 70%;
    height: 1px;
    background: rgba(0,0,0,0.08);
    box-shadow: 0 20px 0 rgba(0,0,0,0.08), 0 40px 0 rgba(0,0,0,0.08), 0 60px 0 rgba(0,0,0,0.08);
}
.furn-door::after, .furn-door-living::after, .furn-door-kitchen::after, .furn-door-bath::after, .furn-door-balcony::after, .furn-door-study::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 15%;
    width: 6px;
    height: 6px;
    background: rgba(255,215,0,0.8);
    border-radius: 50%;
    box-shadow: 0 1px 2px rgba(0,0,0,0.15);
}

/* 圆形地毯 */
.furn-rug2 {
    border-radius: 50% !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}

/* 闹钟 - 圆形 */
.furn-clock, .furn-wallclock, .furn-clock-study {
    border-radius: 50% !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-clock::before, .furn-wallclock::before, .furn-clock-study::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 2px;
    height: 40%;
    background: rgba(0,0,0,0.3);
    transform-origin: bottom center;
    transform: translate(-50%, -100%) rotate(45deg);
}
.furn-clock::after, .furn-wallclock::after, .furn-clock-study::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 2px;
    height: 30%;
    background: rgba(0,0,0,0.3);
    transform-origin: bottom center;
    transform: translate(-50%, -100%) rotate(-30deg);
}

/* 手机 - 矩形 */
.furn-phone {
    border-radius: 4px !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.1) !important;
}
.furn-phone::before {
    content: "";
    position: absolute;
    top: 10%;
    left: 15%;
    width: 70%;
    height: 60%;
    background: rgba(255,255,255,0.3);
    border-radius: 2px;
}

/* ---------- 客厅家具 ---------- */

/* 粉色沙发 - 带靠背、扶手 - 手绘Q版风格 */
.furn-sofa, .furn-sofa-study {
    border-radius: 14px 14px 10px 10px !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(255, 143, 163, 0.1) !important;
    background: linear-gradient(to bottom, #ffd6e0 0%, #ffc2d1 100%) !important;
}
.furn-sofa::before, .furn-sofa-study::before {
    content: "";
    position: absolute;
    top: -14px;
    left: 0;
    width: 100%;
    height: 18px;
    background: inherit;
    border-radius: 14px 14px 0 0;
    filter: brightness(0.95);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}
.furn-sofa::after, .furn-sofa-study::after {
    content: "";
    position: absolute;
    top: 5px;
    left: 8%;
    width: 20%;
    height: 50%;
    background: rgba(255, 255, 255, 0.25);
    border-radius: 10px 10px 6px 6px;
    box-shadow: 55px 0 0 rgba(255, 255, 255, 0.25);
}

/* 玻璃茶几 - 透明感 - 手绘Q版风格 */
.furn-coffeetable, .furn-coffeetable-study, .furn-smalltable {
    border-radius: 10px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    background: rgba(230, 220, 210, 0.5) !important;
    border: 2px solid rgba(255, 255, 255, 0.6) !important;
}
.furn-coffeetable::before, .furn-coffeetable-study::before, .furn-smalltable::before {
    content: "";
    position: absolute;
    bottom: -8px;
    left: 20%;
    width: 8px;
    height: 10px;
    background: linear-gradient(to bottom, #b0a090, #a09080);
    border-radius: 3px;
    box-shadow: 40px 0 0 #a09080;
}

/* 电视柜 - 带抽屉 */
.furn-tvstand {
    border-radius: 4px !important;
    box-shadow: 0 3px 8px rgba(0,0,0,0.12) !important;
}
.furn-tvstand::before {
    content: "";
    position: absolute;
    top: 40%;
    left: 10%;
    width: 80%;
    height: 1px;
    background: rgba(0,0,0,0.15);
}
.furn-tvstand::after {
    content: "";
    position: absolute;
    top: 55%;
    left: 20%;
    width: 8px;
    height: 8px;
    background: rgba(255,255,255,0.6);
    border-radius: 2px;
    box-shadow: 20px 0 0 rgba(255,255,255,0.6);
}

/* 电视 - 带屏幕 */
.furn-tv {
    border-radius: 6px !important;
    box-shadow: 0 3px 10px rgba(0,0,0,0.15) !important;
    border: 3px solid rgba(0,0,0,0.1) !important;
}
.furn-tv::before {
    content: "";
    position: absolute;
    top: 8%;
    left: 8%;
    width: 84%;
    height: 70%;
    background: rgba(0,0,0,0.3);
    border-radius: 3px;
}
.furn-tv::after {
    content: "";
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 20px;
    height: 8px;
    background: rgba(0,0,0,0.2);
    border-radius: 2px;
}

/* 落地灯 - 带灯杆 - 手绘Q版风格 */
.furn-floorlamp {
    border-radius: 50% 50% 40% 40% !important;
    box-shadow: 0 0 20px rgba(255, 215, 0, 0.3), 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    background: linear-gradient(to bottom, #fff8dc 0%, #ffe4b5 100%) !important;
}
.furn-floorlamp::before {
    content: "";
    position: absolute;
    bottom: -24px;
    left: 50%;
    transform: translateX(-50%);
    width: 5px;
    height: 28px;
    background: linear-gradient(to bottom, #c0b0a0, #a09080);
    border-radius: 3px;
}
.furn-floorlamp::after {
    content: "";
    position: absolute;
    bottom: -30px;
    left: 50%;
    transform: translateX(-50%);
    width: 18px;
    height: 7px;
    background: linear-gradient(to bottom, #b0a090, #8b7355);
    border-radius: 4px;
}

/* 音响 - 带喇叭孔 */
.furn-speaker {
    border-radius: 4px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-speaker::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 40%;
    height: 40%;
    border: 2px solid rgba(255,255,255,0.3);
    border-radius: 50%;
}

/* 脚凳 - 圆形 */
.furn-ottoman {
    border-radius: 50% !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-ottoman::before {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 4px;
    background: rgba(0,0,0,0.08);
    border-radius: 50%;
}

/* 垃圾桶 - 带开口 */
.furn-trash, .furn-trash-bath {
    border-radius: 6px 6px 3px 3px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-trash::before, .furn-trash-bath::before {
    content: "";
    position: absolute;
    top: -2px;
    left: 10%;
    width: 80%;
    height: 3px;
    background: rgba(0,0,0,0.15);
    border-radius: 2px;
}

/* 风扇 - 圆形 */
.furn-fan {
    border-radius: 50% !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-fan::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60%;
    height: 2px;
    background: rgba(255,255,255,0.5);
    transform: translate(-50%, -50%) rotate(45deg);
    box-shadow: 0 0 0 2px rgba(255,255,255,0.5);
}

/* ---------- 厨房家具 ---------- */

/* 粉色冰箱 - 带门把手 - 手绘Q版风格 */
.furn-fridge {
    border-radius: 10px 10px 4px 4px !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12) !important;
    background: linear-gradient(to right, #f8f8ff 0%, #f0f0ff 100%) !important;
    border: 2px solid rgba(255, 255, 255, 0.6) !important;
}
.furn-fridge::before {
    content: "";
    position: absolute;
    top: 15%;
    left: 50%;
    width: 1px;
    height: 70%;
    background: rgba(0, 0, 0, 0.08);
    transform: translateX(-50%);
}
.furn-fridge::after {
    content: "";
    position: absolute;
    top: 25%;
    right: 15%;
    width: 5px;
    height: 10px;
    background: rgba(255, 255, 255, 0.8);
    border-radius: 3px;
    box-shadow: 0 40px 0 rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(0, 0, 0, 0.05);
}

/* 橱柜 - 带门 - 手绘Q版风格 */
.furn-cabinets {
    border-radius: 8px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    background: linear-gradient(to bottom, #f8fbff 0%, #f0f7ff 100%) !important;
    border: 1px solid rgba(184, 224, 240, 0.3) !important;
}
.furn-cabinets::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 1px;
    height: 100%;
    background: rgba(0, 0, 0, 0.08);
    transform: translateX(-50%);
}
.furn-cabinets::after {
    content: "";
    position: absolute;
    top: 40%;
    left: 25%;
    width: 5px;
    height: 5px;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 50%;
    box-shadow: 20px 0 0 rgba(255, 255, 255, 0.7);
    border: 1px solid rgba(0, 0, 0, 0.05);
}

/* 厨房岛台 - 带台面 */
.furn-island {
    border-radius: 4px !important;
    box-shadow: 0 3px 10px rgba(0,0,0,0.12) !important;
    border-top: 3px solid rgba(255,255,255,0.5) !important;
}

/* 烤箱 - 带玻璃门 */
.furn-oven {
    border-radius: 4px !important;
    box-shadow: 0 3px 8px rgba(0,0,0,0.1) !important;
}
.furn-oven::before {
    content: "";
    position: absolute;
    top: 15%;
    left: 10%;
    width: 80%;
    height: 55%;
    background: rgba(0,0,0,0.2);
    border-radius: 2px;
}
.furn-oven::after {
    content: "";
    position: absolute;
    bottom: 15%;
    left: 50%;
    transform: translateX(-50%);
    width: 50%;
    height: 2px;
    background: rgba(0,0,0,0.15);
    box-shadow: 0 6px 0 rgba(0,0,0,0.15);
}

/* 餐桌 - 带桌腿 */
.furn-diningtable {
    border-radius: 6px !important;
    box-shadow: 0 3px 10px rgba(0,0,0,0.12) !important;
}
.furn-diningtable::before {
    content: "";
    position: absolute;
    bottom: -8px;
    left: 15%;
    width: 6px;
    height: 10px;
    background: #8b7355;
    border-radius: 2px;
    box-shadow: 40px 0 0 #8b7355, 20px 0 0 #8b7355;
}

/* 椅子 - 带靠背 */
.furn-chair, .furn-chair2, .furn-chair-balcony, .furn-deskchair {
    border-radius: 6px 6px 2px 2px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-chair::before, .furn-chair2::before, .furn-chair-balcony::before, .furn-deskchair::before {
    content: "";
    position: absolute;
    top: -8px;
    left: 15%;
    width: 70%;
    height: 8px;
    background: inherit;
    border-radius: 4px 4px 0 0;
    filter: brightness(0.95);
}
.furn-chair::after, .furn-chair2::after, .furn-chair-balcony::after, .furn-deskchair::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 20%;
    width: 4px;
    height: 6px;
    background: rgba(0,0,0,0.15);
    border-radius: 2px;
    box-shadow: 12px 0 0 rgba(0,0,0,0.15);
}

/* 咖啡机 - 带壶 */
.furn-coffee {
    border-radius: 4px 4px 2px 2px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-coffee::before {
    content: "";
    position: absolute;
    top: -4px;
    left: 50%;
    transform: translateX(-50%);
    width: 8px;
    height: 6px;
    background: rgba(255,255,255,0.5);
    border-radius: 2px 2px 0 0;
}

/* 微波炉 - 带玻璃门 */
.furn-microwave {
    border-radius: 4px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-microwave::before {
    content: "";
    position: absolute;
    top: 15%;
    left: 10%;
    width: 60%;
    height: 55%;
    background: rgba(0,0,0,0.15);
    border-radius: 2px;
}

/* 水槽 - 带水龙头 */
.furn-sink {
    border-radius: 4px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
    background: rgba(200,200,200,0.5) !important;
}
.furn-sink::before {
    content: "";
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 6px;
    height: 8px;
    background: #aaa;
    border-radius: 3px 3px 0 0;
}

/* 烤面包机 - 带面包 */
.furn-toaster {
    border-radius: 4px 4px 2px 2px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-toaster::before {
    content: "";
    position: absolute;
    top: -4px;
    left: 20%;
    width: 6px;
    height: 5px;
    background: #deb887;
    border-radius: 2px 2px 0 0;
    box-shadow: 8px 0 0 #deb887;
}

/* ---------- 浴室家具 ---------- */

/* 粉色浴缸 - 带水龙头 - 手绘Q版风格 */
.furn-bathtub {
    border-radius: 14px 14px 10px 10px !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1) !important;
    border: 2px solid rgba(255, 255, 255, 0.4) !important;
    background: linear-gradient(to bottom, #e0f0ff 0%, #c8e4ff 100%) !important;
}
.furn-bathtub::before {
    content: "";
    position: absolute;
    top: -10px;
    right: 15%;
    width: 10px;
    height: 14px;
    background: linear-gradient(to bottom, #b0c0d0, #90a0b0);
    border-radius: 5px 5px 0 0;
}
.furn-bathtub::after {
    content: "";
    position: absolute;
    top: 20%;
    left: 10%;
    width: 80%;
    height: 50%;
    background: rgba(255, 255, 255, 0.25);
    border-radius: 10px 10px 6px 6px;
}

/* 洗手台 - 带镜子和柜子 - 手绘Q版风格 */
.furn-vanity {
    border-radius: 8px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    background: linear-gradient(to bottom, #f8f8ff 0%, #f0f0ff 100%) !important;
    border: 1px solid rgba(184, 224, 240, 0.3) !important;
}
.furn-vanity::before {
    content: "";
    position: absolute;
    top: -28px;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 28px;
    background: rgba(255, 255, 255, 0.6);
    border: 2px solid rgba(255, 255, 255, 0.8);
    border-radius: 6px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}
.furn-vanity::after {
    content: "";
    position: absolute;
    bottom: 2px;
    left: 15%;
    width: 70%;
    height: 2px;
    background: rgba(0, 0, 0, 0.08);
    box-shadow: 0 8px 0 rgba(0, 0, 0, 0.08);
}

/* 马桶 - 水箱和座圈 - 手绘Q版风格 */
.furn-toilet {
    border-radius: 8px 8px 6px 6px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    background: linear-gradient(to bottom, #f8f8ff 0%, #f0f0ff 100%) !important;
    border: 1px solid rgba(184, 224, 240, 0.3) !important;
}
.furn-toilet::before {
    content: "";
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 80%;
    height: 14px;
    background: inherit;
    border-radius: 6px 6px 0 0;
    filter: brightness(0.95);
}
.furn-toilet::after {
    content: "";
    position: absolute;
    top: 5px;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 2px;
    background: rgba(0, 0, 0, 0.06);
}

/* 浴室镜子 - 带镜框 - 手绘Q版风格 */
.furn-mirror-bath, .furn-mirror2 {
    border-radius: 10px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    border: 3px solid #fff !important;
    background: linear-gradient(135deg, rgba(200, 220, 255, 0.4) 0%, rgba(220, 235, 255, 0.3) 100%) !important;
}
.furn-mirror-bath::before, .furn-mirror2::before {
    content: "";
    position: absolute;
    top: 15%;
    left: 20%;
    width: 25%;
    height: 20%;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.6) 0%, transparent 60%);
    border-radius: 6px;
}

/* 浴帘 - 带褶皱 */
.furn-showercurtain {
    border-radius: 8px 8px 0 0 !important;
    box-shadow: 0 3px 8px rgba(0,0,0,0.1) !important;
}
.furn-showercurtain::before {
    content: "";
    position: absolute;
    top: 0;
    left: 20%;
    width: 1px;
    height: 100%;
    background: rgba(0,0,0,0.05);
    box-shadow: 15px 0 0 rgba(0,0,0,0.05), 30px 0 0 rgba(0,0,0,0.05), 45px 0 0 rgba(0,0,0,0.05);
}

/* 毛巾架 - 带毛巾 */
.furn-towelrack {
    border-radius: 3px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
    background: rgba(200,200,200,0.5) !important;
}
.furn-towelrack::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 10%;
    width: 25%;
    height: 60%;
    background: rgba(255,255,255,0.6);
    border-radius: 2px;
    transform: translateY(-50%);
    box-shadow: 15px 0 0 rgba(255,255,255,0.6), 30px 0 0 rgba(255,255,255,0.6);
}

/* 小鸭子 - 可爱造型 */
.furn-duck {
    border-radius: 50% 50% 40% 40% !important;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1) !important;
}
.furn-duck::before {
    content: "";
    position: absolute;
    top: -2px;
    left: 60%;
    width: 6px;
    height: 4px;
    background: #ff8c00;
    border-radius: 2px;
}
.furn-duck::after {
    content: "";
    position: absolute;
    top: 15%;
    left: 25%;
    width: 3px;
    height: 3px;
    background: #333;
    border-radius: 50%;
}

/* 香薰 - 带烟雾 */
.furn-diffuser {
    border-radius: 50% 50% 40% 40% !important;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1) !important;
}
.furn-diffuser::before {
    content: "";
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 6px;
    background: rgba(200,200,200,0.5);
}

/* 蜡烛 - 带火焰 */
.furn-candle {
    border-radius: 4px 4px 2px 2px !important;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1) !important;
}
.furn-candle::before {
    content: "";
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 6px;
    background: radial-gradient(ellipse, #ffa500 0%, transparent 70%);
    border-radius: 50% 50% 30% 30%;
}

/* ---------- 阳台家具 ---------- */

/* 花架 - 带多层 */
.furn-plantstand {
    border-radius: 4px !important;
    box-shadow: 0 3px 8px rgba(0,0,0,0.12) !important;
}
.furn-plantstand::before {
    content: "";
    position: absolute;
    top: 30%;
    left: 5%;
    width: 90%;
    height: 2px;
    background: rgba(0,0,0,0.1);
    box-shadow: 0 20px 0 rgba(0,0,0,0.1);
}
.furn-plantstand::after {
    content: "";
    position: absolute;
    top: 10%;
    left: 15%;
    width: 12px;
    height: 12px;
    background: #90ee90;
    border-radius: 50%;
    box-shadow: 20px 0 0 #ffa500, 10px 15px 0 #ff69b4;
}

/* 躺椅 - 带靠背 */
.furn-lounger {
    border-radius: 8px 8px 4px 4px !important;
    box-shadow: 0 3px 10px rgba(0,0,0,0.12) !important;
}
.furn-lounger::before {
    content: "";
    position: absolute;
    top: -10px;
    left: 0;
    width: 100%;
    height: 12px;
    background: inherit;
    border-radius: 8px 8px 0 0;
    filter: brightness(0.95);
}
.furn-lounger::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 15%;
    width: 6px;
    height: 6px;
    background: rgba(0,0,0,0.15);
    border-radius: 2px;
    box-shadow: 30px 0 0 rgba(0,0,0,0.15);
}

/* 遮阳伞 - 圆形伞面 */
.furn-umbrella {
    border-radius: 50% 50% 10% 10% !important;
    box-shadow: 0 3px 10px rgba(0,0,0,0.1) !important;
}
.furn-umbrella::before {
    content: "";
    position: absolute;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 25px;
    background: #aaa;
    border-radius: 2px;
}
.furn-umbrella::after {
    content: "";
    position: absolute;
    bottom: -24px;
    left: 50%;
    transform: translateX(-50%);
    width: 16px;
    height: 6px;
    background: #aaa;
    border-radius: 3px;
}

/* 花盆 - 带花 */
.furn-pot1, .furn-pot2, .furn-pot3 {
    border-radius: 40% 40% 30% 30% !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-pot1::before, .furn-pot2::before, .furn-pot3::before {
    content: "";
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 10px;
    background: #228b22;
    border-radius: 2px;
}
.furn-pot1::after, .furn-pot2::after, .furn-pot3::after {
    content: "";
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    width: 8px;
    height: 8px;
    background: #ff69b4;
    border-radius: 50%;
}

/* 浇水壶 - 带壶嘴 */
.furn-watering {
    border-radius: 6px 6px 4px 4px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-watering::before {
    content: "";
    position: absolute;
    top: -4px;
    left: 80%;
    width: 8px;
    height: 4px;
    background: inherit;
    border-radius: 2px;
    transform: rotate(-30deg);
}
.furn-watering::after {
    content: "";
    position: absolute;
    top: 20%;
    right: -2px;
    width: 6px;
    height: 10px;
    background: inherit;
    border-radius: 2px;
}

/* 风铃 - 带铃铛 */
.furn-windchime {
    border-radius: 4px !important;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1) !important;
    background: rgba(255,215,0,0.3) !important;
}
.furn-windchime::before {
    content: "";
    position: absolute;
    bottom: -8px;
    left: 20%;
    width: 4px;
    height: 8px;
    background: #ffd700;
    border-radius: 2px;
    box-shadow: 6px 0 0 #ffd700, 12px 0 0 #ffd700;
}

/* 鸟屋 - 带屋顶 */
.furn-birdhouse {
    border-radius: 6px 6px 4px 4px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-birdhouse::before {
    content: "";
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-bottom: 10px solid #8b4513;
}
.furn-birdhouse::after {
    content: "";
    position: absolute;
    top: 30%;
    left: 50%;
    transform: translateX(-50%);
    width: 6px;
    height: 6px;
    background: rgba(0,0,0,0.2);
    border-radius: 50%;
}

/* 地灯 - 发光 */
.furn-groundlight {
    border-radius: 50% !important;
    box-shadow: 0 0 8px rgba(255,215,0,0.4), 0 2px 5px rgba(0,0,0,0.1) !important;
}

/* 小栅栏 - 带纹理 */
.furn-fence {
    border-radius: 4px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
    background: repeating-linear-gradient(90deg, transparent, transparent 8px, rgba(0,0,0,0.1) 8px, rgba(0,0,0,0.1) 10px) !important;
}

/* ---------- 书房家具 ---------- */

/* 粉色书桌 - 带抽屉 */
.furn-desk {
    border-radius: 4px !important;
    box-shadow: 0 3px 10px rgba(0,0,0,0.12) !important;
}
.furn-desk::before {
    content: "";
    position: absolute;
    top: 0;
    left: 60%;
    width: 35%;
    height: 100%;
    border-left: 1px solid rgba(0,0,0,0.1);
}
.furn-desk::after {
    content: "";
    position: absolute;
    top: 40%;
    left: 65%;
    width: 8px;
    height: 4px;
    background: rgba(255,255,255,0.5);
    border-radius: 2px;
    box-shadow: 0 12px 0 rgba(255,255,255,0.5);
}

/* 台灯 - 发光 */
.furn-desk-lamp, .furn-smalllamp {
    border-radius: 50% 50% 40% 40% !important;
    box-shadow: 0 0 12px rgba(255,215,0,0.4), 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-desk-lamp::before, .furn-smalllamp::before {
    content: "";
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 8px;
    background: #8b7355;
    border-radius: 2px;
}

/* 电脑 - 带屏幕 */
.furn-computer {
    border-radius: 4px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12) !important;
}
.furn-computer::before {
    content: "";
    position: absolute;
    top: 8%;
    left: 8%;
    width: 84%;
    height: 60%;
    background: rgba(0,0,0,0.2);
    border-radius: 2px;
}
.furn-computer::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 50%;
    transform: translateX(-50%);
    width: 12px;
    height: 4px;
    background: #aaa;
    border-radius: 2px;
}

/* 地球仪 - 圆形 */
.furn-globe {
    border-radius: 50% !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
    border: 2px solid rgba(0,0,0,0.1) !important;
}
.furn-globe::before {
    content: "";
    position: absolute;
    top: 10%;
    left: 20%;
    width: 20%;
    height: 15%;
    background: rgba(255,255,255,0.3);
    border-radius: 50%;
}
.furn-globe::after {
    content: "";
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 8px;
    height: 6px;
    background: #8b7355;
    border-radius: 2px;
}

/* 笔筒 - 带笔 */
.furn-penholder {
    border-radius: 4px 4px 2px 2px !important;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1) !important;
}
.furn-penholder::before {
    content: "";
    position: absolute;
    top: -6px;
    left: 20%;
    width: 2px;
    height: 8px;
    background: #ff69b4;
    border-radius: 1px;
    box-shadow: 4px 0 0 #87ceeb, 8px 0 0 #dda0dd;
}

/* 打印机 - 带出纸口 */
.furn-printer {
    border-radius: 4px !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1) !important;
}
.furn-printer::before {
    content: "";
    position: absolute;
    top: 30%;
    left: 10%;
    width: 80%;
    height: 2px;
    background: rgba(0,0,0,0.15);
}
.furn-printer::after {
    content: "";
    position: absolute;
    top: -2px;
    left: 30%;
    width: 40%;
    height: 2px;
    background: rgba(255,255,255,0.6);
}

/* 文件架 - 多层 */
.furn-fileholder {
    border-radius: 4px !important;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1) !important;
}
.furn-fileholder::before {
    content: "";
    position: absolute;
    top: 20%;
    left: 10%;
    width: 80%;
    height: 1px;
    background: rgba(0,0,0,0.1);
    box-shadow: 0 6px 0 rgba(0,0,0,0.1), 0 12px 0 rgba(0,0,0,0.1);
}

/* 收纳盒 - 带盖子 */
.furn-organizer {
    border-radius: 4px !important;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1) !important;
}
.furn-organizer::before {
    content: "";
    position: absolute;
    top: -2px;
    left: 5%;
    width: 90%;
    height: 3px;
    background: rgba(255,255,255,0.5);
    border-radius: 2px;
}

/* 飘窗 - 带窗台 */
.furn-windowseat {
    border-radius: 6px 6px 0 0 !important;
    box-shadow: 0 3px 8px rgba(0,0,0,0.1) !important;
    border: 2px solid rgba(255,255,255,0.4) !important;
}
.furn-windowseat::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: rgba(255,255,255,0.6);
    border-radius: 4px 4px 0 0;
}

/* 拖鞋 - 左右脚 */
.furn-slippers {
    border-radius: 50% 50% 30% 30% !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08) !important;
}
.furn-slippers::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 20%;
    width: 60%;
    height: 1px;
    background: rgba(0,0,0,0.1);
}

/* 日记本 - 带封面 */
.furn-notebook, .furn-notebook-study, .furn-cookbook, .furn-dictionary {
    border-radius: 3px !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08) !important;
}
.furn-notebook::before, .furn-notebook-study::before, .furn-cookbook::before, .furn-dictionary::before {
    content: "";
    position: absolute;
    top: 5%;
    left: 5%;
    width: 90%;
    height: 90%;
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 2px;
}

/* 音乐盒 - 圆形 */
.furn-musicbox {
    border-radius: 50% !important;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1) !important;
}
.furn-musicbox::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 30%;
    height: 30%;
    border: 1px solid rgba(255,255,255,0.4);
    border-radius: 50%;
}

/* 星星灯串 - 发光 */
.furn-lights {
    border-radius: 20px !important;
    box-shadow: 0 0 10px rgba(255,215,0,0.3) !important;
}
.furn-lights::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 10%;
    width: 6px;
    height: 6px;
    background: rgba(255,255,255,0.8);
    border-radius: 50%;
    transform: translateY(-50%);
    box-shadow: 15px 0 0 rgba(255,255,255,0.8), 30px 0 0 rgba(255,255,255,0.8), 45px 0 0 rgba(255,255,255,0.8);
}

/* 飘窗垫 - 柔软感 */
.furn-windowseat {
    background: linear-gradient(to bottom, rgba(255,255,255,0.6) 0%, rgba(245,245,220,0.8) 100%) !important;
}

/* 咖啡杯 - 带手柄 */
.furn-coffee-study {
    border-radius: 50% 50% 40% 40% !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08) !important;
}
.furn-coffee-study::before {
    content: "";
    position: absolute;
    top: 20%;
    right: -3px;
    width: 4px;
    height: 6px;
    border: 2px solid inherit;
    border-radius: 0 4px 4px 0;
    border-left: none;
}

/* 键盘 - 带按键 */
.furn-computer::after {
    content: "";
    position: absolute;
    bottom: 8%;
    left: 15%;
    width: 70%;
    height: 15%;
    background: rgba(0,0,0,0.1);
    border-radius: 2px;
}

/* 窗帘杆装饰增强 */
.room-curtain-rod {
    background: linear-gradient(to bottom, #c4956a 0%, #a67c52 50%, #c4956a 100%) !important;
}

/* 房间场景整体光影增强 */
.room-scene {
    position: relative;
    width: 100%;
    height: 420px;
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-medium);
    border: 3px solid var(--pink-secondary);
    background: var(--cream);
}

/* 墙面角落阴影 */
.room-scene::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to right, rgba(0,0,0,0.03) 0%, transparent 10%, transparent 90%, rgba(0,0,0,0.03) 100%);
    pointer-events: none;
    z-index: 9;
}


/* ---------- 衣帽间家具 ---------- */

/* 衣帽间-大衣柜 - 双门+把手 */
.furn-wardrobe-room {
    border-radius: 10px !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12) !important;
}
.furn-wardrobe-room::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 50%;
    width: 1px;
    height: 80%;
    background: rgba(0, 0, 0, 0.1);
    transform: translateX(-50%);
}
.furn-wardrobe-room::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 40%;
    width: 5px;
    height: 10px;
    background: rgba(255, 255, 255, 0.8);
    border-radius: 3px;
    box-shadow: 14px 0 0 rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(0, 0, 0, 0.05);
}

/* 衣帽间-梳妆台 - 镜子+抽屉 */
.furn-dresser-wardrobe {
    border-radius: 10px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
}
.furn-dresser-wardrobe::before {
    content: "";
    position: absolute;
    top: -22px;
    left: 50%;
    transform: translateX(-50%);
    width: 44px;
    height: 34px;
    background: rgba(255, 255, 255, 0.7);
    border: 2px solid rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}
.furn-dresser-wardrobe::after {
    content: "";
    position: absolute;
    top: 35%;
    left: 15%;
    width: 70%;
    height: 2px;
    background: rgba(0, 0, 0, 0.08);
}

/* 衣帽间-穿衣镜 - 椭圆形+底座 */
.furn-mirror-wardrobe {
    border-radius: 50% 50% 10% 10% !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), inset 0 0 15px rgba(255, 255, 255, 0.3) !important;
    border: 3px solid rgba(255, 255, 255, 0.6) !important;
}
.furn-mirror-wardrobe::before {
    content: "";
    position: absolute;
    top: 10%;
    left: 20%;
    width: 30%;
    height: 20%;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.6) 0%, transparent 60%);
    border-radius: 50%;
}
.furn-mirror-wardrobe::after {
    content: "";
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 22px;
    height: 7px;
    background: linear-gradient(to bottom, #d4a574, #c49464);
    border-radius: 3px;
}

/* 衣帽间-衣架 - 横杆+挂钩 */
.furn-rack {
    border-radius: 8px !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1) !important;
}
.furn-rack::before {
    content: "";
    position: absolute;
    top: 15%;
    left: 10%;
    width: 80%;
    height: 3px;
    background: rgba(0, 0, 0, 0.15);
    border-radius: 2px;
}
.furn-rack::after {
    content: "";
    position: absolute;
    top: 5%;
    left: 50%;
    transform: translateX(-50%);
    width: 6px;
    height: 8px;
    background: rgba(0, 0, 0, 0.12);
    border-radius: 0 0 3px 3px;
}

/* 衣帽间-鞋柜 - 层板 */
.furn-shoerack {
    border-radius: 8px !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1) !important;
}
.furn-shoerack::before {
    content: "";
    position: absolute;
    top: 30%;
    left: 10%;
    width: 80%;
    height: 2px;
    background: rgba(0, 0, 0, 0.1);
    box-shadow: 0 15px 0 rgba(0, 0, 0, 0.1);
}
.furn-shoerack::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
    background: rgba(255, 255, 255, 0.6);
    border-radius: 50%;
    border: 1px solid rgba(0, 0, 0, 0.05);
}

/* 衣帽间-首饰盒 - 小方盒+盖子 */
.furn-jewelrybox {
    border-radius: 6px !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1), inset 0 1px 2px rgba(255, 255, 255, 0.5) !important;
}
.furn-jewelrybox::before {
    content: "";
    position: absolute;
    top: -4px;
    left: 10%;
    width: 80%;
    height: 6px;
    background: inherit;
    filter: brightness(1.1);
    border-radius: 3px 3px 0 0;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.furn-jewelrybox::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 6px;
    height: 6px;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 50%;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

/* 衣帽间-窗帘 - 垂坠布料 */
.furn-curtain-wardrobe {
    border-radius: 8px 8px 0 0 !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1) !important;
}
.furn-curtain-wardrobe::before {
    content: "";
    position: absolute;
    top: 0;
    left: 30%;
    width: 2px;
    height: 100%;
    background: rgba(0, 0, 0, 0.05);
    box-shadow: 20px 0 0 rgba(0, 0, 0, 0.05), 40px 0 0 rgba(0, 0, 0, 0.05);
}
.furn-curtain-wardrobe::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 8px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.06), transparent);
    border-radius: 0 0 8px 8px;
}

/* 衣帽间-地毯 - 矩形纹理 */
.furn-rug-wardrobe {
    border-radius: 8px !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1) !important;
}
.furn-rug-wardrobe::before {
    content: "";
    position: absolute;
    top: 15%;
    left: 15%;
    width: 70%;
    height: 70%;
    border: 1px dashed rgba(255, 255, 255, 0.4);
    border-radius: 4px;
}
.furn-rug-wardrobe::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 30%;
    height: 30%;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 50%;
}

/* 衣帽间-吊灯 - 圆形灯珠 */
.furn-chandelier {
    border-radius: 50% !important;
    box-shadow: 0 0 20px rgba(255, 215, 0, 0.35), 0 4px 12px rgba(0, 0, 0, 0.12) !important;
}
.furn-chandelier::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 40%;
    height: 40%;
    background: rgba(255, 255, 255, 0.6);
    border-radius: 50%;
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.5);
}
.furn-chandelier::after {
    content: "";
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 3px;
    height: 8px;
    background: rgba(0, 0, 0, 0.15);
    border-radius: 2px;
}

/* 衣帽间-沙发凳 - 矩形软垫 */
.furn-bench {
    border-radius: 10px 10px 6px 6px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1), inset 0 -4px 0 rgba(0, 0, 0, 0.06) !important;
}
.furn-bench::before {
    content: "";
    position: absolute;
    top: 20%;
    left: 15%;
    width: 70%;
    height: 40%;
    background: rgba(255, 255, 255, 0.25);
    border-radius: 6px;
}
.furn-bench::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 15%;
    width: 70%;
    height: 4px;
    background: rgba(0, 0, 0, 0.06);
    border-radius: 0 0 4px 4px;
}

/* 衣帽间-帽子架 - 立柱+圆盘 */
.furn-hatstand {
    border-radius: 50% 50% 4px 4px !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1) !important;
}
.furn-hatstand::before {
    content: "";
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 70%;
    height: 6px;
    background: inherit;
    filter: brightness(1.05);
    border-radius: 3px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.furn-hatstand::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 4px;
    background: rgba(0, 0, 0, 0.1);
    border-radius: 2px;
}

/* 衣帽间-包包架 - 挂钩 */
.furn-bagrack {
    border-radius: 6px !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1) !important;
}
.furn-bagrack::before {
    content: "";
    position: absolute;
    top: 0;
    left: 25%;
    width: 3px;
    height: 30%;
    background: rgba(0, 0, 0, 0.12);
    border-radius: 0 0 2px 2px;
    box-shadow: 15px 0 0 rgba(0, 0, 0, 0.12);
}
.furn-bagrack::after {
    content: "";
    position: absolute;
    bottom: 15%;
    left: 50%;
    transform: translateX(-50%);
    width: 8px;
    height: 8px;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 2px;
    border: 1px solid rgba(0, 0, 0, 0.05);
}

/* 衣帽间-全身镜 - 高大矩形 */
.furn-fullmirror {
    border-radius: 8px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), inset 0 0 15px rgba(255, 255, 255, 0.3) !important;
    border: 3px solid rgba(255, 255, 255, 0.6) !important;
}
.furn-fullmirror::before {
    content: "";
    position: absolute;
    top: 10%;
    left: 15%;
    width: 25%;
    height: 15%;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.5) 0%, transparent 60%);
    border-radius: 4px;
}
.furn-fullmirror::after {
    content: "";
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 18px;
    height: 5px;
    background: linear-gradient(to bottom, #d4a574, #c49464);
    border-radius: 3px;
}

/* 衣帽间-收纳盒 - 小方盒 */
.furn-organizer-wardrobe {
    border-radius: 5px !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08) !important;
}
.furn-organizer-wardrobe::before {
    content: "";
    position: absolute;
    top: 15%;
    left: 15%;
    width: 70%;
    height: 2px;
    background: rgba(0, 0, 0, 0.08);
    box-shadow: 0 6px 0 rgba(0, 0, 0, 0.08);
}
.furn-organizer-wardrobe::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 5px;
    height: 5px;
    background: rgba(255, 255, 255, 0.6);
    border-radius: 50%;
}

/* 衣帽间-围巾架 - 横杆+垂坠 */
.furn-scarfrack {
    border-radius: 6px !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1) !important;
}
.furn-scarfrack::before {
    content: "";
    position: absolute;
    top: 20%;
    left: 10%;
    width: 80%;
    height: 3px;
    background: rgba(0, 0, 0, 0.12);
    border-radius: 2px;
}
.furn-scarfrack::after {
    content: "";
    position: absolute;
    bottom: 10%;
    left: 25%;
    width: 3px;
    height: 40%;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 2px;
    box-shadow: 8px 0 0 rgba(255, 255, 255, 0.4), 16px 0 0 rgba(255, 255, 255, 0.4);
}

/* 衣帽间-小台灯 - 灯罩+底座 */
.furn-lamp-wardrobe {
    border-radius: 50% 50% 40% 40% !important;
    box-shadow: 0 0 15px rgba(255, 215, 0, 0.3), 0 3px 8px rgba(0, 0, 0, 0.1) !important;
}
.furn-lamp-wardrobe::before {
    content: "";
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 5px;
    height: 10px;
    background: linear-gradient(to bottom, #a08070, #8b7355);
    border-radius: 2px;
}
.furn-lamp-wardrobe::after {
    content: "";
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 14px;
    height: 4px;
    background: linear-gradient(to bottom, #b09080, #8b7355);
    border-radius: 2px;
}

/* 衣帽间-绿植 - 花盆+叶子 */
.furn-plant-wardrobe {
    border-radius: 50% 50% 6px 6px !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1) !important;
}
.furn-plant-wardrobe::before {
    content: "";
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 10px;
    background: inherit;
    filter: brightness(1.2);
    border-radius: 50% 50% 0 0;
}
.furn-plant-wardrobe::after {
    content: "";
    position: absolute;
    bottom: -3px;
    left: 50%;
    transform: translateX(-50%);
    width: 50%;
    height: 3px;
    background: rgba(0, 0, 0, 0.08);
    border-radius: 2px;
}

/* 衣帽间-相框 - 矩形框 */
.furn-frame-wardrobe {
    border-radius: 4px !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1), inset 0 0 0 2px rgba(255, 255, 255, 0.4) !important;
    border: 2px solid rgba(255, 255, 255, 0.5) !important;
}
.furn-frame-wardrobe::before {
    content: "";
    position: absolute;
    top: 15%;
    left: 15%;
    width: 70%;
    height: 70%;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 2px;
}
.furn-frame-wardrobe::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 50%;
}

/* 衣帽间-窗帘2 - 垂坠布料 */
.furn-curtain2-wardrobe {
    border-radius: 8px 8px 0 0 !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1) !important;
}
.furn-curtain2-wardrobe::before {
    content: "";
    position: absolute;
    top: 0;
    left: 25%;
    width: 2px;
    height: 100%;
    background: rgba(0, 0, 0, 0.05);
    box-shadow: 15px 0 0 rgba(0, 0, 0, 0.05), 30px 0 0 rgba(0, 0, 0, 0.05);
}
.furn-curtain2-wardrobe::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 6px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.05), transparent);
    border-radius: 0 0 8px 8px;
}

/* 衣帽间-门 - 门把手 */
.furn-door-wardrobe {
    border-radius: 8px 8px 0 0 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
}
.furn-door-wardrobe::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 15%;
    width: 6px;
    height: 10px;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 3px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(0, 0, 0, 0.05);
}
.furn-door-wardrobe::after {
    content: "";
    position: absolute;
    top: 8px;
    left: 50%;
    width: 1px;
    height: 85%;
    background: rgba(0, 0, 0, 0.08);
    transform: translateX(-50%);
}

/* 衣帽间-时钟 - 圆形表盘 */
.furn-clock-wardrobe {
    border-radius: 50% !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1) !important;
}
.furn-clock-wardrobe::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
    background: rgba(255, 255, 255, 0.6);
    border-radius: 50%;
    border: 1px solid rgba(0, 0, 0, 0.08);
}
.furn-clock-wardrobe::after {
    content: "";
    position: absolute;
    top: 25%;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 20%;
    background: rgba(0, 0, 0, 0.15);
    border-radius: 1px;
}

/* 衣帽间-香水瓶 - 小瓶子 */
.furn-perfume {
    border-radius: 50% 50% 4px 4px !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1) !important;
}
.furn-perfume::before {
    content: "";
    position: absolute;
    top: -4px;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 5px;
    background: rgba(0, 0, 0, 0.1);
    border-radius: 2px 2px 0 0;
}
.furn-perfume::after {
    content: "";
    position: absolute;
    top: 30%;
    left: 50%;
    transform: translateX(-50%);
    width: 6px;
    height: 6px;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 50%;
}

/* 衣帽间-丝带盒 - 蝴蝶结 */
.furn-ribbonbox {
    border-radius: 4px !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08) !important;
}
.furn-ribbonbox::before {
    content: "";
    position: absolute;
    top: -5px;
    left: 50%;
    transform: translateX(-50%);
    width: 10px;
    height: 6px;
    background: inherit;
    filter: brightness(1.1);
    border-radius: 50% 50% 0 0;
    box-shadow: -4px 0 0 inherit, 4px 0 0 inherit;
}
.furn-ribbonbox::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 4px;
    height: 4px;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 50%;
}

/* 衣帽间-小抽屉 - 把手 */
.furn-drawer {
    border-radius: 6px !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08) !important;
}
.furn-drawer::before {
    content: "";
    position: absolute;
    top: 35%;
    left: 15%;
    width: 70%;
    height: 2px;
    background: rgba(0, 0, 0, 0.08);
    box-shadow: 0 8px 0 rgba(0, 0, 0, 0.08);
}
.furn-drawer::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 6px;
    background: rgba(255, 255, 255, 0.6);
    border-radius: 3px;
    border: 1px solid rgba(0, 0, 0, 0.05);
}



/* ---------- 新家具样式 ---------- */

/* 窗户 - 通用玻璃窗户 */
.furn-window {
    border-radius: 8px 8px 0 0 !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1) !important;
}
.furn-window::before {
    content: "";
    position: absolute;
    top: 15%;
    left: 15%;
    width: 70%;
    height: 70%;
    background: linear-gradient(135deg, rgba(200, 232, 248, 0.6) 0%, rgba(184, 224, 240, 0.4) 100%);
    border-radius: 4px;
}
.furn-window::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    background: rgba(255, 255, 255, 0.5);
    transform: translateY(-50%);
}

/* 粉色拖鞋 */
.furn-slippers {
    border-radius: 50% !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08) !important;
}
.furn-slippers::before {
    content: "";
    position: absolute;
    top: 20%;
    left: 25%;
    width: 50%;
    height: 3px;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 2px;
}
.furn-slippers::after {
    content: "";
    position: absolute;
    bottom: 15%;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 4px;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 50%;
}

/* 梦幻茶壶 */
.furn-kettle {
    border-radius: 50% 50% 6px 6px !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08) !important;
}
.furn-kettle::before {
    content: "";
    position: absolute;
    top: -3px;
    left: 60%;
    width: 8px;
    height: 6px;
    background: rgba(0, 0, 0, 0.1);
    border-radius: 0 3px 3px 0;
}
.furn-kettle::after {
    content: "";
    position: absolute;
    top: 30%;
    left: 50%;
    transform: translateX(-50%);
    width: 6px;
    height: 6px;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 50%;
}

/* 阳台门 */
.furn-door-balcony {
    border-radius: 8px 8px 0 0 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
}
.furn-door-balcony::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 15%;
    width: 6px;
    height: 10px;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 3px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(0, 0, 0, 0.05);
}
.furn-door-balcony::after {
    content: "";
    position: absolute;
    top: 8px;
    left: 50%;
    width: 1px;
    height: 85%;
    background: rgba(0, 0, 0, 0.08);
    transform: translateX(-50%);
}

/* 小边桌 */
.furn-sidetable {
    border-radius: 8px !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1) !important;
}
.furn-sidetable::before {
    content: "";
    position: absolute;
    top: 15%;
    left: 15%;
    width: 70%;
    height: 3px;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 2px;
}
.furn-sidetable::after {
    content: "";
    position: absolute;
    bottom: -3px;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 3px;
    background: rgba(0, 0, 0, 0.08);
    border-radius: 2px;
}

/* 水果盘 */
.furn-fruit {
    border-radius: 50% !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08) !important;
}
.furn-fruit::before {
    content: "";
    position: absolute;
    top: 25%;
    left: 25%;
    width: 50%;
    height: 50%;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 50%;
}
.furn-fruit::after {
    content: "";
    position: absolute;
    bottom: 15%;
    left: 50%;
    transform: translateX(-50%);
    width: 6px;
    height: 6px;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 50%;
}

/* 围裙 */
.furn-apron {
    border-radius: 8px 8px 4px 4px !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08) !important;
}
.furn-apron::before {
    content: "";
    position: absolute;
    top: 0;
    left: 30%;
    width: 40%;
    height: 3px;
    background: rgba(0, 0, 0, 0.08);
    border-radius: 2px;
}
.furn-apron::after {
    content: "";
    position: absolute;
    bottom: 15%;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 4px;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 50%;
}

/* 碗碟 */
.furn-dishes {
    border-radius: 50% !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08) !important;
}
.furn-dishes::before {
    content: "";
    position: absolute;
    top: 30%;
    left: 30%;
    width: 40%;
    height: 40%;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 50%;
}
.furn-dishes::after {
    content: "";
    position: absolute;
    bottom: 10%;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 4px;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 50%;
}

/* 地垫 */
.furn-doormat {
    border-radius: 6px !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08) !important;
}
.furn-doormat::before {
    content: "";
    position: absolute;
    top: 20%;
    left: 20%;
    width: 60%;
    height: 2px;
    background: rgba(0, 0, 0, 0.06);
    box-shadow: 0 6px 0 rgba(0, 0, 0, 0.06);
}
.furn-doormat::after {
    content: "";
    position: absolute;
    bottom: 15%;
    left: 50%;
    transform: translateX(-50%);
    width: 8px;
    height: 3px;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 2px;
}

/* 浴室窗帘 */
.furn-curtain-bath {
    border-radius: 8px 8px 0 0 !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1) !important;
}
.furn-curtain-bath::before {
    content: "";
    position: absolute;
    top: 0;
    left: 25%;
    width: 2px;
    height: 100%;
    background: rgba(0, 0, 0, 0.05);
    box-shadow: 15px 0 0 rgba(0, 0, 0, 0.05), 30px 0 0 rgba(0, 0, 0, 0.05);
}
.furn-curtain-bath::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 6px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.05), transparent);
    border-radius: 0 0 8px 8px;
}

/* 小鸭子玩具 */
.furn-duck {
    border-radius: 50% !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08) !important;
}
.furn-duck::before {
    content: "";
    position: absolute;
    top: 30%;
    right: 10%;
    width: 5px;
    height: 3px;
    background: rgba(255, 160, 0, 0.6);
    border-radius: 2px;
}
.furn-duck::after {
    content: "";
    position: absolute;
    top: 25%;
    left: 30%;
    width: 3px;
    height: 3px;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 50%;
}

/* 浴袍 */
.furn-robe {
    border-radius: 8px !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08) !important;
}
.furn-robe::before {
    content: "";
    position: absolute;
    top: 10%;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 70%;
    background: rgba(0, 0, 0, 0.08);
    border-radius: 1px;
}
.furn-robe::after {
    content: "";
    position: absolute;
    top: 20%;
    left: 50%;
    transform: translateX(-50%);
    width: 8px;
    height: 4px;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 2px;
}

/* 吹风机 */
.furn-hairdryer {
    border-radius: 6px !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08) !important;
}
.furn-hairdryer::before {
    content: "";
    position: absolute;
    top: 20%;
    right: 10%;
    width: 6px;
    height: 4px;
    background: rgba(0, 0, 0, 0.1);
    border-radius: 2px;
}
.furn-hairdryer::after {
    content: "";
    position: absolute;
    bottom: 20%;
    left: 20%;
    width: 60%;
    height: 2px;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 1px;
}

/* 小摆件 */
.furn-musicbox {
    border-radius: 6px !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08) !important;
}
.furn-musicbox::before {
    content: "";
    position: absolute;
    top: 20%;
    left: 50%;
    transform: translateX(-50%);
    width: 8px;
    height: 8px;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 50%;
}
.furn-musicbox::after {
    content: "";
    position: absolute;
    bottom: 15%;
    left: 50%;
    transform: translateX(-50%);
    width: 10px;
    height: 3px;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 2px;
}

/* 紫色衣柜（衣帽间） */
.furn-wardrobe-room {
    border-radius: 10px !important;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.12) !important;
}
.furn-wardrobe-room::before {
    content: "";
    position: absolute;
    top: 5%;
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    height: 90%;
    background: rgba(0, 0, 0, 0.08);
}
.furn-wardrobe-room::after {
    content: "";
    position: absolute;
    top: 8%;
    right: 20%;
    width: 6px;
    height: 10px;
    background: rgba(255, 255, 255, 0.6);
    border-radius: 3px;
    box-shadow: -25px 0 0 rgba(255, 255, 255, 0.6);
}

/* 紫色挂衣杆 */
.furn-rack {
    border-radius: 6px !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1) !important;
}
.furn-rack::before {
    content: "";
    position: absolute;
    top: 20%;
    left: 10%;
    width: 80%;
    height: 3px;
    background: rgba(0, 0, 0, 0.12);
    border-radius: 2px;
}
.furn-rack::after {
    content: "";
    position: absolute;
    bottom: 10%;
    left: 25%;
    width: 3px;
    height: 40%;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 2px;
    box-shadow: 8px 0 0 rgba(255, 255, 255, 0.4), 16px 0 0 rgba(255, 255, 255, 0.4);
}

/* 紫色鞋架 */
.furn-shoerack {
    border-radius: 6px !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1) !important;
}
.furn-shoerack::before {
    content: "";
    position: absolute;
    top: 30%;
    left: 10%;
    width: 80%;
    height: 2px;
    background: rgba(0, 0, 0, 0.1);
    box-shadow: 0 10px 0 rgba(0, 0, 0, 0.1), 0 20px 0 rgba(0, 0, 0, 0.1);
}
.furn-shoerack::after {
    content: "";
    position: absolute;
    bottom: 10%;
    left: 50%;
    transform: translateX(-50%);
    width: 8px;
    height: 8px;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 2px;
}

/* 音乐小屋家具 - 手绘Q版风格 */

/* 钢琴 */
.furn-piano {
    border-radius: 8px 8px 4px 4px !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12) !important;
    background: linear-gradient(to bottom, #ffc2d1 0%, #ffb6c1 100%) !important;
}
.furn-piano::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 35%;
    background: linear-gradient(to bottom, #fff 0%, #f5f5f5 100%);
    border-radius: 8px 8px 0 0;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
}
.furn-piano::after {
    content: "";
    position: absolute;
    top: 42%;
    left: 10%;
    width: 80%;
    height: 8%;
    background: repeating-linear-gradient(90deg, #333 0px, #333 4px, #fff 4px, #fff 6px);
    border-radius: 2px;
}

/* 钢琴凳 */
.furn-pianobench {
    border-radius: 8px 8px 6px 6px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    background: linear-gradient(to bottom, #ff69b4 0%, #ff1493 100%) !important;
}
.furn-pianobench::before {
    content: "";
    position: absolute;
    top: 15%;
    left: 15%;
    width: 70%;
    height: 40%;
    background: rgba(255, 255, 255, 0.25);
    border-radius: 4px;
}

/* 吉他 */
.furn-guitar {
    border-radius: 50% 50% 30% 30% !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12) !important;
    background: linear-gradient(135deg, #ffb6c1 0%, #ff69b4 100%) !important;
}
.furn-guitar::before {
    content: "";
    position: absolute;
    top: 10%;
    left: 50%;
    transform: translateX(-50%);
    width: 30%;
    height: 60%;
    background: linear-gradient(to bottom, #8b4513 0%, #a0522d 100%);
    border-radius: 4px;
}
.furn-guitar::after {
    content: "";
    position: absolute;
    top: 5%;
    left: 50%;
    transform: translateX(-50%);
    width: 50%;
    height: 20%;
    background: #8b4513;
    border-radius: 50%;
}

/* 小提琴 */
.furn-violin {
    border-radius: 40% 40% 30% 30% !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12) !important;
    background: linear-gradient(135deg, #a0522d 0%, #8b4513 100%) !important;
}
.furn-violin::before {
    content: "";
    position: absolute;
    top: 15%;
    left: 50%;
    transform: translateX(-50%);
    width: 20%;
    height: 70%;
    background: #f5deb3;
    border-radius: 2px;
}

/* 乐谱架 */
.furn-musicstand {
    border-radius: 50% 50% 4px 4px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
    background: linear-gradient(135deg, #e0e0e0 0%, #c0c0c0 100%) !important;
}
.furn-musicstand::before {
    content: "";
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 14px;
    background: #808080;
}
.furn-musicstand::after {
    content: "";
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 16px;
    height: 5px;
    background: #808080;
    border-radius: 3px;
}

/* 麦克风 */
.furn-mic {
    border-radius: 50% 50% 20% 20% !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12) !important;
    background: linear-gradient(135deg, #ff69b4 0%, #ff1493 100%) !important;
}
.furn-mic::before {
    content: "";
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 5px;
    height: 12px;
    background: #c0c0c0;
}
.furn-mic::after {
    content: "";
    position: absolute;
    top: 20%;
    left: 20%;
    width: 60%;
    height: 30%;
    background: rgba(255, 255, 255, 0.25);
    border-radius: 50%;
}

/* 唱片机 */
.furn-recordplayer {
    border-radius: 8px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12) !important;
    background: linear-gradient(135deg, #a0522d 0%, #8b4513 100%) !important;
}
.furn-recordplayer::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60%;
    height: 60%;
    background: #222;
    border-radius: 50%;
    box-shadow: inset 0 0 0 4px #444;
}
.furn-recordplayer::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 15%;
    height: 15%;
    background: #ff69b4;
    border-radius: 50%;
}

/* CD架 */
.furn-cdrack {
    border-radius: 8px !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12) !important;
    background: linear-gradient(to bottom, #ffd6e0 0%, #ffc2d1 100%) !important;
}
.furn-cdrack::before {
    content: "";
    position: absolute;
    top: 20%;
    left: 10%;
    width: 80%;
    height: 2px;
    background: rgba(0, 0, 0, 0.1);
    box-shadow: 0 12px 0 rgba(0, 0, 0, 0.1), 0 24px 0 rgba(0, 0, 0, 0.1), 0 36px 0 rgba(0, 0, 0, 0.1);
}

/* 音符灯 */
.furn-notelight {
    border-radius: 50% !important;
    box-shadow: 0 0 20px rgba(255, 215, 0, 0.4), 0 4px 12px rgba(0, 0, 0, 0.12) !important;
    background: linear-gradient(135deg, #fff8dc 0%, #ffe4b5 100%) !important;
}
.furn-notelight::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 50%;
    height: 50%;
    background: #ffd700;
    border-radius: 50%;
    opacity: 0.6;
}

/* 小舞台 */
.furn-stage {
    border-radius: 8px 8px 4px 4px !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12) !important;
    background: linear-gradient(135deg, #dda0dd 0%, #d8bfd8 100%) !important;
}
.furn-stage::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 25%;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 8px 8px 0 0;
}

/* 音乐房窗帘 */
.furn-curtain-music, .furn-curtain2-music {
    border-radius: 8px 8px 0 0 !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1) !important;
}
.furn-curtain-music::before, .furn-curtain2-music::before {
    content: "";
    position: absolute;
    top: 0;
    left: 30%;
    width: 2px;
    height: 100%;
    background: rgba(0, 0, 0, 0.05);
    box-shadow: 12px 0 0 rgba(0, 0, 0, 0.05), 24px 0 0 rgba(0, 0, 0, 0.05);
}

/* 音乐地毯 */
.furn-rug-music {
    border-radius: 8px !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1) !important;
}

/* 音乐房门 */
.furn-door-music {
    border-radius: 8px 8px 0 0 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
}
.furn-door-music::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 80%;
    width: 6px;
    height: 10px;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 3px;
}

/* 音符装饰画 */
.furn-painting-music {
    border-radius: 6px !important;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1) !important;
    background: linear-gradient(135deg, #ffc2d1 0%, #ffb6c1 100%) !important;
}
.furn-painting-music::before {
    content: "";
    position: absolute;
    top: 30%;
    left: 25%;
    width: 50%;
    height: 40%;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 4px;
}

/* 音乐房沙发 */
.furn-sofa-music {
    border-radius: 12px 12px 8px 8px !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12) !important;
    background: linear-gradient(to bottom, #ffb6c1 0%, #ff9eb5 100%) !important;
}
.furn-sofa-music::before {
    content: "";
    position: absolute;
    top: -8px;
    left: 10%;
    width: 80%;
    height: 20px;
    background: inherit;
    border-radius: 10px 10px 0 0;
}

/* 节拍器 */
.furn-metronome {
    border-radius: 8px 8px 4px 4px !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1) !important;
    background: linear-gradient(135deg, #a0522d 0%, #8b4513 100%) !important;
}
.furn-metronome::before {
    content: "";
    position: absolute;
    top: 15%;
    left: 50%;
    transform: translateX(-50%);
    width: 3px;
    height: 60%;
    background: #ffd700;
    transform-origin: bottom center;
    transform: translateX(-50%) rotate(-15deg);
}

/* ============================================================
   🌸 樱花高级系列（跨房间）—— 商店栏 + 房间内手绘/动画
   ============================================================ */

/* —— 商店：系列标题条 + 卡片 —— */
.shop-series-head {
    grid-column: 1 / -1;
    margin: 10px 2px 2px;
    padding: 8px 12px;
    font-weight: 700;
    color: #d6648a;
    background: linear-gradient(90deg, #fff0f6, #ffe4ef);
    border: 2px dashed #ffc0d4;
    border-radius: 14px;
    text-align: center;
}
.shop-series-head small { font-weight: 400; color: #c98aa6; font-size: 12px; margin-left: 4px; }
.shop-item .shop-item-desc { font-size: 11px; color: #b08aa0; margin: 2px 4px 4px; line-height: 1.3; }
.shop-item .sak-ico {
    width: 40px; height: 40px; margin: 0 auto 6px;
    display: flex; align-items: center; justify-content: center;
    font-size: 24px; border-radius: 10px;
    background: radial-gradient(circle at 50% 35%, #fff, #ffe6f0);
    box-shadow: 0 2px 6px rgba(255, 143, 163, 0.25);
}
.shop-item.sak-shop { border-color: #ffc0d4; }
.sak-hide {
    font-size: 10px; color: #fff; background: #c77dff;
    border-radius: 8px; padding: 1px 6px; vertical-align: middle;
}

/* —— 房间内：图层与基础 —— */
.premium-item { position: absolute; box-sizing: border-box; }
.premium-item.decor-item { cursor: move; transition: transform .15s ease; }
.premium-item.decor-item:hover { transform: scale(1.04); }
.premium-item.layer-wall,
.premium-item.layer-floor,
.premium-item.layer-window,
.premium-item.layer-overlay { pointer-events: none; }

.layer-wall   { top: 0; left: 0; width: 100%; height: 70%; z-index: 1; }
.layer-floor  { left: 0; bottom: 0; width: 100%; height: 30%; z-index: 2; }
.layer-window { z-index: 3; overflow: hidden; }
.layer-overlay{ top: 0; left: 0; width: 100%; height: 100%; z-index: 40; overflow: hidden; }
.layer-audio {
    z-index: 44; left: 10px; bottom: 10px; pointer-events: auto; cursor: pointer;
    padding: 5px 12px; border-radius: 16px; font-size: 12px; font-weight: 600;
    color: #d6648a; background: rgba(255, 255, 255, .85); border: 2px solid #ffc0d4;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
}
.layer-audio.on { color: #fff; background: linear-gradient(90deg, #9ec5ff, #b39ddb); border-color: #8fb6ff; }

/* —— 共享动画 —— */
@keyframes sak-fall {
    0%   { transform: translateY(-12%) translateX(0) rotate(0deg); }
    100% { transform: translateY(520px) translateX(var(--sway, 0)) rotate(380deg); }
}
@keyframes sak-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes sak-glow  { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
@keyframes sak-sway  { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes sak-spin  { to { transform: rotate(360deg); } }

/* 花瓣（窗景/樱花雨共用） */
.sak-petal {
    position: absolute; top: -6%; width: 12px; height: 12px;
    background: radial-gradient(circle at 30% 30%, #ffd6e6, #ff9ec0);
    border-radius: 100% 0 100% 0;
    box-shadow: 0 0 3px rgba(255, 138, 180, .5);
    animation: sak-fall linear infinite;
}

/* 1. 樱花浮雕壁纸 */
.sak-wallpaper {
    background:
        radial-gradient(circle at 16% 18%, rgba(255, 170, 200, .55) 0 7px, transparent 8px),
        radial-gradient(circle at 68% 30%, rgba(255, 150, 188, .5) 0 6px, transparent 7px),
        radial-gradient(circle at 40% 62%, rgba(255, 180, 210, .45) 0 6px, transparent 7px),
        radial-gradient(circle at 88% 74%, rgba(255, 160, 195, .5) 0 6px, transparent 7px),
        linear-gradient(to bottom, #fff4f9, #ffe7f1);
    background-size: 180px 160px, 150px 150px, 130px 130px, 160px 150px, 100% 100%;
}
.sak-wallpaper::after {
    content: ""; position: absolute; left: 0; bottom: 18%; width: 70%; height: 3px;
    background: linear-gradient(90deg, transparent, #c98a6a 40%, #a9714f);
    box-shadow: 8px -14px 0 -2px #b87c58, 30px -30px 0 -3px #a9714f;
    transform: rotate(-4deg);
}

/* 2. 单词藤蔓挂画（widget·words5） */
.sak-vines .sak-vine-frame {
    width: 100%; height: 78%; padding: 8px;
    display: flex; flex-direction: column; gap: 3px; justify-content: center;
    background: linear-gradient(160deg, #fff, #fff2f8);
    border: 4px solid #f4c9a0; border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .12);
}
.sak-vines::before {
    content: ""; position: absolute; top: -14px; left: 50%; width: 2px; height: 16px;
    background: #8fbf73; transform: translateX(-50%);
}
.sak-art-word {
    font-size: 13px; font-weight: 700; color: #d6648a; text-align: center;
    font-style: italic; letter-spacing: .5px;
}

/* 3. 柔光壁灯（×2，暖粉光晕呼吸） */
.sak-walllamp { display: flex; justify-content: space-between; align-items: flex-start; }
.sak-walllamp::before, .sak-walllamp::after {
    content: ""; width: 44px; height: 44px; border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 224, 178, .95) 0 8px, rgba(255, 200, 150, .5) 40%, transparent 70%);
    animation: sak-glow 3s ease-in-out infinite;
}
.sak-walllamp::after { animation-delay: 1.5s; }

/* 4. 木质浅粉地板（floor·铺满） */
.sak-floor {
    background:
        repeating-linear-gradient(90deg, #f6dccb 0 46px, #efd0bd 46px 48px),
        linear-gradient(to bottom, #f8e2d2, #ecceba);
    border-top: 4px solid #d9b89c;
}

/* 5. 奶油粉地毯（floor·圆形居中） */
.sak-rug {
    left: 50% !important; bottom: 5% !important;
    width: 62% !important; height: 24% !important;
    transform: translateX(-50%);
    background: radial-gradient(ellipse at center, #ffe1ec 0 55%, #ffc8dd 56% 80%, #ffb3d1 81%);
    border-radius: 50%;
    box-shadow: 0 6px 14px rgba(255, 143, 180, .35), inset 0 0 0 6px rgba(255, 255, 255, .4);
}
.sak-rug::after {
    content: ""; position: absolute; inset: 8%; border-radius: 50%;
    border: 3px dashed rgba(255, 255, 255, .7);
}

/* 6. 丝绒粉沙发 */
.sak-sofa {
    background: linear-gradient(to bottom, #ff9ec0, #ff86b0);
    border-radius: 22px 22px 14px 14px;
    box-shadow: inset 0 6px 10px rgba(255, 255, 255, .35), 0 6px 14px rgba(0, 0, 0, .18);
}
.sak-sofa::before { /* 靠背 + 扶手 */
    content: ""; position: absolute; left: 6%; right: 6%; top: -16%; height: 38%;
    background: linear-gradient(to bottom, #ffb0d0, #ff9ec0);
    border-radius: 16px 16px 0 0;
}
.sak-sofa::after { /* 抱枕 */
    content: ""; position: absolute; left: 12%; top: 30%; width: 26%; height: 40%;
    background: radial-gradient(circle at 35% 30%, #fff, #ffd1e4);
    border-radius: 8px; transform: rotate(-8deg);
    box-shadow: 56px 0 0 0 #ffd1e4;
}

/* 7. 花瓣边书桌（widget·review） */
.sak-desk .sak-desk-panel {
    position: absolute; top: 0; left: 4%; width: 92%; padding: 5px 6px;
    background: linear-gradient(to bottom, #fff, #fff2f7);
    border: 2px solid #ffc0d4; border-radius: 10px;
    box-shadow: 0 3px 8px rgba(0, 0, 0, .12);
}
.sak-desk-body {
    position: absolute; bottom: 22%; left: 2%; width: 96%; height: 20%;
    background: linear-gradient(to bottom, #f3d3b8, #e6bb98); border-radius: 6px;
}
.sak-desk-leg { position: absolute; bottom: 0; width: 8%; height: 24%; background: #d9a884; border-radius: 0 0 4px 4px; }
.sak-desk-leg.l { left: 8%; }
.sak-desk-leg.r { right: 8%; }
.sak-tag {
    display: inline-block; font-size: 10px; color: #fff; background: #ff86b0;
    border-radius: 8px; padding: 0 6px; margin-bottom: 3px;
}
.sak-word { font-size: 11px; color: #8a5a70; display: flex; gap: 4px; align-items: baseline; }
.sak-word b { color: #d6648a; }
.sak-word small { font-size: 9px; color: #b08aa0; }

/* 8. 云朵台灯 */
.sak-cloudlamp::before { /* 灯柱 */
    content: ""; position: absolute; bottom: 0; left: 50%; width: 8px; height: 55%;
    background: #ffd28a; transform: translateX(-50%); border-radius: 4px;
}
.sak-cloudlamp::after { /* 云朵灯罩 */
    content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 50%;
    background: radial-gradient(circle at 30% 60%, #fff 0 40%, transparent 41%),
                radial-gradient(circle at 70% 60%, #fff 0 40%, transparent 41%),
                radial-gradient(circle at 50% 40%, #fff 0 50%, transparent 51%);
    filter: drop-shadow(0 0 8px rgba(255, 230, 160, .9));
    animation: sak-glow 3.5s ease-in-out infinite;
}

/* 9. 单词书架（widget·mastered） */
.sak-shelf {
    background: linear-gradient(to right, #ffd8a8, #f4c089);
    border-radius: 8px; padding: 6px 6px;
    display: flex; flex-direction: column; justify-content: space-between;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .15);
}
.sak-shelf-row {
    flex: 1; display: flex; gap: 3px; align-items: flex-end;
    border-bottom: 4px solid #d9a06a; padding-bottom: 2px;
}
.sak-spine {
    flex: 1; height: 80%; border-radius: 2px; overflow: hidden;
    font-size: 8px; color: #fff; writing-mode: vertical-rl; text-align: center;
    padding: 2px 0; white-space: nowrap;
    background: linear-gradient(to bottom, #ff9ec0, #c77dff);
}
.sak-spine:nth-child(2) { background: linear-gradient(to bottom, #9ec5ff, #6f9fe8); }
.sak-spine:nth-child(3) { background: linear-gradient(to bottom, #ffd28a, #f0a857); }

/* 10. 粉色梳妆台（widget·calendar） */
.sak-vanity .sak-mirror {
    position: absolute; top: 0; left: 8%; width: 84%; height: 64%;
    background: linear-gradient(135deg, #fff, #ffeef6);
    border: 4px solid #ffc0d4; border-radius: 50% 50% 14px 14px;
    padding: 6px; text-align: center;
}
.sak-vanity-body {
    position: absolute; bottom: 0; left: 4%; width: 92%; height: 30%;
    background: linear-gradient(to bottom, #ffc8dd, #ff9ec0); border-radius: 8px;
}
.sak-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; margin-top: 4px; }
.sak-cal-dot { width: 100%; aspect-ratio: 1; border-radius: 50%; background: #ffe0ec; }
.sak-cal-dot.on { background: #ff7fb0; box-shadow: 0 0 3px rgba(255, 127, 176, .6); }

/* 11. 纱帘 + 樱花窗景（window） */
.sak-window {
    top: 26px; left: 50%; transform: translateX(-50%);
    width: 150px; height: 120px;
    background: linear-gradient(to bottom, #ffd9ea 0%, #ffe9c8 55%, #d8f0e0 100%);
    border: 6px solid #fff; border-radius: 16px 16px 8px 8px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .1), inset 0 0 18px rgba(255, 255, 255, .5);
}
.sak-sheer {
    position: absolute; top: 0; width: 40%; height: 100%;
    background: repeating-linear-gradient(90deg, rgba(255,255,255,.55) 0 6px, rgba(255,255,255,.2) 6px 12px);
}
.sak-sheer.left { left: 0; border-radius: 10px 0 0 0; }
.sak-sheer.right { right: 0; border-radius: 0 10px 0 0; }

/* 12. 窗台多肉盆栽（×3） */
.sak-succulent { display: flex; gap: 8px; align-items: flex-end; justify-content: center; }
.sak-succulent::before, .sak-succulent::after {
    content: ""; width: 30%; height: 70%;
    background:
        radial-gradient(circle at 50% 30%, #7fc89a 0 40%, transparent 41%),
        radial-gradient(circle at 25% 55%, #8fd2a8 0 32%, transparent 33%),
        radial-gradient(circle at 75% 55%, #8fd2a8 0 32%, transparent 33%);
    border-bottom: 14px solid #ff9ec0; border-radius: 0 0 8px 8px;
    animation: sak-sway 4s ease-in-out infinite;
}
.sak-succulent::after { animation-delay: 1.2s; }

/* 13. 悬浮单词气泡（overlay·bubbles） */
.sak-wbubble {
    position: absolute; pointer-events: auto; cursor: pointer;
    padding: 3px 10px; font-size: 12px; font-weight: 700; color: #d6648a;
    background: rgba(255, 255, 255, .82); border: 1.5px solid #ffc0d4; border-radius: 14px;
    box-shadow: 0 2px 8px rgba(255, 143, 180, .35);
    animation: sak-float 4s ease-in-out infinite;
}
.sak-wbubble-tip {
    position: absolute; left: 50%; top: 110%; transform: translateX(-50%);
    white-space: nowrap; font-size: 11px; font-weight: 400; color: #fff;
    background: #ff7fb0; padding: 2px 8px; border-radius: 8px; margin-top: 4px;
}

/* 15. 宠物·单词猫 */
.sak-cat { cursor: pointer; }
.sak-cat::before { /* 头/身 */
    content: "🐱"; position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center; font-size: 46px;
    filter: drop-shadow(0 3px 4px rgba(0, 0, 0, .2));
    animation: sak-float 3s ease-in-out infinite;
}
.sak-cat.sak-cat-spin::before { animation: sak-spin .8s ease; }

/* 16. 3600词通关奖杯 */
.sak-trophy::before {
    content: "🏆"; position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center; font-size: 50px;
    filter: drop-shadow(0 0 8px rgba(255, 215, 0, .7));
}
.sak-trophy::after { /* 粉丝带 */
    content: ""; position: absolute; bottom: 8%; left: 50%; transform: translateX(-50%);
    width: 70%; height: 12px; background: linear-gradient(90deg, #ff9ec0, #ff7fb0);
    border-radius: 6px;
}

/* 17. 连续打卡勋章（×5） */
.sak-medals { display: flex; gap: 6px; align-items: center; justify-content: center; }
.sak-medals::before {
    content: "🎖️🥇🏅🎗️🏵️"; letter-spacing: 6px; font-size: 26px;
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .15));
}

/* 19. 词境精灵·小樱 */
.sak-fairy { cursor: pointer; }
.sak-fairy::before {
    content: "🧚"; position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center; font-size: 44px;
    filter: drop-shadow(0 0 10px rgba(199, 125, 255, .7));
    animation: sak-float 2.6s ease-in-out infinite;
}
.sak-fairy-bubble, .sak-fairy .sak-fairy-bubble {
    position: absolute; left: 100%; top: -6px; white-space: nowrap;
    font-size: 11px; color: #fff; background: #c77dff;
    padding: 3px 8px; border-radius: 10px 10px 10px 0; box-shadow: 0 2px 6px rgba(0, 0, 0, .2);
    z-index: 50;
}

/* ============================================================
   ✨ 极致梦幻·通用硬装系列（series:lux）—— 天花板 / 墙 / 地 / 窗
   每件铺满对应整层，同层后买盖先买。手绘 CSS，无图片。
   ============================================================ */

/* 默认天花板层：未铺梦幻顶时透明，不改变原有房间观感 */
.room-scene .room-ceiling {
    position: absolute; top: 0; left: 0; width: 100%; height: 0;
    z-index: 0; pointer-events: none;
}
/* 梦幻天花板整层（顶部 15%） */
.premium-item.layer-ceiling {
    top: 0; left: 0; width: 100%; height: 15%;
    z-index: 3; pointer-events: none; overflow: hidden;
    border-bottom: 2px solid rgba(255, 255, 255, .55);
    box-shadow: inset 0 -6px 14px rgba(0, 0, 0, .06);
}

/* —— 硬装专用动画 —— */
@keyframes lux-aurora  { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes lux-twinkle { 0%, 100% { opacity: .3; } 50% { opacity: 1; } }
@keyframes lux-drift   { 0% { transform: translateX(-10%); } 100% { transform: translateX(10%); } }
@keyframes lux-shimmer { 0% { background-position: 0 0; } 100% { background-position: 220px 0; } }
@keyframes lux-ripple  { 0%, 100% { background-position: 0 0, 0 0; } 50% { background-position: 26px 0, -20px 0; } }
@keyframes lux-sheer   { 0%, 100% { transform: skewX(0deg) translateX(0); } 50% { transform: skewX(-4deg) translateX(4px); } }

/* ====== 天花板 ====== */
/* 1. 极光幻彩·粉色星空顶 */
.lux-ceil-aurora {
    background:
        linear-gradient(115deg, #ff9ec9 0%, #c79bff 26%, #9ad0ff 50%, #ffb3e6 74%, #ff9ec9 100%),
        #3a2347;
    background-size: 300% 100%, 100% 100%;
    animation: lux-aurora 14s ease-in-out infinite;
}
.lux-ceil-aurora::before {
    content: ""; position: absolute; inset: 0;
    background-image:
        radial-gradient(circle, #fff 0 1.4px, transparent 2px),
        radial-gradient(circle, #fff 0 1px, transparent 2px);
    background-size: 70px 60px, 120px 90px;
    background-position: 12px 8px, 56px 30px;
    opacity: .85; animation: lux-twinkle 3.2s ease-in-out infinite;
}

/* 2. 蕾丝薄纱·云朵吊顶 */
.lux-ceil-lace {
    background: linear-gradient(to bottom, #fff6fb 0%, #ffeaf4 100%);
}
.lux-ceil-lace::before {
    content: ""; position: absolute; inset: 0;
    background:
        radial-gradient(ellipse 34px 16px at 18% 55%, #fff 60%, transparent 62%),
        radial-gradient(ellipse 28px 14px at 30% 45%, #fff 60%, transparent 62%),
        radial-gradient(ellipse 40px 18px at 64% 58%, #fff 60%, transparent 62%),
        radial-gradient(ellipse 30px 15px at 82% 48%, #fff 60%, transparent 62%);
    filter: drop-shadow(0 3px 3px rgba(255, 175, 205, .4));
    animation: lux-drift 9s ease-in-out infinite alternate;
}
.lux-ceil-lace::after { /* 蕾丝花边 */
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 10px;
    background:
        radial-gradient(circle at 8px 0, transparent 6px, #fff 7px) 0 0 / 16px 10px repeat-x;
    filter: drop-shadow(0 1px 1px rgba(255, 160, 195, .5));
}

/* 3. 玫瑰金·复古石膏雕花顶 + 水晶吊灯 */
.lux-ceil-rose {
    background:
        repeating-linear-gradient(90deg, rgba(212, 160, 116, .18) 0 2px, transparent 2px 26px),
        linear-gradient(to bottom, #fff3ea, #ffe3d2);
    border-bottom: 3px solid #e0b48c;
}
.lux-ceil-rose::before { /* 中央雕花圆盘 */
    content: ""; position: absolute; top: 4px; left: 50%; transform: translateX(-50%);
    width: 56px; height: 22px; border-radius: 50%;
    background: radial-gradient(ellipse, #ffe9c9 0 40%, #e9bd8f 70%, transparent 72%);
    box-shadow: 0 0 0 4px rgba(224, 180, 140, .35);
}
.lux-ceil-rose::after { /* 水晶流苏吊灯 */
    content: ""; position: absolute; top: 60%; left: 50%; transform: translateX(-50%);
    width: 26px; height: 40px;
    background:
        radial-gradient(circle at 50% 18%, #fff 0 5px, transparent 6px),
        conic-gradient(from 0deg, #ffe7c2, #fff, #ffd9b0, #fff, #ffe7c2);
    clip-path: polygon(50% 0, 100% 30%, 80% 100%, 20% 100%, 0 30%);
    box-shadow: 0 0 12px rgba(255, 220, 170, .9);
    animation: lux-twinkle 2.6s ease-in-out infinite;
}

/* ====== 墙壁 ====== */
/* 1. 莫奈花园·立体浮雕墙纸 */
.lux-wall-monet {
    background:
        radial-gradient(circle at 20% 22%, rgba(255, 140, 180, .55) 0 8px, transparent 9px),
        radial-gradient(circle at 22% 24%, rgba(255, 190, 215, .8) 0 4px, transparent 5px),
        radial-gradient(circle at 70% 40%, rgba(255, 150, 188, .5) 0 7px, transparent 8px),
        radial-gradient(circle at 45% 70%, rgba(255, 170, 200, .5) 0 7px, transparent 8px),
        radial-gradient(circle at 88% 78%, rgba(255, 155, 195, .5) 0 7px, transparent 8px),
        linear-gradient(to bottom, #fff3f8, #ffe6f0);
    background-size: 170px 150px, 170px 150px, 150px 140px, 140px 150px, 160px 150px, 100% 100%;
}
.lux-wall-monet::before { /* 藤蔓 */
    content: ""; position: absolute; inset: 0;
    background:
        repeating-linear-gradient(125deg, transparent 0 38px, rgba(120, 170, 110, .22) 38px 41px);
}

/* 2. 珠光贝壳·微闪壁纸 */
.lux-wall-pearl {
    background:
        repeating-linear-gradient(60deg, rgba(255, 255, 255, .55) 0 8px, rgba(255, 214, 236, .25) 8px 16px, rgba(206, 190, 255, .3) 16px 24px),
        linear-gradient(to bottom, #fdeffa, #f3e6ff);
    background-size: 240px 240px, 100% 100%;
    animation: lux-shimmer 6s linear infinite;
}
.lux-wall-pearl::after { /* 鳞片高光 */
    content: ""; position: absolute; inset: 0;
    background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .5) 0 6px, transparent 7px);
    background-size: 60px 60px; opacity: .5;
}

/* 3. 奶油粉·法式护墙板 */
.lux-wall-cream {
    background: linear-gradient(to bottom, #fff6f1 0%, #ffeee6 100%);
}
.lux-wall-cream::before { /* 雕花方格护墙板 */
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 64%;
    background:
        linear-gradient(#fff8f3, #fff8f3) padding-box;
    background-color: #fff4ed;
    border-top: 3px solid #e9c9a8;
    box-shadow:
        inset 0 0 0 2px rgba(233, 201, 168, .35),
        inset 90px 0 0 -86px rgba(214, 170, 120, .5),
        inset 180px 0 0 -176px rgba(214, 170, 120, .5),
        inset 270px 0 0 -266px rgba(214, 170, 120, .5);
}
.lux-wall-cream::after { /* 黄铜装饰线 */
    content: ""; position: absolute; left: 0; right: 0; bottom: 64%; height: 4px;
    background: linear-gradient(90deg, #e8c08a, #fff0d6, #e8c08a);
}

/* ====== 地板 ====== */
/* 1. 镜面水波纹·粉色大理石 */
.lux-floor-marble {
    background:
        repeating-linear-gradient(115deg, rgba(255, 255, 255, .35) 0 2px, transparent 2px 30px),
        linear-gradient(to bottom, #ffe6ef 0%, #ffd6e6 60%, #f3c4da 100%);
    background-size: 120px 100%, 100% 100%;
    border-top: 3px solid #e9b8cc;
    box-shadow: inset 0 14px 22px rgba(255, 255, 255, .5);
}
.lux-floor-marble::after { /* 倒影波纹 */
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, .4), transparent 40%);
}

/* 2. 樱花木·人字拼木地板 */
.lux-floor-wood {
    background:
        repeating-linear-gradient(45deg, #f3d8c6 0 22px, #ecccb7 22px 24px),
        repeating-linear-gradient(-45deg, rgba(196, 146, 110, .18) 0 22px, transparent 22px 24px),
        linear-gradient(to bottom, #f4d9c8, #e7c4ae);
    border-top: 4px solid #d6b193;
}

/* 3. 幻彩泡泡·透明树脂地板（封存花瓣星星） */
.lux-floor-resin {
    background:
        radial-gradient(circle at 24% 40%, rgba(255, 150, 190, .8) 0 5px, transparent 6px),
        radial-gradient(circle at 60% 65%, rgba(255, 200, 120, .9) 0 3px, transparent 4px),
        radial-gradient(circle at 80% 35%, rgba(180, 160, 255, .8) 0 5px, transparent 6px),
        radial-gradient(circle at 42% 80%, rgba(255, 180, 210, .8) 0 4px, transparent 5px),
        linear-gradient(115deg, #ffe9f4, #e9f0ff 50%, #fff0e8);
    background-size: 130px 90px, 110px 80px, 150px 100px, 120px 90px, 100% 100%;
    border-top: 3px solid rgba(255, 255, 255, .7);
    box-shadow: inset 0 12px 20px rgba(255, 255, 255, .55);
    animation: lux-ripple 7s ease-in-out infinite;
}

/* ====== 窗户 ====== */
.lux-win-gothic, .lux-win-french, .lux-win-pearl {
    top: 24px; left: 50%; transform: translateX(-50%);
    width: 150px; height: 128px; z-index: 3;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .12);
}
/* 1. 哥特式·玫瑰彩绘玻璃窗 */
.lux-win-gothic {
    border: 7px solid #fff; border-radius: 75px 75px 8px 8px;
    background:
        conic-gradient(from 0deg at 50% 42%, #ff9ec9, #ffd27f, #9ad0ff, #c79bff, #ff9ec9),
        #fff;
    background-blend-mode: normal;
    overflow: hidden;
}
.lux-win-gothic::before { /* 铅条分格 */
    content: ""; position: absolute; inset: 0;
    background:
        linear-gradient(90deg, transparent 49%, rgba(90, 60, 70, .5) 49% 51%, transparent 51%),
        linear-gradient(0deg, transparent 49%, rgba(90, 60, 70, .5) 49% 51%, transparent 51%);
}
.lux-win-gothic::after { /* 中央玫瑰 */
    content: ""; position: absolute; top: 38%; left: 50%; transform: translate(-50%, -50%);
    width: 30px; height: 30px; border-radius: 50%;
    background: radial-gradient(circle, #fff 0 4px, #ff7fb0 5px 9px, #ffd27f 10px 14px, transparent 15px);
}
/* 2. 落地窗·法式蕾丝纱帘 */
.lux-win-french {
    width: 158px; height: 150px; top: 18px;
    border: 7px solid #fff; border-radius: 12px 12px 4px 4px;
    background: linear-gradient(to bottom, #d9f0ff 0%, #fff2da 55%, #ffe1ee 100%);
    overflow: hidden;
}
.lux-win-french::before, .lux-win-french::after { /* 两侧纱帘 */
    content: ""; position: absolute; top: 0; bottom: 0; width: 46%;
    background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .7) 0 5px, rgba(255, 255, 255, .25) 5px 11px);
    animation: lux-sheer 5s ease-in-out infinite;
}
.lux-win-french::before { left: 0; border-radius: 8px 0 0 0; transform-origin: top left; }
.lux-win-french::after  { right: 0; border-radius: 0 8px 0 0; transform-origin: top right; animation-delay: 1.2s; }
/* 3. 拱形窗·珍珠白百叶窗 */
.lux-win-pearl {
    border: 7px solid #fff; border-radius: 75px 75px 6px 6px;
    background:
        repeating-linear-gradient(0deg, #fbfdff 0 10px, #e9eef6 10px 12px),
        linear-gradient(to bottom, #fdfdff, #eef2f9);
    overflow: hidden;
}
.lux-win-pearl::after { /* 玫瑰金把手 */
    content: ""; position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
    width: 6px; height: 26px; border-radius: 3px;
    background: linear-gradient(#f0c79a, #d79f6f); box-shadow: 0 0 4px rgba(215, 159, 111, .8);
}

/* ============================================================
   商店卡片·三态（购买 / 已拥有可布置 / 已布置可撤下）
   ============================================================ */
#page-rooms .shop-item.owned-store {
    border-color: #ffc14d; background: #fff8ec;
}
#page-rooms .shop-item.placed {
    border-color: #58c98a; background: #effbf3;
}
.tag-own    { color: #d98a00; font-weight: 700; }
.tag-placed { color: #2faa6a; font-weight: 700; }
#page-rooms .shop-item.placed::after { /* 右上角已布置勾标 */
    content: "✓"; position: absolute; top: 4px; right: 6px;
    width: 18px; height: 18px; line-height: 18px; text-align: center;
    font-size: 12px; color: #fff; background: #58c98a; border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .2);
}
#page-rooms .shop-item { position: relative; }
#page-rooms .shop-item.placed:hover { box-shadow: 0 6px 16px rgba(88, 201, 138, .3); }

/* ============================================================
   ✨ 硬装·梦幻增强：柔光氛围 + 漂浮星屑（叠在所有硬装层上）
   ============================================================ */
@keyframes lux-sparkle {
    0%   { background-position: 0 0, 40px 20px, 80px 60px; opacity: .5; }
    50%  { opacity: 1; }
    100% { background-position: 18px 30px, 64px 4px, 110px 88px; opacity: .5; }
}
@keyframes lux-halo { 0%, 100% { opacity: .45; } 50% { opacity: .9; } }

/* 顶/墙整层统一加一层柔光，让粉色更通透梦幻 */
.premium-item.layer-ceiling { box-shadow: inset 0 -6px 16px rgba(255, 200, 225, .35), inset 0 6px 22px rgba(255, 255, 255, .5); }
.premium-item.layer-wall    { box-shadow: inset 0 40px 60px rgba(255, 255, 255, .4); }

/* 天花板：极光更梦幻（柔粉夜空）+ 漂浮星屑 */
.lux-ceil-aurora {
    background:
        linear-gradient(115deg, #ffc0e6 0%, #d8b6ff 26%, #b6e3ff 50%, #ffcdef 74%, #ffc0e6 100%),
        #5b4470;
    background-size: 300% 100%, 100% 100%;
    animation: lux-aurora 16s ease-in-out infinite;
}
.lux-ceil-aurora::after { /* 漂浮星屑 */
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background-image:
        radial-gradient(circle, rgba(255,255,255,.95) 0 1.3px, transparent 2px),
        radial-gradient(circle, rgba(255,240,255,.85) 0 1px, transparent 2px),
        radial-gradient(circle, rgba(200,230,255,.8) 0 1px, transparent 2px);
    background-size: 90px 70px, 130px 100px, 70px 110px;
    animation: lux-sparkle 5s ease-in-out infinite;
}
/* 水晶吊灯外发光更亮 */
.lux-ceil-rose::after { box-shadow: 0 0 18px 4px rgba(255, 226, 180, .9); }

/* 窗户：加一圈梦幻光晕，阳光感更强 */
.lux-win-gothic, .lux-win-french, .lux-win-pearl {
    box-shadow: 0 4px 14px rgba(0, 0, 0, .12), 0 0 22px 4px rgba(255, 214, 236, .7);
}
.lux-win-gothic { animation: lux-halo 4s ease-in-out infinite; }

/* 地板：镜面大理石加流动反光高光 */
.lux-floor-marble::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(115deg, transparent 40%, rgba(255, 255, 255, .55) 50%, transparent 60%);
    background-size: 220px 100%;
    animation: lux-shimmer 7s linear infinite;
}

/* ============================================================
   🎀 梦幻软装·立体造型库（df-*）：材质色由 JS 注入 --c(亮)/--c2(暗)，无 emoji
   每件可叠加 img（豆包透明PNG）覆盖CSS。所有造型纯手绘渐变+高光+投影。
   ============================================================ */
.furniture-item[class*="df-"] {
    overflow: visible;
    filter: drop-shadow(0 4px 5px rgba(150, 90, 120, .3));
    transition: transform .15s ease;
}
.furniture-item[class*="df-"]:hover { transform: scale(1.08); z-index: 20; }

/* 图片版（豆包PNG） */
.df-haspic { background: none !important; box-shadow: none !important; filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .25)); }
.df-img { width: 100%; height: 100%; object-fit: contain; display: block; pointer-events: none; }

/* —— 软垫类：抱枕/靠枕/坐垫/披毯/床尾巾/浴巾/眼罩 —— */
.df-pad {
    background: radial-gradient(circle at 35% 28%, rgba(255,255,255,.8), transparent 55%), linear-gradient(160deg, var(--c), var(--c2));
    border-radius: 44% 44% 46% 46% / 52% 52% 48% 48%;
    box-shadow: inset 0 -5px 9px rgba(0,0,0,.12), inset 0 4px 8px rgba(255,255,255,.5);
}
.df-pad::after { content:""; position:absolute; inset:20% 24%; border-radius:50%; border:2px dashed rgba(255,255,255,.55); }

/* —— 地毯/桌布/锅垫 —— */
.df-rug {
    background: repeating-radial-gradient(circle, var(--c) 0 5px, var(--c2) 5px 10px);
    border-radius: 50%; box-shadow: inset 0 0 0 3px rgba(255,255,255,.45), 0 4px 6px rgba(0,0,0,.15);
}

/* —— 花瓶/笔筒/调料罐/糖罐 —— */
.df-vase, .df-vessel {
    background: linear-gradient(100deg, rgba(255,255,255,.55), transparent 42%), linear-gradient(var(--c), var(--c2));
    border-radius: 40% 40% 46% 46% / 28% 28% 60% 60%;
    box-shadow: inset -3px 0 5px rgba(0,0,0,.12), inset 3px 0 5px rgba(255,255,255,.55);
}
.df-vase::before {
    content:""; position:absolute; left:50%; top:-13px; transform:translateX(-50%); width:26px; height:20px;
    background:
        radial-gradient(circle at 50% 62%, #ff7fae 0 5px, transparent 6px),
        radial-gradient(circle at 28% 42%, #ff9ec0 0 4px, transparent 5px),
        radial-gradient(circle at 72% 42%, #ffd1e3 0 4px, transparent 5px),
        radial-gradient(circle at 50% 30%, #ffd27f 0 3px, transparent 4px);
}

/* —— 盒柜类：收纳盒/首饰盒/床头柜/首饰柜/托盘 —— */
.df-box, .df-jewelbox, .df-nightstand, .df-cabinet, .df-tray {
    background: linear-gradient(160deg, var(--c), var(--c2));
    border-radius: 8px;
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.45), inset 0 -6px 10px rgba(0,0,0,.12), 0 4px 7px rgba(0,0,0,.18);
}
.df-box::after, .df-jewelbox::after, .df-nightstand::after {
    content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:8px; height:8px; border-radius:50%;
    background: radial-gradient(circle, #fff, var(--c2)); box-shadow:0 0 4px #fff;
}
.df-nightstand::before { content:""; position:absolute; left:12%; right:12%; top:36%; height:2px; background:rgba(0,0,0,.15); box-shadow:0 18px 0 rgba(0,0,0,.12); }
.df-cabinet { border-radius:7px; }
.df-cabinet::after { content:""; position:absolute; left:50%; top:8%; bottom:8%; width:1.5px; background:rgba(0,0,0,.18); transform:translateX(-50%); }
.df-tray { border-radius:12px; box-shadow: inset 0 0 0 2px rgba(255,255,255,.5), 0 4px 6px rgba(0,0,0,.18); }

/* —— 香皂盒 —— */
.df-soapdish { background:linear-gradient(160deg,var(--c),var(--c2)); border-radius:10px 10px 14px 14px; box-shadow:inset 0 -4px 6px rgba(0,0,0,.1), 0 3px 5px rgba(0,0,0,.18); }
.df-soapdish::after { content:""; position:absolute; left:50%; top:-5px; transform:translateX(-50%); width:16px; height:9px; background:radial-gradient(circle,var(--c2),transparent 70%); }

/* —— 首饰架（树枝立架） —— */
.df-jeweltree::before { content:""; position:absolute; left:50%; top:10%; bottom:10%; width:4px; transform:translateX(-50%); background:linear-gradient(var(--c),var(--c2)); border-radius:3px; }
.df-jeweltree::after { content:""; position:absolute; left:50%; top:16%; transform:translateX(-50%); width:60%; height:30%; border:2px solid var(--c2); border-bottom:none; border-radius:50% 50% 0 0; box-shadow:0 14px 0 -2px var(--c2); }

/* —— 台灯 —— */
.df-lamp::before {
    content:""; position:absolute; left:50%; top:6%; transform:translateX(-50%); width:62%; height:42%;
    background:linear-gradient(160deg, rgba(255,255,255,.6), transparent), linear-gradient(var(--c), var(--c2));
    border-radius:50% 50% 12% 12% / 75% 75% 12% 12%;
    box-shadow:0 0 16px 3px rgba(255,225,170,.8);
}
.df-lamp::after { content:""; position:absolute; left:50%; bottom:6%; transform:translateX(-50%); width:16%; height:50%; background:linear-gradient(var(--c2),var(--c)); border-radius:3px; box-shadow:0 4px 0 -1px var(--c2), 0 0 0 4px transparent; }

/* —— 壁灯 —— */
.df-walllamp::before {
    content:""; position:absolute; left:50%; top:18%; transform:translateX(-50%); width:60%; height:58%;
    background:radial-gradient(circle at 50% 30%, #fff, var(--c) 52%, var(--c2));
    border-radius:50% 50% 50% 50% / 40% 40% 60% 60%;
    box-shadow:0 0 18px 4px rgba(255,225,170,.85);
}

/* —— 香薰蜡烛 —— */
.df-candle::before { content:""; position:absolute; left:50%; bottom:6%; transform:translateX(-50%); width:44%; height:56%; background:linear-gradient(100deg, rgba(255,255,255,.5), transparent 42%), linear-gradient(var(--c),var(--c2)); border-radius:6px 6px 4px 4px; box-shadow:inset 0 -4px 6px rgba(0,0,0,.1); }
.df-candle::after { content:""; position:absolute; left:50%; bottom:58%; transform:translateX(-50%); width:8px; height:13px; background:radial-gradient(circle at 50% 70%, #fff6b0, #ffae42 60%, transparent 78%); border-radius:50% 50% 50% 50% / 62% 62% 38% 38%; box-shadow:0 0 11px 2px rgba(255,180,80,.9); animation:sak-glow 1.6s ease-in-out infinite; }

/* —— 烛台 —— */
.df-candleholder::before { content:""; position:absolute; left:50%; top:26%; bottom:8%; width:6px; transform:translateX(-50%); background:linear-gradient(var(--c),var(--c2)); border-radius:3px; box-shadow:0 0 0 2px rgba(0,0,0,.06); }
.df-candleholder::after { content:""; position:absolute; left:50%; top:6%; transform:translateX(-50%); width:9px; height:13px; background:radial-gradient(circle at 50% 70%, #fff6b0, #ffae42 60%, transparent 78%); border-radius:50%; box-shadow:0 0 11px 2px rgba(255,180,80,.9); animation:sak-glow 1.6s ease-in-out infinite; }

/* —— 吊灯 —— */
.df-chandelier { animation:sak-glow 3.6s ease-in-out infinite; }
.df-chandelier::before { content:""; position:absolute; left:50%; top:4px; transform:translateX(-50%); width:2px; height:14px; background:var(--c2); }
.df-chandelier::after { content:""; position:absolute; left:50%; top:16px; transform:translateX(-50%); width:72%; height:52%; background:radial-gradient(circle at 50% 0, #fff 0 6%, var(--c) 22%, var(--c2) 60%, transparent 72%); border-radius:50% 50% 50% 50% / 28% 28% 82% 82%; box-shadow:0 0 20px 5px rgba(255,235,200,.7); }

/* —— 床幔/床帘 —— */
.df-canopy { background: linear-gradient(to bottom, var(--c2) 0 6px, transparent 6px), linear-gradient(to bottom, var(--c) 0%, transparent 92%); border-radius:8px 8px 50% 50% / 12px 12px 90% 90%; box-shadow:inset 0 8px 10px rgba(255,255,255,.5); }
.df-canopy::before { content:""; position:absolute; left:50%; top:-7px; transform:translateX(-50%); width:20px; height:11px; background:radial-gradient(circle, var(--c2), transparent 70%); }

/* —— 窗帘/幕布/镜帘 —— */
.df-curtain { background: repeating-linear-gradient(90deg, var(--c) 0 6px, var(--c2) 6px 12px); border-radius:6px 6px 10px 10px; box-shadow:inset 0 0 8px rgba(0,0,0,.12); }
.df-curtain::after { content:""; position:absolute; top:0; left:0; right:0; height:6px; background:var(--c2); border-radius:6px 6px 0 0; }

/* —— 门帘（珠帘） —— */
.df-beadcurtain { background: linear-gradient(var(--c2) 0 4px, transparent 4px); }
.df-beadcurtain::after { content:""; position:absolute; top:4px; left:0; right:0; bottom:0; background: radial-gradient(circle at 20% 18%, var(--c) 0 3px, transparent 4px) 0 0/15px 15px, radial-gradient(circle at 20% 62%, var(--c2) 0 3px, transparent 4px) 7px 7px/15px 15px; }

/* —— 窗帘扣/绑带（珠扣） —— */
.df-tieback { background: radial-gradient(circle at 40% 35%, #fff, var(--c) 55%, var(--c2)); border-radius:50%; box-shadow:0 0 8px var(--c2), inset 0 -3px 5px rgba(0,0,0,.15); }
.df-tieback::after { content:""; position:absolute; inset:30%; border-radius:50%; border:2px solid rgba(255,255,255,.55); }

/* —— 闪钻饰品：摆件/胸针/耳环/项链/发饰/怀表/书签/发箍 —— */
.df-gem { background: conic-gradient(from 45deg, #fff, var(--c), var(--c2), var(--c), #fff); border-radius:50% 4px 50% 50%; transform:rotate(45deg); box-shadow:0 0 10px var(--c2), inset 0 0 6px rgba(255,255,255,.6); }
.df-gem::after { content:""; position:absolute; inset:25%; background:linear-gradient(135deg, rgba(255,255,255,.6), transparent); border-radius:50%; }
.df-gem:hover { transform: rotate(45deg) scale(1.12); }

/* —— 冰箱贴 —— */
.df-magnet { background:radial-gradient(circle at 38% 32%, #fff, var(--c) 55%, var(--c2)); border-radius:50%; box-shadow:0 3px 5px rgba(0,0,0,.2), inset 0 -2px 4px rgba(0,0,0,.15); }

/* —— 梳妆镜/镜 —— */
.df-mirror { background:var(--c2); border-radius:50% 50% 50% 50% / 56% 56% 44% 44%; box-shadow:0 3px 6px rgba(0,0,0,.18); }
.df-mirror::after { content:""; position:absolute; inset:4px; border-radius:inherit; background:linear-gradient(150deg, #fff 0 30%, var(--c) 30% 55%, #fff 55% 70%, var(--c) 70%); opacity:.9; }

/* —— 全身落地镜 —— */
.df-floormirror { background:var(--c2); border-radius:48% 48% 12% 12% / 60% 60% 8% 8%; box-shadow:0 0 14px 3px rgba(255,225,170,.55), 0 4px 8px rgba(0,0,0,.2); }
.df-floormirror::after { content:""; position:absolute; inset:6px 7px 9px; border-radius:46% 46% 10% 10% / 58% 58% 8% 8%; background:linear-gradient(150deg, #fff 0 35%, #ffe9f2 35% 60%, #fff 60% 75%, #ffe9f2 75%); }

/* —— 梳妆台 —— */
.df-vanity::before { content:""; position:absolute; left:50%; top:2%; transform:translateX(-50%); width:52%; height:46%; background:radial-gradient(circle at 50% 40%, #fff 0 30%, var(--c) 60%, var(--c2)); border-radius:50% 50% 8px 8px; box-shadow:0 0 12px rgba(255,220,180,.6); }
.df-vanity::after { content:""; position:absolute; left:8%; right:8%; bottom:6%; height:42%; background:linear-gradient(160deg, var(--c), var(--c2)); border-radius:6px; box-shadow:inset 0 0 0 2px rgba(255,255,255,.45), 0 4px 6px rgba(0,0,0,.2); }

/* —— 相框 —— */
.df-frame { background:var(--c2); border-radius:6px; box-shadow:0 3px 5px rgba(0,0,0,.2); }
.df-frame::after { content:""; position:absolute; inset:5px; border-radius:3px; background:linear-gradient(150deg, #ffd1e3, #cfe0ff); }

/* —— 闹钟 —— */
.df-clock { background:radial-gradient(circle at 40% 35%, #fff, var(--c) 70%, var(--c2)); border-radius:50%; box-shadow:inset 0 0 0 3px var(--c2), 0 3px 5px rgba(0,0,0,.2); }
.df-clock::before { content:""; position:absolute; left:50%; top:50%; width:2px; height:32%; background:#a35; transform-origin:bottom; transform:translate(-50%,-100%) rotate(40deg); }
.df-clock::after { content:""; position:absolute; left:50%; top:50%; width:2px; height:24%; background:#a35; transform-origin:bottom; transform:translate(-50%,-100%) rotate(-70deg); }

/* —— 餐盘 —— */
.df-plate { border-radius:50%; background:radial-gradient(circle, #fff 0 30%, var(--c) 55%, var(--c2)); box-shadow:0 3px 5px rgba(0,0,0,.18), inset 0 0 0 3px rgba(255,255,255,.55); }

/* —— 凳子（换鞋凳/梳妆凳/琴凳） —— */
.df-stool::before { content:""; position:absolute; left:50%; top:16%; transform:translateX(-50%); width:66%; height:32%; background:radial-gradient(circle at 50% 30%, var(--c), var(--c2)); border-radius:50%; box-shadow:0 4px 6px rgba(0,0,0,.2); }
.df-stool::after { content:""; position:absolute; left:50%; bottom:8%; transform:translateX(-50%); width:52%; height:40%; border-left:3px solid var(--c2); border-right:3px solid var(--c2); }

/* —— 睡衣/长筒袜 —— */
.df-dress::before { content:""; position:absolute; left:50%; top:8%; transform:translateX(-50%); width:60%; height:84%; background:linear-gradient(160deg, var(--c), var(--c2)); clip-path:polygon(28% 0,72% 0,86% 22%,100% 100%,0 100%,14% 22%); box-shadow:inset 0 0 8px rgba(255,255,255,.5); }

/* —— 围裙 —— */
.df-apron::before { content:""; position:absolute; left:50%; top:14%; transform:translateX(-50%); width:54%; height:78%; background:linear-gradient(160deg, var(--c), var(--c2)); clip-path:polygon(34% 0,66% 0,66% 16%,90% 30%,90% 100%,10% 100%,10% 30%,34% 16%); box-shadow:inset 0 0 8px rgba(255,255,255,.5); }

/* —— 果冻包 —— */
.df-bag::before { content:""; position:absolute; left:50%; top:32%; transform:translateX(-50%); width:60%; height:50%; background:linear-gradient(160deg, var(--c), var(--c2)); border-radius:10px; box-shadow:inset 0 0 8px rgba(255,255,255,.55), 0 3px 5px rgba(0,0,0,.18); }
.df-bag::after { content:""; position:absolute; left:50%; top:18%; transform:translateX(-50%); width:38%; height:28%; border:3px solid var(--c2); border-bottom:none; border-radius:50% 50% 0 0; }

/* —— 高跟鞋 —— */
.df-heels::before { content:""; position:absolute; left:22%; bottom:26%; width:56%; height:26%; background:linear-gradient(var(--c), var(--c2)); border-radius:50% 60% 8px 40% / 60% 60% 8px 50%; box-shadow:0 3px 4px rgba(0,0,0,.2); }
.df-heels::after { content:""; position:absolute; right:24%; bottom:6%; width:4px; height:22%; background:var(--c2); }

/* ====== 浴室 ====== */
.df-bathtub::before { content:""; position:absolute; left:8%; right:8%; top:30%; bottom:16%; background:linear-gradient(160deg, #fff, var(--c) 40%, var(--c2)); border-radius:44% 44% 50% 50% / 30% 30% 70% 70%; box-shadow:inset 0 6px 10px rgba(255,255,255,.6), inset 0 -8px 12px rgba(0,0,0,.12), 0 5px 8px rgba(0,0,0,.2); }
.df-bathtub::after { content:""; position:absolute; left:16%; right:16%; top:34%; height:16%; background:radial-gradient(ellipse at 50% 0, #bfe9ff 0 50%, transparent 72%); border-radius:50%; opacity:.85; }
.df-sink::before { content:""; position:absolute; left:6%; right:6%; bottom:8%; height:46%; background:linear-gradient(160deg, #fff, var(--c) 50%, var(--c2)); border-radius:8px; box-shadow:0 4px 7px rgba(0,0,0,.2), inset 0 0 0 2px rgba(255,255,255,.5); }
.df-sink::after { content:""; position:absolute; left:50%; top:8%; transform:translateX(-50%) rotate(45deg); width:28%; height:28%; background:radial-gradient(circle, #fff, #ffd1e3); border-radius:50% 50% 50% 0; box-shadow:0 0 10px rgba(255,200,225,.8); }
.df-perfumeshelf { background:linear-gradient(160deg, rgba(255,255,255,.5), transparent), linear-gradient(var(--c), var(--c2)); border-radius:8px; box-shadow:inset 0 0 0 2px rgba(255,255,255,.5), 0 4px 7px rgba(0,0,0,.18); }
.df-perfumeshelf::before { content:""; position:absolute; left:8%; right:8%; top:36%; height:2px; background:rgba(0,0,0,.15); box-shadow:0 16px 0 rgba(0,0,0,.15); }
.df-perfumeshelf::after { content:""; position:absolute; left:14%; top:12%; width:9px; height:13px; background:#ff9ec0; border-radius:2px; box-shadow:15px 2px 0 #c4a7ff, 30px -2px 0 #fff, 7px 18px 0 #ffd1e3, 24px 20px 0 #bfe9ff; }
.df-towelrack::before { content:""; position:absolute; left:10%; right:10%; top:24%; height:5px; background:linear-gradient(var(--c), var(--c2)); border-radius:3px; box-shadow:-4px 0 0 var(--c2), 4px 0 0 var(--c2); }
.df-towelrack::after { content:""; position:absolute; left:26%; top:30%; width:48%; height:54%; background:linear-gradient(100deg, rgba(255,255,255,.5), transparent), linear-gradient(var(--c), var(--c2)); border-radius:3px; box-shadow:inset 0 0 0 2px rgba(255,255,255,.5); }
.df-shower::before { content:""; position:absolute; left:50%; top:14%; transform:translateX(-50%); width:46%; height:14%; background:linear-gradient(var(--c), var(--c2)); border-radius:50% 50% 8px 8px; box-shadow:0 3px 5px rgba(0,0,0,.2); }
.df-shower::after { content:""; position:absolute; left:50%; top:30%; transform:translateX(-50%); width:40%; height:50%; background:repeating-linear-gradient(90deg, rgba(180,225,255,.85) 0 2px, transparent 2px 6px); }
.df-footbath::before { content:""; position:absolute; left:14%; right:14%; bottom:10%; top:34%; background:repeating-linear-gradient(90deg, var(--c) 0 6px, var(--c2) 6px 8px); border-radius:6px 6px 12px 12px; box-shadow:inset 0 6px 8px rgba(255,255,255,.5), 0 4px 6px rgba(0,0,0,.2); }
.df-footbath::after { content:""; position:absolute; left:18%; right:18%; top:36%; height:14%; background:radial-gradient(ellipse, #ffd1e3 0 60%, transparent 72%); border-radius:50%; }

/* ====== 阳台花房 ====== */
.df-greenhouse { background:linear-gradient(160deg, rgba(255,255,255,.5), rgba(210,240,255,.35)); border:3px solid var(--c2); border-radius:8px 8px 4px 4px; box-shadow:inset 0 0 12px rgba(255,255,255,.5), 0 4px 7px rgba(0,0,0,.15); }
.df-greenhouse::before { content:""; position:absolute; left:50%; top:0; bottom:0; width:2px; background:var(--c2); transform:translateX(-50%); }
.df-greenhouse::after { content:""; position:absolute; left:0; right:0; top:44%; height:2px; background:var(--c2); }
.df-swing::before { content:""; position:absolute; left:50%; top:4%; transform:translateX(-50%); width:54%; height:48%; border:3px solid var(--c2); border-bottom:none; border-radius:50% 50% 0 0; }
.df-swing::after { content:""; position:absolute; left:24%; right:24%; bottom:18%; height:30%; background:radial-gradient(circle at 50% 30%, var(--c), var(--c2)); border-radius:0 0 40% 40% / 0 0 60% 60%; box-shadow:0 4px 6px rgba(0,0,0,.2); }
.df-birdcage::before { content:""; position:absolute; left:18%; right:18%; top:8%; bottom:14%; background:repeating-linear-gradient(90deg, var(--c2) 0 1.5px, transparent 1.5px 7px); border:2px solid var(--c2); border-radius:50% 50% 10px 10px / 42% 42% 10px 10px; }
.df-birdcage::after { content:""; position:absolute; left:50%; top:2%; transform:translateX(-50%); width:8px; height:8px; border:2px solid var(--c2); border-radius:50%; }
.df-telescope::before { content:""; position:absolute; left:24%; top:24%; width:54%; height:16%; transform:rotate(-24deg); background:linear-gradient(var(--c), var(--c2)); border-radius:8px; box-shadow:0 3px 4px rgba(0,0,0,.25); }
.df-telescope::after { content:""; position:absolute; left:50%; bottom:8%; transform:translateX(-50%); width:40%; height:38%; border-left:3px solid var(--c2); border-right:3px solid var(--c2); }
.df-flowerpot::before { content:""; position:absolute; left:50%; bottom:8%; transform:translateX(-50%); width:50%; height:40%; background:linear-gradient(var(--c), var(--c2)); border-radius:4px 4px 40% 40%; box-shadow:inset 0 4px 5px rgba(255,255,255,.5); }
.df-flowerpot::after { content:""; position:absolute; left:50%; top:14%; transform:translateX(-50%); width:54%; height:46%; background:radial-gradient(circle at 40% 52%, #8fd2a8 0 26%, transparent 28%), radial-gradient(circle at 66% 42%, #7fc89a 0 22%, transparent 24%), radial-gradient(circle at 52% 24%, #ff9ec0 0 14%, transparent 16%); }
.df-flowerstand::before { content:""; position:absolute; left:14%; right:14%; top:32%; height:4px; background:var(--c2); box-shadow:0 22px 0 var(--c2); }
.df-flowerstand::after { content:""; position:absolute; left:50%; top:6%; transform:translateX(-50%); width:18px; height:16px; background:radial-gradient(circle at 50% 60%, #7fc89a 0 40%, transparent 42%), #8fd2a8; border-radius:0 0 6px 6px; box-shadow:-22px 24px 0 -2px #ff9ec0, 22px 24px 0 -2px #c4a7ff; }
.df-wateringcan::before { content:""; position:absolute; left:24%; bottom:14%; width:46%; height:42%; background:linear-gradient(120deg, rgba(255,255,255,.5), transparent), linear-gradient(var(--c), var(--c2)); border-radius:8px 10px 10px 12px; box-shadow:0 3px 5px rgba(0,0,0,.2); }
.df-wateringcan::after { content:""; position:absolute; left:8%; top:32%; width:30%; height:6px; background:var(--c2); transform:rotate(-18deg); border-radius:3px; }
.df-parasol::before { content:""; position:absolute; left:50%; top:10%; transform:translateX(-50%); width:78%; height:36%; background:conic-gradient(var(--c) 0 25%, var(--c2) 25% 50%, var(--c) 50% 75%, var(--c2) 75%); border-radius:50% 50% 0 0; box-shadow:0 4px 6px rgba(0,0,0,.18); }
.df-parasol::after { content:""; position:absolute; left:50%; top:42%; bottom:8%; width:4px; transform:translateX(-50%); background:var(--c2); }
.df-windchime::before { content:""; position:absolute; left:30%; right:30%; top:14%; height:4px; background:linear-gradient(var(--c), var(--c2)); border-radius:3px; }
.df-windchime::after { content:""; position:absolute; left:36%; top:20%; width:6px; height:42%; background:linear-gradient(var(--c), var(--c2)); border-radius:3px; box-shadow:8px 5px 0 var(--c2), 16px -2px 0 var(--c); transform-origin:top; animation:sak-sway 3s ease-in-out infinite; }
.df-bugnet::before { content:""; position:absolute; left:18%; top:14%; width:42%; height:42%; border:3px solid var(--c2); border-radius:50%; background:radial-gradient(circle, transparent 40%, rgba(255,255,255,.4)); }
.df-bugnet::after { content:""; position:absolute; right:20%; bottom:10%; width:4px; height:50%; background:var(--c2); transform:rotate(24deg); transform-origin:bottom; }
.df-succulent::before { content:""; position:absolute; left:50%; bottom:10%; transform:translateX(-50%); width:46%; height:32%; background:linear-gradient(var(--c), var(--c2)); border-radius:4px 4px 30% 30%; }
.df-succulent::after { content:""; position:absolute; left:50%; top:18%; transform:translateX(-50%); width:52%; height:46%; background:radial-gradient(circle at 50% 62%, #7fc89a 0 26%, transparent 28%), radial-gradient(circle at 26% 48%, #8fd2a8 0 20%, transparent 22%), radial-gradient(circle at 74% 48%, #8fd2a8 0 20%, transparent 22%); }

/* ====== 音乐室 ====== */
.df-piano::before { content:""; position:absolute; left:8%; right:8%; top:18%; bottom:24%; background:linear-gradient(160deg, rgba(255,255,255,.45), transparent), linear-gradient(var(--c), var(--c2)); border-radius:50% 20% 40% 60% / 60% 30% 50% 70%; box-shadow:0 5px 8px rgba(0,0,0,.25); }
.df-piano::after { content:""; position:absolute; left:16%; bottom:22%; width:60%; height:8px; background:repeating-linear-gradient(90deg, #fff 0 3px, #333 3px 4px); border-radius:2px; }
.df-micstand::before { content:""; position:absolute; left:50%; top:14%; transform:translateX(-50%); width:24%; height:28%; background:radial-gradient(circle at 50% 35%, #fff, var(--c) 55%, var(--c2)); border-radius:50% 50% 40% 40%; box-shadow:0 0 16px 3px rgba(255,225,170,.7); }
.df-micstand::after { content:""; position:absolute; left:50%; top:40%; bottom:8%; width:4px; transform:translateX(-50%); background:linear-gradient(var(--c), var(--c2)); }
.df-recordplayer { background:linear-gradient(160deg, var(--c), var(--c2)); border-radius:8px; box-shadow:inset 0 0 0 2px rgba(255,255,255,.5), 0 4px 7px rgba(0,0,0,.2); }
.df-recordplayer::before { content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:54%; height:54%; background:radial-gradient(circle, #333 0 14%, #555 15% 90%, #333 91%); border-radius:50%; animation:sak-spin 4s linear infinite; }
.df-recordplayer::after { content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:6px; height:6px; background:#fff; border-radius:50%; }
.df-cellocase::before { content:""; position:absolute; left:30%; right:30%; top:8%; bottom:8%; background:linear-gradient(160deg, rgba(255,255,255,.45), transparent), linear-gradient(var(--c), var(--c2)); border-radius:46% 46% 50% 50% / 30% 30% 70% 70%; box-shadow:0 4px 6px rgba(0,0,0,.2), inset 0 0 0 2px rgba(255,255,255,.45); }
.df-cellocase::after { content:""; position:absolute; left:42%; right:42%; top:14%; bottom:14%; background:var(--c2); border-radius:40%; opacity:.5; }
.df-musicnote::before { content:""; position:absolute; left:34%; bottom:24%; width:14px; height:11px; background:radial-gradient(circle at 40% 35%, #fff, var(--c) 55%, var(--c2)); border-radius:50%; box-shadow:0 0 8px var(--c2); }
.df-musicnote::after { content:""; position:absolute; left:56%; top:18%; width:3px; height:46%; background:var(--c2); }
.df-speaker { background:linear-gradient(160deg, var(--c), var(--c2)); border-radius:8px; box-shadow:inset 0 0 0 2px rgba(255,255,255,.5), 0 4px 7px rgba(0,0,0,.2); }
.df-speaker::before { content:""; position:absolute; left:50%; top:36%; transform:translateX(-50%); width:46%; height:46%; border-radius:50%; background:radial-gradient(circle, rgba(0,0,0,.2) 0 30%, var(--c2) 32% 70%, rgba(0,0,0,.2) 72%); }
.df-speaker::after { content:""; position:absolute; left:50%; top:14%; transform:translateX(-50%); width:14%; height:14%; border-radius:50%; background:rgba(0,0,0,.2); }
.df-projector::before { content:""; position:absolute; left:50%; bottom:14%; transform:translateX(-50%); width:48%; height:34%; background:linear-gradient(var(--c), var(--c2)); border-radius:50% 50% 8px 8px; box-shadow:0 4px 6px rgba(0,0,0,.2); }
.df-projector::after { content:""; position:absolute; left:50%; top:6%; transform:translateX(-50%); width:64%; height:50%; background:radial-gradient(circle, #fff 0 1px, transparent 2px) 0 0/12px 12px, radial-gradient(ellipse at 50% 100%, rgba(196,167,255,.5), transparent 70%); clip-path:polygon(38% 100%, 62% 100%, 100% 0, 0 0); }
.df-musicstand::before { content:""; position:absolute; left:26%; top:14%; width:48%; height:36%; transform:rotate(-6deg); background:linear-gradient(160deg, #fff, var(--c)); border:2px solid var(--c2); border-radius:3px; box-shadow:0 3px 5px rgba(0,0,0,.2); }
.df-musicstand::after { content:""; position:absolute; left:50%; top:50%; bottom:8%; width:4px; transform:translateX(-50%); background:var(--c2); box-shadow:-10px 0 0 -1px var(--c2), 10px 0 0 -1px var(--c2); }
.df-acoustic { background:repeating-linear-gradient(135deg, var(--c) 0 8px, var(--c2) 8px 16px); border-radius:6px; box-shadow:inset 0 0 0 2px rgba(255,255,255,.45), 0 3px 5px rgba(0,0,0,.15); }

/* ====== 衣帽间 ====== */
.df-wardrobe { background:linear-gradient(160deg, rgba(255,255,255,.45), transparent), linear-gradient(var(--c), var(--c2)); border-radius:8px 8px 6px 6px; box-shadow:inset 0 0 0 2px rgba(255,255,255,.5), 0 0 12px rgba(255,225,170,.5), 0 4px 8px rgba(0,0,0,.2); }
.df-wardrobe::before { content:""; position:absolute; left:50%; top:6%; bottom:6%; width:2px; background:var(--c2); transform:translateX(-50%); }
.df-wardrobe::after { content:""; position:absolute; left:50%; top:46%; transform:translateX(-50%); width:9px; height:9px; border-radius:50%; background:radial-gradient(circle, #fff, var(--c2)); box-shadow:-4px 0 0 -1px #fff, 4px 0 0 -1px #fff; }
.df-jeweltower { background:linear-gradient(160deg, rgba(255,255,255,.5), rgba(255,255,255,.2)); border:2px solid var(--c2); border-radius:8px; box-shadow:inset 0 0 10px rgba(255,255,255,.5), 0 4px 7px rgba(0,0,0,.18); }
.df-jeweltower::before { content:""; position:absolute; left:6%; right:6%; top:34%; height:2px; background:var(--c2); box-shadow:0 14px 0 var(--c2), 0 -14px 0 var(--c2); }
.df-jeweltower::after { content:""; position:absolute; left:30%; top:12%; width:8px; height:8px; border-radius:50%; background:radial-gradient(circle, #fff, #ffd1e3); box-shadow:14px 16px 0 -1px #c4a7ff, -2px 30px 0 -1px #bfe9ff; }

/* ====== 书房 ====== */
.df-desk::before { content:""; position:absolute; left:8%; right:8%; top:36%; height:11%; background:linear-gradient(160deg, rgba(255,255,255,.45), transparent), linear-gradient(var(--c), var(--c2)); border-radius:4px; box-shadow:0 4px 6px rgba(0,0,0,.2); }
.df-desk::after { content:""; position:absolute; left:16%; bottom:8%; width:6px; height:42%; background:var(--c2); box-shadow:54px 0 0 var(--c2); }
.df-armchair::before { content:""; position:absolute; left:20%; right:20%; top:10%; bottom:24%; background:linear-gradient(160deg, rgba(255,255,255,.45), transparent), linear-gradient(var(--c), var(--c2)); border-radius:40% 40% 8px 8px; box-shadow:0 4px 7px rgba(0,0,0,.22); }
.df-armchair::after { content:""; position:absolute; left:12%; right:12%; bottom:20%; height:24%; background:linear-gradient(var(--c), var(--c2)); border-radius:10px; box-shadow:0 4px 5px rgba(0,0,0,.2); }
.df-bookshelf { background:linear-gradient(var(--c), var(--c2)); border-radius:6px; box-shadow:inset 0 0 0 2px rgba(255,255,255,.5), 0 4px 7px rgba(0,0,0,.2); }
.df-bookshelf::before { content:""; position:absolute; left:8%; right:8%; top:32%; height:3px; background:var(--c2); box-shadow:0 22px 0 var(--c2); }
.df-bookshelf::after { content:""; position:absolute; left:12%; top:12%; width:64%; height:14%; background:repeating-linear-gradient(90deg, #ff9ec0 0 5px, #c4a7ff 5px 10px, #bfe9ff 10px 15px, #ffd27f 15px 20px); border-radius:1px; box-shadow:0 22px 0 0 #ffb3d1; }
.df-cakestand::before { content:""; position:absolute; left:24%; right:24%; top:22%; height:7%; background:linear-gradient(var(--c), var(--c2)); border-radius:50%; box-shadow:0 18px 0 -2px var(--c2); }
.df-cakestand::after { content:""; position:absolute; left:14%; right:14%; bottom:14%; height:7%; background:linear-gradient(var(--c), var(--c2)); border-radius:50%; box-shadow:0 0 6px rgba(0,0,0,.2); }
.df-pen::before { content:""; position:absolute; left:50%; top:10%; bottom:20%; width:8px; transform:translateX(-50%) rotate(14deg); background:linear-gradient(var(--c), var(--c2)); border-radius:3px 3px 1px 1px; box-shadow:inset -2px 0 3px rgba(0,0,0,.2); }
.df-pen::after { content:""; position:absolute; left:50%; bottom:14%; transform:translateX(-50%) rotate(14deg); width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-top:9px solid var(--c2); }
.df-book { background:linear-gradient(120deg, rgba(255,255,255,.45), transparent), linear-gradient(var(--c), var(--c2)); border-radius:3px 7px 7px 3px; box-shadow:inset 6px 0 0 rgba(0,0,0,.08), 0 4px 6px rgba(0,0,0,.2); }
.df-book::after { content:""; position:absolute; left:36%; top:32%; width:42%; height:5px; background:rgba(255,255,255,.6); box-shadow:0 10px 0 rgba(255,255,255,.6); }
.df-scissors::before, .df-scissors::after { content:""; position:absolute; left:50%; top:14%; width:5px; height:54%; background:linear-gradient(var(--c), var(--c2)); border-radius:3px; transform-origin:bottom; }
.df-scissors::before { transform:translateX(-50%) rotate(12deg); }
.df-scissors::after { transform:translateX(-50%) rotate(-12deg); }
.df-toaster::before { content:""; position:absolute; left:24%; right:24%; top:18%; bottom:30%; border:3px solid var(--c2); border-bottom:none; border-radius:40% 40% 0 0; }
.df-toaster::after { content:""; position:absolute; left:38%; right:38%; top:46%; bottom:14%; background:#fff3d0; border-radius:2px; box-shadow:0 0 5px #ffd27f; }
.df-board { background:linear-gradient(120deg, rgba(255,255,255,.45), transparent), linear-gradient(var(--c), var(--c2)); border-radius:8px 8px 8px 14px; box-shadow:0 3px 5px rgba(0,0,0,.2); }
.df-board::after { content:""; position:absolute; left:50%; top:14%; transform:translateX(-50%); width:7px; height:7px; border-radius:50%; border:2px solid var(--c2); }
.df-glass::before { content:""; position:absolute; left:50%; top:10%; transform:translateX(-50%); width:34%; height:40%; background:linear-gradient(160deg, rgba(255,255,255,.7), var(--c)); border-radius:0 0 50% 50% / 0 0 70% 70%; box-shadow:inset 0 3px 4px rgba(255,255,255,.7); }
.df-glass::after { content:""; position:absolute; left:50%; top:50%; transform:translateX(-50%); width:3px; height:34%; background:var(--c2); box-shadow:0 100% 0 -1px var(--c2), -7px 100% 0 -1px var(--c2), 7px 100% 0 -1px var(--c2); }
.df-coffeecup::before { content:""; position:absolute; left:26%; top:28%; width:44%; height:44%; background:linear-gradient(120deg, rgba(255,255,255,.5), transparent), linear-gradient(var(--c), var(--c2)); border-radius:6px 6px 40% 40%; box-shadow:0 3px 5px rgba(0,0,0,.2); }
.df-coffeecup::after { content:""; position:absolute; right:16%; top:38%; width:14%; height:24%; border:3px solid var(--c2); border-left:none; border-radius:0 50% 50% 0; }

/* ====== 商店里：真实立体造型的迷你预览（无 emoji） ====== */
.shop-item-icon.df-prev {
    width: 48px; height: 48px; margin: 0 auto 6px; position: relative;
    display: flex; align-items: center; justify-content: center;
    border-radius: 10px; background: radial-gradient(circle at 50% 35%, #fff, #ffeef6);
    box-shadow: 0 2px 6px rgba(255, 143, 163, .25); overflow: hidden;
}
.df-prev-obj { position: relative; width: 34px; height: 34px; display: block; }
.shop-item-icon.df-prevpic { width: 48px; height: 48px; margin: 0 auto 6px; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 6px rgba(255, 143, 163, .25); }
.shop-item-icon.df-prevpic img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* 商店预览：图片叠在立体CSS预览之上；图片缺失会自删，露出CSS */
.df-prev-img { position: absolute; inset: 3px; width: calc(100% - 6px); height: calc(100% - 6px); object-fit: contain; }

/* 新增造型兜底（有豆包透明图时被 .df-img 覆盖，无图才显示） */
.df-musicbox{background:linear-gradient(160deg,var(--c),var(--c2));border-radius:9px 9px 6px 6px;box-shadow:inset 0 3px 7px rgba(255,255,255,.55),0 5px 10px rgba(180,120,140,.32)}
.df-musicbox::after{content:"";position:absolute;left:14%;right:14%;top:8%;height:30%;background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,0));border-radius:6px}
.df-pendant{background:radial-gradient(circle at 40% 34%,#fff,var(--c) 52%,var(--c2));border-radius:50% 50% 52% 52%/56% 56% 46% 46%;box-shadow:inset 0 2px 6px rgba(255,255,255,.65),0 4px 9px rgba(180,120,140,.32)}
