.room-viewer{gap:8px;min-width:0;margin:0;display:grid}.room-viewer-frame{background:var(--rule);width:100%;max-width:100%;position:relative;overflow:hidden}.room-viewer-frame img{object-fit:cover;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;position:absolute;inset:0}.room-viewer-photo{animation:room-viewer-in var(--dur-slow) ease-out}@keyframes room-viewer-in{0%{opacity:.4}to{opacity:1}}.room-viewer-offstage{opacity:0;pointer-events:none;position:absolute;inset:0}.room-viewer-loading{z-index:2;text-align:center;background:color-mix(in srgb,var(--paper) 62%,transparent);-webkit-backdrop-filter:blur(8px)saturate(.8);backdrop-filter:blur(8px)saturate(.8);animation:room-viewer-veil var(--dur-fast) ease-out;place-content:center;justify-items:center;gap:12px;padding:16px;display:grid;position:absolute;inset:0}@keyframes room-viewer-veil{0%{opacity:0}to{opacity:1}}.room-viewer-loading-label{font:var(--label-weight) var(--t-label)/1 var(--label-font);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--ink)}.room-viewer-loading-note{font:var(--label-weight) var(--t-label)/1.4 var(--label-font);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--grey)}.room-viewer-loading-bar{background:var(--rule);width:min(220px,50vw);height:2px;display:block;overflow:hidden}.room-viewer-loading-bar i{background:var(--accent);transform-origin:0;width:92%;height:100%;animation:7s cubic-bezier(.2,.7,.3,1) forwards room-viewer-progress;display:block}@keyframes room-viewer-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.room-viewer-photo.is-leaving{z-index:1;pointer-events:none;animation:room-viewer-out var(--dur-slow) ease-in var(--dur-fast) forwards}@keyframes room-viewer-out{to{opacity:0}}.room-scene-live{position:absolute;inset:0}.room-scene-live canvas,.room-scene-live>div{inset:0;position:absolute!important}.room-viewer figcaption{font:var(--label-weight) var(--t-label)/1.4 var(--label-font);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--grey);flex-wrap:wrap;justify-content:space-between;gap:4px 16px;display:flex}.room-viewer-status{animation:1.4s ease-in-out infinite alternate room-viewer-status}@keyframes room-viewer-status{0%{opacity:.45}to{opacity:1}}@media (prefers-reduced-motion:reduce){.room-viewer-loading,.room-viewer-loading-bar i,.room-viewer-photo{animation:none}.room-viewer-photo.is-leaving{display:none}.room-viewer-status{animation:none}}.room-choices{min-width:0;font-family:var(--label-font);border:0;gap:8px;margin:0;padding:0;display:grid}.room-choices legend{font:var(--label-weight) var(--t-label)/1 var(--label-font);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--grey);margin-bottom:8px;padding:0}.room-choices>div{box-sizing:border-box;border-top:1px solid var(--ink);border-left:1px solid var(--ink);gap:0;width:100%;display:grid}.room-choices.room-choices button{border:0;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);box-sizing:border-box;height:36px;color:var(--ink);font:var(--label-weight) var(--t-label)/1 var(--label-font);letter-spacing:var(--label-tracking);text-transform:uppercase;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border-radius:0;min-width:0;margin:0;padding:0 12px;overflow:hidden}.room-choices.room-choices button:hover{background:var(--sheet)}.room-choices.room-choices button[aria-pressed=true]{background:var(--ink);color:var(--paper);position:relative}.room-choices button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;z-index:1;position:relative}.room-cta.room-cta{border:1px solid var(--accent);background:var(--accent);height:52px;color:var(--paper);font:var(--strong-weight) var(--t-body)/1 var(--sans);cursor:pointer;border-radius:0;justify-content:center;align-items:center;gap:10px;padding:0 20px;text-decoration:none;display:inline-flex}.room-cta.room-cta:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.room-cta:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.room-cta.room-cta[aria-pressed=true]{color:var(--accent);background:0 0}
