/* The scene owns its cards and object discovery; desktop styles have a separate owner. */
.shelf-card { width: min(350px, calc(100vw - 32px)); overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; background: #221f1b; color: #eeeae2; line-height: 1.5; font-size: 16px; }
.shelf-card-header { position: sticky; top: -20px; z-index: 1; display: flex; align-items: start; justify-content: space-between; gap: 12px; padding: 8px 0; background: #221f1b; }
.shelf-card .shelf-card-header h2 { margin: 0; padding-top: 6px; }
.shelf-card h3 { font-size: 16px; line-height: 1.45; margin: 12px 0 6px; }
.shelf-card p { margin: 8px 0 12px; }
.shelf-card ul { padding-left: 21px; margin: 6px 0 14px; }
.shelf-card li { margin-bottom: 4px; }
.shelf-card button, .shelf-card summary, .shelf-outbound { min-width: 44px; min-height: 44px; }
.shelf-context { margin: 8px 0; }
.shelf-context summary { cursor: pointer; display: list-item; padding: 10px 0; }
.shelf-outbound { display: inline-flex; align-items: center; padding: 8px 12px; border: 1px solid #8f7b5c; border-radius: 5px; color: #e8bd86; background: #29241e; }
.studio-links .hotspots { max-height: min(65dvh, 590px); overflow-y: auto; }
@media (max-width: 700px) {
  .shelf-card { width: calc(100vw - 32px); padding: 16px; }
  .shelf-card-header { top: -16px; }
}

/* Base-anchored discovery is reversible with HOTSPOT_MARKER.restingAtBase. */
.studio-object[data-compact=true]:not(:hover):not(:focus-visible) .object-dot { width: 8px; height: 8px; border-width: 2px; font-size: 0; }
.studio-object[data-compact=true]:not(:hover):not(:focus-visible) .object-name { display: none; }
.studio-object[data-compact=true][data-object=air]:not(:hover):not(:focus-visible) .object-dot { width: 12px; height: 12px; }

/* Reversible with LAPTOP_RESTING_LABEL in scene-host. */
.studio-object[data-resting-label=true] .object-name { display: block !important; opacity: 1; background: #221f1b; color: #eeeae2; border: 1px solid #c8a776; }
.studio-accessible-description { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
