/* Local, fully geometric room study. The published V7 route is preserved. */
.room-stage { background: #171b20; }
.room-intro { bottom: 7.7rem; max-width: 28rem; }
.room-intro h1 { font-size: clamp(2.6rem, 4vw, 5rem); }
.room-intro .room-lead { display: none; }
.room-eyebrow { font-size: .875rem; }
.room-header { background: linear-gradient(#0b1018a0, transparent); }
.room-preview-label { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: #dededa; }
.room-intro::before { inset: -2rem -4rem; }
.room-close-copy { left: 5%; top: 45%; }
.room-close-copy > p:last-child { font-size: clamp(2.1rem, 3.4vw, 4rem); }
.room-loading { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; gap: 1rem; font-size: 1rem; background: #171b20; }
.room-ready .room-loading { display: none; }
.room-loading::before { content: ''; width: 28px; height: 28px; margin: auto; border: 1px solid #ffffff30; border-top-color: #d9e8f4; border-radius: 50%; animation: studio-load 1s linear infinite; }
@keyframes studio-load { to { transform: rotate(360deg); } }
.room-bottom { background: linear-gradient(transparent, #090f17dc); }
.room-hotspot { display: grid; place-items: center; background: #f6f5f1; color: #192126; border: 1px solid #fff; box-shadow: 0 4px 18px #0002; }
.room-hotspot[aria-pressed="true"] { background: #192126; color: #fff; }
.room-inspector { left: 50%; right: auto; bottom: 6.6rem; transform: translateX(-50%); width: min(480px, calc(100% - 32px)); max-width: none; padding: 0; border: 0; background: transparent; backdrop-filter: none; }
.room-detail-nav { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; gap: 12px; }
.room-detail-card { position: relative; min-height: 128px; padding: 22px 38px 22px 24px; border: 1px solid #ffffff30; border-radius: 12px; background: #f6f5f1f5; color: #192126; box-shadow: 0 12px 40px #0003; }
.room-detail-card .room-part-info { min-height: 0; }
.room-detail-card .room-part-info h2 { margin: 0 0 9px; color: #192126; font-size: 1.05rem; line-height: 1.3; }
.room-detail-card .room-part-info p { margin: 0; color: #4f585f; font-size: .875rem; line-height: 1.5; }
.room-detail-arrow, .room-detail-close { display: grid; place-items: center; padding: 0; cursor: pointer; color: inherit; }
.room-detail-arrow { width: 44px; height: 44px; border: 1px solid #ffffff80; border-radius: 50%; background: #111820ba; color: #fff; }
.room-detail-arrow:hover { background: #26313bed; }
.room-detail-close { position: absolute; top: 0; right: 0; width: 36px; height: 36px; border: 0; border-radius: 0 12px 0 0; background: transparent; }
.room-detail-close:hover { background: #19212610; }
.room-detail-gesture { margin: 12px 0 0; text-align: center; font-size: .7rem; line-height: 1.4; color: #e1e5e8; text-shadow: 0 1px 8px #000; }
.room-detail-arrow:focus-visible, .room-detail-close:focus-visible { outline: 2px solid #8ec9ed; outline-offset: 3px; }
.room-detail-open .room-hint { visibility: hidden; }
@media(max-width:700px) { .room-inspector { bottom: 7rem; width: calc(100% - 28px); } .room-detail-nav { gap: 8px; } .room-detail-card { min-height: 144px; padding: 19px 30px 18px 18px; } .room-detail-card .room-part-info h2 { font-size: 1rem; } .room-detail-card .room-part-info p { font-size: .8125rem; } }
@media(max-height:620px) and (min-width:701px) { .room-inspector { bottom: 5.2rem; } .room-detail-card { min-height: 0; padding-top: 12px; padding-bottom: 12px; } .room-detail-gesture { display: none; } }
@media(max-height:500px) and (min-width:600px) { .room-inspector { left: auto; right: 20px; top: 56%; bottom: auto; transform: translateY(-50%); width: 300px; } .room-detail-nav { grid-template-columns: 38px minmax(0,1fr) 38px; gap: 6px; } .room-detail-arrow { width: 38px; height: 44px; } .room-detail-card { min-height: 0; padding: 18px 24px 18px 14px; } .room-detail-gesture { display: none; } .room-detail-open .room-controls { top: 4.3rem; right: 20px; flex-direction: row; } .room-detail-open .room-controls button + button { border-top: 0; border-left: 1px solid #ffffff26; } }
.studio-icon { flex: 0 0 auto; display: block; }
.viewer-hotspot { display: grid; place-items: center; }
.room-skip, .room-hint { display: inline-flex; align-items: center; gap: .65rem; }
.room-hint .room-hint-copy { margin-left: 0; }
.room-interactive .room-hint-arrow { display: none; }
.room-controls button { display: grid; place-items: center; }
@media(max-width:700px) { .room-intro { bottom: 8rem; } .room-intro h1 { font-size: 2.45rem; } .room-eyebrow { font-size: .75rem; } .room-preview-label { display: none; } .room-close-copy { top: auto; bottom: 8rem; } }
@media(prefers-reduced-motion:reduce) { .room-loading::before { animation: none; } }
