/* Bridge structure: the frame, the room plates and a few functional
   switches. Every surface, control and type style is in glass.css (tokens,
   primitives and the glass restyle of the legacy generic classes); nothing
   here paints a material. */
.frame { position:relative; display:flex; flex-direction:column; }

/* ── room plates: only the open one is shown ── */
.plate-wrap { position:relative; min-width:0; }
.plate { position:relative; display:none; flex-direction:column; gap:var(--gap, 8px); min-width:0; }
.plate.open { display:flex; }
/* Pane content fades and slides in over 160 ms when a room opens (README).
   Each top-level glass pane animates itself: a fading ancestor would become
   the panes' backdrop root and their blur would snap on at the end. The pane
   sections persist while rooms refresh their contents, so this runs only
   when a room opens. */
.plate.open > .gl-panes > *,
.plate.open > .gl-detail { animation:plate-in var(--t-pane, 160ms) ease-out both; }
@keyframes plate-in { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }

/* ── functional ── */
.btn { margin-left:auto; }
.btn.ghost { margin-left:0; }
.tabview { display:none; }
.tabview.on { display:block; }
.modal-scrim { display:none; }
.modal-scrim.open { display:flex; }
.modal .foot .btn { margin-left:0; }  /* the footer is a right-aligned button row */

/* ── Helm · star map grid (the room's chart replaces it) ── */
.starmap {
  display:grid; grid-template-columns:repeat(5, 1fr); gap:7px;
  max-width:430px; margin:2px auto 0;
}

/* ═══════════ REDUCED MOTION ═══════════ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
