.home-room-card {border:1px solid var(--border);border-radius:28px;background:var(--surface);padding:24px 26px 18px;overflow:hidden;container-type:inline-size;}
.home-room-summary {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
.home-room-summary>div {display:grid;gap:8px;min-width:0;}
.home-room-summary span {color:var(--text-soft);font-size:15px;font-weight:600;}
.home-room-summary strong {font-size:clamp(32px,5vw,54px);line-height:1.15;overflow-wrap:anywhere;}
.home-room-summary>small {color:var(--pink);font-size:14px;white-space:nowrap;padding-top:4px;}
.home-room {--home-wood:var(--tree-bark-highlight);--home-metal:color-mix(in srgb,var(--text-soft) 72%,var(--surface));}
.home-room-scene {position:relative;width:clamp(470px,100%,720px);aspect-ratio:12/7;margin:0 auto;isolation:isolate;}
.home-room-floor {position:absolute;left:0;bottom:0;width:100%;height:10.6%;border-radius:0 0 10px 10px;overflow:hidden;}
.home-floor-fill {fill:color-mix(in srgb,var(--tree-bark) 16%,var(--surface));}
.home-baseboard {fill:none;stroke:var(--tree-bark-highlight);stroke-width:3;opacity:.55;}
.home-floor-grain {fill:none;stroke:var(--tree-bark-highlight);stroke-width:1;opacity:.13;}
.home-ground-shadow {fill:var(--surface-strong);opacity:.1;}
.home-object {--home-motion:0;position:absolute;padding:0;border:0;border-radius:10px;background:transparent;cursor:pointer;min-width:0;min-height:0;touch-action:pan-x pan-y;color:var(--text);-webkit-tap-highlight-color:transparent;}
.home-object::before {content:"";position:absolute;inset:0;min-width:44px;min-height:44px;left:50%;top:50%;transform:translate(-50%,-50%);}
.home-object>svg {display:block;width:100%;height:auto;overflow:visible;pointer-events:none;}
.home-object:focus-visible {outline:2px solid var(--pink);outline-offset:3px;}
.home-object-sofa,.home-object-kettle,.home-object-sink,.home-object-bin,.home-object-lamp {z-index:2;}
.home-object-plant {z-index:3;}
.home-object-window {z-index:0;}
.home-sofa-base {fill:color-mix(in srgb,var(--pink) 64%,var(--surface));}
.home-seat {fill:color-mix(in srgb,var(--pink) 83%,var(--surface));}
.home-pillow-cream {fill:color-mix(in srgb,var(--tree-bark-highlight) 66%,var(--text));}
.home-pillow-mint {fill:color-mix(in srgb,var(--mint) 64%,var(--text));}
.home-upholstery-seam {fill:none;stroke:var(--surface);stroke-width:1.5;opacity:.2;}
.home-pillow-fold {fill:none;stroke:var(--surface);stroke-width:1;opacity:.12;}
.home-wood {fill:var(--home-wood);}
.home-wood-line {fill:none;stroke:var(--home-wood);stroke-width:6;stroke-linecap:round;}
.home-frame {fill:var(--tree-bark);}
.home-glass {fill:color-mix(in srgb,var(--mint) 11%,var(--surface));}
.home-door-sakura-lawn {fill:color-mix(in srgb,var(--mint) 24%,var(--surface));}
.home-door-sakura-lawn-front {fill:color-mix(in srgb,var(--mint) 29%,var(--surface));}
.home-door-sakura-grass {fill:color-mix(in srgb,var(--mint) 52%,var(--surface));}
.home-window-bars {fill:none;stroke:var(--tree-bark);stroke-width:3;}
.home-fabric {fill:color-mix(in srgb,var(--pink) 75%,var(--surface));}
.home-fabric-light {fill:color-mix(in srgb,var(--pink) 88%,var(--surface));}
.home-pillow {fill:color-mix(in srgb,var(--pink) 55%,var(--surface));}
.home-seam {fill:none;stroke:var(--surface);stroke-width:2;stroke-linecap:round;opacity:.4;}
.home-mint {fill:var(--mint);}
.home-cord {fill:none;stroke:var(--text-soft);stroke-width:2;stroke-linecap:round;}
.home-metal {fill:var(--home-metal);}
.home-kettle-body .home-metal {fill:color-mix(in srgb,var(--mint) 62%,var(--surface));}
.home-metal-line {fill:none;stroke:var(--home-metal);stroke-width:5;stroke-linecap:round;}
.home-cabinet {fill:color-mix(in srgb,var(--tree-bark-highlight) 65%,var(--text));}
.home-board {fill:var(--tree-bark);}
.home-cushion {transform-origin:120px 136px;transform:scaleY(calc(1 - var(--home-motion)*.035));}
.home-lampshade {transform-origin:42px 91px;transform:rotate(calc(var(--home-motion)*3deg));}
.home-branch-response {transform:rotate(calc(var(--home-motion)*1deg));}
.home-bin-lid {transform-origin:15px 43px;transform:rotate(calc(var(--home-motion)*-10deg));}
.home-phone {transform-origin:36px 95px;transform:rotate(calc(var(--home-motion)*4deg));}
.home-paper {transform-origin:55px 29px;transform:rotate(calc(var(--home-motion)*4deg));}
.home-kettle-lid {transform:translateY(calc(var(--home-motion)*-1px));}
.home-water-drops {opacity:0;}
.home-steam,.home-heat,.home-signal {fill:none;stroke:var(--mint);stroke-width:2;stroke-linecap:round;opacity:0;}
.home-router-light {fill:var(--mint);}
.home-flame {opacity:0;transform-origin:57px 96px;}
.home-object[data-powered=true] .home-water-drops {animation:home-water .65s linear infinite;}
.home-object[data-boiling=true] .home-steam {animation:home-steam 1.8s ease-out infinite;opacity:.6;}
.home-object[data-powered=true] .home-heat {animation:home-heat 1.5s ease-in-out infinite;}
.home-object[data-powered=true] .home-signal {animation:home-signal 1s ease-out infinite;}
.home-object[data-powered=true] .home-router-light {animation:home-signal .5s ease-out infinite alternate;}
.home-object[data-powered=true] .home-flame {opacity:1;animation:home-flame .3s ease-in-out infinite alternate;}
.home-details-close svg {width:20px;height:20px;}
@keyframes home-water {from{opacity:0;transform:translateY(-6px)}25%{opacity:1}to{opacity:0;transform:translateY(8px)}}
@keyframes home-steam {from{opacity:0;transform:translateY(4px)}35%{opacity:.65}to{opacity:0;transform:translateY(-7px)}}
@keyframes home-heat {0%,100%{opacity:0;transform:translateY(3px)}50%{opacity:.55;transform:translateY(-3px)}}
@keyframes home-signal {0%,100%{opacity:.2}50%{opacity:.9}}
@keyframes home-flame {from{transform:scaleY(.8)}to{transform:scaleY(1.12)}}

.home-curtain-rail {stroke:var(--tree-bark);stroke-width:4;stroke-linecap:round;}
.home-curtain-fabric {fill:color-mix(in srgb,var(--pink) 30%,var(--tree-bark-highlight));}
.home-curtain-fold {fill:none;stroke:var(--surface);stroke-width:2;opacity:.17;}
.home-curtain-tie {fill:none;stroke:var(--tree-bark-highlight);stroke-width:4;}
.home-curtains {transform-origin:90px 0;transform:skewX(calc(var(--home-motion)*.4deg));}
.home-upholstery-light {fill:none;stroke:var(--text);stroke-width:1.5;opacity:.16;}
.home-linen {fill:color-mix(in srgb,var(--tree-bark-highlight) 67%,var(--text));}
.home-linen-seams {fill:none;stroke:var(--tree-bark);stroke-width:1;opacity:.25;}
.home-lamp-light {fill:var(--tree-bark-highlight);opacity:.7;}
.home-saucer {fill:var(--text-soft);opacity:.45;}
.home-plant-stems {fill:none;stroke:var(--tree-bark);stroke-width:2.5;stroke-linecap:round;}
.home-plant-leaf {fill:var(--tree-leaf,var(--mint));}
.home-plant-vein {fill:none;stroke:var(--surface);stroke-width:1;opacity:.35;}
.home-plant-leaves {transform-origin:65px 137px;transform:rotate(calc(var(--home-motion)*2deg));}
.home-plant-pot {fill:color-mix(in srgb,var(--pink) 28%,var(--tree-bark));}
.home-pot-bands {fill:none;stroke:var(--tree-bark-highlight);stroke-width:2;opacity:.45;}

.home-object-bill-markers {position:absolute;top:8%;left:-4px;display:flex;gap:3px;flex-wrap:wrap;max-width:100%;pointer-events:none;z-index:5;}
.home-bill-marker {display:block;flex-shrink:0;width:10px;height:10px;border-radius:50%;background:var(--surface);border:2px solid #ed78b4;box-shadow:none;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;}
.home-bill-marker[data-selected=true] {background:#ed78b4;border-color:#ed78b4;box-shadow:0 0 0 3px var(--surface),0 0 0 5px #ed78b4;transform:scale(1.2);}
@container (max-width:520px) {
 .home-room-summary span {font-size:13px;}
 .home-room-summary>small {font-size:12px;}
}
@media(max-width:600px) {.home-room-card {padding:18px 14px 14px;border-radius:24px;}}
@media(prefers-reduced-motion:reduce) {.home-object * {animation:none!important;transform:none!important;}}

/* A wide scene keeps furniture legible on phones; native panning preserves page scrolling. */
.home-room-panorama {position:relative;margin-top:12px;}
.home-room-viewport {width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scrollbar-width:thin;scrollbar-color:var(--border) transparent;border-radius:12px;user-select:none;}
.home-room-viewport:focus-visible {outline:2px solid var(--pink);outline-offset:3px;}
.home-room-pan {position:absolute;bottom:20px;width:44px;height:44px;display:grid;place-items:center;padding:10px;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text);box-shadow:0 2px 12px #0002;z-index:8;}
.home-room-pan[hidden] {display:none;}
.home-room-pan[hidden]{display:none}

.housing-showcase{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:48px;padding-block:60px 80px}
.housing-demo{--surface:#fff;--surface-strong:#27242f;--text:#27242f;--text-soft:#85838e;--tree-bark:#9d7660;--tree-bark-highlight:#b88f74;--mint:#0b9974;--pink:#e3699c;--border:#eadfe6;background:#fff;border:1px solid var(--border);padding:22px;border-radius:26px;min-width:0}
.housing-example{font-size:13px;color:#87717f}.housing-demo .home-room-scene{width:100%;min-width:350px}.housing-demo .home-room-viewport{overflow-x:auto}.home-room-jungle-plant,.home-room-theme,.home-pixel-art,.home-door-theme,.home-copycat-smoke,.home-door-view{display:none}.home-door-panel{fill:#f6d8e5}.home-door-joinery{fill:none;stroke:var(--home-wood);stroke-width:3}.home-door-sky{fill:#e5f2ee}.home-door-lawn{fill:#d4e5d4}.home-door-path{fill:#e5d9c5}.home-door-leaf{transform-origin:28px 22px}.home-phone-screen{fill:#e4f3ec}.home-phone-message{fill:#eb93b6}.home-phone-message path{stroke:#fff;stroke-width:1}
.housing-bill-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0}.housing-bill-tabs button{display:flex;align-items:center;gap:6px;min-height:40px;border:1px solid transparent;border-radius:12px;background:transparent;color:#665664;padding:8px 10px;font:inherit;font-size:14px;cursor:pointer}.housing-bill-tabs svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}.housing-bill-tabs button[aria-pressed=true]{background:#fcecf4;border-color:#e6a5c2;color:#a43b6c}.housing-bill-detail{display:grid;gap:5px;border-top:1px solid #eee3e9;padding-top:16px}.housing-bill-detail span{font-size:14px;color:#776976}.housing-demo .home-object[data-selected=true]{outline:2px solid #e3699c;outline-offset:4px;background:#fcecf455}.housing-demo .home-object[data-selected=true] .home-bill-marker{background:#e3699c}
@media(max-width:800px){.housing-showcase{grid-template-columns:1fr;gap:24px;padding-block:40px}.housing-demo{padding:16px}.housing-bill-tabs{gap:2px}.housing-bill-tabs button{font-size:13px;padding:8px}}

.home-light-halo,.home-light-beam {opacity:0;transition:opacity .25s ease;}
.home-object[data-powered=true] :is(.home-light-halo,.home-light-beam) {opacity:1;}
.home-object[data-powered=true] .home-linen {fill:#ffe1a0;}
.home-object[data-powered=true] .home-lamp-light {fill:#fff0bf;opacity:1;}
.home-object[data-powered=true] .home-lampshade {filter:drop-shadow(0 0 6px #ffd99288);}
.home-object[data-powered=true] .home-kettle-body {filter:drop-shadow(0 2px 0 #d79e5955);transition:filter 6s ease-in;}
.home-object[data-boiling=true] .home-kettle-lid {animation:home-kettle-rattle .16s ease-in-out infinite alternate;}
.home-phone-screen {fill:var(--surface-strong);transition:fill .2s;}
.home-phone-message {opacity:0;fill:var(--surface);stroke:var(--mint);stroke-width:1;}
.home-object[data-powered=true] .home-phone-screen {fill:var(--mint);}
.home-object[data-powered=true] .home-phone-message {opacity:1;}
.home-object[data-powered=true] .home-bin-lid {transform:rotate(-38deg);}
.home-bin-lid {transition:transform .3s ease;}
.home-object[data-powered=true] .home-water-drops {opacity:.8;}
.home-object[data-powered=true] :is(.home-heat,.home-signal) {opacity:.65;}
.home-router-light {fill:var(--text-soft);opacity:.5;}
.home-object[data-powered=true] .home-router-light {fill:var(--mint);opacity:1;}
@keyframes home-kettle-rattle {from{transform:translate(0,0)}to{transform:translate(.5px,-1.2px)}}

.housing-demo .home-theme,.housing-demo .home-object>.home-pixel-art{display:none}.housing-demo .home-natural-art{display:block}.housing-demo .home-natural-art>svg{display:block;width:100%;height:auto;overflow:visible}.housing-demo .home-door-theme-sakura{display:inline}.housing-demo .home-object::before{width:100%;height:100%}.housing-demo .home-theme-frame{fill:none;stroke:var(--home-wood);stroke-width:2}
