.house-scene,.house-plan,.house-perspective,.house-annotations{position:absolute;inset:0;width:100%;height:100%}
.house-perspective{overflow:hidden;pointer-events:none}
.house-perspective canvas{display:block;width:100%;height:100%;touch-action:pan-y}
.house-scene [hidden]{display:none}
.house-scene[data-renderer="webgl"] .house-perspective{pointer-events:auto}
.house-scene[data-renderer="webgl"] .house-plan,.house-scene[data-renderer="plan"] .house-perspective{visibility:hidden}
.house-plan{overflow:visible}
.house-annotations{pointer-events:none}
.house-marker{position:absolute;display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:4px 8px;transform:translate(-50%,-50%);border:1px solid #9b876657;border-radius:30px;background:#f8f5e9f2;color:#362d22;font:600 clamp(9px,.8vw,11px)/1.1 Manrope,Arial,sans-serif;letter-spacing:.005em;box-shadow:0 2px 5px #32291d19;white-space:nowrap;pointer-events:auto;cursor:pointer;transition:color .18s,background .18s}
.house-marker::before{content:"";width:5px;height:5px;flex:none;background:var(--room-ink,#a4613f);border-radius:50%}
.house-marker::after{content:"";position:absolute;inset:-7px -1px}
.house-marker[aria-pressed="true"]{color:#fffae9;background:#392d21;border-color:#392d21}
.house-marker:focus-visible{outline:3px solid #945820;outline-offset:3px}
.house-marker[data-room="kitchen"],.house-scene [data-route="kitchen"],.house-scene .plan-speaker:has([data-speaker-room="kitchen"]){--room-ink:#4c7770}
.house-marker[data-room="terrace"]{--room-ink:#969385}
.house-scene[data-terrace="true"] .house-marker[data-room="terrace"],.house-scene [data-route="terrace"],.house-scene .plan-speaker:has([data-speaker-room="terrace"]){--room-ink:#73603c}
.house-scene[data-grouped="true"] .house-marker[data-room="kitchen"],.house-scene[data-grouped="true"] [data-route="kitchen"],.house-scene[data-grouped="true"] .plan-speaker:has([data-speaker-room="kitchen"]){--room-ink:#a4613f}
.house-plan [data-route],.house-plan [data-group-link]{stroke:var(--room-ink,#a4613f)}
.house-plan .plan-speaker{fill:var(--room-ink,#a4613f);stroke:#fff8e7;stroke-width:.035}
.house-plan .plan-speaker circle+circle{fill:#fff8e7;stroke:none}
@media(max-width:650px){.house-marker{min-height:23px;padding:4px 6px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.house-marker{transition:none}}
.house-plan [data-group-link]{stroke-dasharray:1;stroke-dashoffset:1;stroke-width:.055;transition:stroke-dashoffset .68s cubic-bezier(.22,.68,.25,1)}
.house-scene[data-grouped="true"] .house-plan [data-group-link]{stroke-dashoffset:0}
.house-plan [data-route="kitchen"],.house-plan .plan-speaker{transition:stroke .6s,fill .6s}
@media(prefers-reduced-motion:reduce){.house-plan [data-group-link],.house-plan [data-route="kitchen"],.house-plan .plan-speaker{transition:none}}
.house-scene[data-renderer="webgl"] canvas{cursor:grab}
.house-scene[data-renderer="webgl"] canvas:active{cursor:grabbing}
/* Keep the terrace construction visible while its equipment is installed or lifted out. */
.house-plan [data-terrace-equipment] {
  display: inline;
  opacity: 1;
  transform: translateY(0);
  transition: opacity .38s ease, transform .5s cubic-bezier(.2,.75,.22,1), display .5s allow-discrete;
}
.house-plan [data-terrace-equipment][hidden] {
  display: none;
  opacity: 0;
  transform: translateY(-.18px);
}
@starting-style {
  .house-plan [data-terrace-equipment]:not([hidden]) {opacity:0;transform:translateY(-.18px)}
}
@media(prefers-reduced-motion:reduce) {
  .house-plan [data-terrace-equipment] {transition:none}
}

/* The pin state doubles as a compact source legend when the study is small. */
.house-marker{gap:6px;padding:6px 9px;border-radius:6px;border:1px solid #584d3766;background:#f9f7ebf7;color:#302f27;font-size:clamp(10px,.78vw,12px);font-weight:650;box-shadow:0 2px 1px #ffffff50 inset,0 3px 8px #272a2233}
.house-marker::before{width:7px;height:7px;background:var(--room-ink,#bc6a41);box-shadow:0 0 0 2px #ab8f6430}
.house-marker[aria-pressed="true"]{color:#fffaf0;background:#29382e;border-color:#415646}
.house-scene[data-grouped="true"] :is(.house-marker[data-room="kitchen"],.house-marker[data-room="living"])::before{background:#df8a55;box-shadow:0 0 0 2px #cc885f44}
.house-scene[data-terrace="true"] .house-marker[data-room="terrace"]::before{background:#81924e;box-shadow:0 0 0 2px #a1ac6a44}
.house-plan{overflow:hidden;transition:filter .7s}
.house-scene[data-light="evening"] .house-plan{filter:sepia(.15) brightness(.79) saturate(.92)}
.house-plan [data-plan-field]{color:#cb8256;pointer-events:none}
.house-plan [data-plan-field="kitchen"]{color:#547f75}
.house-plan [data-plan-field="terrace"]{color:#768d46}
.house-plan .plan-halo{opacity:.045;transition:opacity .65s}
.house-plan .plan-echo{stroke-width:.032;opacity:.0;transition:opacity .65s,transform .8s;transform:scale(.68);transform-box:fill-box;transform-origin:center}
.house-scene[data-grouped="true"] [data-plan-field="kitchen"]{color:#cb8256}
.house-scene[data-grouped="true"] :is([data-plan-field="kitchen"],[data-plan-field="living"]) .plan-echo,.house-scene[data-terrace="true"] [data-plan-field="terrace"] .plan-echo{opacity:.65;transform:scale(1)}
.house-scene[data-grouped="true"] :is([data-plan-field="kitchen"],[data-plan-field="living"]) .plan-halo,.house-scene[data-terrace="true"] [data-plan-field="terrace"] .plan-halo{opacity:.23}
.house-scene[data-grouped="true"] [data-plan-field="kitchen"] :is(.plan-echo,.plan-halo){transition-delay:.4s}
.house-plan [data-group-link]{stroke:#c26d37;stroke-width:.060;transition:stroke-dashoffset 1.25s cubic-bezier(.33,0,.29,1)}
.house-plan [data-route="terrace"]{stroke-width:.05;stroke:#627c3d}
.house-plan [data-terrace-equipment]:not([hidden])>g{animation:plan-place .65s cubic-bezier(.2,.7,.3,1) both}
.house-plan [data-terrace-equipment]:not([hidden])>g:last-child{animation-delay:.16s}
@keyframes plan-place{from{opacity:0}to{opacity:1}}
@media(max-width:650px){.house-marker{font-size:9px;gap:4px;padding:4px 6px;border-radius:4px}.house-marker::before{width:5px;height:5px}}
@media(prefers-reduced-motion:reduce){
  .house-plan,.house-plan *, .house-marker {animation:none!important;transition:none!important}
}

.house-plan .plan-pools,.house-plan .plan-terrace-lights{opacity:0;transition:opacity .7s}
.house-scene[data-light="evening"] .plan-pools{opacity:.8}
.house-scene[data-terrace="true"] .plan-terrace-lights{opacity:.66}
.house-scene[data-light="evening"][data-terrace="true"] .plan-terrace-lights{opacity:.95}
.house-plan [data-terrace-equipment]:not([hidden]) .plan-cabinet{animation:cabinet-arrives .69s cubic-bezier(.2,.7,.3,1) both;transform-box:fill-box;transform-origin:center}
.house-plan [data-terrace-equipment]:not([hidden])>g:last-child .plan-cabinet{animation-delay:.19s}
@keyframes cabinet-arrives{0%{opacity:0;transform:translateY(-.24px) scale(.75)}35%{opacity:1}100%{opacity:1;transform:translateY(0) scale(1)}}
.house-plan .plan-route-edge{stroke:#78452e;stroke-width:.113;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.25s cubic-bezier(.33,0,.29,1)}
.house-scene[data-grouped="true"] .house-plan .plan-route-edge{stroke-dashoffset:0}
.house-plan [data-group-link]{stroke:#ffcf86;stroke-width:.054}
.house-scene[data-grouped="true"] :is([data-plan-field="kitchen"],[data-plan-field="living"]) .plan-echo{stroke:#96542e;stroke-width:.039;opacity:.74}
.house-scene[data-grouped="true"] :is([data-plan-field="kitchen"],[data-plan-field="living"]) .plan-halo{opacity:.29}
@media(max-width:650px){.house-plan .plan-route-edge{stroke-width:.16}.house-plan [data-group-link]{stroke-width:.077}}
